@intentius/chant 0.56.0 → 0.58.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/dist/audit/catalog.d.ts +51 -1
- package/dist/audit/catalog.d.ts.map +1 -1
- package/dist/audit/core.d.ts +20 -1
- package/dist/audit/core.d.ts.map +1 -1
- package/dist/audit/discover.d.ts +14 -8
- package/dist/audit/discover.d.ts.map +1 -1
- package/dist/audit/lineage.d.ts +10 -0
- package/dist/audit/lineage.d.ts.map +1 -0
- package/dist/audit/prior-art.d.ts +385 -0
- package/dist/audit/prior-art.d.ts.map +1 -0
- package/dist/audit/proof.d.ts +16 -0
- package/dist/audit/proof.d.ts.map +1 -1
- package/dist/audit/report-html.d.ts.map +1 -1
- package/dist/audit/report-model.d.ts +8 -1
- package/dist/audit/report-model.d.ts.map +1 -1
- package/dist/audit/report.d.ts.map +1 -1
- package/dist/audit/rules-doc.d.ts +3 -0
- package/dist/audit/rules-doc.d.ts.map +1 -1
- package/dist/audit/secrets.d.ts +15 -0
- package/dist/audit/secrets.d.ts.map +1 -1
- package/dist/audit/terraform-state.d.ts +46 -0
- package/dist/audit/terraform-state.d.ts.map +1 -0
- package/dist/build.d.ts +17 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/claimed-fields.d.ts +161 -0
- package/dist/claimed-fields.d.ts.map +1 -0
- package/dist/cli/build-params-cli.d.ts +2 -2
- package/dist/cli/command-group.d.ts +14 -0
- package/dist/cli/command-group.d.ts.map +1 -1
- package/dist/cli/commands/audit.d.ts +17 -1
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon-docs.d.ts +1 -1
- package/dist/cli/commands/check-lexicon-examples.d.ts +16 -6
- package/dist/cli/commands/check-lexicon-examples.d.ts.map +1 -1
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/init-lexicon/templates/codegen.d.ts +1 -0
- package/dist/cli/commands/init-lexicon/templates/codegen.d.ts.map +1 -1
- package/dist/cli/commands/init-lexicon/templates/project.d.ts +7 -0
- package/dist/cli/commands/init-lexicon/templates/project.d.ts.map +1 -1
- package/dist/cli/commands/init-lexicon.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/onboard.d.ts +2 -0
- package/dist/cli/commands/onboard.d.ts.map +1 -1
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/lifecycle.d.ts.map +1 -1
- package/dist/cli/handlers/operator.d.ts +82 -16
- package/dist/cli/handlers/operator.d.ts.map +1 -1
- package/dist/cli/handlers/run.d.ts +49 -42
- package/dist/cli/handlers/run.d.ts.map +1 -1
- package/dist/cli/main.d.ts +28 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/mcp/op-tools.d.ts +16 -1
- package/dist/cli/mcp/op-tools.d.ts.map +1 -1
- package/dist/cli/mcp/resource-handlers.d.ts.map +1 -1
- package/dist/cli/mcp/resources/context.d.ts.map +1 -1
- package/dist/cli/registry.d.ts +26 -9
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/codegen/generate-post-synth-barrel.d.ts +1 -1
- package/dist/components/auto-release.d.ts +10 -20
- package/dist/components/auto-release.d.ts.map +1 -1
- package/dist/components/capability.d.ts +4 -4
- package/dist/components/cli-support.d.ts +20 -21
- package/dist/components/cli-support.d.ts.map +1 -1
- package/dist/components/component.d.ts +3 -3
- package/dist/components/component.d.ts.map +1 -1
- package/dist/components/driver-output.d.ts.map +1 -1
- package/dist/components/driver.d.ts +66 -36
- package/dist/components/driver.d.ts.map +1 -1
- package/dist/components/index.d.ts +1 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/manifest-persistence.d.ts +1 -9
- package/dist/components/manifest-persistence.d.ts.map +1 -1
- package/dist/components/run-progress.d.ts +6 -6
- package/dist/components/run-progress.d.ts.map +1 -1
- package/dist/components/verbs/run-agent.d.ts +9 -15
- package/dist/components/verbs/run-agent.d.ts.map +1 -1
- package/dist/components/verbs/verify.d.ts +2 -2
- package/dist/deep-observation.d.ts +17 -0
- package/dist/deep-observation.d.ts.map +1 -1
- package/dist/discovery/files.d.ts +4 -4
- package/dist/discovery/fold-import.d.ts.map +1 -1
- package/dist/discovery/param-deps.d.ts +33 -0
- package/dist/discovery/param-deps.d.ts.map +1 -1
- package/dist/discovery/sandbox/bundle.d.ts.map +1 -1
- package/dist/discovery/sandbox/config-wire.d.ts +2 -2
- package/dist/fold/foldable-helpers.d.ts +5 -1
- package/dist/fold/foldable-helpers.d.ts.map +1 -1
- package/dist/fold-provenance.d.ts +236 -0
- package/dist/fold-provenance.d.ts.map +1 -0
- package/dist/graph-ops.d.ts +1 -1
- package/dist/held-elsewhere.d.ts +85 -0
- package/dist/held-elsewhere.d.ts.map +1 -0
- package/dist/import/ir-utils.d.ts +1 -1
- package/dist/import/ir-utils.d.ts.map +1 -1
- package/dist/import/parser.d.ts +33 -0
- package/dist/import/parser.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/kubectl-context.d.ts +3 -3
- package/dist/lexicon-config.d.ts +4 -4
- package/dist/lexicon-plugin-helpers.d.ts +1 -1
- package/dist/lexicon.d.ts +104 -14
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/change-set.d.ts +13 -0
- package/dist/lifecycle/change-set.d.ts.map +1 -1
- package/dist/lifecycle/deep-diff.d.ts +133 -6
- package/dist/lifecycle/deep-diff.d.ts.map +1 -1
- package/dist/lifecycle/deep-observe.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.d.ts +71 -3
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/index.d.ts +1 -0
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/release-ledger.d.ts +2 -2
- package/dist/lifecycle/run-ledger.d.ts +53 -0
- package/dist/lifecycle/run-ledger.d.ts.map +1 -0
- package/dist/lifecycle/symptoms.d.ts +3 -3
- package/dist/lifecycle/symptoms.d.ts.map +1 -1
- package/dist/lint/config.d.ts +81 -2
- package/dist/lint/config.d.ts.map +1 -1
- package/dist/lint/post-synth.d.ts +55 -2
- package/dist/lint/post-synth.d.ts.map +1 -1
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.d.ts +1 -1
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.d.ts.map +1 -1
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.d.ts +1 -1
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.d.ts.map +1 -1
- package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.d.ts +44 -0
- package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.d.ts.map +1 -0
- package/dist/lint/rules/comp/index.d.ts +1 -1
- package/dist/lint/rules/comp/index.d.ts.map +1 -1
- package/dist/lint/rules/op/index.d.ts +16 -0
- package/dist/lint/rules/op/index.d.ts.map +1 -0
- package/dist/lint/rules/op/ops012-activity-contract.d.ts +27 -0
- package/dist/lint/rules/op/ops012-activity-contract.d.ts.map +1 -0
- package/dist/lint/rules/op/ops013-step-output-ref.d.ts +61 -0
- package/dist/lint/rules/op/ops013-step-output-ref.d.ts.map +1 -0
- package/dist/lint/rules/op/ops014-converge-rule-refusals.d.ts +55 -0
- package/dist/lint/rules/op/ops014-converge-rule-refusals.d.ts.map +1 -0
- package/dist/lint/rules/op/support.d.ts +12 -0
- package/dist/lint/rules/op/support.d.ts.map +1 -0
- package/dist/lint/suppressions.d.ts +108 -0
- package/dist/lint/suppressions.d.ts.map +1 -0
- package/dist/live-endpoint.d.ts +1 -1
- package/dist/op/activities/activity-contracts.d.ts +54 -0
- package/dist/op/activities/activity-contracts.d.ts.map +1 -0
- package/dist/op/activities/apply.d.ts +262 -0
- package/dist/op/activities/apply.d.ts.map +1 -0
- package/dist/op/activities/build.d.ts +13 -0
- package/dist/op/activities/build.d.ts.map +1 -0
- package/dist/op/activities/converge.d.ts +110 -0
- package/dist/op/activities/converge.d.ts.map +1 -0
- package/dist/op/activities/env-teardown.d.ts +76 -0
- package/dist/op/activities/env-teardown.d.ts.map +1 -0
- package/dist/op/activities/guard-validate.d.ts +64 -0
- package/dist/op/activities/guard-validate.d.ts.map +1 -0
- package/dist/op/activities/http-check.d.ts +34 -0
- package/dist/op/activities/http-check.d.ts.map +1 -0
- package/dist/op/activities/index.d.ts +31 -0
- package/dist/op/activities/index.d.ts.map +1 -0
- package/dist/op/activities/lexicon-upgrade.d.ts +182 -0
- package/dist/op/activities/lexicon-upgrade.d.ts.map +1 -0
- package/dist/op/activities/lifecycle.d.ts +42 -0
- package/dist/op/activities/lifecycle.d.ts.map +1 -0
- package/dist/op/activities/pipeline-audit.d.ts +84 -0
- package/dist/op/activities/pipeline-audit.d.ts.map +1 -0
- package/dist/op/activities/policy.d.ts +17 -0
- package/dist/op/activities/policy.d.ts.map +1 -0
- package/dist/op/activities/reconcile.d.ts +89 -0
- package/dist/op/activities/reconcile.d.ts.map +1 -0
- package/dist/op/activities/shell.d.ts +13 -0
- package/dist/op/activities/shell.d.ts.map +1 -0
- package/dist/op/activities/teardown.d.ts +10 -0
- package/dist/op/activities/teardown.d.ts.map +1 -0
- package/dist/op/activities/util.d.ts +7 -0
- package/dist/op/activities/util.d.ts.map +1 -0
- package/dist/op/activities/wait.d.ts +28 -0
- package/dist/op/activities/wait.d.ts.map +1 -0
- package/dist/op/activities/workflow-audit.d.ts +92 -0
- package/dist/op/activities/workflow-audit.d.ts.map +1 -0
- package/dist/op/activity-contract-registry.d.ts +76 -0
- package/dist/op/activity-contract-registry.d.ts.map +1 -0
- package/dist/op/activity-contract.d.ts +25 -18
- package/dist/op/activity-contract.d.ts.map +1 -1
- package/dist/op/activity-failure.d.ts +28 -0
- package/dist/op/activity-failure.d.ts.map +1 -0
- package/dist/op/activity-profiles.d.ts +118 -0
- package/dist/op/activity-profiles.d.ts.map +1 -0
- package/dist/op/activity-registry.d.ts +22 -38
- package/dist/op/activity-registry.d.ts.map +1 -1
- package/dist/op/activity-runtime.d.ts +3 -14
- package/dist/op/activity-runtime.d.ts.map +1 -1
- package/dist/op/builders.d.ts +84 -29
- package/dist/op/builders.d.ts.map +1 -1
- package/dist/op/composites/apply-op.d.ts +113 -0
- package/dist/op/composites/apply-op.d.ts.map +1 -0
- package/dist/op/composites/converge-op.d.ts +120 -0
- package/dist/op/composites/converge-op.d.ts.map +1 -0
- package/dist/op/composites/index.d.ts +26 -0
- package/dist/op/composites/index.d.ts.map +1 -0
- package/dist/op/composites/lexicon-upgrade-op.d.ts +78 -0
- package/dist/op/composites/lexicon-upgrade-op.d.ts.map +1 -0
- package/dist/op/composites/pipeline-audit-op.d.ts +50 -0
- package/dist/op/composites/pipeline-audit-op.d.ts.map +1 -0
- package/dist/op/composites/reconcile-op.d.ts +57 -0
- package/dist/op/composites/reconcile-op.d.ts.map +1 -0
- package/dist/op/composites/watch-op.d.ts +60 -0
- package/dist/op/composites/watch-op.d.ts.map +1 -0
- package/dist/op/composites/workflow-audit-op.d.ts +57 -0
- package/dist/op/composites/workflow-audit-op.d.ts.map +1 -0
- package/dist/op/converge-rule.d.ts +12 -10
- package/dist/op/converge-rule.d.ts.map +1 -1
- package/dist/op/cron.d.ts +51 -0
- package/dist/op/cron.d.ts.map +1 -0
- package/dist/op/discover.d.ts +9 -0
- package/dist/op/discover.d.ts.map +1 -1
- package/dist/op/duration.d.ts +11 -0
- package/dist/op/duration.d.ts.map +1 -0
- package/dist/op/emulator-lifecycle.d.ts.map +1 -1
- package/dist/op/gate.d.ts +90 -0
- package/dist/op/gate.d.ts.map +1 -0
- package/dist/op/generate-pipeline.d.ts +9 -0
- package/dist/op/generate-pipeline.d.ts.map +1 -1
- package/dist/op/index.d.ts +23 -7
- package/dist/op/index.d.ts.map +1 -1
- package/dist/op/local-executor.d.ts +114 -28
- package/dist/op/local-executor.d.ts.map +1 -1
- package/dist/op/local-output.d.ts +11 -1
- package/dist/op/local-output.d.ts.map +1 -1
- package/dist/op/op-ir.d.ts +184 -0
- package/dist/op/op-ir.d.ts.map +1 -0
- package/dist/op/op-verb-class.d.ts +10 -2
- package/dist/op/op-verb-class.d.ts.map +1 -1
- package/dist/op/operator.d.ts +30 -5
- package/dist/op/operator.d.ts.map +1 -1
- package/dist/op/receipt-store.d.ts +1 -1
- package/dist/op/receipt-store.d.ts.map +1 -1
- package/dist/op/resource.d.ts +15 -1
- package/dist/op/resource.d.ts.map +1 -1
- package/dist/op/runtime.d.ts +200 -0
- package/dist/op/runtime.d.ts.map +1 -0
- package/dist/op/runtimes/local.d.ts +29 -0
- package/dist/op/runtimes/local.d.ts.map +1 -0
- package/dist/op/step-output-ref.d.ts +15 -13
- package/dist/op/step-output-ref.d.ts.map +1 -1
- package/dist/op/types.d.ts +79 -27
- package/dist/op/types.d.ts.map +1 -1
- package/dist/ownership.d.ts +1 -1
- package/dist/provenance.d.ts +21 -0
- package/dist/provenance.d.ts.map +1 -1
- package/dist/serializer-walker.d.ts.map +1 -1
- package/dist/stack-output.d.ts +5 -0
- package/dist/stack-output.d.ts.map +1 -1
- package/package.json +6 -1
- package/src/audit/catalog.test.ts +79 -3
- package/src/audit/catalog.ts +111 -13
- package/src/audit/core.test.ts +26 -0
- package/src/audit/core.ts +61 -17
- package/src/audit/discover.test.ts +39 -0
- package/src/audit/discover.ts +91 -15
- package/src/audit/lineage.ts +100 -0
- package/src/audit/prior-art.ts +153 -0
- package/src/audit/proof.test.ts +67 -0
- package/src/audit/proof.ts +70 -0
- package/src/audit/report-html.ts +9 -4
- package/src/audit/report-model.ts +16 -2
- package/src/audit/report.test.ts +33 -0
- package/src/audit/report.ts +5 -3
- package/src/audit/rules-doc.test.ts +34 -2
- package/src/audit/rules-doc.ts +82 -9
- package/src/audit/secrets.ts +15 -3
- package/src/audit/terraform-state.test.ts +144 -0
- package/src/audit/terraform-state.ts +131 -0
- package/src/build.ts +31 -1
- package/src/claimed-fields.test.ts +145 -0
- package/src/claimed-fields.ts +208 -0
- package/src/cli/build-params-cli.ts +2 -2
- package/src/cli/command-group.ts +14 -0
- package/src/cli/commands/__fixtures__/audit-terraform/infra/.terraform/providers/lock.txt +1 -0
- package/src/cli/commands/__fixtures__/audit-terraform/infra/main.tf +1 -0
- package/src/cli/commands/__fixtures__/audit-terraform/infra/modules/foo/main.tf +1 -0
- package/src/cli/commands/__fixtures__/audit-terraform/infra/variables.tf +3 -0
- package/src/cli/commands/__fixtures__/init-lexicon-output/package.json +13 -4
- package/src/cli/commands/__fixtures__/init-lexicon-output/src/codegen/docs-cli.ts +4 -0
- package/src/cli/commands/__fixtures__/init-lexicon-output/src/codegen/package.ts +1 -0
- package/src/cli/commands/__fixtures__/init-lexicon-output/src/package-cli.ts +21 -0
- package/src/cli/commands/__snapshots__/init-lexicon.test.ts.snap +1 -0
- package/src/cli/commands/audit.test.ts +189 -11
- package/src/cli/commands/audit.ts +73 -27
- package/src/cli/commands/build.test.ts +292 -9
- package/src/cli/commands/build.ts +156 -24
- package/src/cli/commands/check-lexicon-docs.ts +1 -1
- package/src/cli/commands/check-lexicon-examples.test.ts +29 -1
- package/src/cli/commands/check-lexicon-examples.ts +42 -10
- package/src/cli/commands/import.ts +6 -0
- package/src/cli/commands/init-lexicon/templates/codegen.ts +9 -0
- package/src/cli/commands/init-lexicon/templates/project.ts +44 -4
- package/src/cli/commands/init-lexicon.test.ts +97 -2
- package/src/cli/commands/init-lexicon.ts +4 -2
- package/src/cli/commands/init.test.ts +35 -1
- package/src/cli/commands/init.ts +14 -3
- package/src/cli/commands/lint.test.ts +48 -0
- package/src/cli/commands/lint.ts +123 -0
- package/src/cli/commands/onboard.test.ts +75 -0
- package/src/cli/commands/onboard.ts +54 -23
- package/src/cli/handlers/build.test.ts +81 -1
- package/src/cli/handlers/build.ts +15 -1
- package/src/cli/handlers/graph.test.ts +3 -3
- package/src/cli/handlers/lifecycle.test.ts +195 -12
- package/src/cli/handlers/lifecycle.ts +123 -6
- package/src/cli/handlers/misc.ts +1 -1
- package/src/cli/handlers/operator.test.ts +183 -11
- package/src/cli/handlers/operator.ts +260 -55
- package/src/cli/handlers/run.test.ts +431 -1287
- package/src/cli/handlers/run.ts +365 -915
- package/src/cli/main.test.ts +23 -15
- package/src/cli/main.ts +88 -33
- package/src/cli/mcp/op-tools.ts +147 -88
- package/src/cli/mcp/resource-handlers.ts +10 -37
- package/src/cli/mcp/resources/context.ts +11 -12
- package/src/cli/mcp/server.test.ts +25 -27
- package/src/cli/mcp/server.ts +2 -2
- package/src/cli/registry.ts +26 -9
- package/src/codegen/docs.ts +1 -1
- package/src/codegen/generate-post-synth-barrel.test.ts +1 -1
- package/src/codegen/generate-post-synth-barrel.ts +1 -1
- package/src/components/README.md +3 -2
- package/src/components/auto-release.test.ts +4 -20
- package/src/components/auto-release.ts +17 -42
- package/src/components/capability.ts +4 -4
- package/src/components/cli-support.test.ts +10 -5
- package/src/components/cli-support.ts +52 -44
- package/src/components/component.schema.json +2 -2
- package/src/components/component.ts +3 -3
- package/src/components/driver-output.ts +14 -2
- package/src/components/driver.test.ts +92 -22
- package/src/components/driver.ts +193 -83
- package/src/components/index.ts +1 -6
- package/src/components/manifest-persistence.test.ts +2 -20
- package/src/components/manifest-persistence.ts +4 -24
- package/src/components/pilots/pilots-lint-clean.test.ts +11 -10
- package/src/components/run-progress.ts +6 -6
- package/src/components/verbs/run-agent.ts +11 -17
- package/src/components/verbs/verify.ts +2 -2
- package/src/deep-observation.test.ts +75 -0
- package/src/deep-observation.ts +48 -0
- package/src/discovery/collect.test.ts +3 -3
- package/src/discovery/files.ts +4 -4
- package/src/discovery/fold-import.ts +105 -2
- package/src/discovery/param-deps.test.ts +112 -1
- package/src/discovery/param-deps.ts +193 -0
- package/src/discovery/sandbox/bundle.ts +15 -1
- package/src/discovery/sandbox/config-wire.test.ts +2 -2
- package/src/discovery/sandbox/config-wire.ts +2 -2
- package/src/fold/fold.test.ts +56 -0
- package/src/fold/foldable-helpers.ts +81 -1
- package/src/fold-provenance-exclusion.test.ts +186 -0
- package/src/fold-provenance.test.ts +495 -0
- package/src/fold-provenance.ts +441 -0
- package/src/graph-ops.test.ts +2 -2
- package/src/graph-ops.ts +1 -1
- package/src/held-elsewhere.test.ts +102 -0
- package/src/held-elsewhere.ts +114 -0
- package/src/import/ir-utils.ts +11 -1
- package/src/import/parser.ts +35 -0
- package/src/index.ts +3 -0
- package/src/kubectl-context.ts +3 -3
- package/src/lexicon-config.test.ts +5 -5
- package/src/lexicon-config.ts +4 -4
- package/src/lexicon-plugin-helpers.ts +1 -1
- package/src/lexicon.ts +120 -14
- package/src/lifecycle/change-set.test.ts +49 -0
- package/src/lifecycle/change-set.ts +67 -0
- package/src/lifecycle/converge-ledger.ts +1 -1
- package/src/lifecycle/deep-diff.test.ts +267 -14
- package/src/lifecycle/deep-diff.ts +217 -14
- package/src/lifecycle/deep-observe.test.ts +3 -1
- package/src/lifecycle/deep-observe.ts +16 -6
- package/src/lifecycle/gate-ledger.test.ts +74 -2
- package/src/lifecycle/gate-ledger.ts +143 -36
- package/src/lifecycle/index.ts +1 -0
- package/src/lifecycle/release-ledger.ts +2 -2
- package/src/lifecycle/run-ledger.test.ts +268 -0
- package/src/lifecycle/run-ledger.ts +201 -0
- package/src/lifecycle/symptoms.ts +3 -3
- package/src/lint/config.test.ts +82 -1
- package/src/lint/config.ts +112 -3
- package/src/lint/policy.test.ts +1 -1
- package/src/lint/post-synth.test.ts +31 -0
- package/src/lint/post-synth.ts +54 -1
- package/src/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.ts +2 -2
- package/src/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.ts +1 -1
- package/src/lint/rules/comp/comp.test.ts +1 -1
- package/src/lint/rules/comp/comp004-gate-needs-durable-runtime.ts +74 -0
- package/src/lint/rules/comp/index.ts +3 -3
- package/src/lint/rules/op/index.ts +23 -0
- package/src/lint/rules/op/ops012-activity-contract.test.ts +161 -0
- package/src/lint/rules/op/ops012-activity-contract.ts +64 -0
- package/src/lint/rules/op/ops013-step-output-ref.test.ts +237 -0
- package/src/lint/rules/op/ops013-step-output-ref.ts +98 -0
- package/src/lint/rules/op/ops014-converge-rule-refusals.test.ts +263 -0
- package/src/lint/rules/op/ops014-converge-rule-refusals.ts +179 -0
- package/src/lint/rules/op/support.ts +11 -0
- package/src/lint/suppressions.test.ts +163 -0
- package/src/lint/suppressions.ts +204 -0
- package/src/live-endpoint.ts +1 -1
- package/src/op/activities/activity-contracts.ts +66 -0
- package/src/op/activities/apply.test.ts +567 -0
- package/src/op/activities/apply.ts +662 -0
- package/src/op/activities/build.ts +26 -0
- package/src/op/activities/converge.test.ts +330 -0
- package/src/op/activities/converge.ts +449 -0
- package/src/op/activities/env-teardown.test.ts +187 -0
- package/src/op/activities/env-teardown.ts +171 -0
- package/src/op/activities/guard-validate.test.ts +139 -0
- package/src/op/activities/guard-validate.ts +223 -0
- package/src/op/activities/http-check.test.ts +48 -0
- package/src/op/activities/http-check.ts +55 -0
- package/src/op/activities/index.ts +119 -0
- package/src/op/activities/lexicon-upgrade.test.ts +492 -0
- package/src/op/activities/lexicon-upgrade.ts +673 -0
- package/src/op/activities/lifecycle.ts +85 -0
- package/src/op/activities/pipeline-audit.test.ts +67 -0
- package/src/op/activities/pipeline-audit.ts +201 -0
- package/src/op/activities/policy.test.ts +19 -0
- package/src/op/activities/policy.ts +37 -0
- package/src/op/activities/reconcile.test.ts +81 -0
- package/src/op/activities/reconcile.ts +187 -0
- package/src/op/activities/shell.ts +26 -0
- package/src/op/activities/teardown.ts +22 -0
- package/src/op/activities/util.ts +6 -0
- package/src/op/activities/wait.ts +69 -0
- package/src/op/activities/workflow-audit.test.ts +90 -0
- package/src/op/activities/workflow-audit.ts +203 -0
- package/src/op/activity-contract-registry.test.ts +98 -0
- package/src/op/activity-contract-registry.ts +114 -0
- package/src/op/activity-contract.test.ts +1 -1
- package/src/op/activity-contract.ts +37 -33
- package/src/op/activity-failure.ts +34 -0
- package/src/op/activity-profiles.test.ts +56 -0
- package/src/op/activity-profiles.ts +116 -0
- package/src/op/activity-registry.test.ts +37 -28
- package/src/op/activity-registry.ts +27 -56
- package/src/op/activity-runtime.ts +3 -47
- package/src/op/builders-exports.test.ts +0 -49
- package/src/op/builders-typed.test.ts +164 -0
- package/src/op/builders.ts +123 -39
- package/src/op/composites/apply-op.ts +208 -0
- package/src/op/composites/composites.test.ts +366 -0
- package/src/op/composites/converge-op.test.ts +168 -0
- package/src/op/composites/converge-op.ts +214 -0
- package/src/op/composites/index.ts +26 -0
- package/src/op/composites/lexicon-upgrade-op.test.ts +68 -0
- package/src/op/composites/lexicon-upgrade-op.ts +134 -0
- package/src/op/composites/pipeline-audit-op.test.ts +25 -0
- package/src/op/composites/pipeline-audit-op.ts +78 -0
- package/src/op/composites/reconcile-op.test.ts +51 -0
- package/src/op/composites/reconcile-op.ts +107 -0
- package/src/op/composites/watch-op.ts +108 -0
- package/src/op/composites/workflow-audit-op.test.ts +25 -0
- package/src/op/composites/workflow-audit-op.ts +88 -0
- package/src/op/converge-rule.ts +12 -10
- package/src/op/cron.test.ts +128 -0
- package/src/op/cron.ts +149 -0
- package/src/op/discover-root.test.ts +105 -1
- package/src/op/discover.test.ts +6 -2
- package/src/op/discover.ts +84 -16
- package/src/op/duration.ts +21 -0
- package/src/op/effect-step.test.ts +26 -11
- package/src/op/emulator-lifecycle.ts +1 -2
- package/src/op/gate.ts +155 -0
- package/src/op/generate-pipeline.test.ts +65 -3
- package/src/op/generate-pipeline.ts +19 -2
- package/src/op/index.ts +39 -6
- package/src/op/local-executor.test.ts +163 -34
- package/src/op/local-executor.ts +370 -102
- package/src/op/local-output.test.ts +95 -11
- package/src/op/local-output.ts +33 -4
- package/src/op/op-ir.test.ts +281 -0
- package/src/op/op-ir.ts +417 -0
- package/src/op/op-verb-class.ts +19 -5
- package/src/op/op.test.ts +26 -5
- package/src/op/operator.test.ts +175 -6
- package/src/op/operator.ts +63 -16
- package/src/op/receipt-store.ts +1 -1
- package/src/op/resource.ts +20 -2
- package/src/op/runtime.ts +203 -0
- package/src/op/runtimes/local.test.ts +181 -0
- package/src/op/runtimes/local.ts +212 -0
- package/src/op/step-output-ref.ts +15 -13
- package/src/op/types.ts +84 -24
- package/src/ownership.ts +1 -1
- package/src/provenance.test.ts +6 -0
- package/src/provenance.ts +21 -1
- package/src/serializer-walker.test.ts +42 -0
- package/src/serializer-walker.ts +21 -2
- package/src/stack-output.ts +6 -1
- package/dist/cli/handlers/op-progress.d.ts +0 -90
- package/dist/cli/handlers/op-progress.d.ts.map +0 -1
- package/dist/cli/handlers/run-client.d.ts +0 -127
- package/dist/cli/handlers/run-client.d.ts.map +0 -1
- package/dist/cli/handlers/run-report.d.ts +0 -5
- package/dist/cli/handlers/run-report.d.ts.map +0 -1
- package/dist/components/temporal-codegen-loader.d.ts +0 -27
- package/dist/components/temporal-codegen-loader.d.ts.map +0 -1
- package/dist/lint/rules/comp/comp004-gate-needs-temporal.d.ts +0 -37
- package/dist/lint/rules/comp/comp004-gate-needs-temporal.d.ts.map +0 -1
- package/src/cli/handlers/op-progress.test.ts +0 -268
- package/src/cli/handlers/op-progress.ts +0 -248
- package/src/cli/handlers/run-client.test.ts +0 -82
- package/src/cli/handlers/run-client.ts +0 -219
- package/src/cli/handlers/run-report.test.ts +0 -62
- package/src/cli/handlers/run-report.ts +0 -122
- package/src/components/temporal-codegen-loader.ts +0 -41
- package/src/lint/rules/comp/comp004-gate-needs-temporal.ts +0 -66
package/src/cli/main.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, test, expect } from "vitest";
|
|
2
2
|
import { EventEmitter } from "node:events";
|
|
3
|
-
import { parseArgs, waitForStreamDrain } from "./main";
|
|
3
|
+
import { parseArgs, waitForStreamDrain, usesRemovedTemporalFlag, REMOVED_TEMPORAL_FLAG, REMOVED_FLAG_EXIT_CODE } from "./main";
|
|
4
4
|
import { resolveCommand, type CommandDef, type ParsedArgs } from "./registry";
|
|
5
5
|
|
|
6
6
|
describe("parseArgs", () => {
|
|
@@ -10,6 +10,17 @@ describe("parseArgs", () => {
|
|
|
10
10
|
expect(parseArgs(["build", "src", "--no-fold"]).fold).toBe(false);
|
|
11
11
|
});
|
|
12
12
|
|
|
13
|
+
// #2192 — #2130 deleted `-p/--profile` with the Temporal runtime, on the
|
|
14
|
+
// belief nothing outside it read the flag. #2124 had already documented it
|
|
15
|
+
// for fountain, so the flag is back and reaches the runtime seam.
|
|
16
|
+
test("-p/--profile carries the runtime's connection profile (#2124)", () => {
|
|
17
|
+
expect(parseArgs(["run", "prod-apply", "--on", "fountain"]).profile).toBeUndefined();
|
|
18
|
+
expect(parseArgs(["run", "prod-apply", "--on", "fountain", "--profile", "staging"]).profile).toBe("staging");
|
|
19
|
+
expect(parseArgs(["run", "prod-apply", "--on", "fountain", "-p", "staging"]).profile).toBe("staging");
|
|
20
|
+
// The joined form `splitJoinedFlags` rewrites into two tokens.
|
|
21
|
+
expect(parseArgs(["run", "prod-apply", "--profile=staging"]).profile).toBe("staging");
|
|
22
|
+
});
|
|
23
|
+
|
|
13
24
|
test("--namespace carries the live read's namespace default (#1629)", () => {
|
|
14
25
|
expect(parseArgs(["graph", "--live", "--env", "prod"]).namespace).toBeUndefined();
|
|
15
26
|
expect(parseArgs(["graph", "--live", "--env", "prod", "--namespace", "app-b"]).namespace).toBe("app-b");
|
|
@@ -578,19 +589,21 @@ describe("resolveCommand", () => {
|
|
|
578
589
|
});
|
|
579
590
|
});
|
|
580
591
|
|
|
581
|
-
describe("
|
|
582
|
-
test("
|
|
583
|
-
|
|
584
|
-
expect(
|
|
585
|
-
expect(
|
|
586
|
-
expect(
|
|
592
|
+
describe("--temporal, removed in #2116", () => {
|
|
593
|
+
test("the flag is caught before parseArgs, with the line that says where the runtime went", () => {
|
|
594
|
+
expect(usesRemovedTemporalFlag(["run", "alb-deploy", "--temporal"])).toBe(true);
|
|
595
|
+
expect(usesRemovedTemporalFlag(["run", "alb-deploy", "--temporal=true"])).toBe(true);
|
|
596
|
+
expect(REMOVED_TEMPORAL_FLAG).toBe("--temporal was removed in #2116; use --on fountain");
|
|
597
|
+
expect(REMOVED_FLAG_EXIT_CODE).toBe(2);
|
|
587
598
|
});
|
|
588
599
|
|
|
589
|
-
test("
|
|
590
|
-
|
|
591
|
-
expect(
|
|
600
|
+
test("an invocation without it is untouched, and the parser has forgotten the flag", () => {
|
|
601
|
+
expect(usesRemovedTemporalFlag(["run", "alb-deploy", "--on", "fountain"])).toBe(false);
|
|
602
|
+
expect(() => parseArgs(["run", "alb-deploy", "--temporal"])).toThrow(/Unknown flag/);
|
|
592
603
|
});
|
|
604
|
+
});
|
|
593
605
|
|
|
606
|
+
describe("parseArgs — run flags", () => {
|
|
594
607
|
test("parses --report flag", () => {
|
|
595
608
|
const result = parseArgs(["run", "alb-deploy", "--report"]);
|
|
596
609
|
expect(result.command).toBe("run");
|
|
@@ -603,11 +616,6 @@ describe("parseArgs — run flags", () => {
|
|
|
603
616
|
expect(result.report).toBe(undefined);
|
|
604
617
|
});
|
|
605
618
|
|
|
606
|
-
test("profile is undefined when not provided", () => {
|
|
607
|
-
const result = parseArgs(["run", "alb-deploy"]);
|
|
608
|
-
expect(result.profile).toBe(undefined);
|
|
609
|
-
});
|
|
610
|
-
|
|
611
619
|
test("run signal parses op name and signal into positionals", () => {
|
|
612
620
|
const result = parseArgs(["run", "signal", "alb-deploy", "gate-dns"]);
|
|
613
621
|
expect(result.command).toBe("run");
|
package/src/cli/main.ts
CHANGED
|
@@ -30,7 +30,7 @@ import { runScenarioCheck, runScenarioUnknown } from "./handlers/scenario";
|
|
|
30
30
|
import { runGraph } from "./handlers/graph";
|
|
31
31
|
import { runExplain } from "./handlers/explain";
|
|
32
32
|
import { runSearch } from "./handlers/search";
|
|
33
|
-
import { runOp, runOpList, runOpStatus,
|
|
33
|
+
import { runOp, runOpList, runOpStatus, runOpApprove, runOpSignalRenamed, runOpCancel, runOpLog } from "./handlers/run";
|
|
34
34
|
import { runOperator, runOperatorStatus, runOperatorLog, runApprove } from "./handlers/operator";
|
|
35
35
|
import { runEmulator } from "./handlers/emulator";
|
|
36
36
|
import { splitJoinedFlags, dispatchCommandGroup, collectCommandGroups, formatCommandGroupsHelp, type CommandGroup } from "./command-group";
|
|
@@ -71,7 +71,6 @@ const BOOLEAN_FLAGS = new Set([
|
|
|
71
71
|
"--down",
|
|
72
72
|
"--include-dependents",
|
|
73
73
|
"--local",
|
|
74
|
-
"--temporal",
|
|
75
74
|
"--json",
|
|
76
75
|
"--progress-json",
|
|
77
76
|
"--update-snapshot",
|
|
@@ -86,14 +85,37 @@ const BOOLEAN_FLAGS = new Set([
|
|
|
86
85
|
"--yes",
|
|
87
86
|
"--confirm-prod",
|
|
88
87
|
"--once",
|
|
88
|
+
"--expire",
|
|
89
89
|
"--check-live",
|
|
90
90
|
"--check-snapshot",
|
|
91
91
|
"--fail-on-drift",
|
|
92
|
+
"--durable-requests",
|
|
92
93
|
]);
|
|
93
94
|
|
|
94
95
|
/**
|
|
95
96
|
* Parse command line arguments
|
|
96
97
|
*/
|
|
98
|
+
/**
|
|
99
|
+
* `--temporal` picked the Temporal runtime, which #2116 deleted. It is caught
|
|
100
|
+
* ahead of {@link parseArgs} — which no longer knows the flag at all — for one
|
|
101
|
+
* minor version, so an invocation that still carries it is told where the
|
|
102
|
+
* runtime went instead of getting "Unknown flag: --temporal" and a pointer at
|
|
103
|
+
* `--help`. Delete this, its test and the constants below once that version
|
|
104
|
+
* has shipped.
|
|
105
|
+
*/
|
|
106
|
+
export const REMOVED_TEMPORAL_FLAG = "--temporal was removed in #2116; use --on fountain";
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Not 1: a removed flag means the command never started, so a CI job that
|
|
110
|
+
* retries a failed run has nothing to retry here.
|
|
111
|
+
*/
|
|
112
|
+
export const REMOVED_FLAG_EXIT_CODE = 2;
|
|
113
|
+
|
|
114
|
+
/** Matches the bare flag and the joined `--temporal=…` form `splitJoinedFlags` would otherwise split. */
|
|
115
|
+
export function usesRemovedTemporalFlag(argv: string[]): boolean {
|
|
116
|
+
return argv.some((arg) => arg === "--temporal" || arg.startsWith("--temporal="));
|
|
117
|
+
}
|
|
118
|
+
|
|
97
119
|
export function parseArgs(args: string[]): ParsedArgs {
|
|
98
120
|
// Local mutable copy — chant #1127's joined-`--flag=value` splitting below
|
|
99
121
|
// rewrites the array in place (one token becomes two), so this must not
|
|
@@ -115,12 +137,11 @@ export function parseArgs(args: string[]): ParsedArgs {
|
|
|
115
137
|
watch: false,
|
|
116
138
|
verbose: false,
|
|
117
139
|
help: false,
|
|
118
|
-
profile: undefined,
|
|
119
140
|
param: undefined,
|
|
120
141
|
paramsFile: undefined,
|
|
121
142
|
report: undefined,
|
|
122
143
|
local: undefined,
|
|
123
|
-
|
|
144
|
+
profile: undefined,
|
|
124
145
|
json: undefined,
|
|
125
146
|
live: false,
|
|
126
147
|
migrateFrom: undefined,
|
|
@@ -303,12 +324,16 @@ export function parseArgs(args: string[]): ParsedArgs {
|
|
|
303
324
|
result.includeDependents = true;
|
|
304
325
|
} else if (arg === "--local") {
|
|
305
326
|
result.local = true;
|
|
306
|
-
} else if (arg === "--temporal") {
|
|
307
|
-
result.temporal = true;
|
|
308
327
|
} else if (arg === "--json") {
|
|
309
328
|
result.json = true;
|
|
310
329
|
} else if (arg === "--progress-json") {
|
|
311
330
|
result.progressJson = true;
|
|
331
|
+
} else if (arg === "--durable-requests") {
|
|
332
|
+
// `chant run approve ... --on <lexicon> --durable-requests` (#2126) —
|
|
333
|
+
// resolve the gate on the hosting runtime's own request path rather
|
|
334
|
+
// than by posting a follow-up prompt. Core only carries the flag; the
|
|
335
|
+
// runtime decides whether it has such a path.
|
|
336
|
+
result.durableRequests = true;
|
|
312
337
|
} else if (arg === "--update-snapshot") {
|
|
313
338
|
result.updateSnapshot = true;
|
|
314
339
|
} else if (arg === "--update-baseline") {
|
|
@@ -345,6 +370,10 @@ export function parseArgs(args: string[]): ParsedArgs {
|
|
|
345
370
|
result.actor = args[++i];
|
|
346
371
|
} else if (arg === "--approver") {
|
|
347
372
|
result.approver = args[++i];
|
|
373
|
+
} else if (arg === "--on") {
|
|
374
|
+
// `chant run ... --on <lexicon>` (#2121) — which runtime hosts the run.
|
|
375
|
+
result.on = args[++i];
|
|
376
|
+
if (!result.on || result.on.startsWith("-")) throw new Error("--on needs a runtime name: --on <lexicon>");
|
|
348
377
|
} else if (arg === "--compare-to") {
|
|
349
378
|
result.compareTo = args[++i];
|
|
350
379
|
} else if (arg === "--no-release-record") {
|
|
@@ -389,6 +418,8 @@ export function parseArgs(args: string[]): ParsedArgs {
|
|
|
389
418
|
result.once = true;
|
|
390
419
|
} else if (arg === "--note") {
|
|
391
420
|
result.note = args[++i];
|
|
421
|
+
} else if (arg === "--expire") {
|
|
422
|
+
result.expire = true;
|
|
392
423
|
} else if (arg === "--url") {
|
|
393
424
|
result.url = args[++i];
|
|
394
425
|
} else if (arg === "--op") {
|
|
@@ -463,7 +494,7 @@ Commands:
|
|
|
463
494
|
chant code instead of reading a template file)
|
|
464
495
|
audit [path|url] Audit a repo's CI YAML for security issues
|
|
465
496
|
(--format stylish|json|sarif|markdown|html, -o <file>,
|
|
466
|
-
--tier merge-worthy|all, --fail-on merge-worthy|warning|none,
|
|
497
|
+
--tier merge-worthy|all, --fail-on merge-worthy|warning|error|none,
|
|
467
498
|
--template <file> / --theme <file> for the html report)
|
|
468
499
|
--agents audits this machine's agent configuration —
|
|
469
500
|
instruction files, MCP servers, skills, plugins,
|
|
@@ -505,18 +536,12 @@ Commands:
|
|
|
505
536
|
applied) and path. Read-only.
|
|
506
537
|
|
|
507
538
|
Ops:
|
|
508
|
-
run <name>
|
|
509
|
-
run list List all Ops with
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
run
|
|
513
|
-
--components: show a Component's durable run state instead (#599)
|
|
514
|
-
run signal <name> <signal> Send a named signal to unblock a gate
|
|
515
|
-
--components: signal a Component's workflow instead (#589)
|
|
516
|
-
run cancel <name> Cancel the active workflow run (requires --force)
|
|
517
|
-
--components: cancel a Component's workflow instead (#589)
|
|
539
|
+
run <name> Run an Op on the resolved runtime (--on; local by default)
|
|
540
|
+
run list List all Ops with the runtime's state for each
|
|
541
|
+
run status <name> Show the runtime's state for one Op's latest run
|
|
542
|
+
run approve <op> <gate> Record a gate's resolution and wake the runtime
|
|
543
|
+
run cancel <name> Cancel the active run (requires --force)
|
|
518
544
|
run log <name> Show run history for an Op
|
|
519
|
-
--components: show a Component's run history instead (#599)
|
|
520
545
|
run --components <name|all> Run discovered Component(s) through the interpret
|
|
521
546
|
driver on the local executor (--env <env>; #585).
|
|
522
547
|
On success, auto-emits a release-ledger record per
|
|
@@ -528,7 +553,7 @@ Ops:
|
|
|
528
553
|
progress instead of tailing raw logs (additive; run
|
|
529
554
|
semantics/exit code unchanged)
|
|
530
555
|
operator Run scheduled ticks for discovered ConvergeOps
|
|
531
|
-
locally
|
|
556
|
+
locally (#1485): acquire/renew a per-op
|
|
532
557
|
lease (git ref CAS), tick on --interval, record every
|
|
533
558
|
result as a ledger fact. --env <env> scopes to one
|
|
534
559
|
environment; --interval <dur> (default 60s) and
|
|
@@ -548,13 +573,14 @@ Ops:
|
|
|
548
573
|
silently short
|
|
549
574
|
approve <op> <gate> Record a gate's out-of-band resolution fact
|
|
550
575
|
(--actor <name>, --note <text>, --url <url>) — the
|
|
551
|
-
durable counterpart to a
|
|
552
|
-
gate
|
|
553
|
-
operator status. --url is the PR/MR the resolution
|
|
576
|
+
durable counterpart to the pending fact a run records
|
|
577
|
+
when it reaches the gate; see the pending-gates list
|
|
578
|
+
in operator status. --url is the PR/MR the resolution
|
|
554
579
|
happened at, recorded typed rather than as free text,
|
|
555
580
|
and defaults to the PR/MR of the surrounding CI job.
|
|
556
|
-
|
|
557
|
-
|
|
581
|
+
The next "chant run <op>" walks through the gate.
|
|
582
|
+
--expire clears a pending fact without approving it,
|
|
583
|
+
so the gate is re-decided from scratch next run
|
|
558
584
|
|
|
559
585
|
graph Show Op dependency graph (--stacks for cross-stack order,
|
|
560
586
|
--format ir|mermaid|dot|layout for the lint-gated graph IR,
|
|
@@ -663,12 +689,15 @@ Options:
|
|
|
663
689
|
resolved build parameter and per-file fold decision
|
|
664
690
|
instead of the one-line summaries
|
|
665
691
|
-h, --help Show this help message
|
|
666
|
-
|
|
692
|
+
--on <lexicon> Which runtime hosts the run: a configured lexicon with
|
|
693
|
+
an opRuntime, or the built-in local runtime when
|
|
694
|
+
omitted (every run subcommand; #2121)
|
|
667
695
|
--local Run an Op with the local in-process executor (default)
|
|
668
|
-
--
|
|
696
|
+
-p, --profile <name> Named connection profile the hosting runtime targets
|
|
697
|
+
(fountain.profiles in chant.config.ts); each runtime's
|
|
698
|
+
own default when omitted (#2124)
|
|
669
699
|
--json Emit the structured run result as JSON (run command)
|
|
670
|
-
--report
|
|
671
|
-
OR with a path arg: SARIF report destination (migrate)
|
|
700
|
+
--report With a path arg: SARIF report destination (migrate)
|
|
672
701
|
OR '--report gitlab-mr': emit the GitLab MR plan-widget
|
|
673
702
|
JSON (lifecycle plan)
|
|
674
703
|
OR '--report markdown': emit a reviewer-facing markdown
|
|
@@ -794,8 +823,17 @@ async function tryPluginCommand(rawArgv: string[]): Promise<number | undefined>
|
|
|
794
823
|
if (!groupName || groupName.startsWith("-")) return undefined;
|
|
795
824
|
|
|
796
825
|
const plugins = await loadPluginsBestEffort();
|
|
797
|
-
|
|
798
|
-
|
|
826
|
+
|
|
827
|
+
// A group declaring a `defaultVerb` (#2125) answers its bare name, so
|
|
828
|
+
// `chant acp` and `chant acp --durable-requests` both reach that verb. The
|
|
829
|
+
// slicing follows: with no verb token consumed, everything after the group
|
|
830
|
+
// name is the default verb's own argument list.
|
|
831
|
+
const group = collectCommandGroups(plugins).find((g) => g.name === groupName);
|
|
832
|
+
const useDefault =
|
|
833
|
+
group?.defaultVerb !== undefined && (verbName === undefined || verbName.startsWith("-"));
|
|
834
|
+
const verb = useDefault ? group?.defaultVerb : verbName;
|
|
835
|
+
const rawArgs = rawArgv.slice(useDefault ? 1 : 2);
|
|
836
|
+
const result = await dispatchCommandGroup(plugins, groupName, verb, rawArgs);
|
|
799
837
|
|
|
800
838
|
if (result.kind === "no-group") return undefined;
|
|
801
839
|
if (result.kind === "usage-error") {
|
|
@@ -852,7 +890,17 @@ async function loadPluginsOrExit(path: string): Promise<import("../lexicon").Lex
|
|
|
852
890
|
|
|
853
891
|
// ── Command registry ──────────────────────────────────────────────
|
|
854
892
|
|
|
855
|
-
|
|
893
|
+
/**
|
|
894
|
+
* Every command word `chant` answers to, and the handler behind it.
|
|
895
|
+
*
|
|
896
|
+
* Exported because a caller other than `main()` now needs to ask "is this a
|
|
897
|
+
* chant verb, and what runs it?" — the fountain lexicon's ACP server (#2125)
|
|
898
|
+
* treats a prompt as a chant command line, and the only honest answer to
|
|
899
|
+
* whether `chant lifecycle diff` is a verb is this list. A hand-kept copy
|
|
900
|
+
* would be wrong the first time a command is added, and the ACP server would
|
|
901
|
+
* refuse a verb that works at the terminal.
|
|
902
|
+
*/
|
|
903
|
+
export const commandRegistry: CommandDef[] = [
|
|
856
904
|
// Primary commands
|
|
857
905
|
{ name: "build", requiresPlugins: true, handler: runBuild },
|
|
858
906
|
{ name: "lint", handler: runLint },
|
|
@@ -897,7 +945,8 @@ const registry: CommandDef[] = [
|
|
|
897
945
|
// Op / run subcommands
|
|
898
946
|
{ name: "run list", handler: runOpList },
|
|
899
947
|
{ name: "run status", handler: runOpStatus },
|
|
900
|
-
{ name: "run
|
|
948
|
+
{ name: "run approve", handler: runOpApprove },
|
|
949
|
+
{ name: "run signal", handler: runOpSignalRenamed },
|
|
901
950
|
{ name: "run cancel", handler: runOpCancel },
|
|
902
951
|
{ name: "run log", handler: runOpLog },
|
|
903
952
|
{ name: "run", handler: runOp },
|
|
@@ -957,6 +1006,12 @@ const registry: CommandDef[] = [
|
|
|
957
1006
|
async function main(): Promise<void> {
|
|
958
1007
|
const rawArgv = process.argv.slice(2);
|
|
959
1008
|
|
|
1009
|
+
if (usesRemovedTemporalFlag(rawArgv)) {
|
|
1010
|
+
console.error(formatError({ message: REMOVED_TEMPORAL_FLAG }));
|
|
1011
|
+
await flushAndExit(REMOVED_FLAG_EXIT_CODE);
|
|
1012
|
+
return;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
960
1015
|
let args: ParsedArgs;
|
|
961
1016
|
try {
|
|
962
1017
|
args = parseArgs(rawArgv);
|
|
@@ -1026,7 +1081,7 @@ async function main(): Promise<void> {
|
|
|
1026
1081
|
process.exit(1);
|
|
1027
1082
|
}
|
|
1028
1083
|
|
|
1029
|
-
const match = resolveCommand(args,
|
|
1084
|
+
const match = resolveCommand(args, commandRegistry);
|
|
1030
1085
|
if (!match) {
|
|
1031
1086
|
// chant #1078 — not one of core's own commands; check whether a lexicon
|
|
1032
1087
|
// mounted a command group under this name before giving up. This is the
|