jkooe
865862ee7c
refactor: 拆 mcp/index.ts(1139 → 530 行),工具清单独立成 tools/defs.ts
## 拆法
`TOOLS` 数组(610 行,占原文件过半)抽到 `apps/mcp/src/tools/defs.ts` 并 export。
保留在 index.ts 的:
- 连接与调用辅助(ensureClient / call / forwardEventToHost)
- toArgs(入参特化)· TOOL_TO_CAPABILITY · resolveToolCall(分发 switch)
- MCP server 定义与 main
**分工**:defs.ts 只管「暴露什么」,index.ts 管「怎么转发」。
## 零漂移的证据
抽出的最大风险是**顺序漂移或漏搬** —— 两者都不会让构建失败,只会静默改变客户端
看到的工具表。故用「工具名序列 sha256」做证据:
拆分前 41 个工具 / sha=69e8533c42c3…
拆分后 41 个工具 / sha=69e8533c42c3… ✅ 序列与顺序完全一致
## 新增回归守卫 tests/unit/mcp-tools.test.mjs(4 例)
- 工具数 41 且名称唯一
- **顺序未漂移**(序列 sha 比对;有意调整须同步更新基线并说明)
- 每个工具都有 name/description/inputSchema 三件套
- inputSchema 普遍声明 additionalProperties: false
## 验证
单测 269 → 273 全绿;e2e 30 全绿;7 包构建通过。
2026-10-10 07:50:13 +08:00
..
2026-10-10 00:39:28 +08:00
2026-09-27 17:04:21 +08:00
2026-10-10 00:07:58 +08:00
2026-09-29 11:27:52 +08:00
2026-10-10 00:07:58 +08:00
2026-10-07 10:14:12 +08:00
2026-10-10 00:39:28 +08:00
2026-09-27 17:04:21 +08:00
2026-09-29 14:33:01 +08:00
2026-10-09 23:24:40 +08:00
2026-09-27 17:04:21 +08:00
2026-10-07 00:59:40 +08:00
2026-09-29 14:38:53 +08:00
2026-10-07 00:59:40 +08:00
2026-10-09 23:53:28 +08:00
2026-10-09 23:08:03 +08:00
2026-09-29 14:25:35 +08:00
2026-10-10 07:50:13 +08:00
2026-09-30 00:19:10 +08:00
2026-10-09 23:08:03 +08:00
2026-10-10 00:39:28 +08:00
2026-10-05 02:25:19 +08:00
2026-10-07 02:00:10 +08:00
2026-09-30 00:51:56 +08:00
2026-10-10 00:39:28 +08:00
2026-09-27 17:04:21 +08:00
2026-09-27 17:04:21 +08:00
2026-09-30 01:27:37 +08:00