前言¶
在 DeepSeek Harness (DSH) 的插件生态中,依赖管理是构建可靠智能体的基础。开源组件的许可证合规性直接影响项目的商业可行性。尤其是 AGPL-3.0 等强传染性许可证,若混入闭源项目,可能导致源代码泄露。dsh-license-guard 插件旨在解决这一问题,提供扫描、归一化与合规校验能力。
功能概览¶
该插件用于扫描 node_modules 目录下的所有依赖,将其许可证标识归一化为 SPDX 格式,并按宽松、弱传染、强传染等类别分类。它支持在发布前按策略拦截不合规的依赖。
安装与启用¶
在终端中执行以下命令安装插件:
dsh plugin add github:uckkk/dsh-license-guard
安装后,需在 DSH 的 profile 配置文件(如 package.json 中的 dsh.profile.bundles)中添加 "dsh-license-guard" 才能启用。
使用方法¶
插件提供了两个核心工具。
查看许可证构成¶
先执行扫描,查看项目依赖的许可证分布:
license_scan(root="/workspace")
执行合规校验¶
在发布前进行门禁检查,指定禁止的许可证类型:
license_check(root="/workspace", deny=["AGPL-3.0"])
默认策略¶
插件内置了默认策略:
* 宽松许可证(MIT、Apache-2.0、ISC、BSD、0BSD、Zlib、Unlicense、CC0-1.0 等):默认允许。
* 强传染许可证(GPL-3.0、AGPL-3.0、SSPL-1.0、GPL-2.0 等):默认禁止。
* 未知/未授权许可证:默认计入违规,可通过参数 includeUnknown: false 关闭。
技术说明与注意事项¶
- 实现方式:纯 Node.js 实现,无需网络连接或外部服务。
- 数据来源:识别基于依赖包
package.json中的license或licenses字段,识别不到的会标记为“未知”。 - 合规性质:属于启发式合规筛查,不能替代专业的法律意见。正式商用或发布前,请务必进行法律复核。
- 运行权限:插件以 DSH 进程的权限运行,请自行审阅源码。
总结¶
dsh-license-guard 提供了从扫描到校验的完整闭环,帮助开发者规避开源许可证风险。