@intentius/chant 0.124.26 → 0.124.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/__golden__/wave-loop/fan-out-gated.json +8 -0
- package/dist/__golden__/wave-loop/fan-out-no-members.json +4 -0
- package/dist/__golden__/wave-loop/fan-out-only.json +6 -0
- package/dist/__golden__/wave-loop/op-by-apply-hold.json +2 -0
- package/dist/__golden__/wave-loop/op-cost-member.json +3 -0
- package/dist/__golden__/wave-loop/op-held-on-before-apply.json +1 -0
- package/dist/__golden__/wave-loop/op-held-on.json +2 -0
- package/dist/__golden__/wave-loop/op-hooks-held.json +2 -0
- package/dist/__golden__/wave-loop/op-hooks-hold-before-apply.json +2 -0
- package/dist/__golden__/wave-loop/op-hooks-refused-at-base.json +3 -0
- package/dist/__golden__/wave-loop/op-hooks-share.json +3 -0
- package/dist/__golden__/wave-loop/op-per-run.json +7 -0
- package/dist/__golden__/wave-loop/op-pr-review.json +7 -0
- package/dist/__golden__/wave-loop/op-sealed.json +3 -0
- package/dist/__golden__/wave-loop/op-spend.json +3 -0
- package/dist/__golden__/wave-loop/op-wave-commands.json +7 -0
- package/dist/__golden__/wave-loop/op-wide-waiting.json +4 -0
- package/dist/change-set-graph.d.ts +56 -0
- package/dist/change-set-graph.d.ts.map +1 -0
- package/dist/change-set-graph.js +128 -0
- package/dist/change-set.d.ts +52 -3
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +35 -4
- package/dist/chant-version.d.ts +9 -0
- package/dist/chant-version.d.ts.map +1 -0
- package/dist/chant-version.js +16 -0
- package/dist/cli/commands/build.d.ts +8 -0
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +9 -8
- package/dist/cli/commands/check-lexicon-docs.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon-docs.js +30 -2
- package/dist/cli/commands/check-lexicon.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon.js +13 -2
- package/dist/cli/commands/init-lexicon/templates/docs.d.ts +4 -1
- package/dist/cli/commands/init-lexicon/templates/docs.d.ts.map +1 -1
- package/dist/cli/commands/init-lexicon/templates/docs.js +6 -6
- package/dist/cli/commands/init-lexicon.d.ts.map +1 -1
- package/dist/cli/commands/init-lexicon.js +17 -8
- package/dist/cli/handlers/approve.d.ts.map +1 -1
- package/dist/cli/handlers/approve.js +19 -4
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/build.js +28 -0
- package/dist/cli/handlers/change-set.d.ts +10 -0
- package/dist/cli/handlers/change-set.d.ts.map +1 -1
- package/dist/cli/handlers/change-set.js +51 -1
- package/dist/cli/handlers/fan-out.d.ts +1 -1
- package/dist/cli/handlers/fan-out.d.ts.map +1 -1
- package/dist/cli/handlers/fan-out.js +14 -3
- package/dist/cli/handlers/pr.d.ts +8 -2
- package/dist/cli/handlers/pr.d.ts.map +1 -1
- package/dist/cli/handlers/pr.js +148 -24
- package/dist/cli/handlers/promote.d.ts.map +1 -1
- package/dist/cli/handlers/promote.js +256 -21
- package/dist/cli/handlers/release.d.ts +34 -0
- package/dist/cli/handlers/release.d.ts.map +1 -0
- package/dist/cli/handlers/release.js +203 -0
- package/dist/cli/handlers/run.d.ts +28 -2
- package/dist/cli/handlers/run.d.ts.map +1 -1
- package/dist/cli/handlers/run.js +170 -13
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +88 -13
- package/dist/cli/mcp/workspace-tools.js +1 -1
- package/dist/cli/parse-args.d.ts.map +1 -1
- package/dist/cli/parse-args.js +49 -3
- package/dist/cli/registry.d.ts +29 -3
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/run-events.d.ts +29 -0
- package/dist/cli/run-events.d.ts.map +1 -0
- package/dist/cli/run-events.js +47 -0
- package/dist/cli/version.d.ts +3 -5
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +3 -13
- package/dist/codegen/docs-in-site.d.ts +71 -0
- package/dist/codegen/docs-in-site.d.ts.map +1 -0
- package/dist/codegen/docs-in-site.js +177 -0
- package/dist/codegen/docs-types.d.ts +14 -1
- package/dist/codegen/docs-types.d.ts.map +1 -1
- package/dist/codegen/docs.d.ts +18 -1
- package/dist/codegen/docs.d.ts.map +1 -1
- package/dist/codegen/docs.js +40 -7
- package/dist/codegen/rehype-base-url.mjs +15 -9
- package/dist/components/auto-release.d.ts +4 -1
- package/dist/components/auto-release.d.ts.map +1 -1
- package/dist/components/auto-release.js +2 -0
- package/dist/components/cli-support.d.ts +6 -0
- package/dist/components/cli-support.d.ts.map +1 -1
- package/dist/components/cli-support.js +10 -9
- package/dist/components/driver.d.ts +42 -9
- package/dist/components/driver.d.ts.map +1 -1
- package/dist/components/driver.js +81 -54
- package/dist/components/fan-out-run.d.ts +7 -0
- package/dist/components/fan-out-run.d.ts.map +1 -1
- package/dist/components/fan-out-run.js +35 -26
- package/dist/components/pr-run.d.ts +11 -0
- package/dist/components/pr-run.d.ts.map +1 -1
- package/dist/components/pr-run.js +20 -1
- package/dist/components/promote-order.d.ts +38 -0
- package/dist/components/promote-order.d.ts.map +1 -0
- package/dist/components/promote-order.js +62 -0
- package/dist/components/promote.d.ts +15 -2
- package/dist/components/promote.d.ts.map +1 -1
- package/dist/components/promote.js +17 -0
- package/dist/components/release-compile.d.ts +133 -0
- package/dist/components/release-compile.d.ts.map +1 -0
- package/dist/components/release-compile.js +376 -0
- package/dist/components/release-gate.d.ts +125 -0
- package/dist/components/release-gate.d.ts.map +1 -0
- package/dist/components/release-gate.js +282 -0
- package/dist/components/release-promote.d.ts +96 -0
- package/dist/components/release-promote.d.ts.map +1 -0
- package/dist/components/release-promote.js +204 -0
- package/dist/components/run-progress.d.ts +7 -0
- package/dist/components/run-progress.d.ts.map +1 -1
- package/dist/components/wave-plan.d.ts +3 -1
- package/dist/components/wave-plan.d.ts.map +1 -1
- package/dist/components/wave-plan.js +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/lifecycle/change-set-store.d.ts +67 -0
- package/dist/lifecycle/change-set-store.d.ts.map +1 -0
- package/dist/lifecycle/change-set-store.js +96 -0
- package/dist/lifecycle/commit-sha.d.ts +13 -0
- package/dist/lifecycle/commit-sha.d.ts.map +1 -0
- package/dist/lifecycle/commit-sha.js +21 -0
- package/dist/lifecycle/gate-change-set.d.ts +69 -0
- package/dist/lifecycle/gate-change-set.d.ts.map +1 -0
- package/dist/lifecycle/gate-change-set.js +106 -0
- package/dist/lifecycle/gate-ledger.d.ts +49 -1
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.js +18 -0
- package/dist/lifecycle/release-cut.d.ts +107 -0
- package/dist/lifecycle/release-cut.d.ts.map +1 -0
- package/dist/lifecycle/release-cut.js +273 -0
- package/dist/lifecycle/release-ledger.d.ts +54 -0
- package/dist/lifecycle/release-ledger.d.ts.map +1 -1
- package/dist/lifecycle/release-ledger.js +53 -20
- package/dist/lifecycle/release-store.d.ts +190 -0
- package/dist/lifecycle/release-store.d.ts.map +1 -0
- package/dist/lifecycle/release-store.js +318 -0
- package/dist/lifecycle/run-ledger.d.ts +4 -0
- package/dist/lifecycle/run-ledger.d.ts.map +1 -1
- package/dist/lifecycle/run-ledger.js +2 -0
- package/dist/op/activities/change-coverage.d.ts.map +1 -1
- package/dist/op/activities/change-coverage.js +4 -2
- package/dist/op/activities/source-release.d.ts.map +1 -1
- package/dist/op/activities/source-release.js +7 -3
- package/dist/op/activities/source-rollback.d.ts.map +1 -1
- package/dist/op/activities/source-rollback.js +7 -3
- package/dist/op/activity-registry.d.ts +6 -3
- package/dist/op/activity-registry.d.ts.map +1 -1
- package/dist/op/activity-registry.js +7 -5
- package/dist/op/discover.d.ts.map +1 -1
- package/dist/op/discover.js +14 -7
- package/dist/op/gate-name.d.ts +11 -2
- package/dist/op/gate-name.d.ts.map +1 -1
- package/dist/op/gate-name.js +12 -3
- package/dist/op/gate-run-locator.d.ts +22 -0
- package/dist/op/gate-run-locator.d.ts.map +1 -1
- package/dist/op/gate-run-locator.js +31 -0
- package/dist/op/gate.d.ts +27 -3
- package/dist/op/gate.d.ts.map +1 -1
- package/dist/op/gate.js +57 -3
- package/dist/op/local-executor.d.ts +36 -1
- package/dist/op/local-executor.d.ts.map +1 -1
- package/dist/op/local-executor.js +158 -52
- package/dist/op/op-waves-run.d.ts.map +1 -1
- package/dist/op/op-waves-run.js +4 -0
- package/dist/op/run-live.d.ts +2 -0
- package/dist/op/run-live.d.ts.map +1 -1
- package/dist/op/run-live.js +1 -1
- package/dist/op/runtime.d.ts +46 -0
- package/dist/op/runtime.d.ts.map +1 -1
- package/dist/op/runtimes/local.d.ts.map +1 -1
- package/dist/op/runtimes/local.js +12 -2
- package/dist/point-decision.d.ts +2 -0
- package/dist/point-decision.d.ts.map +1 -1
- package/dist/point-decision.js +9 -2
- package/dist/run-event-store.d.ts +77 -0
- package/dist/run-event-store.d.ts.map +1 -0
- package/dist/run-event-store.js +204 -0
- package/dist/run-event-stream.d.ts +132 -0
- package/dist/run-event-stream.d.ts.map +1 -0
- package/dist/run-event-stream.js +238 -0
- package/dist/run-event.d.ts +267 -0
- package/dist/run-event.d.ts.map +1 -0
- package/dist/run-event.js +207 -0
- package/dist/wave-runtime.mjs +225 -242
- package/dist/workspace/__fixtures__/run-event-check.d.ts +19 -0
- package/dist/workspace/__fixtures__/run-event-check.d.ts.map +1 -0
- package/dist/workspace/__fixtures__/run-event-check.js +59 -0
- package/dist/workspace/change-set-show.d.ts +56 -0
- package/dist/workspace/change-set-show.d.ts.map +1 -0
- package/dist/workspace/change-set-show.js +54 -0
- package/dist/workspace/change-set-show.schema.json +102 -0
- package/dist/workspace/change-set.schema.json +28 -1
- package/dist/workspace/changes-cli.d.ts.map +1 -1
- package/dist/workspace/changes-cli.js +10 -1
- package/dist/workspace/changes.d.ts +37 -0
- package/dist/workspace/changes.d.ts.map +1 -1
- package/dist/workspace/changes.js +49 -2
- package/dist/workspace/changes.schema.json +135 -0
- package/dist/workspace/ci-green-cli.d.ts +19 -4
- package/dist/workspace/ci-green-cli.d.ts.map +1 -1
- package/dist/workspace/ci-green-cli.js +75 -12
- package/dist/workspace/ci-green-forge.d.ts +20 -3
- package/dist/workspace/ci-green-forge.d.ts.map +1 -1
- package/dist/workspace/ci-green-forge.js +6 -4
- package/dist/workspace/ci-green-workflow.d.ts +11 -0
- package/dist/workspace/ci-green-workflow.d.ts.map +1 -1
- package/dist/workspace/ci-green-workflow.js +6 -0
- package/dist/workspace/ci-green.d.ts +273 -13
- package/dist/workspace/ci-green.d.ts.map +1 -1
- package/dist/workspace/ci-green.js +449 -38
- package/dist/workspace/ci-last-green.schema.json +32 -2
- package/dist/workspace/ci-list.schema.json +525 -0
- package/dist/workspace/commit-links.d.ts +85 -0
- package/dist/workspace/commit-links.d.ts.map +1 -0
- package/dist/workspace/commit-links.js +163 -0
- package/dist/workspace/declaration.d.ts +19 -0
- package/dist/workspace/declaration.d.ts.map +1 -1
- package/dist/workspace/declaration.js +1 -1
- package/dist/workspace/declaration.schema.json +12 -0
- package/dist/workspace/identity-gate-rule.d.ts +37 -0
- package/dist/workspace/identity-gate-rule.d.ts.map +1 -1
- package/dist/workspace/identity-gate-rule.js +72 -7
- package/dist/workspace/identity.d.ts +12 -0
- package/dist/workspace/identity.d.ts.map +1 -1
- package/dist/workspace/identity.js +13 -1
- package/dist/workspace/intent.d.ts +6 -1
- package/dist/workspace/intent.d.ts.map +1 -1
- package/dist/workspace/intent.js +51 -1
- package/dist/workspace/ls.d.ts +4 -0
- package/dist/workspace/ls.d.ts.map +1 -1
- package/dist/workspace/ls.js +2 -0
- package/dist/workspace/ls.schema.json +3 -1
- package/dist/workspace/member-pipeline.d.ts +6 -0
- package/dist/workspace/member-pipeline.d.ts.map +1 -1
- package/dist/workspace/member-pipeline.js +6 -0
- package/dist/workspace/promotion-order.d.ts +41 -0
- package/dist/workspace/promotion-order.d.ts.map +1 -0
- package/dist/workspace/promotion-order.js +95 -0
- package/dist/workspace/reason-codes.d.ts +2 -0
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/reason-codes.js +4 -1
- package/dist/workspace/releases.d.ts +72 -0
- package/dist/workspace/releases.d.ts.map +1 -0
- package/dist/workspace/releases.js +94 -0
- package/dist/workspace/releases.schema.json +391 -0
- package/dist/workspace/run-event.schema.json +288 -0
- package/dist/workspace/status-gates.d.ts +26 -1
- package/dist/workspace/status-gates.d.ts.map +1 -1
- package/dist/workspace/status-gates.js +31 -2
- package/dist/workspace/status-stewards.d.ts +4 -0
- package/dist/workspace/status-stewards.d.ts.map +1 -1
- package/dist/workspace/status-stewards.js +2 -0
- package/dist/workspace/status.d.ts +39 -0
- package/dist/workspace/status.d.ts.map +1 -1
- package/dist/workspace/status.js +48 -1
- package/dist/workspace/status.schema.json +70 -1
- package/dist/workspace/trust/ci-tag-statement.d.ts +102 -0
- package/dist/workspace/trust/ci-tag-statement.d.ts.map +1 -0
- package/dist/workspace/trust/ci-tag-statement.js +123 -0
- package/dist/workspace/trust/op-run-statement.d.ts +91 -0
- package/dist/workspace/trust/op-run-statement.d.ts.map +1 -0
- package/dist/workspace/trust/op-run-statement.js +143 -0
- package/dist/workspace/trust/rotation.d.ts +18 -2
- package/dist/workspace/trust/rotation.d.ts.map +1 -1
- package/dist/workspace/trust/rotation.js +65 -16
- package/dist/workspace/trust/seal.d.ts +11 -0
- package/dist/workspace/trust/seal.d.ts.map +1 -1
- package/dist/workspace/trust/seal.js +9 -0
- package/dist/workspace/trust/ssh-commit.d.ts.map +1 -1
- package/dist/workspace/trust/ssh-commit.js +10 -10
- package/package.json +1 -1
- package/src/__golden__/wave-loop/fan-out-gated.json +8 -0
- package/src/__golden__/wave-loop/fan-out-no-members.json +4 -0
- package/src/__golden__/wave-loop/fan-out-only.json +6 -0
- package/src/__golden__/wave-loop/op-by-apply-hold.json +2 -0
- package/src/__golden__/wave-loop/op-cost-member.json +3 -0
- package/src/__golden__/wave-loop/op-held-on-before-apply.json +1 -0
- package/src/__golden__/wave-loop/op-held-on.json +2 -0
- package/src/__golden__/wave-loop/op-hooks-held.json +2 -0
- package/src/__golden__/wave-loop/op-hooks-hold-before-apply.json +2 -0
- package/src/__golden__/wave-loop/op-hooks-refused-at-base.json +3 -0
- package/src/__golden__/wave-loop/op-hooks-share.json +3 -0
- package/src/__golden__/wave-loop/op-per-run.json +7 -0
- package/src/__golden__/wave-loop/op-pr-review.json +7 -0
- package/src/__golden__/wave-loop/op-sealed.json +3 -0
- package/src/__golden__/wave-loop/op-spend.json +3 -0
- package/src/__golden__/wave-loop/op-wave-commands.json +7 -0
- package/src/__golden__/wave-loop/op-wide-waiting.json +4 -0
- package/src/change-set-graph.test.ts +72 -0
- package/src/change-set-graph.ts +133 -0
- package/src/change-set.ts +76 -6
- package/src/chant-version.ts +16 -0
- package/src/cli/commands/build.ts +19 -8
- package/src/cli/commands/check-lexicon-docs.test.ts +51 -0
- package/src/cli/commands/check-lexicon-docs.ts +39 -2
- package/src/cli/commands/check-lexicon.ts +14 -2
- package/src/cli/commands/init-lexicon/templates/docs.ts +7 -6
- package/src/cli/commands/init-lexicon.test.ts +25 -0
- package/src/cli/commands/init-lexicon.ts +18 -8
- package/src/cli/compiled-cli.e2e.test.ts +31 -6
- package/src/cli/handlers/approve-release.test.ts +80 -0
- package/src/cli/handlers/approve.ts +18 -2
- package/src/cli/handlers/build.test.ts +52 -0
- package/src/cli/handlers/build.ts +29 -0
- package/src/cli/handlers/change-set.ts +49 -1
- package/src/cli/handlers/fan-out.test.ts +48 -0
- package/src/cli/handlers/fan-out.ts +15 -3
- package/src/cli/handlers/operator.test.ts +37 -0
- package/src/cli/handlers/pr.test.ts +194 -0
- package/src/cli/handlers/pr.ts +168 -34
- package/src/cli/handlers/promote.test.ts +389 -5
- package/src/cli/handlers/promote.ts +279 -20
- package/src/cli/handlers/release-implicit.e2e.test.ts +153 -0
- package/src/cli/handlers/release.e2e.test.ts +85 -0
- package/src/cli/handlers/release.ts +206 -0
- package/src/cli/handlers/run-auto-release.test.ts +71 -0
- package/src/cli/handlers/run-events-cmd.test.ts +92 -0
- package/src/cli/handlers/run.test.ts +30 -0
- package/src/cli/handlers/run.ts +176 -15
- package/src/cli/main.test.ts +7 -0
- package/src/cli/main.ts +88 -13
- package/src/cli/mcp/never-over-mcp.test.ts +2 -0
- package/src/cli/mcp/workspace-tools.ts +1 -1
- package/src/cli/parse-args.ts +37 -3
- package/src/cli/registry.ts +29 -3
- package/src/cli/run-events.ts +54 -0
- package/src/cli/version.ts +3 -13
- package/src/codegen/docs-in-site.test.ts +166 -0
- package/src/codegen/docs-in-site.ts +182 -0
- package/src/codegen/docs-site/AgentPrompt.astro +26 -1
- package/src/codegen/docs-types.ts +14 -1
- package/src/codegen/docs.ts +60 -7
- package/src/codegen/rehype-base-url.d.mts +3 -1
- package/src/codegen/rehype-base-url.mjs +15 -9
- package/src/codegen/rehype-base-url.test.ts +34 -0
- package/src/components/auto-release.test.ts +21 -0
- package/src/components/auto-release.ts +6 -1
- package/src/components/cli-support.test.ts +82 -0
- package/src/components/cli-support.ts +16 -9
- package/src/components/driver.ts +129 -56
- package/src/components/fan-out-run.ts +56 -35
- package/src/components/pr-run.ts +30 -1
- package/src/components/promote-order.test.ts +90 -0
- package/src/components/promote-order.ts +75 -0
- package/src/components/promote.test.ts +10 -1
- package/src/components/promote.ts +26 -1
- package/src/components/release-compile.test.ts +147 -0
- package/src/components/release-compile.ts +445 -0
- package/src/components/release-gate.test.ts +215 -0
- package/src/components/release-gate.ts +341 -0
- package/src/components/release-promote.test.ts +159 -0
- package/src/components/release-promote.ts +232 -0
- package/src/components/run-progress.ts +7 -0
- package/src/components/wave-plan.ts +1 -1
- package/src/config.ts +7 -1
- package/src/index.ts +2 -0
- package/src/lifecycle/change-set-store.test.ts +217 -0
- package/src/lifecycle/change-set-store.ts +112 -0
- package/src/lifecycle/commit-sha.ts +23 -0
- package/src/lifecycle/gate-change-set.e2e.test.ts +122 -0
- package/src/lifecycle/gate-change-set.ts +133 -0
- package/src/lifecycle/gate-ledger.test.ts +33 -0
- package/src/lifecycle/gate-ledger.ts +66 -1
- package/src/lifecycle/release-cut-signed.test.ts +180 -0
- package/src/lifecycle/release-cut.test.ts +411 -0
- package/src/lifecycle/release-cut.ts +367 -0
- package/src/lifecycle/release-ledger.test.ts +14 -0
- package/src/lifecycle/release-ledger.ts +85 -17
- package/src/lifecycle/release-store.ts +423 -0
- package/src/lifecycle/run-ledger.test.ts +10 -0
- package/src/lifecycle/run-ledger.ts +6 -0
- package/src/op/activities/change-coverage.ts +4 -1
- package/src/op/activities/source-release.ts +8 -3
- package/src/op/activities/source-rollback.ts +8 -4
- package/src/op/activity-registry.ts +7 -5
- package/src/op/commit-run-gate-deploy-join.test.ts +117 -0
- package/src/op/discover-root.test.ts +39 -0
- package/src/op/discover.ts +15 -8
- package/src/op/gate-name.ts +13 -3
- package/src/op/gate-release.test.ts +126 -0
- package/src/op/gate-run-locator.test.ts +110 -0
- package/src/op/gate-run-locator.ts +35 -0
- package/src/op/gate.ts +88 -6
- package/src/op/local-executor.ts +207 -52
- package/src/op/op-waves-run.ts +4 -0
- package/src/op/run-events.test.ts +166 -0
- package/src/op/run-live.ts +1 -1
- package/src/op/runtime.ts +39 -0
- package/src/op/runtimes/local.test.ts +16 -0
- package/src/op/runtimes/local.ts +13 -2
- package/src/point-decision.ts +12 -2
- package/src/run-event-store.test.ts +144 -0
- package/src/run-event-store.ts +213 -0
- package/src/run-event-stream.test.ts +175 -0
- package/src/run-event-stream.ts +306 -0
- package/src/run-event.test.ts +277 -0
- package/src/run-event.ts +451 -0
- package/src/wave-loop-golden.test.ts +9 -0
- package/src/workspace/__fixtures__/run-event-check.ts +58 -0
- package/src/workspace/ancestry-index.test.ts +93 -0
- package/src/workspace/change-set-show.schema.json +102 -0
- package/src/workspace/change-set-show.ts +72 -0
- package/src/workspace/change-set.schema.json +28 -1
- package/src/workspace/changes-cli.ts +10 -1
- package/src/workspace/changes.schema.json +135 -0
- package/src/workspace/changes.test.ts +1 -1
- package/src/workspace/changes.ts +84 -2
- package/src/workspace/ci-green-cli.ts +75 -13
- package/src/workspace/ci-green-forge.ts +24 -4
- package/src/workspace/ci-green-runs.test.ts +242 -0
- package/src/workspace/ci-green-signed.test.ts +302 -0
- package/src/workspace/ci-green-workflow.test.ts +16 -0
- package/src/workspace/ci-green-workflow.ts +12 -0
- package/src/workspace/ci-green.test.ts +131 -2
- package/src/workspace/ci-green.ts +624 -42
- package/src/workspace/ci-last-green.schema.json +32 -2
- package/src/workspace/ci-list.schema.json +525 -0
- package/src/workspace/commit-links.test.ts +279 -0
- package/src/workspace/commit-links.ts +183 -0
- package/src/workspace/declaration.schema.json +12 -0
- package/src/workspace/declaration.ts +22 -2
- package/src/workspace/identity-gate-rule.ts +91 -7
- package/src/workspace/identity.ts +14 -1
- package/src/workspace/intent.ts +48 -1
- package/src/workspace/ls.schema.json +3 -1
- package/src/workspace/ls.ts +6 -0
- package/src/workspace/member-pipeline.test.ts +17 -0
- package/src/workspace/member-pipeline.ts +9 -0
- package/src/workspace/promotion-order.ts +97 -0
- package/src/workspace/read-contract.e2e.test.ts +4 -1
- package/src/workspace/reason-codes.test.ts +2 -1
- package/src/workspace/reason-codes.ts +4 -1
- package/src/workspace/releases.schema.json +391 -0
- package/src/workspace/releases.test.ts +108 -0
- package/src/workspace/releases.ts +122 -0
- package/src/workspace/run-event.schema.json +288 -0
- package/src/workspace/status-contract.test.ts +52 -1
- package/src/workspace/status-gates.ts +56 -1
- package/src/workspace/status-stewards.ts +6 -0
- package/src/workspace/status.schema.json +70 -1
- package/src/workspace/status.ts +80 -1
- package/src/workspace/trust/ci-tag-statement.ts +151 -0
- package/src/workspace/trust/op-run-statement.ts +148 -0
- package/src/workspace/trust/rotation.ts +61 -14
- package/src/workspace/trust/seal.ts +10 -0
- package/src/workspace/trust/ssh-commit.ts +10 -9
- package/src/cli/commands/__fixtures__/init-lexicon-output/docs/astro.config.mjs +0 -14
- package/src/cli/commands/__fixtures__/init-lexicon-output/docs/package.json +0 -16
- package/src/cli/commands/__fixtures__/init-lexicon-output/docs/src/content/docs/index.mdx +0 -8
- package/src/cli/commands/__fixtures__/init-lexicon-output/docs/src/content.config.ts +0 -15
- package/src/cli/commands/__fixtures__/init-lexicon-output/docs/tsconfig.json +0 -10
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { type OpConfig } from "../../op/types.js";
|
|
2
2
|
import { type StepRecord } from "../../op/local-executor.js";
|
|
3
3
|
import type { CommandContext } from "../registry.js";
|
|
4
|
+
import type { RunEvent } from "../../run-event.js";
|
|
4
5
|
import type { DriverComponentResult } from "../../components/driver.js";
|
|
5
|
-
import type
|
|
6
|
+
import { type ReleaseRecord, type RunOrigin } from "../../lifecycle/release-ledger.js";
|
|
6
7
|
/**
|
|
7
8
|
* The exit code a run that stopped at an unapproved gate uses (#2119).
|
|
8
9
|
* Deliberately not 1: a gate is a standing fact waiting on a human, and a CI
|
|
@@ -26,6 +27,21 @@ export declare function completedRunExitCode(opName: string, config: Pick<OpConf
|
|
|
26
27
|
export declare function runOpList(ctx: CommandContext): Promise<number>;
|
|
27
28
|
export declare function runOpStatus(ctx: CommandContext): Promise<number>;
|
|
28
29
|
export declare function runOpLog(ctx: CommandContext): Promise<number>;
|
|
30
|
+
/** One event as a line for a person: its time, its type, where it is and how it ended. */
|
|
31
|
+
export declare function humanRunEventLine(e: RunEvent): string;
|
|
32
|
+
/**
|
|
33
|
+
* `chant run events <run> [--json] [--follow]` (#4042): the events a run on
|
|
34
|
+
* this host kept, replayed. `<run>` is a run id, or the name of an Op or a
|
|
35
|
+
* component selection, for which the newest stored run stands. A settled run
|
|
36
|
+
* and a run in progress both replay what is in the file; `--follow` goes on
|
|
37
|
+
* from there until the run settles. `--json` prints the stored lines as they
|
|
38
|
+
* were written; without it each event is one line for a person.
|
|
39
|
+
*
|
|
40
|
+
* The exit code is the replayed run's verdict (0, 1, or 3 for a run waiting
|
|
41
|
+
* on a person). A replay of a run still going, and a follow cut short by
|
|
42
|
+
* Ctrl-C, exit 0.
|
|
43
|
+
*/
|
|
44
|
+
export declare function runOpEvents(ctx: CommandContext): Promise<number>;
|
|
29
45
|
/**
|
|
30
46
|
* `chant run approve <op> <gate> [--approver] [--url] [--note]` (#2121) — the
|
|
31
47
|
* rename of `chant run signal`, and a different act.
|
|
@@ -48,6 +64,16 @@ export declare function runOpSignalRenamed(ctx: CommandContext): Promise<number>
|
|
|
48
64
|
/** `chant run cancel <name>` — asks the resolved runtime (#2121) to stop the Op's active run. */
|
|
49
65
|
export declare function runOpCancel(ctx: CommandContext): Promise<number>;
|
|
50
66
|
export declare function runOp(ctx: CommandContext): Promise<number>;
|
|
67
|
+
/**
|
|
68
|
+
* The run id and origin an auto-recorded release names (#4020): the CI run
|
|
69
|
+
* when the process is in CI, so the release and the gate it passed (which
|
|
70
|
+
* records the CI run id) name the same run, else `localId` with the `local`
|
|
71
|
+
* origin.
|
|
72
|
+
*/
|
|
73
|
+
export declare function autoReleaseRun(localId: string): {
|
|
74
|
+
runId: string;
|
|
75
|
+
runOrigin: RunOrigin;
|
|
76
|
+
};
|
|
51
77
|
/**
|
|
52
78
|
* After a successful `chant run --components` (local executor), auto-emit
|
|
53
79
|
* one release record per successfully deployed component that published a
|
|
@@ -83,7 +109,7 @@ export declare function runOp(ctx: CommandContext): Promise<number>;
|
|
|
83
109
|
*
|
|
84
110
|
* Returns the records it wrote, for `--digest-file` (#2602).
|
|
85
111
|
*/
|
|
86
|
-
export declare function recordAutoReleasesForRun(results: DriverComponentResult[], env: string, runId: string, disabled: boolean): Promise<ReleaseRecord[]>;
|
|
112
|
+
export declare function recordAutoReleasesForRun(results: DriverComponentResult[], env: string, runId: string, disabled: boolean, runOrigin?: RunOrigin): Promise<ReleaseRecord[]>;
|
|
87
113
|
/**
|
|
88
114
|
* `chant run --components <name|all|a,b,c> [--env <env>]` (#585) — the
|
|
89
115
|
* interpret driver's CLI entrypoint, and since #2116 the only component run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAkD,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAU1G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/run.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAkD,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAU1G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAWlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAgB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAIlG;;;;;GAKG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AA+BjC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,GAAG,OAAO,CAMjF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAChC,eAAe,EAAE,OAAO,GAAG,SAAS,EACpC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,GACzC,MAAM,CAQR;AAuLD,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpE;AAuED,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAetE;AA8BD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAenE;AA2CD,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAKrD;AAOD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CtE;AAOD;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CvE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvE;AAID,iGAAiG;AACjG,wBAAsB,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtE;AAsMD,wBAAsB,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BhE;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAEvF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,qBAAqB,EAAE,EAChC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EACjB,SAAS,GAAE,SAA8B,GACxC,OAAO,CAAC,aAAa,EAAE,CAAC,CA6C1B;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpE;AAkND;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnE;AAyPD,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAMjE"}
|
package/dist/cli/handlers/run.js
CHANGED
|
@@ -23,9 +23,13 @@ import { LIFECYCLE_LOCAL_NOTE, isLifecycleLocalNote } from "../../lifecycle/loca
|
|
|
23
23
|
import { ledgerRecordingOff, noRecordEndNote, noRecordStartNote, resetNoRecordLedger, NO_RECORD_ENV } from "../../lifecycle/no-record.js";
|
|
24
24
|
import { renderDriverHuman, renderDriverJson } from "../../components/driver-output.js";
|
|
25
25
|
import { ndjsonProgressSink } from "../../components/run-progress.js";
|
|
26
|
+
import { findStoredRun, readRunEvents } from "../../run-event-store.js";
|
|
27
|
+
import { openCliRunEvents, refusesBothStreams, stdoutLine } from "../run-events.js";
|
|
26
28
|
import { maybeRecordAutoRelease } from "../../components/auto-release.js";
|
|
27
29
|
import { maybePersistBuildManifest } from "../../components/manifest-persistence.js";
|
|
28
30
|
import { isComponentList } from "../../components/cli-support.js";
|
|
31
|
+
import { resolveCiRun } from "../../lifecycle/release-ledger.js";
|
|
32
|
+
import { gateAdmission, gateApprover } from "../../components/promote.js";
|
|
29
33
|
import { runOpGenerate } from "./run-generate.js";
|
|
30
34
|
/**
|
|
31
35
|
* The exit code a run that stopped at an unapproved gate uses (#2119).
|
|
@@ -396,6 +400,78 @@ async function runOpLogOnRuntime(ctx, name) {
|
|
|
396
400
|
}
|
|
397
401
|
return 0;
|
|
398
402
|
}
|
|
403
|
+
// ── chant run events <run> ───────────────────────────────────────────────────
|
|
404
|
+
/** One event as a line for a person: its time, its type, where it is and how it ended. */
|
|
405
|
+
export function humanRunEventLine(e) {
|
|
406
|
+
const x = e;
|
|
407
|
+
const where = [x.component, x.phase, x.step].filter((v) => typeof v === "string").join("/");
|
|
408
|
+
const detail = [where, typeof x.status === "string" ? x.status : "", typeof x.error === "string" ? x.error : ""].filter(Boolean).join(" ");
|
|
409
|
+
return `${String(x.at ?? "")} ${String(x.type).padEnd(16)}${detail}`.trimEnd();
|
|
410
|
+
}
|
|
411
|
+
/** The exit code a run's verdict maps to: `chant run`'s own (0 ok, 1 failed, 3 waiting on a person). */
|
|
412
|
+
function exitOfSettle(status) {
|
|
413
|
+
return status === "ok" ? 0 : status === "gated" || status === "waiting" ? 3 : 1;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* `chant run events <run> [--json] [--follow]` (#4042): the events a run on
|
|
417
|
+
* this host kept, replayed. `<run>` is a run id, or the name of an Op or a
|
|
418
|
+
* component selection, for which the newest stored run stands. A settled run
|
|
419
|
+
* and a run in progress both replay what is in the file; `--follow` goes on
|
|
420
|
+
* from there until the run settles. `--json` prints the stored lines as they
|
|
421
|
+
* were written; without it each event is one line for a person.
|
|
422
|
+
*
|
|
423
|
+
* The exit code is the replayed run's verdict (0, 1, or 3 for a run waiting
|
|
424
|
+
* on a person). A replay of a run still going, and a follow cut short by
|
|
425
|
+
* Ctrl-C, exit 0.
|
|
426
|
+
*/
|
|
427
|
+
export async function runOpEvents(ctx) {
|
|
428
|
+
const ref = ctx.args.extraPositional;
|
|
429
|
+
if (!ref) {
|
|
430
|
+
console.error(formatError({ message: "A run id or an Op name is required: chant run events <run>" }));
|
|
431
|
+
return 1;
|
|
432
|
+
}
|
|
433
|
+
if (ctx.args.on !== undefined && ctx.args.on !== "local") {
|
|
434
|
+
console.error(formatError({
|
|
435
|
+
message: `run events reads the events kept on this host, so --on ${ctx.args.on} has none to read`,
|
|
436
|
+
hint: "A run hosted off this host is read once its in-flight state is off-host (#3990).",
|
|
437
|
+
}));
|
|
438
|
+
return 1;
|
|
439
|
+
}
|
|
440
|
+
const cwd = resolve(".");
|
|
441
|
+
let stored = await findStoredRun(cwd, ref);
|
|
442
|
+
if (!stored && ctx.args.follow) {
|
|
443
|
+
// The run may be starting: give it a moment to open its file.
|
|
444
|
+
const deadline = Date.now() + RUN_EVENTS_WAIT_MS;
|
|
445
|
+
while (!stored && Date.now() < deadline) {
|
|
446
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
447
|
+
stored = await findStoredRun(cwd, ref);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
if (!stored) {
|
|
451
|
+
console.error(formatError({
|
|
452
|
+
message: `No events are kept for "${ref}" on this host`,
|
|
453
|
+
hint: "A run keeps its events when it records to the ledger (not under --no-record), and a command other than `chant run <op>` keeps them under --events-json. Chant 0.124.28 and newer write them.",
|
|
454
|
+
}));
|
|
455
|
+
return 1;
|
|
456
|
+
}
|
|
457
|
+
const controller = new AbortController();
|
|
458
|
+
const onSigint = () => controller.abort();
|
|
459
|
+
process.on("SIGINT", onSigint);
|
|
460
|
+
try {
|
|
461
|
+
const settle = await readRunEvents(stored.file, (event, line) => {
|
|
462
|
+
if (ctx.args.json)
|
|
463
|
+
process.stdout.write(line);
|
|
464
|
+
else
|
|
465
|
+
console.log(humanRunEventLine(event));
|
|
466
|
+
}, { follow: ctx.args.follow === true, signal: controller.signal });
|
|
467
|
+
return settle ? exitOfSettle(settle.status) : 0;
|
|
468
|
+
}
|
|
469
|
+
finally {
|
|
470
|
+
process.removeListener("SIGINT", onSigint);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
/** How long `--follow` waits for a run's file to appear. */
|
|
474
|
+
const RUN_EVENTS_WAIT_MS = 5000;
|
|
399
475
|
// ── chant run approve <op> <gate> ────────────────────────────────────────────
|
|
400
476
|
/**
|
|
401
477
|
* `chant run approve <op> <gate> [--approver] [--url] [--note]` (#2121) — the
|
|
@@ -688,6 +764,8 @@ export async function runOp(ctx) {
|
|
|
688
764
|
}));
|
|
689
765
|
return 1;
|
|
690
766
|
}
|
|
767
|
+
if (refusesBothStreams(ctx.args))
|
|
768
|
+
return 1;
|
|
691
769
|
if (ctx.args.components)
|
|
692
770
|
return runOpComponents(ctx);
|
|
693
771
|
if (ctx.args.report) {
|
|
@@ -700,6 +778,15 @@ export async function runOp(ctx) {
|
|
|
700
778
|
return runOpOnRuntime(ctx);
|
|
701
779
|
}
|
|
702
780
|
// ── Auto-release recording post-run (#597) ──────────────────────────────────
|
|
781
|
+
/**
|
|
782
|
+
* The run id and origin an auto-recorded release names (#4020): the CI run
|
|
783
|
+
* when the process is in CI, so the release and the gate it passed (which
|
|
784
|
+
* records the CI run id) name the same run, else `localId` with the `local`
|
|
785
|
+
* origin.
|
|
786
|
+
*/
|
|
787
|
+
export function autoReleaseRun(localId) {
|
|
788
|
+
return resolveCiRun() ?? { runId: localId, runOrigin: { forge: "local" } };
|
|
789
|
+
}
|
|
703
790
|
/**
|
|
704
791
|
* After a successful `chant run --components` (local executor), auto-emit
|
|
705
792
|
* one release record per successfully deployed component that published a
|
|
@@ -735,7 +822,7 @@ export async function runOp(ctx) {
|
|
|
735
822
|
*
|
|
736
823
|
* Returns the records it wrote, for `--digest-file` (#2602).
|
|
737
824
|
*/
|
|
738
|
-
export async function recordAutoReleasesForRun(results, env, runId, disabled) {
|
|
825
|
+
export async function recordAutoReleasesForRun(results, env, runId, disabled, runOrigin = { forge: "local" }) {
|
|
739
826
|
const recorded = [];
|
|
740
827
|
for (const componentResult of results) {
|
|
741
828
|
if (!componentResult.ok)
|
|
@@ -746,8 +833,11 @@ export async function recordAutoReleasesForRun(results, env, runId, disabled) {
|
|
|
746
833
|
success: true,
|
|
747
834
|
records: componentResult.records,
|
|
748
835
|
runId,
|
|
749
|
-
// A local-executor id resolves nowhere
|
|
750
|
-
runOrigin
|
|
836
|
+
// A local-executor id resolves nowhere, and says so in a field (#2045). A run in CI names the CI run.
|
|
837
|
+
runOrigin,
|
|
838
|
+
// #1035, #4020: who approved at the gate and which resolution admitted the deploy.
|
|
839
|
+
...(gateApprover(componentResult) ? { approver: gateApprover(componentResult) } : {}),
|
|
840
|
+
...(gateAdmission(componentResult) ? { admission: gateAdmission(componentResult) } : {}),
|
|
751
841
|
}, { disabled });
|
|
752
842
|
if (!outcome.recorded && outcome.reason === "error") {
|
|
753
843
|
console.error(formatWarning({
|
|
@@ -909,6 +999,10 @@ async function runComponentSelection(ctx) {
|
|
|
909
999
|
// `undefined` and every `onProgress?.(...)` call in the driver is a no-op —
|
|
910
1000
|
// behavior is byte-for-byte unchanged from before this flag existed.
|
|
911
1001
|
const onProgress = ctx.args.progressJson ? ndjsonProgressSink() : undefined;
|
|
1002
|
+
// `--events-json` (#4041): the run-event stream instead. The run is named by
|
|
1003
|
+
// the id its release records carry, so the two join.
|
|
1004
|
+
const release = autoReleaseRun(`local-${Date.now()}`);
|
|
1005
|
+
const events = await openCliRunEvents(ctx.args, { kind: "component", name: selector, runId: release.runId, cwd: projectPath });
|
|
912
1006
|
// A list (#3950) pulls in what its components depend on; say which ones and
|
|
913
1007
|
// in what order before the first one runs. stderr, so --json and
|
|
914
1008
|
// --progress-json keep stdout to themselves.
|
|
@@ -919,14 +1013,29 @@ async function runComponentSelection(ctx) {
|
|
|
919
1013
|
console.error(formatInfo(`added as dependencies: ${plan.added.join(", ")}`));
|
|
920
1014
|
}
|
|
921
1015
|
: undefined;
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
1016
|
+
let result;
|
|
1017
|
+
try {
|
|
1018
|
+
result = await runtime.runComponents(projectPath, selector, {
|
|
1019
|
+
env: ctx.args.env,
|
|
1020
|
+
componentOutputs: seededOutputs,
|
|
1021
|
+
onProgress,
|
|
1022
|
+
...(events ? { onRunEvent: events.emit } : {}),
|
|
1023
|
+
sandbox: ctx.args.sandbox,
|
|
1024
|
+
buildParams: paramsResolution.provenance,
|
|
1025
|
+
...(onPlan ? { onPlan } : {}),
|
|
1026
|
+
});
|
|
1027
|
+
}
|
|
1028
|
+
catch (err) {
|
|
1029
|
+
events?.settle("failed", err instanceof Error ? err.message : String(err));
|
|
1030
|
+
throw err;
|
|
1031
|
+
}
|
|
1032
|
+
// A run that never reached its components (a bad selector, a cycle) still ends its stream.
|
|
1033
|
+
if (result.success)
|
|
1034
|
+
events?.settle("ok");
|
|
1035
|
+
else if (result.gated)
|
|
1036
|
+
events?.settle("gated");
|
|
1037
|
+
else
|
|
1038
|
+
events?.settle("failed", result.error);
|
|
930
1039
|
// Dump the accumulated outputs for a downstream job to seed from. Written
|
|
931
1040
|
// even on failure (partial outputs) so a resumed run still has what completed.
|
|
932
1041
|
if (ctx.args.dumpOutputs && result.run) {
|
|
@@ -990,7 +1099,7 @@ async function runComponentSelection(ctx) {
|
|
|
990
1099
|
if (result.success && result.run) {
|
|
991
1100
|
// #3955: a run that records nothing has no release to report either.
|
|
992
1101
|
const disabled = resolveAutoReleaseDisabled(config, ctx.args.noReleaseRecord) || ledgerRecordingOff();
|
|
993
|
-
const recorded = await recordAutoReleasesForRun(result.run.results, env,
|
|
1102
|
+
const recorded = await recordAutoReleasesForRun(result.run.results, env, release.runId, disabled, release.runOrigin);
|
|
994
1103
|
// `--digest-file` (#2602): the releases this run recorded, one
|
|
995
1104
|
// `<component>=<digest>` line each, the form `chant components promote
|
|
996
1105
|
// --digest` takes. A generated promote job reads it to promote exactly
|
|
@@ -1069,6 +1178,14 @@ async function runOpOnResolvedRuntime(ctx) {
|
|
|
1069
1178
|
await stewardGate?.release?.();
|
|
1070
1179
|
return 1;
|
|
1071
1180
|
}
|
|
1181
|
+
// #4044: a runner key signs the run's record as it settles, so `ci tick`
|
|
1182
|
+
// can count the run. `--key` must be a runner key; the PEM in
|
|
1183
|
+
// CHANT_RUNNER_KEY that is not one leaves the run unsigned, with a warning.
|
|
1184
|
+
const signRecord = await runSignerFor(ctx);
|
|
1185
|
+
if (signRecord === null) {
|
|
1186
|
+
await stewardGate?.release?.();
|
|
1187
|
+
return 1;
|
|
1188
|
+
}
|
|
1072
1189
|
// `--progress-json` streams one NDJSON StepRecord per settled step, fed by
|
|
1073
1190
|
// whatever the runtime reports through `progress`.
|
|
1074
1191
|
const progress = ctx.args.progressJson ? ndjsonProgressSink() : undefined;
|
|
@@ -1103,6 +1220,10 @@ async function runOpOnResolvedRuntime(ctx) {
|
|
|
1103
1220
|
...(params ? { params } : {}),
|
|
1104
1221
|
...(ctx.args.profile !== undefined ? { profile: ctx.args.profile } : {}),
|
|
1105
1222
|
progress,
|
|
1223
|
+
// `--events-json` (#4041): the runtime writes the run's events itself,
|
|
1224
|
+
// since it is the one that knows the run's id and where it ran.
|
|
1225
|
+
...(ctx.args.eventsJson ? { runEvents: stdoutLine } : {}),
|
|
1226
|
+
...(signRecord ? { signRecord } : {}),
|
|
1106
1227
|
signal: controller.signal,
|
|
1107
1228
|
...(work ? { work } : {}),
|
|
1108
1229
|
});
|
|
@@ -1249,7 +1370,43 @@ async function resolveRunWork(ctx, config, provider) {
|
|
|
1249
1370
|
export function runOpUnknown(ctx) {
|
|
1250
1371
|
console.error(formatError({
|
|
1251
1372
|
message: `Unknown run subcommand: ${ctx.args.extraPositional ?? ctx.args.path}`,
|
|
1252
|
-
hint: "Available: chant run <name>, run list, run status, run approve, run cancel, run log",
|
|
1373
|
+
hint: "Available: chant run <name>, run list, run status, run approve, run cancel, run log, run events",
|
|
1253
1374
|
}));
|
|
1254
1375
|
return Promise.resolve(1);
|
|
1255
1376
|
}
|
|
1377
|
+
/** The variable a runner key is read from, as PEM, as `chant ci tick` reads it (`RUNNER_KEY_ENV` in ../../workspace/ci-green.ts). */
|
|
1378
|
+
const RUNNER_KEY_ENV = "CHANT_RUNNER_KEY";
|
|
1379
|
+
/**
|
|
1380
|
+
* What signs the run's record (#4044): the runner key `--key` names, or the
|
|
1381
|
+
* PEM in `CHANT_RUNNER_KEY`, checked against `.chant/trust.json` at `HEAD`.
|
|
1382
|
+
* Undefined when neither is given. Null, after printing why, when `--key`
|
|
1383
|
+
* is not a runner key; an unusable `CHANT_RUNNER_KEY` only warns, since the
|
|
1384
|
+
* variable may be set for `ci tick` in a job that also runs Ops.
|
|
1385
|
+
*/
|
|
1386
|
+
async function runSignerFor(ctx) {
|
|
1387
|
+
const fromFlag = ctx.args.key !== undefined;
|
|
1388
|
+
let pem;
|
|
1389
|
+
try {
|
|
1390
|
+
pem = fromFlag ? readFileSync(resolve(ctx.args.key), "utf-8") : process.env[RUNNER_KEY_ENV] || undefined;
|
|
1391
|
+
}
|
|
1392
|
+
catch (err) {
|
|
1393
|
+
console.error(formatError({ message: `--key ${ctx.args.key}: ${err instanceof Error ? err.message : String(err)}` }));
|
|
1394
|
+
return null;
|
|
1395
|
+
}
|
|
1396
|
+
if (pem === undefined)
|
|
1397
|
+
return undefined;
|
|
1398
|
+
try {
|
|
1399
|
+
// Loaded only when a key is given, so a run without one loads no workspace code (level 0, #2525).
|
|
1400
|
+
const { opRunSigner } = await import("../../workspace/ci-green.js");
|
|
1401
|
+
return opRunSigner(process.cwd(), pem);
|
|
1402
|
+
}
|
|
1403
|
+
catch (err) {
|
|
1404
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
1405
|
+
if (fromFlag) {
|
|
1406
|
+
console.error(formatError({ message: `the run would not be signed: ${message}` }));
|
|
1407
|
+
return null;
|
|
1408
|
+
}
|
|
1409
|
+
console.error(formatWarning({ message: `${RUNNER_KEY_ENV} is set, and the run will not be signed: ${message}` }));
|
|
1410
|
+
return undefined;
|
|
1411
|
+
}
|
|
1412
|
+
}
|
package/dist/cli/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AAKA,OAAO,EAAkB,KAAK,UAAU,EAAmB,MAAM,YAAY,CAAC;AAa9E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAgB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":";AAKA,OAAO,EAAkB,KAAK,UAAU,EAAmB,MAAM,YAAY,CAAC;AAa9E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAgB,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;AAyoCzC;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBzE;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,EAuLvC,CAAC"}
|
package/dist/cli/main.js
CHANGED
|
@@ -104,6 +104,7 @@ const runOpApprove = lazyHandler(runHandlers, (m) => m.runOpApprove);
|
|
|
104
104
|
const runOpSignalRenamed = lazyHandler(runHandlers, (m) => m.runOpSignalRenamed);
|
|
105
105
|
const runOpCancel = lazyHandler(runHandlers, (m) => m.runOpCancel);
|
|
106
106
|
const runOpLog = lazyHandler(runHandlers, (m) => m.runOpLog);
|
|
107
|
+
const runOpEvents = lazyHandler(runHandlers, (m) => m.runOpEvents);
|
|
107
108
|
const runWaveHandlers = () => import("./handlers/run-wave.js");
|
|
108
109
|
const runOpWaveCommand = lazyHandler(runWaveHandlers, (m) => m.runOpWaveCommand);
|
|
109
110
|
const operatorHandlers = () => import("./handlers/operator.js");
|
|
@@ -214,22 +215,61 @@ Commands:
|
|
|
214
215
|
applied) and path. Read-only.
|
|
215
216
|
|
|
216
217
|
CI:
|
|
217
|
-
ci last-green [--json] The newest first-parent commit of
|
|
218
|
-
|
|
219
|
-
tags only; fetch
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
218
|
+
ci last-green [--json] [--from <rev>] The newest first-parent commit of
|
|
219
|
+
ci.green's branch, or of --from, with a ci/green tag
|
|
220
|
+
and no ci/revoked tag. Reads local tags only; fetch
|
|
221
|
+
them first. With ci.green.signedSince, a tag without a
|
|
222
|
+
valid runner statement is ignored and reported.
|
|
223
|
+
ci list [--json] [--limit <n>] [--since <rev>] [--forge github] [--source checks|runs]
|
|
224
|
+
The first-parent commits of ci.green's branch within
|
|
225
|
+
its window, newest first, each green, revoked or
|
|
226
|
+
undecided with its required phases' results. Reads
|
|
227
|
+
local tags; --forge reads check runs for undecided
|
|
228
|
+
commits, and source runs reads the signed Op runs on
|
|
229
|
+
the local chant/lifecycle. --since replaces the window.
|
|
230
|
+
ci tick [--dry-run] [--forge github] [--source checks|runs] [--key <runner key.pem>]
|
|
231
|
+
Tag each commit within ci.green's window whose
|
|
232
|
+
required phases all passed ci/green/<sha>, and revoke
|
|
233
|
+
a green one that now fails ci/revoked/<sha>. Reads
|
|
234
|
+
check runs from the forge, or with source runs
|
|
235
|
+
(ci.green.source or --source) the Op runs on
|
|
236
|
+
chant/lifecycle that a runner key signed. Pushes the
|
|
237
|
+
tags. --key, or the PEM in CHANT_RUNNER_KEY, signs
|
|
238
|
+
each tag with a runner key.
|
|
224
239
|
ci workflow [--workflow <name>]... [--output <file>] Write
|
|
225
240
|
[--chant <command>] [--install <command>]
|
|
226
241
|
[--token-secret <NAME> | --app-id-var <VAR> --app-key-secret <NAME>]
|
|
242
|
+
[--runner-key-secret <NAME>]
|
|
227
243
|
.github/workflows/chant-ci-green.yml, which runs the
|
|
228
244
|
tick when a required workflow completes and every 15m.
|
|
229
245
|
--chant replaces the npx @intentius/chant pin the tick
|
|
230
246
|
runs; --install adds a step before it. --token-secret,
|
|
231
247
|
or a GitHub App's id and key, pushes the tags with a
|
|
232
248
|
token that may tag commits changing workflow files.
|
|
249
|
+
--runner-key-secret hands the tick the runner key it
|
|
250
|
+
signs its tags with.
|
|
251
|
+
|
|
252
|
+
Releases:
|
|
253
|
+
release cut [<label>] [--build <command>] [--param <k=v>] [--params-file <file>]
|
|
254
|
+
[--src <dir>] [-o <file>] [--lexicon <name>] [--sign [<key file>]]
|
|
255
|
+
Cut a release of this member from HEAD, which must
|
|
256
|
+
carry a ci/green tag: compile every environment in
|
|
257
|
+
the config's environments, build the artifacts once,
|
|
258
|
+
and store it on chant/lifecycle under its digest.
|
|
259
|
+
--build runs before each environment's templates are
|
|
260
|
+
read, with CHANT_ENV set; {env} in --params-file is
|
|
261
|
+
replaced by the environment. --sign signs the cut with
|
|
262
|
+
the actor's ssh key; an identity.gates release entry
|
|
263
|
+
requires it. A project with no components releases
|
|
264
|
+
what chant build --env <env> writes: --src <dir> is
|
|
265
|
+
the build root, -o <file> the output (dist/build.yaml),
|
|
266
|
+
--lexicon narrows it.
|
|
267
|
+
release list [--json] Every release of this member with its targets, its
|
|
268
|
+
cuts and the environments that run it.
|
|
269
|
+
release export <label|digest> --env <env> [-o <dir>] [--json]
|
|
270
|
+
Write the files the release recorded for <env>, each
|
|
271
|
+
checked against its digest, at their recorded paths
|
|
272
|
+
under <dir> (default: here), for a deploy to read.
|
|
233
273
|
|
|
234
274
|
Change sets:
|
|
235
275
|
change-set summary <file> The grouped plan summary of a change-set
|
|
@@ -238,6 +278,10 @@ Change sets:
|
|
|
238
278
|
replacement, failure and hole named.
|
|
239
279
|
markdown fits an MR/PR note of --limit
|
|
240
280
|
characters (default 65536). Read-only.
|
|
281
|
+
change-set show <digest> The change set a pull-request or release gate
|
|
282
|
+
[--member <name>] [--json] bound, stored on
|
|
283
|
+
chant/lifecycle under its digest, each
|
|
284
|
+
entry with its graph node. Read-only.
|
|
241
285
|
|
|
242
286
|
Ops:
|
|
243
287
|
run <name> Run an Op on the resolved runtime (--on; local by default)
|
|
@@ -247,11 +291,18 @@ Ops:
|
|
|
247
291
|
its Drift outcome is true (WatchOp failOn: "drift")
|
|
248
292
|
--no-record: a test run that records nothing on
|
|
249
293
|
chant/lifecycle and pushes nothing (local runtime)
|
|
294
|
+
--key <runner key.pem>, or the PEM in
|
|
295
|
+
CHANT_RUNNER_KEY: sign the run's record with a runner
|
|
296
|
+
key, so ci tick from runs counts it (#4044)
|
|
250
297
|
run list List all Ops with the runtime's state for each
|
|
251
298
|
run status <name> Show the runtime's state for one Op's latest run
|
|
252
299
|
run approve <op> <gate> Record a gate's resolution and wake the runtime
|
|
253
300
|
run cancel <name> Cancel the active run (requires --force)
|
|
254
301
|
run log <name> Show run history for an Op
|
|
302
|
+
run events <run> Replay a run's events kept on this host (a run id, or
|
|
303
|
+
an Op or component name for its newest run). --json
|
|
304
|
+
prints the run-event lines; --follow streams a run in
|
|
305
|
+
progress until run-settle (#4042)
|
|
255
306
|
run wave --spec <file> --wave <k> Plan, gate and apply wave k of an Op
|
|
256
307
|
waves spec (#3679): the job a generated waves
|
|
257
308
|
pipeline runs. --decide plans and decides only;
|
|
@@ -286,6 +337,11 @@ Ops:
|
|
|
286
337
|
consumer to render live wave/component/phase/step
|
|
287
338
|
progress instead of tailing raw logs (additive; run
|
|
288
339
|
semantics/exit code unchanged)
|
|
340
|
+
--events-json: stream the run's events instead, one
|
|
341
|
+
run-event.schema.json line each, with the run id,
|
|
342
|
+
commit and runtime on every line (#4041). Also on
|
|
343
|
+
run <op>, components promote|rollback|redeploy,
|
|
344
|
+
fan-out, pr-plan and pr-apply
|
|
289
345
|
operator Run scheduled ticks for discovered ConvergeOps
|
|
290
346
|
locally (#1485): acquire/renew a per-op
|
|
291
347
|
lease (git ref CAS), tick on --interval, record every
|
|
@@ -651,7 +707,13 @@ Workspace (level 1, #2524):
|
|
|
651
707
|
the severity (warn by default) and ignore globs. When
|
|
652
708
|
the declaration at base has writeScope or agents, each
|
|
653
709
|
commit that writes outside its writer's scope fails
|
|
654
|
-
the check (write-scope-member, write-scope-kind)
|
|
710
|
+
the check (write-scope-member, write-scope-kind). Each
|
|
711
|
+
first-parent commit of the range should name its work
|
|
712
|
+
item in a Chant-Record: <work kind>:<id> or a
|
|
713
|
+
Chant-Lease trailer. commit-unlinked is a commit that
|
|
714
|
+
names none, commit-wrongly-linked one whose trailers
|
|
715
|
+
name no work item that exists; both follow the
|
|
716
|
+
severity
|
|
655
717
|
workspace patch <base>..<head>|<base>...<head>|<commit> [--path <p>...] [--max-bytes <n>] [--json]
|
|
656
718
|
workspace patch [<commit>] --worktree [--path <p>...] [--max-bytes <n>] [--json]
|
|
657
719
|
The hunks of a diff, file by file: a range, a work
|
|
@@ -774,9 +836,12 @@ Component release ledger + status:
|
|
|
774
836
|
byte-for-byte plus a self-describing manifest.json
|
|
775
837
|
components promote Deploy the digests one environment's release
|
|
776
838
|
ledger records to another, without a build
|
|
777
|
-
(--
|
|
778
|
-
[--
|
|
779
|
-
|
|
839
|
+
(--to <env> [--from <env>] [--allow-skip]
|
|
840
|
+
[--release <label|digest>]
|
|
841
|
+
[--component <name> [--digest <sha256:...>]];
|
|
842
|
+
--from defaults to the environment before --to
|
|
843
|
+
in the config's environments; --dry-run prints
|
|
844
|
+
the plan; the target's gates still apply)
|
|
780
845
|
components rollback <env> Redeploy an earlier release of an environment
|
|
781
846
|
from its recorded digest (--component <name>
|
|
782
847
|
[--digest <sha256:...>]; defaults to the release
|
|
@@ -921,7 +986,7 @@ Options:
|
|
|
921
986
|
chant.config.ts's build.sandbox: true; #1045)
|
|
922
987
|
--param <name=value> (build, graph, run --components, components fan-out,
|
|
923
988
|
components promote, components rollback,
|
|
924
|
-
components redeploy) Bind a
|
|
989
|
+
components redeploy, release cut) Bind a
|
|
925
990
|
declared build-time parameter (chant.config.ts's buildParams)
|
|
926
991
|
to a value, for source to read as params.<name>
|
|
927
992
|
(#1064) instead of process.env — repeatable.
|
|
@@ -933,7 +998,7 @@ Options:
|
|
|
933
998
|
chant.template.json declares instead (#2627).
|
|
934
999
|
--params-file <path> (build, graph, run --components, components fan-out,
|
|
935
1000
|
components promote, components rollback,
|
|
936
|
-
components redeploy) JSON file
|
|
1001
|
+
components redeploy, release cut) JSON file
|
|
937
1002
|
of { "name": value } build-time parameter values
|
|
938
1003
|
(#1064). Second precedence, after --param.
|
|
939
1004
|
init --from refuses it: pass --param instead.
|
|
@@ -1178,10 +1243,18 @@ export const commandRegistry = [
|
|
|
1178
1243
|
{ name: "carve status", handler: runCarveStatus },
|
|
1179
1244
|
// #3573 — which commits passed CI, kept as ci/green and ci/revoked tags (ws-103). Imported on first use.
|
|
1180
1245
|
{ name: "ci last-green", runsNoConfig: true, handler: async (ctx) => (await import("../workspace/ci-green-cli.js")).runCiLastGreen(ctx) },
|
|
1246
|
+
{ name: "ci list", runsNoConfig: true, handler: async (ctx) => (await import("../workspace/ci-green-cli.js")).runCiList(ctx) },
|
|
1181
1247
|
{ name: "ci tick", runsNoConfig: true, handler: async (ctx) => (await import("../workspace/ci-green-cli.js")).runCiTick(ctx) },
|
|
1182
1248
|
{ name: "ci workflow", runsNoConfig: true, handler: async (ctx) => (await import("../workspace/ci-green-cli.js")).runCiWorkflow(ctx) },
|
|
1249
|
+
// #4026: the release cut from a green commit (ws-104). Imported on first use.
|
|
1250
|
+
{ name: "release cut", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseCut(ctx) },
|
|
1251
|
+
{ name: "release list", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseList(ctx) },
|
|
1252
|
+
{ name: "release export", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseExport(ctx) },
|
|
1253
|
+
{ name: "release compile", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseCompile(ctx) },
|
|
1183
1254
|
// #3188 — the grouped plan summary of a change-set document. Reads one file; imported on first use.
|
|
1184
1255
|
{ name: "change-set summary", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/change-set.js")).runChangeSetSummary(ctx) },
|
|
1256
|
+
// #4022: the change set a gate bound, read from chant/lifecycle by its digest.
|
|
1257
|
+
{ name: "change-set show", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/change-set.js")).runChangeSetShow(ctx) },
|
|
1185
1258
|
{ name: "init", handler: runInit, runsNoConfig: true },
|
|
1186
1259
|
{ name: "init lexicon", handler: runInitLexicon },
|
|
1187
1260
|
{ name: "update", handler: runUpdate },
|
|
@@ -1201,6 +1274,7 @@ export const commandRegistry = [
|
|
|
1201
1274
|
{ name: "run signal", handler: runOpSignalRenamed },
|
|
1202
1275
|
{ name: "run cancel", handler: runOpCancel },
|
|
1203
1276
|
{ name: "run log", handler: runOpLog },
|
|
1277
|
+
{ name: "run events", handler: runOpEvents },
|
|
1204
1278
|
{ name: "run wave", handler: runOpWaveCommand },
|
|
1205
1279
|
// #3683 — start the CI jobs that wait at gates whose approval arrived. Imported on first use.
|
|
1206
1280
|
{ name: "run resume", handler: async (ctx) => (await import("./handlers/gate-resume.js")).runResumeCommand(ctx) },
|
|
@@ -1307,6 +1381,7 @@ export const commandRegistry = [
|
|
|
1307
1381
|
{ name: "dev", handler: runDevUnknown },
|
|
1308
1382
|
{ name: "serve", handler: runServeUnknown },
|
|
1309
1383
|
{ name: "components", handler: runComponentsUnknown },
|
|
1384
|
+
{ name: "release", runsNoConfig: true, handler: async (ctx) => (await import("./handlers/release.js")).runReleaseUnknown(ctx) },
|
|
1310
1385
|
{ name: "workspace", handler: async (ctx) => (await import("../workspace/records-cli.js")).runWorkspaceUnknown(ctx) },
|
|
1311
1386
|
];
|
|
1312
1387
|
/**
|
|
@@ -100,7 +100,7 @@ export const workspaceReadTools = [
|
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
102
|
name: "workspace-changes",
|
|
103
|
-
description: "The forward coverage check over a diff: chant workspace check --changes <range> --json (changes.schema.json, #2773). Each changed path with the current records whose constrains cover it, and a change-uncovered or change-out-of-scope finding for each gap, at the severity the declaration's changes block sets. Returns the document unchanged.",
|
|
103
|
+
description: "The forward coverage check over a diff: chant workspace check --changes <range> --json (changes.schema.json, #2773). Each changed path with the current records whose constrains cover it, and a change-uncovered or change-out-of-scope finding for each gap, at the severity the declaration's changes block sets. links says whether each trunk commit of the range names its work item, with commit-unlinked and commit-wrongly-linked findings at the same severity. Returns the document unchanged.",
|
|
104
104
|
inputSchema: {
|
|
105
105
|
type: "object",
|
|
106
106
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../../src/cli/parse-args.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../../src/cli/parse-args.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA8E7C;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA+uBpD"}
|