🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

粘贴分流 winditer/dsh-paste-spill

DeepSeek 客户端
winditer36 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

把输入框里的大段粘贴折叠成芯片或转成附件

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/winditer/dsh-paste-spill.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 36 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 大段粘贴折叠成芯片
  • 超大粘贴转为文件附件
  • 生成可交付卡片

DeepSeek Harness 输入框的大段粘贴处理:4-50 KB 的粘贴折叠成一个 chip,≥50 KB 的粘贴变成真正的文件附件,带一张可交付卡片。

README

由 DeepSeek 最新模型翻译生成
dsh-paste-spill DSH 输入框的入站大文本粘贴处理:4–50 KB 的粘贴折叠成一枚 chip(每次粘贴一枚,可单独展开或删除),≥ 50 KB 的粘贴转成真附件,并在 turn 末尾出一张可点开的交付卡。 dsh-spill 管的是出站方向(工具输出离开模型)。本插件补上相反的那一半:把一大段日志、diff、JSON 或文档粘进输入框时该怎么办。 | 层 | 粘贴大小(UTF-8 字节) | 行为 | | 折叠层 | 4,000 – 50,000 | 刚粘贴的那一段移出编辑器,变成一枚 chip。每次粘贴一枚,多枚共存,先前的 chip 不会被覆盖 | | 转文件层 | ≥ 50,000 | 文本作为真附件上传:消息里是 file 块,turn 末尾出现可点卡片,点击在右侧栏打开文件 | 两层相互独立,且都以粘贴进来的那段文本为基准(不是整篇草稿):折叠层改的是输入框外观,转文件层改的是模型收到什么。小于 4,000 字节的粘贴完全不做处理。 折叠层(4,000 – 50,000 字节) 一次粘进 4 KB–50 KB 时,只有刚粘贴的那一段移出编辑器,交给插件按 ref 持有的 chip。你自己打的字、以及之前粘贴留下的 chip 都不动。
展开完整文档(README 剩余 1 节)
dsh-paste-spill

DSH 输入框的入站大文本粘贴处理:4–50 KB 的粘贴折叠成一枚 chip(每次粘贴一枚,可单独展开或删除),≥ 50 KB 的粘贴转成真附件,并在 turn 末尾出一张可点开的交付卡。

dsh-spill 管的是出站方向(工具输出离开模型)。本插件补上相反的那一半:把一大段日志、diff、JSON 或文档粘进输入框时该怎么办。

| 层 | 粘贴大小(UTF-8 字节) | 行为 |
| 折叠层 | 4,000 – 50,000 | 刚粘贴的那一段移出编辑器,变成一枚 chip。每次粘贴一枚,多枚共存,先前的 chip 不会被覆盖 |
| 转文件层 | ≥ 50,000 | 文本作为真附件上传:消息里是 file 块,turn 末尾出现可点卡片,点击在右侧栏打开文件 |

两层相互独立,且都以粘贴进来的那段文本为基准(不是整篇草稿):折叠层改的是输入框外观,转文件层改的是模型收到什么。小于 4,000 字节的粘贴完全不做处理。

折叠层(4,000 – 50,000 字节)

一次粘进 4 KB–50 KB 时,只有刚粘贴的那一段移出编辑器,交给插件按 ref 持有的 chip。你自己打的字、以及之前粘贴留下的 chip 都不动。

每枚 chip 显示:

- 该段粘贴的前 20 个字符(空白折叠成一行)作为预览;
- 在文本框中显示 › / Show in text box › —— 点击把这一枚 chip 的原文写回它原来的位置并释放;
- × —— 只删除这一枚 chip 并释放它的文本(删除这段文本 / Delete this text)。

chip 是编辑器里的真实节点,不是装饰:它注册了一个 inputTriggers source,serialize(ref) 返回原文全文。所以发送出去的就是这段粘贴本身——既不是占位符,也不是附件。

一次粘贴等于一枚 chip,因此第二次粘贴 6 KB 是追加一枚,而不是覆盖第一枚:chip 是它那段文本的唯一载体,覆盖就等于把那段粘贴删掉。

浮动的 chip 带自己量自己的高度,作为 --dshps-chip-band 写到输入卡片上,卡片再把它变成 padding-top。chip 浮在第一行输入之上而不是盖住它;多枚 chip 换行时高度随之变化。

转文件层(≥ 50,000 字节)

50,000 字节及以上的粘贴会被合成一个 File,走输入框既有的附件上传链路,文件名按内容嗅探(pasted-text-.json / .md / .py / .js / .html / .csv / .txt)。结果是消息里一个合法的 file 块,模型通过 stock 附件处理拿到只读宿主路径——不改 session 格式,也不改模型侧。

