前言¶
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 提供了从依赖解析到冲突拦截的完整链路,帮助开发者在安装插件前规避风险。