Back to home@zheng16965

dsh-deliverables-toggle

为 DeepSeek Harness 对话产物列表增加主动展开与收起功能的 Web UI 插件。

Stars
1
Language
TypeScript
Created
Aug 24, 2026
Updated
Aug 24, 2026

Introduction

dsh-deliverables-toggle

让 DeepSeek Harness 对话结束时的“产物”列表支持主动展开和收起。

English | 简体中文

它解决什么问题?

DeepSeek Harness 在一轮对话结束后,会在回复下方展示本轮生成或修改过的文件,例如 package.jsontauri.conf.jsonCargo.toml 等。

当产物数量较多或文件名较长时,内置产物列表会自动收缩成一行,并显示类似 + 3 个文件 的提示。默认界面可以告诉你还有更多文件,但不能主动展开查看完整列表。

dsh-deliverables-toggle 会替换这块产物列表 UI,增加明确的展开和收起操作:

  • 默认仍保持一行自适应展示。
  • 超出一行时,点击 + N 个文件 展开全部产物。
  • 展开后所有产物文件都以 chip 形式显示,并支持换行。
  • 展开后点击 收起 恢复自动折叠。
  • 文件 chip 仍然可以点击打开文件。
  • 在文件夹中显示 仍然保留。

效果预览

折叠态:

产物列表折叠态

展开态:

产物列表展开态

安装

在 DeepSeek Harness 项目中安装本地插件:

dsh plugin --profile web add dsh-deliverables-toggle

如果使用 pnpm dsh 启动 DSH,也可以执行:

pnpm dsh plugin --profile web add dsh-deliverables-toggle

安装后重启 DSH Web 服务,并刷新现有 Web 页面。

默认 Web 地址通常是 http://127.0.0.1:3080。不要启动新的替代 Web 服务来验证此插件;应让当前 DSH Web profile 加载该插件。

本地开发

pnpm install
pnpm run typecheck
pnpm run build
pnpm run check

构建产物输出到 lib/

  • lib/index.js:Host 侧插件入口。
  • lib/client.js:Web 客户端插件入口。
  • lib/types/:TypeScript 声明文件。

实现方式

DSH 内置产物列表由 @deepseek-ai/dsh-client-ui-deliverables 提供。它注册到 Web 客户端的 conversation.chat.turnTail chain slot。

本插件同样注册到 conversation.chat.turnTail,并使用更高优先级:

priority: -100

因此,当某轮对话存在产物文件时,本插件会先于内置产物列表被选中并渲染。没有产物文件的轮次不会被本插件接管,会继续交给后续 chain entry 处理。

本插件复用 DSH 现有 turn-scoped deliverables 数据,不新增模型可见信息,不修改 session log,也不新增工具。

Model Experience

项目影响
Token 成本无。插件只改变 Web UI 展示,不进入模型请求。
工具调用无。插件不注册新工具。
Session log无。插件只读取现有 deliverables turn data。
Prompt无。插件不注册 system prompt 内容。

已知限制

  • 这是一个覆盖型 UI 插件,会复制 DSH 内置产物列表的选择和测量逻辑;如果上游 ui-deliverables 行为发生变化,本插件可能需要同步调整。
  • 插件依赖 conversation.chat.turnTail chain slot 和 turn-scoped deliverables 数据;如果 DSH 后续重命名这些内部接口,需要更新插件。
  • 插件只改变对话尾部产物列表,不改变 assistant 正文中的文件引用链接行为。

许可证

MIT