前言¶
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 提供了從依賴解析到衝突攔截的完整鏈路,幫助開發者在安裝插件前規避風險。