第2章 · 全景统计
第2章 · 全景统计
2.1 代码规模
| 指标 | 数值 |
|---|---|
| 源文件总数 | 1,884 个 (.ts/.tsx) |
| 总代码行数 | 118,442 行(Source Map中标记的文件),完整计数394,222行 |
| 文件总数(含非代码) | 1,902 个 |
| Source Map原始大小 | 59.8 MB |
| 目录数量(两级) | 120+ |
2.2 技术栈
| 组件 | 技术选择 |
|---|---|
| 语言 | TypeScript(严格模式) |
| 运行时 | Bun(非Node.js) |
| 打包器 | Bun Bundler(支持编译时特性标志) |
| UI框架 | 自定义Ink(React for Terminal,深度重写) |
| 布局引擎 | 自研Yoga Layout(从C++移植的纯TS实现) |
| 状态管理 | 自研Store(类Zustand,DeepImmutable包装) |
| API协议 | Anthropic Messages API + MCP |
| 认证 | OAuth 2.0 PKCE + JWT |
| 遥测 | GrowthBook + Datadog |
| 原生模块 | Rust(enigo鼠标键盘)+ Swift(截屏/TCC权限) |
2.3 Top 20 最大源文件
| 排名 | 文件 | 行数 | 功能 |
|---|---|---|---|
| 1 | main.tsx | 4,683 | 主协调器——启动、配置、模式选择、会话管理 |
| 2 | query.ts | 1,729 | 查询循环——API请求、压缩、重试 |
| 3 | QueryEngine.ts | 1,295 | 查询引擎——状态管理、Token预算、系统提示 |
| 4 | Tool.ts | 792 | 工具接口——泛型定义、权限、进度事件 |
| 5 | commands.ts | 754 | 命令注册表——100+命令的加载与过滤 |
| 6 | setup.ts | 477 | 初始化——认证、设置、遥测配置 |
| 7 | history.ts | 464 | 历史管理——JSONL、粘贴存储、并发安全 |
| 8 | tools.ts | 389 | 工具装配——条件编译、延迟加载、池构建 |
| 9 | interactiveHelpers.tsx | 365 | 交互辅助——KAIROS通道、权限提示 |
| 10 | cost-tracker.ts | 323 | 成本追踪——Token统计、USD计算、模型聚合 |
| 11 | context.ts | 189 | 上下文系统——Git状态、CLAUDE.md加载 |
| 12 | Task.ts | 125 | 任务基类——7种任务类型、状态机 |
| 13 | dialogLaunchers.tsx | 132 | 对话框启动器——信任、权限、设置 |
| 14 | projectOnboardingState.ts | 83 | 项目引导状态管理 |
| 15 | ink.ts | 85 | Ink框架入口——渲染器初始化 |
注:cli/print.ts 和 bridge/bridgeMain.ts 等文件在子目录中,实际行数更大(print.ts约5000+行,bridgeMain.ts约3000+行),但不在顶层文件统计中。
2.4 模块依赖关系
模块依赖自顶向下分为四层:
入口层:entrypoints/cli.tsx → main.tsx → screens/REPL.tsx
核心层(main.tsx向下扇出):query.ts + QueryEngine / tools.ts + Tool.ts / commands.ts + commands/ / state/ + AppState
服务层:services/(api/, mcp/, lsp/, compact/, oauth/, analytics/)
工具层:tools/(BashTool, AgentTool, FileEditTool, GrepTool, WebSearch, MCPTool等54个工具)
扩展模块:bridge/(远程控制)、coordinator/(多Agent编排)
2.5 与竞品的架构对比
| 维度 | Claude Code | Cursor | Windsurf | Gemini CLI | Codex CLI | Cline | Aider |
|---|---|---|---|---|---|---|---|
| 形态 | CLI(终端) | IDE(VS Code分支) | IDE(VS Code分支) | CLI(终端) | CLI(终端+App+IDE) | VS Code插件 | CLI(Python) |
| 语言 | TypeScript/Bun | TypeScript/Electron | TypeScript/Electron | Python | Rust(49 crates) | TypeScript | Python |
| 工具数 | 54 | ~15 | ~12 | ~10 | 内置+MCP扩展 | ~10 | ~8 |
| 多Agent | 3条路线 | 单Agent | 单Agent | 单Agent | 子Agent(3角色,6并发) | 单Agent | 无 |
| 记忆系统 | 4层 | 简单缓存 | 简单缓存 | Gemini上下文 | SQLite持久化记忆 | 无 | 无 |
| 远程控制 | Bridge(3代) | 无 | 无 | 无 | 云端环境 | 无 | 无 |
| 自主模式 | KAIROS | 无 | 无 | 有限 | 有限(云端长时任务) | 无 | 无 |
| 插件生态 | MCP(7传输) | 扩展市场 | 无 | MCP | MCP + Plugin Marketplace | MCP | 无 |
| 上下文窗口 | 1M(标准定价) | 取决于模型 | 取决于模型 | 1M | 1M(超272K按2x计费) | 取决于模型 | 取决于模型 |
| 代码规模 | ~12万行 | 未公开 | 未公开 | 未公开 | ~5万行(Rust) | ~2万行 | ~3万行 |