DeepSeek Harness 插件:實時依賴關係圖 (ewoowe/dsh-plugin-dependency-graph-plugin)

DeepSeek Harness 的核心設計理念是「一切皆插件」,插件之間通過 Cordis 運行時進行服務注入。隨着插件數量增加,排查某個服務由誰提供、或者哪些插件依賴了它,往往需要查閱代碼或配置文件,無法直觀反映運行時的真實狀態。

ewoowe/dsh-plugin-dependency-graph-plugin 是一個用於 DeepSeek Harness 的依賴關係圖插件。它不從靜態清單讀取數據,而是直接從當前正在運行的 Cordis 實例中抓取實時服務注入關係。該項目由 ewoowe 維護,採用 MIT 許可證。

核心功能

該插件主要提供以下能力:

  1. 實時讀取運行時:直接從 Cordis 運行時讀取插件服務注入關係,而非靜態清單。
  2. 雙視圖模式:提供設置欄內的內嵌視圖,以及新標籤頁打開的全寬獨立視圖。
  3. 搜索與篩選:支持按包名、Loader 條目 ID、服務名進行搜索。
  4. 狀態行控制:顯示圖例、統計數量,點擊可篩選特定狀態的節點。
  5. 畫布交互:支持刷新、縮放、平移、節點選擇。
  6. 自動摺疊:默認摺疊無依賴項的插件,保持界面整潔。
  7. 運行時隔離:瀏覽器和 Node 運行時是不同的,兩者不會合並。

安裝與啓用

根據提供的資料,安裝命令未明確列出。該插件在 package.json 中配置了 dsh.bundle.patch 機制(指向 cordis.patch.yml),通常通過 Harness 的包管理或補丁系統進行加載。

# cordis.patch.yml (引用自 package.json)
bundle:
  patch: "./cordis.patch.yml"

典型用法

1. 查看依賴圖

在 Harness 的設置界面中找到該插件,或者在瀏覽器中直接打開該依賴圖頁面,即可看到當前的依賴關係可視化視圖。

2. 搜索服務

使用搜索框查找特定服務。搜索支持匹配包名、Loader 條目 ID 以及插件提供的服務名。例如,輸入 ctx.locale 可以直接找到提供該服務的節點。

搜索結果會列出匹配項,點擊結果行即可定位到圖中的節點。

3. 篩選狀態

依賴圖頂部設有狀態行,顯示每種狀態(如正常、錯誤等)的節點數量。點擊某個狀態的膠囊按鈕,可以篩選圖中只顯示該狀態的節點。

4. 操作畫布

  • 選擇節點:點擊節點可查看詳情(包括提供的服務和監聽的事件)。
  • 平移與縮放:拖拽畫布平移,滾動鼠標滾輪縮放。
  • 刷新:點擊刷新按鈕重新讀取運行時數據。

適用場景與注意

  1. 版本要求:依賴 Node.js 22.19.0 或更高版本。
  2. 依賴庫:依賴 @deepseek-ai/cordis、React 等庫。
  3. 運行時差異:瀏覽器和 Node 端收集到的樹是不同的,兩者是不同的運行時,無法合併顯示。
  4. 依賴類型:依賴關係分爲聲明(inject、@Inject 裝飾器)和運行時(ctx.inject)。插件加載時必須滿足聲明的依賴,而運行時依賴則通過回調滿足。
  5. 佈局算法:圖佈局基於數據而非物理引擎,使用黃金角度分佈,確保相同組合下產生的圖像位置固定,便於定位。

總結

該工具幫助開發者直觀地瞭解 DeepSeek Harness 的插件生態運行狀態,是排查服務注入問題和理解插件架構的有力輔助。

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

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

小夜