# Claude Code 模块详解 本文档逐个分析 `src/` 下每个目录和关键文件的职责。 --- ## 1. Entry Points (`src/entrypoints/`) ### cli.tsx (39KB) CLI 主入口。职责: - 注入 `globalThis.MACRO` 全局变量(版本号、构建时间等) - 设置环境变量(COREPACK_ENABLE_AUTO_PIN、NODE_OPTIONS 等) - 快速路径路由:`--version` / `--dump-system-prompt` / `--chrome-native-host` / `--computer-use-mcp` 等 - 加载 Commander 参数解析,挂载 60+ 命令 - 启动主 REPL 界面 ### init.ts (14KB) 项目初始化逻辑(`claude init` 命令),负责检测仓库环境、创建 CLAUDE.md 等。 ### mcp.ts (6KB) MCP 服务端入口,启动 MCP Server 供 IDE 插件连接。 ### sdk/ (子目录) Agent SDK 的运行时常量类型导出。 ### agentSdkTypes.ts (13KB) Agent SDK / Swarm SDK 的消息类型定义(SDKMessage, SDKStatus 等)。 ### sandboxTypes.ts (6KB) 沙箱执行环境相关类型定义。 --- ## 2. 屏幕 (`src/screens/`) ### REPL.tsx (900KB) **项目最大文件**。交互式对话主界面,包含: - 消息列表渲染 (虚拟滚动) - 输入处理 (普通/多行/Vim 模式) - 状态栏集成 - 权限请求流程 - 模态弹窗管理 - 键盘快捷键处理 ### Doctor.tsx (73KB) 诊断界面,检查环境配置(Bun 版本、网络、API Key 等),提供修复建议。 ### ResumeConversation.tsx (60KB) 会话恢复界面,列出历史会话供用户选择恢复。 --- ## 3. 组件 (`src/components/`) ### 核心 UI 组件 | 文件 | 大小 | 职责 | |---|---|---| | `App.tsx` | 5KB | 应用根组件,环境检测 + 屏幕路由 | | `Messages.tsx` | 148KB | 消息列表容器,消息增删改查 | | `VirtualMessageList.tsx` | 149KB | 虚拟滚动消息列表(大数据量优化) | | `Message.tsx` | 79KB | 单条消息渲染(含工具调用/思考/文本) | | `MessageRow.tsx` | 48KB | 消息行容器(头像/时间戳/操作按钮) | | `MessageSelector.tsx` | 116KB | 消息过滤器/搜索 | | `FullscreenLayout.tsx` | 85KB | 全屏布局容器,处理窗口大小变化 | | `TextInput.tsx` | 21KB | 主输入框组件 | | `VimTextInput.tsx` | 16KB | Vim 模式输入框 | | `BaseTextInput.tsx` | 19KB | 输入框基础组件 | ### 状态和反馈 | 文件 | 大小 | 职责 | |---|---|---| | `StatusLine.tsx` | 49KB | 底部状态栏(模型/成本/任务数) | | `Spinner.tsx` | 88KB | 加载/思考动画 | | `Stats.tsx` | 154KB | 用量统计展示 | | `Feedback.tsx` | 88KB | 用户反馈提交 | | `TokenWarning.tsx` | 21KB | Token 超限警告 | ### 交互弹窗 | 文件 | 大小 | 职责 | |---|---|---| | `PermissionsDialog` | 多文件 | 工具权限请求弹窗 | | `ModelPicker.tsx` | 54KB | 模型选择器 | | `ThemePicker.tsx` | 35KB | 主题选择器 | | `Onboarding.tsx` | 31KB | 新手引导 | | `GlobalSearchDialog.tsx` | 44KB | 全局搜索 | | `HistorySearchDialog.tsx` | 20KB | 历史搜索 | | `ExportDialog.tsx` | 19KB | 会话导出 | ### 工具相关 UI | 文件 | 大小 | 职责 | |---|---|---| | `FileEditToolDiff.tsx` | 22KB | 文件编辑 Diff 展示 | | `ToolUseLoader.tsx` | 4KB | 工具调用加载动画 | | `FallbackToolUseErrorMessage.tsx` | 12KB | 工具调用错误提示 | | `CoordinatorAgentStatus.tsx` | 36KB | Agent 协调器状态 | ### 功能组件 | 文件 | 大小 | 职责 | |---|---|---| | `Markdown.tsx` | 28KB | Markdown 渲染(含代码高亮) | | `MarkdownTable.tsx` | 47KB | Markdown 表格渲染 | | `HighlightedCode.tsx` | 17KB | 代码语法高亮 | | `StructuredDiff.tsx` | 25KB | 结构化 Diff 渲染 | | `TaskListV2.tsx` | 50KB | 任务列表面板 | | `ContextVisualization.tsx` | 76KB | 上下文可视化 | | `AutoUpdater.tsx` | 30KB | 自动更新 | | `ThinkingToggle.tsx` | 18KB | 思考开关切换 | | `OutputStylePicker.tsx` | 13KB | 输出样式选择 | | `CompactSummary.tsx` | 14KB | 对话压缩摘要 | ### Bridge 相关 | 文件 | 大小 | 职责 | |---|---|---| | `BridgeDialog.tsx` | 34KB | 远程连接对话框 | | `RemoteEnvironmentDialog.tsx` | 33KB | 远程环境配置 | | `TrustDialog/` | 目录 | 设备信任验证 | ### 子目录 - **`components/agents/`** — Agent 相关子组件 - **`components/design-system/`** — 设计系统基础组件 - **`components/diff/`** — Diff 渲染组件 - **`components/grove/`** — 树/图可视化 - **`components/hooks/`** — 组件专用 Hooks - **`components/mcp/`** — MCP 服务器管理 UI - **`components/memory/`** — 记忆管理 UI - **`components/messages/`** — 消息子组件 - **`components/permissions/`** — 权限弹窗组件 - **`components/sandbox/`** — 沙箱 UI - **`components/shell/`** — Shell 输出渲染 - **`components/skills/`** — 技能管理 UI - **`components/tasks/`** — 任务管理 UI - **`components/teams/`** — 团队功能 UI - **`components/ui/`** — 通用 UI 原子组件 - **`components/wizard/`** — 向导式流程 --- ## 4. 终端渲染层 (`src/ink/`) 对 `ink` 库的深度扩展,实现了自定义终端渲染管道。 | 文件 | 大小 | 职责 | |---|---|---| | `ink.tsx` | 253KB | 核心 Ink 渲染钩子 (useInput/useStdin/useStdout) | | `screen.ts` | 50KB | 终端屏幕缓冲区 (ANSI 输出缓存和 diff 计算) | | `output.ts` | 26KB | 输出流管理 | | `render-node-to-output.ts` | 64KB | 虚拟 DOM 节点 → ANSI 字符串转换 | | `selection.ts` | 35KB | 终端文本选择和复制 | | `Ansi.tsx` | 33KB | ANSI 转义序列 React 组件化 | | `styles.ts` | 21KB | 终端样式系统 (颜色、边框、Flexbox) | | `parse-keypress.ts` | 24KB | 终端按键事件解析 | | `reconciler.ts` | 15KB | React Reconciler 自定义实现 | | `dom.ts` | 15KB | 虚拟 DOM 树构建 | | `renderer.ts` | 7KB | 渲染器入口 | | `render-to-screen.ts` | 8KB | 屏幕级渲染协调 | | `root.ts` | 4KB | React Root 管理 | | `focus.ts` | 5KB | 焦点管理 | | `frame.ts` | 4KB | 帧率控制 | | `log-update.ts` | 27KB | 日志输出更新 (类似 log-update npm 包) | | `colorize.ts` | 7KB | 颜色处理辅助 | | `bidi.ts` | 4KB | 双向文本 (RTL/LTR) | | `stringWidth.ts` | 7KB | 字符串宽度计算 (CJK 支持) | | `wrap-text.ts` | 1KB | 文本换行 | | `hit-test.ts` | 4KB | 点击检测 | | `terminal.ts` | 8KB | 终端查询 (尺寸/颜色/能力) | | `terminal-querier.ts` | 8KB | 终端能力检测 | | `termio/` | 子目录 | 终端 IO 抽象 | | `layout/` | 子目录 | Flexbox 布局引擎 | | `hooks/` | 子目录 | Ink 内部 Hooks | | `events/` | 子目录 | 事件系统 | | `components/` | 子目录 | Ink 基础组件 (Text/Box/Newline 等) | --- ## 5. 工具系统 (`src/tools/`) ### 核心文件 | 文件 | 大小 | 职责 | |---|---|---| | `Tool.ts` | 30KB | Tool 基类和工具注册框架 | | `tools.ts` | 17KB | 工具清单 → 所有工具的集合导出 | ### 工具目录清单(50+ 工具) 每个工具一个子目录,包含工具实现和辅助文件: **文件操作:** - `BashTool/` — Shell 命令执行 - `PowerShellTool/` — PowerShell 命令执行 - `FileReadTool/` — 文件读取 - `FileWriteTool/` — 文件写入 - `FileEditTool/` — 精准文件编辑(基于字符串替换) - `GlobTool/` — 文件名模式匹配 - `GrepTool/` — 文件内容正则搜索 - `NotebookEditTool/` — Jupyter Notebook 编辑 **AI 调用:** - `AgentTool/` — 启动子 Agent - `SkillTool/` — 执行技能 - `BriefTool/` — 摘要/压缩 - `AskUserQuestionTool/` — 向用户提问 **任务管理:** - `TaskCreateTool/` — 创建任务 - `TaskListTool/` — 列出任务 - `TaskGetTool/` — 获取任务详情 - `TaskUpdateTool/` — 更新任务状态 - `TaskOutputTool/` — 获取任务输出 - `TaskStopTool/` — 停止任务 - `TodoWriteTool/` — 写待办列表 **Web 操作:** - `WebFetchTool/` — 获取网页内容 - `WebSearchTool/` — Web 搜索 - `WebBrowserTool/` — 浏览器自动化 **MCP 协议:** - `MCPTool/` — 通用 MCP 工具调用 - `McpAuthTool/` — MCP 认证 - `ListMcpResourcesTool/` — 列出 MCP 资源 - `ReadMcpResourceTool/` — 读取 MCP 资源 **计划/工作区:** - `EnterPlanModeTool/` — 进入计划模式 - `ExitPlanModeTool/` — 退出计划模式 - `EnterWorktreeTool/` — 进入 Git Worktree - `ExitWorktreeTool/` — 退出 Git Worktree **协作/通知:** - `SendMessageTool/` — 发送消息给用户 - `SendUserFileTool/` — 发送文件给用户 - `PushNotificationTool/` — 推送通知 - `TeamCreateTool/` / `TeamDeleteTool/` — 团队管理 - `ListPeersTool/` — 列出同伴 **调度/监控:** - `ScheduleCronTool/` — 定时任务 - `MonitorTool/` — 监控检查 - `RemoteTriggerTool/` — 远程触发 - `SleepTool/` — 休眠/等待 **其他:** - `LSPTool/` — LSP 语言服务器调用 - `ToolSearchTool/` — 工具搜索 - `ConfigTool/` — 配置管理 - `CtxInspectTool/` — 上下文检查 - `DiscoverSkillsTool/` — 发现可用技能 - `SnipTool/` — 内容裁剪 - `WorkflowTool/` — 工作流执行 - `TungstenTool/` — 特殊用途工具 - `SyntheticOutputTool/` — 合成输出 - `SubscribePRTool/` — PR 订阅 - `SuggestBackgroundPRTool/` — 后台 PR 建议 - `REPLTool/` — REPL 内执行 - `ReviewArtifactTool/` — 审查产出 - `VerifyPlanExecutionTool/` — 验证计划执行 - `OverflowTestTool/` — 溢出测试 - `TerminalCaptureTool/` — 终端截图 ### 共享模块 - `tools/shared/` — 工具间共享的函数和类型 - `tools/testing/` — 测试工具和权限测试 --- ## 6. 命令系统 (`src/commands/`) 60+ 个斜杠命令,每个一个子目录或独立文件。 **会话管理:** `clear`, `compact`, `context`, `resume`, `rename`, `session`, `export` **AI 交互:** `agents`, `advisor`, `brief`, `fast`, `good-claude`, `plan`, `ultraplan`, `review` **开发工具:** `commit`, `commit-push-pr`, `diff`, `pr_comments`, `issue`, `review` **配置:** `config`, `theme`, `color`, `model`, `output-style`, `statusline`, `keybindings`, `vim` **集成:** `ide`, `desktop`, `chrome`, `mcp`, `login`, `logout`, `assistant` **远程:** `bridge`, `remote-env`, `remoteControlServer`, `teleport` **诊断:** `doctor`, `cost`, `stats`, `env`, `usage`, `heapdump`, `break-cache` **协作:** `peers`, `share`, `feedback`, `btw` **其他:** `add-dir`, `autofix-pr`, `bughunter`, `branch`, `fork`, `help`, `init`, `install-github-app`, `install-slack-app`, `memory`, `mobile`, `onboarding`, `passes`, `perf-issue`, `plugin`, `privacy-settings`, `release-notes`, `reload-plugins`, `rewind`, `sandbox-toggle`, `security-review`, `skills`, `status`, `stickers`, `subscribe-pr`, `summary`, `tag`, `tasks`, `thinkback`, `thinkback-play`, `upgrade`, `voice`, `workflows` ### 命令实现模式 每个命令文件导出一个默认对象: ```typescript export default { name: 'command-name', description: '...', aliases: ['...'], args: [...], run: async (args) => { /* 命令实现 */ } } ``` --- ## 7. Bridge 系统 (`src/bridge/`) 实现远程协作/会话同步的核心。 | 文件 | 大小 | 职责 | |---|---|---| | `replBridge.ts` | 102KB | REPL 桥接主逻辑,状态同步 | | `bridgeMain.ts` | 118KB | Bridge 主控制器,WebSocket 连接管理 | | `bridgeApi.ts` | 18KB | Bridge REST API 客户端 | | `bridgeMessaging.ts` | 16KB | 结构化消息序列化/反序列化 | | `remoteBridgeCore.ts` | 40KB | 远程桥接核心协议 | | `initReplBridge.ts` | 24KB | REPL 桥接初始化 | | `replBridgeTransport.ts` | 15KB | REPL 桥接传输层 | | `sessionRunner.ts` | 18KB | 会话运行器(远程执行) | | `bridgeUI.ts` | 17KB | Bridge UI 状态管理 | | `createSession.ts` | 12KB | 远程会话创建流程 | | `bridgeEnabled.ts` | 8KB | Bridge 开关检测 | | `bridgeConfig.ts` | 1KB | Bridge 配置 | | `bridgePermissionCallbacks.ts` | 1KB | 远程权限回调 | | `inboundAttachments.ts` | 6KB | 入站附件处理 | | `inboundMessages.ts` | 2KB | 入站消息处理 | | `trustedDevice.ts` | 7KB | 设备信任管理 | | `jwtUtils.ts` | 9KB | JWT 令牌处理 | | `workSecret.ts` | 4KB | 工作密钥管理 | | `flushGate.ts` | 2KB | 会话刷写门控 | | `types.ts` | 10KB | Bridge 相关类型 | --- ## 8. Task 系统 (`src/tasks/`) | 文件 | 大小 | 职责 | |---|---|---| | `LocalMainSessionTask.ts` | 15KB | 主会话任务(创建 QueryEngine) | | `types.ts` | 1KB | TaskState 联合类型 | | `pillLabel.ts` | 2KB | 任务标签 UI | | `stopTask.ts` | 2KB | 任务停止逻辑 | ### 子目录 - `LocalAgentTask/` — 本地 Agent 任务 - `RemoteAgentTask/` — 远程 Agent 任务 - `LocalShellTask/` — 后台 Shell 任务 - `LocalWorkflowTask/` — 工作流任务 - `InProcessTeammateTask/` — 协程式队友任务 - `MonitorMcpTask/` — MCP 监控任务 - `DreamTask/` — 后台思考任务 --- ## 9. 内存/记忆 (`src/memdir/`) | 文件 | 大小 | 职责 | |---|---|---| | `memdir.ts` | 21KB | 记忆目录核心:读取/写入 MEMORY.md 文件 | | `memoryTypes.ts` | 23KB | 四种记忆类型定义与验证 | | `findRelevantMemories.ts` | 5KB | 语义相关性匹配 | | `memoryScan.ts` | 3KB | 记忆文件扫描 | | `memoryAge.ts` | 1KB | 记忆时间戳和新鲜度 | | `paths.ts` | 10KB | 项目/用户记忆路径计算 | | `teamMemPaths.ts` | 11KB | 团队共享记忆路径 | | `teamMemPrompts.ts` | 6KB | 团队记忆 Prompt 构建 | --- ## 10. Services (`src/services/`) | 目录/文件 | 职责 | |---|---| | `api/` | Anthropic API 调用封装(claude.ts, errors.ts, logging.ts) | | `mcp/` | MCP 协议实现(客户端/服务端/传输层/OAuth) | | `oauth/` | OAuth 认证流程 | | `lsp/` | LSP 语言服务器集成 | | `voice/` | 语音服务(STT/TTS) | | `voiceStreamSTT.ts` | 实时语音转文字流 | | `voice.ts` | 语音功能主入口 | | `voiceKeyterms.ts` | 语音关键词检测 | | `analytics/` | 遥测和事件追踪 | | `autoDream/` | 自动 Dream 模式 | | `compact/` | 对话压缩服务 | | `contextCollapse/` | 上下文折叠 | | `extractMemories/` | 自动提取记忆 | | `plugins/` | 插件加载 | | `settingsSync/` | 设置同步 | | `teamMemorySync/` | 团队记忆同步 | | `toolUseSummary/` | 工具调用摘要 | | `sessionTranscript/` | 对话转写 | | `remoteManagedSettings/` | 远程管理配置 | | `AgentSummary/` | Agent 活动摘要 | | `MagicDocs/` | 魔法文档 | | `PromptSuggestion/` | 提示建议 | | `SessionMemory/` | 会话记忆 | | `tips/` | 使用提示 | | `policyLimits/` | 策略限制 | | `skillSearch/` | 技能搜索 | | `mockRateLimits.ts` (30KB) | 速率限制模拟 | | `rateLimitMessages.ts` | 速率限制提示消息 | | `claudeAiLimits.ts` | Claude API 配额管理 | --- ## 11. UI 状态管理 (`src/state/` + `src/context/`) ### State | 文件 | 大小 | 职责 | |---|---|---| | `AppStateStore.ts` | 22KB | 全局状态类型定义和默认值 | | `AppState.tsx` | 23KB | React Provider 包装 | | `store.ts` | 0.8KB | createStore 工厂函数 | | `selectors.ts` | 2KB | 状态选择器 | | `onChangeAppState.ts` | 6KB | 状态变更监听 | | `teammateViewHelpers.ts` | 4KB | 队友视图辅助 | ### Context | 文件 | 大小 | 职责 | |---|---|---| | `notifications.tsx` | 33KB | 通知系统 | | `overlayContext.tsx` | 14KB | 模态层管理 | | `promptOverlayContext.tsx` | 12KB | 提示覆盖层 | | `voice.tsx` | 8KB | 语音上下文 | | `modalContext.tsx` | 6KB | 模态框上下文 | | `mailbox.tsx` | 3KB | 消息邮箱 | | `stats.tsx` | 22KB | 统计信息上下文 | | `QueuedMessageContext.tsx` | 5KB | 排队消息 | | `fpsMetrics.tsx` | 3KB | 帧率指标 | --- ## 12. Hooks (`src/hooks/`) 80+ 个 React Hooks,核心的几个: | 文件 | 大小 | 职责 | |---|---|---| | `useReplBridge.tsx` | 116KB | REPL 主逻辑 Hook(最大 Hook) | | `useTypeahead.tsx` | 213KB | 输入补全/建议 | | `useVoiceIntegration.tsx` | 100KB | 语音集成 | | `useVoice.ts` | 46KB | 语音录制/处理 | | `useCanUseTool.tsx` | 40KB | 工具权限判断 | | `useVirtualScroll.ts` | 35KB | 虚拟滚动 | | `useInboxPoller.ts` | 35KB | 邮箱轮询 | | `useGlobalKeybindings.tsx` | 31KB | 全局快捷键 | | `useArrowKeyHistory.tsx` | 34KB | 方向键历史导航 | | `useFileSuggestions.ts` | 27KB | 文件路径补全 | | `useTextInput.ts` | 17KB | 文本输入处理 | | `useRemoteSession.ts` | 23KB | 远程会话 | | `usePasteHandler.ts` | 10KB | 粘贴处理 | | `useIDEIntegration.tsx` | 10KB | IDE 集成 | | `useLspPluginRecommendation.tsx` | 21KB | LSP 插件推荐 | | `useSSHSession.ts` | 8KB | SSH 会话 | | `useHistorySearch.ts` | 9KB | 历史搜索 | | `useDiffInIDE.ts` | 10KB | IDE Diff | | `useScheduledTasks.ts` | 6KB | 定时任务 | | `useTasksV2.ts` | 9KB | 任务列表 V2 | | `useVimInput.ts` | 10KB | Vim 输入模式 | --- ## 13. Utils (`src/utils/`) 240+ 个工具模块文件,按功能分组: ### 核心工具 | 文件 | 大小 | 职责 | |---|---|---| | `config.ts` | 65KB | 配置管理(读取/写入/合并) | | `hooks.ts` | 164KB | Hook 系统实现(事件钩子注册/触发) | | `messages.ts` | 198KB | 消息处理与转换 | | `sessionStorage.ts` | 185KB | 会话持久化到磁盘 | | `attachments.ts` | 131KB | 附件处理(图片/PDF/文件) | | `teleport.tsx` | 177KB | Teleport 功能(跨仓库会话迁移) | | `ansiToPng.ts` | 215KB | ANSI 终端输出转 PNG | | `auth.ts` | 67KB | 认证管理(API Key/OAuth) | ### Git/文件 | 文件 | 大小 | 职责 | |---|---|---| | `git.ts` | 31KB | Git 操作封装 | | `gitDiff.ts` | 16KB | Git Diff 生成 | | `fileHistory.ts` | 35KB | 文件编辑历史追踪 | | `file.ts` | 18KB | 通用文件操作 | | `ripgrep.ts` | 21KB | 调用 ripgrep 搜索 | | `glob.ts` | 4KB | Glob 模式匹配 | | `fileRead.ts` | 3KB | 文件读取辅助 | ### 终端/UI | 文件 | 大小 | 职责 | |---|---|---| | `Cursor.ts` | 48KB | 终端光标管理 | | `Shell.ts` | 17KB | Shell 进程管理 | | `theme.ts` | 27KB | 主题系统 | | `terminal.ts` | 4KB | 终端检测 | | `ide.ts` | 48KB | IDE 集成 | | `exportRenderer.tsx` | 16KB | 对话导出渲染 | | `staticRender.tsx` | 12KB | 静态渲染 | ### 会话 | 文件 | 大小 | 职责 | |---|---|---| | `sessionStoragePortable.ts` | 26KB | 跨平台会话存储 | | `sessionRestore.ts` | 20KB | 会话恢复 | | `conversationRecovery.ts` | 21KB | 对话崩溃恢复 | | `sessionStart.ts` | 8KB | 会话启动 | | `sessionActivity.ts` | 4KB | 会话活动追踪 | | `sessionTitle.ts` | 4KB | 会话标题生成 | ### 网络/代理 | 文件 | 大小 | 职责 | |---|---|---| | `api.ts` | 26KB | API 请求封装 | | `proxy.ts` | 13KB | 代理配置 | | `mtls.ts` | 4KB | mTLS 双向认证 | ### 其他重要工具 | 文件 | 大小 | 职责 | |---|---|---| | `fastMode.ts` | 18KB | 快速模式 | | `forkedAgent.ts` | 25KB | Agent Fork | | `tasks.ts` | 27KB | 任务管理 | | `analyzeContext.ts` | 44KB | 上下文分析 | | `worktree.ts` | 51KB | Git Worktree 管理 | | `claudemd.ts` | 47KB | CLAUDE.md 文件解析 | | `betas.ts` | 16KB | Beta 功能管理 | | `releaseNotes.ts` | 12KB | 发布说明 | | `commitAttribution.ts` | 30KB | 提交归因 | | `thinking.ts` | 5KB | 思考模式管理 | | `imageResizer.ts` | 27KB | 图片尺寸调整 | | `imagePaste.ts` | 14KB | 图片粘贴处理 | | `gracefulShutdown.ts` | 20KB | 优雅退出 | | `cleanup.ts` | 18KB | 资源清理 | | `json.ts` | 9KB | JSON 解析/修复 | | `markdownConfigLoader.ts` | 21KB | Markdown 配置加载 | | `editor.ts` | 6KB | 外部编辑器调用 | | `heapDumpService.ts` | 10KB | 堆转储 | | `stats.ts` | 34KB | 统计数据 | | `status.tsx` | 48KB | 状态栏逻辑 | | `statusNoticeDefinitions.tsx` | 30KB | 状态通知定义 | | `preflightChecks.tsx` | 17KB | 启动前检查 | --- ## 14. 其他重要模块 ### Vim 模式 (`src/vim/`) | 文件 | 大小 | 职责 | |---|---|---| | `types.ts` | 6KB | Vim 模式类型定义 | | `transitions.ts` | 12KB | 模式切换状态机 | | `operators.ts` | 16KB | Vim 操作符 (d/c/y 等) | | `textObjects.ts` | 5KB | 文本对象 (iw/aw 等) | | `motions.ts` | 1KB | 运动命令 (w/b/^/$ 等) | ### 键盘快捷键 (`src/keybindings/`) | 文件 | 大小 | 职责 | |---|---|---| | `KeybindingProviderSetup.tsx` | 41KB | 快捷键 Provider 安装 | | `KeybindingContext.tsx` | 26KB | 快捷键 React Context | | `defaultBindings.ts` | 11KB | 默认快捷键绑定 | | `loadUserBindings.ts` | 15KB | 用户自定义快捷键加载 | | `validate.ts` | 14KB | 快捷键配置校验 | | `schema.ts` | 6KB | 快捷键声明模式 | | `parser.ts` | 5KB | 快捷键字符串解析 | | `resolver.ts` | 7KB | 快捷键冲突解决 | | `match.ts` | 3KB | 快捷键匹配 | ### 技能系统 (`src/skills/`) | 文件 | 大小 | 职责 | |---|---|---| | `loadSkillsDir.ts` | 35KB | 技能目录加载和解析 | | `bundledSkills.ts` | 7KB | 内置技能列表 | ### 插件系统 (`src/plugins/`) | 文件 | 大小 | 职责 | |---|---|---| | `builtinPlugins.ts` | 5KB | 内置插件 | --- ## 15. 常量与类型 (`src/constants/` + `src/types/`) ### 常量 | 文件 | 大小 | 职责 | |---|---|---| | `prompts.ts` | 55KB | **系统提示词**,最大的常量文件 | | `outputStyles.ts` | 10KB | 输出样式定义 | | `tools.ts` | 4KB | 工具名称常量 | | `product.ts` | 2KB | 产品信息常量 | | `oauth.ts` | 9KB | OAuth 端点配置 | | `github-app.ts` | 5KB | GitHub App 配置 | | `spinnerVerbs.ts` | 3KB | Spinner 动画文案 | | `xml.ts` | 3KB | XML 标签常量 | ### 类型 | 文件 | 大小 | 职责 | |---|---|---| | `plugin.ts` | 11KB | 插件接口类型 | | `permissions.ts` | 13KB | 权限相关类型 | | `textInputTypes.ts` | 12KB | 输入相关类型 | | `command.ts` | 7KB | 命令接口类型 | | `hooks.ts` | 9KB | Hook 接口类型 | --- *本文档基于 2026-06-11 源码状态生成*