dsh-auto-click:爲 DSH Web GUI 側邊欄補全文件手勢與右鍵菜單

前言

在 DeepSeek Harness(DSH)裏開發時,左側文件樹和聊天裏的文件鏈接是高頻入口:多數時候你只想在側邊欄裏快速預覽,但有時需要用系統默認編輯器打開、複製絕對路徑,或在資源管理器裏定位文件。宿主默認的左鍵預覽往往夠用,卻缺少「Ctrl+左鍵直開本地應用」和統一的右鍵菜單。社區維護者 Analoty 的 dsh-auto-click 是一類 客戶端 插件,專門在 DSH Web GUI 上爲這些場景補手勢和菜單,而不改寫左鍵預覽本身。

下面介紹它的定位、能力與安裝方式;事實以 GitHub 倉庫 README 爲準。

這是什麼

dsh-auto-click 是 DSH 的客戶端插件:在 Web GUI 側邊欄(以及聊天中的文件鏈接)上監聽鼠標操作,需要打開本地文件或複製路徑時,經 Host 半調用系統 API,並走 DSH 自身的請求信任柵欄與會話工作區路徑校驗。

  • 維護者:Analoty
  • 分類:客戶端(dsh.client.platform: web,立即注入 UI 相關 slot)
  • 環境要求:DSH >= 0.2.0-rc.1(見 package.json 的 engines.dsh)
  • 當前 npm 版本(資料中明確):0.1.3
  • 許可:MIT

核心功能

鼠標手勢

操作 結果
左鍵單擊 在側邊欄打開文件預覽(宿主原有行爲,插件不干預)
Ctrl + 左鍵單擊 用系統默認應用打開;沒有默認應用時彈出「打開方式」
右鍵單擊文件 彈出文件菜單
右鍵單擊普通鏈接 彈出「複製鏈接」菜單

文件右鍵菜單項

  1. 打開文件 — 系統默認應用打開
  2. 打開方式 — 調用操作系統自帶的「打開方式」選擇框(插件不維護自己的應用列表)
  3. 另存爲… — 通過瀏覽器下載保存副本
  4. 複製路徑 — 複製絕對路徑
  5. 複製文件內容 — 複製文件文本內容
  6. 在資源管理器中打開 — 在文件管理器中定位該文件

普通鏈接右鍵菜單

  1. 複製鏈接 — 複製 href 原文(相對路徑也照原樣複製,不補站點前綴)

成功操作不彈提示(例如複製路徑時剪貼板即反饋);只有失敗或被拒絕時才提示。

平臺支持

  • Windows:完整支持;「打開方式」通過 Shell COM(Shell.Application → Item.InvokeVerb('openas'))實現。
  • macOS:「打開方式」走 open -a。
  • 其他平臺:可用,但「打開方式」會明確報告不支持。

在沒有交互式桌面的會話(部分遠程或服務模式)中,「打開方式」仍可能無法彈出對話框。

路徑與安全

文件可能來自左側文件樹、DSH 文件面板或聊天中的文件鏈接。聊天鏈接與樹節點攜帶的是工作區相對路徑,瀏覽器半會把當前會話 id 一併發送,由 Host 在該會話的工作區內解析。

沒有已知工作區時,相對路徑會被拒絕,而不是用進程目錄猜測——避免誤打開或複製同名但用戶未指向的文件。聊天 mention 形如 @"帶 空格 的 名字.md" 時,解析前會剝離 @ 與引號(提及語法標點,非文件名一部分)。

打開文件走 DSH 的 sessionController.openWorkspacePath,繼承宿主路徑校驗;Host 路由(如 /auto-click/open 等)經 connection.requestRejection,未認證或跨源請求在業務邏輯前被拒絕。

限制(README 明確)

  • 「複製文件內容」和「另存爲」拒絕大於 8 MiB 的文件,不截斷。

安裝與啓用

從 npm 安裝。桌面版和 dsh web 是兩個獨立的 profile,裝在一個裏不會出現在另一個裏,按使用方式選命令。裝完後重啓對應進程(桌面版重啓應用,dsh web 重啓該命令)。

桌面版(DSH Desktop)

dsh plugin --profile desktop add dsh-auto-click

終端 dsh web

dsh plugin --profile web add dsh-auto-click

README 說明:dsh plugin 的參數會原樣透傳給 pnpm,<spec> 可以是包名、包名@版本 或 git 地址;命令動詞用 add。

從 GitHub 安裝(不經過 npm)

dsh plugin --profile desktop add github:Analoty/dsh-auto-click

本包爲純 JavaScript,無 prepare 構建步驟,從 git 直裝不會被 pnpm 的 allowBuilds 策略攔下。若使用 Web 終端,將 --profile desktop 改爲 --profile web 即可。

卸載

dsh plugin --profile desktop remove dsh-auto-click
dsh plugin --profile web     remove dsh-auto-click

典型用法

  1. 在側邊欄文件樹上 左鍵 某文件:行爲與未裝插件時相同,仍在側邊欄預覽。
  2. 需要直接用 VS Code、PDF 閱讀器等打開時,對該節點 按住 Ctrl 再左鍵(macOS 上爲對應修飾鍵組合,以實現爲準)。
  3. 在聊天裏出現的文件鏈接上 右鍵,從菜單選擇「複製路徑」「複製文件內容」或「在資源管理器中打開」等。
  4. 對普通超鏈接右鍵,使用「複製鏈接」獲取原始 href。

倉庫 README 在 docs/screenshots/file-menu.png 提供了聊天文件鏈接右鍵菜單的截圖示例。

適用場景與注意

適合誰:日常在 DSH Desktop 或 dsh web 中頻繁從側邊欄和聊天跳轉本地文件、需要系統級「打開 / 打開方式 / reveal」的開發者。

安裝前建議:插件以當前 DSH 進程的權限運行,會通過 Host 調用系統 shell 與文件 API。安裝前應閱讀 源碼 與 MIT 許可證,確認符合你的安全策略。DSH 社區插件目錄(如 SkillHub 條目)是獨立站點,與 DeepSeek / 幻方無官方從屬關係,並非官方應用商店。

設計取捨:插件刻意不枚舉「能打開 .md 的應用列表」,而把「打開方式」交給 Windows / macOS,以避免錯誤列表或空列表;README 中記錄了 Windows 上 OpenAs_RunDLL 與 detach 子進程等已踩坑,供維護者參考。

結尾

dsh-auto-click 用最小的客戶端補丁,把 DSH Web GUI 側邊欄和聊天文件鏈接上的 預覽、Ctrl+直開、右鍵菜單 串成一套一致的手勢;路徑解析與會話工作區綁定,打開文件仍走宿主校驗。

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

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

小夜