宿主半监听 agent/inbox/inserted 找出这些粘贴文件,从附件存储解析出宿主路径,并在 agent/pre-step 里发布 deliverables/presented 事件;stock 的交付 UI 因此在 turn 末尾渲染一张可点卡片,点击在右侧栏打开文件。随后原文从输入框中就地清除——只把粘贴那一段自己的 span 写成 "",绝不重写整篇草稿,所以其它 chip、手打的文字、光标和 undo 历史都不受影响。

截图

折叠层 —— 4–50 KB 的粘贴变成一枚 chip:预览行、在文本框中显示 ›(写回原文)、×(只删除这一枚)。

dsh-paste-spill 效果预览 1:一段 JSON 粘贴在 DSH 输入框上方折叠成 chip,显示 { "readings": { "bac… 与展开、删除按钮

转文件层 —— ≥ 50 KB 的粘贴变成真附件(pasted-text-173.json,59 KB),模型拿到的是文件而不是一大段文字。

dsh-paste-spill 效果预览 2:59 KB 的 JSON 粘贴在输入框里显示为 pasted-text-173.json 附件 chip,发送按钮可用

dsh-market 会在插件卡与详情页展示这两张图;它们声明在 screenshots.json 里,因此顺序与取舍由本仓库决定,而不是靠市场从 README 猜。

安装

在 DeepSeek Harness CLI 里装进 web profile——已发布到 npm:dsh-paste-spill:

dsh plugin --profile web add dsh-paste-spill

想从源码装?同一个包也可以直接从 GitHub 安装:

dsh plugin --profile web add github:winditer/dsh-paste-spill

DSH Desktop 请在应用内的插件管理器(设置 → 插件)或插件市场里安装;CLI 会拒绝 --profile desktop,因为该 profile 由应用自己管理。

从本地 checkout 开发本插件时,用 scripts/install-into-profile.sh 把本仓库软链进 desktop profile,并写入依赖条目——没有依赖条目的 bundle 行会在 profile 对账/崩溃恢复时被抹掉。

装好后浏览器半是页面级模块:刷新一次页面(或重启)即可生效。

兼容性

- package.json 里声明 engines.dsh: ">=0.1.7-rc.2 = 50000 → 合成 File,走 stock 附件上传宿主半 lib/index.js (exports["."], dsh.bundle.patch) agent/inbox/inserted → 记录粘贴附件的宿主路径 agent/pre-step → session.append("deliverables/presented", ...) → stock 交付卡 → 右侧栏预览

一个包一行:cordis.patch.yml 只声明一次 dsh-paste-spill;loader 通过 exports["."] 导入宿主半,web-modules 扫描器则从同一个 package.json 的 dsh.client + exports["./client"] 发现浏览器半。

开发 sh
node --test # 108 个测试:宿主半 17(helpers 7 + plugin 10)、浏览器半 91

- 插件包就是仓库根目录——市场的 dsh.bundle 检查读的就是根 package.json。
- docs/internals.md —— 实现笔记:当前设计背后的真机 bug、对抗性评审的结论,以及试过又推翻的调试路径。
- docs/superpowers/specs/ 与 docs/superpowers/plans/ —— 设计文档与实施计划。
- fixtures/ —— 测试用的真实粘贴样本(3 KB / 6 KB / 60 KB)。
- scripts/read-leveldb.py 与 scripts/read-session.mjs —— 没有 console 时用来看渲染层 Local Storage 和某次会话真正提交了什么的证据工具。
- 应用内诊断写在 localStorage["dsh.paste-spill.diag"](按会话的事实看 bySession.)。确认新构建真的加载了:build 必须等于当前 BUILD_REV,applyRanAt 是刚刚的时间。
- 发版:改 package.json 的 version,然后 pnpm publish。files 白名单让 tarball 只含 lib、cordis.patch.yml、两份 README、screenshots.json、assets 与 LICENSE;没有构建步骤,所以发出去的版本就是源码本身。

已知限制

- chip 按会话存活。折叠期间切走再回来,插件会把原文写回输入框(不再为它画 chip),所以文本不会丢,也不会把 chip 的 label 当成消息发出去。
- chip 插入是一次草稿 revision CAS:revision 变了就重试,仍被拒则回滚该条折叠记录——文本留在输入框,绝不为它画 chip。
- 转文件后只有仍能定位到粘贴段时才会就地清除;定位不到就保持原文与附件并存(无害且可恢复),而不是去清空草稿。
- 附件上传失败时把原文 best-effort 写回编辑器;失败的附件卡仍带重试按钮。
- chip 自身的 label(已折叠 5.9 KB)目前是中文;chip 的 tooltip 与展开提示已中英双语。

许可证

MIT
预览分享卡片长什么样 ↓winditer/dsh-paste-spill
分享 · DeepSeek Harness Hub
winditer/dsh-paste-spill

把输入框里的大段粘贴折叠成芯片或转成附件

这是你的仓库?认领条目

回到顶部