前言¶
DeepSeek Harness (DSH) 的原生粘贴功能仅支持图片,这导致开发者在处理 Word、PDF、压缩包等非图片文件时,无法直接引用本地文件路径。dsDragPasteALL 插件通过接管浏览器的拖放与粘贴事件,在后台静默反查文件在磁盘上的真实路径,并将路径文本插入对话框输入框,从而实现类似 Codex 的文件引用体验,而不复制文件内容本身。
插件简介¶
本插件由用户 balue8246-maker 维护,采用 MIT 许可证。它不依赖外部服务,运行在 DSH Host 进程中,负责文件指纹计算与路径反查,Client 端负责事件接管与界面反馈。
核心功能¶
- 任意文件类型:支持 zip、Word、Markdown、PPTX、视频等,不受 DSH 内置”仅支持图片”限制。
- 粘贴分流:纯图片粘贴(macOS/Windows 截图、复制的图片文件)交还 DSH 原生流程,由识图插件识别;含非图片文件的粘贴才由本插件接管。
- 锁定排队:AI 运行中(输入框锁定)拖入的文件或粘贴的截图会进入队列,解锁后自动插入输入框。
- 路径优先:桌面、文稿、下载等常规位置文件 100% 反查真实路径,零复制内容。
- 缓存兜底:找不到原文件时,内容缓存到
~/.dsh/dragpasteall-cache,仍可被读取。 - 多文件支持:一次拖入多个文件,每个文件一行路径。
- 无感反馈:提供全屏拖放浮层与右下角轻量提示,无多余 UI。
- 持久化与工具:导入记录存入
~/.dsh/dragpasteall-inbox.json,提供dragpasteall_inboxAgent 工具查看记录。
安装与启用¶
通过 pnpm add 安装本地插件包,并在配置中启用 bundle。
# 安装命令示例(请替换为本地实际路径)
pnpm add "file:/Users/acegent/Documents/ds 插件/dsDragPasteALL"
安装后,编辑 ~/.dsh/profiles/web/package.json,在 dsh.profile.bundles 中加入 "dsdragpasteall",重启 DSH Web 即可生效。
工作方式¶
- 事件捕获:拖拽任意文件或
⌘V粘贴含非图片文件时,浏览器document捕获阶段接管(先于 DSH 内置处理)。 - 指纹计算:计算文件轻量指纹(首尾 1MiB 拼接 SHA-256),发送 POST 请求。
- 路径反查:Host 端优先使用
mdfind(Spotlight)全盘秒级查找,若未命中则使用find+stat常规目录兜底,比对大小与修改时间及指纹。 - 结果处理:命中则只登记路径;未命中则分块 base64 上传缓存。
- 自动插入:路径自动插入输入框,Agent 根据路径读取文件。
平台与开发¶
平台支持:macOS 优先(使用 mdfind、stat -f、shasum);非 macOS 环境自动退化为 find + stat 常规目录查找,仍走缓存兜底路径。
开发注意事项:
pnpm add file:... 创建的是硬链接。若仅通过编辑器修改源码,硬链接会断开,页面刷新后仍显示旧行为。修改源码后需重新建立硬链接:
cd ~/.dsh/profiles/web
rm -rf node_modules/dsdragpasteall && pnpm install
总结¶
该插件通过路径引用方式解决了本地文件输入问题,适合需要处理非图片文件的场景。详见 GitHub。