DSH Quick Replies

在 DeepSeek Harness 会话输入区提供可管理的快捷回复,一点即发。

npm 版本 CI MIT

English | 中文

能做什么 · 快速开始 · 使用 · 卸载 · 更新记录

> DSH Quick Replies 是 DeepSeek Harness 社区插件,挂在当前会话输入区上方,不修改 DSH 源码。 在输入框上方显示一排快捷文本。点击后作为普通用户消息发送:会话空闲时进入队列(`queue`),顶层会话运行中则走 steer(下一步安全边界处理)。不改草稿、不 cancel、不 stop。 回复库保存在 DSH Host 全局设置命名空间 `quick-replies`,同一 Host 下多浏览器/设备共享。折叠偏好按当前浏览器分别记住。

DeepSeek Harness 输入区上方的快捷回复栏:继续等 chip、添加与管理按钮,以及消息输入框

## 能做什么 - **一点即发**:把常用短句(如「继续」「已重启请继续」)存成 chip,点击直接发送。 - **空闲 queue、运行中 steer**:运行中不会声称「已打断」;实际时机由 DSH 决定。 - **不碰草稿**:发送走会话公开 `prompt`,草稿、引用、图片、光标都保持原样。 - **可管理**:添加、编辑、删除、启用/停用、排序、JSON 导入导出。 - **窄屏折叠**:窄容器默认折叠为一行;展开高度受限,条目多时在栏内滚动。 - **空会话保护**:尚无历史消息的新会话拒绝发送,避免误点快捷回复开出废会话。 ## 快速开始 要求: - 带 Web profile 的 DeepSeek Harness - Node.js 20 或更新版本 - 已验证的 DSH 版本:`0.1.5-rc.1`(插件 `0.1.3`) 已经安装 `dsh` 命令: ```sh dsh plugin --profile web add dsh-quick-replies@latest ``` 直接使用 DeepSeek Harness 源码: ```sh corepack enable; pnpm install pnpm dsh plugin --profile web add dsh-quick-replies@latest ``` 也可以通过插件市场安装(可选): ```sh dsh plugin --profile web add dshmarket ``` 重启 DSH 后,在 **设置 → 插件市场** 里搜索 dsh-quick-replies,一键安装即可。 本地开发(link 到本仓库): ```sh pnpm install pnpm run build dsh plugin --profile web add "link:$(pwd)" ``` 安装后刷新 Web 界面。Host 半边通过 `cordis.patch.yml` 注册设置命名空间;客户端在 `conversation.input.dock` 挂载快捷栏。回复库写在 `~/.dsh/settings.yaml` 的 `quick-replies` 段,不属于插件安装目录。 ## 使用 1. 打开任意已有会话(不要在空白新会话上点「继续」类条目)。 2. 输入区上方出现快捷回复栏。窄屏默认折叠,点标题或箭头展开。 3. 点击 chip 发送;空闲显示「已提交(队列)」,运行中显示将在下一步处理。 4. 点 **+** 直接添加一条:填标题和正文,保存后栏上立刻出现。 5. 点 **⚙** 打开管理:编辑、删除、排序、导入/导出 JSON。 默认四条(可全部删掉,不会自动重生):继续、中断了请继续、下一步该做什么?、已重启请继续。 ### 局域网(非回环页面)访问 DSH 对来源不是 loopback(`localhost` / `127.0.0.1`)的页面会关闭 Host 设置持久化(官方 `dsh-client-ui-settings` README 原文:*Non-loopback pages get no durable settings*):`settingsScope` 直接返回 `unavailable`,并且从此不发 `settings.describe`。于是经局域网转发插件(`dsh-lan-proxy`、`dsh-bridge`、`dsh-mobile` 等)从另一台设备访问时,所有依赖 Host 设置的界面都会失效——本插件表现为「回复库不可用,无法发送」。 从 `0.1.3` 起,官方 scope 报 `unavailable` 时插件改用与官方 settings Client 相同的公开 Remote(`settings.describe` / `settings.mutate`)直连 Host 的 `quick-replies` 命名空间。因此局域网设备上的读取、编辑、导入导出与回环页面一致,回复库仍是 Host 上共享的那一份;写入仍受 revision 栅栏保护,冲突会明确提示而不会静默覆盖。 若你希望保持 DSH 官方策略(非回环页面完全不落地设置),请停留在 `0.1.2`;或让转发侧声明宿主身份:在返回的 HTML 中、`__DSH_BOOT__` 之前注入 `window.__DSH_TRANSPORT__ = { fetch: (input, init) => window.fetch(input, init), ownsHost: true }`。DSH 的 `ctx.connection.isLoopback` 会据此为真,所有依赖设置的界面(含「设置」页)一并恢复;`dsh-mobile` 网关正是这么做的。 ## 兼容性 当前发布:插件 **`0.1.3`** 已针对 DeepSeek Harness **`0.1.5-rc.1`** 验证。 | 插件 | 验证过的 DeepSeek Harness | | --- | --- | | `0.1.0`–`0.1.1` | `0.1.2-rc.1` | | `0.1.2` | `0.1.5-rc.1` | | `0.1.3` | `0.1.5-rc.1` | DSH `0.1.5-rc.1` 请使用 `0.1.3`。仍在 DSH `0.1.2-rc.1` 上时继续使用 `0.1.1`(或更早)。更高 DSH 版本不会被自动宣称为兼容。不兼容时禁用或卸载插件,不要给 DSH 核心打补丁。 ## 卸载 ```sh dsh plugin --profile web remove dsh-quick-replies ``` 卸载不会删除设置里的回复库。需要清库时,先在管理界面导出 JSON,再手动删除设置中的 `quick-replies` 命名空间。 ## 开发 ```sh pnpm install pnpm run test pnpm run build ``` 推送 `v*` 标签后,GitHub Actions 会跑测试、打包,并在配置了 `NPM_TOKEN` 时发布到 npm、创建 GitHub Release。 MIT,详见 [LICENSE](LICENSE)。