dsh-composition-check

by aryswisnu

0 工具与能力github收录于 08-23

本地 CLI:检查有序 DSH profile bundle 栈的 Cordis patch 所有权冲突;普通 npm CLI 包,非 DSH bundle

A local CLI that checks an ordered DSH profile bundle stack for simple Cordis patch ownership conflicts. It is an ordinary npm CLI package, not a DSH bundle.

安装

dsh plugin --profile web add github:aryswisnu/dsh-composition-check

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

A local CLI that checks an ordered DSH profile bundle stack for simple Cordis patch ownership conflicts. It is an ordinary npm CLI package, not a DSH bundle.

Install

npm install --save-dev dsh-composition-check
# or: npm install -g dsh-composition-check

Stack file

profile: headless
bundles:
  - path: ./bundles/base
  - path: ./bundles/safe-delete

Each path is local and resolved relative to the stack file. A bundle must contain package.json declaring dsh.bundle.patch (accepted as dsh.bundle.patch or nested dsh.bundle.patch JSON fields) and the declared cordis.patch.yml inside that bundle directory.

Use

npx dsh-composition-check stack.yml
npx dsh-composition-check stack.yml --json
npx dsh-composition-check stack.yml --runtime

Default mode is static-only and never invokes DSH. --runtime creates a temporary DSH_HOME, runs dsh plugin --profile <profile> add <bundle> for each ordered layer, then dsh --profile <profile> --dump-config; the temporary home is removed in finally. It never deliberately modifies your existing DSH_HOME.

Exit status: 0 no errors, 1 checker/runtime errors, 2 usage or malformed input. In --json mode stdout is JSON only.

Findings and confidence

Static analysis reports duplicate inserted entry IDs as errors and later { id: ... } patches targeting earlier entries as override warnings. proven static means only that the listed local patch declarations were read and these rules found no errors. proven runtime means the requested DSH commands completed successfully in the temporary home. unknown means an error prevented that evidence. None of these states promises DSH compatibility: DSH preview provides no compatibility guarantee, and this tool does not model every Cordis or plugin interaction.

Malformed YAML/patch shapes and unreadable bundle contracts are reported as errors. The checker does not fetch packages, use network/model calls, validate arbitrary plugin code, or replace DSH integration testing.

Development

npm test
npm run typecheck
npm run build
npm run pack:check

See examples/stack.yml.

原始 README: https://github.com/aryswisnu/dsh-composition-check/blob/main/README.md ↗