dsh-paste-packer:把长粘贴收成输入框上方的卡片

前言

在 DSH(DeepSeek Harness)里往对话输入框贴日志、代码片段或长文时,几十行文本会占满 composer,滚动和改提示词都不顺手。常见做法是手动删行或先贴到别处再引用,步骤多且容易打断思路。dsh-paste-packer 是维护者 X-noesis 发布的客户端插件,面向 DSH Web 与桌面版:超过 20 行的粘贴不再直接灌进输入框,而是打成一张浮在输入框上方的卡片,正文里只留占位胶囊,发送时由 DSH 把占位符还原成全文交给模型。

这是什么

dsh-paste-packer 是 DeepSeek Harness 的粘贴打包插件,分类为客户端,当前 package.json 版本为 0.1.0,许可证 MIT。它解决的是「长粘贴挤占输入区、又希望发送时仍是完整原文」这一矛盾:界面侧折叠展示,提交路径仍走完整文本。

核心功能

粘贴检测以行数为准:超过 20 行的文本会触发打包,而不是一律拦截短粘贴。

打包后,输入框内只保留不可拆分的胶囊占位符,形如 [已粘贴文本 #1 · 23 行]。卡片挂在 conversation.input.dock 区域,位于 composer 上方,与宿主任务条类似的宽度对齐方式,避免盖住对话列。

卡片上的控件行为如下(与 README 一致):

控件 行为
小眼睛 在卡片内就地预览原文(Markdown 渲染、等宽字体、自动折行、固定高度内滚动);卡片宽度不变
展开 把全文解包插入输入框光标处,卡片消失
垃圾桶 丢弃这段粘贴内容,并移除输入框里的占位符

发送消息时,DSH 会按触发源芯片的 codec.serialize 把占位符换回全文,模型收到的是完整原文,而不是占位符字面量。实现上插件注册了一个内容永远为空的 / 触发源,因为输入框是 Lexical 编辑器且没有「提交前改写草稿」的钩子,纯文本占位符无法在其他时机被替换。

安装与启用

插件以本地 bundle 方式安装,目录内 cordis.patch.yml 会插入 loader,一般不必手改 profile 的 package.json 或 cordis.patch.yml。

推荐在当前 profile 下让 Agent 调用 plugin_manager:

action: install_bundle
target: <本目录绝对路径>

plugin_manager 只作用于当前 profile。若 Web 与 desktop 两个 profile 都要装:当前 profile 用上面的 install_bundle;另一个 profile 用官方 CLI(同样会写好 dependencies 与 dsh.profile.bundles):

dsh plugin --profile web add link:<本目录绝对路径>

Windows 桌面版若未把 dsh 加入 PATH,需用安装包内 CLI 的完整路径(README 中有 PowerShell 示例,核心是 plugin --profile web add "link:<本目录绝对路径>")。

安装后注意 plugin_manager 返回的 application 字段:applied 表示热生效,restart-required 需重启 DSH。用 CLI 安装可用 dsh --profile <name> --dump-config 检查合成配置是否出现 - id: dsh-paste-packer。

插件在 SkillHub 社区目录有条目(与 DeepSeek / 幻方无官方从属关系):https://www.skillhub.cn/plugins/X-noesis/dsh-paste-packer
源码与说明:https://github.com/X-noesis/dsh-paste-packer

典型用法

  1. 在 DSH 对话页选中并复制超过 20 行的文本(日志、补丁、文档片段等)。
  2. 在 composer 输入框执行粘贴;应出现上方卡片与输入框内的 [已粘贴文本 #n · x 行] 胶囊,而不是整段原文。
  3. 需要确认内容时点卡片上的小眼睛,在卡片内滚动预览;确认无误可直接发送,或点「展开」把全文放回光标处再编辑。
  4. 不需要这段内容时点垃圾桶,占位符一并移除。

无需额外配置项;行数阈值与 UI 行为由插件内置逻辑决定。

适用场景与注意

适合经常向 Agent 粘贴长日志、多文件片段或 README 级文本、又希望 composer 保持可编辑的场景。Web 与桌面共用同一套客户端逻辑(client.js,零依赖、无构建)。

使用前请知悉:

  • 原文只存在浏览器侧(内存 + localStorage 键 dsh-paste-packer.v1)。换浏览器、清站点数据或超出存储上限后,旧卡片原文可能丢失;预览会提示「原文不可用」,发送会退化为发送占位符文字,不会阻断发送。
  • 卸载插件前请先清空输入框里残留的占位符胶囊;codec 随插件卸载,残留芯片无法正确序列化。
  • 垃圾桶/展开在部分失败路径会整体重写草稿(setDraft),可能把草稿里其他 @文件 引用芯片降级成纯文本。
  • 插件依赖宿主内部约定(如 [data-composer-input]、slash/input-insert-reference、ctx.inputTriggers.registerSource);DSH 大版本升级后可能静默退回原生粘贴,一般不会破坏输入框。
  • 插件以当前 DSH 进程与浏览器环境运行,安装前建议阅读仓库源码与 MIT 许可证,自行评估是否纳入你的工作流。

结尾

dsh-paste-packer 把「长粘贴」从输入框视觉层拆出去,用卡片 + 胶囊占位符保留发送时的全文语义,适合 DSH 日常对话里频繁贴大段文本的场景。更多信息见社区目录页与 GitHub 仓库。

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

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

小夜