dsh-plugin-drop-path:把文件夾拖進 DSH,輸入框得到本機絕對路徑

前言

在 DSH 裏和模型討論本地工程時,你往往希望它「看見」的是某個目錄在本機上的位置,而不是一條無法上傳的附件。上游附件流程面向的是文件:拖進一張圖、一份文檔可以走上傳;拖進整個文件夾時,目錄本身不是文件,上傳拿不到有用內容,輸入框裏卻容易仍被當成附件處理。DeepSeek Harness 的社區插件 dsh-plugin-drop-path(維護者 vianvio,GitHub vianvio/dsh-plugin-drop-path)針對的是這一類場景:在客戶端輸入框裏,把「恰好一個文件夾」的拖放改寫成 @路徑/ 形式的引用塊,模型收到的是該文件夾的本機絕對路徑,你可以接着打字發送。

這是什麼

dsh-plugin-drop-path 是 DSH 客戶端插件(當前 npm 版本 0.1.2,許可證 MIT,零運行時依賴)。它不改變服務端邏輯,只在瀏覽器側攔截符合條件的拖放,並通過上游的引用插入通道寫入路徑。插件在 DSH 生態目錄中的分類爲客戶端;SkillHub 目錄頁:https://www.skillhub.cn/plugins/vianvio/dsh-plugin-drop-path。

核心功能

下面介紹拖放時的行爲劃分(與 README 一致):

你拖進來的 結果
一個文件夾 插件接管本次拖放,把絕對路徑插進輸入框(folder 形狀的 @路徑/ 引用塊)
一個普通文件 不處理,仍走上游附件流程(圖片 / 文件上傳)
同時拖多個 不處理(多選裏含文件夾也不猜測)

只有「恰好一個文件夾」纔會接管:誤判一次可能吞掉本應按附件處理的文件,因此作者選擇保守策略。引用塊在顯示上放寬了上游約 240px 寬、省略號截斷的限制,以便長路徑完整可見;發給模型的文本不變。

路徑來源與插入方式要點:

  1. 在 window 捕獲階段監聽拖放,先於掛在 document 冒泡上的上游附件插件,不依賴插件加載順序。
  2. 絕對路徑來自 DSH Desktop 的窄口橋 window.__DSH_DESKTOP_FILE_PATH__(對應 Electron 的 webUtils.getPathForFile)。普通瀏覽器沒有這座橋時會明確提示讀不到路徑,而不是插入假路徑。
  3. 使用上游通道 slash/input-insert-reference 插入引用,避免整篇替換 Lexical 草稿導致已有引用塊降級或光標丟失。

安裝與啓用

安裝命令以 README 爲準。桌面端示例:

dsh plugin --profile desktop add dsh-plugin-drop-path

--profile 填你實際使用的 profile(桌面端爲 desktop,Web 端爲 web)。裝完後需要重啓 DSH——客戶端插件多在啓動時加載。命令背後通過 pnpm 安裝包,並自動把聲明瞭 dsh.bundle 的依賴寫入 profile 的 dsh.profile.bundles,無需手改 package.json。

其他來源(資料原文):

從哪裝 命令
npm(推薦) dsh plugin --profile desktop add dsh-plugin-drop-path
GitHub 最新提交 dsh plugin --profile desktop add github:vianvio/dsh-plugin-drop-path
本地目錄(開發) 克隆倉庫後:dsh plugin --profile desktop add link:$HOME/dsh-plugin-drop-path

升級與卸載:

dsh plugin --profile desktop update dsh-plugin-drop-path
dsh plugin --profile desktop remove dsh-plugin-drop-path

典型用法

  1. 在 DSH Desktop 中打開對話輸入框。
  2. 從訪達(Finder)或資源管理器中單獨拖入一個文件夾到輸入區域。
  3. 輸入框出現帶 folder 圖標的 @…/ 引用塊,內容爲該文件夾的本機絕對路徑;繼續輸入說明後發送,模型側看到的是路徑字符串而非附件。

若在普通瀏覽器中打開同一界面,沒有 Desktop 路徑橋,插件會說明無法讀取本機路徑——這是預期邊界,不是配置錯誤。

適用場景與注意

適合誰: 經常在 DSH 裏讓模型基於本地工程目錄路徑做說明、腳本生成或上下文引用,且習慣用拖拽而不是手打長路徑的開發者。

已知邊界(README):

  • 路徑僅在 DSH Desktop 可獲取;Web 瀏覽器無 __DSH_DESKTOP_FILE_PATH__。
  • 路徑原樣插入:不做存在性校驗、不做 ~ 縮寫、不做相對化,避免模型在另一側解釋錯誤。
  • 僅處理「恰好一個文件夾」的拖放,其餘交給上游。

安全與信任: 插件以當前 DSH 進程權限在客戶端運行,會讀取拖入文件夾的本機路徑並寫入輸入框。安裝前建議查看 GitHub 倉庫 源碼與 MIT 許可證;社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

機制細節與驗證說明見倉庫內 docs/notes.md;行爲與發佈契約有 npm test(README 稱 20 項)。

結尾

經過上面的步驟,你可以在 Desktop 端用一次文件夾拖放,把本機絕對路徑以引用塊形式交給模型,而繞開「目錄無法當附件上傳」的死衚衕。更多元數據與討論見目錄頁 https://www.skillhub.cn/plugins/vianvio/dsh-plugin-drop-path,源碼與安裝說明見 https://github.com/vianvio/dsh-plugin-drop-path。

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

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

小夜