@fantasticit/sumi 0.7.6 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -16
- package/dist/adapters.d.ts +2 -0
- package/dist/adapters.js +18 -3
- package/dist/adapters.js.map +1 -1
- package/dist/agent-hooks.d.ts +4 -1
- package/dist/agent-hooks.js +157 -12
- package/dist/agent-hooks.js.map +1 -1
- package/dist/cli.js +41 -2
- package/dist/cli.js.map +1 -1
- package/dist/context.js +4 -4
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/instructions.js +3 -1
- package/dist/instructions.js.map +1 -1
- package/dist/visualize-page.d.ts +1 -0
- package/dist/visualize-page.js +49 -0
- package/dist/visualize-page.js.map +1 -0
- package/dist/visualize.d.ts +5 -0
- package/dist/visualize.js +132 -0
- package/dist/visualize.js.map +1 -0
- package/node_modules/@sumi/create/dist/scaffold.js +6 -0
- package/node_modules/@sumi/create/dist/scaffold.js.map +1 -1
- package/node_modules/@sumi/create/package.json +1 -1
- package/node_modules/@sumi/create/template/AGENTS.md +2 -0
- package/node_modules/@sumi/create/template/control/config.yaml +2 -0
- package/node_modules/@sumi/create/template/control/flows/change.flow.yaml +6 -0
- package/node_modules/@sumi/create/template/control/flows/check.flow.yaml +8 -0
- package/node_modules/@sumi/create/template/control/rubrics/business-impact.yaml +6 -0
- package/node_modules/@sumi/create/template/control/rules/development.md +61 -0
- package/node_modules/@sumi/create/template/init/AGENTS.md +2 -0
- package/node_modules/@sumi/create/template/init/control/flows/check.flow.yaml +2 -0
- package/node_modules/@sumi/kernel/dist/brief.d.ts +1 -0
- package/node_modules/@sumi/kernel/dist/brief.js +1 -0
- package/node_modules/@sumi/kernel/dist/brief.js.map +1 -1
- package/node_modules/@sumi/kernel/dist/engine.js +1 -0
- package/node_modules/@sumi/kernel/dist/engine.js.map +1 -1
- package/node_modules/@sumi/kernel/package.json +2 -2
- package/node_modules/@sumi/plugin-sdk/README.md +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/index.d.ts +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/index.js +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/index.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/protocol.d.ts +4 -0
- package/node_modules/@sumi/plugin-sdk/dist/protocol.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/trace.d.ts +16 -0
- package/node_modules/@sumi/plugin-sdk/dist/trace.js +48 -0
- package/node_modules/@sumi/plugin-sdk/dist/trace.js.map +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/validate.js +13 -2
- package/node_modules/@sumi/plugin-sdk/dist/validate.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/package.json +1 -1
- package/node_modules/@sumi/plugins-core/dist/agent-rules.d.ts +5 -0
- package/node_modules/@sumi/plugins-core/dist/agent-rules.js +66 -0
- package/node_modules/@sumi/plugins-core/dist/agent-rules.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.d.ts +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.js +10 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.d.ts +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.js +8 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.d.ts +1 -0
- package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.js +19 -0
- package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.js.map +1 -0
- package/node_modules/@sumi/plugins-core/package.json +2 -2
- package/node_modules/@sumi/plugins-core/sumi-plugins.yaml +20 -0
- package/node_modules/@sumi/plugins-governance/README.md +3 -3
- package/node_modules/@sumi/plugins-governance/dist/checkout.d.ts +2 -0
- package/node_modules/@sumi/plugins-governance/dist/checkout.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js +2 -0
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js +2 -3
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.d.ts +6 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js +11 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js.map +1 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-status.d.ts +1 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js +15 -12
- package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/instructions/push.md +1 -1
- package/node_modules/@sumi/plugins-governance/package.json +2 -2
- package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.d.ts +11 -0
- package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.js +67 -0
- package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.js.map +1 -0
- package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.d.ts +1 -0
- package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.js +63 -0
- package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.js.map +1 -0
- package/node_modules/@sumi/plugins-openspec/package.json +4 -2
- package/node_modules/@sumi/plugins-openspec/sumi-plugins.yaml +6 -0
- package/node_modules/@sumi/plugins-precedent/dist/candidates.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/context.js +6 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/context.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.js +21 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.d.ts +6 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.js +51 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-state.d.ts +14 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-state.js +60 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-state.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact.d.ts +52 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact.js +253 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/index.d.ts +2 -0
- package/node_modules/@sumi/plugins-precedent/dist/index.js +2 -0
- package/node_modules/@sumi/plugins-precedent/dist/index.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js +31 -5
- package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.js +60 -0
- package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/package.json +3 -3
- package/node_modules/@sumi/plugins-precedent/sumi-plugins.yaml +9 -0
- package/node_modules/@sumi/plugins-review/README.md +27 -8
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js +12 -0
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js +56 -0
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js +25 -67
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/model-execution.d.ts +29 -0
- package/node_modules/@sumi/plugins-review/dist/model-execution.js +157 -0
- package/node_modules/@sumi/plugins-review/dist/model-execution.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/model-independence.d.ts +10 -0
- package/node_modules/@sumi/plugins-review/dist/model-independence.js +14 -0
- package/node_modules/@sumi/plugins-review/dist/model-independence.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js +88 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js +44 -7
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/recheck.d.ts +48 -0
- package/node_modules/@sumi/plugins-review/dist/recheck.js +130 -0
- package/node_modules/@sumi/plugins-review/dist/recheck.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/review.d.ts +7 -0
- package/node_modules/@sumi/plugins-review/dist/review.js +33 -4
- package/node_modules/@sumi/plugins-review/dist/review.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/submission.d.ts +11 -0
- package/node_modules/@sumi/plugins-review/dist/submission.js +77 -0
- package/node_modules/@sumi/plugins-review/dist/submission.js.map +1 -0
- package/node_modules/@sumi/plugins-review/package.json +4 -3
- package/node_modules/@sumi/plugins-review/sumi-plugins.yaml +15 -0
- package/package.json +10 -10
- package/node_modules/@sumi/create/dist/bin.d.ts +0 -2
- package/node_modules/@sumi/create/dist/bin.js +0 -52
- package/node_modules/@sumi/create/dist/bin.js.map +0 -1
- package/node_modules/@sumi/plugins-core/dist/tool-batches.d.ts +0 -11
- package/node_modules/@sumi/plugins-core/dist/tool-batches.js +0 -41
- package/node_modules/@sumi/plugins-core/dist/tool-batches.js.map +0 -1
- package/node_modules/@sumi/plugins-governance/dist/hooks.d.ts +0 -2
- package/node_modules/@sumi/plugins-governance/dist/hooks.js +0 -4
- package/node_modules/@sumi/plugins-governance/dist/hooks.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recheck.js","sourceRoot":"","sources":["../src/recheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAwC,MAAM,sBAAsB,CAAC;AA4CxH,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpG,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE5I,6CAA6C;AAC7C,MAAM,UAAU,mBAAmB,CAAC,KAAiE;IACnG,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACrB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;aACjD,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACzG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAuB;IAChD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,qBAAqB,CAAC,OAAuB,EAAE,KAAc;IAC3E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,oBAAoB,CAAC;IACpF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,qBAAqB,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,kBAAkB,CAAC;QACrF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;QACzE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,WAAW,IAAI,CAAC,SAAS,eAAe,CAAC;QAC7G,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,WAAW,IAAI,CAAC,SAAS,OAAO,CAAC;IACtG,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,cAAc,EAAE,EAAE,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAuB,EAAE,MAAqB,EAAE,MAAc,EAAE,MAAqB;IAC9H,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC5H,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC1G,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAAuB;IAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7F,IACE,CAAC,QAAQ,CAAC,KAAK,CAAC;YAChB,KAAK,CAAC,GAAG,KAAK,GAAG;YACjB,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YAC5C,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;YAChC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAEpC,OAAO,IAAI,CAAC;QACd,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IACE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjB,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM;YACzC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK;YACvC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAClC,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;YACrD,MAAM,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC;YAE/E,OAAO,IAAI,CAAC;QACd,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,MAAkC,CAAC;YAAE,OAAO,IAAI,CAAC;QACrH,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAuB,EAAE,MAAM,EAAE,MAAkC,EAAE,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,MAAc,EAAE,YAAoB;IACzF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7G,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,IAAI,IAAkB,CAAC;IACvB,IAAI,OAA8C,CAAC;IACnD,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAiB,CAAC;QAClF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAA0C,CAAC;IACzH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,IACE,IAAI,CAAC,EAAE,KAAK,YAAY;QACxB,IAAI,CAAC,GAAG,KAAK,eAAe;QAC5B,IAAI,CAAC,KAAK,KAAK,MAAM;QACrB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAE5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;IACtH,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpG,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IACpE,IACE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;QACrC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAC7H;QAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACtE,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,GAAG;QACxB,cAAc,EAAE,OAAO,CAAC,YAAY;QACpC,aAAa,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;QAC9C,QAAQ;QACR,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ImpactRecord } from '@sumi/plugins-precedent';
|
|
1
2
|
export interface RubricItem {
|
|
2
3
|
id: string;
|
|
3
4
|
question: string;
|
|
@@ -21,11 +22,14 @@ export interface ReviewRequest {
|
|
|
21
22
|
contentDigest: string;
|
|
22
23
|
repoRoot: string;
|
|
23
24
|
items: RequestItem[];
|
|
25
|
+
impact?: ImpactRecord;
|
|
24
26
|
}
|
|
25
27
|
export interface Verdict {
|
|
26
28
|
item: string;
|
|
27
29
|
verdict: 'pass' | 'fail';
|
|
28
30
|
reason: string;
|
|
31
|
+
evidence?: string;
|
|
32
|
+
uncertain?: boolean;
|
|
29
33
|
file?: string;
|
|
30
34
|
line?: number;
|
|
31
35
|
}
|
|
@@ -66,7 +70,10 @@ export declare function requestKey(parts: {
|
|
|
66
70
|
id: string;
|
|
67
71
|
files: string[];
|
|
68
72
|
}[];
|
|
73
|
+
impact?: ImpactRecord;
|
|
69
74
|
}): string;
|
|
75
|
+
/** 每一条业务影响判断分别评审,避免一条笼统的通过结论掩盖遗漏。 */
|
|
76
|
+
export declare function impactRequestItems(record: ImpactRecord): RequestItem[];
|
|
70
77
|
export declare function reviewsDir(root: string): string;
|
|
71
78
|
/** 已接受结果的形状:verdicts 数组,每项含字符串 item 与 pass/fail。 */
|
|
72
79
|
export declare function isReviewResult(v: unknown): v is ReviewResult;
|
|
@@ -72,6 +72,18 @@ export function requestKey(parts) {
|
|
|
72
72
|
rubricDigest: parts.rubricDigest,
|
|
73
73
|
contentDigest: parts.contentDigest,
|
|
74
74
|
items: parts.items.map((i) => ({ id: i.id, files: i.files })),
|
|
75
|
+
...(parts.impact ? { impact: parts.impact } : {}),
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
/** 每一条业务影响判断分别评审,避免一条笼统的通过结论掩盖遗漏。 */
|
|
79
|
+
export function impactRequestItems(record) {
|
|
80
|
+
return record.items.map((item, index) => ({
|
|
81
|
+
id: `impact-${index + 1}`,
|
|
82
|
+
question: item.kind === 'none'
|
|
83
|
+
? `核对业务差异与既有约束:无变化判断是否成立?理由:${item.reason};已核查:${item.checked.join('、')}`
|
|
84
|
+
: `核对业务差异与既有约束:${item.kind}「${item.statement}」是否准确、完整且没有遗漏或冲突?证据:${item.evidence.map((e) => `${e.file}${e.line ? `:${e.line}` : ''} ${e.explanation}`).join(';')}`,
|
|
85
|
+
pass: '对照业务差异、正式规格与 active 判例核查;理由中列出证据,不确定时标为 fail 且 uncertain=true',
|
|
86
|
+
files: item.kind === 'none' ? record.scope.files.map((file) => file.path) : item.paths,
|
|
75
87
|
}));
|
|
76
88
|
}
|
|
77
89
|
export function reviewsDir(root) {
|
|
@@ -173,19 +185,36 @@ export function ticketsDir(root) {
|
|
|
173
185
|
/** 校验评审结果:覆盖全部适用条目,verdict 合法,fail 条目带文件定位。返回错误列表。 */
|
|
174
186
|
export function validateReviewResult(request, value) {
|
|
175
187
|
const errors = [];
|
|
176
|
-
const verdicts = value
|
|
188
|
+
const verdicts = isRecord(value) ? value.verdicts : undefined;
|
|
177
189
|
if (!Array.isArray(verdicts))
|
|
178
190
|
return ['结果必须包含 verdicts 数组'];
|
|
191
|
+
const expected = new Set(request.items.map((item) => item.id));
|
|
192
|
+
const seen = new Set();
|
|
193
|
+
for (const verdict of verdicts) {
|
|
194
|
+
if (!isRecord(verdict) || typeof verdict.item !== 'string') {
|
|
195
|
+
errors.push('verdict 必须含字符串 item');
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
if (!expected.has(verdict.item))
|
|
199
|
+
errors.push(`多余条目 ${verdict.item}`);
|
|
200
|
+
if (seen.has(verdict.item))
|
|
201
|
+
errors.push(`重复条目 ${verdict.item}`);
|
|
202
|
+
seen.add(verdict.item);
|
|
203
|
+
}
|
|
179
204
|
for (const item of request.items) {
|
|
180
|
-
const v = verdicts.find((x) => x
|
|
205
|
+
const v = verdicts.find((x) => isRecord(x) && x.item === item.id);
|
|
181
206
|
if (!v)
|
|
182
207
|
errors.push(`缺少条目 ${item.id}`);
|
|
183
208
|
else if (v.verdict !== 'pass' && v.verdict !== 'fail')
|
|
184
209
|
errors.push(`条目 ${item.id} 的 verdict 必须为 pass 或 fail`);
|
|
185
|
-
else if (typeof v.reason !== 'string' || !v.reason)
|
|
210
|
+
else if (typeof v.reason !== 'string' || !v.reason.trim())
|
|
186
211
|
errors.push(`条目 ${item.id} 缺少理由`);
|
|
187
|
-
else if (v.verdict === 'fail' && !v.file)
|
|
212
|
+
else if (v.verdict === 'fail' && (typeof v.file !== 'string' || !v.file.trim()))
|
|
188
213
|
errors.push(`条目 ${item.id} 判为 fail 时必须给出文件定位`);
|
|
214
|
+
if (request.impact && item.id.startsWith('impact-') && (typeof v?.evidence !== 'string' || !v.evidence.trim()))
|
|
215
|
+
errors.push(`条目 ${item.id} 缺少独立核查证据`);
|
|
216
|
+
if (v?.uncertain === true && v.verdict !== 'fail')
|
|
217
|
+
errors.push(`条目 ${item.id} 无法判定时必须判为 fail`);
|
|
189
218
|
}
|
|
190
219
|
return errors;
|
|
191
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ReviewRequest, type ReviewResult, type Ticket } from './review.js';
|
|
2
|
+
export interface PreparedSubmission {
|
|
3
|
+
root: string;
|
|
4
|
+
ticketPath: string;
|
|
5
|
+
ticket: Ticket;
|
|
6
|
+
request: ReviewRequest;
|
|
7
|
+
blobs: Map<string, string>;
|
|
8
|
+
}
|
|
9
|
+
/** 两种提交入口共享同一份 ticket、请求和当前内容校验。 */
|
|
10
|
+
export declare function prepareSubmission(root: string, runId: string, stepId: string, ticketId: string, requireResultFile?: boolean): PreparedSubmission;
|
|
11
|
+
export declare function acceptSubmission(prepared: PreparedSubmission, value: unknown): ReviewResult;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { digestOfBlobs, fileBlobs, isReviewResult, loadRubric, requestKey, ticketsDir, validateReviewResult, writeAccepted, writeCoverage, impactRequestItems, } from './review.js';
|
|
4
|
+
import { impactScope } from '@sumi/plugins-precedent';
|
|
5
|
+
import { readImpact } from '@sumi/plugins-precedent';
|
|
6
|
+
function readObject(path, what) {
|
|
7
|
+
let value;
|
|
8
|
+
try {
|
|
9
|
+
value = JSON.parse(readFileSync(path, 'utf8'));
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
throw new Error(`${what}无法读取或不是合法 JSON:${path}`);
|
|
13
|
+
}
|
|
14
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
15
|
+
throw new Error(`${what}格式不合法(应为 JSON 对象):${path}`);
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
/** 两种提交入口共享同一份 ticket、请求和当前内容校验。 */
|
|
19
|
+
export function prepareSubmission(root, runId, stepId, ticketId, requireResultFile = true) {
|
|
20
|
+
if (!/^[a-f0-9]{8}$/.test(ticketId))
|
|
21
|
+
throw new Error('ticket 格式无效');
|
|
22
|
+
const ticketPath = join(ticketsDir(root), `${ticketId}.json`);
|
|
23
|
+
if (!existsSync(ticketPath))
|
|
24
|
+
throw new Error(`ticket ${ticketId} 不存在`);
|
|
25
|
+
const ticket = readObject(ticketPath, 'ticket ');
|
|
26
|
+
if (ticket.runId !== runId || ticket.stepId !== stepId)
|
|
27
|
+
throw new Error('ticket 与运行或步骤不匹配');
|
|
28
|
+
if (ticket.used)
|
|
29
|
+
throw new Error('ticket 已使用');
|
|
30
|
+
if (typeof ticket.requestPath !== 'string' || typeof ticket.resultPath !== 'string')
|
|
31
|
+
throw new Error('ticket 格式不合法');
|
|
32
|
+
if (requireResultFile && !existsSync(ticket.resultPath))
|
|
33
|
+
throw new Error(`结果文件不在指定路径:${ticket.resultPath}`);
|
|
34
|
+
const request = readObject(ticket.requestPath, '评审请求');
|
|
35
|
+
if (!Array.isArray(request.items) || !request.items.every((i) => typeof i?.id === 'string' && Array.isArray(i.files)))
|
|
36
|
+
throw new Error('评审请求格式不合法');
|
|
37
|
+
if (request.key !== ticket.key)
|
|
38
|
+
throw new Error('评审请求的键与 ticket 不一致,请求可能被改写,请重新运行流程');
|
|
39
|
+
if (requestKey(request) !== request.key)
|
|
40
|
+
throw new Error('评审请求键与请求内容不符(条目范围或摘要被改写),请重新运行流程');
|
|
41
|
+
if (request.impact) {
|
|
42
|
+
const currentScope = impactScope(root, request.base, request.impact.scope.files.map((f) => f.path));
|
|
43
|
+
const current = currentScope ? readImpact(root, currentScope) : null;
|
|
44
|
+
if (!current || JSON.stringify(current) !== JSON.stringify(request.impact))
|
|
45
|
+
throw new Error('业务约束影响记录已变化,请重新运行评审');
|
|
46
|
+
const expectedItems = impactRequestItems(current);
|
|
47
|
+
const actualItems = request.items.filter((item) => item.id.startsWith('impact-'));
|
|
48
|
+
if (JSON.stringify(actualItems) !== JSON.stringify(expectedItems))
|
|
49
|
+
throw new Error('业务影响评审条目已变化,请重新运行评审');
|
|
50
|
+
}
|
|
51
|
+
const rubricDigest = loadRubric(request.repoRoot, request.rubric).digest;
|
|
52
|
+
if (rubricDigest !== request.rubricDigest)
|
|
53
|
+
throw new Error('评审准则已变化,请重新运行流程');
|
|
54
|
+
const reviewed = [...new Set(request.items.flatMap((i) => i.files))];
|
|
55
|
+
const blobs = fileBlobs(request.repoRoot, reviewed);
|
|
56
|
+
if (digestOfBlobs(reviewed, blobs) !== request.contentDigest)
|
|
57
|
+
throw new Error('被评审的内容已变化,请重新运行流程');
|
|
58
|
+
return { root, ticketPath, ticket, request, blobs };
|
|
59
|
+
}
|
|
60
|
+
export function acceptSubmission(prepared, value) {
|
|
61
|
+
const { root, ticketPath, ticket, request, blobs } = prepared;
|
|
62
|
+
const errors = validateReviewResult(request, value);
|
|
63
|
+
if (errors.length)
|
|
64
|
+
throw new Error(errors.join(';'));
|
|
65
|
+
if (!isReviewResult(value))
|
|
66
|
+
throw new Error('结果格式不合法:verdicts 每一项都须是含字符串 item、verdict 为 pass 或 fail 的对象');
|
|
67
|
+
writeAccepted(root, request.key, value);
|
|
68
|
+
if (!request.impact)
|
|
69
|
+
writeCoverage(root, request.key, {
|
|
70
|
+
rubricDigest: request.rubricDigest,
|
|
71
|
+
items: request.items.map((i) => ({ id: i.id, files: i.files })),
|
|
72
|
+
blobs: Object.fromEntries(blobs),
|
|
73
|
+
});
|
|
74
|
+
writeFileSync(ticketPath, JSON.stringify({ ...ticket, used: true }, null, 2));
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=submission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumi/plugins-review",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "评审插件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/plugin-sdk": "0.
|
|
16
|
+
"@sumi/plugin-sdk": "0.8.0",
|
|
17
17
|
"yaml": "2.9.1",
|
|
18
18
|
"picomatch": "4.0.7",
|
|
19
|
-
"@sumi/plugins-governance": "0.
|
|
19
|
+
"@sumi/plugins-governance": "0.8.0",
|
|
20
|
+
"@sumi/plugins-precedent": "0.8.0"
|
|
20
21
|
},
|
|
21
22
|
"files": [
|
|
22
23
|
"dist",
|
|
@@ -10,4 +10,19 @@ plugins:
|
|
|
10
10
|
context: context-rubrics
|
|
11
11
|
commands:
|
|
12
12
|
- { name: submit, argv: [node, ./dist/commands/submit.js], description: 提交评审结果 }
|
|
13
|
+
- { name: host-model-hook, argv: [node, ./dist/commands/host-model-hook.js], description: 记录代理宿主报告的模型事件 }
|
|
13
14
|
- { name: context-rubrics, argv: [node, ./dist/commands/context.js], description: 列出给定路径上适用的评审条目 }
|
|
15
|
+
hooks:
|
|
16
|
+
agent:
|
|
17
|
+
beforeTool: { command: host-model-hook, tools: all, failure: open }
|
|
18
|
+
sessionStart: host-model-hook
|
|
19
|
+
modelSwitch: host-model-hook
|
|
20
|
+
- id: review/independent-recheck
|
|
21
|
+
version: 0.1.0
|
|
22
|
+
kind: check
|
|
23
|
+
command: [node, ./dist/plugins/independent-recheck.js]
|
|
24
|
+
timeout: 60
|
|
25
|
+
requires: ['@sumi/plugins-governance']
|
|
26
|
+
description: 用宿主报告的不同模型逐项复核原评审失败 finding
|
|
27
|
+
commands:
|
|
28
|
+
- { name: model-recheck, argv: [node, ./dist/commands/model-recheck.js], description: 提交独立模型复核结果 }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fantasticit/sumi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "sumi 命令行",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/create": "0.
|
|
17
|
-
"@sumi/kernel": "0.
|
|
18
|
-
"@sumi/plugin-sdk": "0.
|
|
19
|
-
"@sumi/plugins-core": "0.
|
|
20
|
-
"@sumi/plugins-governance": "0.
|
|
21
|
-
"@sumi/plugins-openspec": "0.
|
|
22
|
-
"@sumi/plugins-precedent": "0.
|
|
23
|
-
"@sumi/plugins-review": "0.
|
|
16
|
+
"@sumi/create": "0.8.0",
|
|
17
|
+
"@sumi/kernel": "0.8.0",
|
|
18
|
+
"@sumi/plugin-sdk": "0.8.0",
|
|
19
|
+
"@sumi/plugins-core": "0.8.0",
|
|
20
|
+
"@sumi/plugins-governance": "0.8.0",
|
|
21
|
+
"@sumi/plugins-openspec": "0.8.0",
|
|
22
|
+
"@sumi/plugins-precedent": "0.8.0",
|
|
23
|
+
"@sumi/plugins-review": "0.8.0",
|
|
24
24
|
"tar": "7.5.22",
|
|
25
25
|
"yaml": "2.9.1"
|
|
26
26
|
},
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"tar",
|
|
43
43
|
"yaml"
|
|
44
44
|
],
|
|
45
|
-
"sumiBuild": "sha256:
|
|
45
|
+
"sumiBuild": "sha256:577d3cfecb19058348796e3c85a9966f79796fead2344e08b2495af7bcff3cb9"
|
|
46
46
|
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { execFileSync, spawnSync } from 'node:child_process';
|
|
3
|
-
import { existsSync, symlinkSync } from 'node:fs';
|
|
4
|
-
import { join, resolve } from 'node:path';
|
|
5
|
-
import { scaffold } from './scaffold.js';
|
|
6
|
-
/**
|
|
7
|
-
* create-ai-coding <目录> [--agents claude,codex,cursor] [--link <node_modules 路径>] [--no-install]
|
|
8
|
-
* 创建遵循三层结构的新项目:复制模板、初始化 git、安装依赖、生成 AI 工具适配与 git hook。
|
|
9
|
-
*/
|
|
10
|
-
const args = process.argv.slice(2);
|
|
11
|
-
const flag = (name) => {
|
|
12
|
-
const i = args.indexOf(`--${name}`);
|
|
13
|
-
return i >= 0 ? args[i + 1] : undefined;
|
|
14
|
-
};
|
|
15
|
-
const target = args.find((a, i) => !a.startsWith('--') && !['--agents', '--link'].includes(args[i - 1] ?? ''));
|
|
16
|
-
if (!target) {
|
|
17
|
-
process.stderr.write('用法:create-ai-coding <目录> [--agents claude,codex,cursor] [--link <node_modules>] [--no-install]\n');
|
|
18
|
-
process.exit(3);
|
|
19
|
-
}
|
|
20
|
-
const dir = resolve(target);
|
|
21
|
-
try {
|
|
22
|
-
scaffold(dir, {
|
|
23
|
-
agents: flag('agents')
|
|
24
|
-
?.split(',')
|
|
25
|
-
.map((a) => a.trim())
|
|
26
|
-
.filter(Boolean),
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
process.stderr.write(`${error.message}\n`);
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
execFileSync('git', ['init', '-q', '-b', 'main'], { cwd: dir });
|
|
34
|
-
const link = flag('link');
|
|
35
|
-
if (link)
|
|
36
|
-
symlinkSync(resolve(link), join(dir, 'node_modules'));
|
|
37
|
-
else if (!args.includes('--no-install')) {
|
|
38
|
-
const r = spawnSync('pnpm', ['install'], { cwd: dir, stdio: 'inherit' });
|
|
39
|
-
if (r.status !== 0)
|
|
40
|
-
process.stderr.write('依赖安装失败,请稍后在项目中手动运行 pnpm install\n');
|
|
41
|
-
}
|
|
42
|
-
const ctl = join(dir, 'node_modules', '.bin', 'ctl');
|
|
43
|
-
if (existsSync(ctl))
|
|
44
|
-
spawnSync(ctl, ['sync-agents'], { cwd: dir, stdio: 'inherit' });
|
|
45
|
-
process.stdout.write([
|
|
46
|
-
`已创建 ${dir}`,
|
|
47
|
-
'下一步:',
|
|
48
|
-
' npx ctl run check --all # 新项目应直接通过',
|
|
49
|
-
' 首次推送时,门禁会要求确认全部 control 内容:由人在自己的终端运行它给出的 npx ctl approve <请求 id>',
|
|
50
|
-
'',
|
|
51
|
-
].join('\n'));
|
|
52
|
-
//# sourceMappingURL=bin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Windows 的 .cmd shim 会经过命令解释器;给引号、转义和 shim 前缀保留余量。
|
|
3
|
-
* 所有平台共用该预算,使长列表行为可重复测试。
|
|
4
|
-
*/
|
|
5
|
-
export declare const FILE_TOOL_COMMAND_BUDGET = 6000;
|
|
6
|
-
export declare function estimateCommandSize(command: string, args: string[]): number;
|
|
7
|
-
/**
|
|
8
|
-
* 保持原顺序把文件参数拆成可安全启动的批次。
|
|
9
|
-
* 固定参数或单个文件无法放入空批时直接拒绝,避免工具收到截断列表。
|
|
10
|
-
*/
|
|
11
|
-
export declare function splitFileArguments(command: string, fixedArgs: string[], files: string[], budget?: number): string[][];
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Windows 的 .cmd shim 会经过命令解释器;给引号、转义和 shim 前缀保留余量。
|
|
3
|
-
* 所有平台共用该预算,使长列表行为可重复测试。
|
|
4
|
-
*/
|
|
5
|
-
export const FILE_TOOL_COMMAND_BUDGET = 6_000;
|
|
6
|
-
const SHELL_OVERHEAD = 128;
|
|
7
|
-
/** 按 UTF-8 字节数的两倍保守估算参数经 shell 引号与转义后的占用。 */
|
|
8
|
-
function estimateArgumentSize(value) {
|
|
9
|
-
return Buffer.byteLength(value, 'utf8') * 2 + 8;
|
|
10
|
-
}
|
|
11
|
-
export function estimateCommandSize(command, args) {
|
|
12
|
-
return [command, ...args].reduce((size, value) => size + estimateArgumentSize(value), SHELL_OVERHEAD);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* 保持原顺序把文件参数拆成可安全启动的批次。
|
|
16
|
-
* 固定参数或单个文件无法放入空批时直接拒绝,避免工具收到截断列表。
|
|
17
|
-
*/
|
|
18
|
-
export function splitFileArguments(command, fixedArgs, files, budget = FILE_TOOL_COMMAND_BUDGET) {
|
|
19
|
-
if (!Number.isSafeInteger(budget) || budget <= 0)
|
|
20
|
-
throw new Error(`无效的命令参数安全预算:${budget}`);
|
|
21
|
-
const fixedSize = estimateCommandSize(command, fixedArgs);
|
|
22
|
-
if (fixedSize > budget)
|
|
23
|
-
throw new Error(`工具固定参数超过安全预算:${command}`);
|
|
24
|
-
if (files.length === 0)
|
|
25
|
-
return [[]];
|
|
26
|
-
const batches = [];
|
|
27
|
-
let batch = [];
|
|
28
|
-
for (const file of files) {
|
|
29
|
-
if (estimateCommandSize(command, [...fixedArgs, file]) > budget) {
|
|
30
|
-
throw new Error(`单个文件参数超过安全预算:${file}`);
|
|
31
|
-
}
|
|
32
|
-
if (batch.length > 0 && estimateCommandSize(command, [...fixedArgs, ...batch, file]) > budget) {
|
|
33
|
-
batches.push(batch);
|
|
34
|
-
batch = [];
|
|
35
|
-
}
|
|
36
|
-
batch.push(file);
|
|
37
|
-
}
|
|
38
|
-
batches.push(batch);
|
|
39
|
-
return batches;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=tool-batches.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-batches.js","sourceRoot":"","sources":["../src/tool-batches.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAE9C,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,6CAA6C;AAC7C,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,IAAc;IACjE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;AACxG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAAmB,EAAE,KAAe,EAAE,MAAM,GAAG,wBAAwB;IACzH,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,SAAS,GAAG,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;YAC9F,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC"}
|