用途: 参考资料 | 更新时间: 2026-05-28
A. 关键文件索引
A.1 核心文件(按重要性排序)
| # | 文件 | 行数 | 职责 | 验证状态 |
|---|
| 1 | src/query.ts | 1732 | 核心查询循环 (7状态机) | ✅ |
| 2 | src/Tool.ts | 792 | Tool 接口定义 | ✅ |
| 3 | src/services/tools/StreamingToolExecutor.ts | 530 | 流式工具执行器 | ✅ |
| 4 | src/tools.ts | 389 | 工具注册表 (54个) | ✅ |
| 5 | src/utils/permissions/ | ~1500 | 权限系统 | ✅ |
| 6 | src/constants/prompts.ts | ~900 | System prompt 构建 | ✅ |
| 7 | src/context.ts | — | 上下文收集 | ✅ |
| 8 | src/utils/claudemd.ts | — | CLAUDE.md 加载 | ✅ |
| 9 | src/services/compact/ | ~1700 | 上下文压缩 | ✅ |
| 10 | src/bootstrap/state.ts | 1758 | 全局单例状态 | ✅ |
A.2 入口与框架文件
| # | 文件 | 行数 | 职责 | 验证状态 |
|---|
| 1 | src/entrypoints/cli.tsx | 320 | 入口 + polyfill + 快速路径 | ✅ |
| 2 | src/main.tsx | 4683 | Commander.js CLI + 初始化 | ✅ |
| 3 | src/screens/REPL.tsx | 5009 | 主 REPL 屏幕 | ✅ |
| 4 | src/QueryEngine.ts | 1320 | 会话编排器 | ✅ |
| 5 | src/commands.ts | 754 | 命令注册表 (~113个) | ✅ |
A.3 服务层文件
| # | 文件 | 行数 | 职责 | 验证状态 |
|---|
| 1 | src/services/api/claude.ts | 3420 | API 客户端 | ✅ |
| 2 | src/services/mcp/client.ts | 3351 | MCP 客户端 (8种传输) | ✅ |
| 3 | src/utils/hooks/ | ~5121 | Hook 系统 (20+事件) | ✅ |
| 4 | src/tools/AgentTool/ | 1397 | 子 Agent 工具 | ✅ |
| 5 | src/ink/ | 104文件 | Ink 框架 (内部fork) | ✅ |
A.4 文档声称 vs 实际行数对比
| 文件 | 文档声称 | 实际行数 | 差异 | 验证 |
|---|
| main.tsx | 500+ 行 | 4683 行 | 9倍 | ❌ 严重低估 |
| Tool.ts | 200 行 | 792 行 | 4倍 | ❌ 严重低估 |
| App.tsx | 96 行 | 55 行 | -43% | ❌ 严重高估 |
| cli.tsx | 302 行 | 320 行 | 6% | ⚠️ 小误差 |
| REPL.tsx | 5061 行 | 5009 行 | 1% | ✅ 基本准确 |
| claude.ts | 3419 行 | 3420 行 | 1行 | ✅ 精确 |
| client.ts | 3348 行 | 3351 行 | 3行 | ✅ 精确 |
| withRetry.ts | ~600 行 | 822 行 | 37% | ⚠️ 偏差较大 |
| client.ts (MCP) | ~200 行 | 389 行 | 95% | ⚠️ 偏差较大 |
B. 验证错误清单
B.1 严重错误(❌)— 9 处
| # | 文档 | 错误声明 | 实际情况 | 影响 |
|---|
| 1 | source-map.md | 784 个文件 | 实际 2799 个 | 严重低估代码规模 |
| 2 | overview.md | 500+ 源文件 | 实际 2768 个 | 严重低估代码规模 |
| 3 | code-map.md | main.tsx 500+ 行 | 实际 4683 行 | 低估核心文件复杂度 |
| 4 | code-map.md | Tool.ts 200 行 | 实际 792 行 | 低估接口复杂度 |
| 5 | ink-tui.md | App.tsx 96 行 | 实际 55 行 | 高估文件大小 |
| 6 | ink-tui.md | BootstrapBoundary 组件 | 不存在 | 虚构组件 |
| 7 | repl-screen-deep.md | ReplRuntimeBoundary | 不存在 | 虚构组件 |
| 8 | sessions-and-state.md | 会话路径 ~/.claude/sessions/ | 实际为 ~/.claude/projects/ | 路径错误 |
| 9 | 多篇文档 | Tool.execute() 方法 | 实际为 Tool.call() | 方法名错误 |
B.2 部分错误(⚠️)— 15+ 处
| # | 文档 | 声明 | 实际 | 差异 |
|---|
| 1 | cc-architecture.md | bootstrap-entry.ts (5行) | 不存在,逻辑合并到 cli.tsx | 版本差异 |
| 2 | cc-architecture.md | cli.tsx 302行 | 320行 | 6% |
| 3 | cc-architecture.md | main.tsx 4690行 | 4683行 | <1% |
| 4 | api-client-deep.md | withRetry.ts ~600行 | 822行 | 37% |
| 5 | api-client-deep.md | client.ts ~200行 | 389行 | 95% |
| 6 | repl-screen-deep.md | REPL.tsx 5061行 | 5009行 | 1% |
| 7 | source-map.md | MCP 文件数 23 | 34 | 48% |
| 8 | DEEP_ANALYSIS.md | 内置工具数 60+ | 实际 54 | ~10% |
| 9 | DEEP_ANALYSIS.md | MCP 传输 6 种 | 实际 8 种 | 25% |
B.3 最精确的文档(✅)
| 文档 | 精确度 |
|---|
| api-client-deep.md | claude.ts 3419→3420 (误差1行) |
| mcp-client-deep.md | client.ts 3348→3351 (误差3行) |
| bash-system-deep.md | 5个文件行数全部精确匹配 |
| print-system-deep.md | 所有行数误差 <1% |
| pitfalls.md | 7个误解全部验证正确 |
| system-prompt-sources.md | 最详尽的参考文档 |
C. 参考资料来源
C.1 源码
| 来源 | 路径 | 说明 |
|---|
| 反编译还原版 | /Users/xcxs/Documents/coding/cc/claude-code-release/ | 主要研究对象 |
| 鲲鹏 Talk 还原版 | /Users/xcxs/Documents/coding/cc/claude-code-rev/ | 参考对照 |
C.2 分析文档
| 来源 | 路径 | 数量 |
|---|
| 深度分析文档 | /Users/xcxs/Documents/coding/cc/how-claude-code-works/ | 45 篇 |
| 验证报告 | VERIFY_PART_A.md / B.md / C.md | 3 份 |
| 深度分析 | DEEP_ANALYSIS.md | 1 份 |
| 验证版完整指南 | FINAL_VERIFIED_GUIDE.md | 1 份 |
C.3 官方文档
D. 术语表
| 术语 | 英文 | 定义 |
|---|
| 查询循环 | Query Loop | LLM 多轮对话的核心状态机 |
| Continue 类型 | Continue Type | 查询循环的状态转换类型 |
| 行为元数据 | Behavioral Metadata | 编码工具行为特征的元数据字段 |
| 流式执行器 | Streaming Tool Executor | 在 LLM 流式输出过程中执行工具的组件 |
| 权限管道 | Permission Pipeline | 多层有序的权限检查流程 |
| 熔断器 | Circuit Breaker | 连续错误达到阈值时自动断开的保护机制 |
| 上下文压缩 | Context Compaction | 当上下文接近 token 限制时的自动压缩机制 |
| Prompt Cache | Prompt Cache | Claude API 的前缀缓存机制 |
| CLAUDE.md | CLAUDE.md | Claude Code 的项目级配置文件 |
| MCP | Model Context Protocol | 模型上下文协议,用于外部工具集成 |
| Hook | Hook | 生命周期钩子,允许外部代码介入执行流程 |
| Fork 模式 | Fork Mode | 共享 prompt cache 的子 Agent 创建模式 |
| DCE | Dead Code Elimination | 构建时死代码消除 |
| PTL | Prompt Too Long | 上下文过长错误 |
| ReAct | Reasoning + Acting | 推理与行动交替的 Agent 模式 |
| STE | StreamingToolExecutor | 流式工具执行器的缩写 |
| Fail-Closed | Fail-Closed | 默认拒绝的安全策略 |
| Fail-Open | Fail-Open | 默认允许的策略 |
| Short-Circuit | Short-Circuit | 满足条件立即返回,不继续执行后续步骤 |
| Structure Sharing | Structure Sharing | 不可变数据结构中的共享引用优化 |
| Actor | Actor | 独立运行、通过消息通信的并发单元 |
| Memoize | Memoize | 函数结果缓存,相同输入返回缓存结果 |
| LRU | Least Recently Used | 最近最少使用的缓存淘汰策略 |
E. 课程版本历史
| 版本 | 日期 | 变更 |
|---|
| v1.0 | 2026-05-28 | 初始版本,基于 FINAL_VERIFIED_GUIDE.md 和 DEEP_ANALYSIS.md |
← 10-实操练习 | 返回课程总览 →