前言¶
在 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 提供了從掃描到校驗的完整閉環,幫助開發者規避開源許可證風險。