🔥 chore(sdk): 死代码大扫除第一批——SDK 内置 MCP 链 + sdk-mcp-server/tool-helper 簇(-895 行) - #444
Conversation
…r 簇 (#388) 按 #388 二次确认方案执行第一批: - A1 内置 MCP 链:mcp/client.ts 全文件、agent.ts 的 syncMcpConnections/getConfiguredMcpServers/getPluginMcpServers/ mcpLinks/disabledMcpServers/MCP 控制四方法与 Query 委托、engine.ts init 消息 mcp_servers 与 ContextUsageResult.mcpTools、types.ts 的 McpServerConfig 家族/elicitation handlers/MCPServerStatus/接口方法。 sidecar MCP 走自有 pluginMcpManager,此链零存活引用;#326 elicitation 协议缺陷随块消失。mcp/manager.ts(sidecar 消费)保留。 - A4:sdk-mcp-server.ts + tool-helper.ts 全文件及 index.ts 导出面, createSdkMcpServer/tool 零生产引用;README demo 同步裁剪。 - assembleToolPool 唯一调用点随 A1 消失,一并删除。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- types.ts: mcp_servers 必填字段随 engine init 字面量一并删除(全仓零读者,保留会使 as SDKMessage 断言 TS2352) - README: 删 MCP server integration 节/API 表四行 mcp 方法/Options 表 mcpServers 行 - package.json: 摘除孤儿依赖 zod-to-json-schema(唯一消费者 tool-helper.ts 已删) - 验证: bun run typecheck 三包(agent-sdk/sidecar/desktop)真实通过
Code Review删除面核验(pinned SHA 逐块全仓 grep,含 test/scripts/docs/动态字符串):A1+A4 全部删除块零存活引用,保留面(mcp/manager.ts、sandboxed-stdio-transport.ts、LoadedPlugin.mcpServers 降级)取舍正确,无动态引用暗雷。但有一个 P1 阻塞项(已代修推送)。 [P1] types.ts 契约未同步,typecheck 必红 —— 已修复
逐块核验结论
非阻塞
等本轮 CI 绿后可合。 |
Code ReviewA1+A4 两簇死代码(-895 行)零引用验证全过,可合——唯一前提是与 #440 排好先后(#440 先合,本 PR 随后 rebase)。 零引用验证(origin/main 全仓 grep,全部通过)
边界确认删除克制:manager.ts/sandboxed-stdio-transport/sidecar plugin-mcp 栈/plugins manifest(loader getDefaultEnvironment 仍有 3 处使用)全部避开;types.ts 承重契约只删 MCP 家族;naming.ts 因 manager 依赖保留 ✓ 冲突与顺序merge-tree 实测唯一冲突: 结论可合(排在 #440 之后)。 |
- main 侧对 client.ts 的改动(#311 孤儿回收/withCallTimeout/错误归一)消费方 均为 agent.ts 装配链,随死代码一并消失;保留面 manager.ts 零引用 client.ts - agent.ts/query-controller.ts/manager.ts 自动合并无冲突
概要
#388 第一批(A1+A4,按二次确认方案的执行顺序)。sidecar 是唯一宿主的准绳下,删除零存活引用的宿主旁路子系统。
A1 SDK 内置 MCP 链
mcp/client.ts全文件与 agent.ts 整条装配链:syncMcpConnections/getConfiguredMcpServers/getPluginMcpServers/mcpLinks/disabledMcpServers/createDisconnectedMcpConnectionmcpServerStatus/setMcpServers/reconnectMcpServer/toggleMcpServer四方法及 QueryController 委托McpServerConfig家族、elicitation handlers、MCPServerStatus、接口方法声明、ReloadPluginsResult.mcpServers/error_count、AgentOptions.mcpServers、ContextUsageResult.mcpTools、init 消息mcp_serversmcp/manager.ts(McpClientManager,sidecar plugin-mcp 栈消费)+sandboxed-stdio-transport.ts;run.test.ts 的cfg?.mcpServers undefined断言经as unknown逃逸仍通过A4 sdk-mcp-server + tool-helper 簇
createSdkMcpServer/tool仅 README demo 引用,README 同步裁剪isSdkServerConfig唯一消费点在 A1 内,随批消失连带
assembleToolPool唯一调用点随 A1 消失(等价于 buildBaseToolPool 已有的 disallowed 过滤),一并删除验证
后续批次
A2 插件装配链 → A3 AgentTool 嵌套引擎 → A5 死 API 面 → B utils 死模块 → C 导出面收敛(各独立 PR)