claude-code/RECORD.md
2026-03-31 20:55:36 +08:00

3.2 KiB
Raw Blame History

Claude Code 项目运行记录

项目: /Users/konghayao/code/ai/claude-code 日期: 2026-03-31 包管理器: bun


一、项目目标

将 claude-code 项目运行起来,必要时可以删减次级能力。

这是 Anthropic 官方 Claude Code CLI 工具的源码反编译/逆向还原项目。

核心保留能力

  • API 通信Anthropic SDK / Bedrock / Vertex
  • Bash/FileRead/FileWrite/FileEdit 等核心工具
  • REPL 交互界面ink 终端渲染)
  • 对话历史与会话管理
  • 权限系统(基础)
  • Agent/子代理系统

已删减的次级能力

模块 处理方式
Computer Use (@ant/computer-use-*) stub
Claude for Chrome (@ant/claude-for-chrome-mcp) stub
Magic Docs / Voice Mode / LSP Server 移除
Analytics / GrowthBook / Sentry 空实现
Plugins/Marketplace / Desktop Upsell 移除
Ultraplan / Tungsten / Auto Dream 移除
MCP OAuth/IDP 简化
DAEMON / BRIDGE / BG_SESSIONS / TEMPLATES 等 feature flag 关闭

二、当前状态Dev 模式已可运行

# dev 运行
bun run dev
# 直接运行
bun run src/entrypoints/cli.tsx
# 测试 -p 模式
echo "say hello" | bun run src/entrypoints/cli.tsx -p
# 构建
bun run build
测试 结果
--version 2.1.87 (Claude Code)
--help 完整帮助信息输出
-p 模式 成功调用 API 返回响应

TS 类型错误说明

仍有 ~1341 个 tsc 错误绝大多数是反编译产生的源码级类型问题unknown/never/{}不影响 Bun 运行时。不再逐个修复。


三、关键修复记录

3.1 自动化 stub 生成

通过 3 个脚本自动处理了缺失模块问题:

  • scripts/create-type-stubs.mjs — 生成 1206 个 stub 文件
  • scripts/fix-default-stubs.mjs — 修复 120 个默认导出 stub
  • scripts/fix-missing-exports.mjs — 补全 81 个模块的 161 个缺失导出

3.2 手动类型修复

  • src/types/global.d.ts — MACRO 宏、内部函数声明
  • src/types/internal-modules.d.ts@ant/* 等私有包类型声明
  • src/entrypoints/sdk/ — 6 个 SDK 子模块 stub
  • 泛型类型修复DeepImmutable、AttachmentMessage 等)
  • 4 个 export const default 非法语法修复

3.3 运行时修复

Commander 非法短标志-d2e, --debug-to-stderr--debug-to-stderr(反编译错误)

bun:bundle 运行时 Polyfillsrc/entrypoints/cli.tsx 顶部):

const feature = (_name: string) => false;  // 所有 feature flag 分支被跳过
(globalThis as any).MACRO = { VERSION: "2.1.87", ... };  // 绕过版本检查

四、关键文件清单

文件 用途
src/entrypoints/cli.tsx 入口文件(含 MACRO/feature polyfill
src/main.tsx 主 CLI 逻辑Commander 定义)
src/types/global.d.ts 全局变量/宏声明
src/types/internal-modules.d.ts 内部 npm 包类型声明
src/entrypoints/sdk/*.ts SDK 类型 stub
src/types/message.ts Message 系列类型 stub
scripts/create-type-stubs.mjs 自动 stub 生成脚本
scripts/fix-default-stubs.mjs 修复默认导出 stub
scripts/fix-missing-exports.mjs 补全缺失导出