前言¶
DSH 的 composer 原生只收文件。拖放鏈路只讀 dataTransfer.files(@deepseek-ai/dsh-client-ui-attachment 的 ComposerAttachments),瀏覽器從不把目錄內容當 File 交出來。結果是:拖文件夾要麼毫無反應,要麼在附件欄裏變成一個 0 字節空殼。
本插件補上這一段:目錄拖進來 → 直接把路徑寫進草稿,交給 agent 自己的文件工具去讀。
這是什麼¶
把文件夾拖進 DSH Desktop composer 得到原生絕對路徑。這是由 chiyu-star499 維護的客戶端插件,採用 MIT 許可證。
核心功能¶
- 純文件/純圖片拖放:保持原樣,完全交回 DSH 原生附件鏈路。附件欄、上傳進度、失敗重試、圖片預覽全部保持原樣。
- 含文件夾處理:本插件獨佔本次拖放。將每一項的原生絕對路徑按換行追加進當前草稿;同時補一個 synthetic
dragend,讓 DSH 的全屏拖放遮罩正常收起。 - 錯誤處理:通過 DSH 自己的
error提示報出失敗項名,絕不靜默。
安裝與啓用¶
dsh plugin --profile desktop add github:chiyu-star499/dsh-folder-drop
注意事項:
* profile 認準 desktop:DSH Desktop(GUI)跑的是 desktop profile;dsh / dsh web 默認是 web,裝進 web 對 GUI 無效。
* 必須重啓:裝完必須重啓 DSH Desktop。配置與插件裝載改動不依賴 patchReload: live。
* 安裝方式:add file:<目錄> 實測是拷貝安裝(不是軟鏈),改源碼後需要重新 add 纔會生效。
典型用法¶
把文件夾拖進 DSH Desktop composer,草稿中會直接得到它的原生絕對路徑 — 不需要複製,也不需要上傳。
適用場景與注意¶
- 功能邊界:只處理 drop。文件夾沒法粘貼,picker 也選不了目錄。普通瀏覽器裏沒有 file-path 橋,拿不到本地路徑;這時會明確報錯,而不是插入錯誤的內容。
- 混拖行爲:混拖時文件也走「插路徑」而不是「附件上傳」。DSH 的 drop 事件無法只攔掉其中一項。要附件上傳就純拖文件。
- 避免衝突:本插件與
dsh-drag-and-drop、dsh-drop-to-path功能重疊,不要同時安裝。
總結¶
插件通過 DSH 公開的輸入門面(ctx.conversation.input.for().setDraft(text))寫入路徑,不觸碰輸入框 DOM。它依賴 DSH Desktop 提供的真實路徑獲取能力,適合需要在 DSH 中直接引用本地文件路徑的開發者使用。