# 服务层与基础设施分析 ## 服务层架构 ```mermaid graph TB subgraph API 服务 API_CLIENT[client.ts
Anthropic API 客户端] API_CLAUDE[claude.ts
Claude API 封装] API_BOOTSTRAP[bootstrap.ts
引导逻辑] API_FILES[filesApi.ts
文件 API] API_USAGE[usage.ts
使用量查询] API_SESSION[sessionIngress.ts
会话入口] API_ERRORS[errors.ts
错误处理] API_RETRY[withRetry.ts
重试逻辑] API_GROVE[grove.ts
Grove 集成] end subgraph MCP 服务 MCP_MGR[MCPConnectionManager.tsx
MCP 连接管理器] MCP_AUTH[auth.ts
MCP 认证] MCP_CONFIG[config.ts
MCP 配置] MCP_TYPES[types.ts
MCP 类型定义] MCP_REGISTRY[officialRegistry.ts
官方注册表] MCP_VSCODE[vscodeSdkMcp.ts
VSCode SDK MCP] MCP_SDK[SdkControlTransport.ts
SDK 控制传输] MCP_NORMAL[normalization.ts
MCP 规范化] end subgraph OAuth 认证 OAUTH_FLOW[OAuth 2.0 流程] OAUTH_XAA[xaa.ts / xaaIdpLogin.ts
XAA 认证] OAUTH_PORT[oauthPort.ts
OAuth 端口] end subgraph 分析服务 ANALYTICS_GROWTH[GrowthBook 特性开关] ANALYTICS_TELEMETRY[OpenTelemetry 遥测] ANALYTICS_TRACKING[diagnosticTracking.ts
诊断追踪] end subgraph 其他服务 COMPACT[compact/
上下文压缩] POLICY[policyLimits/
组织策略限制] REMOTE_SETTINGS[remoteManagedSettings/
远程托管设置] EXTRACT_MEM[extractMemories/
自动记忆提取] TOKEN_EST[tokenEstimation.ts
Token 估算] TEAM_MEM[teamMemorySync/
团队记忆同步] SESSION_MEM[SessionMemory/
会话记忆] LSP[lsp/
Language Server Protocol] PLUGINS[plugins/
插件加载器] VOICE[voice.ts / voiceStreamSTT.ts
语音输入/STT] end ``` ## Bridge 桥接系统 Bridge 是 IDE 扩展与 Claude Code CLI 之间的双向通信层,支持 VS Code 和 JetBrains。 ```mermaid sequenceDiagram participant IDE as IDE 扩展
(VS Code / JetBrains) participant BridgeMain as bridgeMain.ts participant Messaging as bridgeMessaging.ts participant ReplBridge as replBridge.ts participant JWT as jwtUtils.ts participant Session as sessionRunner.ts participant CLI as Claude Code CLI IDE->>BridgeMain: 建立连接 BridgeMain->>JWT: JWT 认证 JWT-->>BridgeMain: 认证通过 IDE->>Messaging: 发送消息 Messaging->>ReplBridge: 转发到 REPL ReplBridge->>Session: 执行会话 Session->>CLI: 调用工具/命令 CLI-->>Session: 返回结果 Session-->>ReplBridge: 处理结果 ReplBridge-->>Messaging: 构建响应 Messaging-->>IDE: 返回结果 ``` ### Bridge 核心模块 | 文件 | 功能 | |------|------| | `bridgeMain.ts` | Bridge 主循环 | | `bridgeMessaging.ts` | 消息协议定义 | | `bridgePermissionCallbacks.ts` | 权限回调处理 | | `bridgeConfig.ts` | Bridge 配置 | | `bridgeApi.ts` | Bridge API 接口 | | `bridgeDebug.ts` | Bridge 调试工具 | | `bridgeEnabled.ts` | Bridge 启用状态检测 | | `bridgeUI.ts` | Bridge UI 组件 | | `replBridge.ts` | REPL 会话桥接 | | `replBridgeHandle.ts` | REPL Bridge 句柄 | | `replBridgeTransport.ts` | REPL Bridge 传输层 | | `initReplBridge.ts` | REPL Bridge 初始化 | | `jwtUtils.ts` | JWT 认证工具 | | `sessionRunner.ts` | 会话执行管理 | | `createSession.ts` | 会话创建 | | `codeSessionApi.ts` | Code 会话 API | | `capacityWake.ts` | 容量唤醒 | | `remoteBridgeCore.ts` | 远程 Bridge 核心 | | `trustedDevice.ts` | 受信任设备 | | `workSecret.ts` | 工作密钥 | ## 多代理协调器 ```mermaid flowchart TD A[coordinatorMode.ts] --> B{协调器模式?} B -->|是| C[分发任务给 Worker] B -->|否| D[普通模式] C --> E[Worker 1
AgentTool] C --> F[Worker 2
AgentTool] C --> G[Worker N
AgentTool] E --> H[SendMessage
消息传递] F --> H G --> H H --> I[Coordinator
汇总结果] C --> J[TaskCreate
任务创建] J --> K[TaskUpdate
任务更新] K --> L[TaskList
任务列表] ``` ## 插件系统 ```mermaid flowchart LR A[builtinPlugins.ts
内置插件] --> C[插件加载器] B[bundled/
捆绑插件] --> C D[用户插件目录
.claude/plugins/] --> C C --> E[插件注册] E --> F[工具扩展] E --> G[命令扩展] E --> H[Hook 扩展] ``` ## 技能系统 ```mermaid flowchart LR A[bundled/
捆绑技能] --> C[技能加载器] B[bundledSkills.ts
技能注册] --> C D[loadSkillsDir.ts
用户技能目录] --> C E[mcpSkillBuilders.ts
MCP 技能构建] --> C C --> F[SkillTool
技能执行] ``` ### 内置技能清单 | 技能 | 功能 | |------|------| | update-config | 配置 settings.json 和 hooks | | simplify | 代码简化和质量审查 | | loop | 定时循环执行命令 | | claude-api | Claude API / Anthropic SDK 开发 | | commit | Git 提交 | | remember | 记忆管理 | ### MCP 服务详细架构 MCP (Model Context Protocol) 服务支持多种传输协议: ```mermaid flowchart TD A[MCPConnectionManager] --> B{传输协议} B -->|stdio| C[子进程通信] B -->|SSE| D[Server-Sent Events] B -->|HTTP| E[HTTP 传输] B -->|SDK| F[SdkControlTransport
IDE SDK 控制] A --> G[officialRegistry.ts
官方 MCP 服务器注册表] A --> H[vscodeSdkMcp.ts
VS Code SDK 集成] A --> I[normalization.ts
工具名规范化] A --> J[auth.ts
认证] J --> K[OAuth 认证] J --> L[API Key 认证] J --> M[XAA 认证
xaa.ts / xaaIdpLogin.ts] ``` ### OAuth 认证流程 ```mermaid sequenceDiagram participant CLI as Claude Code participant Browser as 浏览器 participant OAuth as OAuth 服务 participant Listener as 本地监听 CLI->>OAuth: 生成 PKCE 挑战 CLI->>Browser: 打开授权页面 Browser->>OAuth: 用户授权 OAuth-->>Browser: 授权码 Browser->>Listener: 回调携带授权码 Listener->>CLI: 传递授权码 CLI->>OAuth: 用授权码 + PKCE 换取令牌 OAuth-->>CLI: Access Token + Refresh Token CLI->>CLI: 存储令牌(Keychain/文件) ``` ### LSP 服务架构 ```mermaid flowchart TD A[lsp/manager.ts
LSP 管理器
单例模式] --> B[LSPServerManager
服务器管理] B --> C[LSPServerInstance
单个服务器实例] B --> D[config.ts
服务器配置] C --> E[TypeScript Server] C --> F[Python Server] C --> G[Go Server] C --> H[其他语言服务器] A --> I[功能] I --> J[代码诊断
被动反馈] I --> K[跳转定义
hover 信息] I --> L[代码补全] I --> M[多项目并行连接] ``` ## 查询引擎 (QueryEngine.ts) QueryEngine 是核心的 LLM API 调用引擎(约 46K 行),处理流式响应、工具调用循环、思考模式和 Token 计数。 ```mermaid flowchart TD A[QueryEngine.ts
~46K 行] --> B[query.ts
查询管道
~68K 行] A --> C[流式响应处理] A --> D[工具调用循环] A --> E[思考模式管理] A --> F[重试逻辑] A --> G[Token 计数] B --> H[query/ 子模块] H --> I[查询管道子步骤] D --> J{工具调用?} J -->|是| K[执行工具] K --> L[收集结果] L --> M[继续对话循环] J -->|否| N[生成最终响应] C --> O[SSE 流解析] C --> P[增量渲染] ``` ## 权限系统 ```mermaid flowchart TD A[hooks/toolPermission/
权限系统] --> B[PermissionMode] B --> C[default
默认模式] B --> D[plan
计划模式] B --> E[bypassPermissions
绕过权限] B --> F[auto
自动模式] B --> G[dontAsk
不询问模式] A --> H[工具调用拦截] H --> I{权限检查} I -->|允许规则| J[执行] I -->|拒绝规则| K[拒绝] I -->|无规则| L[询问用户] ``` ## 特性开关体系 通过 Bun 的 `bun:bundle` 实现编译时死代码消除: | 特性开关 | 控制功能 | |----------|----------| | `PROACTIVE` | 主动模式(SleepTool) | | `KAIROS` | KAIROS 功能集 | | `BRIDGE_MODE` | IDE Bridge 模式 | | `DAEMON` | 守护进程模式 | | `VOICE_MODE` | 语音模式 | | `AGENT_TRIGGERS` | 定时触发器(Cron) | | `AGENT_TRIGGERS_REMOTE` | 远程触发器 | | `MONITOR_TOOL` | 监控工具 | | `COORDINATOR_MODE` | 多代理协调模式 | | `CONTEXT_COLLAPSE` | 上下文折叠 | | `TERMINAL_PANEL` | 终端面板 | | `WEB_BROWSER_TOOL` | Web 浏览器工具 | | `WORKFLOW_SCRIPTS` | 工作流脚本 | | `HISTORY_SNIP` | 历史记录剪辑 | | `UDS_INBOX` | UDS 收件箱 | | `OVERFLOW_TEST_TOOL` | 溢出测试工具 |