背景
工具详情页(Tools for: <service>)原先只能查看工具列表与描述,无法在 TUI 内直接调用工具;遇到参数多、描述长的工具时也很难看清。
目标
把该页面扩展为「参数填写 → 运行 → 结果查看」的一体化面板,并收敛长描述 / 多参数的阅读体验。
范围
1. 参数表单与运行
- 按
inputSchema 生成参数表单(string/number/integer/boolean/enum/array/object);Tab 切区、↑/↓ 移动参数、Space 切换 boolean/enum
Ctrl+R 调用工具(tools/call);必填校验失败时在对应参数上标错并把光标移过去
Ctrl+J 在表单与原始 JSON 参数之间互切,JSON 模式下的额外字段在运行时合并
2. 结果查看
- 结果区展示格式化 / 原始输出(
Ctrl+P 切换)、Ctrl+Y 复制(无选区复制全文,有选区只复制选中行)、Ctrl+O 把完整输出落到临时文件
v 从当前光标行开始选区、↑/↓ 扩展、Esc 取消;选区底色只覆盖正文,不盖框线与行尾留白
f 切全宽视图,避免终端自带拖选时带上左侧列表
- 结果区有可见行光标(
▸):↑/↓ 移动并自动滚入视野,←/→ 翻页时光标同步前进
3. 可读性
- 工具描述过长时默认折叠(显示前 N 行 +
… N more line(s) — Ctrl+E expands);Ctrl+E 展开全部描述,再按折叠;该状态临时,切到另一个工具即恢复默认折叠
- 参数区每个参数保留一行描述(超出用
… 截断,作为"还有完整说明"的提示);光标落到该参数时完整展开(全部描述行 + enum: + default: + 编辑行)
- 输出与输入均按 CJK 双宽计算宽度,避免中文截断/换行错位
4. 会话健壮性
callServiceTool 复用 stdio/HTTP/SSE 的会话管理;后端会话过期(JSON-RPC -32001 / HTTP 404)时透明重建连接并重试,工具级错误不重试
验收
npm run typecheck、npm run lint、npm test 全绿
npm run verify:local 端到端场景全部通过
- TUI 手工确认:Tab 进参数区可编辑并运行;参数区一行说明、聚焦后完整展开;
Ctrl+E 展开描述且切工具后复位;结果区 ▸ 随 ↑/↓ 移动,v 从光标起选并可用 Ctrl+Y 只复制选中行
背景
工具详情页(
Tools for: <service>)原先只能查看工具列表与描述,无法在 TUI 内直接调用工具;遇到参数多、描述长的工具时也很难看清。目标
把该页面扩展为「参数填写 → 运行 → 结果查看」的一体化面板,并收敛长描述 / 多参数的阅读体验。
范围
1. 参数表单与运行
inputSchema生成参数表单(string/number/integer/boolean/enum/array/object);Tab 切区、↑/↓移动参数、Space 切换 boolean/enumCtrl+R调用工具(tools/call);必填校验失败时在对应参数上标错并把光标移过去Ctrl+J在表单与原始 JSON 参数之间互切,JSON 模式下的额外字段在运行时合并2. 结果查看
Ctrl+P切换)、Ctrl+Y复制(无选区复制全文,有选区只复制选中行)、Ctrl+O把完整输出落到临时文件v从当前光标行开始选区、↑/↓扩展、Esc取消;选区底色只覆盖正文,不盖框线与行尾留白f切全宽视图,避免终端自带拖选时带上左侧列表▸):↑/↓移动并自动滚入视野,←/→翻页时光标同步前进3. 可读性
… N more line(s) — Ctrl+E expands);Ctrl+E展开全部描述,再按折叠;该状态临时,切到另一个工具即恢复默认折叠…截断,作为"还有完整说明"的提示);光标落到该参数时完整展开(全部描述行 +enum:+default:+ 编辑行)4. 会话健壮性
callServiceTool复用 stdio/HTTP/SSE 的会话管理;后端会话过期(JSON-RPC-32001/ HTTP 404)时透明重建连接并重试,工具级错误不重试验收
npm run typecheck、npm run lint、npm test全绿npm run verify:local端到端场景全部通过Ctrl+E展开描述且切工具后复位;结果区▸随↑/↓移动,v从光标起选并可用Ctrl+Y只复制选中行