Skip to content
dsh.fish
Bundle

dsh-deliverables-toggle

Experimental DeepSeek Harness plugin plan for expandable produced-file lists in finished turns.

Source
zheng16965
stars
1 stars
License
MIT
Updated
Updated yesterday

Readme

# dsh-deliverables-toggle

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

[English](README.en.md) | **简体中文**

## 它解决什么问题?

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

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

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

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

## 效果预览

折叠态:

![产物列表折叠态](docs/assets/collapsed.png)

展开态:

![产物列表展开态](docs/assets/expanded.png)

## 安装

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

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

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

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

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

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

## 本地开发

```sh
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`,并使用更高优先级:

```ts
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

Install

dsh plugin --profile web add github:zheng16965/dsh-deliverables-toggle

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source