dsh-drop-in: 拖拽即上傳

前言

DeepSeek Harness (DSH) Desktop 的原生拖拽能力存在侷限:拖入圖片走原生視覺通道,拖入文件夾收養爲工作區。拖入任意單個文件(PDF、ZIP、代碼等)沒有官方通道,且 Web 端受瀏覽器安全限制無法獲取本地絕對路徑,導致 Agent 無法“知道”文件指向的具體位置。

dsh-drop-in 插件通過捕獲拖拽事件,將本地文件上傳至會話目錄,並將網頁資源下載至主機端,最終在輸入框注入 Markdown 格式的絕對路徑引用。Agent 可以直接通過 fs 工具讀取這些引用,從而實現對任意內容的文件級訪問。

核心功能

  • 本地文件上傳:拖入本地文件(PDF、ZIP、代碼等)會流式上傳至 <workspace>/.dropped/<sessionId>/,並在輸入框生成 [附件: 文件名](絕對路徑)。
  • 網頁資源下載:拖入網頁圖片或鏈接,由 Host 端流式下載至本地。
  • 純圖片放行:純本地圖片直接通過原生視覺通道,不落盤。
  • 文件夾引用:拖入文件夾通過桌面橋解析絕對路徑,生成引用。
  • 文本處理:拖入文本直接插入或存爲 .md 文件。
  • Host API:提供 /upload、/fetch-url、/save-text、/file 等接口。

安裝

前置要求:
- DSH Desktop for Windows
- Node.js >= 22.13

安裝命令:

dsh plugin add github:zhanghuqqqq/dsh-drop-in --profile <你的profile>

安裝完成後需重啓 DSH Desktop。

使用示例

  • 拖入本地文件(PDF/zip 等):生成 [附件: 文件名](絕對路徑)。
  • 拖入網頁圖片或鏈接:觸發 Host 端流式下載,生成 [網頁圖片: 名](絕對路徑)。
  • 拖入純本地圖片:直接作爲聊天圖片附件。
  • 拖入文件夾:解析磁盤絕對路徑,生成 [文件夾: 名](絕對路徑)。
  • 拖入文本:直接插入或存爲文件。

工作原理

插件通過 document.capture 攔截拖拽事件,根據內容類型分發至不同處理邏輯:
1. 文件:調用 Host API PUT /upload 上傳至會話目錄,路徑按 sessionId 隔離,重名自動添加後綴。
2. URL:調用 Host API POST /fetch-url,Host 端使用 Node fetch 流式下載,支持重定向、重試及 2 GiB 上限。
3. 純圖片:判斷 dt.files 全部爲圖片且無文件夾,放行給原生視覺附件。
4. 文件夾:通過桌面橋 __DSH_DESKTOP_FILE_PATH__ 解析絕對路徑,生成引用。
5. 文本:小於 5000 字符插入輸入框,否則存爲 .md 文件。

限制與注意

  • 單次拖入限制:最多 20 個文件。
  • 大小限制:URL 下載上限 2 GiB,上傳/下載上限 8 GiB。
  • 原生行爲:純圖片拖入走原生視覺附件,不會落盤出引用。
  • 依賴契約:需要 DSH Desktop 的 slots/webServer/systemPrompt 插件契約(@deepseek-ai/* 0.1.0-rc 系列)。

生態與鏈接

  • 倉庫:https://github.com/zhanghuqqqq/dsh-drop-in
  • 目錄頁:https://www.skillhub.cn/plugins/zhanghuqqqq/dsh-drop-in
  • 許可證:MIT
羽毛球分组比赛记分
小程序二维码

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

小夜