dsh-desktop-drop-path:通过拖拽自动填充文件绝对路径

前置说明

DeepSeek Harness (DSH) 的消息附件协议目前仅支持图片。在桌面端,当用户试图通过拖拽方式将非图片文件(如 .pdf、.md、.txt)发送给智能体时,原生功能无法直接处理。dsh-desktop-drop-path 插件通过拦截拖拽事件,利用 DSH Desktop 的 Electron 预加载桥接机制获取文件的真实绝对路径,并将其作为文本插入到输入框中。

插件定位

  • 功能描述:将文件拖入 DSH 编写器输入框,自动填充其绝对路径。
  • 维护者:duanzongyuan
  • 许可证:MIT

核心功能

  1. 自动填充绝对路径:检测到文件拖拽时,不再尝试上传,而是将文件的完整绝对路径写入输入框。
  2. 多文件支持:支持拖入多个文件,每行一个路径。
  3. 桌面端专用:依赖 DSH Desktop 应用的 Electron 预加载桥接机制(window.__DSH_DESKTOP_FILE_PATH__)。
  4. 忽略图片:拖入图片时,插件不会介入,保留 DSH 内置的图片附件功能。

安装与启用

使用 pnpm 通过 GitHub 仓库安装该插件。安装后需重启 DSH Desktop。

pnpm dsh plugin --profile <profile-name> add git+https://github.com/duanzongyuan/dsh-desktop-drop-path.git

请将 <profile-name> 替换为你的 DSH 配置文件名(例如 desktop),并将 duanzongyuan 替换为你的 GitHub 用户名。

典型用法

  1. 在 DSH Desktop 的输入框区域,拖拽一个非图片文件(例如 .pdf、.md、.txt 或 .json 文件)。
  2. 插件会拦截该操作,将文件的绝对路径作为纯文本插入到输入框中。
  3. 智能体可以直接读取该路径下的文件内容。

适用场景与注意

  • 运行环境限制:该插件仅在 DSH Desktop 环境下有效。在纯浏览器环境(Web UI)中,由于 Electron 预加载桥接不存在,插件不会安装任何代码,处于闲置状态。
  • 依赖耦合:插件依赖于 @deepseek-ai/dsh-client-ui-attachment 插件在 window 级别提供的 dragend 重置机制来清除覆盖层。如果该内部插件的行为发生变化,可能需要调整插件代码。
  • 事件阶段:非图片文件的拖拽会在捕获阶段被消费,内置的图片处理器不会拒绝这些操作。

总结

该插件解决了 DSH 在桌面端无法通过拖拽发送非图片文件的问题,通过提供文件路径而非上传文件的方式,使智能体能够直接读取本地文件系统中的资源。

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

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

小夜