服务层概览
src/services/ 目录包含 Claude Code 的所有后台服务和基础设施服务,约 130 个文件分布在 20 个子目录中,另有 16 个顶层散文件。
服务架构图
┌─────────────────────────────────────────────────────────────┐
│ 应用层 │
├───────────────┬──────────────────┬──────────────────────────┤
│ Compact │ Analytics │ Background Services │
│ (上下文压缩) │ (遥测分析) │ (后台服务) │
├───────────────┼──────────────────┼──────────────────────────┤
│ MCP │ OAuth │ Tools Service │
│ (协议服务) │ (认证授权) │ (工具管理) │
├───────────────┼──────────────────┼──────────────────────────┤
│ LSP │ Enterprise │ Plugins │
│ (语言服务) │ (企业功能) │ (插件系统) │
└───────────────┴──────────────────┴──────────────────────────┘服务目录清单
| 子目录 | 文件数 | 功能 |
|---|---|---|
| compact/ | 11 | 上下文压缩系统(micro/auto/session) |
| analytics/ | 9 | 遥测、事件追踪(Datadog + 1P) |
| mcp/ | 23 | MCP 协议客户端完整实现 |
| lsp/ | 7 | Language Server Protocol 集成 |
| oauth/ | 5 | OAuth 2.0 + SSO 认证 |
| tools/ | 4 | 工具注册与管理 |
| plugins/ | — | 插件系统 |
| tips/ | — | 提示信息 |
| policyLimits/ | — | 策略限制 |
| remoteManagedSettings/ | — | 远程托管设置 |
| settingsSync/ | — | 设置同步 |
| teamMemorySync/ | — | 团队记忆同步 |
| AgentSummary/ | — | Agent 摘要 |
| autoDream/ | — | 离线知识整合 |
| extractMemories/ | — | 记忆提取 |
| PromptSuggestion/ | — | 提示建议 |
| MagicDocs/ | — | 文档自动生成 |
| toolUseSummary/ | — | 工具使用摘要 |
| SessionMemory/ | 3 | 会话记忆 |
顶层文件 (16个): awaySummary.ts, claudeAiLimits.ts, voice.ts, vcr.ts, tokenEstimation.ts, notifier.ts, preventSleep.ts, diagnosticTracking.ts 等
服务生命周期
App 启动
├── init() 阶段
│ ├── Analytics 初始化(Datadog + 1P sinks)
│ ├── OAuth token 验证
│ ├── MCP 服务器启动
│ └── Hooks 注册
│
├── REPL 运行阶段
│ ├── Compact 上下文管理(持续)
│ ├── Background services(按条件启动)
│ ├── LSP 连接(按需)
│ └── AutoMode 分类(按需)
│
└── 退出阶段
├── Analytics flush(异步)
├── MCP 服务器关闭
└── Session 清理设计原则
- 独立性:服务间零耦合
- 可降级:单个服务故障不影响核心功能
- 延迟加载:按需初始化,不拖慢启动
文档导航
| 文档 | 涵盖服务 |
|---|---|
| 上下文压缩系统 | compact/ — 三层压缩架构 |
| 遥测分析系统 | analytics/ — 双 Sink 管道 |
| MCP 协议服务 | mcp/ — 完整 MCP 实现 |
| 语言服务器 | lsp/ — LSP 集成 |
| 认证授权 | oauth/ — OAuth 2.0 + SSO |
| 工具管理服务 | tools/ — 工具注册、过滤 |
| 后台服务 | autoDream, extractMemories 等 |
| 企业功能 | 策略、设置同步 |