@intentius/chant 0.57.0 → 0.59.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 +36 -1
- package/dist/audit/core.d.ts.map +1 -1
- package/dist/audit/discover.d.ts +26 -9
- 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/carve-bridge.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/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 +13 -0
- 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 +12 -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/plugins.d.ts +22 -0
- package/dist/cli/plugins.d.ts.map +1 -1
- package/dist/cli/registry.d.ts +40 -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 +24 -22
- package/dist/components/cli-support.d.ts.map +1 -1
- package/dist/components/component.d.ts +21 -6
- 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 +73 -37
- 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 +10 -22
- 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/detectLexicon.d.ts +13 -0
- package/dist/detectLexicon.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/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 +273 -16
- 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 +79 -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 +149 -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 +85 -30
- package/dist/op/builders.d.ts.map +1 -1
- package/dist/op/change-signal.d.ts +91 -0
- package/dist/op/change-signal.d.ts.map +1 -0
- package/dist/op/composites/apply-op.d.ts +118 -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-name.d.ts +40 -0
- package/dist/op/gate-name.d.ts.map +1 -0
- package/dist/op/gate-summary.d.ts +43 -0
- package/dist/op/gate-summary.d.ts.map +1 -0
- 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 +29 -9
- 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 +185 -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 +93 -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 +96 -29
- 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/terraform/bridge.d.ts +26 -7
- package/dist/terraform/bridge.d.ts.map +1 -1
- package/dist/terraform/carve-provider.d.ts +28 -2
- package/dist/terraform/carve-provider.d.ts.map +1 -1
- package/dist/terraform/data-source-shape.d.ts +77 -0
- package/dist/terraform/data-source-shape.d.ts.map +1 -0
- package/dist/terraform/graph.d.ts.map +1 -1
- package/dist/terraform/providers/kubernetes.d.ts +5 -0
- package/dist/terraform/providers/kubernetes.d.ts.map +1 -1
- package/dist/terraform/tier-map.d.ts +16 -4
- package/dist/terraform/tier-map.d.ts.map +1 -1
- package/dist/terraform/types.d.ts +8 -0
- package/dist/terraform/types.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 +84 -18
- package/src/audit/discover.test.ts +39 -0
- package/src/audit/discover.ts +202 -18
- 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 +191 -11
- package/src/cli/commands/audit.ts +78 -28
- package/src/cli/commands/build.test.ts +330 -9
- package/src/cli/commands/build.ts +170 -24
- package/src/cli/commands/carve-bridge.test.ts +237 -14
- package/src/cli/commands/carve-bridge.ts +21 -17
- package/src/cli/commands/carve-emit-k8s.test.ts +17 -10
- 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/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 +194 -1
- package/src/cli/commands/lint.ts +205 -7
- 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 +341 -55
- package/src/cli/handlers/run.test.ts +568 -1295
- package/src/cli/handlers/run.ts +446 -912
- package/src/cli/main.test.ts +22 -16
- package/src/cli/main.ts +66 -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/plugins.test.ts +68 -2
- package/src/cli/plugins.ts +39 -0
- package/src/cli/registry.ts +40 -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 +4 -3
- package/src/components/__fixtures__/neo4j-fanout.json +1 -1
- 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 +28 -12
- package/src/components/cli-support.ts +60 -47
- package/src/components/component-schema.test.ts +18 -2
- package/src/components/component.schema.json +18 -5
- package/src/components/component.test.ts +2 -2
- package/src/components/component.ts +27 -7
- package/src/components/config-defaults.test.ts +2 -2
- package/src/components/driver-output.ts +14 -2
- package/src/components/driver.test.ts +109 -20
- package/src/components/driver.ts +201 -84
- 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/neo4j-fanout.pilot.ts +3 -3
- 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.test.ts +19 -0
- package/src/components/verbs/run-agent.ts +12 -24
- 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/detectLexicon.ts +18 -1
- package/src/discovery/collect.test.ts +3 -3
- package/src/discovery/files.ts +4 -4
- package/src/discovery/fold-import.test.ts +1 -1
- 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 +82 -2
- 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 +3 -3
- package/src/graph-ops.ts +1 -1
- package/src/held-elsewhere.test.ts +102 -0
- package/src/held-elsewhere.ts +114 -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 +296 -16
- 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 +154 -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/pipeline-change-gate.test.ts +2 -2
- 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 +27 -1
- package/src/lint/rules/comp/comp004-gate-needs-durable-runtime.ts +76 -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 +161 -0
- package/src/op/activities/reconcile.ts +354 -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 +125 -41
- package/src/op/change-signal.test.ts +117 -0
- package/src/op/change-signal.ts +169 -0
- package/src/op/composites/apply-op.ts +218 -0
- package/src/op/composites/composites.test.ts +379 -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 +110 -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 +29 -14
- package/src/op/emulator-lifecycle.ts +1 -2
- package/src/op/gate-name.test.ts +65 -0
- package/src/op/gate-name.ts +60 -0
- package/src/op/gate-summary.ts +84 -0
- 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 +48 -8
- package/src/op/local-executor.test.ts +178 -34
- package/src/op/local-executor.ts +371 -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 +292 -0
- package/src/op/op-ir.ts +419 -0
- package/src/op/op-verb-class.test.ts +2 -2
- package/src/op/op-verb-class.ts +19 -5
- package/src/op/op.test.ts +28 -7
- package/src/op/operator.test.ts +543 -6
- package/src/op/operator.ts +203 -20
- 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 +106 -26
- 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/terraform/aws-resources.test.ts +13 -4
- package/src/terraform/bridge.test.ts +22 -9
- package/src/terraform/bridge.ts +89 -28
- package/src/terraform/carve-provider.ts +38 -2
- package/src/terraform/data-source-shape.ts +95 -0
- package/src/terraform/graph.ts +35 -7
- package/src/terraform/providers/kubernetes.ts +48 -2
- package/src/terraform/tier-map.ts +21 -6
- package/src/terraform/types.ts +8 -0
- 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
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* lexiconUpgrade — the upgrade-detection and PR-automation activity for
|
|
3
|
+
* in-scope lexicons (k8s, gcp, docker, gitlab, aws, azure, github).
|
|
4
|
+
*
|
|
5
|
+
* Classifies the lexicon as pinned or rolling, calls the right check function,
|
|
6
|
+
* then surfaces the result in the requested mode: report (default), issue, or
|
|
7
|
+
* pull-request. In pull-request mode it maintains a long-lived branch per
|
|
8
|
+
* lexicon (`lexicon-upgrade/<lexicon>`), updates the PR in place when the delta
|
|
9
|
+
* changes, and applies a semver label derived from the surface severity.
|
|
10
|
+
*
|
|
11
|
+
* For pinned lexicons in pull-request mode, the PR also bumps the lexicon's
|
|
12
|
+
* own package.json version according to the semver label (minor → minor bump,
|
|
13
|
+
* breaking → major bump). Merging the PR carries the version change so
|
|
14
|
+
* publish-on-merge can ship just that lexicon without a full monorepo release.
|
|
15
|
+
*
|
|
16
|
+
* Rolling lexicons (aws, azure, github) drift on their own cadence and are not
|
|
17
|
+
* version-bumped here — they move to drift-issues per #546.
|
|
18
|
+
*
|
|
19
|
+
* Supply-chain note: this activity never executes spec-provided content.
|
|
20
|
+
* It only reads the artifacts produced by the lexicon's own generate step,
|
|
21
|
+
* which is called through the lexicon's npm prepack chain.
|
|
22
|
+
*/
|
|
23
|
+
import type { UpgradeCheckResult, LexiconId } from "../../codegen/pinned-upgrade.js";
|
|
24
|
+
import type { RollingUpgradeResult, RollingLexicon } from "../../codegen/rolling-upgrade.js";
|
|
25
|
+
import { bumpPackageJsonVersion } from "../../codegen/version-bump.js";
|
|
26
|
+
export { bumpPackageJsonVersion };
|
|
27
|
+
/** Finding mode, mirrors ReconcileOp's mode. */
|
|
28
|
+
export type LexiconUpgradeMode = "report" | "issue" | "pull-request";
|
|
29
|
+
/** All lexicons supported by this activity. */
|
|
30
|
+
export type SupportedLexicon = LexiconId | RollingLexicon;
|
|
31
|
+
/** Semver label applied to upgrade PRs. */
|
|
32
|
+
export type SemverLabel = "minor" | "breaking";
|
|
33
|
+
export interface LexiconUpgradeArgs {
|
|
34
|
+
/**
|
|
35
|
+
* Which lexicon to check. Determines pinned vs rolling dispatch:
|
|
36
|
+
* PINNED: k8s, gcp, docker, gitlab, cedar
|
|
37
|
+
* ROLLING: aws, azure, github, fly
|
|
38
|
+
*/
|
|
39
|
+
lexicon: SupportedLexicon;
|
|
40
|
+
/**
|
|
41
|
+
* Absolute path to the lexicon root directory.
|
|
42
|
+
* Defaults to `<cwd>/lexicons/<lexicon>`.
|
|
43
|
+
*/
|
|
44
|
+
lexiconDir?: string;
|
|
45
|
+
/** What to produce. Default: "report". */
|
|
46
|
+
mode?: LexiconUpgradeMode;
|
|
47
|
+
/**
|
|
48
|
+
* Override the pinned check function — inject a mock in tests.
|
|
49
|
+
* The real implementation calls checkPinnedUpgrade from core.
|
|
50
|
+
*/
|
|
51
|
+
_checkPinned?: CheckPinnedFn;
|
|
52
|
+
/**
|
|
53
|
+
* Override the rolling check function — inject a mock in tests.
|
|
54
|
+
* The real implementation calls checkRollingUpgrade from core.
|
|
55
|
+
*/
|
|
56
|
+
_checkRolling?: CheckRollingFn;
|
|
57
|
+
/**
|
|
58
|
+
* Override the gh/git runner — inject a mock in tests.
|
|
59
|
+
*/
|
|
60
|
+
_gh?: GhRunner;
|
|
61
|
+
/**
|
|
62
|
+
* Override the applyPinnedVersionBump function — inject a mock in tests.
|
|
63
|
+
*/
|
|
64
|
+
_applyBump?: ApplyBumpFn;
|
|
65
|
+
/**
|
|
66
|
+
* Override the package.json version writer — inject a mock in tests.
|
|
67
|
+
* Defaults to bumpPackageJsonVersion.
|
|
68
|
+
*/
|
|
69
|
+
_bumpPackageVersion?: BumpPackageVersionFn;
|
|
70
|
+
}
|
|
71
|
+
export interface LexiconUpgradeResult {
|
|
72
|
+
lexicon: SupportedLexicon;
|
|
73
|
+
mode: LexiconUpgradeMode;
|
|
74
|
+
/** True when an upgrade is available and validation passed. */
|
|
75
|
+
hasUpgrade: boolean;
|
|
76
|
+
/** Human-readable surface delta summary. Empty when no upgrade. */
|
|
77
|
+
deltaText: string;
|
|
78
|
+
/** Semver label applied to the PR. null when no upgrade or no change. */
|
|
79
|
+
semverLabel: SemverLabel | null;
|
|
80
|
+
/** URL of the opened/updated PR (pull-request mode). */
|
|
81
|
+
prUrl?: string;
|
|
82
|
+
/** URL of the opened issue (issue mode). */
|
|
83
|
+
issueUrl?: string;
|
|
84
|
+
/** Full markdown summary, used as PR/issue body or printed in report mode. */
|
|
85
|
+
summary: string;
|
|
86
|
+
/** Whether validation passed. False means a breakage report was produced. */
|
|
87
|
+
validationOk: boolean;
|
|
88
|
+
}
|
|
89
|
+
/** Matches checkPinnedUpgrade from core. */
|
|
90
|
+
export type CheckPinnedFn = (opts: {
|
|
91
|
+
lexiconDir: string;
|
|
92
|
+
lexicon: LexiconId;
|
|
93
|
+
force?: boolean;
|
|
94
|
+
verbose?: boolean;
|
|
95
|
+
}) => Promise<UpgradeCheckResult>;
|
|
96
|
+
/** Matches checkRollingUpgrade from core. */
|
|
97
|
+
export type CheckRollingFn = (opts: {
|
|
98
|
+
lexiconDir: string;
|
|
99
|
+
force?: boolean;
|
|
100
|
+
verbose?: boolean;
|
|
101
|
+
}) => Promise<RollingUpgradeResult>;
|
|
102
|
+
/** Minimal shell-exec interface for gh/git invocations. */
|
|
103
|
+
export type GhRunner = (cmd: string) => Promise<{
|
|
104
|
+
stdout: string;
|
|
105
|
+
stderr: string;
|
|
106
|
+
}>;
|
|
107
|
+
/** Applies a pinned version bump permanently (no revert). Async (core loads the lexicon's pin descriptor); a sync mock is also accepted. */
|
|
108
|
+
export type ApplyBumpFn = (lexicon: LexiconId, lexiconDir: string, newVersion: string) => {
|
|
109
|
+
filePath: string;
|
|
110
|
+
} | Promise<{
|
|
111
|
+
filePath: string;
|
|
112
|
+
}>;
|
|
113
|
+
/**
|
|
114
|
+
* Write a new version into a package.json, returning the file path.
|
|
115
|
+
* Injectable for tests via LexiconUpgradeArgs._bumpPackageVersion.
|
|
116
|
+
*/
|
|
117
|
+
export type BumpPackageVersionFn = (packageJsonPath: string, newVersion: string) => void;
|
|
118
|
+
/**
|
|
119
|
+
* Compute a bumped semver string from a current version and a semver label.
|
|
120
|
+
*
|
|
121
|
+
* The mapping is 0.x-aware, because promoting to 1.0.0 should signal the
|
|
122
|
+
* lexicon's own API stability, not track an upstream spec's breaking change:
|
|
123
|
+
*
|
|
124
|
+
* - Pre-1.0 (major === 0): "breaking" bumps the minor (0.13.1 → 0.14.0),
|
|
125
|
+
* "minor" (additive) bumps the patch (0.13.1 → 0.13.2). Never auto-1.0.0.
|
|
126
|
+
* - >= 1.0.0: "minor" bumps the minor (1.2.3 → 1.3.0), "breaking" bumps the
|
|
127
|
+
* major (1.2.3 → 2.0.0).
|
|
128
|
+
*
|
|
129
|
+
* Handles the common "MAJOR.MINOR.PATCH" form. Returns null when the
|
|
130
|
+
* current version string cannot be parsed as M.m.p.
|
|
131
|
+
*/
|
|
132
|
+
export declare function computeBumpedVersion(current: string, label: SemverLabel): string | null;
|
|
133
|
+
/** Return true when the lexicon uses a pinned version constant. */
|
|
134
|
+
export declare function isPinned(lexicon: SupportedLexicon): lexicon is LexiconId;
|
|
135
|
+
/** Return true when the lexicon follows a rolling spec (no pinned constant). */
|
|
136
|
+
export declare function isRolling(lexicon: SupportedLexicon): lexicon is RollingLexicon;
|
|
137
|
+
/**
|
|
138
|
+
* Map a surface severity to a semver label for the PR.
|
|
139
|
+
*
|
|
140
|
+
* "additive" → "minor" (new resources/properties added)
|
|
141
|
+
* "breaking" → "breaking" (removed or changed resources/properties)
|
|
142
|
+
* "none" → null (surface unchanged)
|
|
143
|
+
*/
|
|
144
|
+
export declare function severityToLabel(severity: string): SemverLabel | null;
|
|
145
|
+
/** Long-lived branch name for a lexicon upgrade PR. */
|
|
146
|
+
export declare function upgradeBranchName(lexicon: SupportedLexicon): string;
|
|
147
|
+
/** PR title for an upgrade. */
|
|
148
|
+
export declare function upgradePrTitle(lexicon: SupportedLexicon, from?: string, to?: string | null): string;
|
|
149
|
+
/** Build the PR/issue/report body from the upgrade result data. */
|
|
150
|
+
export declare function buildUpgradeSummary(opts: {
|
|
151
|
+
lexicon: SupportedLexicon;
|
|
152
|
+
from?: string;
|
|
153
|
+
to?: string | null;
|
|
154
|
+
deltaText: string;
|
|
155
|
+
semverLabel: SemverLabel | null;
|
|
156
|
+
validationOk: boolean;
|
|
157
|
+
failures?: Array<{
|
|
158
|
+
step: string;
|
|
159
|
+
output: string;
|
|
160
|
+
}>;
|
|
161
|
+
}): string;
|
|
162
|
+
/**
|
|
163
|
+
* Run the lexicon upgrade check for one lexicon and surface the result.
|
|
164
|
+
*
|
|
165
|
+
* Pinned lexicons (k8s, gcp, docker, gitlab):
|
|
166
|
+
* Calls checkPinnedUpgrade. A PR is opened only when hasUpgrade=true AND
|
|
167
|
+
* validation passed. Validation failures produce a report or issue.
|
|
168
|
+
*
|
|
169
|
+
* Rolling lexicons (aws, azure, github):
|
|
170
|
+
* Calls checkRollingUpgrade. A PR is opened only when the surface changed
|
|
171
|
+
* AND validation passed. Surface unchanged = no action.
|
|
172
|
+
*
|
|
173
|
+
* In pull-request mode:
|
|
174
|
+
* - Branch: lexicon-upgrade/<lexicon> (long-lived, one per lexicon).
|
|
175
|
+
* - Idempotent: if the open PR body matches the new summary, skip re-push.
|
|
176
|
+
* - Semver label: "minor" (additive) or "breaking" (changed/removed).
|
|
177
|
+
* - Validation failure falls back to issue mode.
|
|
178
|
+
*
|
|
179
|
+
* Never auto-merges or auto-publishes.
|
|
180
|
+
*/
|
|
181
|
+
export declare function lexiconUpgrade(args: LexiconUpgradeArgs): Promise<LexiconUpgradeResult>;
|
|
182
|
+
//# sourceMappingURL=lexicon-upgrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexicon-upgrade.d.ts","sourceRoot":"","sources":["../../../src/op/activities/lexicon-upgrade.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface LifecycleSnapshotArgs {
|
|
2
|
+
/** Environment name (e.g. "dev", "staging", "prod"). */
|
|
3
|
+
env: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Take a chant lifecycle snapshot for the given environment.
|
|
7
|
+
* Uses fastIdempotent profile — 5m timeout, 3 retries.
|
|
8
|
+
*/
|
|
9
|
+
export declare function lifecycleSnapshot(args: LifecycleSnapshotArgs, signal?: AbortSignal): Promise<void>;
|
|
10
|
+
export interface LifecycleDiffArgs {
|
|
11
|
+
/** Environment name (e.g. "dev", "staging", "prod"). */
|
|
12
|
+
env: string;
|
|
13
|
+
/**
|
|
14
|
+
* When true, run `chant lifecycle diff <env> --live` (queries cloud APIs).
|
|
15
|
+
* When false (default), run digest-only diff against the last snapshot.
|
|
16
|
+
*/
|
|
17
|
+
live?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface LifecycleDiffResult {
|
|
20
|
+
/** Combined stdout + stderr from the chant command. */
|
|
21
|
+
output: string;
|
|
22
|
+
/** Process exit code (0 = success). */
|
|
23
|
+
exitCode: number;
|
|
24
|
+
/**
|
|
25
|
+
* True when the diff output contains any drift indicators
|
|
26
|
+
* (MISSING / ORPHAN / DRIFTED / DISAPPEARED section headers from
|
|
27
|
+
* `chant lifecycle diff --live`).
|
|
28
|
+
*/
|
|
29
|
+
drifted: boolean;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Run `chant lifecycle diff <env>` and return the output + structured drift
|
|
33
|
+
* flag. Read-only; intended for use inside watch/observation Ops.
|
|
34
|
+
* Uses fastIdempotent profile.
|
|
35
|
+
*
|
|
36
|
+
* The `drifted` field is computed by scanning the output for any of the
|
|
37
|
+
* MISSING / ORPHAN / DRIFTED / DISAPPEARED section headers documented in
|
|
38
|
+
* cli/state.mdx. Pair with `outcomeAttribute: { name: "Drift", from: "drifted" }`
|
|
39
|
+
* on a WatchOp activity step to surface drift as the run's `Drift` outcome.
|
|
40
|
+
*/
|
|
41
|
+
export declare function lifecycleDiff(args: LifecycleDiffArgs, signal?: AbortSignal): Promise<LifecycleDiffResult>;
|
|
42
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/op/activities/lifecycle.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,qBAAqB;IACpC,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxG;AAED,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAoBD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAa/G"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pipelineSupplyChainAudit — the live counterpart to the gitlab post-synth
|
|
3
|
+
* include/component/image checks (#297).
|
|
4
|
+
*
|
|
5
|
+
* Some include/component checks can only be answered against a moving external
|
|
6
|
+
* truth: whether a pinned component/include ref still resolves upstream, whether
|
|
7
|
+
* the upstream project was archived or moved, or whether a new advisory now
|
|
8
|
+
* covers a component/image already in use. These change independent of the
|
|
9
|
+
* source, so they cannot live in the deterministic build — this activity owns
|
|
10
|
+
* *only* the checks that require live resolution.
|
|
11
|
+
*
|
|
12
|
+
* Dependency-free and primitives-only: it reads the emitted `.gitlab-ci.yml`
|
|
13
|
+
* (passed as a string) and resolves references through an injectable
|
|
14
|
+
* `GitlabRefResolver`, so `chant run` can schedule it and tests can run
|
|
15
|
+
* it against recorded responses with no live network.
|
|
16
|
+
*/
|
|
17
|
+
/** What the audit produces on findings. For GitLab the PR mode is a merge request. */
|
|
18
|
+
export type PipelineAuditMode = "report" | "issue" | "merge-request";
|
|
19
|
+
/** The kind of reference being resolved. */
|
|
20
|
+
export type PipelineRefKind = "include" | "component" | "image";
|
|
21
|
+
/** Live resolution of a single pipeline reference against its upstream. */
|
|
22
|
+
export interface PipelineRefResolution {
|
|
23
|
+
/** Does the project/component/image (at this ref/version) still resolve? */
|
|
24
|
+
exists: boolean;
|
|
25
|
+
/** Has the upstream project been archived? */
|
|
26
|
+
archived: boolean;
|
|
27
|
+
/** Has the upstream project moved (new path), if known. */
|
|
28
|
+
movedTo?: string;
|
|
29
|
+
/** Disclosed advisory identifiers affecting this reference. */
|
|
30
|
+
advisories: string[];
|
|
31
|
+
}
|
|
32
|
+
/** Pluggable upstream resolver — overridden in tests with recorded responses. */
|
|
33
|
+
export type GitlabRefResolver = (kind: PipelineRefKind, identifier: string, ref: string) => Promise<PipelineRefResolution>;
|
|
34
|
+
export type PipelineAuditFindingKind = "unresolved" | "archived" | "moved" | "advisory";
|
|
35
|
+
export interface PipelineAuditFinding {
|
|
36
|
+
kind: PipelineAuditFindingKind;
|
|
37
|
+
refKind: PipelineRefKind;
|
|
38
|
+
/** project path / component address / image. */
|
|
39
|
+
identifier: string;
|
|
40
|
+
/** ref / version / tag. */
|
|
41
|
+
ref: string;
|
|
42
|
+
detail: string;
|
|
43
|
+
}
|
|
44
|
+
export interface PipelineAuditArgs {
|
|
45
|
+
/** One emitted `.gitlab-ci.yml` document. */
|
|
46
|
+
yaml?: string;
|
|
47
|
+
/** Several emitted documents. */
|
|
48
|
+
yamls?: string[];
|
|
49
|
+
/** Path to an emitted `.gitlab-ci.yml` to read at run time (default `.gitlab-ci.yml`). */
|
|
50
|
+
pipelineFile?: string;
|
|
51
|
+
/** What to produce. Default: report. */
|
|
52
|
+
mode?: PipelineAuditMode;
|
|
53
|
+
/** Injectable upstream resolver. Defaults to the live GitLab REST resolver. */
|
|
54
|
+
resolver?: GitlabRefResolver;
|
|
55
|
+
}
|
|
56
|
+
export interface PipelineAuditResult {
|
|
57
|
+
mode: PipelineAuditMode;
|
|
58
|
+
findings: PipelineAuditFinding[];
|
|
59
|
+
summary: string;
|
|
60
|
+
}
|
|
61
|
+
interface CollectedRef {
|
|
62
|
+
refKind: PipelineRefKind;
|
|
63
|
+
identifier: string;
|
|
64
|
+
ref: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Collect `include:project` (+ ref), `component:` (with @version), and `image:`
|
|
68
|
+
* references from a `.gitlab-ci.yml`.
|
|
69
|
+
*/
|
|
70
|
+
export declare function collectPipelineRefs(yaml: string): CollectedRef[];
|
|
71
|
+
/**
|
|
72
|
+
* Default resolver: query the GitLab REST API for project existence / archive /
|
|
73
|
+
* move status. Best-effort and resilient — errors yield an "unknown" resolution
|
|
74
|
+
* (exists=true, no findings) rather than a false positive. Component/image
|
|
75
|
+
* advisory lookups are left to a configured resolver.
|
|
76
|
+
*/
|
|
77
|
+
export declare const defaultGitlabRefResolver: GitlabRefResolver;
|
|
78
|
+
/**
|
|
79
|
+
* Resolve each include/component/image reference in the emitted pipeline against
|
|
80
|
+
* live upstreams and report drift.
|
|
81
|
+
*/
|
|
82
|
+
export declare function pipelineSupplyChainAudit(args: PipelineAuditArgs): Promise<PipelineAuditResult>;
|
|
83
|
+
export {};
|
|
84
|
+
//# sourceMappingURL=pipeline-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-audit.d.ts","sourceRoot":"","sources":["../../../src/op/activities/pipeline-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,eAAe,CAAC;AAErE,4CAA4C;AAC5C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAEhE,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,4EAA4E;IAC5E,MAAM,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE3H,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAExF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,eAAe,CAAC;IACzB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,OAAO,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAwChE;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBAgBtC,CAAC;AAmBF;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkCpG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface PolicyGateArgs {
|
|
2
|
+
/** Project/source directory to build and evaluate. Default ".". */
|
|
3
|
+
path?: string;
|
|
4
|
+
/** Environment for policy evaluation (falls back to `ownership.env`). */
|
|
5
|
+
env?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Gate an apply on organizational policy: build the project, run its
|
|
9
|
+
* `lint.policies` over the resolved resources, and **block** on any violation.
|
|
10
|
+
* Place it as a step before the apply phase — a violation fails the run
|
|
11
|
+
* (non-retryable; the `policyCheck` profile is single-attempt) so nothing is
|
|
12
|
+
* applied. A clean evaluation passes through.
|
|
13
|
+
*
|
|
14
|
+
* A plain activity on every runtime, not a `gate` step.
|
|
15
|
+
*/
|
|
16
|
+
export declare function policyGate(args: PolicyGateArgs, _signal?: AbortSignal): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/op/activities/policy.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3F"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the reconcile activity does with the regenerated source.
|
|
3
|
+
*
|
|
4
|
+
* `comment` is the one mode that posts nothing new: it writes the body onto
|
|
5
|
+
* the pull request that triggered the run, updating the same comment on every
|
|
6
|
+
* re-run (chant #2231). It therefore needs a pull-request trigger, and
|
|
7
|
+
* {@link resolvePullRequestContext} fails the step by name when the run has
|
|
8
|
+
* none.
|
|
9
|
+
*/
|
|
10
|
+
export type ReconcileMode = "pull-request" | "issue" | "report" | "comment";
|
|
11
|
+
/** A change-set entry that triggered reconciliation. */
|
|
12
|
+
export interface ReconcileEntry {
|
|
13
|
+
/** chant entity name. */
|
|
14
|
+
name: string;
|
|
15
|
+
/** create | update | delete | adopt | noop (from `chant lifecycle plan`). */
|
|
16
|
+
action: string;
|
|
17
|
+
/** Resource type, when known. */
|
|
18
|
+
type?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ReconcilePrArgs {
|
|
21
|
+
/** Environment to reconcile from (passed to `chant import --from`). */
|
|
22
|
+
env: string;
|
|
23
|
+
/**
|
|
24
|
+
* The change-set entries that triggered this reconcile. Omit to derive them
|
|
25
|
+
* from `chant lifecycle plan <env> --json` at run time — the form used inside
|
|
26
|
+
* an Op, where the entries aren't known until the activity runs.
|
|
27
|
+
*/
|
|
28
|
+
entries?: ReconcileEntry[];
|
|
29
|
+
/** What to produce. Default: pull-request. */
|
|
30
|
+
mode?: ReconcileMode;
|
|
31
|
+
/** Output directory for regenerated source. Default: ./infra. */
|
|
32
|
+
output?: string;
|
|
33
|
+
/** Branch to open the PR from. Default: chant/reconcile-<env>. */
|
|
34
|
+
branch?: string;
|
|
35
|
+
/** Restrict live import to chant-owned resources. */
|
|
36
|
+
owned?: boolean;
|
|
37
|
+
/** PR / issue title. Default derived from env. */
|
|
38
|
+
title?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Hidden marker identifying this Op's comment on the pull request (comment
|
|
41
|
+
* mode). The activity writes it as the comment's first line and finds the
|
|
42
|
+
* comment again by it on the next run, so a re-run edits one comment instead
|
|
43
|
+
* of stacking a new one. Default: {@link commentMarker} keyed on `env`, so
|
|
44
|
+
* two Ops over two roots get two comments and each updates in place.
|
|
45
|
+
*/
|
|
46
|
+
marker?: string;
|
|
47
|
+
/**
|
|
48
|
+
* A finding body built by the caller, used verbatim as the issue/PR body in
|
|
49
|
+
* place of {@link reconcileSummary} (chant #2087).
|
|
50
|
+
*
|
|
51
|
+
* The summary this activity writes itself is a change-set table, which is
|
|
52
|
+
* the right artifact when the finding IS a change set. Some observe-dial
|
|
53
|
+
* Ops already hold a better one: `TerraformWatchOp` carries the
|
|
54
|
+
* `terraform plan -no-color` render its own Plan step produced, and
|
|
55
|
+
* re-deriving that from `chant lifecycle plan` here would both lose the
|
|
56
|
+
* plan and run a second, differently-timed read.
|
|
57
|
+
*
|
|
58
|
+
* Supplying it also suppresses the `chant lifecycle plan --json` derivation
|
|
59
|
+
* that fills `entries`: a caller that already knows what it wants to say
|
|
60
|
+
* is not asking this activity to go and find out.
|
|
61
|
+
*/
|
|
62
|
+
body?: string;
|
|
63
|
+
}
|
|
64
|
+
export interface ReconcileResult {
|
|
65
|
+
mode: ReconcileMode;
|
|
66
|
+
/** Branch created (pull-request mode). */
|
|
67
|
+
branch?: string;
|
|
68
|
+
/** Opened PR URL (pull-request mode). */
|
|
69
|
+
prUrl?: string;
|
|
70
|
+
/** Opened issue URL (issue mode). */
|
|
71
|
+
issueUrl?: string;
|
|
72
|
+
/** The posted or updated PR comment's URL (comment mode). */
|
|
73
|
+
commentUrl?: string;
|
|
74
|
+
/** The pull request the comment landed on, `owner/repo#number` (comment mode). */
|
|
75
|
+
pullRequest?: string;
|
|
76
|
+
/** The markdown summary used as the PR/issue body. */
|
|
77
|
+
summary: string;
|
|
78
|
+
/** The entries that triggered the reconcile. */
|
|
79
|
+
entries: ReconcileEntry[];
|
|
80
|
+
}
|
|
81
|
+
/** Default branch name for a reconcile PR. Deterministic — no timestamp. */
|
|
82
|
+
export declare function reconcileBranchName(env: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* Build the markdown body summarizing which change-set entries triggered the
|
|
85
|
+
* reconcile. Pure — used as the PR/issue body and returned in `report` mode.
|
|
86
|
+
*/
|
|
87
|
+
export declare function reconcileSummary(env: string, entries: ReconcileEntry[]): string;
|
|
88
|
+
/** The pull request a `comment`-mode run posts onto. */
|
|
89
|
+
export interface PullRequestContext {
|
|
90
|
+
/** `owner/repo`, from `GITHUB_REPOSITORY`. */
|
|
91
|
+
repo: string;
|
|
92
|
+
/** The pull request number. */
|
|
93
|
+
number: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The hidden marker that makes a `comment`-mode finding findable across
|
|
97
|
+
* re-runs: written as the comment's first line, matched with `startswith` on
|
|
98
|
+
* the next run. Keyed on `env` (slugified the same way {@link
|
|
99
|
+
* reconcileBranchName} slugifies it, which also keeps the value free of the
|
|
100
|
+
* quotes and backslashes it is interpolated next to), so two Ops over two
|
|
101
|
+
* environments own two comments and each updates in place.
|
|
102
|
+
*/
|
|
103
|
+
export declare function commentMarker(env: string): string;
|
|
104
|
+
/** What a `comment`-mode step says when the run it is in has no pull request. */
|
|
105
|
+
export declare function noPullRequestContextMessage(): string;
|
|
106
|
+
/**
|
|
107
|
+
* Derive the triggering pull request from CI environment variables plus the
|
|
108
|
+
* already-parsed event payload. Pure — exported for testing; the IO (reading
|
|
109
|
+
* `GITHUB_EVENT_PATH`) is {@link resolvePullRequestContext}'s.
|
|
110
|
+
*
|
|
111
|
+
* Returns undefined rather than throwing, so the caller owns the message.
|
|
112
|
+
*/
|
|
113
|
+
export declare function pullRequestContextFrom(env: Record<string, string | undefined>, eventPayload?: unknown): PullRequestContext | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Resolve the triggering pull request, reading and parsing the event payload
|
|
116
|
+
* `GITHUB_EVENT_PATH` names. Throws {@link noPullRequestContextMessage} when
|
|
117
|
+
* the run has no pull request, which is the whole point: a `comment` mode that
|
|
118
|
+
* quietly fell back to an issue would post the finding somewhere nobody asked
|
|
119
|
+
* for it.
|
|
120
|
+
*/
|
|
121
|
+
export declare function resolvePullRequestContext(env?: Record<string, string | undefined>): Promise<PullRequestContext>;
|
|
122
|
+
/**
|
|
123
|
+
* Map a `chant lifecycle plan --json` ChangeSet to reconcile entries, dropping
|
|
124
|
+
* `noop` entries (nothing to reconcile). Pure — exported for testing.
|
|
125
|
+
*/
|
|
126
|
+
export declare function entriesFromPlan(planJson: string): ReconcileEntry[];
|
|
127
|
+
/**
|
|
128
|
+
* Reconcile activity: turn regenerated TypeScript into a reviewable artifact.
|
|
129
|
+
*
|
|
130
|
+
* - `report` — return the summary only; no git, no network.
|
|
131
|
+
* - `issue` — open a GitHub issue describing the drift (no code change).
|
|
132
|
+
* - `comment` — post the body as one comment on the pull request that
|
|
133
|
+
* triggered the run, editing that same comment on every re-run rather than
|
|
134
|
+
* stacking a new one (#2231). Needs a pull-request-triggered run; fails by
|
|
135
|
+
* name when there is none. No code change, and the `pull-requests: write`
|
|
136
|
+
* the generated workflow already grants on that trigger is the whole scope
|
|
137
|
+
* it spends.
|
|
138
|
+
* - `pull-request` — create a branch, regenerate source via
|
|
139
|
+
* `chant import --from <env>`, commit, push, and open a PR whose diff is the
|
|
140
|
+
* regenerated TypeScript. Never commits to the main branch.
|
|
141
|
+
*
|
|
142
|
+
* The body is {@link reconcileSummary}'s change-set table unless `args.body`
|
|
143
|
+
* supplies one, in which case that text is used verbatim and no plan is
|
|
144
|
+
* derived (chant #2087).
|
|
145
|
+
*
|
|
146
|
+
* Requires `chant` and (for non-report modes) `gh`/`git` in the environment.
|
|
147
|
+
*/
|
|
148
|
+
export declare function reconcilePr(args: ReconcilePrArgs, signal?: AbortSignal): Promise<ReconcileResult>;
|
|
149
|
+
//# sourceMappingURL=reconcile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../../src/op/activities/reconcile.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAkB/E;AAMD,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,iFAAiF;AACjF,wBAAgB,2BAA2B,IAAI,MAAM,CAQpD;AAeD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,YAAY,CAAC,EAAE,OAAO,GACrB,kBAAkB,GAAG,SAAS,CAOhC;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,kBAAkB,CAAC,CAe7B;AA2CD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAOlE;AAgBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAmDvG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ShellCmdArgs {
|
|
2
|
+
cmd: string;
|
|
3
|
+
/** Additional environment variables. */
|
|
4
|
+
env?: Record<string, string>;
|
|
5
|
+
/** Working directory. Default: process.cwd(). */
|
|
6
|
+
cwd?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Run an arbitrary shell command.
|
|
10
|
+
* Uses fastIdempotent profile — 5m timeout, 3 retries.
|
|
11
|
+
*/
|
|
12
|
+
export declare function shellCmd(args: ShellCmdArgs, signal?: AbortSignal): Promise<string>;
|
|
13
|
+
//# sourceMappingURL=shell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../src/op/activities/shell.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ChantTeardownArgs {
|
|
2
|
+
/** Path to the chant project to tear down. */
|
|
3
|
+
path: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Run `chant teardown` in the given project path.
|
|
7
|
+
* Uses longInfra profile — 20m timeout.
|
|
8
|
+
*/
|
|
9
|
+
export declare function chantTeardown(args: ChantTeardownArgs, signal?: AbortSignal): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=teardown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teardown.d.ts","sourceRoot":"","sources":["../../../src/op/activities/teardown.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export shim — `sleep` is the shared activity-runtime helper one directory
|
|
3
|
+
* up (`../activity-runtime`). Kept here so existing `./util` imports resolve
|
|
4
|
+
* unchanged.
|
|
5
|
+
*/
|
|
6
|
+
export { sleep } from "../activity-runtime.js";
|
|
7
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/op/activities/util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface WaitForStackArgs {
|
|
2
|
+
/** Stack name — used to locate the kubectl deployment/statefulset to poll. */
|
|
3
|
+
name: string;
|
|
4
|
+
/** Kubernetes namespace. */
|
|
5
|
+
namespace?: string;
|
|
6
|
+
/** kubectl context. */
|
|
7
|
+
context?: string;
|
|
8
|
+
/** Poll interval in ms. Default: 10000. */
|
|
9
|
+
intervalMs?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Poll until a Kubernetes Deployment or StatefulSet named `name` is fully rolled out.
|
|
13
|
+
* Uses the `k8sWait` profile — 15m timeout.
|
|
14
|
+
*
|
|
15
|
+
* Progress goes to stdout, one line per poll, which is the executor's step-record
|
|
16
|
+
* channel: the local executor streams an activity's output alongside the step it
|
|
17
|
+
* belongs to, so a long rollout is visible without a liveness protocol. Nothing
|
|
18
|
+
* mid-run is durable here by design (chant #2114) — the op re-runs and converges.
|
|
19
|
+
*
|
|
20
|
+
* Deliberately NOT migrated onto the generic `waitForReady` (#957): `kubectl
|
|
21
|
+
* rollout status` encodes rollout-specific semantics — progress-deadline
|
|
22
|
+
* timeouts, partial/paused rollouts, generation tracking — that a status-field
|
|
23
|
+
* predicate spec does not replicate, and it targets built-in workloads rather
|
|
24
|
+
* than arbitrary operator CRDs. `waitForReady` is the right tool for CRD
|
|
25
|
+
* readiness; `waitForStack` stays the right tool for workload rollouts.
|
|
26
|
+
*/
|
|
27
|
+
export declare function waitForStack(args: WaitForStackArgs, signal?: AbortSignal): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/op/activities/wait.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9F"}
|