前言¶
DSH(DeepSeek Harness)採用“一切皆插件”的架構。在開發或運維過程中,隨着插件數量增加,理解插件間的層級關係和依賴鏈路往往變得困難。現有的設置頁面通常只列出插件列表,缺乏對依賴關係的可視化展示和交互操作。
dsh-plugin-tree 是一個 DSH Web 客戶端插件,它將“設置 -> 插件”頁面升級爲依賴分層的插件明細樹,並附帶一張可交互的依賴關係圖。通過這個視圖,可以直觀地看到插件如何堆疊,並支持直接啓停和檢查更新。
該插件由 jackxiao-hub 維護,使用 MIT 許可證。
核心功能¶
依賴分層樹¶
插件列表按最長依賴鏈自動分層,從 L0 基礎庫到 L5 領域服務,更深層顯示爲 L{n}。層支持摺疊,並顯示插件數量。無匹配條目的層會自動隱藏。
來源標識與篩選¶
每個插件顯示來源標識(官方/第三方)及安裝方式(隨 dsh 安裝 / npm 安裝 / 本地鏈接等)。
提供搜索功能(按模塊名或描述),並支持三軸獨立篩選:啓用狀態、來源、安裝方式。篩選結果爲三者取交集。
節點詳情與操作¶
點擊任意插件可展開詳情,顯示版本、來源、描述、狀態以及依賴/被依賴列表。
對於第三方插件,詳情頁可直接執行停用或啓用操作,該操作即時生效並持久化到 cordis.patch.yml。
依賴/被依賴 Chips¶
依賴關係通過彩色 Chips 展示:
* 邊框顏色:綠色=已啓用,灰色=未啓用,紅色=掛載失敗,灰色虛線=靜態。
* 背景顏色:官方插件爲淡藍,第三方爲淡黃。
* 判定邏輯:按唯一 entry id 判定。同名插件(同一包可能有多個 Loader 行)各自顯示各自的狀態,點擊各自跳轉到對應行。
檢查更新與更新¶
插件支持檢查 npm 安裝的第三方插件更新。使用 pnpm outdated 命令檢查,並緩存 60 秒。當檢測到新版時,行內會出現“更新”按鈕,點擊後執行 pnpm add <pkg>@latest,安裝後需重啓 dsh web 生效。
依賴樹(圖)¶
工具欄可切換到“依賴樹”視圖,展示分層依賴關係圖。
* 過濾:默認過濾掉靜態文件節點。
* 樣式:邊框表達狀態,填充表達來源,角落有圖例,箭頭指向前置依賴。
* 交互:支持 1:1 像素渲染、縮放、全屏燈箱(ESC 退出)、空白處拖拽平移。
* 鏈路隔離:懸停節點時,只顯示其上下游全鏈路(向上爲前置依賴鏈,向下爲被依賴鏈),其他節點連線隱藏。點擊節點可釘住鏈路,再次點擊空白處解除。
安裝與啓用¶
使用以下命令安裝該插件:
dsh plugin --profile web add github:jackxiao-hub/dsh-plugin-tree
安裝完成後,重啓 dsh web 即可生效。
典型用法¶
- 安裝並重啓後,進入 設置 -> 插件。
- 在插件明細標籤頁,默認按依賴層級展示插件樹。
- 利用搜索和篩選功能定位特定插件。
- 點擊插件節點查看詳情,或點擊“依賴樹”按鈕查看交互式關係圖。
- 在工具欄點擊“檢查更新”查看是否有可用的第三方插件更新。
適用場景與注意¶
- 適用場景:需要快速梳理插件依賴關係、管理大量 DSH 插件或監控第三方插件版本的開發者。
- 無配置項:本插件無需額外配置,所有行爲內置。
- 權限與數據:
- 插件只讀
ctx.loader.entries()與各包package.json用於建樹。 - 寫入
cordis.patch.yml以保存啓停狀態。 - 使用
pnpm命令訪問 npm registry。 - 不讀取任何憑據,不參與模型請求路徑,無 KV cache 影響。
- 插件只讀
- 兼容性:已驗證兼容 Windows + dsh web 2026-08 mainline,以及 Node 22/24。
結語¶
dsh-plugin-tree 提供了一個從 UI 視角管理 DSH 插件依賴的工具。通過分層視圖和交互式圖表,解決了插件堆疊關係的可讀性問題。