kuyueliuhun-ctrl/dsh-command-queue ↗★ 0

dsh-command-queue

DSH 插件:让 /compact 等斜杠命令在 agent 忙碌时进入命令队列,空闲后自动执行;并在浏览器里以复刻原生队列的样式展示这份队列。 适合经常在Agent运行中发送控制命令并希望其自动排队执行的用户。

패키지
dsh-command-queue
호환성
미검증
Cordis peer 범위
>=4.0.0-rc <5
버전
0.2.0
라이선스
MIT
최근 업데이트
2026. 9. 17.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:kuyueliuhun-ctrl/dsh-command-queue

使用

浏览器队列面板

挂在原生消息队列同一个槽位 conversation.input.dock 上 (原生 id:"queue" / order:20,本插件 id:"command-queue" / order:30), 所以两条队列上下并排。队列为空时面板完全不渲染(返回 null),零视觉占用。

面板每 1.5s 轮询一次 host 快照;行右侧的按钮可以把一条还没执行的在队命令移除 (被移除的命令不会执行)。

/cmdqueue 命令(纯文本路径)

不想开浏览器面板时,用这个只读命令查看同一份队列:

/cmdqueue
→ 2 command(s) queued for this agent, waiting for it to become idle: /compact, /export
→ No queued commands for this agent.

行为契约:什么时候不排队

以下情况一律保持原行为(立即执行),保证零回归:

  • 不是合法命令语法 —— 第 0 字节不是 /、名称含大写或非法字符(如 /Compact)、只有 /;
  • 命令名在注册表里解析不到 —— 客户端本来就会按「未命中」处理,没必要拖到空闲之后;
  • 命令名在立即执行白名单里 —— 默认 stop / cancel / abort / interrupt / halt, 忙碌时敲 /stop 本该立刻中断,排队会失去意义甚至危险;
  • agent 当前就是 idle;
  • 排队逻辑自身抛错 —— 兜底回落成原行为,绝不吞掉用户命令。

只有「合法 + 已注册 + 未豁免 + agent 正忙」才入队。

配置

无 schema,容错读取,全部可选。写在 profile 的 cordis.patch.yml 里对应条目下:

- id: command-queue
  name: 'dsh-command-queue'
  config:
    verbose: true                    # 打开排队/执行日志(默认 false)
    pollIntervalMs: 250              # host 侧等空闲的轮询兜底间隔,50–5000(默认 250)
    exposeState: true                # 注册给浏览器面板的已鉴权路由(默认 true;false = 纯 host)
    immediateCommands:               # 整体替换默认白名单
      - stop
      - cancel
      - abort
    alwaysImmediateCommands:         # 在(默认或自定义的)白名单上追加
      - my-control-command