@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,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* workflowSupplyChainAudit — the live counterpart to the github post-synth
|
|
3
|
+
* supply-chain checks (#286-#291).
|
|
4
|
+
*
|
|
5
|
+
* Some workflow-reference checks can only be answered against a moving external
|
|
6
|
+
* truth: whether a pinned SHA still corresponds to a real tag/release upstream,
|
|
7
|
+
* whether a referenced commit exists in the repo it claims, whether a ref is
|
|
8
|
+
* confusable as both a tag and a branch, whether a pin matches its version
|
|
9
|
+
* comment, or whether a new advisory now covers an action already in use. These
|
|
10
|
+
* change over time independent of the source, so they cannot live in the
|
|
11
|
+
* deterministic build — this activity owns *only* the checks that require live
|
|
12
|
+
* resolution.
|
|
13
|
+
*
|
|
14
|
+
* It is dependency-free and primitives-only: it reads the emitted workflow YAML
|
|
15
|
+
* (passed as a string) and resolves references through an injectable
|
|
16
|
+
* `ActionRefResolver`, so `chant run` can schedule it and tests can run
|
|
17
|
+
* it against recorded responses with no live network.
|
|
18
|
+
*/
|
|
19
|
+
/** What the audit produces on findings, mirroring ReconcileOp's modes. */
|
|
20
|
+
export type WorkflowAuditMode = "report" | "issue" | "pull-request";
|
|
21
|
+
/** Live resolution of a single action reference against its upstream. */
|
|
22
|
+
export interface ActionRefResolution {
|
|
23
|
+
/** Does the ref/SHA exist in the claimed repo? */
|
|
24
|
+
exists: boolean;
|
|
25
|
+
/** Tag/release names that point at this commit (empty for a SHA ⇒ stale pin). */
|
|
26
|
+
tags: string[];
|
|
27
|
+
/** Is the upstream repository archived? */
|
|
28
|
+
archived: boolean;
|
|
29
|
+
/** Disclosed advisory identifiers affecting this action. */
|
|
30
|
+
advisories: string[];
|
|
31
|
+
/** Is the ref resolvable as BOTH a tag and a branch upstream? */
|
|
32
|
+
ambiguousRef?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Pluggable upstream resolver — overridden in tests with recorded responses. */
|
|
35
|
+
export type ActionRefResolver = (slug: string, ref: string) => Promise<ActionRefResolution>;
|
|
36
|
+
export type WorkflowAuditFindingKind = "stale-pin" | "impostor" | "ambiguous-ref" | "pin-comment-mismatch" | "advisory" | "archived";
|
|
37
|
+
export interface WorkflowAuditFinding {
|
|
38
|
+
/** owner/repo slug. */
|
|
39
|
+
slug: string;
|
|
40
|
+
/** The pinned ref/SHA. */
|
|
41
|
+
ref: string;
|
|
42
|
+
kind: WorkflowAuditFindingKind;
|
|
43
|
+
detail: string;
|
|
44
|
+
}
|
|
45
|
+
export interface WorkflowAuditArgs {
|
|
46
|
+
/** One emitted workflow YAML document. */
|
|
47
|
+
yaml?: string;
|
|
48
|
+
/** Several emitted workflow YAML documents. */
|
|
49
|
+
yamls?: string[];
|
|
50
|
+
/**
|
|
51
|
+
* Directory of emitted workflow files (`*.yml`/`*.yaml`) to read at run time
|
|
52
|
+
* when no `yaml`/`yamls` is given — the form used inside a scheduled Op.
|
|
53
|
+
* Default `.github/workflows`.
|
|
54
|
+
*/
|
|
55
|
+
workflowsDir?: string;
|
|
56
|
+
/** What to produce. Default: report. */
|
|
57
|
+
mode?: WorkflowAuditMode;
|
|
58
|
+
/** Injectable upstream resolver. Defaults to the live GitHub REST resolver. */
|
|
59
|
+
resolver?: ActionRefResolver;
|
|
60
|
+
}
|
|
61
|
+
export interface WorkflowAuditResult {
|
|
62
|
+
mode: WorkflowAuditMode;
|
|
63
|
+
findings: WorkflowAuditFinding[];
|
|
64
|
+
/** Markdown summary used as the PR/issue body or printed in report mode. */
|
|
65
|
+
summary: string;
|
|
66
|
+
}
|
|
67
|
+
interface CollectedRef {
|
|
68
|
+
slug: string;
|
|
69
|
+
ref: string;
|
|
70
|
+
/** Adjacent `# vX.Y.Z` comment, when present. */
|
|
71
|
+
comment?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Collect external action references (`uses: owner/repo@ref`, with an optional
|
|
75
|
+
* trailing version comment) from a workflow YAML. Local (`./`) and `docker://`
|
|
76
|
+
* references are excluded.
|
|
77
|
+
*/
|
|
78
|
+
export declare function collectAuditRefs(yaml: string): CollectedRef[];
|
|
79
|
+
/**
|
|
80
|
+
* Default resolver: query the GitHub REST API for whether the ref exists, what
|
|
81
|
+
* tags point at it, archive status, and advisories. Best-effort and resilient —
|
|
82
|
+
* a network/HTTP error yields an "unknown" resolution (exists=true, no findings)
|
|
83
|
+
* rather than a false positive.
|
|
84
|
+
*/
|
|
85
|
+
export declare const defaultActionRefResolver: ActionRefResolver;
|
|
86
|
+
/**
|
|
87
|
+
* Resolve each pinned external reference in the emitted workflows against live
|
|
88
|
+
* upstreams and report drift.
|
|
89
|
+
*/
|
|
90
|
+
export declare function workflowSupplyChainAudit(args: WorkflowAuditArgs): Promise<WorkflowAuditResult>;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=workflow-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-audit.d.ts","sourceRoot":"","sources":["../../../src/op/activities/workflow-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;AAEpE,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,MAAM,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iEAAiE;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAE5F,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,UAAU,GACV,eAAe,GACf,sBAAsB,GACtB,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,oBAAoB;IACnC,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,wBAAwB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAcD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAQ7D;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBA0BtC,CAAC;AAUF;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwCpG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activity contract registry — the schema-shaped sibling of
|
|
3
|
+
* `./activity-registry.ts` (chant #2101).
|
|
4
|
+
*
|
|
5
|
+
* `activity-contract.ts` left contract ownership per-caller on purpose: an
|
|
6
|
+
* activity declares its contract alongside its implementation, and whoever
|
|
7
|
+
* builds a contract map decides which activities it covers. What was missing
|
|
8
|
+
* was the other half of that arrangement, a way for the checks that validate
|
|
9
|
+
* Op steps to SEE a contract a lexicon declared. OPS012 and OPS013
|
|
10
|
+
* (`../lint/rules/op/`) walk every Op entity in the build, including steps
|
|
11
|
+
* calling `terraformPlan`, `k3sInstall`, `flyApply` or `gcpApply`, over
|
|
12
|
+
* core's own static table alone. Since #2122 moved those checks into core
|
|
13
|
+
* they fire on every project that declares an Op, so an Op built out of one
|
|
14
|
+
* lexicon's steps failed `chant build` outright even though `loadActivities`
|
|
15
|
+
* resolves the very same names at run time. Both terraform examples that
|
|
16
|
+
* carry an Op kept it outside `src/` because of the older, lexicon-hosted
|
|
17
|
+
* form of the same gap, which meant no example ever proved its Op builds.
|
|
18
|
+
*
|
|
19
|
+
* The resolution mirrors activities exactly, by convention:
|
|
20
|
+
* `@intentius/chant-lexicon-<name>/op/activity-contracts` is imported for
|
|
21
|
+
* every configured lexicon and every {@link ActivityContract} it exports is
|
|
22
|
+
* collected, keyed by the contract's declared `name`. A lexicon that ships
|
|
23
|
+
* no such module is skipped, the same way `loadActivities` skips one that
|
|
24
|
+
* contributes no activities. A plugin may also hand its contracts over
|
|
25
|
+
* directly through {@link LexiconActivityContractContributor}, for a lexicon
|
|
26
|
+
* whose contracts are not reachable at a subpath (a bundled single-file
|
|
27
|
+
* plugin, a project-local one).
|
|
28
|
+
*
|
|
29
|
+
* The merged map reaches a post-synth check as
|
|
30
|
+
* `PostSynthContext.activityContracts` (`../lint/post-synth.ts`), filled in
|
|
31
|
+
* by whoever runs the checks: `chant build`, `chant lint` and
|
|
32
|
+
* `check-lexicon`'s example harness all do. A check merges it over its own
|
|
33
|
+
* base table rather than replacing it, so a context that carries none (a
|
|
34
|
+
* hand-built one in a test) behaves exactly as before this existed.
|
|
35
|
+
*/
|
|
36
|
+
import { type ActivityContract } from "./activity-contract.js";
|
|
37
|
+
/**
|
|
38
|
+
* The shape {@link loadActivityContracts} reads off a plugin: an optional
|
|
39
|
+
* member returning this lexicon's contracts directly, for one that cannot be
|
|
40
|
+
* reached by the subpath convention. Structural on purpose, so core's op
|
|
41
|
+
* layer does not depend on `../lexicon.ts`.
|
|
42
|
+
*/
|
|
43
|
+
export interface LexiconActivityContractContributor {
|
|
44
|
+
/** The lexicon's name, as in `@intentius/chant-lexicon-<name>`. */
|
|
45
|
+
name: string;
|
|
46
|
+
/** This lexicon's activity contracts, if it declares them in code rather than at the conventional subpath. */
|
|
47
|
+
activityContracts?(): ActivityContract[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Build the activity-contract map for build-time validation: core's own
|
|
51
|
+
* contracts (`./activities/activity-contracts`, a static import so a project
|
|
52
|
+
* that has installed nothing but chant still gets them) plus every contract
|
|
53
|
+
* the named lexicons contribute.
|
|
54
|
+
*
|
|
55
|
+
* `lexicons` may be plain names or plugin-shaped objects; a plugin's
|
|
56
|
+
* `activityContracts()` is read after its conventional module, so a plugin
|
|
57
|
+
* that declares both wins on a name collision with itself. Across lexicons,
|
|
58
|
+
* last one in wins, which is the same rule `loadActivities` applies to
|
|
59
|
+
* implementations.
|
|
60
|
+
*
|
|
61
|
+
* Never throws: an absent lexicon, a missing subpath, or a plugin member that
|
|
62
|
+
* throws all leave the map as it was.
|
|
63
|
+
*/
|
|
64
|
+
export declare function loadActivityContracts(lexicons?: ReadonlyArray<string | LexiconActivityContractContributor>): Promise<Map<string, ActivityContract>>;
|
|
65
|
+
/**
|
|
66
|
+
* Merge a check's own base contracts with the ones the build loaded, into the
|
|
67
|
+
* map `validateActivitySteps`/`validateStepOutputRefs` take. The loaded set
|
|
68
|
+
* wins on a name collision: it is the one resolved against the lexicons this
|
|
69
|
+
* build actually configured, whereas the base table is whatever the check
|
|
70
|
+
* imported statically.
|
|
71
|
+
*
|
|
72
|
+
* `loaded` being `undefined` is the ordinary case for a hand-built
|
|
73
|
+
* `PostSynthContext` and yields the base table unchanged.
|
|
74
|
+
*/
|
|
75
|
+
export declare function mergeActivityContracts(base: ReadonlyMap<string, ActivityContract>, loaded: ReadonlyMap<string, ActivityContract> | undefined): ReadonlyMap<string, ActivityContract>;
|
|
76
|
+
//# sourceMappingURL=activity-contract-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-contract-registry.d.ts","sourceRoot":"","sources":["../../src/op/activity-contract-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EAA4B,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC;IACjD,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,8GAA8G;IAC9G,iBAAiB,CAAC,IAAI,gBAAgB,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,GAAE,aAAa,CAAC,MAAM,GAAG,kCAAkC,CAAM,GACxE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAwBxC;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,GACxD,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAKvC"}
|
|
@@ -16,28 +16,35 @@
|
|
|
16
16
|
* An activity declares a contract alongside its implementation — the same
|
|
17
17
|
* "registration surface" the issue asked for (`activity-registry.ts`'s
|
|
18
18
|
* `collectActivities` already does this for implementations; this is the
|
|
19
|
-
* schema-shaped sibling). `chant build`
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
19
|
+
* schema-shaped sibling). `chant build` resolves each step's `fn` against a
|
|
20
|
+
* contract map built from `Object.values()` of an activity-contracts module
|
|
21
|
+
* and validates `args` and `outcomeAttribute.from` — core's own OPS012
|
|
22
|
+
* (`../lint/rules/op/ops012-activity-contract.ts`, chant #2122) does this
|
|
23
|
+
* for every declared Op regardless of which lexicons are configured; a
|
|
24
|
+
* lexicon's own post-synth check can additionally validate against its own
|
|
25
|
+
* roster the same way (a lexicon-owned check did this before #2122 moved the
|
|
26
|
+
* op-model checks to core). A step whose `fn` has no registered
|
|
27
|
+
* contract is skipped (not an error): this is deliberately incremental — a
|
|
28
|
+
* contract map opts an activity in by declaring one for it, and the
|
|
29
|
+
* k8s/aws/azure/gcp/fly activity sets are expected to pick this up one at a
|
|
30
|
+
* time rather than all at once (see the issue's "worth checking this lands
|
|
31
|
+
* cleanly" note).
|
|
28
32
|
*
|
|
29
|
-
* Ownership
|
|
30
|
-
*
|
|
31
|
-
* check
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* every lexicon's checks, so no new plumbing is needed for that to work.
|
|
33
|
+
* Ownership of a contract map is per-caller, not a shared cross-lexicon
|
|
34
|
+
* registry: whoever builds the map (core's OPS012/OPS013, or a lexicon's own
|
|
35
|
+
* check) decides which activities it covers. A `Chant::Op` step can call an
|
|
36
|
+
* activity contributed by any lexicon, and `PostSynthContext.entities`
|
|
37
|
+
* already carries the whole resolved graph to every check, so no new
|
|
38
|
+
* plumbing is needed for that to work.
|
|
36
39
|
*/
|
|
37
40
|
import { z } from "zod";
|
|
38
41
|
import type { OpConfig } from "./types.js";
|
|
39
|
-
/**
|
|
40
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Every literal value {@link ActivityStep.profile} may hold, read off
|
|
44
|
+
* {@link ACTIVITY_PROFILES} itself so the runtime list cannot drift from the
|
|
45
|
+
* table the type is derived from.
|
|
46
|
+
*/
|
|
47
|
+
export declare const KNOWN_ACTIVITY_PROFILES: ("fastIdempotent" | "longInfra" | "k8sWait" | "humanGate" | "argoSync" | "policyCheck")[];
|
|
41
48
|
declare const CONTRACT_BRAND: unique symbol;
|
|
42
49
|
/**
|
|
43
50
|
* A registered activity's args/return schemas — the declaration that lets
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-contract.d.ts","sourceRoot":"","sources":["../../src/op/activity-contract.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"activity-contract.d.ts","sourceRoot":"","sources":["../../src/op/activity-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAiD,MAAM,SAAS,CAAC;AAGvF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,2FAAyB,CAAC;AAE9D,QAAA,MAAM,cAAc,eAA0C,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO;IAChE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;IAChC,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,UAAU,SAAS,CAAC,CAAC,UAAU,EAAE,YAAY,SAAS,CAAC,CAAC,UAAU,GAAG,KAAK,EACzG,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,CAAC,EAAE,YAAY,EACtB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7B,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,CAQ5G;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAIhH;AAID,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB;AAmCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,SAAS,CASxG;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvF,wBAAgB,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,mBAAmB,GAAG,SAAS,CAQrF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC,EACvD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC/C,qBAAqB,EAAE,CAiDzB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A terminal activity failure.
|
|
3
|
+
*
|
|
4
|
+
* Some activities fail deterministically: an organizational policy violation
|
|
5
|
+
* (`policyGate`) or a cfn-guard finding (`guardValidate`) reads the same on the
|
|
6
|
+
* second attempt as on the first, so a retry only delays the report. Those
|
|
7
|
+
* activities used to raise an orchestrator SDK's non-retryable failure type,
|
|
8
|
+
* which put that SDK on the import path of every base activity. Core owns the
|
|
9
|
+
* base activities now (chant #2114), and depends on no runtime SDK — this is
|
|
10
|
+
* the same signal in a plain `Error`.
|
|
11
|
+
*
|
|
12
|
+
* `name` is the failure type, not the class name, so the local executor's
|
|
13
|
+
* `retry.nonRetryableErrorTypes` (which matches on `Error.name`) can name it in
|
|
14
|
+
* a profile. `type` and `nonRetryable` are kept alongside it because that is
|
|
15
|
+
* the shape callers and tests already read.
|
|
16
|
+
*/
|
|
17
|
+
export declare class NonRetryableActivityError extends Error {
|
|
18
|
+
/** Failure type, e.g. `"PolicyViolation"`. Also this error's `name`. */
|
|
19
|
+
readonly type: string;
|
|
20
|
+
/** Always true — present so a caller can branch without an `instanceof`. */
|
|
21
|
+
readonly nonRetryable = true;
|
|
22
|
+
constructor(message: string,
|
|
23
|
+
/** Failure type, e.g. `"PolicyViolation"`. Also this error's `name`. */
|
|
24
|
+
type: string);
|
|
25
|
+
}
|
|
26
|
+
/** Build a {@link NonRetryableActivityError} — a non-retryable failure with no SDK behind it. */
|
|
27
|
+
export declare function nonRetryableFailure(message: string, type: string): NonRetryableActivityError;
|
|
28
|
+
//# sourceMappingURL=activity-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-failure.d.ts","sourceRoot":"","sources":["../../src/op/activity-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAMhD,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM;IANvB,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,QAAQ;gBAG3B,OAAO,EAAE,MAAM;IACf,wEAAwE;IAC/D,IAAI,EAAE,MAAM;CAKxB;AAED,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,yBAAyB,CAE5F"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activity timeout and retry profiles.
|
|
3
|
+
*
|
|
4
|
+
* A profile is a named retry/timeout shape an Op step opts into
|
|
5
|
+
* (`activity("chantBuild", …, "fastIdempotent")`), so tuning lives in one table
|
|
6
|
+
* instead of inline at every call site. The six names cover the shapes infra
|
|
7
|
+
* steps actually take: fast idempotent work, long infra, K8s wait loops, a
|
|
8
|
+
* human gate, an Argo sync wait, and a deterministic policy check.
|
|
9
|
+
*
|
|
10
|
+
* These lived in a hosting lexicon, under its own prefixed name, until chant
|
|
11
|
+
* #2114 moved the base activities into core. Nothing about a timeout or a
|
|
12
|
+
* backoff coefficient belonged to that runtime, so the table came with them and
|
|
13
|
+
* lost the prefix. `heartbeatTimeout` did not come along: it configured a
|
|
14
|
+
* liveness protocol between a worker and a server, and no in-process step
|
|
15
|
+
* heartbeats to anything.
|
|
16
|
+
*/
|
|
17
|
+
export interface ActivityProfile {
|
|
18
|
+
/** Maximum time allowed for a single activity execution attempt (e.g. `"20m"`). */
|
|
19
|
+
timeout: string;
|
|
20
|
+
/** Retry policy for failed activity attempts. */
|
|
21
|
+
retry?: {
|
|
22
|
+
/** Initial wait before the first retry (e.g. "5s"). */
|
|
23
|
+
initialInterval?: string;
|
|
24
|
+
/** Multiplier applied to the interval on each retry (e.g. 2). */
|
|
25
|
+
backoffCoefficient?: number;
|
|
26
|
+
/** Maximum number of attempts including the first (0 = unlimited). */
|
|
27
|
+
maximumAttempts?: number;
|
|
28
|
+
/** Cap on retry intervals (e.g. "5m"). */
|
|
29
|
+
maximumInterval?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Error names (`Error.name`) that fail immediately without retry — the
|
|
32
|
+
* executor short-circuits its retry loop on a match.
|
|
33
|
+
*/
|
|
34
|
+
nonRetryableErrorTypes?: string[];
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** Named activity profiles for common infrastructure step patterns. */
|
|
38
|
+
export declare const ACTIVITY_PROFILES: {
|
|
39
|
+
/**
|
|
40
|
+
* Fast, idempotent operations: `chant build`, `kubectl apply` without `--wait`,
|
|
41
|
+
* fetching nameservers, reading cluster status.
|
|
42
|
+
*/
|
|
43
|
+
readonly fastIdempotent: {
|
|
44
|
+
readonly timeout: "5m";
|
|
45
|
+
readonly retry: {
|
|
46
|
+
readonly maximumAttempts: 3;
|
|
47
|
+
readonly initialInterval: "5s";
|
|
48
|
+
readonly backoffCoefficient: 2;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Long-running infra: GKE cluster creation via Config Connector (~10-20 min),
|
|
53
|
+
* `kubectl apply --wait` for large resource sets, Helm installs.
|
|
54
|
+
*/
|
|
55
|
+
readonly longInfra: {
|
|
56
|
+
readonly timeout: "20m";
|
|
57
|
+
readonly retry: {
|
|
58
|
+
readonly maximumAttempts: 3;
|
|
59
|
+
readonly initialInterval: "30s";
|
|
60
|
+
readonly backoffCoefficient: 2;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* K8s wait loops: polling for StatefulSet rollout, ExternalDNS A-records,
|
|
65
|
+
* DNS propagation.
|
|
66
|
+
*/
|
|
67
|
+
readonly k8sWait: {
|
|
68
|
+
readonly timeout: "15m";
|
|
69
|
+
readonly retry: {
|
|
70
|
+
readonly maximumAttempts: 3;
|
|
71
|
+
readonly initialInterval: "10s";
|
|
72
|
+
readonly backoffCoefficient: 2;
|
|
73
|
+
readonly nonRetryableErrorTypes: ["ReadinessFailedError"];
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Human-gate steps: waiting for an operator action (DNS delegation, approval).
|
|
78
|
+
* Very long timeout, single attempt — no retry on human-gate timeouts.
|
|
79
|
+
*/
|
|
80
|
+
readonly humanGate: {
|
|
81
|
+
readonly timeout: "48h";
|
|
82
|
+
readonly retry: {
|
|
83
|
+
readonly maximumAttempts: 1;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Argo CD sync waits: poll an Application until `health=Healthy && sync=Synced`
|
|
88
|
+
* (`waitForArgoSync`). Long timeout for slow first syncs, cheap idempotent
|
|
89
|
+
* retries — re-polling is free. A terminal-unhealthy Application fails fast
|
|
90
|
+
* via `ArgoSyncFailedError` (non-retryable).
|
|
91
|
+
*/
|
|
92
|
+
readonly argoSync: {
|
|
93
|
+
readonly timeout: "30m";
|
|
94
|
+
readonly retry: {
|
|
95
|
+
readonly maximumAttempts: 5;
|
|
96
|
+
readonly initialInterval: "10s";
|
|
97
|
+
readonly backoffCoefficient: 2;
|
|
98
|
+
readonly maximumInterval: "1m";
|
|
99
|
+
readonly nonRetryableErrorTypes: ["ArgoSyncFailedError"];
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Organizational policy gate (`policyGate`): build the project and evaluate
|
|
104
|
+
* `lint.policies`. Deterministic — a violation is the same on every attempt —
|
|
105
|
+
* so a single attempt, short timeout, no retry.
|
|
106
|
+
*/
|
|
107
|
+
readonly policyCheck: {
|
|
108
|
+
readonly timeout: "5m";
|
|
109
|
+
readonly retry: {
|
|
110
|
+
readonly maximumAttempts: 1;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
/** The name of a built-in activity profile — the union `ActivityStep.profile` admits. */
|
|
115
|
+
export type ActivityProfileName = keyof typeof ACTIVITY_PROFILES;
|
|
116
|
+
/** Every profile name, as a runtime list (`KNOWN_ACTIVITY_PROFILES`'s source). */
|
|
117
|
+
export declare const ACTIVITY_PROFILE_NAMES: ActivityProfileName[];
|
|
118
|
+
//# sourceMappingURL=activity-profiles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-profiles.d.ts","sourceRoot":"","sources":["../../src/op/activity-profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE;QACN,uDAAuD;QACvD,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iEAAiE;QACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,sEAAsE;QACtE,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,0CAA0C;QAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;;WAGG;QACH,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAED,uEAAuE;AACvE,eAAO,MAAM,iBAAiB;IAC5B;;;OAGG;;;;;;;;;IAMH;;;OAGG;;;;;;;;;IAMH;;;OAGG;;;;;;;;;;IAaH;;;OAGG;;;;;;;IAMH;;;;;OAKG;;;;;;;;;;;IAYH;;;;OAIG;;;;;;;CAK+C,CAAC;AAErD,yFAAyF;AACzF,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAEjE,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,EAAqC,mBAAmB,EAAE,CAAC"}
|
|
@@ -2,56 +2,40 @@
|
|
|
2
2
|
* Activity registry — resolves an Op step's `fn` name to a callable activity
|
|
3
3
|
* implementation for local execution.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* The base activities are core's own (`./activities`): plain async functions
|
|
6
|
+
* taking a single args object, with no workflow engine anywhere in the call
|
|
7
|
+
* path. They are imported statically, so `loadActivities([])` works in a
|
|
8
|
+
* project that has installed nothing but chant. Product-specific appliers stay
|
|
9
|
+
* in their owning lexicon (#809) and are pulled in dynamically per the
|
|
10
|
+
* project's configured lexicon list.
|
|
8
11
|
*/
|
|
12
|
+
import { type ActivityProfile } from "./activity-profiles.js";
|
|
13
|
+
export type { ActivityProfile } from "./activity-profiles.js";
|
|
9
14
|
/**
|
|
10
15
|
* An activity is an async function taking a single args object and an optional
|
|
11
16
|
* `AbortSignal`. Local execution passes a signal that fires on timeout or
|
|
12
|
-
* Ctrl-C so the activity can kill in-flight child processes;
|
|
13
|
-
*
|
|
14
|
-
* `Context`), so the signal is always optional.
|
|
17
|
+
* Ctrl-C so the activity can kill in-flight child processes; a hosted runtime
|
|
18
|
+
* may invoke activities with args only, so the signal is always optional.
|
|
15
19
|
*/
|
|
16
20
|
export type ActivityFn = (args: Record<string, unknown>, signal?: AbortSignal) => Promise<unknown>;
|
|
17
21
|
/**
|
|
18
|
-
* Build the activity map for local execution
|
|
19
|
-
*
|
|
22
|
+
* Build the activity map for local execution: core's base activities plus every
|
|
23
|
+
* activity module the project's configured lexicons contribute, keyed by export
|
|
24
|
+
* name (`shellCmd`, `kubectlApply`, `gcpApply`, …).
|
|
20
25
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* that ships no `op/activities` module is skipped.
|
|
26
|
+
* Cloud-specific appliers live in their own lexicon (aws → `flociUp`/`flociDown`,
|
|
27
|
+
* gcp → `gcpApply`, azure → `azGroupEnsure`/`azGroupDelete`), so `lexicons` —
|
|
28
|
+
* the project's configured lexicon list — is consulted to pull those in. A
|
|
29
|
+
* lexicon that ships no `op/activities` module is skipped.
|
|
26
30
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
31
|
+
* Never throws: the base library is a static import, so there is no "no
|
|
32
|
+
* activities registered" state to report.
|
|
29
33
|
*/
|
|
30
34
|
export declare function loadActivities(lexicons?: string[]): Promise<Map<string, ActivityFn>>;
|
|
31
|
-
/** Structural shape of a TEMPORAL_ACTIVITY_PROFILES entry (timeout + retry). */
|
|
32
|
-
export interface ActivityProfile {
|
|
33
|
-
startToCloseTimeout?: string;
|
|
34
|
-
heartbeatTimeout?: string;
|
|
35
|
-
retry?: {
|
|
36
|
-
initialInterval?: string;
|
|
37
|
-
backoffCoefficient?: number;
|
|
38
|
-
maximumAttempts?: number;
|
|
39
|
-
maximumInterval?: string;
|
|
40
|
-
/** Error names (`Error.name`) that should fail immediately without retry. */
|
|
41
|
-
nonRetryableErrorTypes?: string[];
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
35
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* Imports the lexicon's `/config` entry, not its root index. `/config` is a
|
|
50
|
-
* side-effect-free data module; the root index pulls in the plugin, serializer,
|
|
51
|
-
* composites, and re-exported Op machinery, any of which could throw on load
|
|
52
|
-
* and make this silently return `{}` — which would drop every profiled step to
|
|
53
|
-
* the 5-minute default while the Temporal path (reading the same table) kept the
|
|
54
|
-
* declared timeout. Importing the narrow module keeps the two executors agreed.
|
|
36
|
+
* The built-in profile table. Kept async because it is awaited on the CLI's
|
|
37
|
+
* run path alongside {@link loadActivities}, and because a hosted runtime may
|
|
38
|
+
* one day resolve profiles from somewhere less immediate.
|
|
55
39
|
*/
|
|
56
40
|
export declare function loadProfiles(): Promise<Record<string, ActivityProfile>>;
|
|
57
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-registry.d.ts","sourceRoot":"","sources":["../../src/op/activity-registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"activity-registry.d.ts","sourceRoot":"","sources":["../../src/op/activity-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE9E,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAWnG;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,QAAQ,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAe9F;AAED;;;;GAIG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAE7E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACnC,EAAE,EAAE,MAAM,GACT,UAAU,CAOZ"}
|
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Activity runtime helpers shared by every Op activity implementation, wherever
|
|
3
|
-
* it lives — the base activities in
|
|
4
|
-
* appliers
|
|
5
|
-
*
|
|
6
|
-
* heartbeat or sleep.
|
|
3
|
+
* it lives — the base activities in `./activities` and the product-specific
|
|
4
|
+
* appliers in the aws/gcp/azure/k8s/fly lexicons. Hosting them in core keeps a
|
|
5
|
+
* lexicon from depending on another lexicon just to sleep between polls.
|
|
7
6
|
*/
|
|
8
|
-
/**
|
|
9
|
-
* Emit an activity heartbeat if running under a Temporal worker; otherwise no-op.
|
|
10
|
-
*
|
|
11
|
-
* The first call kicks off a one-time lazy load of `@temporalio/activity` and
|
|
12
|
-
* returns immediately; once resolved, subsequent calls heartbeat. Heartbeats
|
|
13
|
-
* are periodic (every ~15s, well inside the 60s heartbeat timeout), so the
|
|
14
|
-
* single missed first tick is harmless. Under chant's local executor (no
|
|
15
|
-
* Temporal SDK present) it no-ops, and the module imports cleanly without the SDK.
|
|
16
|
-
*/
|
|
17
|
-
export declare function safeHeartbeat(details?: unknown): void;
|
|
18
7
|
/**
|
|
19
8
|
* Sleep for `ms`, rejecting early if `signal` aborts. Polling activities use
|
|
20
9
|
* this between attempts so a local-executor timeout or Ctrl-C interrupts the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-runtime.d.ts","sourceRoot":"","sources":["../../src/op/activity-runtime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"activity-runtime.d.ts","sourceRoot":"","sources":["../../src/op/activity-runtime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrE"}
|