前言¶
在 DSH 聊天里直接粘贴大段日志、配置或文档时,内容会占满输入框,也不利于走附件上传与模型侧的文件上下文。常见做法是手动另存为 .txt 再上传,步骤多且容易打断对话节奏。下面介绍社区维护者 zhanghui6666 的 Web 客户端插件 paste-as-text-attachment:在输入框内监听粘贴事件,当文本长度超过可配置阈值时,自动转为内存中的 .txt 文件并交给 DSH 原生附件流程;短粘贴与普通打字不受影响。
这是什么¶
paste-as-text-attachment 是 DeepSeek Harness(DSH)的 Web Client 插件(分类:客户端)。仓库:https://github.com/zhanghui6666/paste-as-text-attachment;目录页:https://www.skillhub.cn/plugins/zhanghui6666/paste-as-text-attachment。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
插件以 DSH「一切皆插件」的方式扩展聊天输入行为,不替换内置附件栏,而是利用 conversation.input.overlay 插槽观察粘贴,并在条件满足时触发 DSH 既有的文件接收路径。
核心功能¶
已核实能力如下(与仓库 README 一致):
- 只处理粘贴:仅监听当前聚焦的 DSH 聊天输入框中的
paste事件,不拦截手动输入。 - 按长度转换:仅当粘贴文本的 JavaScript 字符串长度 大于 配置的字符阈值时,才转为
.txt附件;阈值比较使用String.length(UTF-16 代码单元),不是 UTF-8 字节数。 - 走原生附件流程:通过合成仅含文件的
ClipboardEvent,让 DSH 编辑器执行正常的附件 intake,保留内置附件栏与上传 UI。 - 其余行为不变:短文本粘贴、输入框外粘贴、普通打字保持原样。
- 内存创建文件:文本文件在浏览器内存中构造;插件本身不把粘贴内容写入本地磁盘。接受后由 DSH 常规附件/上传管线处理。
- 配置页:在 DSH 插件视图中提供中英文配置界面。
配置项¶
在 DSH 中打开 插件 → 已安装 → paste-as-text-attachment,在组合包详情页调整:
| 设置 | 默认值 | 说明 |
|---|---|---|
| Automatic conversion(自动转换) | 开启 | 可关闭长粘贴自动转换 |
| Character threshold(字符阈值) | 10,000 | 整数范围 1–10,000,000;仅 超过 该值的粘贴会转换 |
设置保存在当前 DSH Web GUI 所用浏览器的 localStorage 中,刷新页面后仍保留,但不会在 profile、浏览器或设备之间同步。
安装与启用¶
在 DSH 的 插件 → 添加插件 页面填入本仓库 Git 地址(须与 README 原文一致):
https://github.com/zhanghui6666/paste-as-text-attachment.git
安装完成后,若界面提示启用组合包,按提示开启即可。插件在 Web Client 侧以 immediately: true 注入,依赖 @deepseek-ai/dsh-client-ui-conversation 与 @deepseek-ai/dsh-client-ui-plugin-manager。
典型用法¶
- 安装并启用插件,在详情页确认「自动转换」为开启,按需调整字符阈值(默认 10,000)。
- 在 DSH 聊天输入框聚焦状态下,粘贴一段 长于阈值 的纯文本(例如超长日志)。
- 若当前 DSH 版本正确处理合成文件粘贴,原文本粘贴会被取消,输入框侧出现
.txt附件,后续发送与上传行为与手动添加附件一致。 - 粘贴短于或等于阈值的文本时,行为与未装插件时相同,内容仍直接进入输入框。
仓库说明:自动化测试对编辑器接收文件的行为使用了模拟实现;在依赖该插件处理重要日志前,应在 目标 DSH 版本 下做一次端到端验证。
工作原理(简要)¶
插件观察 conversation.input.overlay 列表插槽,不占用 DSH 内置附件栏使用的单占位插槽 conversation.input.attachments。符合条件的长粘贴会生成内存中的文本 File,并向聚焦编辑器派发合成粘贴事件;仅当宿主处理该文件事件时,才会取消原始文本粘贴。
适用场景与注意¶
适合:经常在对话里粘贴大段文本、希望统一走 .txt 附件而非撑满输入框的 DSH Web 用户;需要可开关、可调阈值的轻量客户端增强。
环境与权限:
- 需要 DSH Web Client 提供
conversation.input.overlay,且编辑器粘贴路径支持文件项。 - 需要浏览器支持
File、DataTransfer、ClipboardEvent、localStorage。 - 插件在 当前 DSH Web 进程 / 浏览器上下文 中运行;安装前请自行审阅 源码 与 MIT 许可证,确认符合你的安全与合规要求。
开发验证:维护者在本地用 Node 内置测试运行器覆盖插槽注册、配置持久化、阈值与禁用模式等逻辑,无需额外测试依赖:
node --test client.test.js
结尾¶
paste-as-text-attachment 把「超长粘贴 → 手动存文件 → 再上传」收成输入框内一步,并保留 DSH 原生附件体验。需要安装地址、配置说明与实现细节时,以 GitHub README 为准;社区索引见 SkillHub 目录页与上述仓库链接。