前言¶
在 DSH Web UI 中,工具輸出的文件路徑或會話中的鏈接通常只是純文本。直接打開文件、查看文件詳情或管理鏈接往往需要複製路徑並在外部應用中操作。此插件通過注入右鍵菜單和路徑芯片的視覺增強,將原生文件系統的操作能力引入 Web 界面。
這是什麼¶
dsh-file-link-menu 是一個爲 DSH Web UI 提供右鍵菜單支持和路徑芯片視覺增強的插件。
它解決的核心問題是:在瀏覽器環境中,用戶無法像在本地桌面一樣快速打開文件或鏈接。該插件通過監聽瀏覽器事件並識別 DSH 界面的特定錨點,爲文件、鏈接、附件以及用戶輸入的 @ 引用提供上下文菜單操作,同時爲路徑芯片添加文件類型圖標和短名稱,提升信息識別效率。
核心功能¶
插件主要處理三類目標的交互與展示:
-
文件右鍵菜單
針對已交付的文件卡片、生成的文件芯片或內聯路徑,右鍵菜單提供以下操作:- 打開文件(默認應用)
- 在 VS Code 中打開
- 以其他應用打開
- 另存爲
- 複製文件路徑
- 在資源管理器中顯示
-
鏈接右鍵菜單
針對外部鏈接(http/https鏈接),右鍵菜單提供以下操作:- 在新標籤頁打開
- 在默認瀏覽器打開
- 複製鏈接
- 將鏈接另存爲
-
路徑芯片與附件增強
- 圖標與短名:路徑芯片會顯示文件類型圖標和短文件名,全路徑保留在元素的
data-flm-full-path屬性中。 - 附件卡片:支持附件卡片的預覽(左鍵)和右鍵操作。
- @ 引用:處理用戶在消息中輸入的
@引用,將其渲染爲文件芯片並支持相同的右鍵操作。
- 圖標與短名:路徑芯片會顯示文件類型圖標和短文件名,全路徑保留在元素的
-
主機能力探測
插件通過GET /api/dsh-file-link-menu/caps接口獲取宿主機的能力,例如桌面會話狀態、可用的文件管理器類型和可啓動的應用列表。如果沒有桌面會話,插件會自動隱藏啓動行。
安裝與啓用¶
插件通過 NPM 發佈預構建版本,無需本地構建步驟。
dsh plugin --profile web add dsh-file-link-menu
安裝後,必須重啓 dsh web 進程或宿主應用,然後刷新頁面,功能纔會生效。
典型用法¶
- 右鍵操作:在對話或工具輸出中,右鍵點擊文件芯片或鏈接,即可彈出對應的操作菜單。
- 快速預覽:點擊附件卡片,文件會在右側邊欄預覽。
- 引用文件:在消息輸入框中使用
@引用文件,發送後該引用會以芯片形式顯示,支持右鍵操作。
適用場景與注意事項¶
- 環境依賴:插件依賴
@deepseek-ai/dsh-client-ui-conversation、@deepseek-ai/dsh-client-ui-primitives和@deepseek-ai/dsh-client-ui-slots插件。 - 桌面會話:未檢測到桌面會話的主機會隱藏“打開”和“在資源管理器中顯示”等啓動行。
- 渲染機制:插件使用 React 的
useId生成動態 ID。如果宿主更新了錨點結構且插件未同步更新,識別邏輯可能會失效,此時系統將回退到 Shell 的默認渲染方式。 - 構建方式:NPM 包爲預構建版本,本地檢出源碼無本地構建步驟。
短結尾¶
dsh-file-link-menu 爲 DSH Web UI 帶來了接近原生桌面應用的文件交互體驗。通過標準化的右鍵菜單和路徑芯片增強,開發者可以更直觀地管理文件與鏈接資源。