{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"ch4acko3-dsh-harmony","slug":"ch4acko3-dsh-harmony","rank":225,"url":"https://github.com/CH4ACKO3/dsh-harmony","name":"CH4ACKO3/dsh-harmony","category":"dev","description":{"zh":"在运行时修改 DSH 插件代码，并提供 Patch 排序、检查和热重载。","en":"Modifies DSH plugin code at runtime, with ordered patches, inspection, and hot reload."},"stars":14,"starsCheckedAt":"2026-08-21","repository":{"owner":"CH4ACKO3","repo":"dsh-harmony","requestedRef":null,"subpath":""},"npm":null,"downloads":null,"installMode":"github-source","upstreamInstall":"dsh plugin --profile web add github:CH4ACKO3/dsh-harmony","tarball":null,"added":"2026-08-15","page":"https://awesome-dsh-plugin.com/p/CH4ACKO3/dsh-harmony/","screenshots":[],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"ch4acko3-dsh-harmony","slug":"ch4acko3-dsh-harmony","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:22:30.729Z","scanStatus":"static-complete","verdict":"review","score":77,"commit":"bbb5ec886db40b01e5b4bda7062272cb9a78acf6","commitDate":"2026-08-21T18:44:41+08:00","artifactDigest":"sha256:ea73a35e6a694b2c73aeb6d8df4c4ac43bc4137a7f99604282e7e246c9288d8f","downloadUrl":"https://github.com/CH4ACKO3/dsh-harmony/archive/bbb5ec886db40b01e5b4bda7062272cb9a78acf6.tar.gz","installMode":"github-source","installCommand":"dsh plugin --profile web add github:CH4ACKO3/dsh-harmony","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-harmony","packageVersion":"0.7.3","bundle":{"patch":"./harmony.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-settings-general"],"platform":"web"},"lifecycleScripts":{"prepare":"npm run build","postinstall":"node -e \"if (process.env.npm_config_global === 'true') import('./scripts/postinstall.cjs')\""},"peerDependencies":["@deepseek-ai/dsh"]},"identity":{"status":"found","installMode":"github-source","upstreamNpm":null,"manifestName":"dsh-harmony","nameMatch":null,"npm":{"name":"dsh-harmony","latestVersion":"0.7.3","publishedAt":"2026-08-21T10:47:20.874Z","createdAt":"2026-08-14T21:40:45.927Z","versionCount":19,"maintainers":1,"repository":"git+https://github.com/memorax-ai/dsh-harmony.git","hasInstallScripts":true,"deprecated":false},"repositoryMatch":"mismatch","provenance":"attested","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"harmony.patch.yml","inserts":[{"id":"harmony","name":"dsh-harmony","path":"harmony.patch.yml","disabled":false}],"overrides":[],"jsExpressions":0,"clientPlatform":"web","parseErrors":[]},"capabilities":["agent-control","browser-ui","environment","filesystem","host-bundle","mcp","network","subprocess","telemetry"],"outboundHosts":[],"findings":[{"id":"HT-INSTALL-001","title":"安装阶段执行高风险生命周期脚本","severity":"high","confidence":"high","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":93,"evidence":"\"postinstall\": \"node -e \\\"","remediation":"移除安装期执行，或提供可复现构建产物并将脚本降为显式命令。","hash":"1f38abcd1ec4d5b67d51320b","review":{"verdict":"unclear","reason":"postinstall 仅在 npm_config_global==='true' 时动态 import ./scripts/postinstall.cjs，未提供该脚本内容，无法判断其具体行为是否安全。","model":"sonnet","reviewedAt":"2026-08-21T10:50:24.658Z"}},{"id":"HT-INSTALL-002","title":"Git 安装会触发 prepare 构建脚本","severity":"medium","confidence":"medium","layer":"supply-chain","path":"package.json","pathClass":"manifest","line":92,"evidence":"\"prepare\": \"npm run build\"","remediation":"发布预构建制品（npm 或 GitHub Release tarball），并记录源码与发布包的一致性证明。","note":"源码安装需用户在 allowBuilds 中授权，此脚本会在安装期于用户机器执行","hash":"d28b218339321374f2793b3b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts-src/bootstrap.cts","pathClass":"source","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"5cce1d59532b7d5bf32f1c98"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts-src/restart.cts","pathClass":"source","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"10fbd616944aedbcffe077e4"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"src/installer.ts","pathClass":"source","line":1,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"b3861dc0cadbd915abe3054e"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"src/runtime.test.ts","pathClass":"test-example-docs","line":485,"evidence":"new Function(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"位于测试、示例或文档目录","hash":"a34e6febc2c337f4b4f119d7"},{"id":"HT-RUNTIME-001","title":"动态代码执行","severity":"high","confidence":"low","layer":"static","path":"src/runtime.test.ts","pathClass":"test-example-docs","line":586,"evidence":"new Function(","remediation":"使用静态模块和受约束的配置解析器，避免在宿主权限下执行动态字符串。","note":"位于测试、示例或文档目录","hash":"a34e6febc2c337f4b4f119d7"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/bootstrap.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"5286992bfe85003a220facc4"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/embedded.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"fc09c19728d459fb6c462893"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/embedded.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"f9284799724c2e58c83a6464"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/first-boot.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"50ef22321aa3f395b6ae80aa"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/first-boot.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"cce701971c39445727829130"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/package.e2e.ts","pathClass":"test-example-docs","line":5,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"5d65468d89e2a54208aea80b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/package.e2e.ts","pathClass":"test-example-docs","line":5,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"9034f7d02e4e236c5789612b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/runtime-gate.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"25cf97129c2ae5fa269afa1c"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/shim.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"db020896649957234c43a88a"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"low","layer":"static","path":"test/shim.e2e.ts","pathClass":"test-example-docs","line":2,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","note":"位于测试、示例或文档目录","hash":"1bcdd8b8003c4e9e9ed0feaa"},{"id":"HT-IDENTITY-001","title":"npm 上存在同名包但指向其他仓库","severity":"low","confidence":"medium","path":"package.json","pathClass":"manifest","line":1,"evidence":"npm repository=git+https://github.com/memorax-ai/dsh-harmony.git ≠ ch4acko3/dsh-harmony","remediation":"npm 上存在同名包但指向其它仓库；从源码安装时请使用 github: 引用并锁定 commit。","layer":"identity","hash":"25b829d5b75abfa183d32186"}],"counts":{"critical":0,"high":1,"medium":1,"low":4},"rawCounts":{"critical":0,"high":3,"medium":1,"low":14},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"complete","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":97,"bytesScanned":1065066,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"markdown":6,"yaml":1,"test-example-docs":51,"source":30,"cordis":1,"data":6,"manifest":2}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"],"review":{"model":"sonnet","reviewedAt":"2026-08-22T08:22:30.729Z","summary":null,"intentMatch":null,"findingsReviewed":1,"findingsCandidates":1,"fromCache":1,"usage":null}},"timeline":[{"scannedAt":"2026-08-22T08:22:30.729Z","commit":"bbb5ec886db40b01e5b4bda7062272cb9a78acf6","policyVersion":"HT-DSH-0.2.2","verdict":"review","status":"static-complete"},{"scannedAt":"2026-08-21T11:22:02.247Z","commit":"bbb5ec886db40b01e5b4bda7062272cb9a78acf6","policyVersion":"HT-DSH-0.2.1","verdict":"review","status":"static-complete"},{"scannedAt":"2026-08-21T10:50:24.658Z","commit":"bbb5ec886db40b01e5b4bda7062272cb9a78acf6","policyVersion":"HT-DSH-0.2.0","verdict":"review","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"bbb5ec886db40b01e5b4bda7062272cb9a78acf6","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:22:30.729Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"bbb5ec886db40b01e5b4bda7062272cb9a78acf6","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:22:02.247Z"},{"kind":"first-scan","from":null,"to":"review","commit":"bbb5ec886db40b01e5b4bda7062272cb9a78acf6","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:50:24.658Z"}]}