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,131 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { incident, incidentExitCode, OPTION_DESCRIPTIONS, premortem, renderIncidentMarkdown, } from "../api/index.js";
|
|
3
|
+
import { logJson } from "./output.js";
|
|
4
|
+
import { validateOutputFormat } from "./validators.js";
|
|
5
|
+
export async function runIncident(target, opts) {
|
|
6
|
+
const report = await incident(target, {
|
|
7
|
+
cwd: opts.cwd,
|
|
8
|
+
source: "cli",
|
|
9
|
+
...(opts.plan ? { plan: true } : {}),
|
|
10
|
+
...(opts.offline ? { offline: true } : {}),
|
|
11
|
+
...(opts.intelligenceSnapshot ? { intelligenceSnapshotPath: opts.intelligenceSnapshot } : {}),
|
|
12
|
+
...(opts.policy ? { policy: opts.policy } : {}),
|
|
13
|
+
...(opts.history === false ? { history: false } : {}),
|
|
14
|
+
...(opts.maxCommits ? { maxCommits: opts.maxCommits } : {}),
|
|
15
|
+
...(opts.outputDir ? { outputDir: opts.outputDir } : {}),
|
|
16
|
+
});
|
|
17
|
+
if (opts.outputFormat === "json")
|
|
18
|
+
logJson(report);
|
|
19
|
+
else {
|
|
20
|
+
process.stdout.write(renderIncidentMarkdown(report));
|
|
21
|
+
if (report.files)
|
|
22
|
+
process.stdout.write(`\nWrote ${report.files.markdown} and ${report.files.json}\n`);
|
|
23
|
+
}
|
|
24
|
+
// 0 clear, 3 it was in history but is not locked now, 4 it is locked or installed now.
|
|
25
|
+
process.exitCode = incidentExitCode(report);
|
|
26
|
+
}
|
|
27
|
+
function readTargets(path) {
|
|
28
|
+
let parsed;
|
|
29
|
+
try {
|
|
30
|
+
parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
throw new Error(`Could not read targets file at "${path}": ${error instanceof Error ? error.message : String(error)}`, { cause: error });
|
|
34
|
+
}
|
|
35
|
+
if (!Array.isArray(parsed))
|
|
36
|
+
throw new Error("Targets file must be a JSON array, as for `portfolio`.");
|
|
37
|
+
const targets = [];
|
|
38
|
+
for (const [index, entry] of parsed.entries()) {
|
|
39
|
+
const record = typeof entry === "object" && entry !== null ? entry : {};
|
|
40
|
+
if (typeof record["cwd"] !== "string" || record["cwd"] === "") {
|
|
41
|
+
throw new Error(`Invalid target at index ${index}: cwd is required.`);
|
|
42
|
+
}
|
|
43
|
+
const target = { cwd: record["cwd"] };
|
|
44
|
+
if (typeof record["label"] === "string")
|
|
45
|
+
target.label = record["label"];
|
|
46
|
+
targets.push(target);
|
|
47
|
+
}
|
|
48
|
+
return targets;
|
|
49
|
+
}
|
|
50
|
+
function describePremortem(report) {
|
|
51
|
+
const lines = [
|
|
52
|
+
`Assessed ${report.packages.length} package(s) across ${report.repos.length} repositor${report.repos.length === 1 ? "y" : "ies"}.`,
|
|
53
|
+
];
|
|
54
|
+
for (const entry of report.packages) {
|
|
55
|
+
lines.push(` ${entry.packageName}: ${entry.repoCount} repo(s), ${entry.dependentCount} dependent(s), install scripts ${String(entry.installScript)}${entry.reposWithCiSecrets.length > 0
|
|
56
|
+
? `, CI installs with secrets in ${entry.reposWithCiSecrets.join(", ")}`
|
|
57
|
+
: ""}`);
|
|
58
|
+
}
|
|
59
|
+
for (const note of report.notes)
|
|
60
|
+
lines.push(` note: ${note}`);
|
|
61
|
+
if (report.files)
|
|
62
|
+
lines.push(`Wrote ${report.files.length} file(s):`, ...report.files.map((file) => ` ${file}`));
|
|
63
|
+
else
|
|
64
|
+
lines.push("Pass --output-dir to write the playbooks.");
|
|
65
|
+
return `${lines.join("\n")}\n`;
|
|
66
|
+
}
|
|
67
|
+
export async function runPremortem(opts) {
|
|
68
|
+
if (!opts.targetsFile && !opts.root)
|
|
69
|
+
throw new Error("Give --targets-file <json> or --root <dir>.");
|
|
70
|
+
const report = await premortem({
|
|
71
|
+
...(opts.targetsFile ? { targets: readTargets(opts.targetsFile) } : {}),
|
|
72
|
+
...(opts.root ? { root: opts.root } : {}),
|
|
73
|
+
...(opts.packages
|
|
74
|
+
? {
|
|
75
|
+
packages: opts.packages
|
|
76
|
+
.split(",")
|
|
77
|
+
.map((name) => name.trim())
|
|
78
|
+
.filter((name) => name !== ""),
|
|
79
|
+
}
|
|
80
|
+
: {}),
|
|
81
|
+
...(opts.top ? { top: opts.top } : {}),
|
|
82
|
+
...(opts.rankBy ? { rankBy: opts.rankBy } : {}),
|
|
83
|
+
...(opts.playbooks ? { playbooks: opts.playbooks } : {}),
|
|
84
|
+
...(opts.outputDir ? { outputDir: opts.outputDir } : {}),
|
|
85
|
+
});
|
|
86
|
+
if (opts.outputFormat === "json")
|
|
87
|
+
logJson(report);
|
|
88
|
+
else
|
|
89
|
+
process.stdout.write(describePremortem(report));
|
|
90
|
+
}
|
|
91
|
+
/** Register `incident` and `premortem`. */
|
|
92
|
+
export function registerIncidentCommands(program) {
|
|
93
|
+
program
|
|
94
|
+
.command("incident <target>")
|
|
95
|
+
.description("A package was compromised: is it here, when did it enter and leave git history, roll back to the last safe version, and which secrets to rotate. Target is an advisory id (MAL-, GHSA-, CVE-) or package@range. Exits 0 clear, 3 in history only, 4 locked now")
|
|
96
|
+
.option("--cwd <path>", OPTION_DESCRIPTIONS.cwd, process.cwd())
|
|
97
|
+
.option("--plan", "Record the rollback as a plan (never applied); review it with `runs show` and apply with `runs apply`")
|
|
98
|
+
.option("--offline", "No network: no advisory lookup and no registry (an id then needs --intelligence-snapshot)")
|
|
99
|
+
.option("--intelligence-snapshot <path>", OPTION_DESCRIPTIONS.intelligenceSnapshotPath)
|
|
100
|
+
.option("--policy <path>", OPTION_DESCRIPTIONS.policy)
|
|
101
|
+
.option("--no-history", "Do not read git history")
|
|
102
|
+
.option("--max-commits <n>", "Most lockfile commits to read from history, newest first (default 500)", (value) => Number.parseInt(value, 10))
|
|
103
|
+
.option("--output-dir <dir>", "Write incident-report.md and incident-report.json into this directory")
|
|
104
|
+
.option("--output-format <format>", "Output format: text|json", "text")
|
|
105
|
+
.action(async (target, opts) => {
|
|
106
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "incident");
|
|
107
|
+
await runIncident(target, opts);
|
|
108
|
+
});
|
|
109
|
+
program
|
|
110
|
+
.command("premortem")
|
|
111
|
+
.description("What if a package is compromised tomorrow? Across repositories: who locks it, which versions, install scripts, CI installs with secrets in reach. With --output-dir, writes playbooks with the commands to run on the day")
|
|
112
|
+
.option("--targets-file <path>", "Repositories as a JSON array of { cwd, label? }, the portfolio targets format")
|
|
113
|
+
.option("--root <dir>", "Find the repositories (a .git next to a package.json) under this directory")
|
|
114
|
+
.option("--packages <list>", "Packages to assess, comma-separated (default: the most depended-upon ones)")
|
|
115
|
+
.option("--top <n>", "With no --packages: how many to pick (default 10)", (value) => Number.parseInt(value, 10))
|
|
116
|
+
.option("--rank-by <how>", "depended-upon (default) or privileged (packages with install scripts first)")
|
|
117
|
+
.option("--playbooks <kind>", "One playbook per repo (default) or per package")
|
|
118
|
+
.option("--output-dir <dir>", "Write premortem.md, premortem.json and the playbooks into this directory; commit them")
|
|
119
|
+
.option("--output-format <format>", "Output format: text|json", "text")
|
|
120
|
+
.action(async (opts) => {
|
|
121
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "premortem");
|
|
122
|
+
if (opts.rankBy && !["depended-upon", "privileged"].includes(opts.rankBy)) {
|
|
123
|
+
throw new Error(`--rank-by must be depended-upon or privileged, not "${opts.rankBy}".`);
|
|
124
|
+
}
|
|
125
|
+
if (opts.playbooks && !["repo", "package"].includes(opts.playbooks)) {
|
|
126
|
+
throw new Error(`--playbooks must be repo or package, not "${opts.playbooks}".`);
|
|
127
|
+
}
|
|
128
|
+
await runPremortem(opts);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=incident-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incident-commands.js","sourceRoot":"","sources":["../../src/cli/incident-commands.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { EXIT_CODES } from "../api/reporting.js";
|
|
2
3
|
import { isEntrypoint } from "../platform/entrypoint.js";
|
|
4
|
+
import { formatCliError, wantsJson } from "./errors.js";
|
|
3
5
|
import { createProgram as createCliProgram } from "./program.js";
|
|
4
6
|
export function createProgram() {
|
|
5
7
|
return createCliProgram();
|
|
@@ -10,9 +12,8 @@ async function main(argv = process.argv) {
|
|
|
10
12
|
}
|
|
11
13
|
if (isEntrypoint(import.meta.url)) {
|
|
12
14
|
main().catch((error) => {
|
|
13
|
-
|
|
14
|
-
process.
|
|
15
|
-
process.exit(1);
|
|
15
|
+
process.stderr.write(formatCliError(error, wantsJson(process.argv)));
|
|
16
|
+
process.exit(EXIT_CODES.failed);
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IACrC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,UAAU,aAAa;IAC3B,OAAO,gBAAgB,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI;IACrC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import { type MaintainOptions, type MaintainResult, type MaintainerVexReport } from "../api/index.js";
|
|
3
|
+
interface MaintainCliOptions {
|
|
4
|
+
cwd: string;
|
|
5
|
+
advisories?: string;
|
|
6
|
+
assertNotAffected?: boolean;
|
|
7
|
+
traceFile?: string;
|
|
8
|
+
policy?: string;
|
|
9
|
+
packageManager?: MaintainOptions["packageManager"];
|
|
10
|
+
offline?: boolean;
|
|
11
|
+
intelligenceSnapshot?: string;
|
|
12
|
+
nextVersion?: string;
|
|
13
|
+
yes?: boolean;
|
|
14
|
+
outputFormat: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function describeMaintain(result: MaintainResult): string;
|
|
17
|
+
export declare function runMaintain(opts: MaintainCliOptions): Promise<void>;
|
|
18
|
+
export declare function describeVexShow(report: MaintainerVexReport): string;
|
|
19
|
+
/** Register `maintain` and `vex show`. */
|
|
20
|
+
export declare function registerMaintainCommands(program: Command): void;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=maintain-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintain-commands.d.ts","sourceRoot":"","sources":["../../src/cli/maintain-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAIzB,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AASD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4B/D;AAWD,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DzE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAgCnE;AAED,0CAA0C;AAC1C,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD/D"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { createInterface } from "node:readline/promises";
|
|
2
|
+
import { EXIT_CODES, maintain, OPTION_DESCRIPTIONS, readMaintainerVex, } from "../api/index.js";
|
|
3
|
+
import { logJson } from "./output.js";
|
|
4
|
+
import { validateOutputFormat } from "./validators.js";
|
|
5
|
+
export function describeMaintain(result) {
|
|
6
|
+
const lines = [
|
|
7
|
+
`Maintaining ${result.package.name}@${result.package.version}${result.nextVersion ? ` (next release ${result.nextVersion})` : ""}`,
|
|
8
|
+
];
|
|
9
|
+
if (result.advisories.length === 0)
|
|
10
|
+
lines.push("No advisories found for this project's dependencies.");
|
|
11
|
+
for (const advisory of result.advisories) {
|
|
12
|
+
lines.push(` ${advisory.id}${advisory.severity ? ` [${advisory.severity}]` : ""}: ${advisory.decision}`, ` ${advisory.reason}`);
|
|
13
|
+
for (const entry of advisory.packages) {
|
|
14
|
+
lines.push(` - ${entry.name}@${entry.version} (${entry.scope})${entry.reachability ? `, ${entry.reachability}` : ""}`);
|
|
15
|
+
}
|
|
16
|
+
if (advisory.plan) {
|
|
17
|
+
lines.push(advisory.plan.items.length > 0
|
|
18
|
+
? ` bump plan: ${advisory.plan.items.map((item) => `${item.packageName} ${item.fromVersion} -> ${item.toVersion}`).join(", ")}${advisory.plan.runId ? ` (run ${advisory.plan.runId}; review with \`runs show\`, apply with \`runs apply\`)` : " (not recorded; --yes records it)"}`
|
|
19
|
+
: " bump plan: no version change available");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
for (const change of result.changes)
|
|
23
|
+
lines.push(` ${change.action.padEnd(9)} ${change.path}: ${change.reason}`);
|
|
24
|
+
for (const note of result.notes)
|
|
25
|
+
lines.push(` note: ${note}`);
|
|
26
|
+
return lines.join("\n");
|
|
27
|
+
}
|
|
28
|
+
async function confirm(question) {
|
|
29
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
30
|
+
try {
|
|
31
|
+
return /^y(es)?$/i.test((await rl.question(question)).trim());
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
rl.close();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export async function runMaintain(opts) {
|
|
38
|
+
const base = {
|
|
39
|
+
cwd: opts.cwd,
|
|
40
|
+
source: "cli",
|
|
41
|
+
...(opts.advisories
|
|
42
|
+
? {
|
|
43
|
+
advisories: opts.advisories
|
|
44
|
+
.split(",")
|
|
45
|
+
.map((id) => id.trim())
|
|
46
|
+
.filter((id) => id !== ""),
|
|
47
|
+
}
|
|
48
|
+
: {}),
|
|
49
|
+
...(opts.assertNotAffected ? { assertNotAffected: true } : {}),
|
|
50
|
+
...(opts.traceFile ? { traceFile: opts.traceFile } : {}),
|
|
51
|
+
...(opts.policy ? { policy: opts.policy } : {}),
|
|
52
|
+
...(opts.packageManager ? { packageManager: opts.packageManager } : {}),
|
|
53
|
+
...(opts.offline ? { offlineIntelligence: true } : {}),
|
|
54
|
+
...(opts.intelligenceSnapshot ? { intelligenceSnapshotPath: opts.intelligenceSnapshot } : {}),
|
|
55
|
+
...(opts.nextVersion ? { nextVersion: opts.nextVersion } : {}),
|
|
56
|
+
};
|
|
57
|
+
let result = await maintain({ ...base, yes: opts.yes });
|
|
58
|
+
const json = opts.outputFormat === "json";
|
|
59
|
+
const interactive = !json && !opts.yes && process.stdin.isTTY && process.stdout.isTTY;
|
|
60
|
+
if (!json) {
|
|
61
|
+
process.stdout.write(`${describeMaintain(result)}\n`);
|
|
62
|
+
if (!result.applied) {
|
|
63
|
+
for (const change of result.changes) {
|
|
64
|
+
if (change.diff)
|
|
65
|
+
process.stdout.write(`\n${change.diff}\n`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (interactive && result.drift) {
|
|
70
|
+
if (await confirm(`\nWrite ${result.changes.filter((change) => change.diff).length} file(s)? [y/N] `)) {
|
|
71
|
+
result = await maintain({ ...base, yes: true });
|
|
72
|
+
process.stdout.write("Written. Nothing was published or pushed: review, commit and release as usual.\n");
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (json)
|
|
77
|
+
logJson(result);
|
|
78
|
+
else if (result.applied) {
|
|
79
|
+
process.stdout.write("\nWritten. Nothing was published or pushed: review, commit and release as usual.\n");
|
|
80
|
+
}
|
|
81
|
+
else if (result.drift)
|
|
82
|
+
process.stdout.write("\nNothing written. Run again with --yes to apply.\n");
|
|
83
|
+
else
|
|
84
|
+
process.stdout.write("\nNothing to change.\n");
|
|
85
|
+
if (result.conflicts.length > 0)
|
|
86
|
+
process.exitCode = EXIT_CODES.failed;
|
|
87
|
+
else if (!result.applied && result.drift)
|
|
88
|
+
process.exitCode = EXIT_CODES.needsApproval;
|
|
89
|
+
}
|
|
90
|
+
export function describeVexShow(report) {
|
|
91
|
+
const lines = [
|
|
92
|
+
`Read ${report.scanned} installed package(s): ${report.packages.length} ship usable VEX, ${report.rejected.length} declaration(s) rejected.`,
|
|
93
|
+
];
|
|
94
|
+
for (const entry of report.packages) {
|
|
95
|
+
lines.push(`${entry.name}@${entry.version} ${entry.file} (author ${entry.author}, ${entry.timestamp})`);
|
|
96
|
+
for (const statement of entry.statements) {
|
|
97
|
+
const about = statement.subcomponents.length > 0 ? ` about ${statement.subcomponents.join(", ")}` : "";
|
|
98
|
+
lines.push(` ${statement.vulnerability}${about}: ${statement.status}${statement.justification ? ` (${statement.justification})` : ""}`);
|
|
99
|
+
if (statement.impactStatement)
|
|
100
|
+
lines.push(` ${statement.impactStatement}`);
|
|
101
|
+
if (statement.statusNotes)
|
|
102
|
+
lines.push(` ${statement.statusNotes}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
for (const entry of report.rejected) {
|
|
106
|
+
lines.push(`rejected ${entry.package}${entry.version ? `@${entry.version}` : ""}: ${entry.reason}`);
|
|
107
|
+
}
|
|
108
|
+
if (report.own.declared) {
|
|
109
|
+
lines.push(`This project: package.json#vex -> ${report.own.file ?? "(invalid)"}: ${report.own.status}${report.own.statements === undefined ? "" : `, ${report.own.statements} statement(s)`}${report.own.reason ? `. ${report.own.reason}` : ""}`);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
lines.push("This project declares no package.json#vex.");
|
|
113
|
+
}
|
|
114
|
+
for (const note of report.notes)
|
|
115
|
+
lines.push(`note: ${note}`);
|
|
116
|
+
return lines.join("\n");
|
|
117
|
+
}
|
|
118
|
+
/** Register `maintain` and `vex show`. */
|
|
119
|
+
export function registerMaintainCommands(program) {
|
|
120
|
+
program
|
|
121
|
+
.command("maintain")
|
|
122
|
+
.description("For package authors: assess advisories in your dependencies against your own code and prepare (never publish or push) a bump plan, a changeset and an OpenVEX statement shipped in the package. Shows a diff; writes only with --yes or after you confirm")
|
|
123
|
+
.option("--cwd <path>", OPTION_DESCRIPTIONS.cwd, process.cwd())
|
|
124
|
+
.option("--advisories <list>", "CVE or GHSA ids to assess, comma-separated (default: the package manager's audit)")
|
|
125
|
+
.option("--assert-not-affected", "Vouch for the static scan: unreachable dependencies are written as not_affected instead of under_investigation")
|
|
126
|
+
.option("--trace-file <path>", "A runtime trace from `trace run`, added to the static evidence")
|
|
127
|
+
.option("--policy <path>", OPTION_DESCRIPTIONS.policy)
|
|
128
|
+
.option("--package-manager <name>", OPTION_DESCRIPTIONS.packageManager)
|
|
129
|
+
.option("--offline", "No network: needs --advisories and --intelligence-snapshot")
|
|
130
|
+
.option("--intelligence-snapshot <path>", OPTION_DESCRIPTIONS.intelligenceSnapshotPath)
|
|
131
|
+
.option("--next-version <version>", "The exact version the next release will have (default: derived from pending changesets, else the next patch)")
|
|
132
|
+
.option("--yes", "Write the changes without asking")
|
|
133
|
+
.option("--output-format <format>", "Output format: text|json", "text")
|
|
134
|
+
.action(async (opts) => {
|
|
135
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "maintain");
|
|
136
|
+
await runMaintain(opts);
|
|
137
|
+
});
|
|
138
|
+
const vex = program
|
|
139
|
+
.command("vex")
|
|
140
|
+
.description("Inspect the OpenVEX documents that packages ship (package.json#vex)");
|
|
141
|
+
vex
|
|
142
|
+
.command("show")
|
|
143
|
+
.description("List the VEX documents shipped by installed packages (validated, untrusted input) and check this project's own")
|
|
144
|
+
.option("--cwd <path>", OPTION_DESCRIPTIONS.cwd, process.cwd())
|
|
145
|
+
.option("--advisory <id>", "Only statements that name this CVE or GHSA id")
|
|
146
|
+
.option("--package <name>", "Only the document shipped by this package")
|
|
147
|
+
.option("--output-format <format>", "Output format: text|json", "text")
|
|
148
|
+
.action((opts) => {
|
|
149
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "vex show");
|
|
150
|
+
const report = readMaintainerVex({
|
|
151
|
+
cwd: opts.cwd,
|
|
152
|
+
...(opts.advisory ? { advisory: opts.advisory } : {}),
|
|
153
|
+
...(opts.package ? { packageName: opts.package } : {}),
|
|
154
|
+
});
|
|
155
|
+
if (opts.outputFormat === "json")
|
|
156
|
+
logJson(report);
|
|
157
|
+
else
|
|
158
|
+
process.stdout.write(`${describeVexShow(report)}\n`);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=maintain-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintain-commands.js","sourceRoot":"","sources":["../../src/cli/maintain-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** `autoremediator memory list | add | remove | accept | prune`. See docs/guides/memory.md. */
|
|
2
|
+
import type { Command } from "commander";
|
|
3
|
+
import { type MemoryEntry, type MemoryKind, type NewMemoryEntry } from "../api/index.js";
|
|
4
|
+
interface MemoryCliOptions {
|
|
5
|
+
cwd: string;
|
|
6
|
+
outputFormat: "text" | "json";
|
|
7
|
+
kind?: string;
|
|
8
|
+
state?: string;
|
|
9
|
+
note?: string;
|
|
10
|
+
reason?: string;
|
|
11
|
+
from?: string;
|
|
12
|
+
to?: string;
|
|
13
|
+
by?: string;
|
|
14
|
+
expiresInDays?: number;
|
|
15
|
+
}
|
|
16
|
+
/** What an entry says, on one line. */
|
|
17
|
+
export declare function describeEntry(entry: MemoryEntry): string;
|
|
18
|
+
/** The entry `memory add <kind> <value>` describes. */
|
|
19
|
+
export declare function entryFromArguments(kind: MemoryKind, value: string, opts: MemoryCliOptions): NewMemoryEntry;
|
|
20
|
+
/** Register `memory`. */
|
|
21
|
+
export declare function registerMemoryCommands(program: Command): void;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=memory-commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-commands.d.ts","sourceRoot":"","sources":["../../src/cli/memory-commands.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EAIpB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,uCAAuC;AACvC,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAsBxD;AAYD,uDAAuD;AACvD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,gBAAgB,GACrB,cAAc,CAoChB;AAED,yBAAyB;AACzB,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G7D"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { acceptMemory, addMemory, listMemory, OPTION_DESCRIPTIONS, pruneMemory, removeMemory, } from "../api/index.js";
|
|
2
|
+
import { MEMORY_KINDS, unreachable } from "../platform/memory/entries.js";
|
|
3
|
+
import { logJson } from "./output.js";
|
|
4
|
+
import { validateOutputFormat } from "./validators.js";
|
|
5
|
+
const out = (text) => process.stdout.write(`${text}\n`);
|
|
6
|
+
const common = (command) => command
|
|
7
|
+
.option("--cwd <path>", OPTION_DESCRIPTIONS.cwd, process.cwd())
|
|
8
|
+
.option("--output-format <format>", "Output format: text|json", "text");
|
|
9
|
+
/** What an entry says, on one line. */
|
|
10
|
+
export function describeEntry(entry) {
|
|
11
|
+
switch (entry.kind) {
|
|
12
|
+
case "test-command": {
|
|
13
|
+
return entry.command;
|
|
14
|
+
}
|
|
15
|
+
case "flaky-test": {
|
|
16
|
+
return entry.note ? `${entry.test} (${entry.note})` : entry.test;
|
|
17
|
+
}
|
|
18
|
+
case "pinned-package": {
|
|
19
|
+
return `${entry.package}: ${entry.reason}`;
|
|
20
|
+
}
|
|
21
|
+
case "rejected-upgrade": {
|
|
22
|
+
return `${entry.package} ${entry.fromVersion ? `${entry.fromVersion} -> ` : "-> "}${entry.toVersion}: ${entry.reason}`;
|
|
23
|
+
}
|
|
24
|
+
case "install-quirk":
|
|
25
|
+
case "note": {
|
|
26
|
+
return entry.text;
|
|
27
|
+
}
|
|
28
|
+
default: {
|
|
29
|
+
return unreachable(entry);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const day = (iso) => iso.slice(0, 10);
|
|
34
|
+
function parseKind(value) {
|
|
35
|
+
if (value === undefined)
|
|
36
|
+
return undefined;
|
|
37
|
+
if (!MEMORY_KINDS.includes(value)) {
|
|
38
|
+
throw new Error(`Unknown kind "${value}". Use one of: ${MEMORY_KINDS.join(", ")}.`);
|
|
39
|
+
}
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
/** The entry `memory add <kind> <value>` describes. */
|
|
43
|
+
export function entryFromArguments(kind, value, opts) {
|
|
44
|
+
const needs = (flag, given) => {
|
|
45
|
+
if (!given)
|
|
46
|
+
throw new Error(`${kind} needs ${flag}.`);
|
|
47
|
+
return given;
|
|
48
|
+
};
|
|
49
|
+
const source = opts.by ? `human:${opts.by}` : undefined;
|
|
50
|
+
const expires = opts.expiresInDays === undefined ? {} : { expiresInDays: opts.expiresInDays };
|
|
51
|
+
const envelope = { ...(source ? { source } : {}), ...expires };
|
|
52
|
+
switch (kind) {
|
|
53
|
+
case "test-command": {
|
|
54
|
+
return { kind, command: value, ...envelope };
|
|
55
|
+
}
|
|
56
|
+
case "flaky-test": {
|
|
57
|
+
return { kind, test: value, ...(opts.note ? { note: opts.note } : {}), ...envelope };
|
|
58
|
+
}
|
|
59
|
+
case "pinned-package": {
|
|
60
|
+
return { kind, package: value, reason: needs("--reason", opts.reason), ...envelope };
|
|
61
|
+
}
|
|
62
|
+
case "rejected-upgrade": {
|
|
63
|
+
return {
|
|
64
|
+
kind,
|
|
65
|
+
package: value,
|
|
66
|
+
toVersion: needs("--to <version>", opts.to),
|
|
67
|
+
reason: needs("--reason", opts.reason),
|
|
68
|
+
...(opts.from ? { fromVersion: opts.from } : {}),
|
|
69
|
+
...envelope,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
case "install-quirk":
|
|
73
|
+
case "note": {
|
|
74
|
+
return { kind, text: value, ...envelope };
|
|
75
|
+
}
|
|
76
|
+
default: {
|
|
77
|
+
return unreachable(kind);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/** Register `memory`. */
|
|
82
|
+
export function registerMemoryCommands(program) {
|
|
83
|
+
const memory = program
|
|
84
|
+
.command("memory")
|
|
85
|
+
.description("Remediation memory (.autoremediator/memory.md): what this repository has learned between runs, as short validated entries a person can review and edit");
|
|
86
|
+
common(memory
|
|
87
|
+
.command("list")
|
|
88
|
+
.description("List what the repository remembers, what is in force and what is only proposed")
|
|
89
|
+
.option("--kind <kind>", `Only this kind: ${MEMORY_KINDS.join("|")}`)
|
|
90
|
+
.option("--state <state>", "Only entries that are active, proposed or expired")).action((opts) => {
|
|
91
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "memory list");
|
|
92
|
+
const kind = parseKind(opts.kind);
|
|
93
|
+
if (opts.state && !["active", "proposed", "expired"].includes(opts.state)) {
|
|
94
|
+
throw new Error(`--state must be active, proposed or expired, not "${opts.state}".`);
|
|
95
|
+
}
|
|
96
|
+
const listing = listMemory({
|
|
97
|
+
cwd: opts.cwd,
|
|
98
|
+
...(kind ? { kind } : {}),
|
|
99
|
+
...(opts.state ? { state: opts.state } : {}),
|
|
100
|
+
});
|
|
101
|
+
if (opts.outputFormat === "json") {
|
|
102
|
+
logJson(listing);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
out(`${listing.path}: ${listing.counts.active} active, ${listing.counts.proposed} proposed, ${listing.counts.expired} expired (room for ${listing.limits.maxEntries - listing.counts.total} more)`);
|
|
106
|
+
if (!listing.exists)
|
|
107
|
+
out("No memory file yet. `autoremediator memory add` creates it.");
|
|
108
|
+
for (const entry of listing.entries) {
|
|
109
|
+
const expiry = entry.expiresAt ? `, expires ${day(entry.expiresAt)}` : "";
|
|
110
|
+
out(` ${entry.id} ${entry.state.padEnd(8)} ${entry.kind.padEnd(16)} ${describeEntry(entry)} [${entry.source}, ${day(entry.createdAt)}${expiry}]`);
|
|
111
|
+
}
|
|
112
|
+
if (listing.counts.proposed > 0) {
|
|
113
|
+
out("Proposed entries do nothing until accepted: `autoremediator memory accept <id>`.");
|
|
114
|
+
}
|
|
115
|
+
for (const problem of listing.problems)
|
|
116
|
+
out(` problem: ${problem}`);
|
|
117
|
+
});
|
|
118
|
+
common(memory
|
|
119
|
+
.command("add <kind> <value>")
|
|
120
|
+
.description(`Record a fact. kind: ${MEMORY_KINDS.join(", ")}. value is the command, test, package name or text`)
|
|
121
|
+
.option("--reason <text>", "pinned-package and rejected-upgrade: why")
|
|
122
|
+
.option("--note <text>", "flaky-test: an optional note")
|
|
123
|
+
.option("--from <version>", "rejected-upgrade: the version the project was on")
|
|
124
|
+
.option("--to <version>", "rejected-upgrade: the rejected version, which the planner will not propose again")
|
|
125
|
+
.option("--by <name>", "Who is recording this (default: human)")
|
|
126
|
+
.option("--expires-in-days <n>", "Stop counting this entry after n days", (value) => Number.parseInt(value, 10))).action(async (kindArg, value, opts) => {
|
|
127
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "memory add");
|
|
128
|
+
const kind = parseKind(kindArg);
|
|
129
|
+
const report = await addMemory({ cwd: opts.cwd, ...entryFromArguments(kind, value, opts) });
|
|
130
|
+
if (opts.outputFormat === "json") {
|
|
131
|
+
logJson(report);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
out(report.created
|
|
135
|
+
? `Recorded ${report.entry.id}: ${describeEntry(report.entry)}`
|
|
136
|
+
: `Already recorded as ${report.entry.id}; remove it first to change it.`);
|
|
137
|
+
for (const id of report.evicted)
|
|
138
|
+
out(`Made room by dropping ${id}.`);
|
|
139
|
+
});
|
|
140
|
+
common(memory.command("remove <id>").description("Delete an entry")).action(async (id, opts) => {
|
|
141
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "memory remove");
|
|
142
|
+
const { removed } = await removeMemory({ cwd: opts.cwd, id });
|
|
143
|
+
if (opts.outputFormat === "json")
|
|
144
|
+
logJson({ removed });
|
|
145
|
+
else
|
|
146
|
+
out(`Removed ${removed.id}: ${describeEntry(removed)}`);
|
|
147
|
+
});
|
|
148
|
+
common(memory
|
|
149
|
+
.command("accept <id>")
|
|
150
|
+
.description("Accept an entry an agent proposed, so it takes effect")).action(async (id, opts) => {
|
|
151
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "memory accept");
|
|
152
|
+
const { accepted, alreadyActive } = await acceptMemory({ cwd: opts.cwd, id });
|
|
153
|
+
if (opts.outputFormat === "json")
|
|
154
|
+
logJson({ accepted, alreadyActive });
|
|
155
|
+
else
|
|
156
|
+
out(alreadyActive
|
|
157
|
+
? `${accepted.id} was already in force.`
|
|
158
|
+
: `Accepted ${accepted.id}: ${describeEntry(accepted)}`);
|
|
159
|
+
});
|
|
160
|
+
common(memory.command("prune").description("Remove expired entries")).action(async (opts) => {
|
|
161
|
+
validateOutputFormat(opts.outputFormat, ["text", "json"], "memory prune");
|
|
162
|
+
const { removed } = await pruneMemory({ cwd: opts.cwd });
|
|
163
|
+
if (opts.outputFormat === "json")
|
|
164
|
+
logJson({ removed });
|
|
165
|
+
else if (removed.length === 0)
|
|
166
|
+
out("Nothing has expired.");
|
|
167
|
+
else
|
|
168
|
+
for (const entry of removed)
|
|
169
|
+
out(`Removed ${entry.id}: ${describeEntry(entry)}`);
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=memory-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-commands.js","sourceRoot":"","sources":["../../src/cli/memory-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import { type CompilePolicyOptions, type ExplainPolicyResult, type PolicyCompileResult } from "../api/index.js";
|
|
3
|
+
export interface PolicyCompileCliOptions {
|
|
4
|
+
cwd: string;
|
|
5
|
+
policy?: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
yes?: boolean;
|
|
8
|
+
allowLoosening?: boolean;
|
|
9
|
+
outputFormat: "text" | "json";
|
|
10
|
+
/** Test seam: where to read the confirmation from. */
|
|
11
|
+
confirm?: (question: string) => Promise<boolean>;
|
|
12
|
+
/** Test seam: replaces the model (SDK `proposer`). */
|
|
13
|
+
compileOptions?: Partial<CompilePolicyOptions>;
|
|
14
|
+
/** Test seam: whether a person is at a terminal. */
|
|
15
|
+
interactive?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface PolicyExplainCliOptions {
|
|
18
|
+
cwd: string;
|
|
19
|
+
policy?: string;
|
|
20
|
+
outputFormat: "text" | "json";
|
|
21
|
+
}
|
|
22
|
+
/** The proposal as text for a reviewer: what changes, why, what was left out, what got looser. */
|
|
23
|
+
export declare function describeCompile(result: PolicyCompileResult): string;
|
|
24
|
+
export declare function describeExplain(result: ExplainPolicyResult): string;
|
|
25
|
+
export declare function runPolicyCompile(words: string[], opts: PolicyCompileCliOptions): Promise<void>;
|
|
26
|
+
export declare function runPolicyExplain(opts: PolicyExplainCliOptions): void;
|
|
27
|
+
/** Register `policy compile` and `policy explain`. */
|
|
28
|
+
export declare function registerPolicyCommands(program: Command): void;
|
|
29
|
+
//# sourceMappingURL=policy-commands.d.ts.map
|