Files
aiagent/clode/modules.md
renjianbo beff3fac8d fix: delete agent 500 error + dynamic personality + deployment guide
- Fix delete agent 500: clean up FK records (agent_llm_logs, permissions,
  schedules, executions, team_members) and unbind goals/tasks before delete
- Remove hardcoded personality templates in Android, replace with dynamic
  system prompt generation from name + description
- Set promptSectionsEnabled=false to bypass PromptComposer for personality
- Add Tencent Cloud Linux deployment guide (Docker Compose)
- Accumulated backend service updates, frontend UI fixes, Android app changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-29 01:17:21 +08:00

622 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 源码状态生成*