Skip to content

[TUI] 工具详情页支持参数填写与运行,并提升参数/描述可读性 #8

Description

@kugouming

背景

工具详情页(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 typechecknpm run lintnpm test 全绿
  • npm run verify:local 端到端场景全部通过
  • TUI 手工确认:Tab 进参数区可编辑并运行;参数区一行说明、聚焦后完整展开;Ctrl+E 展开描述且切工具后复位;结果区 ↑/↓ 移动,v 从光标起选并可用 Ctrl+Y 只复制选中行

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions