跳转到内容

核心文件索引

路径约行数职责
cli/src/index.ts150CLI 入口,参数解析,进程设置
cli/src/main.ts300启动序列:配置加载 → 鉴权 → agent 初始化
cli/src/cli.ts250Commander.js 命令定义,flag 解析
cli/src/constants.ts200全局常量:模型名称、超时、限制
路径约行数职责
cli/src/config/config.ts400多源配置合并(flags > 环境变量 > 项目 > 用户 > 默认值)
cli/src/config/schema.ts350所有配置选项的 Zod schema
cli/src/config/claudeMd.ts200CLAUDE.md 文件发现与解析(项目 → 用户 → 企业层级)
cli/src/config/settings.ts250设置持久化与 .claude/settings.json 管理
路径约行数职责
cli/src/agent/agent.ts500核心 agent 类:管理对话循环生命周期
cli/src/agent/agentLoop.ts600async generator 循环:LLM 调用 → tool 分发 → 结果收集 → 重复
cli/src/agent/turn.ts400单次 turn 处理:stream 处理、tool 提取、停止条件检查
cli/src/agent/stopConditions.ts200停止条件评估:end_turn、max_tokens、tool_use、错误状态
cli/src/agent/costTracker.ts300token 计数、成本计算、预算执行
路径约行数职责
cli/src/tools/toolRegistry.ts350中央 tool 注册表:注册、查找、schema 校验
cli/src/tools/toolExecutor.ts400tool 执行编排:permission 检查 → 执行 → 格式化结果
cli/src/tools/streamingToolExecutor.ts500streaming tool 执行器:解析部分 JSON,在 stream 结束前执行
cli/src/tools/toolDefinitions.ts300API 的 tool schema 定义(名称、描述、输入 schema)
cli/src/tools/impl/readFile.ts250ReadFile tool:文件读取,带编码检测、行数限制
cli/src/tools/impl/writeFile.ts350WriteFile/Edit tool:文件写入,带 diff 生成、备份
cli/src/tools/impl/bash.ts600Bash tool:带 streaming 输出的 shell 命令执行
cli/src/tools/impl/glob.ts200Glob tool:遵循 gitignore 的文件模式匹配
cli/src/tools/impl/grep.ts250Grep tool:支持正则、上下文行的内容搜索
cli/src/tools/impl/webSearch.ts200WebSearch tool:网络搜索集成
cli/src/tools/impl/webFetch.ts250WebFetch tool:URL 抓取,带 HTML 转 markdown
cli/src/tools/impl/todoWrite.ts200TodoWrite tool:结构化任务列表管理
cli/src/tools/impl/notebookEdit.ts300NotebookEdit tool:Jupyter notebook 单元格操作
路径约行数职责
cli/src/agent/fork.ts400Fork 机制:生成并行独立 sub-agent
cli/src/agent/coordinator.ts500Coordinator 模式:任务规划、工作者管理、重新规划
cli/src/agent/team.ts450Team/Swarm 模式:同伴 agent、mailbox 通信
cli/src/agent/subAgent.ts300Sub-agent 工厂:创建带共享 context 前缀的子 agent
cli/src/agent/worktree.ts250用于 agent 隔离的 Git worktree 管理
cli/src/agent/mailbox.ts200team 通信的共享消息队列
路径约行数职责
cli/src/context/systemPrompt.ts500System prompt 组装:身份 + 能力 + 项目 context
cli/src/context/promptCache.ts300prompt cache 优化:前缀排序、cache 断点放置
cli/src/context/compression.ts600四层压缩管道:snip → microcompact → auto compact → 截断
cli/src/context/memory.ts350内存系统:对话历史管理、消息格式化
cli/src/context/tokenCounter.ts200token 计数工具:cl100k 估算、预算追踪
路径约行数职责
cli/src/security/permissionManager.ts400permission 编排:检查 tool → 应用规则 → 提示用户
cli/src/security/bashSecurity.ts800Bash 27 层安全:AST 分析、语义检查、路径校验
cli/src/security/ruleEngine.ts350规则匹配引擎:来自多源的基于模式的允许/拒绝规则
cli/src/security/pathValidator.ts250路径校验:项目边界执行、符号链接解析
cli/src/security/threatDetector.ts300威胁检测:混淆、注入、提权模式
路径约行数职责
cli/src/streaming/sseParser.ts300Server-Sent Events 解析器:原始字节 → 类型化 stream 事件
cli/src/streaming/apiStream.ts400API streaming 客户端:连接管理、重连、中止处理
cli/src/streaming/jsonParser.ts250增量 JSON 解析器:部分 JSON → 完整值,用于提前 tool 执行
路径约行数职责
cli/src/ui/App.tsx400根 Ink 组件:布局、主题、全局状态
cli/src/ui/MessageDisplay.tsx350消息渲染:Markdown、代码块、tool 结果
cli/src/ui/ToolOutput.tsx250tool 执行显示:spinner、进度、结果格式化
cli/src/ui/PermissionPrompt.tsx200permission 对话框:tool 详情、允许/拒绝/始终选项
cli/src/ui/InputArea.tsx300用户输入:多行编辑、历史、slash command
路径约行数职责
cli/src/mcp/mcpClient.ts400MCP 客户端:连接生命周期、tool 发现、请求路由
cli/src/mcp/mcpToolAdapter.ts250将 MCP tool schema 适配为 Claude Code 的内部 tool 格式
cli/src/mcp/mcpConfig.ts200MCP 服务器配置:发现、连接设置
路径约行数职责
cli/src/hooks/hookRunner.ts300hook 执行引擎:事件匹配、脚本执行、超时管理
cli/src/hooks/hookConfig.ts200.claude/hooks.json 加载 hook 配置
cli/src/plugins/pluginLoader.ts250plugin 发现与加载:动态导入、注册
模块列出文件数约总行数占核心比例
入口与启动49003%
配置41,2005%
Agentic Loop52,0008%
Tool 系统134,20016%
Agent 协调62,1008%
Context 引擎51,9507%
Permission 与安全52,1008%
Streaming39504%
UI 层51,5006%
MCP38503%
Hook 与扩展37503%
合计(前 56 个文件)56~18,500约占 512K 的 4%