dsh-plugin-graph:DSH 插件依賴圖與衝突檢測引擎

前言

DSH(DeepSeek Harness)採用“一切皆插件”的架構,隨着插件生態的發展,管理插件間的依賴關係和排查衝突成爲維護難點。在沒有執行插件代碼的情況下,難以直觀判斷插件是否缺失依賴、存在循環引用或與其他插件衝突。dsh-plugin-graph 旨在解決這一痛點,它作爲生態級基建插件,提供依賴圖構建與衝突檢測能力。

核心能力

該插件通過靜態解析插件源碼與 package.json,不執行插件代碼,確保分析過程安全且通用。

衝突檢測

系統支持四類衝突檢測,覆蓋工具、服務、管道攔截與事件監聽:
* 工具衝突
* 服務衝突
* 管道攔截重疊
* 事件監聽重疊

依賴圖與兼容性

  • 依賴圖:自動檢測缺失依賴與循環依賴(使用 DFS 三色標記算法)。
  • 版本兼容性:覈對插件聲明的 DSH 版本要求與當前運行版本(支持簡化 semver:* / x.y.z / ^ / ~ / >=)。
  • 安裝預檢:模擬安裝新插件後的增量風險,衝突時自動攔截。

運行環境與部署

  • 運行時:業務邏輯全部爲純函數,運行時(index.js)只做薄封裝。
  • CLI / CI 就緒:支持 --json 輸出,退出碼 0/1 可直接接入 CI 門禁。

安裝與啓用

通過以下命令安裝:

# 作爲 DSH 插件安裝
dsh plugin add dsh-plugin-graph

# 或作爲 CLI 全局安裝
npm install -g dsh-plugin-graph

典型用法

安裝完成後,可在命令行使用以下命令:

# 掃描插件目錄,構建依賴圖並檢測衝突
dsh-plugin-graph scan <dir> [--]

# 衝突檢查(無 error 級衝突即健康)
dsh-plugin-graph check <dir> [--]

# 安裝預檢:模擬安裝新插件後的增量風險
dsh-plugin-graph preflight <existingDir> <incomingDir> [--]

# DSH 版本兼容性檢查
dsh-plugin-graph compat <dir> <dshVersion> [--]

適用場景與注意

此工具適合 DSH 插件開發與維護階段使用。由於插件以當前 DSH 進程權限運行,建議在安裝前檢查源碼與許可證。項目基於 MIT 許可證,需確保 Node.js 版本 >= 18。

結語

dsh-plugin-graph 提供了從依賴解析到衝突攔截的完整鏈路,幫助開發者在安裝插件前規避風險。

GitHub

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

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

小夜