-
Notifications
You must be signed in to change notification settings - Fork 1
Commands zh
pawaca edited this page Aug 30, 2026
·
2 revisions
上游斜线命令注册和执行系统在 Edge 中的适配。
上游参考:Commands
命令子系统(dsh-commands)支持针对特定 agent 直接执行插件注册的斜线命令,不创建模型消息:
- CommandRegistry — 插件注册命名命令,包含 handler、描述和可选的输入描述符(提示文本、图片支持)。命令可以是全局的或 agent 作用域的。
-
执行流程 —
parseCommand()解析斜线前缀,注册表验证输入和图片准入,生命周期事件(command/run、command/done)包裹 handler 调用,结果直接渲染到 UI,不经过模型。 -
发现 — 适配器查询注册表获取
CommandDescriptor。commands/change事件在命令注册或注销时通知客户端。 -
与技能的关系 — 在 composer 中通过
/name调用技能走命令系统:dsh-tool-skill注册命令 handler,加载技能内容并注入为模型上下文。
Edge 没有安装上游 dsh-commands CommandRegistry 插件。服务端没有注册任何斜线命令。
客户端 dsh-client-ui-commands 插件包含在 33 个插件的 bundle 中。它在 composer 中渲染命令菜单,并查询 commands/list 获取可用命令。
Edge 通过 handleEdgeRemote()(edge-remotes.ts)中的手写桩处理 commands/list RPC,始终返回空数组。此桩存在的原因:
- 客户端 UI 在连接时始终查询
commands/list - 没有响应,客户端会显示错误
- Typert 网关无法自动路由,因为上游 CommandService 缺少
@Remote装饰器
- 客户端命令 UI(composer 菜单、命令输入气泡)
- 命令生命周期事件格式(
command/run、command/done)
| 组件 | 分类 | 状态 |
|---|---|---|
| CommandRegistry(服务端) | 未安装 | 空目录桩 |
客户端 UI(ui-commands) |
复用 | 渲染命令菜单 |
commands/list RPC |
桩 | 通过 handleEdgeRemote 返回 []
|
关键观察:命令与技能紧密相关——斜线命令的主要用途是 /skill-name 调用。一旦 Skills 从 feat/tool-skill 合入(#103),命令系统才有实际意义。届时可以评估 handleEdgeRemote 桩(#95)是否可替换。
(#109) **Skills 合入后安装 CommandRegistry。**一旦
feat/tool-skill合入(#103)且SkillRegistry激活,安装上游dsh-commands插件,使技能调用斜线命令出现在 composer 菜单中。届时handleEdgeRemote桩(#95)可能可以移除。
- Home
- Architecture
- Core & Scope
- Session & Persistence
- Model & Context
-
Execution & Tools
- Tools
- Bash
- Subprocess 🚫
- PTY Session 🚫
- Background Jobs 🚫
- Filesystem
- LSP Navigation 🚫
- Code Runtime 🚫
-
Web Access
⚠️ -
Skills
⚠️ - Workflow 🚫
- Subagent 🚫
-
Policy & Interaction
- Goal
- Approval 🚫
- Permission Presets 🚫
-
Sandbox
⚠️ - Plan Mode 🚫
- User Interaction 🚫
- Commands 🚫
- Schedule 🚫
- Message Feedback 🚫
- Platform & Access
- Development
- 首页
- 架构
- 核心与作用域
- 会话与持久化
- 模型与上下文
- 执行与工具
- 策略与交互
- 平台与接入
- 开发