dsh-paste-dock:大段文本粘贴自动存为附件并管理

前言

在 DeepSeek Harness (DSH) 开发中,直接在输入框粘贴大段文本容易污染上下文。插件 dsh-paste-dock 拦截这一操作,将超过阈值的文本自动保存为 pastes/*.txt 文件,并在输入框上方通过 dock 卡片管理,草稿区仅保留最小化引用。

它是什么

dsh-paste-dock 是由 drscrewdriver 维护的 DSH 插件。它通过文件系统代替输入框直接承载长文本,解决长文本上下文污染问题,并提供统一的卡片管理视图。

核心功能

大段粘贴转附件

插件会拦截输入框的粘贴事件。当粘贴文本超过默认阈值(500 字符)时,文本会被写入当前会话工作区的 pastes/<时间戳>.txt(默认上限 1 MiB,UTF-8 逐字节保真)。

若保存失败,原文会自动插回输入框并提示。同时,插件注册 save_paste 工具作为兜底机制,确保即使输入框钩子未拦截,也能通过工具手动保存。

草稿内只留可辨识的最小徽标

在草稿区,长文本被替换为 dsh 原生原子引用 chip。
* 显示形式:默认显示为 📄开头几个字…(多粘贴依次为 📄2、📄3 等)。
* 交互:点击徽标可路由到右侧栏预览(配合 dsh-better-sidebar 可编辑)。Backspace 或 Delete 键一次即可删除整个引用,无中间态。
* 发送:发送路径零改动,chip 序列化为裸 @"pastes/x.txt",不增加请求 token。

输入框上方 dock

完整信息展示在 conversation.input.dock 槽位(order 0,居中卡片)。
* 内容:包含文件名、开头预览、字符数、路径及操作按钮。
* 操作:
* 打开全文:调用宿主 openWorkspacePath(仅 loopback 部署可用)。
* 从草稿移除:删除 dock 卡片,草稿中的 mention 也会同步删除。
* 状态同步:dock 是草稿引用的投影,双向同步。

降级处理

如果插件 facade 缺失(如老版本 DSH 线)或输入框正忙,插件会自动降级为文本引用 @"pastes/x.txt" (N 字符)。发送后仍能渲染成可点击卡片,dock 也能识别。

安装与配置

安装

使用以下命令在本地目录安装:

dsh plugin --profile web add ./dsh-paste-dock

安装后重启 DSH,控制台可见 [dsh-paste-dock] 日志。

配置

配置文件为 cordis.patch.yml(部署默认),修改后重启 DSH 即可生效。

字段 默认值 说明
minChars 500 大段粘贴阈值(UTF-16 代码单元)。可在 Settings → General 中覆盖。
maxBytes 1048576 单次粘贴字节上限,宿主强制硬顶 64 MiB。
chipBadge true 草稿 chip 显示为最小徽标(📄…)。设为 false 恢复完整 label。
dock true 输入框上方是否注入 dock 卡片槽位。

典型用法

  1. 安装:执行上述安装命令。
  2. 粘贴:在输入框粘贴超过 500 字符的文本,自动生成附件。
  3. 管理:点击输入框上方的 dock 卡片查看全文或删除引用。
  4. 发送:发送的消息中,chip 会被序列化为 @"pastes/x.txt",模型直接读取文件内容。

适用场景与注意

适用场景

  • 需要频繁处理代码片段、长文档或结构化数据的智能体开发。
  • 希望保持输入框整洁,通过文件系统管理上下文的场景。

注意事项

  • 版本限制:仅支持 DSH peer 范围 0.1.0-rc.2 至 0.2.0-rc.2。
  • 会话切换:切会话后,chip 可能退化为文本引用 @"…" (N 字符),但仍可发送和渲染。
  • 编辑限制:配合 dsh-better-sidebar 编辑保存时可能遇到 400 错误(路径问题),从文件树打开同一文件可解决。
  • 普通文件:插件不接管普通文件/图片粘贴,由 DSH 原生附件管线覆盖。
  • 权限与安全:插件以当前 DSH 进程权限运行,安装前请检查源码与许可证。

结语

dsh-paste-dock 通过文件化管理和 UI 投影,有效解决了 DSH 中大段文本的输入与管理问题。更多细节可查看 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