# 基础设施设计 > **所属项目**: free-code .NET 10 重写 > **文档类型**: 模块索引 > **对应源码**: `../../src/services/mcp/`, `../../src/services/lsp/`, `../../src/bridge/`, `../../src/tasks/`, `../../src/state/` > **配套文档**: [总体概述](../总体概述与技术选型/总体概述与技术选型.md) | [核心模块设计](../核心模块设计/核心模块设计.md) --- ## 概述 基础设施层负责支撑整个 CLI 运行时的底层能力,包括外部协议对接、IDE 通信、任务调度和全局状态管理。这一层不直接实现业务逻辑,而是为核心模块提供可靠的基础服务。 原始 TypeScript 实现分散在多个目录中,总计约 76 个文件。.NET 10 重写将其整理为五个职责清晰的子模块,每个子模块通过接口向上层暴露能力,内部实现细节完全封装。 --- ## 子模块列表 ### [MCP 协议集成](基础设施设计-MCP协议集成.md) 管理多个 MCP 服务器连接,实现 JSON-RPC 2.0 传输层(Stdio、SSE、Streamable HTTP、WebSocket、进程内),并将 MCP 工具适配为统一的 `ITool` 接口供工具系统使用。 - 原始源码: `../../src/services/mcp/`(22 个文件) - 核心类型: `IMcpClientManager`、`MCPServerConnection`、`McpClient`、`McpAuthService` --- ### [LSP 集成](基础设施设计-LSP集成.md) 管理语言服务器协议(LSP)子进程的生命周期,提供跳转定义、查找引用、悬停提示、重命名、诊断等 9 种标准 LSP 操作,以及诊断基线对比能力。 - 原始源码: `../../src/services/lsp/`(7 个文件) - 核心类型: `ILspClientManager`、`LspServerInstance`、`LspDiagnosticRegistry` --- ### [IDE 桥接](基础设施设计-IDE桥接.md) 实现 claude.ai 远程控制能力,通过轮询 API 获取工作项、生成隔离的会话目录(git worktree),并管理会话生命周期。支持 VS Code、JetBrains 等 IDE 的 MCP over SSE/WebSocket 接入。 - 原始源码: `../../src/bridge/`(32 个文件) - 核心类型: `IBridgeService`、`BridgeConfig`、`SpawnMode`、`IBridgeApiClient` --- ### [后台任务管理](基础设施设计-后台任务管理.md) 基于 `Channel` 的任务调度系统,支持 7 种任务类型(Shell、本地代理、远程代理、进程内协作代理、工作流、MCP 监控、Dream 记忆合并),作为 `IHostedService` 随应用生命周期启停。 - 原始源码: `../../src/tasks/`(10 个文件) - 核心类型: `BackgroundTask`、`IBackgroundTaskManager`、`BackgroundTaskManager` --- ### [状态管理](基础设施设计-状态管理.md) 应用全局不可变状态存储,采用 Redux/Elm 风格的 updater 函数模式。`AppState` 是一个深层嵌套的不可变 record,`AppStateStore` 通过加锁保证线程安全,并在每次更新后触发订阅通知。 - 原始源码: `../../src/state/`(5 个文件) - 核心类型: `AppState`、`IAppStateStore`、`AppStateStore`、`StateSelectors` --- ## 依赖关系 ``` 核心模块(工具系统、查询引擎) ↓ 使用 基础设施层 ├── MCP 协议集成 ──→ 状态管理(更新 McpState) ├── LSP 集成 ──→ 状态管理(无直接依赖,通过工具层间接访问) ├── IDE 桥接 ──→ 状态管理(更新桥接状态字段) └── 后台任务管理 ──→ 状态管理(更新 Tasks 字典) ``` 所有子模块都通过依赖注入接收 `IAppStateStore`,并在状态变更时调用 `Update()` 方法。UI 层订阅 `StateChanged` 事件实现响应式刷新。 --- ## 原始代码映射 完整的 .NET 类型与原始 TypeScript 文件对应关系,参见 [reference/原始代码映射-基础设施.md](reference/原始代码映射-基础设施.md)。