dsh-file-link-menu:文件與鏈接的右鍵菜單增強

前言

在 DSH Web UI 中,工具輸出的文件路徑或會話中的鏈接通常只是純文本。直接打開文件、查看文件詳情或管理鏈接往往需要複製路徑並在外部應用中操作。此插件通過注入右鍵菜單和路徑芯片的視覺增強,將原生文件系統的操作能力引入 Web 界面。

這是什麼

dsh-file-link-menu 是一個爲 DSH Web UI 提供右鍵菜單支持和路徑芯片視覺增強的插件。

它解決的核心問題是:在瀏覽器環境中,用戶無法像在本地桌面一樣快速打開文件或鏈接。該插件通過監聽瀏覽器事件並識別 DSH 界面的特定錨點,爲文件、鏈接、附件以及用戶輸入的 @ 引用提供上下文菜單操作,同時爲路徑芯片添加文件類型圖標和短名稱,提升信息識別效率。

核心功能

插件主要處理三類目標的交互與展示:

  1. 文件右鍵菜單
    針對已交付的文件卡片、生成的文件芯片或內聯路徑,右鍵菜單提供以下操作:

    • 打開文件(默認應用)
    • 在 VS Code 中打開
    • 以其他應用打開
    • 另存爲
    • 複製文件路徑
    • 在資源管理器中顯示
  2. 鏈接右鍵菜單
    針對外部鏈接(http/https 鏈接),右鍵菜單提供以下操作:

    • 在新標籤頁打開
    • 在默認瀏覽器打開
    • 複製鏈接
    • 將鏈接另存爲
  3. 路徑芯片與附件增強

    • 圖標與短名:路徑芯片會顯示文件類型圖標和短文件名,全路徑保留在元素的 data-flm-full-path 屬性中。
    • 附件卡片:支持附件卡片的預覽(左鍵)和右鍵操作。
    • @ 引用:處理用戶在消息中輸入的 @ 引用,將其渲染爲文件芯片並支持相同的右鍵操作。
  4. 主機能力探測
    插件通過 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 帶來了接近原生桌面應用的文件交互體驗。通過標準化的右鍵菜單和路徑芯片增強,開發者可以更直觀地管理文件與鏈接資源。

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

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

小夜