SuperAPI AI 工具集

debugging-hermes-tui-commands

编程与开发

查看项目

更新于 10-16 09:46

技能介绍

用途:当 Hermes TUI 的斜杠命令出现异常时,用本技能定位问题,典型场景包括命令未出现在自动补全、只在 CLI 工作而 TUI 不工作、配置持久化后界面不即时生效、需要新增或更新命令。

主要能力:Hermes 斜杠命令横跨三层——Python 命令注册表(hermes_cli/commands.py 中的 COMMAND_REGISTRY 为唯一事实来源)、tui_gateway 的 JSON-RPC 桥接(slash.exec / command.dispatch)、Ink/TypeScript 前端(ui-tui/src/app/slash/ 本地处理器与兜底转发)。命令定义必须在 Python 与 TypeScript 中一致注册。Python 注册表还派生 CLI 派发、网关帮助、Telegram BotCommand 菜单、Slack 子命令映射与发送给 Ink 的自动补全数据。

排查与用法:先用 search_files 在 ui-tui 下搜索 "/commandname" 及 .ts/.tsx,确认前端是否存在该命令;再查 Python 后端 CommandDef 与网关实现。自动补全缺失时,在 COMMAND_REGISTRY 添加 CommandDef,按需选择 cli_only、gateway_only 或 gateway_config_gate,并让 subcommands 与 TUI 补全选项一致;服务端命令需在 HermesCLI.process_command() 或 gateway/run.py 加处理器。

常见问题:补全缺失多为注册表未同步;补全有但不可用需检查 tui_gateway/server.py 与 createSlashHandler.ts,仅本地命令须在 app.tsx 内置分支处理,否则落入 slash.exec;CLI 与 TUI 行为不一致因本地处理器优先于网关派发;配置保存但不即时生效时,除 config.set 外还需 patchUiState 并贯通渲染路径,注意流式与 transcript 两条路径;网关静默忽略需检查 GATEWAY_KNOWN_COMMANDS 及配置门是否真值。深层调试可用 python-debugpy 断点 _SlashWorker.exec 或处理器入口,或用 node-inspect-debugger 断点 app.tsx 派发。

验证:修改后执行 npm --prefix ui-tui run build 重建,用 hermes --tui 启动,输入 / 确认命令出现在补全并带正确描述与参数提示,执行后确认配置写入 ~/.hermes/config.yaml 且界面即时刷新;网关可用命令需在消息平台测试或运行 scripts/run_tests.sh tests/gateway/。注意:tsx watch 可能滞后,须先构建;cli_only 命令默认不能在网关使用。