dsh-input-queue

by ethanhuangebor

会话与消息github收录于 08-23

DeepSeek Harness(DSH)的 排队输入 插件:在 agent 忙碌执行任务时,你可以连续输入多条补充信息,它们会进入一个 可见、可管理 的队列,按顺序在合适的时机注入;每一条都可以随时 编辑 / 删除 / 立即插话 / 调整顺序 。

Queued input plugin for DSH: while the agent is busy, keep typing follow-ups into a visible, manageable queue injected in order at the right moments; each entry can be edited / deleted / sent immediately / reordered.

安装

dsh plugin --profile web add github:ethanhuangebor/dsh-input-queue

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

DeepSeek Harness(DSH)的排队输入插件:在 agent 忙碌执行任务时,你可以连续输入多条补充信息,它们会进入一个可见、可管理的队列,按顺序在合适的时机注入;每一条都可以随时编辑 / 删除 / 立即插话 / 调整顺序。

背景:DSH 0.1.0-rc.6 已内置了一套基础的"瞬态排队 + steering"机制(忙碌时回车默认排队、session/queue 快照、updateQueue 三种操作),但它只有一个折叠的计数条,功能隐蔽、缺少逐条管理。本插件在不改任何私有实现的前提下,把它做成一个富队列面板。

界面

  • 面板挂在输入框上方(conversation.input.dock),默认展开,一眼看到所有排队消息及其顺序。
  • 每条消息:序号、预览(长文本可点击展开全文)、编辑 / 上移 / 下移 / 删除 / 立即插话。
  • 忙碌且队列为空时,显示提示:"忙碌中按 Enter 会把补充信息排队",让该能力可被发现。
  • 设置(General)里新增「队列面板默认展开」开关,偏好经 localStorage 持久化。

安装

前置要求

  • Node.js >= 24(或 ^22.19);pnpm 11
  • DeepSeek Harness 0.1.0-rc.6(npx @deepseek-ai/dsh)
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:EthanHuangEbor/dsh-input-queue

重启生效:安装后重启正在运行的 DSH Web 服务并刷新页面。

使用

  1. 让 agent 开始一个任务(此时会话处于 running 状态)。
  2. 在输入框继续打字并回车 —— 你的补充信息会进入排队队列(默认 busyEnter: 'queue'),不会打断当前任务。
  3. 输入框上方的队列面板会实时列出所有排队消息,你可以:
    • 编辑:修改某条消息的内容;
    • 删除:取消某条消息;
    • 立即插话:把某条消息立刻注入当前运行中的任务(steering);
    • 上移 / 下移:调整多条消息的注入顺序。
  4. agent 处理完当前步骤后,队列按 FIFO 顺序逐条注入。

工作原理

本插件是一个 bundle 插件,只有 client 面承载逻辑:

  • 在 conversation.input.dock 注册 input-queue 面板(order 30)。
  • 通过会话作用域的 conversation 服务拿到 updateQueue / send 动词,以及输入通知 notify。
  • 读 DSH 原生快照 ConversationSnapshot.queue(过滤 placement === 'queued'),逐条渲染。
  • 所有操作都走 DSH 原生 updateQueue(edit / remove / steer);调整顺序用 remove + 重新 send(FIFO 无原生 reorder 动词)。

已知限制

  • 顺序调整只支持纯文本消息:含图片等非文本块的消息会被跳过并提示。
  • 顺序调整是"移除后重排":在极少数情况下(agent 恰好正在认领该消息),可能与原生 steering 竞争产生一条重复;删除即可。
  • 队列是瞬态的:DSH 原生的 session/queue 不落盘,刷新页面后排队消息会丢失(这是 DSH 的既有行为,非本插件引入)。

开发

# 依赖类型解析:把 DSH 运行环境的私有包链接进 node_modules(一次即可)
#   Windows:  mklink /J node_modules\@deepseek-ai C:\Users\<you>\node_modules\@deepseek-ai
#   macOS:    mkdir -p node_modules/@deepseek-ai && ln -s /path/to/dsh/node_modules/@deepseek-ai/* node_modules/@deepseek-ai/
pnpm install
pnpm typecheck
pnpm build
pnpm verify

构建链:tsc(host)→ tsc(client)→ tsdown(client bundle,CJS closure-factory 协议)。lib/ 提交进仓库,保证 github: 安装即用。

文档

文档 内容
docs/usage.md 工作原理、行为细节、已知限制、验证方法

License

MIT

原始 README: https://github.com/EthanHuangEbor/dsh-input-queue/blob/main/README.md ↗