autoremediator 0.21.2 → 0.22.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/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/a2a/agent-card.d.ts +89 -0
- package/dist/a2a/agent-card.d.ts.map +1 -0
- package/dist/a2a/agent-card.js +127 -0
- package/dist/a2a/agent-card.js.map +1 -0
- package/dist/a2a/index.d.ts +7 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +4 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/a2a/server.d.ts +46 -0
- package/dist/a2a/server.d.ts.map +1 -0
- package/dist/a2a/server.js +312 -0
- package/dist/a2a/server.js.map +1 -0
- package/dist/a2a/sign.d.ts +28 -0
- package/dist/a2a/sign.d.ts.map +1 -0
- package/dist/a2a/sign.js +123 -0
- package/dist/a2a/sign.js.map +1 -0
- package/dist/a2a/task-store.d.ts +55 -0
- package/dist/a2a/task-store.d.ts.map +1 -0
- package/dist/a2a/task-store.js +90 -0
- package/dist/a2a/task-store.js.map +1 -0
- package/dist/api/assess/index.d.ts +45 -0
- package/dist/api/assess/index.d.ts.map +1 -0
- package/dist/api/assess/index.js +21 -0
- package/dist/api/assess/index.js.map +1 -0
- package/dist/api/autonomy/index.d.ts +65 -0
- package/dist/api/autonomy/index.d.ts.map +1 -0
- package/dist/api/autonomy/index.js +166 -0
- package/dist/api/autonomy/index.js.map +1 -0
- package/dist/api/bisect/changes.d.ts +20 -0
- package/dist/api/bisect/changes.d.ts.map +1 -0
- package/dist/api/bisect/changes.js +47 -0
- package/dist/api/bisect/changes.js.map +1 -0
- package/dist/api/bisect/ddmin.d.ts +33 -0
- package/dist/api/bisect/ddmin.d.ts.map +1 -0
- package/dist/api/bisect/ddmin.js +91 -0
- package/dist/api/bisect/ddmin.js.map +1 -0
- package/dist/api/bisect/index.d.ts +20 -0
- package/dist/api/bisect/index.d.ts.map +1 -0
- package/dist/api/bisect/index.js +463 -0
- package/dist/api/bisect/index.js.map +1 -0
- package/dist/api/bisect/pins.d.ts +40 -0
- package/dist/api/bisect/pins.d.ts.map +1 -0
- package/dist/api/bisect/pins.js +83 -0
- package/dist/api/bisect/pins.js.map +1 -0
- package/dist/api/bisect/remedy.d.ts +25 -0
- package/dist/api/bisect/remedy.d.ts.map +1 -0
- package/dist/api/bisect/remedy.js +116 -0
- package/dist/api/bisect/remedy.js.map +1 -0
- package/dist/api/bisect/shell.d.ts +41 -0
- package/dist/api/bisect/shell.d.ts.map +1 -0
- package/dist/api/bisect/shell.js +155 -0
- package/dist/api/bisect/shell.js.map +1 -0
- package/dist/api/bisect/types.d.ts +130 -0
- package/dist/api/bisect/types.d.ts.map +1 -0
- package/dist/api/bisect/types.js +2 -0
- package/dist/api/bisect/types.js.map +1 -0
- package/dist/api/change-request/branch.d.ts +13 -0
- package/dist/api/change-request/branch.d.ts.map +1 -0
- package/dist/api/change-request/branch.js +78 -0
- package/dist/api/change-request/branch.js.map +1 -0
- package/dist/api/change-request/hosts.d.ts +83 -0
- package/dist/api/change-request/hosts.d.ts.map +1 -0
- package/dist/api/change-request/hosts.js +292 -0
- package/dist/api/change-request/hosts.js.map +1 -0
- package/dist/api/change-request/index.d.ts +3 -1
- package/dist/api/change-request/index.d.ts.map +1 -1
- package/dist/api/change-request/index.js +302 -56
- package/dist/api/change-request/index.js.map +1 -1
- package/dist/api/diet/analyze.d.ts +8 -0
- package/dist/api/diet/analyze.d.ts.map +1 -0
- package/dist/api/diet/analyze.js +214 -0
- package/dist/api/diet/analyze.js.map +1 -0
- package/dist/api/diet/apply.d.ts +31 -0
- package/dist/api/diet/apply.d.ts.map +1 -0
- package/dist/api/diet/apply.js +175 -0
- package/dist/api/diet/apply.js.map +1 -0
- package/dist/api/diet/duplicates.d.ts +9 -0
- package/dist/api/diet/duplicates.d.ts.map +1 -0
- package/dist/api/diet/duplicates.js +125 -0
- package/dist/api/diet/duplicates.js.map +1 -0
- package/dist/api/diet/files.d.ts +30 -0
- package/dist/api/diet/files.d.ts.map +1 -0
- package/dist/api/diet/files.js +182 -0
- package/dist/api/diet/files.js.map +1 -0
- package/dist/api/diet/index.d.ts +4 -0
- package/dist/api/diet/index.d.ts.map +1 -0
- package/dist/api/diet/index.js +3 -0
- package/dist/api/diet/index.js.map +1 -0
- package/dist/api/diet/lockfile.d.ts +65 -0
- package/dist/api/diet/lockfile.d.ts.map +1 -0
- package/dist/api/diet/lockfile.js +329 -0
- package/dist/api/diet/lockfile.js.map +1 -0
- package/dist/api/diet/replaceable.d.ts +46 -0
- package/dist/api/diet/replaceable.d.ts.map +1 -0
- package/dist/api/diet/replaceable.js +115 -0
- package/dist/api/diet/replaceable.js.map +1 -0
- package/dist/api/diet/replaceable.json +168 -0
- package/dist/api/diet/scan.d.ts +43 -0
- package/dist/api/diet/scan.d.ts.map +1 -0
- package/dist/api/diet/scan.js +357 -0
- package/dist/api/diet/scan.js.map +1 -0
- package/dist/api/diet/surface.d.ts +32 -0
- package/dist/api/diet/surface.d.ts.map +1 -0
- package/dist/api/diet/surface.js +130 -0
- package/dist/api/diet/surface.js.map +1 -0
- package/dist/api/diet/types.d.ts +205 -0
- package/dist/api/diet/types.d.ts.map +1 -0
- package/dist/api/diet/types.js +2 -0
- package/dist/api/diet/types.js.map +1 -0
- package/dist/api/diet/unused.d.ts +73 -0
- package/dist/api/diet/unused.d.ts.map +1 -0
- package/dist/api/diet/unused.js +342 -0
- package/dist/api/diet/unused.js.map +1 -0
- package/dist/api/evidence-pack/attest.d.ts +43 -0
- package/dist/api/evidence-pack/attest.d.ts.map +1 -0
- package/dist/api/evidence-pack/attest.js +140 -0
- package/dist/api/evidence-pack/attest.js.map +1 -0
- package/dist/api/evidence-pack/components.d.ts +49 -0
- package/dist/api/evidence-pack/components.d.ts.map +1 -0
- package/dist/api/evidence-pack/components.js +278 -0
- package/dist/api/evidence-pack/components.js.map +1 -0
- package/dist/api/evidence-pack/cra.d.ts +54 -0
- package/dist/api/evidence-pack/cra.d.ts.map +1 -0
- package/dist/api/evidence-pack/cra.js +234 -0
- package/dist/api/evidence-pack/cra.js.map +1 -0
- package/dist/api/evidence-pack/dsse.d.ts +53 -0
- package/dist/api/evidence-pack/dsse.d.ts.map +1 -0
- package/dist/api/evidence-pack/dsse.js +132 -0
- package/dist/api/evidence-pack/dsse.js.map +1 -0
- package/dist/api/evidence-pack/findings.d.ts +57 -0
- package/dist/api/evidence-pack/findings.d.ts.map +1 -0
- package/dist/api/evidence-pack/findings.js +232 -0
- package/dist/api/evidence-pack/findings.js.map +1 -0
- package/dist/api/evidence-pack/index.d.ts +70 -0
- package/dist/api/evidence-pack/index.d.ts.map +1 -0
- package/dist/api/evidence-pack/index.js +482 -0
- package/dist/api/evidence-pack/index.js.map +1 -0
- package/dist/api/evidence-pack/readme.d.ts +5 -0
- package/dist/api/evidence-pack/readme.d.ts.map +1 -0
- package/dist/api/evidence-pack/readme.js +55 -0
- package/dist/api/evidence-pack/readme.js.map +1 -0
- package/dist/api/evidence-pack/sbom.d.ts +87 -0
- package/dist/api/evidence-pack/sbom.d.ts.map +1 -0
- package/dist/api/evidence-pack/sbom.js +221 -0
- package/dist/api/evidence-pack/sbom.js.map +1 -0
- package/dist/api/evidence-pack/types.d.ts +62 -0
- package/dist/api/evidence-pack/types.d.ts.map +1 -0
- package/dist/api/evidence-pack/types.js +2 -0
- package/dist/api/evidence-pack/types.js.map +1 -0
- package/dist/api/evidence-pack/vex.d.ts +114 -0
- package/dist/api/evidence-pack/vex.d.ts.map +1 -0
- package/dist/api/evidence-pack/vex.js +197 -0
- package/dist/api/evidence-pack/vex.js.map +1 -0
- package/dist/api/freshness/deps.d.ts +27 -0
- package/dist/api/freshness/deps.d.ts.map +1 -0
- package/dist/api/freshness/deps.js +60 -0
- package/dist/api/freshness/deps.js.map +1 -0
- package/dist/api/freshness/distance.d.ts +42 -0
- package/dist/api/freshness/distance.d.ts.map +1 -0
- package/dist/api/freshness/distance.js +86 -0
- package/dist/api/freshness/distance.js.map +1 -0
- package/dist/api/freshness/index.d.ts +12 -0
- package/dist/api/freshness/index.d.ts.map +1 -0
- package/dist/api/freshness/index.js +11 -0
- package/dist/api/freshness/index.js.map +1 -0
- package/dist/api/freshness/path.d.ts +29 -0
- package/dist/api/freshness/path.d.ts.map +1 -0
- package/dist/api/freshness/path.js +103 -0
- package/dist/api/freshness/path.js.map +1 -0
- package/dist/api/freshness/report.d.ts +55 -0
- package/dist/api/freshness/report.d.ts.map +1 -0
- package/dist/api/freshness/report.js +334 -0
- package/dist/api/freshness/report.js.map +1 -0
- package/dist/api/freshness/step.d.ts +47 -0
- package/dist/api/freshness/step.d.ts.map +1 -0
- package/dist/api/freshness/step.js +286 -0
- package/dist/api/freshness/step.js.map +1 -0
- package/dist/api/freshness/types.d.ts +192 -0
- package/dist/api/freshness/types.d.ts.map +1 -0
- package/dist/api/freshness/types.js +2 -0
- package/dist/api/freshness/types.js.map +1 -0
- package/dist/api/guard/checks.d.ts +31 -0
- package/dist/api/guard/checks.d.ts.map +1 -0
- package/dist/api/guard/checks.js +101 -0
- package/dist/api/guard/checks.js.map +1 -0
- package/dist/api/guard/diff.d.ts +46 -0
- package/dist/api/guard/diff.d.ts.map +1 -0
- package/dist/api/guard/diff.js +89 -0
- package/dist/api/guard/diff.js.map +1 -0
- package/dist/api/guard/hook.d.ts +59 -0
- package/dist/api/guard/hook.d.ts.map +1 -0
- package/dist/api/guard/hook.js +179 -0
- package/dist/api/guard/hook.js.map +1 -0
- package/dist/api/guard/index.d.ts +32 -0
- package/dist/api/guard/index.d.ts.map +1 -0
- package/dist/api/guard/index.js +199 -0
- package/dist/api/guard/index.js.map +1 -0
- package/dist/api/guard/popular.d.ts +7 -0
- package/dist/api/guard/popular.d.ts.map +1 -0
- package/dist/api/guard/popular.js +206 -0
- package/dist/api/guard/popular.js.map +1 -0
- package/dist/api/guard/spec.d.ts +22 -0
- package/dist/api/guard/spec.d.ts.map +1 -0
- package/dist/api/guard/spec.js +124 -0
- package/dist/api/guard/spec.js.map +1 -0
- package/dist/api/guard/types.d.ts +34 -0
- package/dist/api/guard/types.d.ts.map +1 -0
- package/dist/api/guard/types.js +2 -0
- package/dist/api/guard/types.js.map +1 -0
- package/dist/api/hooks/detect.d.ts +28 -0
- package/dist/api/hooks/detect.d.ts.map +1 -0
- package/dist/api/hooks/detect.js +112 -0
- package/dist/api/hooks/detect.js.map +1 -0
- package/dist/api/hooks/index.d.ts +14 -0
- package/dist/api/hooks/index.d.ts.map +1 -0
- package/dist/api/hooks/index.js +77 -0
- package/dist/api/hooks/index.js.map +1 -0
- package/dist/api/hooks/merge.d.ts +35 -0
- package/dist/api/hooks/merge.d.ts.map +1 -0
- package/dist/api/hooks/merge.js +345 -0
- package/dist/api/hooks/merge.js.map +1 -0
- package/dist/api/hooks/plan.d.ts +18 -0
- package/dist/api/hooks/plan.d.ts.map +1 -0
- package/dist/api/hooks/plan.js +270 -0
- package/dist/api/hooks/plan.js.map +1 -0
- package/dist/api/hooks/scripts.d.ts +18 -0
- package/dist/api/hooks/scripts.d.ts.map +1 -0
- package/dist/api/hooks/scripts.js +193 -0
- package/dist/api/hooks/scripts.js.map +1 -0
- package/dist/api/hooks/types.d.ts +85 -0
- package/dist/api/hooks/types.d.ts.map +1 -0
- package/dist/api/hooks/types.js +5 -0
- package/dist/api/hooks/types.js.map +1 -0
- package/dist/api/incident/ci-secrets.d.ts +76 -0
- package/dist/api/incident/ci-secrets.d.ts.map +1 -0
- package/dist/api/incident/ci-secrets.js +420 -0
- package/dist/api/incident/ci-secrets.js.map +1 -0
- package/dist/api/incident/history.d.ts +81 -0
- package/dist/api/incident/history.d.ts.map +1 -0
- package/dist/api/incident/history.js +379 -0
- package/dist/api/incident/history.js.map +1 -0
- package/dist/api/incident/index.d.ts +36 -0
- package/dist/api/incident/index.d.ts.map +1 -0
- package/dist/api/incident/index.js +165 -0
- package/dist/api/incident/index.js.map +1 -0
- package/dist/api/incident/markdown.d.ts +8 -0
- package/dist/api/incident/markdown.d.ts.map +1 -0
- package/dist/api/incident/markdown.js +208 -0
- package/dist/api/incident/markdown.js.map +1 -0
- package/dist/api/incident/project.d.ts +28 -0
- package/dist/api/incident/project.d.ts.map +1 -0
- package/dist/api/incident/project.js +111 -0
- package/dist/api/incident/project.js.map +1 -0
- package/dist/api/incident/rollback.d.ts +50 -0
- package/dist/api/incident/rollback.d.ts.map +1 -0
- package/dist/api/incident/rollback.js +132 -0
- package/dist/api/incident/rollback.js.map +1 -0
- package/dist/api/incident/target.d.ts +18 -0
- package/dist/api/incident/target.d.ts.map +1 -0
- package/dist/api/incident/target.js +110 -0
- package/dist/api/incident/target.js.map +1 -0
- package/dist/api/incident/text.d.ts +3 -0
- package/dist/api/incident/text.d.ts.map +1 -0
- package/dist/api/incident/text.js +13 -0
- package/dist/api/incident/text.js.map +1 -0
- package/dist/api/incident/types.d.ts +118 -0
- package/dist/api/incident/types.d.ts.map +1 -0
- package/dist/api/incident/types.js +2 -0
- package/dist/api/incident/types.js.map +1 -0
- package/dist/api/index.d.ts +30 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +24 -1
- package/dist/api/index.js.map +1 -1
- package/dist/api/init/assets.d.ts +47 -0
- package/dist/api/init/assets.d.ts.map +1 -0
- package/dist/api/init/assets.js +195 -0
- package/dist/api/init/assets.js.map +1 -0
- package/dist/api/init/detect.d.ts +8 -0
- package/dist/api/init/detect.d.ts.map +1 -0
- package/dist/api/init/detect.js +136 -0
- package/dist/api/init/detect.js.map +1 -0
- package/dist/api/init/diff.d.ts +3 -0
- package/dist/api/init/diff.d.ts.map +1 -0
- package/dist/api/init/diff.js +40 -0
- package/dist/api/init/diff.js.map +1 -0
- package/dist/api/init/guard-assets.d.ts +37 -0
- package/dist/api/init/guard-assets.d.ts.map +1 -0
- package/dist/api/init/guard-assets.js +173 -0
- package/dist/api/init/guard-assets.js.map +1 -0
- package/dist/api/init/index.d.ts +13 -0
- package/dist/api/init/index.d.ts.map +1 -0
- package/dist/api/init/index.js +50 -0
- package/dist/api/init/index.js.map +1 -0
- package/dist/api/init/merge.d.ts +43 -0
- package/dist/api/init/merge.d.ts.map +1 -0
- package/dist/api/init/merge.js +303 -0
- package/dist/api/init/merge.js.map +1 -0
- package/dist/api/init/plan.d.ts +4 -0
- package/dist/api/init/plan.d.ts.map +1 -0
- package/dist/api/init/plan.js +168 -0
- package/dist/api/init/plan.js.map +1 -0
- package/dist/api/init/plugin-files.d.ts +3 -0
- package/dist/api/init/plugin-files.d.ts.map +1 -0
- package/dist/api/init/plugin-files.js +80 -0
- package/dist/api/init/plugin-files.js.map +1 -0
- package/dist/api/init/types.d.ts +72 -0
- package/dist/api/init/types.d.ts.map +1 -0
- package/dist/api/init/types.js +10 -0
- package/dist/api/init/types.js.map +1 -0
- package/dist/api/maintain/index.d.ts +21 -0
- package/dist/api/maintain/index.d.ts.map +1 -0
- package/dist/api/maintain/index.js +367 -0
- package/dist/api/maintain/index.js.map +1 -0
- package/dist/api/maintain/package-files.d.ts +37 -0
- package/dist/api/maintain/package-files.d.ts.map +1 -0
- package/dist/api/maintain/package-files.js +156 -0
- package/dist/api/maintain/package-files.js.map +1 -0
- package/dist/api/maintain/types.d.ts +87 -0
- package/dist/api/maintain/types.d.ts.map +1 -0
- package/dist/api/maintain/types.js +2 -0
- package/dist/api/maintain/types.js.map +1 -0
- package/dist/api/maintain/vex-file.d.ts +33 -0
- package/dist/api/maintain/vex-file.d.ts.map +1 -0
- package/dist/api/maintain/vex-file.js +95 -0
- package/dist/api/maintain/vex-file.js.map +1 -0
- package/dist/api/maintainer-vex/index.d.ts +57 -0
- package/dist/api/maintainer-vex/index.d.ts.map +1 -0
- package/dist/api/maintainer-vex/index.js +107 -0
- package/dist/api/maintainer-vex/index.js.map +1 -0
- package/dist/api/memory/index.d.ts +88 -0
- package/dist/api/memory/index.d.ts.map +1 -0
- package/dist/api/memory/index.js +89 -0
- package/dist/api/memory/index.js.map +1 -0
- package/dist/api/options-schema.d.ts +9 -61
- package/dist/api/options-schema.d.ts.map +1 -1
- package/dist/api/options-schema.js +21 -315
- package/dist/api/options-schema.js.map +1 -1
- package/dist/api/patches/reconcile.d.ts.map +1 -1
- package/dist/api/patches/reconcile.js +4 -1
- package/dist/api/patches/reconcile.js.map +1 -1
- package/dist/api/policy-nl/apply-patch.d.ts +23 -0
- package/dist/api/policy-nl/apply-patch.d.ts.map +1 -0
- package/dist/api/policy-nl/apply-patch.js +153 -0
- package/dist/api/policy-nl/apply-patch.js.map +1 -0
- package/dist/api/policy-nl/compile.d.ts +98 -0
- package/dist/api/policy-nl/compile.d.ts.map +1 -0
- package/dist/api/policy-nl/compile.js +308 -0
- package/dist/api/policy-nl/compile.js.map +1 -0
- package/dist/api/policy-nl/explain.d.ts +33 -0
- package/dist/api/policy-nl/explain.d.ts.map +1 -0
- package/dist/api/policy-nl/explain.js +137 -0
- package/dist/api/policy-nl/explain.js.map +1 -0
- package/dist/api/policy-nl/index.d.ts +6 -0
- package/dist/api/policy-nl/index.d.ts.map +1 -0
- package/dist/api/policy-nl/index.js +6 -0
- package/dist/api/policy-nl/index.js.map +1 -0
- package/dist/api/policy-nl/prompt.d.ts +16 -0
- package/dist/api/policy-nl/prompt.d.ts.map +1 -0
- package/dist/api/policy-nl/prompt.js +45 -0
- package/dist/api/policy-nl/prompt.js.map +1 -0
- package/dist/api/policy-nl/proposal.d.ts +438 -0
- package/dist/api/policy-nl/proposal.d.ts.map +1 -0
- package/dist/api/policy-nl/proposal.js +105 -0
- package/dist/api/policy-nl/proposal.js.map +1 -0
- package/dist/api/policy-nl/request-match.d.ts +20 -0
- package/dist/api/policy-nl/request-match.d.ts.map +1 -0
- package/dist/api/policy-nl/request-match.js +94 -0
- package/dist/api/policy-nl/request-match.js.map +1 -0
- package/dist/api/policy-nl/sanitize.d.ts +21 -0
- package/dist/api/policy-nl/sanitize.d.ts.map +1 -0
- package/dist/api/policy-nl/sanitize.js +65 -0
- package/dist/api/policy-nl/sanitize.js.map +1 -0
- package/dist/api/policy-nl/vocabulary.d.ts +9 -0
- package/dist/api/policy-nl/vocabulary.d.ts.map +1 -0
- package/dist/api/policy-nl/vocabulary.js +118 -0
- package/dist/api/policy-nl/vocabulary.js.map +1 -0
- package/dist/api/premortem/index.d.ts +16 -0
- package/dist/api/premortem/index.d.ts.map +1 -0
- package/dist/api/premortem/index.js +274 -0
- package/dist/api/premortem/index.js.map +1 -0
- package/dist/api/premortem/playbook.d.ts +8 -0
- package/dist/api/premortem/playbook.d.ts.map +1 -0
- package/dist/api/premortem/playbook.js +131 -0
- package/dist/api/premortem/playbook.js.map +1 -0
- package/dist/api/premortem/types.d.ts +75 -0
- package/dist/api/premortem/types.d.ts.map +1 -0
- package/dist/api/premortem/types.js +2 -0
- package/dist/api/premortem/types.js.map +1 -0
- package/dist/api/prove/advisory.d.ts +26 -0
- package/dist/api/prove/advisory.d.ts.map +1 -0
- package/dist/api/prove/advisory.js +81 -0
- package/dist/api/prove/advisory.js.map +1 -0
- package/dist/api/prove/agent.d.ts +9 -0
- package/dist/api/prove/agent.d.ts.map +1 -0
- package/dist/api/prove/agent.js +203 -0
- package/dist/api/prove/agent.js.map +1 -0
- package/dist/api/prove/evidence.d.ts +108 -0
- package/dist/api/prove/evidence.d.ts.map +1 -0
- package/dist/api/prove/evidence.js +176 -0
- package/dist/api/prove/evidence.js.map +1 -0
- package/dist/api/prove/harness.d.ts +27 -0
- package/dist/api/prove/harness.d.ts.map +1 -0
- package/dist/api/prove/harness.js +148 -0
- package/dist/api/prove/harness.js.map +1 -0
- package/dist/api/prove/index.d.ts +84 -0
- package/dist/api/prove/index.d.ts.map +1 -0
- package/dist/api/prove/index.js +289 -0
- package/dist/api/prove/index.js.map +1 -0
- package/dist/api/prove/install.d.ts +24 -0
- package/dist/api/prove/install.d.ts.map +1 -0
- package/dist/api/prove/install.js +150 -0
- package/dist/api/prove/install.js.map +1 -0
- package/dist/api/prove/sandbox.d.ts +48 -0
- package/dist/api/prove/sandbox.d.ts.map +1 -0
- package/dist/api/prove/sandbox.js +269 -0
- package/dist/api/prove/sandbox.js.map +1 -0
- package/dist/api/prove/screen.d.ts +17 -0
- package/dist/api/prove/screen.d.ts.map +1 -0
- package/dist/api/prove/screen.js +256 -0
- package/dist/api/prove/screen.js.map +1 -0
- package/dist/api/prove/types.d.ts +105 -0
- package/dist/api/prove/types.d.ts.map +1 -0
- package/dist/api/prove/types.js +2 -0
- package/dist/api/prove/types.js.map +1 -0
- package/dist/api/radar/deps.d.ts +7 -0
- package/dist/api/radar/deps.d.ts.map +1 -0
- package/dist/api/radar/deps.js +263 -0
- package/dist/api/radar/deps.js.map +1 -0
- package/dist/api/radar/index.d.ts +16 -0
- package/dist/api/radar/index.d.ts.map +1 -0
- package/dist/api/radar/index.js +429 -0
- package/dist/api/radar/index.js.map +1 -0
- package/dist/api/radar/render.d.ts +6 -0
- package/dist/api/radar/render.d.ts.map +1 -0
- package/dist/api/radar/render.js +51 -0
- package/dist/api/radar/render.js.map +1 -0
- package/dist/api/radar/types.d.ts +162 -0
- package/dist/api/radar/types.d.ts.map +1 -0
- package/dist/api/radar/types.js +2 -0
- package/dist/api/radar/types.js.map +1 -0
- package/dist/api/reachability/index.d.ts.map +1 -1
- package/dist/api/reachability/index.js +35 -1
- package/dist/api/reachability/index.js.map +1 -1
- package/dist/api/recipes/index.d.ts +93 -0
- package/dist/api/recipes/index.d.ts.map +1 -0
- package/dist/api/recipes/index.js +159 -0
- package/dist/api/recipes/index.js.map +1 -0
- package/dist/api/remediate/index.d.ts.map +1 -1
- package/dist/api/remediate/index.js +25 -1
- package/dist/api/remediate/index.js.map +1 -1
- package/dist/api/remediate.evidence.d.ts.map +1 -1
- package/dist/api/remediate.evidence.js +1 -0
- package/dist/api/remediate.evidence.js.map +1 -1
- package/dist/api/reporting.d.ts +21 -0
- package/dist/api/reporting.d.ts.map +1 -1
- package/dist/api/reporting.js +39 -1
- package/dist/api/reporting.js.map +1 -1
- package/dist/api/runs/attempts.d.ts +86 -0
- package/dist/api/runs/attempts.d.ts.map +1 -0
- package/dist/api/runs/attempts.js +378 -0
- package/dist/api/runs/attempts.js.map +1 -0
- package/dist/api/runs/autonomy-events.d.ts +41 -0
- package/dist/api/runs/autonomy-events.d.ts.map +1 -0
- package/dist/api/runs/autonomy-events.js +130 -0
- package/dist/api/runs/autonomy-events.js.map +1 -0
- package/dist/api/runs/deps.d.ts +23 -0
- package/dist/api/runs/deps.d.ts.map +1 -0
- package/dist/api/runs/deps.js +51 -0
- package/dist/api/runs/deps.js.map +1 -0
- package/dist/api/runs/index.d.ts +167 -0
- package/dist/api/runs/index.d.ts.map +1 -0
- package/dist/api/runs/index.js +601 -0
- package/dist/api/runs/index.js.map +1 -0
- package/dist/api/runs/memory-events.d.ts +19 -0
- package/dist/api/runs/memory-events.d.ts.map +1 -0
- package/dist/api/runs/memory-events.js +78 -0
- package/dist/api/runs/memory-events.js.map +1 -0
- package/dist/api/runs/recipes.d.ts +40 -0
- package/dist/api/runs/recipes.d.ts.map +1 -0
- package/dist/api/runs/recipes.js +110 -0
- package/dist/api/runs/recipes.js.map +1 -0
- package/dist/api/runs/repair.d.ts +73 -0
- package/dist/api/runs/repair.d.ts.map +1 -0
- package/dist/api/runs/repair.js +226 -0
- package/dist/api/runs/repair.js.map +1 -0
- package/dist/api/trace/index.d.ts +6 -0
- package/dist/api/trace/index.d.ts.map +1 -0
- package/dist/api/trace/index.js +5 -0
- package/dist/api/trace/index.js.map +1 -0
- package/dist/api/update-outdated/index.d.ts.map +1 -1
- package/dist/api/update-outdated/index.js +13 -1
- package/dist/api/update-outdated/index.js.map +1 -1
- package/dist/api/vex/index.d.ts +44 -1
- package/dist/api/vex/index.d.ts.map +1 -1
- package/dist/api/vex/index.js +131 -3
- package/dist/api/vex/index.js.map +1 -1
- package/dist/autonomy/compute.d.ts +117 -0
- package/dist/autonomy/compute.d.ts.map +1 -0
- package/dist/autonomy/compute.js +346 -0
- package/dist/autonomy/compute.js.map +1 -0
- package/dist/autonomy/record.d.ts +21 -0
- package/dist/autonomy/record.d.ts.map +1 -0
- package/dist/autonomy/record.js +228 -0
- package/dist/autonomy/record.js.map +1 -0
- package/dist/autonomy/types.d.ts +78 -0
- package/dist/autonomy/types.d.ts.map +1 -0
- package/dist/autonomy/types.js +59 -0
- package/dist/autonomy/types.js.map +1 -0
- package/dist/catalog/adapters/http.d.ts +27 -0
- package/dist/catalog/adapters/http.d.ts.map +1 -0
- package/dist/catalog/adapters/http.js +190 -0
- package/dist/catalog/adapters/http.js.map +1 -0
- package/dist/catalog/adapters/mcp.d.ts +53 -0
- package/dist/catalog/adapters/mcp.d.ts.map +1 -0
- package/dist/catalog/adapters/mcp.js +105 -0
- package/dist/catalog/adapters/mcp.js.map +1 -0
- package/dist/catalog/api-deps.d.ts +64 -0
- package/dist/catalog/api-deps.d.ts.map +1 -0
- package/dist/catalog/api-deps.js +60 -0
- package/dist/catalog/api-deps.js.map +1 -0
- package/dist/catalog/define-operation.d.ts +59 -0
- package/dist/catalog/define-operation.d.ts.map +1 -0
- package/dist/catalog/define-operation.js +9 -0
- package/dist/catalog/define-operation.js.map +1 -0
- package/dist/catalog/evidence-pack-operations.d.ts +3 -0
- package/dist/catalog/evidence-pack-operations.d.ts.map +1 -0
- package/dist/catalog/evidence-pack-operations.js +93 -0
- package/dist/catalog/evidence-pack-operations.js.map +1 -0
- package/dist/catalog/freshness-operations.d.ts +3 -0
- package/dist/catalog/freshness-operations.d.ts.map +1 -0
- package/dist/catalog/freshness-operations.js +91 -0
- package/dist/catalog/freshness-operations.js.map +1 -0
- package/dist/catalog/incident-operations.d.ts +3 -0
- package/dist/catalog/incident-operations.d.ts.map +1 -0
- package/dist/catalog/incident-operations.js +125 -0
- package/dist/catalog/incident-operations.js.map +1 -0
- package/dist/catalog/index.d.ts +12 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +7 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/maintainer-vex-operations.d.ts +3 -0
- package/dist/catalog/maintainer-vex-operations.d.ts.map +1 -0
- package/dist/catalog/maintainer-vex-operations.js +107 -0
- package/dist/catalog/maintainer-vex-operations.js.map +1 -0
- package/dist/catalog/memory-operations.d.ts +3 -0
- package/dist/catalog/memory-operations.d.ts.map +1 -0
- package/dist/catalog/memory-operations.js +128 -0
- package/dist/catalog/memory-operations.js.map +1 -0
- package/dist/catalog/operations.d.ts +4 -0
- package/dist/catalog/operations.d.ts.map +1 -0
- package/dist/catalog/operations.js +797 -0
- package/dist/catalog/operations.js.map +1 -0
- package/dist/catalog/policy-operations.d.ts +3 -0
- package/dist/catalog/policy-operations.d.ts.map +1 -0
- package/dist/catalog/policy-operations.js +87 -0
- package/dist/catalog/policy-operations.js.map +1 -0
- package/dist/catalog/prove-operations.d.ts +3 -0
- package/dist/catalog/prove-operations.d.ts.map +1 -0
- package/dist/catalog/prove-operations.js +87 -0
- package/dist/catalog/prove-operations.js.map +1 -0
- package/dist/catalog/radar-operations.d.ts +3 -0
- package/dist/catalog/radar-operations.d.ts.map +1 -0
- package/dist/catalog/radar-operations.js +82 -0
- package/dist/catalog/radar-operations.js.map +1 -0
- package/dist/catalog/responses.d.ts +229 -0
- package/dist/catalog/responses.d.ts.map +1 -0
- package/dist/catalog/responses.js +313 -0
- package/dist/catalog/responses.js.map +1 -0
- package/dist/catalog/schema.d.ts +11 -0
- package/dist/catalog/schema.d.ts.map +1 -0
- package/dist/catalog/schema.js +13 -0
- package/dist/catalog/schema.js.map +1 -0
- package/dist/cli/autonomy.d.ts +11 -0
- package/dist/cli/autonomy.d.ts.map +1 -0
- package/dist/cli/autonomy.js +80 -0
- package/dist/cli/autonomy.js.map +1 -0
- package/dist/cli/bisect.d.ts +19 -0
- package/dist/cli/bisect.d.ts.map +1 -0
- package/dist/cli/bisect.js +109 -0
- package/dist/cli/bisect.js.map +1 -0
- package/dist/cli/errors.d.ts +8 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +23 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/evidence-pack-commands.d.ts +21 -0
- package/dist/cli/evidence-pack-commands.d.ts.map +1 -0
- package/dist/cli/evidence-pack-commands.js +109 -0
- package/dist/cli/evidence-pack-commands.js.map +1 -0
- package/dist/cli/freshness-commands.d.ts +31 -0
- package/dist/cli/freshness-commands.d.ts.map +1 -0
- package/dist/cli/freshness-commands.js +241 -0
- package/dist/cli/freshness-commands.js.map +1 -0
- package/dist/cli/incident-commands.d.ts +29 -0
- package/dist/cli/incident-commands.d.ts.map +1 -0
- package/dist/cli/incident-commands.js +131 -0
- package/dist/cli/incident-commands.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/maintain-commands.d.ts +22 -0
- package/dist/cli/maintain-commands.d.ts.map +1 -0
- package/dist/cli/maintain-commands.js +161 -0
- package/dist/cli/maintain-commands.js.map +1 -0
- package/dist/cli/memory-commands.d.ts +23 -0
- package/dist/cli/memory-commands.d.ts.map +1 -0
- package/dist/cli/memory-commands.js +172 -0
- package/dist/cli/memory-commands.js.map +1 -0
- package/dist/cli/policy-commands.d.ts +29 -0
- package/dist/cli/policy-commands.d.ts.map +1 -0
- package/dist/cli/policy-commands.js +138 -0
- package/dist/cli/policy-commands.js.map +1 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +254 -2
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/prove-commands.d.ts +22 -0
- package/dist/cli/prove-commands.d.ts.map +1 -0
- package/dist/cli/prove-commands.js +65 -0
- package/dist/cli/prove-commands.js.map +1 -0
- package/dist/cli/radar-commands.d.ts +20 -0
- package/dist/cli/radar-commands.d.ts.map +1 -0
- package/dist/cli/radar-commands.js +60 -0
- package/dist/cli/radar-commands.js.map +1 -0
- package/dist/cli/recipes.d.ts +3 -0
- package/dist/cli/recipes.d.ts.map +1 -0
- package/dist/cli/recipes.js +124 -0
- package/dist/cli/recipes.js.map +1 -0
- package/dist/cli/runners.d.ts +95 -1
- package/dist/cli/runners.d.ts.map +1 -1
- package/dist/cli/runners.js +586 -157
- package/dist/cli/runners.js.map +1 -1
- package/dist/cli/trace.d.ts +12 -0
- package/dist/cli/trace.d.ts.map +1 -0
- package/dist/cli/trace.js +79 -0
- package/dist/cli/trace.js.map +1 -0
- package/dist/cli/types.d.ts +4 -2
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/cli/validators.d.ts.map +1 -1
- package/dist/cli/validators.js +5 -0
- package/dist/cli/validators.js.map +1 -1
- package/dist/intelligence/sources/cisa-kev.d.ts +6 -0
- package/dist/intelligence/sources/cisa-kev.d.ts.map +1 -1
- package/dist/intelligence/sources/cisa-kev.js +27 -3
- package/dist/intelligence/sources/cisa-kev.js.map +1 -1
- package/dist/intelligence/sources/registry.d.ts +55 -6
- package/dist/intelligence/sources/registry.d.ts.map +1 -1
- package/dist/intelligence/sources/registry.js +182 -61
- package/dist/intelligence/sources/registry.js.map +1 -1
- package/dist/mcp/http.d.ts +23 -0
- package/dist/mcp/http.d.ts.map +1 -0
- package/dist/mcp/http.js +102 -0
- package/dist/mcp/http.js.map +1 -0
- package/dist/mcp/prompts.d.ts +25 -0
- package/dist/mcp/prompts.d.ts.map +1 -0
- package/dist/mcp/prompts.js +89 -0
- package/dist/mcp/prompts.js.map +1 -0
- package/dist/mcp/resources.d.ts +58 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +131 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/server.d.ts +19 -350
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +72 -423
- package/dist/mcp/server.js.map +1 -1
- package/dist/openapi/handlers/index.d.ts.map +1 -1
- package/dist/openapi/handlers/index.js +42 -35
- package/dist/openapi/handlers/index.js.map +1 -1
- package/dist/openapi/handlers/run-operation.d.ts +9 -0
- package/dist/openapi/handlers/run-operation.d.ts.map +1 -0
- package/dist/openapi/handlers/run-operation.js +46 -0
- package/dist/openapi/handlers/run-operation.js.map +1 -0
- package/dist/openapi/handlers/validators.d.ts +2 -3
- package/dist/openapi/handlers/validators.d.ts.map +1 -1
- package/dist/openapi/handlers/validators.js +1 -21
- package/dist/openapi/handlers/validators.js.map +1 -1
- package/dist/openapi/http-utils.d.ts +1 -14
- package/dist/openapi/http-utils.d.ts.map +1 -1
- package/dist/openapi/http-utils.js +1 -82
- package/dist/openapi/http-utils.js.map +1 -1
- package/dist/openapi/rbac.d.ts +1 -21
- package/dist/openapi/rbac.d.ts.map +1 -1
- package/dist/openapi/rbac.js +9 -135
- package/dist/openapi/rbac.js.map +1 -1
- package/dist/openapi/server.d.ts +7 -16
- package/dist/openapi/server.d.ts.map +1 -1
- package/dist/openapi/server.js +2 -16
- package/dist/openapi/server.js.map +1 -1
- package/dist/openapi/spec/index.d.ts +10 -1012
- package/dist/openapi/spec/index.d.ts.map +1 -1
- package/dist/openapi/spec/index.js +36 -2
- package/dist/openapi/spec/index.js.map +1 -1
- package/dist/platform/cooldown.d.ts +15 -0
- package/dist/platform/cooldown.d.ts.map +1 -0
- package/dist/platform/cooldown.js +136 -0
- package/dist/platform/cooldown.js.map +1 -0
- package/dist/platform/freshness-policy.d.ts +25 -0
- package/dist/platform/freshness-policy.d.ts.map +1 -0
- package/dist/platform/freshness-policy.js +25 -0
- package/dist/platform/freshness-policy.js.map +1 -0
- package/dist/platform/git-ref.d.ts +8 -0
- package/dist/platform/git-ref.d.ts.map +1 -0
- package/dist/platform/git-ref.js +35 -0
- package/dist/platform/git-ref.js.map +1 -0
- package/dist/platform/http-auth.d.ts +42 -0
- package/dist/platform/http-auth.d.ts.map +1 -0
- package/dist/platform/http-auth.js +151 -0
- package/dist/platform/http-auth.js.map +1 -0
- package/dist/platform/http-security.d.ts +25 -0
- package/dist/platform/http-security.d.ts.map +1 -0
- package/dist/platform/http-security.js +102 -0
- package/dist/platform/http-security.js.map +1 -0
- package/dist/platform/maintainer-vex/find.d.ts +25 -0
- package/dist/platform/maintainer-vex/find.d.ts.map +1 -0
- package/dist/platform/maintainer-vex/find.js +109 -0
- package/dist/platform/maintainer-vex/find.js.map +1 -0
- package/dist/platform/maintainer-vex/index.d.ts +5 -0
- package/dist/platform/maintainer-vex/index.d.ts.map +1 -0
- package/dist/platform/maintainer-vex/index.js +5 -0
- package/dist/platform/maintainer-vex/index.js.map +1 -0
- package/dist/platform/maintainer-vex/openvex.d.ts +91 -0
- package/dist/platform/maintainer-vex/openvex.d.ts.map +1 -0
- package/dist/platform/maintainer-vex/openvex.js +154 -0
- package/dist/platform/maintainer-vex/openvex.js.map +1 -0
- package/dist/platform/maintainer-vex/purl.d.ts +16 -0
- package/dist/platform/maintainer-vex/purl.d.ts.map +1 -0
- package/dist/platform/maintainer-vex/purl.js +46 -0
- package/dist/platform/maintainer-vex/purl.js.map +1 -0
- package/dist/platform/maintainer-vex/read.d.ts +78 -0
- package/dist/platform/maintainer-vex/read.d.ts.map +1 -0
- package/dist/platform/maintainer-vex/read.js +276 -0
- package/dist/platform/maintainer-vex/read.js.map +1 -0
- package/dist/platform/memory/consume.d.ts +35 -0
- package/dist/platform/memory/consume.d.ts.map +1 -0
- package/dist/platform/memory/consume.js +130 -0
- package/dist/platform/memory/consume.js.map +1 -0
- package/dist/platform/memory/entries.d.ts +119 -0
- package/dist/platform/memory/entries.d.ts.map +1 -0
- package/dist/platform/memory/entries.js +306 -0
- package/dist/platform/memory/entries.js.map +1 -0
- package/dist/platform/memory/format.d.ts +83 -0
- package/dist/platform/memory/format.d.ts.map +1 -0
- package/dist/platform/memory/format.js +285 -0
- package/dist/platform/memory/format.js.map +1 -0
- package/dist/platform/memory/index.d.ts +7 -0
- package/dist/platform/memory/index.d.ts.map +1 -0
- package/dist/platform/memory/index.js +7 -0
- package/dist/platform/memory/index.js.map +1 -0
- package/dist/platform/memory/path.d.ts +7 -0
- package/dist/platform/memory/path.d.ts.map +1 -0
- package/dist/platform/memory/path.js +7 -0
- package/dist/platform/memory/path.js.map +1 -0
- package/dist/platform/memory/propose.d.ts +30 -0
- package/dist/platform/memory/propose.d.ts.map +1 -0
- package/dist/platform/memory/propose.js +71 -0
- package/dist/platform/memory/propose.js.map +1 -0
- package/dist/platform/memory/store.d.ts +64 -0
- package/dist/platform/memory/store.d.ts.map +1 -0
- package/dist/platform/memory/store.js +206 -0
- package/dist/platform/memory/store.js.map +1 -0
- package/dist/platform/option-schemas.d.ts +1225 -0
- package/dist/platform/option-schemas.d.ts.map +1 -0
- package/dist/platform/option-schemas.js +484 -0
- package/dist/platform/option-schemas.js.map +1 -0
- package/dist/platform/package-manager/index.d.ts +11 -2
- package/dist/platform/package-manager/index.d.ts.map +1 -1
- package/dist/platform/package-manager/index.js +24 -1
- package/dist/platform/package-manager/index.js.map +1 -1
- package/dist/platform/package-manager/list-parser.d.ts +4 -2
- package/dist/platform/package-manager/list-parser.d.ts.map +1 -1
- package/dist/platform/package-manager/list-parser.js +13 -4
- package/dist/platform/package-manager/list-parser.js.map +1 -1
- package/dist/platform/package-name.d.ts +11 -0
- package/dist/platform/package-name.d.ts.map +1 -0
- package/dist/platform/package-name.js +18 -0
- package/dist/platform/package-name.js.map +1 -0
- package/dist/platform/path-guard.d.ts +29 -0
- package/dist/platform/path-guard.d.ts.map +1 -0
- package/dist/platform/path-guard.js +113 -0
- package/dist/platform/path-guard.js.map +1 -0
- package/dist/platform/policy-loosening.d.ts +31 -0
- package/dist/platform/policy-loosening.d.ts.map +1 -0
- package/dist/platform/policy-loosening.js +371 -0
- package/dist/platform/policy-loosening.js.map +1 -0
- package/dist/platform/policy.d.ts +248 -1
- package/dist/platform/policy.d.ts.map +1 -1
- package/dist/platform/policy.js +23 -51
- package/dist/platform/policy.js.map +1 -1
- package/dist/platform/redact.d.ts +7 -0
- package/dist/platform/redact.d.ts.map +1 -0
- package/dist/platform/redact.js +11 -0
- package/dist/platform/redact.js.map +1 -0
- package/dist/platform/registry-config.d.ts +27 -0
- package/dist/platform/registry-config.d.ts.map +1 -0
- package/dist/platform/registry-config.js +175 -0
- package/dist/platform/registry-config.js.map +1 -0
- package/dist/platform/repair-agent.d.ts +84 -0
- package/dist/platform/repair-agent.d.ts.map +1 -0
- package/dist/platform/repair-agent.js +7 -0
- package/dist/platform/repair-agent.js.map +1 -0
- package/dist/platform/rollback.d.ts.map +1 -1
- package/dist/platform/rollback.js +12 -0
- package/dist/platform/rollback.js.map +1 -1
- package/dist/platform/supply-chain.d.ts +2 -1
- package/dist/platform/supply-chain.d.ts.map +1 -1
- package/dist/platform/supply-chain.js +10 -4
- package/dist/platform/supply-chain.js.map +1 -1
- package/dist/platform/track-record-path.d.ts +8 -0
- package/dist/platform/track-record-path.d.ts.map +1 -0
- package/dist/platform/track-record-path.js +8 -0
- package/dist/platform/track-record-path.js.map +1 -0
- package/dist/platform/types.d.ts +97 -4
- package/dist/platform/types.d.ts.map +1 -1
- package/dist/platform/types.js +6 -1
- package/dist/platform/types.js.map +1 -1
- package/dist/recipes/capture.d.ts +36 -0
- package/dist/recipes/capture.d.ts.map +1 -0
- package/dist/recipes/capture.js +153 -0
- package/dist/recipes/capture.js.map +1 -0
- package/dist/recipes/discover.d.ts +42 -0
- package/dist/recipes/discover.d.ts.map +1 -0
- package/dist/recipes/discover.js +152 -0
- package/dist/recipes/discover.js.map +1 -0
- package/dist/recipes/engine.d.ts +38 -0
- package/dist/recipes/engine.d.ts.map +1 -0
- package/dist/recipes/engine.js +174 -0
- package/dist/recipes/engine.js.map +1 -0
- package/dist/recipes/schema.d.ts +53 -0
- package/dist/recipes/schema.d.ts.map +1 -0
- package/dist/recipes/schema.js +126 -0
- package/dist/recipes/schema.js.map +1 -0
- package/dist/recipes/store.d.ts +33 -0
- package/dist/recipes/store.d.ts.map +1 -0
- package/dist/recipes/store.js +114 -0
- package/dist/recipes/store.js.map +1 -0
- package/dist/remediation/evaluate-package.d.ts.map +1 -1
- package/dist/remediation/evaluate-package.js +4 -2
- package/dist/remediation/evaluate-package.js.map +1 -1
- package/dist/remediation/impact/api-diff.d.ts +51 -0
- package/dist/remediation/impact/api-diff.d.ts.map +1 -0
- package/dist/remediation/impact/api-diff.js +374 -0
- package/dist/remediation/impact/api-diff.js.map +1 -0
- package/dist/remediation/impact/assess.d.ts +51 -0
- package/dist/remediation/impact/assess.d.ts.map +1 -0
- package/dist/remediation/impact/assess.js +118 -0
- package/dist/remediation/impact/assess.js.map +1 -0
- package/dist/remediation/impact/ast.d.ts +37 -0
- package/dist/remediation/impact/ast.d.ts.map +1 -0
- package/dist/remediation/impact/ast.js +201 -0
- package/dist/remediation/impact/ast.js.map +1 -0
- package/dist/remediation/impact/dts-surface.d.ts +48 -0
- package/dist/remediation/impact/dts-surface.d.ts.map +1 -0
- package/dist/remediation/impact/dts-surface.js +658 -0
- package/dist/remediation/impact/dts-surface.js.map +1 -0
- package/dist/remediation/impact/fix-diff.d.ts +84 -0
- package/dist/remediation/impact/fix-diff.d.ts.map +1 -0
- package/dist/remediation/impact/fix-diff.js +493 -0
- package/dist/remediation/impact/fix-diff.js.map +1 -0
- package/dist/remediation/impact/impact.d.ts +96 -0
- package/dist/remediation/impact/impact.d.ts.map +1 -0
- package/dist/remediation/impact/impact.js +404 -0
- package/dist/remediation/impact/impact.js.map +1 -0
- package/dist/remediation/impact/js-exports.d.ts +63 -0
- package/dist/remediation/impact/js-exports.d.ts.map +1 -0
- package/dist/remediation/impact/js-exports.js +546 -0
- package/dist/remediation/impact/js-exports.js.map +1 -0
- package/dist/remediation/impact/manifest-diff.d.ts +23 -0
- package/dist/remediation/impact/manifest-diff.d.ts.map +1 -0
- package/dist/remediation/impact/manifest-diff.js +223 -0
- package/dist/remediation/impact/manifest-diff.js.map +1 -0
- package/dist/remediation/impact/package-index.d.ts +37 -0
- package/dist/remediation/impact/package-index.d.ts.map +1 -0
- package/dist/remediation/impact/package-index.js +313 -0
- package/dist/remediation/impact/package-index.js.map +1 -0
- package/dist/remediation/impact/tarball.d.ts +43 -0
- package/dist/remediation/impact/tarball.d.ts.map +1 -0
- package/dist/remediation/impact/tarball.js +216 -0
- package/dist/remediation/impact/tarball.js.map +1 -0
- package/dist/remediation/impact/types.d.ts +42 -0
- package/dist/remediation/impact/types.d.ts.map +1 -0
- package/dist/remediation/impact/types.js +3 -0
- package/dist/remediation/impact/types.js.map +1 -0
- package/dist/remediation/impact/usage-index.d.ts +28 -0
- package/dist/remediation/impact/usage-index.d.ts.map +1 -0
- package/dist/remediation/impact/usage-index.js +406 -0
- package/dist/remediation/impact/usage-index.js.map +1 -0
- package/dist/remediation/local/fallback.d.ts.map +1 -1
- package/dist/remediation/local/fallback.js +1 -0
- package/dist/remediation/local/fallback.js.map +1 -1
- package/dist/remediation/local/options.d.ts +3 -0
- package/dist/remediation/local/options.d.ts.map +1 -1
- package/dist/remediation/local/options.js +2 -0
- package/dist/remediation/local/options.js.map +1 -1
- package/dist/remediation/local/primary-strategy.d.ts +4 -0
- package/dist/remediation/local/primary-strategy.d.ts.map +1 -1
- package/dist/remediation/local/primary-strategy.js +61 -17
- package/dist/remediation/local/primary-strategy.js.map +1 -1
- package/dist/remediation/local/run.d.ts.map +1 -1
- package/dist/remediation/local/run.js +85 -6
- package/dist/remediation/local/run.js.map +1 -1
- package/dist/remediation/local/sbom.d.ts +3 -1
- package/dist/remediation/local/sbom.d.ts.map +1 -1
- package/dist/remediation/local/sbom.js +15 -9
- package/dist/remediation/local/sbom.js.map +1 -1
- package/dist/remediation/local/secops-preflight.d.ts +2 -1
- package/dist/remediation/local/secops-preflight.d.ts.map +1 -1
- package/dist/remediation/local/secops-preflight.js +1 -0
- package/dist/remediation/local/secops-preflight.js.map +1 -1
- package/dist/remediation/local/select-target.d.ts +53 -0
- package/dist/remediation/local/select-target.d.ts.map +1 -0
- package/dist/remediation/local/select-target.js +74 -0
- package/dist/remediation/local/select-target.js.map +1 -0
- package/dist/remediation/patch/llm-generator.d.ts.map +1 -1
- package/dist/remediation/patch/llm-generator.js +4 -4
- package/dist/remediation/patch/llm-generator.js.map +1 -1
- package/dist/remediation/radar/changelog.d.ts +38 -0
- package/dist/remediation/radar/changelog.d.ts.map +1 -0
- package/dist/remediation/radar/changelog.js +311 -0
- package/dist/remediation/radar/changelog.js.map +1 -0
- package/dist/remediation/radar/code-diff.d.ts +30 -0
- package/dist/remediation/radar/code-diff.d.ts.map +1 -0
- package/dist/remediation/radar/code-diff.js +512 -0
- package/dist/remediation/radar/code-diff.js.map +1 -0
- package/dist/remediation/radar/metadata.d.ts +14 -0
- package/dist/remediation/radar/metadata.d.ts.map +1 -0
- package/dist/remediation/radar/metadata.js +105 -0
- package/dist/remediation/radar/metadata.js.map +1 -0
- package/dist/remediation/radar/model.d.ts +40 -0
- package/dist/remediation/radar/model.d.ts.map +1 -0
- package/dist/remediation/radar/model.js +74 -0
- package/dist/remediation/radar/model.js.map +1 -0
- package/dist/remediation/radar/sanitize.d.ts +15 -0
- package/dist/remediation/radar/sanitize.d.ts.map +1 -0
- package/dist/remediation/radar/sanitize.js +47 -0
- package/dist/remediation/radar/sanitize.js.map +1 -0
- package/dist/remediation/radar/score.d.ts +12 -0
- package/dist/remediation/radar/score.d.ts.map +1 -0
- package/dist/remediation/radar/score.js +27 -0
- package/dist/remediation/radar/score.js.map +1 -0
- package/dist/remediation/radar/types.d.ts +74 -0
- package/dist/remediation/radar/types.d.ts.map +1 -0
- package/dist/remediation/radar/types.js +65 -0
- package/dist/remediation/radar/types.js.map +1 -0
- package/dist/remediation/repair/attempt.d.ts +74 -0
- package/dist/remediation/repair/attempt.d.ts.map +1 -0
- package/dist/remediation/repair/attempt.js +262 -0
- package/dist/remediation/repair/attempt.js.map +1 -0
- package/dist/remediation/repair/builtin-agent.d.ts +9 -0
- package/dist/remediation/repair/builtin-agent.d.ts.map +1 -0
- package/dist/remediation/repair/builtin-agent.js +139 -0
- package/dist/remediation/repair/builtin-agent.js.map +1 -0
- package/dist/remediation/repair/patch-apply.d.ts +12 -0
- package/dist/remediation/repair/patch-apply.d.ts.map +1 -0
- package/dist/remediation/repair/patch-apply.js +75 -0
- package/dist/remediation/repair/patch-apply.js.map +1 -0
- package/dist/remediation/repair/recipe-attempt.d.ts +56 -0
- package/dist/remediation/repair/recipe-attempt.d.ts.map +1 -0
- package/dist/remediation/repair/recipe-attempt.js +99 -0
- package/dist/remediation/repair/recipe-attempt.js.map +1 -0
- package/dist/remediation/repair/scope-guard.d.ts +18 -0
- package/dist/remediation/repair/scope-guard.d.ts.map +1 -0
- package/dist/remediation/repair/scope-guard.js +62 -0
- package/dist/remediation/repair/scope-guard.js.map +1 -0
- package/dist/remediation/repair/tools.d.ts +30 -0
- package/dist/remediation/repair/tools.d.ts.map +1 -0
- package/dist/remediation/repair/tools.js +370 -0
- package/dist/remediation/repair/tools.js.map +1 -0
- package/dist/remediation/tools/apply-package-override/helpers.d.ts +0 -1
- package/dist/remediation/tools/apply-package-override/helpers.d.ts.map +1 -1
- package/dist/remediation/tools/apply-package-override/helpers.js +0 -30
- package/dist/remediation/tools/apply-package-override/helpers.js.map +1 -1
- package/dist/remediation/tools/apply-package-override/index.d.ts.map +1 -1
- package/dist/remediation/tools/apply-package-override/index.js +51 -13
- package/dist/remediation/tools/apply-package-override/index.js.map +1 -1
- package/dist/remediation/tools/apply-package-override/pnpm-workspace.d.ts +19 -0
- package/dist/remediation/tools/apply-package-override/pnpm-workspace.d.ts.map +1 -0
- package/dist/remediation/tools/apply-package-override/pnpm-workspace.js +47 -0
- package/dist/remediation/tools/apply-package-override/pnpm-workspace.js.map +1 -0
- package/dist/remediation/tools/apply-patch-file/index.js +1 -1
- package/dist/remediation/tools/apply-patch-file/index.js.map +1 -1
- package/dist/remediation/tools/apply-version-bump.d.ts.map +1 -1
- package/dist/remediation/tools/apply-version-bump.js +20 -45
- package/dist/remediation/tools/apply-version-bump.js.map +1 -1
- package/dist/remediation/tools/check-inventory.d.ts +6 -0
- package/dist/remediation/tools/check-inventory.d.ts.map +1 -1
- package/dist/remediation/tools/check-inventory.js +39 -8
- package/dist/remediation/tools/check-inventory.js.map +1 -1
- package/dist/remediation/tools/check-reachability.d.ts +6 -0
- package/dist/remediation/tools/check-reachability.d.ts.map +1 -1
- package/dist/remediation/tools/check-reachability.js +32 -12
- package/dist/remediation/tools/check-reachability.js.map +1 -1
- package/dist/remediation/tools/fetch-package-source.d.ts +1 -0
- package/dist/remediation/tools/fetch-package-source.d.ts.map +1 -1
- package/dist/remediation/tools/fetch-package-source.js +29 -22
- package/dist/remediation/tools/fetch-package-source.js.map +1 -1
- package/dist/remediation/tools/manifest-format.d.ts +7 -0
- package/dist/remediation/tools/manifest-format.d.ts.map +1 -0
- package/dist/remediation/tools/manifest-format.js +14 -0
- package/dist/remediation/tools/manifest-format.js.map +1 -0
- package/dist/remediation/verify/changes.d.ts +33 -0
- package/dist/remediation/verify/changes.d.ts.map +1 -0
- package/dist/remediation/verify/changes.js +204 -0
- package/dist/remediation/verify/changes.js.map +1 -0
- package/dist/remediation/verify/checks.d.ts +30 -0
- package/dist/remediation/verify/checks.d.ts.map +1 -0
- package/dist/remediation/verify/checks.js +239 -0
- package/dist/remediation/verify/checks.js.map +1 -0
- package/dist/remediation/verify/command-check.d.ts +11 -0
- package/dist/remediation/verify/command-check.d.ts.map +1 -0
- package/dist/remediation/verify/command-check.js +26 -0
- package/dist/remediation/verify/command-check.js.map +1 -0
- package/dist/remediation/verify/types.d.ts +66 -0
- package/dist/remediation/verify/types.d.ts.map +1 -0
- package/dist/remediation/verify/types.js +4 -0
- package/dist/remediation/verify/types.js.map +1 -0
- package/dist/remediation/verify/verifier.d.ts +12 -0
- package/dist/remediation/verify/verifier.d.ts.map +1 -0
- package/dist/remediation/verify/verifier.js +56 -0
- package/dist/remediation/verify/verifier.js.map +1 -0
- package/dist/runs/fingerprint.d.ts +14 -0
- package/dist/runs/fingerprint.d.ts.map +1 -0
- package/dist/runs/fingerprint.js +55 -0
- package/dist/runs/fingerprint.js.map +1 -0
- package/dist/runs/hash.d.ts +4 -0
- package/dist/runs/hash.d.ts.map +1 -0
- package/dist/runs/hash.js +18 -0
- package/dist/runs/hash.js.map +1 -0
- package/dist/runs/ids.d.ts +6 -0
- package/dist/runs/ids.d.ts.map +1 -0
- package/dist/runs/ids.js +15 -0
- package/dist/runs/ids.js.map +1 -0
- package/dist/runs/ledger.d.ts +26 -0
- package/dist/runs/ledger.d.ts.map +1 -0
- package/dist/runs/ledger.js +61 -0
- package/dist/runs/ledger.js.map +1 -0
- package/dist/runs/plan.d.ts +67 -0
- package/dist/runs/plan.d.ts.map +1 -0
- package/dist/runs/plan.js +68 -0
- package/dist/runs/plan.js.map +1 -0
- package/dist/runs/run-store.d.ts +83 -0
- package/dist/runs/run-store.d.ts.map +1 -0
- package/dist/runs/run-store.js +161 -0
- package/dist/runs/run-store.js.map +1 -0
- package/dist/runs/snapshot-store.d.ts +13 -0
- package/dist/runs/snapshot-store.d.ts.map +1 -0
- package/dist/runs/snapshot-store.js +78 -0
- package/dist/runs/snapshot-store.js.map +1 -0
- package/dist/runs/worktree.d.ts +40 -0
- package/dist/runs/worktree.d.ts.map +1 -0
- package/dist/runs/worktree.js +144 -0
- package/dist/runs/worktree.js.map +1 -0
- package/dist/scanner/delta-scan.d.ts +10 -1
- package/dist/scanner/delta-scan.d.ts.map +1 -1
- package/dist/scanner/delta-scan.js +15 -3
- package/dist/scanner/delta-scan.js.map +1 -1
- package/dist/scanner/lock-graph/bun.d.ts +6 -0
- package/dist/scanner/lock-graph/bun.d.ts.map +1 -0
- package/dist/scanner/lock-graph/bun.js +116 -0
- package/dist/scanner/lock-graph/bun.js.map +1 -0
- package/dist/scanner/lock-graph/index.d.ts +32 -0
- package/dist/scanner/lock-graph/index.d.ts.map +1 -0
- package/dist/scanner/lock-graph/index.js +125 -0
- package/dist/scanner/lock-graph/index.js.map +1 -0
- package/dist/scanner/lock-graph/npm.d.ts +4 -0
- package/dist/scanner/lock-graph/npm.d.ts.map +1 -0
- package/dist/scanner/lock-graph/npm.js +119 -0
- package/dist/scanner/lock-graph/npm.js.map +1 -0
- package/dist/scanner/lock-graph/pnpm.d.ts +4 -0
- package/dist/scanner/lock-graph/pnpm.d.ts.map +1 -0
- package/dist/scanner/lock-graph/pnpm.js +101 -0
- package/dist/scanner/lock-graph/pnpm.js.map +1 -0
- package/dist/scanner/lock-graph/types.d.ts +44 -0
- package/dist/scanner/lock-graph/types.d.ts.map +1 -0
- package/dist/scanner/lock-graph/types.js +32 -0
- package/dist/scanner/lock-graph/types.js.map +1 -0
- package/dist/scanner/lock-graph/yarn.d.ts +4 -0
- package/dist/scanner/lock-graph/yarn.d.ts.map +1 -0
- package/dist/scanner/lock-graph/yarn.js +132 -0
- package/dist/scanner/lock-graph/yarn.js.map +1 -0
- package/dist/scanner/lockfile-diff.d.ts.map +1 -1
- package/dist/scanner/lockfile-diff.js +2 -2
- package/dist/scanner/lockfile-diff.js.map +1 -1
- package/dist/scanner/pnpm-lock-document.d.ts +8 -0
- package/dist/scanner/pnpm-lock-document.d.ts.map +1 -0
- package/dist/scanner/pnpm-lock-document.js +15 -0
- package/dist/scanner/pnpm-lock-document.js.map +1 -0
- package/dist/trace/esm-instrument.d.ts +26 -0
- package/dist/trace/esm-instrument.d.ts.map +1 -0
- package/dist/trace/esm-instrument.js +153 -0
- package/dist/trace/esm-instrument.js.map +1 -0
- package/dist/trace/fold.d.ts +24 -0
- package/dist/trace/fold.d.ts.map +1 -0
- package/dist/trace/fold.js +169 -0
- package/dist/trace/fold.js.map +1 -0
- package/dist/trace/locate.d.ts +18 -0
- package/dist/trace/locate.d.ts.map +1 -0
- package/dist/trace/locate.js +55 -0
- package/dist/trace/locate.js.map +1 -0
- package/dist/trace/register.d.ts +2 -0
- package/dist/trace/register.d.ts.map +1 -0
- package/dist/trace/register.js +15 -0
- package/dist/trace/register.js.map +1 -0
- package/dist/trace/run.d.ts +42 -0
- package/dist/trace/run.d.ts.map +1 -0
- package/dist/trace/run.js +97 -0
- package/dist/trace/run.js.map +1 -0
- package/dist/trace/runtime.d.ts +9 -0
- package/dist/trace/runtime.d.ts.map +1 -0
- package/dist/trace/runtime.js +341 -0
- package/dist/trace/runtime.js.map +1 -0
- package/dist/trace/types.d.ts +98 -0
- package/dist/trace/types.d.ts.map +1 -0
- package/dist/trace/types.js +16 -0
- package/dist/trace/types.js.map +1 -0
- package/dist/trace/verdict.d.ts +8 -0
- package/dist/trace/verdict.d.ts.map +1 -0
- package/dist/trace/verdict.js +111 -0
- package/dist/trace/verdict.js.map +1 -0
- package/dist/trace/wrap.d.ts +32 -0
- package/dist/trace/wrap.d.ts.map +1 -0
- package/dist/trace/wrap.js +151 -0
- package/dist/trace/wrap.js.map +1 -0
- package/llms.txt +21 -3
- package/package.json +23 -17
- package/dist/openapi/handlers/routes.d.ts +0 -6
- package/dist/openapi/handlers/routes.d.ts.map +0 -1
- package/dist/openapi/handlers/routes.js +0 -122
- package/dist/openapi/handlers/routes.js.map +0 -1
- package/dist/openapi/path-guard.d.ts +0 -12
- package/dist/openapi/path-guard.d.ts.map +0 -1
- package/dist/openapi/path-guard.js +0 -79
- package/dist/openapi/path-guard.js.map +0 -1
- package/dist/openapi/spec/paths.d.ts +0 -1053
- package/dist/openapi/spec/paths.d.ts.map +0 -1
- package/dist/openapi/spec/paths.js +0 -623
- package/dist/openapi/spec/paths.js.map +0 -1
- package/dist/openapi/spec/schemas.d.ts +0 -74
- package/dist/openapi/spec/schemas.d.ts.map +0 -1
- package/dist/openapi/spec/schemas.js +0 -32
- package/dist/openapi/spec/schemas.js.map +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type CheckFn } from "./checks.js";
|
|
2
|
+
import { type CheckName, type VerificationResult, type VerifyRequest } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Judge a project that a change has been made to. Deterministic: no model is consulted, and nothing
|
|
5
|
+
* the change's author says about it is taken on trust. Checks run cheapest first and stop at the
|
|
6
|
+
* first failure; the rest are reported as skipped, so a result always lists every check.
|
|
7
|
+
*
|
|
8
|
+
* It does not care how the change was made. A plan applied in place, an agent's attempt in a
|
|
9
|
+
* worktree and a hand edit are judged by the same checks.
|
|
10
|
+
*/
|
|
11
|
+
export declare function verify(request: VerifyRequest, checks?: Partial<Record<CheckName, CheckFn>>): Promise<VerificationResult>;
|
|
12
|
+
//# sourceMappingURL=verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../src/remediation/verify/verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,OAAO,EAAsB,MAAM,aAAa,CAAC;AACvE,OAAO,EAEL,KAAK,SAAS,EAEd,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,aAAa,EACtB,MAAM,GAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAU,GACnD,OAAO,CAAC,kBAAkB,CAAC,CA6C7B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { CHECKS, createCheckContext } from "./checks.js";
|
|
2
|
+
import { CHECK_NAMES, } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Judge a project that a change has been made to. Deterministic: no model is consulted, and nothing
|
|
5
|
+
* the change's author says about it is taken on trust. Checks run cheapest first and stop at the
|
|
6
|
+
* first failure; the rest are reported as skipped, so a result always lists every check.
|
|
7
|
+
*
|
|
8
|
+
* It does not care how the change was made. A plan applied in place, an agent's attempt in a
|
|
9
|
+
* worktree and a hand edit are judged by the same checks.
|
|
10
|
+
*/
|
|
11
|
+
export async function verify(request, checks = CHECKS) {
|
|
12
|
+
const started = Date.now();
|
|
13
|
+
const wanted = new Set(request.checks ?? CHECK_NAMES);
|
|
14
|
+
const context = createCheckContext(request);
|
|
15
|
+
const results = [];
|
|
16
|
+
let failedCheck;
|
|
17
|
+
for (const name of CHECK_NAMES) {
|
|
18
|
+
if (!wanted.has(name))
|
|
19
|
+
continue;
|
|
20
|
+
if (failedCheck) {
|
|
21
|
+
results.push({
|
|
22
|
+
name,
|
|
23
|
+
status: "skipped",
|
|
24
|
+
message: `not run: ${failedCheck} failed`,
|
|
25
|
+
durationMs: 0,
|
|
26
|
+
});
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const run = checks[name] ?? CHECKS[name];
|
|
30
|
+
const checkStarted = Date.now();
|
|
31
|
+
let outcome;
|
|
32
|
+
try {
|
|
33
|
+
outcome = await run(context);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
// A check that blows up has not shown the change is fine.
|
|
37
|
+
outcome = {
|
|
38
|
+
status: "failed",
|
|
39
|
+
message: "the check could not complete",
|
|
40
|
+
details: [error instanceof Error ? error.message : String(error)],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
results.push({ name, ...outcome, durationMs: Date.now() - checkStarted });
|
|
44
|
+
if (outcome.status === "failed")
|
|
45
|
+
failedCheck = name;
|
|
46
|
+
}
|
|
47
|
+
const changedFiles = await context.changedFiles().catch(() => undefined);
|
|
48
|
+
return {
|
|
49
|
+
passed: failedCheck === undefined,
|
|
50
|
+
...(failedCheck ? { failedCheck } : {}),
|
|
51
|
+
checks: results,
|
|
52
|
+
...(changedFiles ? { changedFiles } : {}),
|
|
53
|
+
durationMs: Date.now() - started,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=verifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../src/remediation/verify/verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,WAAW,GAKZ,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAsB,EACtB,MAAM,GAAwC,MAAM;IAEpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,IAAI,WAAkC,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAChC,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI;gBACJ,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,YAAY,WAAW,SAAS;gBACzC,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0DAA0D;YAC1D,OAAO,GAAG;gBACR,MAAM,EAAE,QAAiB;gBACzB,OAAO,EAAE,8BAA8B;gBACvC,OAAO,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAClE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,WAAW,GAAG,IAAI,CAAC;IACtD,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzE,OAAO;QACL,MAAM,EAAE,WAAW,KAAK,SAAS;QACjC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,OAAO;QACf,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;KACjC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** What a plan or a finished run depends on: the manifests, lockfiles and patches, plus the policy. */
|
|
2
|
+
export interface RepoFingerprint {
|
|
3
|
+
gitHead?: string;
|
|
4
|
+
/** Uncommitted changes exist anywhere in the work tree. */
|
|
5
|
+
dirty: boolean;
|
|
6
|
+
/** Hash over every manifest, lockfile, patch and tsconfig file the tool may change. */
|
|
7
|
+
filesSha256: string;
|
|
8
|
+
/** Hash of the policy in force, when there is one. */
|
|
9
|
+
policySha256?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function fingerprintRepo(cwd: string, policy?: string): Promise<RepoFingerprint>;
|
|
12
|
+
/** Whether two fingerprints describe the same inputs to remediation (the commit itself may differ). */
|
|
13
|
+
export declare function sameInputs(a: RepoFingerprint, b: RepoFingerprint): boolean;
|
|
14
|
+
//# sourceMappingURL=fingerprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.d.ts","sourceRoot":"","sources":["../../src/runs/fingerprint.ts"],"names":[],"mappings":"AAOA,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,uFAAuF;IACvF,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAwBD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAsB5F;AAED,uGAAuG;AACvG,wBAAgB,UAAU,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,OAAO,CAE1E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join, relative } from "node:path";
|
|
3
|
+
import { discoverProjectFiles } from "../platform/rollback.js";
|
|
4
|
+
import { safeExeca } from "../platform/safe-exec.js";
|
|
5
|
+
import { sha256 } from "./hash.js";
|
|
6
|
+
async function git(cwd, args) {
|
|
7
|
+
try {
|
|
8
|
+
const result = await safeExeca("git", args, { cwd, stdio: "pipe" });
|
|
9
|
+
return result.stdout.trim();
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function policyContent(cwd, explicitPolicy) {
|
|
16
|
+
if (explicitPolicy !== undefined) {
|
|
17
|
+
const trimmed = explicitPolicy.trim();
|
|
18
|
+
if (trimmed.startsWith("{") || trimmed.startsWith("---"))
|
|
19
|
+
return explicitPolicy;
|
|
20
|
+
}
|
|
21
|
+
const path = explicitPolicy ?? join(cwd, ".github", "autoremediator.yml");
|
|
22
|
+
try {
|
|
23
|
+
return existsSync(path) ? readFileSync(path, "utf8") : undefined;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export async function fingerprintRepo(cwd, policy) {
|
|
30
|
+
const files = discoverProjectFiles(cwd)
|
|
31
|
+
.map((file) => relative(cwd, file))
|
|
32
|
+
.toSorted();
|
|
33
|
+
const lines = files.map((file) => {
|
|
34
|
+
try {
|
|
35
|
+
return `${file}\0${sha256(readFileSync(join(cwd, file)))}`;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return `${file}\0unreadable`;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const head = await git(cwd, ["rev-parse", "HEAD"]);
|
|
42
|
+
const status = head === undefined ? undefined : await git(cwd, ["status", "--porcelain"]);
|
|
43
|
+
const policyText = policyContent(cwd, policy);
|
|
44
|
+
return {
|
|
45
|
+
...(head ? { gitHead: head } : {}),
|
|
46
|
+
dirty: Boolean(status && status.length > 0),
|
|
47
|
+
filesSha256: sha256(lines.join("\n")),
|
|
48
|
+
...(policyText === undefined ? {} : { policySha256: sha256(policyText) }),
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/** Whether two fingerprints describe the same inputs to remediation (the commit itself may differ). */
|
|
52
|
+
export function sameInputs(a, b) {
|
|
53
|
+
return a.filesSha256 === b.filesSha256 && a.policySha256 === b.policySha256;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../src/runs/fingerprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/runs/hash.ts"],"names":[],"mappings":"AAEA,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUpD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
/** JSON with object keys sorted at every level, so equal values always serialise identically. */
|
|
3
|
+
export function canonicalJson(value) {
|
|
4
|
+
if (Array.isArray(value))
|
|
5
|
+
return `[${value.map((entry) => canonicalJson(entry)).join(",")}]`;
|
|
6
|
+
if (value !== null && typeof value === "object") {
|
|
7
|
+
const entries = Object.entries(value)
|
|
8
|
+
.filter(([, entry]) => entry !== undefined)
|
|
9
|
+
.toSorted(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
|
|
10
|
+
.map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`);
|
|
11
|
+
return `{${entries.join(",")}}`;
|
|
12
|
+
}
|
|
13
|
+
return JSON.stringify(value) ?? "null";
|
|
14
|
+
}
|
|
15
|
+
export function sha256(data) {
|
|
16
|
+
return createHash("sha256").update(data).digest("hex");
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=hash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/runs/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7F,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;aAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;aAC1C,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAyB;IAC9C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function newRunId(): string;
|
|
2
|
+
export declare const isRunId: (value: unknown) => value is string;
|
|
3
|
+
export declare const isPlanId: (value: unknown) => value is string;
|
|
4
|
+
export declare function newAttemptId(): string;
|
|
5
|
+
export declare const isAttemptId: (value: unknown) => value is string;
|
|
6
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/runs/ids.ts"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,eAAO,MAAM,OAAO,UAAW,OAAO,KAAG,KAAK,IAAI,MACD,CAAC;AAElD,eAAO,MAAM,QAAQ,UAAW,OAAO,KAAG,KAAK,IAAI,MACD,CAAC;AAEnD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,eAAO,MAAM,WAAW,UAAW,OAAO,KAAG,KAAK,IAAI,MACD,CAAC"}
|
package/dist/runs/ids.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { randomInt } from "node:crypto";
|
|
2
|
+
const ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz";
|
|
3
|
+
const RUN_ID = /^run_[0-9a-z]{20}$/;
|
|
4
|
+
const PLAN_ID = /^plan_[0-9a-f]{16}$/;
|
|
5
|
+
const ATTEMPT_ID = /^attempt_[0-9a-z]{12}$/;
|
|
6
|
+
export function newRunId() {
|
|
7
|
+
return `run_${Array.from({ length: 20 }, () => ALPHABET[randomInt(ALPHABET.length)]).join("")}`;
|
|
8
|
+
}
|
|
9
|
+
export const isRunId = (value) => typeof value === "string" && RUN_ID.test(value);
|
|
10
|
+
export const isPlanId = (value) => typeof value === "string" && PLAN_ID.test(value);
|
|
11
|
+
export function newAttemptId() {
|
|
12
|
+
return `attempt_${Array.from({ length: 12 }, () => ALPHABET[randomInt(ALPHABET.length)]).join("")}`;
|
|
13
|
+
}
|
|
14
|
+
export const isAttemptId = (value) => typeof value === "string" && ATTEMPT_ID.test(value);
|
|
15
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/runs/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,QAAQ,GAAG,sCAAsC,CAAC;AACxD,MAAM,MAAM,GAAG,oBAAoB,CAAC;AACpC,MAAM,OAAO,GAAG,qBAAqB,CAAC;AACtC,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAE5C,MAAM,UAAU,QAAQ;IACtB,OAAO,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAc,EAAmB,EAAE,CACzD,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEnD,MAAM,UAAU,YAAY;IAC1B,OAAO,WAAW,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACtG,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC7D,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface StepEvent {
|
|
2
|
+
seq: number;
|
|
3
|
+
at: string;
|
|
4
|
+
type: string;
|
|
5
|
+
data: Record<string, unknown>;
|
|
6
|
+
/** Hash of the previous event (zeros for the first). */
|
|
7
|
+
prevHash: string;
|
|
8
|
+
/** Hash over `prevHash` and this event's content: editing or removing any line breaks the chain. */
|
|
9
|
+
hash: string;
|
|
10
|
+
}
|
|
11
|
+
export type LedgerCheck = {
|
|
12
|
+
ok: true;
|
|
13
|
+
} | {
|
|
14
|
+
ok: false;
|
|
15
|
+
seq: number;
|
|
16
|
+
reason: string;
|
|
17
|
+
};
|
|
18
|
+
/** Append-only, hash-chained record of what a run did (`steps.jsonl`). */
|
|
19
|
+
export declare class Ledger {
|
|
20
|
+
readonly file: string;
|
|
21
|
+
constructor(file: string);
|
|
22
|
+
read(): StepEvent[];
|
|
23
|
+
append(type: string, data?: Record<string, unknown>): StepEvent;
|
|
24
|
+
verify(): LedgerCheck;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/runs/ledger.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAUpF,0EAA0E;AAC1E,qBAAa,MAAM;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,MAAM,EAEvB;IAED,IAAI,IAAI,SAAS,EAAE,CAMlB;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,SAAS,CASlE;IAED,MAAM,IAAI,WAAW,CA2BpB;CACF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { appendFileSync, existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { canonicalJson, sha256 } from "./hash.js";
|
|
3
|
+
const GENESIS = "0".repeat(64);
|
|
4
|
+
function hashEvent(prevHash, event) {
|
|
5
|
+
return sha256(prevHash + canonicalJson({ seq: event.seq, at: event.at, type: event.type, data: event.data }));
|
|
6
|
+
}
|
|
7
|
+
/** Append-only, hash-chained record of what a run did (`steps.jsonl`). */
|
|
8
|
+
export class Ledger {
|
|
9
|
+
file;
|
|
10
|
+
constructor(file) {
|
|
11
|
+
this.file = file;
|
|
12
|
+
}
|
|
13
|
+
read() {
|
|
14
|
+
if (!existsSync(this.file))
|
|
15
|
+
return [];
|
|
16
|
+
return readFileSync(this.file, "utf8")
|
|
17
|
+
.split("\n")
|
|
18
|
+
.filter((line) => line.trim().length > 0)
|
|
19
|
+
.map((line) => JSON.parse(line));
|
|
20
|
+
}
|
|
21
|
+
append(type, data = {}) {
|
|
22
|
+
// Always continue from what is on disk: other holders of this file (one per code path that
|
|
23
|
+
// asked the store for the ledger) may have appended since.
|
|
24
|
+
const tail = this.read().at(-1);
|
|
25
|
+
const last = tail ? { seq: tail.seq, hash: tail.hash } : { seq: 0, hash: GENESIS };
|
|
26
|
+
const base = { seq: last.seq + 1, at: new Date().toISOString(), type, data };
|
|
27
|
+
const event = { ...base, prevHash: last.hash, hash: hashEvent(last.hash, base) };
|
|
28
|
+
appendFileSync(this.file, `${JSON.stringify(event)}\n`, "utf8");
|
|
29
|
+
return event;
|
|
30
|
+
}
|
|
31
|
+
verify() {
|
|
32
|
+
let prevHash = GENESIS;
|
|
33
|
+
let expectedSeq = 1;
|
|
34
|
+
let events;
|
|
35
|
+
try {
|
|
36
|
+
events = this.read();
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return { ok: false, seq: expectedSeq, reason: "unreadable line" };
|
|
40
|
+
}
|
|
41
|
+
for (const event of events) {
|
|
42
|
+
if (event.seq !== expectedSeq) {
|
|
43
|
+
return {
|
|
44
|
+
ok: false,
|
|
45
|
+
seq: expectedSeq,
|
|
46
|
+
reason: `expected event ${expectedSeq}, found ${event.seq}`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (event.prevHash !== prevHash) {
|
|
50
|
+
return { ok: false, seq: event.seq, reason: "chain broken: previous hash does not match" };
|
|
51
|
+
}
|
|
52
|
+
if (event.hash !== hashEvent(prevHash, event)) {
|
|
53
|
+
return { ok: false, seq: event.seq, reason: "event content does not match its hash" };
|
|
54
|
+
}
|
|
55
|
+
prevHash = event.hash;
|
|
56
|
+
expectedSeq += 1;
|
|
57
|
+
}
|
|
58
|
+
return { ok: true };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/runs/ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { RemediationConstraints, RemediationReport } from "../platform/types.js";
|
|
2
|
+
import type { RepoFingerprint } from "./fingerprint.js";
|
|
3
|
+
/** The options a plan needs to be applied exactly as it was previewed. */
|
|
4
|
+
export interface PlanOptions {
|
|
5
|
+
packageManager?: string;
|
|
6
|
+
policy?: string;
|
|
7
|
+
runTests?: boolean;
|
|
8
|
+
typecheck?: boolean;
|
|
9
|
+
patchesDir?: string;
|
|
10
|
+
proofOfFix?: boolean;
|
|
11
|
+
requireProofOfFix?: boolean;
|
|
12
|
+
reproductionTest?: string;
|
|
13
|
+
breakingChangeRefactor?: boolean;
|
|
14
|
+
/** The plan was made with remediation memory ignored, so applying it does not consult memory either. */
|
|
15
|
+
ignoreMemory?: boolean;
|
|
16
|
+
constraints?: RemediationConstraints;
|
|
17
|
+
}
|
|
18
|
+
/** One change a plan will make. */
|
|
19
|
+
export interface PlanItem {
|
|
20
|
+
itemId: string;
|
|
21
|
+
cveId: string;
|
|
22
|
+
packageName: string;
|
|
23
|
+
fromVersion: string;
|
|
24
|
+
toVersion: string;
|
|
25
|
+
strategy: "version-bump" | "override";
|
|
26
|
+
dependencyScope?: "direct" | "transitive";
|
|
27
|
+
/** The change goes back to an older version (an incident rollback), pinned exactly. Review it as such. */
|
|
28
|
+
rollback?: true;
|
|
29
|
+
/** What the pipeline's disposition policy said when previewing; shown to whoever reviews the plan. */
|
|
30
|
+
disposition?: string;
|
|
31
|
+
dispositionReason?: string;
|
|
32
|
+
}
|
|
33
|
+
/** A finding the plan cannot act on by itself, with why. */
|
|
34
|
+
export interface PlanSkip {
|
|
35
|
+
cveId: string;
|
|
36
|
+
packageName: string;
|
|
37
|
+
fromVersion: string;
|
|
38
|
+
strategy: string;
|
|
39
|
+
reason: string;
|
|
40
|
+
unresolvedReason?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface RemediationPlan {
|
|
43
|
+
schemaVersion: "1";
|
|
44
|
+
planId: string;
|
|
45
|
+
runId: string;
|
|
46
|
+
createdAt: string;
|
|
47
|
+
cwd: string;
|
|
48
|
+
cveIds: string[];
|
|
49
|
+
base: RepoFingerprint;
|
|
50
|
+
options: PlanOptions;
|
|
51
|
+
items: PlanItem[];
|
|
52
|
+
skipped: PlanSkip[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Turn a preview report into a plan. Version bumps and overrides carry the exact target version the
|
|
56
|
+
* preview chose, so applying them does not depend on re-deciding anything. A model-generated patch
|
|
57
|
+
* cannot be replayed from a preview and is listed as skipped with the reason.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildPlan(input: {
|
|
60
|
+
runId: string;
|
|
61
|
+
cwd: string;
|
|
62
|
+
report: RemediationReport;
|
|
63
|
+
base: RepoFingerprint;
|
|
64
|
+
options: PlanOptions;
|
|
65
|
+
createdAt?: string;
|
|
66
|
+
}): RemediationPlan;
|
|
67
|
+
//# sourceMappingURL=plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/runs/plan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,wGAAwG;IACxG,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED,mCAAmC;AACnC,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,GAAG,UAAU,CAAC;IACtC,eAAe,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC1C,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,sGAAsG;IACtG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,GAAG,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAQD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,eAAe,CAqDlB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import semver from "semver";
|
|
2
|
+
import { canonicalJson, sha256 } from "./hash.js";
|
|
3
|
+
const isRollback = (from, to) => semver.valid(from) !== null && semver.valid(to) !== null && semver.lt(to, from);
|
|
4
|
+
const itemIdOf = (item) => `item_${sha256(canonicalJson([item.cveId, item.packageName, item.fromVersion, item.toVersion, item.strategy])).slice(0, 12)}`;
|
|
5
|
+
/**
|
|
6
|
+
* Turn a preview report into a plan. Version bumps and overrides carry the exact target version the
|
|
7
|
+
* preview chose, so applying them does not depend on re-deciding anything. A model-generated patch
|
|
8
|
+
* cannot be replayed from a preview and is listed as skipped with the reason.
|
|
9
|
+
*/
|
|
10
|
+
export function buildPlan(input) {
|
|
11
|
+
const { report } = input;
|
|
12
|
+
const items = [];
|
|
13
|
+
const skipped = [];
|
|
14
|
+
for (const result of report.results) {
|
|
15
|
+
const replayable = (result.strategy === "version-bump" || result.strategy === "override") &&
|
|
16
|
+
result.toVersion !== undefined &&
|
|
17
|
+
result.unresolvedReason === undefined;
|
|
18
|
+
if (replayable) {
|
|
19
|
+
const draft = {
|
|
20
|
+
cveId: report.cveId,
|
|
21
|
+
packageName: result.packageName,
|
|
22
|
+
fromVersion: result.fromVersion,
|
|
23
|
+
toVersion: result.toVersion,
|
|
24
|
+
strategy: result.strategy,
|
|
25
|
+
...(result.dependencyScope ? { dependencyScope: result.dependencyScope } : {}),
|
|
26
|
+
...(isRollback(result.fromVersion, result.toVersion) ? { rollback: true } : {}),
|
|
27
|
+
...(result.disposition ? { disposition: result.disposition } : {}),
|
|
28
|
+
...(result.dispositionReason ? { dispositionReason: result.dispositionReason } : {}),
|
|
29
|
+
};
|
|
30
|
+
items.push({ itemId: itemIdOf(draft), ...draft });
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
skipped.push({
|
|
34
|
+
cveId: report.cveId,
|
|
35
|
+
packageName: result.packageName,
|
|
36
|
+
fromVersion: result.fromVersion,
|
|
37
|
+
strategy: result.strategy,
|
|
38
|
+
reason: describeSkip(result),
|
|
39
|
+
...(result.unresolvedReason ? { unresolvedReason: result.unresolvedReason } : {}),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const content = {
|
|
43
|
+
cveIds: [report.cveId],
|
|
44
|
+
base: input.base,
|
|
45
|
+
options: input.options,
|
|
46
|
+
items,
|
|
47
|
+
skipped,
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
schemaVersion: "1",
|
|
51
|
+
planId: `plan_${sha256(canonicalJson(content)).slice(0, 16)}`,
|
|
52
|
+
runId: input.runId,
|
|
53
|
+
createdAt: input.createdAt ?? new Date().toISOString(),
|
|
54
|
+
cwd: input.cwd,
|
|
55
|
+
...content,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function describeSkip(result) {
|
|
59
|
+
if (result.suppressedBy) {
|
|
60
|
+
const source = result.suppressedBy.source === "maintainer-vex" ? " by maintainer VEX" : "";
|
|
61
|
+
return `suppressed${source} (${result.suppressedBy.justification})`;
|
|
62
|
+
}
|
|
63
|
+
if (result.strategy === "patch-file") {
|
|
64
|
+
return "needs a generated patch, which is produced when applied and cannot be previewed exactly";
|
|
65
|
+
}
|
|
66
|
+
return result.message;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/runs/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { RemediationReport } from "../platform/types.js";
|
|
2
|
+
import type { RepoFingerprint } from "./fingerprint.js";
|
|
3
|
+
import { Ledger } from "./ledger.js";
|
|
4
|
+
import type { RemediationPlan } from "./plan.js";
|
|
5
|
+
export type RunStatus = "planned" | "applying" | "applied" | "partial" | "failed" | "rolled-back";
|
|
6
|
+
export interface RunRecord {
|
|
7
|
+
schemaVersion: 1;
|
|
8
|
+
runId: string;
|
|
9
|
+
status: RunStatus;
|
|
10
|
+
cwd: string;
|
|
11
|
+
cveIds: string[];
|
|
12
|
+
source?: string;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
planId?: string;
|
|
16
|
+
/** An agent repaired project source in this run, so a verification must allow source edits. */
|
|
17
|
+
allowSourceEdits?: boolean;
|
|
18
|
+
/** Inputs the plan was made against. */
|
|
19
|
+
base: RepoFingerprint;
|
|
20
|
+
/** Inputs as the last completed step left them; a rollback is only safe while they still match. */
|
|
21
|
+
after?: RepoFingerprint;
|
|
22
|
+
error?: string;
|
|
23
|
+
}
|
|
24
|
+
export type AttemptStatus = "open" | "abandoned" | "verified" | "rejected" | "failed" | "promoted" | "promotion-failed";
|
|
25
|
+
/** One try, by an agent, at making an upgrade work. */
|
|
26
|
+
export interface AttemptRecord {
|
|
27
|
+
attemptId: string;
|
|
28
|
+
itemId: string;
|
|
29
|
+
agentId: string;
|
|
30
|
+
status: AttemptStatus;
|
|
31
|
+
/** What happened, in a sentence: the agent's summary, or why it was rejected. */
|
|
32
|
+
reason: string;
|
|
33
|
+
/** Times the verifier's findings were handed back to the agent. */
|
|
34
|
+
rounds: number;
|
|
35
|
+
changedFiles: string[];
|
|
36
|
+
/** An open attempt's checkout: where a host agent edits. Gone once the attempt is closed. */
|
|
37
|
+
worktreePath?: string;
|
|
38
|
+
inputTokens?: number;
|
|
39
|
+
outputTokens?: number;
|
|
40
|
+
startedAt: string;
|
|
41
|
+
endedAt: string;
|
|
42
|
+
}
|
|
43
|
+
export interface RunInit {
|
|
44
|
+
cwd: string;
|
|
45
|
+
cveIds: string[];
|
|
46
|
+
source?: string;
|
|
47
|
+
planId?: string;
|
|
48
|
+
base: RepoFingerprint;
|
|
49
|
+
status?: RunStatus;
|
|
50
|
+
}
|
|
51
|
+
/** Run records live in `<project>/.autoremediator/runs/<runId>/`. */
|
|
52
|
+
export declare class RunStore {
|
|
53
|
+
readonly cwd: string;
|
|
54
|
+
readonly root: string;
|
|
55
|
+
constructor(cwd: string);
|
|
56
|
+
/** Directory of a run; the id is validated, so it can never point outside `root`. */
|
|
57
|
+
runDir(runId: string): string;
|
|
58
|
+
create(init: RunInit): RunRecord;
|
|
59
|
+
exists(runId: string): boolean;
|
|
60
|
+
load(runId: string): RunRecord;
|
|
61
|
+
update(runId: string, patch: Partial<Omit<RunRecord, "runId" | "schemaVersion">>): RunRecord;
|
|
62
|
+
/** Newest first. Unreadable run directories are skipped rather than failing the listing. */
|
|
63
|
+
list(): RunRecord[];
|
|
64
|
+
ledger(runId: string): Ledger;
|
|
65
|
+
hasFile(runId: string, name: string): boolean;
|
|
66
|
+
/** The run's plan, when it has one. */
|
|
67
|
+
readPlan(runId: string): RemediationPlan | undefined;
|
|
68
|
+
/** The preview report a plan was made from, when the run has one. */
|
|
69
|
+
readReport(runId: string): RemediationReport | undefined;
|
|
70
|
+
/** Directory of one attempt; both ids are validated. */
|
|
71
|
+
attemptDir(runId: string, attemptId: string): string;
|
|
72
|
+
/** An attempt's record and the files that explain it (`diff.patch`, `transcript.jsonl`, ...). */
|
|
73
|
+
writeAttempt(runId: string, record: AttemptRecord, files?: Record<string, string>): void;
|
|
74
|
+
listAttempts(runId: string): AttemptRecord[];
|
|
75
|
+
/** Write atomically (temp file, then rename), so readers never see a half-written file. */
|
|
76
|
+
writeJson(runId: string, name: string, value: unknown): void;
|
|
77
|
+
/**
|
|
78
|
+
* Take the run's apply lock. The lock records the owning process; one whose process has died is
|
|
79
|
+
* taken over, so a crashed apply can be resumed.
|
|
80
|
+
*/
|
|
81
|
+
acquireApplyLock(runId: string): () => void;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=run-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../src/runs/run-store.ts"],"names":[],"mappings":"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"}
|