@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
|
@@ -20,8 +20,20 @@
|
|
|
20
20
|
* {@link UNRESOLVED} — an unevaluated intrinsic (`Fn::Sub`, `Ref`) has no
|
|
21
21
|
* source-side value to compare, and reporting one as drift would light up every
|
|
22
22
|
* interpolated property forever.
|
|
23
|
+
*
|
|
24
|
+
* ## The claim decides what counts as drift (#2160)
|
|
25
|
+
*
|
|
26
|
+
* The declared tree is not only one side of a comparison, it is a statement of
|
|
27
|
+
* which fields chant ever set — the claimed-field set (../claimed-fields.ts).
|
|
28
|
+
* A live value on a path outside it is somebody else's field: an autoscaler's
|
|
29
|
+
* replica count, a controller's annotation, a value a person typed into a
|
|
30
|
+
* console. It is reported in {@link DeepDiffResult.unclaimed}, with the
|
|
31
|
+
* manager's name where the substrate records one, and it is not drift. Only a
|
|
32
|
+
* claimed path that moved is, and drift is the only thing that may become an
|
|
33
|
+
* update.
|
|
23
34
|
*/
|
|
24
35
|
import { type DeepNormalizationHooks, type NormalizedDeepObservation } from "../deep-observation.js";
|
|
36
|
+
import { type FieldClaimSource } from "../claimed-fields.js";
|
|
25
37
|
import { type PathOrigin } from "../provenance.js";
|
|
26
38
|
import type { UnobservedResource } from "./live-diff.js";
|
|
27
39
|
import { type BaselineLexicon } from "./observation-baseline.js";
|
|
@@ -29,19 +41,29 @@ import { type BaselineLexicon } from "./observation-baseline.js";
|
|
|
29
41
|
* How a property differs.
|
|
30
42
|
*
|
|
31
43
|
* - `changed` — declared and live both have the path, with different values.
|
|
32
|
-
*
|
|
33
|
-
* to exist: the console-added property CloudFormation itself will not report.
|
|
44
|
+
* The only kind that may become an update.
|
|
34
45
|
* - `absent` — source declares it and the live tree does not carry it. Weaker
|
|
35
|
-
* than
|
|
46
|
+
* than `changed`: a provider that omits a property it considers unset is
|
|
36
47
|
* common, which is what the lexicon's pruning hook is for.
|
|
48
|
+
*
|
|
49
|
+
* A live value on a path source never declared used to be a third kind,
|
|
50
|
+
* `undeclared`. It is no longer drift at all (#2160): chant never set that
|
|
51
|
+
* field, so somebody else holds it, and it is reported in
|
|
52
|
+
* {@link DeepDiffResult.unclaimed} instead. It is still reported — pruning
|
|
53
|
+
* what chant cannot attribute is how #1191 lost a console-added label — it just
|
|
54
|
+
* stopped being a difference chant proposes to close.
|
|
37
55
|
*/
|
|
38
|
-
export type PropertyDriftKind = "changed" | "
|
|
56
|
+
export type PropertyDriftKind = "changed" | "absent";
|
|
39
57
|
/** One property-level difference. */
|
|
40
58
|
export interface PropertyDrift {
|
|
41
59
|
/** Path within the normalized property tree (`Tags[0].Value`). */
|
|
42
60
|
path: string;
|
|
43
61
|
kind: PropertyDriftKind;
|
|
44
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* Value in source. Always present since #2160 — a drift row is only ever
|
|
64
|
+
* raised for a path the declaration claims — and kept optional for the wire
|
|
65
|
+
* shape consumers already branch on.
|
|
66
|
+
*/
|
|
45
67
|
declared?: unknown;
|
|
46
68
|
/** Value in the cloud. Absent for `absent`. */
|
|
47
69
|
live?: unknown;
|
|
@@ -55,7 +77,8 @@ export interface PropertyDrift {
|
|
|
55
77
|
* The field manager that owns this path live, where the substrate records one
|
|
56
78
|
* (#1189) — Kubernetes' `managedFields`, and nowhere else today.
|
|
57
79
|
*
|
|
58
|
-
* `kind` says a path
|
|
80
|
+
* `kind` says whether a claimed path changed or went missing; this says who
|
|
81
|
+
* holds it live.
|
|
59
82
|
* "Owned by `kubectl-client-side-apply`" and "owned by `hpa-controller`" are
|
|
60
83
|
* the same `kind` and mean opposite things: one is somebody bypassing the
|
|
61
84
|
* pipeline, the other is a controller doing its job. Absent on a substrate
|
|
@@ -81,6 +104,72 @@ export interface DeepEntityDrift {
|
|
|
81
104
|
type: string;
|
|
82
105
|
changes: PropertyDrift[];
|
|
83
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* One live property value on a path this declaration never claimed (#2160) —
|
|
109
|
+
* a field that exists and that chant did not set.
|
|
110
|
+
*
|
|
111
|
+
* Reported, never proposed. The interesting column is {@link source}: on
|
|
112
|
+
* Kubernetes the API server names the manager and this row says
|
|
113
|
+
* `hpa-controller`; everywhere else the declaration is the only witness and the
|
|
114
|
+
* row says "not mine" without saying whose.
|
|
115
|
+
*/
|
|
116
|
+
export interface PropertyUnclaimed {
|
|
117
|
+
/** Path within the normalized property tree (`spec.replicas`). */
|
|
118
|
+
path: string;
|
|
119
|
+
/** The value the cloud is carrying. */
|
|
120
|
+
live: unknown;
|
|
121
|
+
/**
|
|
122
|
+
* The field manager holding it, where the substrate records one. Absent on
|
|
123
|
+
* every substrate but Kubernetes, and absent on Kubernetes for a path no
|
|
124
|
+
* `managedFields` entry covers.
|
|
125
|
+
*/
|
|
126
|
+
heldBy?: string;
|
|
127
|
+
/** Which source answered: the substrate's manager, or the claimed-field set. */
|
|
128
|
+
source: FieldClaimSource;
|
|
129
|
+
/**
|
|
130
|
+
* The accepted value from the baseline, when this path has one. An unclaimed
|
|
131
|
+
* field needs no acceptance to stay quiet, so this is carried for continuity with
|
|
132
|
+
* baselines recorded before #2160 rather than because it changes anything.
|
|
133
|
+
*/
|
|
134
|
+
baseline?: unknown;
|
|
135
|
+
}
|
|
136
|
+
/** Live property values one declared entity is not claiming. */
|
|
137
|
+
export interface DeepEntityUnclaimed {
|
|
138
|
+
name: string;
|
|
139
|
+
type: string;
|
|
140
|
+
fields: PropertyUnclaimed[];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* One property declared `heldElsewhere()` (#2162) — a fact about who owns the
|
|
144
|
+
* field at runtime, reported beside drift rather than folded into it. Never a
|
|
145
|
+
* {@link PropertyDrift}: a held property is never `changed`, `undeclared`, or
|
|
146
|
+
* `absent`, and is never proposed for update.
|
|
147
|
+
*/
|
|
148
|
+
export interface PropertyHeld {
|
|
149
|
+
/** Path within the normalized property tree, same addressing as {@link PropertyDrift.path}. */
|
|
150
|
+
path: string;
|
|
151
|
+
/** Who holds it — the marker's `by`. */
|
|
152
|
+
by: string;
|
|
153
|
+
/** Why chant does not reconcile it — the marker's `reason`. */
|
|
154
|
+
reason: string;
|
|
155
|
+
/** The live value, when the deep read found one at this path. */
|
|
156
|
+
live?: unknown;
|
|
157
|
+
/**
|
|
158
|
+
* True when this path carried no live value at all — the deep read found
|
|
159
|
+
* nothing here, not even a provider default. A declared hand-over with no
|
|
160
|
+
* evidence anything was ever written is itself worth a look: either the
|
|
161
|
+
* holder never ran, or this is not the field it actually writes.
|
|
162
|
+
*/
|
|
163
|
+
suspicious: boolean;
|
|
164
|
+
/** The field manager that owns this path live, where the substrate records one (#1189). See {@link PropertyDrift.owner}. */
|
|
165
|
+
owner?: string;
|
|
166
|
+
}
|
|
167
|
+
/** Held properties (#2162) for one declared entity. */
|
|
168
|
+
export interface DeepEntityHeld {
|
|
169
|
+
name: string;
|
|
170
|
+
type: string;
|
|
171
|
+
held: PropertyHeld[];
|
|
172
|
+
}
|
|
84
173
|
export interface DeepDiffResult {
|
|
85
174
|
/** Entities with at least one reportable property difference. Sorted by name. */
|
|
86
175
|
drifted: DeepEntityDrift[];
|
|
@@ -90,6 +179,28 @@ export interface DeepDiffResult {
|
|
|
90
179
|
* being held back and the count never silently changes meaning.
|
|
91
180
|
*/
|
|
92
181
|
accepted: DeepEntityDrift[];
|
|
182
|
+
/**
|
|
183
|
+
* Live values on paths nobody declared (#2160), per entity. Sorted by name.
|
|
184
|
+
*
|
|
185
|
+
* Not drift, and deliberately a sibling of `drifted` rather than a kind
|
|
186
|
+
* inside it: `countPropertyDrift` does not see this list, `--update-baseline`
|
|
187
|
+
* does not record it, and nothing downstream may turn one of these into an
|
|
188
|
+
* update. It exists so the report can still say the field is there and who
|
|
189
|
+
* has it.
|
|
190
|
+
*
|
|
191
|
+
* Not `held`, which is the opposite fact: `held` is a field source declared
|
|
192
|
+
* and then handed over with `heldElsewhere()`, and this is a field source
|
|
193
|
+
* never declared at all.
|
|
194
|
+
*/
|
|
195
|
+
unclaimed: DeepEntityUnclaimed[];
|
|
196
|
+
/**
|
|
197
|
+
* Properties declared `heldElsewhere()` (#2162) — reported here instead of
|
|
198
|
+
* in `drifted`/`accepted`, whatever the live value is. Not a suppression:
|
|
199
|
+
* every held property is listed, with its holder and reason, so a reader of
|
|
200
|
+
* the plan sees which fields are not being managed and by whom. Sorted by
|
|
201
|
+
* name.
|
|
202
|
+
*/
|
|
203
|
+
held: DeepEntityHeld[];
|
|
93
204
|
/** Entities whose property trees matched. Sorted. */
|
|
94
205
|
unchanged: string[];
|
|
95
206
|
/** Declared entities whose *properties* could not be read (#1089). Sorted. */
|
|
@@ -129,4 +240,20 @@ export interface DiffDeepInput {
|
|
|
129
240
|
export declare function diffDeep(input: DiffDeepInput): DeepDiffResult;
|
|
130
241
|
/** Total reported property differences across every entity. */
|
|
131
242
|
export declare function countPropertyDrift(result: DeepDiffResult): number;
|
|
243
|
+
/** Total live values on paths no declaration claimed, across every entity (#2160). Never added to the drift count. */
|
|
244
|
+
export declare function countUnclaimed(result: DeepDiffResult): number;
|
|
245
|
+
/** Total held properties (#2162) across every entity. */
|
|
246
|
+
export declare function countHeld(result: DeepDiffResult): number;
|
|
247
|
+
/** One held property flagged suspicious (#2162), with its entity attached. */
|
|
248
|
+
export interface SuspiciousHeld extends PropertyHeld {
|
|
249
|
+
name: string;
|
|
250
|
+
type: string;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Every held property whose declaration looks like a hand-over that never
|
|
254
|
+
* happened — no live value ever showed up for it. Worth a look: either the
|
|
255
|
+
* named holder never ran, or this is not the field it actually writes.
|
|
256
|
+
* Sorted by entity name, then path.
|
|
257
|
+
*/
|
|
258
|
+
export declare function suspiciousHeld(result: DeepDiffResult): SuspiciousHeld[];
|
|
132
259
|
//# sourceMappingURL=deep-diff.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-diff.d.ts","sourceRoot":"","sources":["../../src/lifecycle/deep-diff.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deep-diff.d.ts","sourceRoot":"","sources":["../../src/lifecycle/deep-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep-observe.d.ts","sourceRoot":"","sources":["../../src/lifecycle/deep-observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAIL,KAAK,sBAAsB,EAE3B,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"deep-observe.d.ts","sourceRoot":"","sources":["../../src/lifecycle/deep-observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAIL,KAAK,sBAAsB,EAE3B,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAChC,MAAM,EACN;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,CACjG,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;4CAEwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GACzC,yBAAyB,CAS3B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,yBAAyB,CAAC,CA+BpC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,yBAAyB,EAC/B,KAAK,CAAC,EAAE,sBAAsB,EAC9B,QAAQ,CAAC,EAAE,eAAe,GACzB,cAAc,CA6DhB;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,eAAe,CAAA;CAAE,GACxD,OAAO,CAAC,cAAc,CAAC,CAGzB"}
|
|
@@ -33,11 +33,13 @@ export declare function isApprovalUrl(raw: string): boolean;
|
|
|
33
33
|
export interface GateResolutionRecord {
|
|
34
34
|
/** Schema version, so an incompatible future shape is detected before being misread. */
|
|
35
35
|
version: 1;
|
|
36
|
+
/** Discriminator against {@link PendingGateRecord}, which shares this file. Absent on every line written before #2119, so a reader must treat "no kind" as `"resolution"`. */
|
|
37
|
+
kind?: "resolution";
|
|
36
38
|
/** The dispatched op the gate belongs to. */
|
|
37
39
|
op: string;
|
|
38
40
|
/** The gate's signal name (matches `ConvergeRuleOutcome.gateName`). */
|
|
39
41
|
gate: string;
|
|
40
|
-
/** Who resolved it — an actor name, the same convention `components release --actor` and `run
|
|
42
|
+
/** Who resolved it — an actor name, the same convention `components release --actor` and `run approve --approver` use. */
|
|
41
43
|
resolvedBy: string;
|
|
42
44
|
/** ISO-8601 timestamp, caller-supplied (library code never calls `Date.now()` internally). */
|
|
43
45
|
timestamp: string;
|
|
@@ -55,7 +57,54 @@ export interface GateResolutionRecord {
|
|
|
55
57
|
*/
|
|
56
58
|
url?: string;
|
|
57
59
|
}
|
|
58
|
-
export type GateResolutionInput = Omit<GateResolutionRecord, "version">;
|
|
60
|
+
export type GateResolutionInput = Omit<GateResolutionRecord, "version" | "kind">;
|
|
61
|
+
/**
|
|
62
|
+
* One immutable pending-gate record (#2119) — what an executor writes when a
|
|
63
|
+
* run reaches a `gate` step with no resolution standing against it. The run
|
|
64
|
+
* ends here with status `gated`; this line is the durable trace of that, and
|
|
65
|
+
* the anchor a later {@link GateResolutionRecord} has to be newer than to
|
|
66
|
+
* count as its answer.
|
|
67
|
+
*
|
|
68
|
+
* Idempotent by design: a run that finds a live (unexpired) pending fact for
|
|
69
|
+
* the same gate reuses it rather than appending a second one, so a converge
|
|
70
|
+
* loop ticking every minute against an unapproved gate does not grow the
|
|
71
|
+
* ledger by a line a minute. Once `expiresAt` passes, the fact is stale and
|
|
72
|
+
* the next run records a fresh one.
|
|
73
|
+
*/
|
|
74
|
+
export interface PendingGateRecord {
|
|
75
|
+
/** Schema version, so an incompatible future shape is detected before being misread. */
|
|
76
|
+
version: 1;
|
|
77
|
+
kind: "pending";
|
|
78
|
+
/** The op (or, on the component driver, the component) the gate belongs to. */
|
|
79
|
+
op: string;
|
|
80
|
+
/** The gate's name (matches `GateStep.gate`). */
|
|
81
|
+
gate: string;
|
|
82
|
+
/** The gate's human-readable description, when it declared one — what `chant operator status` shows a reader who wasn't there for the run. */
|
|
83
|
+
description?: string;
|
|
84
|
+
/** The run that reached the gate, when the caller identifies its runs. */
|
|
85
|
+
runId?: string;
|
|
86
|
+
/** ISO-8601 timestamp, caller-supplied (library code never calls `Date.now()` internally). */
|
|
87
|
+
timestamp: string;
|
|
88
|
+
/** ISO-8601 expiry, from the gate's `timeout` (default {@link DEFAULT_GATE_EXPIRY}). Past it, the fact is stale and a run re-records it. */
|
|
89
|
+
expiresAt: string;
|
|
90
|
+
/** The address approval happens at, when the run knew one — see {@link resolveApprovalUrl}. */
|
|
91
|
+
url?: string;
|
|
92
|
+
}
|
|
93
|
+
export type PendingGateInput = Omit<PendingGateRecord, "version" | "kind">;
|
|
94
|
+
/** Either kind of line in `_gates/<op>.jsonl`. */
|
|
95
|
+
export type GateLedgerRecord = GateResolutionRecord | PendingGateRecord;
|
|
96
|
+
/** The default a gate's pending fact expires after when its `GateStep` declares no `timeout` — the same 48h `GateStep.timeout` documents as its own default. */
|
|
97
|
+
export declare const DEFAULT_GATE_EXPIRY = "48h";
|
|
98
|
+
/** Whether a pending fact has aged out of relevance at `nowIso`. */
|
|
99
|
+
export declare function isPendingGateExpired(record: PendingGateRecord, nowIso: string): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Where an Op's gate ledger lives, as a path a human can go and read:
|
|
102
|
+
* `_gates/<op>.jsonl` on the `chant/lifecycle` orphan branch. Exported so a
|
|
103
|
+
* renderer that tells someone a gate is pending can name the file the pending
|
|
104
|
+
* fact was appended to (#2243) rather than describing it in prose that drifts
|
|
105
|
+
* from `DIR`.
|
|
106
|
+
*/
|
|
107
|
+
export declare function gateLedgerPath(op: string): string;
|
|
59
108
|
/** Append one immutable gate-resolution record. Does not push to the remote — call `pushLifecycle` (./git.ts) afterward, same two-step shape every other ledger write here uses. Retries on `RefCASConflictError` the same way `appendConvergeRecord` does (./converge-ledger.ts) — a concurrent writer to a different op's/env's file on the same orphan branch is the ordinary case, not an edge case. The baseline read must be `readPathSha` + `readBlobBySha` rather than `readBlobFromPath`, so the exact sha `existing` came from can be passed as `expectPriorPathSha` — see `writeBlobToPath` (./git.ts) for the race that closes. */
|
|
60
109
|
export declare function appendGateResolution(input: GateResolutionInput, opts?: {
|
|
61
110
|
cwd?: string;
|
|
@@ -63,13 +112,40 @@ export declare function appendGateResolution(input: GateResolutionInput, opts?:
|
|
|
63
112
|
commit: string;
|
|
64
113
|
record: GateResolutionRecord;
|
|
65
114
|
}>;
|
|
66
|
-
/**
|
|
115
|
+
/**
|
|
116
|
+
* Append one immutable pending-gate record (#2119) — the fact a run leaves
|
|
117
|
+
* behind when it reaches a gate nobody has approved. Same file, same
|
|
118
|
+
* append-and-retry discipline, same "does not push" contract as
|
|
119
|
+
* {@link appendGateResolution}.
|
|
120
|
+
*/
|
|
121
|
+
export declare function appendPendingGate(input: PendingGateInput, opts?: {
|
|
122
|
+
cwd?: string;
|
|
123
|
+
}): Promise<{
|
|
124
|
+
commit: string;
|
|
125
|
+
record: PendingGateRecord;
|
|
126
|
+
}>;
|
|
127
|
+
/**
|
|
128
|
+
* Read every line of `op`'s gate file, oldest first, split into the two kinds
|
|
129
|
+
* (#2119). Malformed lines are skipped and counted, not thrown on — the same
|
|
130
|
+
* graceful-degradation stance `readConvergeLedger` takes. Returns empty arrays
|
|
131
|
+
* (never throws) when `op` has nothing recorded yet.
|
|
132
|
+
*/
|
|
133
|
+
export declare function readGateLedger(op: string, opts?: {
|
|
134
|
+
cwd?: string;
|
|
135
|
+
}): Promise<{
|
|
136
|
+
resolutions: GateResolutionRecord[];
|
|
137
|
+
pending: PendingGateRecord[];
|
|
138
|
+
malformed: number;
|
|
139
|
+
}>;
|
|
140
|
+
/** Read every gate-*resolution* record for `op`, oldest first — {@link readGateLedger} narrowed to the half every caller before #2119 wanted. Pending facts are not malformed lines and are not counted as such. */
|
|
67
141
|
export declare function readGateResolutions(op: string, opts?: {
|
|
68
142
|
cwd?: string;
|
|
69
143
|
}): Promise<{
|
|
70
144
|
records: GateResolutionRecord[];
|
|
71
145
|
malformed: number;
|
|
72
146
|
}>;
|
|
147
|
+
/** The most recent pending fact for `gate`, expired or not — the anchor {@link latestResolutionSince} measures a resolution against. `undefined` when the gate has never been recorded pending. */
|
|
148
|
+
export declare function latestPendingGate(records: PendingGateRecord[], gate: string): PendingGateRecord | undefined;
|
|
73
149
|
/** The most recent resolution for `gate` recorded after `sinceIso` (a gated tick's own timestamp) — what `chant operator status` uses to tell a resolved gate from a still-pending one. `undefined` when no such resolution exists. */
|
|
74
150
|
export declare function latestResolutionSince(records: GateResolutionRecord[], gate: string, sinceIso: string): GateResolutionRecord | undefined;
|
|
75
151
|
//# sourceMappingURL=gate-ledger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-ledger.d.ts","sourceRoot":"","sources":["../../src/lifecycle/gate-ledger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate-ledger.d.ts","sourceRoot":"","sources":["../../src/lifecycle/gate-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ export * from "./teardown.js";
|
|
|
20
20
|
export * from "./assert-live.js";
|
|
21
21
|
export * from "./symptoms.js";
|
|
22
22
|
export * from "./converge-ledger.js";
|
|
23
|
+
export * from "./run-ledger.js";
|
|
23
24
|
export * from "./scenario.js";
|
|
24
25
|
export * from "./scenario-eval.js";
|
|
25
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
|
|
@@ -93,8 +93,8 @@ export interface ReleaseRecord {
|
|
|
93
93
|
/**
|
|
94
94
|
* Who approved the change at its durable approval gate (#1035). Populated for
|
|
95
95
|
* a gated change — the same identity the approver supplied when they cleared
|
|
96
|
-
* the
|
|
97
|
-
*
|
|
96
|
+
* the gate (`chant approve <op> <gate> --approver`, recorded on the gate
|
|
97
|
+
* resolution fact). Optional and omitted for an
|
|
98
98
|
* ungated change (nothing to approve), so `actor` alone answers "who made
|
|
99
99
|
* it" while `approver` answers "who approved it" only where a gate exists.
|
|
100
100
|
* Distinct from `actor`: the approver is deliberately a different person than
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { OpConfig } from "../op/types.js";
|
|
2
|
+
import type { StepRecord } from "../op/local-executor.js";
|
|
3
|
+
import type { OpRunRecord, OpRunRecordInput } from "../op/runtime.js";
|
|
4
|
+
/** The env a run records against when its Op declares no `labels.Env`. */
|
|
5
|
+
export declare const DEFAULT_RUN_ENV = "local";
|
|
6
|
+
/** The env a run records against: the Op's own `labels.Env`, else {@link DEFAULT_RUN_ENV}. */
|
|
7
|
+
export declare function runEnvOf(config: Pick<OpConfig, "labels">): string;
|
|
8
|
+
/**
|
|
9
|
+
* Fold a run's step records into the ledger shape, pure — no clock, no git.
|
|
10
|
+
* `started`/`ended` are supplied by the caller for the same reason
|
|
11
|
+
* `ConvergeTickRecord.timestamp` is: library code here never calls
|
|
12
|
+
* `Date.now()` itself.
|
|
13
|
+
*
|
|
14
|
+
* Phases are grouped by `StepRecord.phase` in first-seen order, which is
|
|
15
|
+
* execution order for the sequential path and the authored order for a
|
|
16
|
+
* parallel one. A compensation (`onFailure`) phase appears after the phase
|
|
17
|
+
* that failed, exactly where the executor emitted its records.
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildRunRecord(config: Pick<OpConfig, "name" | "labels">, records: readonly StepRecord[], times: {
|
|
20
|
+
started: string;
|
|
21
|
+
ended: string;
|
|
22
|
+
status: OpRunRecord["status"];
|
|
23
|
+
id?: string;
|
|
24
|
+
gate?: OpRunRecord["gate"];
|
|
25
|
+
}): OpRunRecordInput;
|
|
26
|
+
/**
|
|
27
|
+
* Append one immutable run record. Does not push to the remote — call
|
|
28
|
+
* `pushLifecycle` (./git.ts) afterward, the two-step shape every ledger here
|
|
29
|
+
* uses.
|
|
30
|
+
*
|
|
31
|
+
* Mints `record.id` when the input carries none, and retries the whole
|
|
32
|
+
* read-modify-write on `RefCASConflictError` re-reading fresh each attempt —
|
|
33
|
+
* see `appendConvergeRecord`'s doc for why both of those live in the append
|
|
34
|
+
* function rather than in its callers.
|
|
35
|
+
*/
|
|
36
|
+
export declare function appendRunRecord(input: OpRunRecordInput, opts?: {
|
|
37
|
+
cwd?: string;
|
|
38
|
+
}): Promise<{
|
|
39
|
+
commit: string;
|
|
40
|
+
record: OpRunRecord;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Read every run record for `op` in `environment`, oldest first. Malformed
|
|
44
|
+
* lines are skipped and counted, never thrown on — a hand-edited or truncated
|
|
45
|
+
* ledger degrades to a shorter history, the stance every ledger here takes.
|
|
46
|
+
*/
|
|
47
|
+
export declare function readRunLedger(environment: string, op: string, opts?: {
|
|
48
|
+
cwd?: string;
|
|
49
|
+
}): Promise<{
|
|
50
|
+
records: OpRunRecord[];
|
|
51
|
+
malformed: number;
|
|
52
|
+
}>;
|
|
53
|
+
//# sourceMappingURL=run-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-ledger.d.ts","sourceRoot":"","sources":["../../src/lifecycle/run-ledger.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAqC,MAAM,eAAe,CAAC;AAStG,0EAA0E;AAC1E,eAAO,MAAM,eAAe,UAAU,CAAC;AAMvC,8FAA8F;AAC9F,wBAAgB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,CAEjE;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,EACzC,OAAO,EAAE,SAAS,UAAU,EAAE,EAC9B,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5B,GACA,gBAAgB,CAoClB;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CAsBlD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BxD"}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* `LexiconPlugin.symptoms?()` interface in v1 — everything here is a pure
|
|
9
9
|
* projection of structures chant already computes (`ChangeSet`,
|
|
10
10
|
* `ComponentStatusRow[]`). No I/O in this module; a caller (the `convergeTick`
|
|
11
|
-
* activity,
|
|
12
|
-
*
|
|
11
|
+
* activity, ../op/activities/converge.ts) gathers those inputs and hands them
|
|
12
|
+
* here.
|
|
13
13
|
*
|
|
14
14
|
* One record per tick, not per component: the issue's own rule sketch reads
|
|
15
15
|
* `s.status`/`s.backupVerifiedAge` as a single symptom `s` a rule closes
|
|
@@ -58,6 +58,6 @@ export interface ConvergeSymptom {
|
|
|
58
58
|
* `ConvergeSymptom`. Pure — no I/O.
|
|
59
59
|
*/
|
|
60
60
|
export declare function deriveSymptoms(env: string, cs: ChangeSet, statusRows: ComponentStatusRow[]): ConvergeSymptom;
|
|
61
|
-
/** Every field name a `ConvergeSymptom` produces — the runtime whitelist `
|
|
61
|
+
/** Every field name a `ConvergeSymptom` produces — the runtime whitelist `OPS014` (packages/core/src/lint/rules/op/ops014-converge-rule-refusals.ts) re-validates a serialized rule table's predicates against. Kept in sync with {@link ConvergeSymptom} by hand (deliberately small, changes rarely). */
|
|
62
62
|
export declare const CONVERGE_SYMPTOM_FIELDS: ReadonlySet<string>;
|
|
63
63
|
//# sourceMappingURL=symptoms.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symptoms.d.ts","sourceRoot":"","sources":["../../src/lifecycle/symptoms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAkB7E,qKAAqK;AACrK,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAM5F;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,gHAAgH;IAChH,MAAM,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,wIAAwI;IACxI,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,wLAAwL;IACxL,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,eAAe,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,eAAe,CAwB5G;AAED,
|
|
1
|
+
{"version":3,"file":"symptoms.d.ts","sourceRoot":"","sources":["../../src/lifecycle/symptoms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAkB7E,qKAAqK;AACrK,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAM5F;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,gHAAgH;IAChH,MAAM,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,wIAAwI;IACxI,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,wLAAwL;IACxL,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,eAAe,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,kGAAkG;IAClG,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAG,eAAe,CAwB5G;AAED,2SAA2S;AAC3S,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAatD,CAAC"}
|
package/dist/lint/config.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { Severity, RuleConfig } from "./rule.js";
|
|
3
3
|
import type { PostSynthDiagnostic } from "./post-synth.js";
|
|
4
|
+
import { type RuleMeta } from "../audit/catalog.js";
|
|
4
5
|
export { findProjectRoot } from "../project-root.js";
|
|
5
6
|
export declare const LintConfigSchema: z.ZodObject<{
|
|
6
7
|
rules: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodEnum<{
|
|
@@ -31,6 +32,7 @@ export declare const LintConfigSchema: z.ZodObject<{
|
|
|
31
32
|
}, z.core.$strip>>>;
|
|
32
33
|
plugins: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
34
|
policies: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
35
|
+
presets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
34
36
|
}, z.core.$strip>;
|
|
35
37
|
/**
|
|
36
38
|
* Per-file rule override
|
|
@@ -61,6 +63,23 @@ export interface LintConfig {
|
|
|
61
63
|
* phase; same engine.
|
|
62
64
|
*/
|
|
63
65
|
policies?: string[];
|
|
66
|
+
/**
|
|
67
|
+
* Lexicon name mapped to a preset name (chant #2113), e.g.
|
|
68
|
+
* `{ terraform: "recommended" }`. A preset is a lexicon's own bundle of
|
|
69
|
+
* post-synth check ids. tflint ships `recommended` (a subset) and `all`
|
|
70
|
+
* for its Terraform-language rules the same way, and a lexicon that ships
|
|
71
|
+
* one exposes it through its plugin's `lintPresets()` (`../lexicon.ts`).
|
|
72
|
+
* Naming a preset here changes which of that lexicon's post-synth findings
|
|
73
|
+
* are reported at all, distinct from `rules`, which changes an
|
|
74
|
+
* already-reported finding's severity. A rule a preset excludes is not
|
|
75
|
+
* suppressed (it never runs the severity-override gauntlet in the first
|
|
76
|
+
* place), but an explicit `rules` entry for it always wins and re-enables
|
|
77
|
+
* it regardless of the active preset, see `resolvePresetIds`/
|
|
78
|
+
* `applyConfiguredPreset` below. Unset, or naming a preset the lexicon
|
|
79
|
+
* does not export, falls back to `"recommended"`. A lexicon that ships no
|
|
80
|
+
* presets at all is unaffected by this field, same as today.
|
|
81
|
+
*/
|
|
82
|
+
presets?: Record<string, string>;
|
|
64
83
|
}
|
|
65
84
|
/**
|
|
66
85
|
* Parsed rule configuration with severity and optional options
|
|
@@ -96,8 +115,17 @@ export declare function parseRuleConfig(value: RuleConfig): ParsedRuleConfig;
|
|
|
96
115
|
* checks have no per-file scope to begin with (see {@link
|
|
97
116
|
* ./post-synth.ts!PostSynthDiagnostic}'s doc for why), so they always pass
|
|
98
117
|
* `config.rules` directly.
|
|
118
|
+
*
|
|
119
|
+
* `catalog` (chant #2113) is optional and off by default: pass a resolved
|
|
120
|
+
* audit catalog to also honor a `rules` key that names one of `id`'s
|
|
121
|
+
* `RuleMeta.aliases` rather than `id` itself. A project's
|
|
122
|
+
* `lint.rules: { OLD_ID: "off" }` then keeps suppressing the rule after it
|
|
123
|
+
* is renamed/renumbered, instead of silently starting to match nothing. Every
|
|
124
|
+
* existing call site omits `catalog` and is unaffected; a caller that has one
|
|
125
|
+
* handy (an audit-shaped consumer, not `chant build`'s post-synth loop, which
|
|
126
|
+
* has no catalog readily resolved at that point) opts in by passing it.
|
|
99
127
|
*/
|
|
100
|
-
export declare function resolveConfiguredSeverity(rules: Record<string, RuleConfig> | undefined, id: string, defaultSeverity: Severity): ParsedRuleConfig;
|
|
128
|
+
export declare function resolveConfiguredSeverity(rules: Record<string, RuleConfig> | undefined, id: string, defaultSeverity: Severity, catalog?: Record<string, RuleMeta>): ParsedRuleConfig;
|
|
101
129
|
/**
|
|
102
130
|
* Default configuration with all rules enabled at strict preset severities
|
|
103
131
|
*/
|
|
@@ -182,6 +210,57 @@ export interface PostSynthSeverityResult {
|
|
|
182
210
|
* remove. Config severity (`"off"`) is the one suppression surface this can
|
|
183
211
|
* offer uniformly; a check that wants a per-instance escape hatch can read
|
|
184
212
|
* `ctx.env`/its own options to decide not to emit a diagnostic at all.
|
|
213
|
+
*
|
|
214
|
+
* chant #2111 adds a second, narrower surface next to this one:
|
|
215
|
+
* `./suppressions.ts`'s `applyInlineSuppressions` matches `diag.entity`
|
|
216
|
+
* against `ctx.entities` (a source-level map key every `PostSynthContext`
|
|
217
|
+
* carries) instead of a name in the synthesized output, so it sidesteps the
|
|
218
|
+
* exact mismatch this comment describes. It is opt-in per lexicon (an entity
|
|
219
|
+
* has to carry a `suppressions` field) and runs as its own pass, right after
|
|
220
|
+
* this one, in both `chant build` and `chant audit`. See that module's doc
|
|
221
|
+
* for the full reasoning.
|
|
222
|
+
*
|
|
223
|
+
* `catalog` (chant #2113, optional) passes straight through to
|
|
224
|
+
* `resolveConfiguredSeverity` above for alias resolution; see its doc for
|
|
225
|
+
* what that buys and why it's opt-in.
|
|
226
|
+
*/
|
|
227
|
+
export declare function applyConfiguredSeverity(diagnostics: readonly PostSynthDiagnostic[], rules: Record<string, RuleConfig> | undefined, catalog?: Record<string, RuleMeta>): PostSynthSeverityResult;
|
|
228
|
+
/**
|
|
229
|
+
* Result of applying a lexicon preset to a set of post-synth diagnostics.
|
|
230
|
+
* Shaped like {@link PostSynthSeverityResult} so a caller threading both
|
|
231
|
+
* through (a preset filter, then a severity override) handles them the same
|
|
232
|
+
* way. See `applyConfiguredPreset` below.
|
|
233
|
+
*/
|
|
234
|
+
export interface PostSynthPresetResult {
|
|
235
|
+
/** Diagnostics whose check id the active preset enables (or that `rules` explicitly configures, see below). */
|
|
236
|
+
diagnostics: PostSynthDiagnostic[];
|
|
237
|
+
/** Diagnostics the active preset excluded, unaltered. Countable rather than silently dropped, mirroring `PostSynthSeverityResult.suppressed`. */
|
|
238
|
+
suppressed: PostSynthDiagnostic[];
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Resolve `lint.presets`' name for one lexicon into the set of check ids that
|
|
242
|
+
* preset enables (chant #2113). `presets` is what a lexicon plugin's
|
|
243
|
+
* `lintPresets()` returns (`../lexicon.ts`). A lexicon that ships none
|
|
244
|
+
* passes `undefined` here, in which case this returns `undefined` and
|
|
245
|
+
* `applyConfiguredPreset` below becomes a no-op (every rule reports, exactly
|
|
246
|
+
* today's behavior for a lexicon this feature doesn't touch).
|
|
247
|
+
*
|
|
248
|
+
* An unrecognized preset name (a typo, or a name the lexicon doesn't define)
|
|
249
|
+
* also returns `undefined` rather than an empty set. Falling back to
|
|
250
|
+
* unfiltered is the safe failure direction; silently reporting nothing would
|
|
251
|
+
* not be.
|
|
252
|
+
*/
|
|
253
|
+
export declare function resolvePresetIds(presets: Record<string, string[]> | undefined, presetName: string): Set<string> | undefined;
|
|
254
|
+
/**
|
|
255
|
+
* Filter post-synth diagnostics down to an active preset's ids (chant
|
|
256
|
+
* #2113). `presetIds` is `resolvePresetIds`'s output. `undefined` disables
|
|
257
|
+
* filtering entirely (a lexicon with no presets, or an unresolved preset
|
|
258
|
+
* name), matching tflint's own precedence chain (`--only` / rule config,
|
|
259
|
+
* then preset, then `disabled_by_default`, `tflint-ruleset-terraform`'s
|
|
260
|
+
* config docs): an explicit `lint.rules` entry for a check id always keeps
|
|
261
|
+
* that id's findings, whether or not the active preset includes it, so a
|
|
262
|
+
* project can opt a single report-only rule back in under `recommended`
|
|
263
|
+
* without switching its whole lexicon to `all`.
|
|
185
264
|
*/
|
|
186
|
-
export declare function
|
|
265
|
+
export declare function applyConfiguredPreset(diagnostics: readonly PostSynthDiagnostic[], presetIds: Set<string> | undefined, rules: Record<string, RuleConfig> | undefined): PostSynthPresetResult;
|
|
187
266
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lint/config.ts"],"names":[],"mappings":"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"}
|