同步上游主仓库最新代码,整合以下新功能: - feat: 工具层及 mcp 大重构 (#252) - feat: 远程群控 (#243) - feat: 添加对 langfuse 监控的支持 (#242) - feat: 完成第一个 mcp-chrome 接入版本 - feat: 添加模型 1M 上下文切换 - feat: langfuse 工具调用显示为嵌套结构 - feat: 加上 userId 的传递 - feat: Add Ultraplan Feature for Advanced Multi-Agent Planning (#232) - feat: Add brave as alternative WebSearchTool - fix: 修复 Bun.hash 不存在问题 - fix: 修复缓存 - fix: 修复 interrupt 日志不上传 - fix: 修复 chrome 链接版本 - fix: 使用简化版本的 chrome 桥接器 - fix: 修复 node 环境没有 bun 的问题 - fix: 修复穷鬼模式的写入问题 - fix: 修复对穷鬼模式的 auto dream 和 session memory 越过 - fix: 修复初次登陆的校验问题 - fix(openai): fix stop_reason null, zero usage fields and max_tokens forwarding - chore: 1.3.3 版本 - docs: 添加浏览器说明支持 冲突解决策略: - 保留 CoStrict 品牌、4.0.x 版本号、csc bin 命令 - 保留 CoStrict 企业认证体系和 Agent 编排 - 采用上游的 1M context、langfuse、chrome mcp、远程群控等新功能 - 采用上游的 getDialogConfig/promptIdentifier 模式 - 采用上游的 FORCE_INTERACTIVE TTY 修复 - 合并两者:保留 CoStrict 品牌名 + 上游新代码模式
79 lines
2.6 KiB
TypeScript
79 lines
2.6 KiB
TypeScript
#!/usr/bin/env bun
|
|
/**
|
|
* Dev entrypoint — launches cli.tsx with MACRO.* defines injected
|
|
* via Bun's -d flag (bunfig.toml [define] doesn't propagate to
|
|
* dynamically imported modules at runtime).
|
|
*/
|
|
import { join, dirname } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { getMacroDefines } from "./defines.ts";
|
|
|
|
// Resolve project root from this script's location
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
const projectRoot = join(__dirname, "..");
|
|
const cliPath = join(projectRoot, "src/entrypoints/cli.tsx");
|
|
|
|
const defines = getMacroDefines();
|
|
|
|
const defineArgs = Object.entries(defines).flatMap(([k, v]) => [
|
|
"-d",
|
|
`${k}:${v}`,
|
|
]);
|
|
|
|
// Bun --feature flags: enable feature() gates at runtime.
|
|
// Default features enabled in dev mode.
|
|
const DEFAULT_FEATURES = [
|
|
"BUDDY", "TRANSCRIPT_CLASSIFIER", "BRIDGE_MODE",
|
|
"AGENT_TRIGGERS_REMOTE", "CHICAGO_MCP", "VOICE_MODE",
|
|
"SHOT_STATS", "PROMPT_CACHE_BREAK_DETECTION", "TOKEN_BUDGET",
|
|
// P0: local features
|
|
"AGENT_TRIGGERS",
|
|
"ULTRATHINK",
|
|
"BUILTIN_EXPLORE_PLAN_AGENTS",
|
|
"LODESTONE",
|
|
// P1: API-dependent features
|
|
"EXTRACT_MEMORIES", "VERIFICATION_AGENT",
|
|
"KAIROS_BRIEF", "AWAY_SUMMARY", "ULTRAPLAN",
|
|
// P2: daemon + remote control server
|
|
"DAEMON",
|
|
// PR-package restored features
|
|
"WORKFLOW_SCRIPTS",
|
|
"HISTORY_SNIP",
|
|
"CONTEXT_COLLAPSE",
|
|
"MONITOR_TOOL",
|
|
"FORK_SUBAGENT",
|
|
"UDS_INBOX",
|
|
"KAIROS",
|
|
"COORDINATOR_MODE",
|
|
"LAN_PIPES",
|
|
// "REVIEW_ARTIFACT", // API 请求无响应,需进一步排查 schema 兼容性
|
|
// P3: poor mode (disable extract_memories + prompt_suggestion)
|
|
"POOR",
|
|
];
|
|
|
|
// Any env var matching FEATURE_<NAME>=1 will also enable that feature.
|
|
// e.g. FEATURE_PROACTIVE=1 bun run dev
|
|
const envFeatures = Object.entries(process.env)
|
|
.filter(([k]) => k.startsWith("FEATURE_"))
|
|
.map(([k]) => k.replace("FEATURE_", ""));
|
|
|
|
const allFeatures = [...new Set([...DEFAULT_FEATURES, ...envFeatures])];
|
|
const featureArgs = allFeatures.flatMap((name) => ["--feature", name]);
|
|
|
|
// If BUN_INSPECT is set, pass --inspect-wait to the child process
|
|
const inspectArgs = process.env.BUN_INSPECT
|
|
? ["--inspect-wait=" + process.env.BUN_INSPECT]
|
|
: [];
|
|
|
|
// Use the bun executable from PATH - on Windows, Bun CLI registers 'bun' command
|
|
// which resolves to bun.exe. Using 'bun' directly works on all platforms.
|
|
const bunCmd = process.platform === 'win32' ? 'bun.exe' : 'bun';
|
|
|
|
const result = Bun.spawnSync(
|
|
[bunCmd, ...inspectArgs, "run", ...defineArgs, ...featureArgs, cliPath, ...process.argv.slice(2)],
|
|
{ stdio: ["inherit", "inherit", "inherit"], cwd: projectRoot },
|
|
);
|
|
|
|
process.exit(result.exitCode ?? 0);
|