@intentius/chant 0.124.13 → 0.124.14
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/bin/chant +11 -0
- package/dist/agents/checks.js +326 -0
- package/dist/agents/discover.js +885 -0
- package/dist/agents/importer.js +17 -0
- package/dist/agents/index.js +12 -0
- package/dist/agents/types.js +19 -0
- package/dist/apply.js +151 -0
- package/dist/attrref.js +70 -0
- package/dist/audit/catalog.js +350 -0
- package/dist/audit/core.js +252 -0
- package/dist/audit/discover.js +633 -0
- package/dist/audit/fetch.js +666 -0
- package/dist/audit/lineage.js +91 -0
- package/dist/audit/nginx.js +366 -0
- package/dist/audit/prior-art.js +132 -0
- package/dist/audit/proof.js +321 -0
- package/dist/audit/report-html.js +194 -0
- package/dist/audit/report-model.js +198 -0
- package/dist/audit/report.js +102 -0
- package/dist/audit/rules-doc.js +144 -0
- package/dist/audit/secrets.js +405 -0
- package/dist/audit/terraform-state.js +140 -0
- package/dist/audit/wrangler.js +262 -0
- package/dist/behaviour-delta.js +401 -0
- package/dist/behaviour-engine.js +357 -0
- package/dist/behaviour-graph.js +83 -0
- package/dist/behaviour-http.js +188 -0
- package/dist/behaviour-kinds.js +172 -0
- package/dist/behaviour-overlay.js +50 -0
- package/dist/behaviour-predict.js +188 -0
- package/dist/behaviour-request.js +194 -0
- package/dist/behaviour.js +1325 -0
- package/dist/build-params.js +108 -0
- package/dist/build.js +668 -0
- package/dist/builder.js +44 -0
- package/dist/cdk/advise.js +30 -0
- package/dist/cdk/assembly.js +122 -0
- package/dist/cdk/graph.js +444 -0
- package/dist/cdk/tier-map.js +64 -0
- package/dist/cdk/types.js +24 -0
- package/dist/change-set.js +312 -0
- package/dist/child-project.js +21 -0
- package/dist/claimed-fields.js +135 -0
- package/dist/cli/build-options.js +70 -0
- package/dist/cli/build-params-cli.js +139 -0
- package/dist/cli/command-group.js +123 -0
- package/dist/cli/commands/audit-agents.js +326 -0
- package/dist/cli/commands/audit.js +571 -0
- package/dist/cli/commands/build.js +920 -0
- package/dist/cli/commands/carve-apply.js +153 -0
- package/dist/cli/commands/carve-bridge.js +201 -0
- package/dist/cli/commands/carve-emit.js +332 -0
- package/dist/cli/commands/carve-status.js +119 -0
- package/dist/cli/commands/carve.js +204 -0
- package/dist/cli/commands/check-lexicon-docs.js +79 -0
- package/dist/cli/commands/check-lexicon-examples.js +177 -0
- package/dist/cli/commands/check-lexicon-intrinsics.js +291 -0
- package/dist/cli/commands/check-lexicon-mcp.js +82 -0
- package/dist/cli/commands/check-lexicon-plugin.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon-plugin.js +104 -0
- package/dist/cli/commands/check-lexicon.js +766 -0
- package/dist/cli/commands/describe.js +85 -0
- package/dist/cli/commands/diff.js +175 -0
- package/dist/cli/commands/doctor.js +350 -0
- package/dist/cli/commands/import-agents.js +155 -0
- package/dist/cli/commands/import.js +670 -0
- package/dist/cli/commands/init-lexicon/templates/codegen.js +194 -0
- package/dist/cli/commands/init-lexicon/templates/docs.js +100 -0
- package/dist/cli/commands/init-lexicon/templates/examples.js +29 -0
- package/dist/cli/commands/init-lexicon/templates/lint.js +34 -0
- package/dist/cli/commands/init-lexicon/templates/lsp.js +37 -0
- package/dist/cli/commands/init-lexicon/templates/plugin.js +108 -0
- package/dist/cli/commands/init-lexicon/templates/project.js +240 -0
- package/dist/cli/commands/init-lexicon/templates/spec.js +56 -0
- package/dist/cli/commands/init-lexicon/templates/tests.js +66 -0
- package/dist/cli/commands/init-lexicon.js +172 -0
- package/dist/cli/commands/init.js +381 -0
- package/dist/cli/commands/lexicon-rolling-upgrade.js +145 -0
- package/dist/cli/commands/lexicon-surface-diff.js +145 -0
- package/dist/cli/commands/licenses.js +125 -0
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/lint.js +948 -0
- package/dist/cli/commands/list.js +63 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +423 -0
- package/dist/cli/commands/onboard.js +403 -0
- package/dist/cli/commands/pinned-upgrade.js +191 -0
- package/dist/cli/commands/update.js +194 -0
- package/dist/cli/commands/vendor.js +217 -0
- package/dist/cli/conflict-check.js +104 -0
- package/dist/cli/debug.js +8 -0
- package/dist/cli/format.js +104 -0
- package/dist/cli/handlers/build.js +267 -0
- package/dist/cli/handlers/carve-apply.js +30 -0
- package/dist/cli/handlers/carve-bridge.js +28 -0
- package/dist/cli/handlers/carve-emit.js +50 -0
- package/dist/cli/handlers/carve-status.js +26 -0
- package/dist/cli/handlers/carve.js +40 -0
- package/dist/cli/handlers/change-set.js +46 -0
- package/dist/cli/handlers/components.js +730 -0
- package/dist/cli/handlers/dev.js +113 -0
- package/dist/cli/handlers/emulator.js +233 -0
- package/dist/cli/handlers/explain.js +54 -0
- package/dist/cli/handlers/fan-out.js +422 -0
- package/dist/cli/handlers/gate-resume.js +275 -0
- package/dist/cli/handlers/generate.js +84 -0
- package/dist/cli/handlers/graph.js +969 -0
- package/dist/cli/handlers/init.js +102 -0
- package/dist/cli/handlers/lifecycle.js +1727 -0
- package/dist/cli/handlers/lint.js +62 -0
- package/dist/cli/handlers/migrate.js +48 -0
- package/dist/cli/handlers/misc.js +391 -0
- package/dist/cli/handlers/operator.js +1162 -0
- package/dist/cli/handlers/override-approve.js +102 -0
- package/dist/cli/handlers/pr.js +503 -0
- package/dist/cli/handlers/promote.js +342 -0
- package/dist/cli/handlers/run-generate.js +206 -0
- package/dist/cli/handlers/run-wave.js +66 -0
- package/dist/cli/handlers/run.js +1191 -0
- package/dist/cli/handlers/scenario.js +325 -0
- package/dist/cli/handlers/search.js +924 -0
- package/dist/cli/handlers/serve.js +32 -0
- package/dist/cli/handlers/vendor.js +154 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/is-entry-point.js +23 -0
- package/dist/cli/lsp/capabilities.js +28 -0
- package/dist/cli/lsp/diagnostics.js +34 -0
- package/dist/cli/lsp/server.js +329 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +2540 -0
- package/dist/cli/mcp/lifecycle-tools.js +80 -0
- package/dist/cli/mcp/op-tools.js +306 -0
- package/dist/cli/mcp/resource-handlers.js +258 -0
- package/dist/cli/mcp/resources/context.js +85 -0
- package/dist/cli/mcp/server.js +353 -0
- package/dist/cli/mcp/tools/build.js +111 -0
- package/dist/cli/mcp/tools/composites.js +95 -0
- package/dist/cli/mcp/tools/explain.js +166 -0
- package/dist/cli/mcp/tools/import.js +49 -0
- package/dist/cli/mcp/tools/lint.js +41 -0
- package/dist/cli/mcp/tools/scaffold.js +111 -0
- package/dist/cli/mcp/tools/search.js +112 -0
- package/dist/cli/mcp/types.js +1 -0
- package/dist/cli/mcp/workspace-plugins.js +91 -0
- package/dist/cli/mcp/workspace-tools.d.ts +1 -1
- package/dist/cli/mcp/workspace-tools.js +564 -0
- package/dist/cli/mcp-config.js +70 -0
- package/dist/cli/plugins.js +313 -0
- package/dist/cli/registry.js +23 -0
- package/dist/cli/reporters/stylish.js +329 -0
- package/dist/cli/version.js +15 -0
- package/dist/cli/watch.js +79 -0
- package/dist/codegen/bound-property-types.js +82 -0
- package/dist/codegen/coverage.js +119 -0
- package/dist/codegen/docs-file-markers.js +60 -0
- package/dist/codegen/docs-pages.js +115 -0
- package/dist/codegen/docs-rule-scanning.js +164 -0
- package/dist/codegen/docs-rules.js +76 -0
- package/dist/codegen/docs-sections.js +117 -0
- package/dist/codegen/docs-sidebar.js +65 -0
- package/dist/codegen/docs-types.js +4 -0
- package/dist/codegen/docs.js +356 -0
- package/dist/codegen/fetch.js +340 -0
- package/dist/codegen/generate-post-synth-barrel.js +63 -0
- package/dist/codegen/generate-registry.js +71 -0
- package/dist/codegen/generate-runtime-index.js +56 -0
- package/dist/codegen/generate-typescript.js +119 -0
- package/dist/codegen/generate.js +115 -0
- package/dist/codegen/json-patch.js +141 -0
- package/dist/codegen/json-schema-to-ts.js +344 -0
- package/dist/codegen/json-schema.js +246 -0
- package/dist/codegen/lexicon-regen.js +412 -0
- package/dist/codegen/naming.js +217 -0
- package/dist/codegen/okf-lexicon.js +245 -0
- package/dist/codegen/package.js +150 -0
- package/dist/codegen/pinned-upgrade.d.ts.map +1 -1
- package/dist/codegen/pinned-upgrade.js +494 -0
- package/dist/codegen/registry.js +60 -0
- package/dist/codegen/rehype-base-url.mjs +68 -0
- package/dist/codegen/rolling-upgrade.js +217 -0
- package/dist/codegen/surface-snapshot.js +537 -0
- package/dist/codegen/testdata/postgres-tags.json +242 -0
- package/dist/codegen/topo-sort.js +36 -0
- package/dist/codegen/typecheck.js +115 -0
- package/dist/codegen/validate.js +200 -0
- package/dist/codegen/version-bump.js +35 -0
- package/dist/components/auto-release.js +143 -0
- package/dist/components/builders.js +47 -0
- package/dist/components/capability-plugin-loader.js +175 -0
- package/dist/components/capability-plugin-schema.js +46 -0
- package/dist/components/capability-plugin.js +99 -0
- package/dist/components/capability.js +60 -0
- package/dist/components/changed-files.js +72 -0
- package/dist/components/cli-support.js +427 -0
- package/dist/components/component.js +120 -0
- package/dist/components/component.schema.json +271 -0
- package/dist/components/config-defaults.js +130 -0
- package/dist/components/deploy-units.js +60 -0
- package/dist/components/discover.d.ts.map +1 -1
- package/dist/components/discover.js +189 -0
- package/dist/components/driver-output.js +86 -0
- package/dist/components/driver.js +728 -0
- package/dist/components/fan-out-output.js +165 -0
- package/dist/components/fan-out-record.js +94 -0
- package/dist/components/fan-out-run.js +373 -0
- package/dist/components/fan-out-support.js +60 -0
- package/dist/components/fan-out.js +273 -0
- package/dist/components/gate-plan.js +41 -0
- package/dist/components/gated-wave-pipeline.js +46 -0
- package/dist/components/index.js +24 -0
- package/dist/components/layers.js +28 -0
- package/dist/components/manifest-persistence.js +108 -0
- package/dist/components/pilots/alb-ecs.pilot.js +59 -0
- package/dist/components/pilots/dynamodb.pilot.js +51 -0
- package/dist/components/pilots/jar-emr.pilot.js +65 -0
- package/dist/components/pilots/lambda.pilot.js +52 -0
- package/dist/components/pilots/neo4j-fanout.pilot.js +68 -0
- package/dist/components/pilots/project.js +12 -0
- package/dist/components/pr-pipeline.js +134 -0
- package/dist/components/pr-run.js +363 -0
- package/dist/components/presets/ecs-fargate.js +72 -0
- package/dist/components/presets/index.js +28 -0
- package/dist/components/presets/lambda.js +34 -0
- package/dist/components/presets/single-host-compose.js +41 -0
- package/dist/components/promote.js +549 -0
- package/dist/components/registry.js +34 -0
- package/dist/components/run-progress.js +33 -0
- package/dist/components/sandbox/driver.d.ts.map +1 -1
- package/dist/components/sandbox/driver.js +93 -0
- package/dist/components/sandbox/run.js +115 -0
- package/dist/components/starter-plugin.js +104 -0
- package/dist/components/verbs/__tests__/mock-cloud-executor.js +68 -0
- package/dist/components/verbs/__tests__/mock-process-runner.js +45 -0
- package/dist/components/verbs/__tests__/mock-sbom-generator.js +56 -0
- package/dist/components/verbs/bom-writer.js +287 -0
- package/dist/components/verbs/build-archive.js +188 -0
- package/dist/components/verbs/build.js +142 -0
- package/dist/components/verbs/cloud-executor.js +110 -0
- package/dist/components/verbs/component-bom.js +125 -0
- package/dist/components/verbs/ensure-secret.js +50 -0
- package/dist/components/verbs/index.js +61 -0
- package/dist/components/verbs/license-policy.js +75 -0
- package/dist/components/verbs/lockfile-sbom-generator.js +191 -0
- package/dist/components/verbs/process-runner.js +78 -0
- package/dist/components/verbs/r2-sync.js +93 -0
- package/dist/components/verbs/reproducibility.js +62 -0
- package/dist/components/verbs/run-agent.js +577 -0
- package/dist/components/verbs/sbom-generator.js +119 -0
- package/dist/components/verbs/sbom.js +97 -0
- package/dist/components/verbs/shell.js +32 -0
- package/dist/components/verbs/sign.js +221 -0
- package/dist/components/verbs/stub.js +28 -0
- package/dist/components/verbs/tool-sbom-generator.js +154 -0
- package/dist/components/verbs/verify.js +112 -0
- package/dist/components/verbs/vex.js +131 -0
- package/dist/components/verbs/vuln-gate.js +152 -0
- package/dist/components/verbs/vuln-scan.js +288 -0
- package/dist/components/verbs/wait-verify.js +106 -0
- package/dist/components/verbs/wrangler.js +179 -0
- package/dist/components/wave-plan.js +102 -0
- package/dist/composite.js +305 -0
- package/dist/config-import.d.ts.map +1 -1
- package/dist/config-import.js +22 -0
- package/dist/config-sandbox.js +122 -0
- package/dist/config-static.js +206 -0
- package/dist/config.js +605 -0
- package/dist/content-digest.js +23 -0
- package/dist/declarable.js +114 -0
- package/dist/deep-observation.js +437 -0
- package/dist/detectLexicon.js +54 -0
- package/dist/discovery/cache.js +70 -0
- package/dist/discovery/collect.js +208 -0
- package/dist/discovery/cycles.js +95 -0
- package/dist/discovery/entity-wire-codec.js +391 -0
- package/dist/discovery/entity-wire.js +42 -0
- package/dist/discovery/files.js +121 -0
- package/dist/discovery/fold-import.d.ts.map +1 -1
- package/dist/discovery/fold-import.js +4178 -0
- package/dist/discovery/fold-rank.js +292 -0
- package/dist/discovery/graph.js +115 -0
- package/dist/discovery/import.d.ts.map +1 -1
- package/dist/discovery/import.js +65 -0
- package/dist/discovery/index.js +333 -0
- package/dist/discovery/param-deps.js +487 -0
- package/dist/discovery/resolve.js +39 -0
- package/dist/discovery/sandbox/bundle.js +214 -0
- package/dist/discovery/sandbox/child-errors.js +26 -0
- package/dist/discovery/sandbox/config-run.js +100 -0
- package/dist/discovery/sandbox/config-wire.js +183 -0
- package/dist/discovery/sandbox/driver.d.ts.map +1 -1
- package/dist/discovery/sandbox/driver.js +333 -0
- package/dist/discovery/sandbox/fork.js +229 -0
- package/dist/discovery/sandbox/policy-run.js +142 -0
- package/dist/discovery/sandbox/policy-wire.js +152 -0
- package/dist/discovery/sandbox/run.js +77 -0
- package/dist/discovery/specifier-resolve.js +320 -0
- package/dist/discovery/walk.js +284 -0
- package/dist/effect-receipt.js +340 -0
- package/dist/env.js +55 -0
- package/dist/errors.js +62 -0
- package/dist/fold/fold.js +1434 -0
- package/dist/fold/foldable-helpers.js +229 -0
- package/dist/fold/subset.js +696 -0
- package/dist/fold-provenance.js +414 -0
- package/dist/gate-decision.js +260 -0
- package/dist/gate-resume-run.js +154 -0
- package/dist/gated-waves.js +165 -0
- package/dist/governance.js +43 -0
- package/dist/graph-declared.js +45 -0
- package/dist/graph-detail.js +207 -0
- package/dist/graph-dot.js +54 -0
- package/dist/graph-effective.js +107 -0
- package/dist/graph-ir.js +623 -0
- package/dist/graph-layout.js +184 -0
- package/dist/graph-lens.js +105 -0
- package/dist/graph-mermaid.js +83 -0
- package/dist/graph-ops.js +39 -0
- package/dist/graph-refs.js +156 -0
- package/dist/held-elsewhere.js +87 -0
- package/dist/identity.js +251 -0
- package/dist/import/base-parser.js +34 -0
- package/dist/import/embedded.js +255 -0
- package/dist/import/generator.js +1 -0
- package/dist/import/ir-utils.js +85 -0
- package/dist/import/parser-options.js +45 -0
- package/dist/import/parser.js +1 -0
- package/dist/index.js +118 -0
- package/dist/intrinsic-interpolation.js +73 -0
- package/dist/intrinsic.js +31 -0
- package/dist/join-key.js +35 -0
- package/dist/kubectl-context.js +150 -0
- package/dist/lexicon-config.js +58 -0
- package/dist/lexicon-integrity.js +47 -0
- package/dist/lexicon-manifest.js +70 -0
- package/dist/lexicon-module.d.ts.map +1 -1
- package/dist/lexicon-module.js +241 -0
- package/dist/lexicon-output.js +218 -0
- package/dist/lexicon-plugin-helpers.js +104 -0
- package/dist/lexicon-schema.js +136 -0
- package/dist/lexicon.js +130 -0
- package/dist/lifecycle/affected.js +224 -0
- package/dist/lifecycle/assert-live.js +110 -0
- package/dist/lifecycle/build-ledger-store.js +160 -0
- package/dist/lifecycle/build-ledger.js +155 -0
- package/dist/lifecycle/change-set.js +356 -0
- package/dist/lifecycle/converge-ledger.js +161 -0
- package/dist/lifecycle/deep-diff.js +233 -0
- package/dist/lifecycle/deep-observe.js +147 -0
- package/dist/lifecycle/digest.js +143 -0
- package/dist/lifecycle/disruption.js +135 -0
- package/dist/lifecycle/gate-applied.js +113 -0
- package/dist/lifecycle/gate-audit.js +341 -0
- package/dist/lifecycle/gate-ledger-select.js +89 -0
- package/dist/lifecycle/gate-ledger.js +193 -0
- package/dist/lifecycle/gate-origin.js +117 -0
- package/dist/lifecycle/gate-pending.js +58 -0
- package/dist/lifecycle/git.js +1182 -0
- package/dist/lifecycle/identity.js +58 -0
- package/dist/lifecycle/index.js +26 -0
- package/dist/lifecycle/lease.js +283 -0
- package/dist/lifecycle/ledger-port.js +1 -0
- package/dist/lifecycle/legacy-digest.js +91 -0
- package/dist/lifecycle/live-diff.js +274 -0
- package/dist/lifecycle/local-note.js +15 -0
- package/dist/lifecycle/member-ledger.js +122 -0
- package/dist/lifecycle/observation-baseline.js +155 -0
- package/dist/lifecycle/observe.js +375 -0
- package/dist/lifecycle/oras-referrer-lookup.js +82 -0
- package/dist/lifecycle/override-ledger.js +54 -0
- package/dist/lifecycle/plan-digest.js +110 -0
- package/dist/lifecycle/plan-ledger.js +129 -0
- package/dist/lifecycle/receipt-plan.js +192 -0
- package/dist/lifecycle/release-ledger.js +155 -0
- package/dist/lifecycle/release-read.js +64 -0
- package/dist/lifecycle/replay.js +193 -0
- package/dist/lifecycle/rollback.js +102 -0
- package/dist/lifecycle/run-ledger.js +183 -0
- package/dist/lifecycle/scenario-eval.js +204 -0
- package/dist/lifecycle/scenario.js +214 -0
- package/dist/lifecycle/snapshot.js +239 -0
- package/dist/lifecycle/status.js +447 -0
- package/dist/lifecycle/symptoms.js +117 -0
- package/dist/lifecycle/teardown.js +255 -0
- package/dist/lifecycle/types.js +1 -0
- package/dist/lifecycle/unobserved-gate.js +33 -0
- package/dist/lifecycle/wave-plans.js +68 -0
- package/dist/lifecycle/work-item-id.js +36 -0
- package/dist/lifecycle/work-lease.js +393 -0
- package/dist/lint/component-checks.js +87 -0
- package/dist/lint/config.js +483 -0
- package/dist/lint/declarative.js +122 -0
- package/dist/lint/discover.d.ts.map +1 -1
- package/dist/lint/discover.js +138 -0
- package/dist/lint/engine.js +246 -0
- package/dist/lint/knowledge-checks.js +64 -0
- package/dist/lint/named-checks.js +22 -0
- package/dist/lint/output-checks.js +87 -0
- package/dist/lint/output-docs.js +163 -0
- package/dist/lint/parser.js +33 -0
- package/dist/lint/pipeline-change-gate.js +70 -0
- package/dist/lint/policy-import.d.ts +1 -1
- package/dist/lint/policy-import.d.ts.map +1 -1
- package/dist/lint/policy-import.js +62 -0
- package/dist/lint/policy-sandbox.js +86 -0
- package/dist/lint/policy.js +122 -0
- package/dist/lint/post-synth.js +87 -0
- package/dist/lint/presets/relaxed.json +26 -0
- package/dist/lint/presets/strict.json +24 -24
- package/dist/lint/receipt-checks.js +83 -0
- package/dist/lint/rule-loader.d.ts.map +1 -1
- package/dist/lint/rule-loader.js +89 -0
- package/dist/lint/rule-registry.js +86 -0
- package/dist/lint/rule.js +1 -0
- package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-a.component.js +7 -0
- package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-b.component.js +7 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/fail/orphan-lib.component.js +9 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/pass/emr-job.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/pass/jar-lib.component.js +9 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/fail/search-service.component.js +25 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/pass/jar-lib.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/pass/search-service.component.js +21 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/fail/migrator.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/agent-turn.component.js +24 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/migrator.component.js +17 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/orders-table.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/fail/neo4j-cluster.component.js +18 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.js +20 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp005/fail/search-service.component.js +12 -0
- package/dist/lint/rules/__fixtures__/comp/comp005/pass/search-service.component.js +16 -0
- package/dist/lint/rules/__fixtures__/comp/comp006/fail/legacy-tool.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp006/pass/legacy-tool.component.js +12 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/fail/inventory-table.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/fail/orders-table.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/pass/orders-table.component.js +10 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/pass/search-service.component.js +16 -0
- package/dist/lint/rules/comp/comp001-publishes-never-applies.js +69 -0
- package/dist/lint/rules/comp/comp002-dangling-wiring-ref.js +84 -0
- package/dist/lint/rules/comp/comp003-mutating-no-rollback.js +103 -0
- package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.js +70 -0
- package/dist/lint/rules/comp/comp005-capability-kind-is-noun.js +109 -0
- package/dist/lint/rules/comp/comp006-shell-needs-reason.js +49 -0
- package/dist/lint/rules/comp/comp007-composition-sprawl.js +64 -0
- package/dist/lint/rules/comp/index.js +33 -0
- package/dist/lint/rules/comp/support.js +129 -0
- package/dist/lint/rules/composite-scope.js +51 -0
- package/dist/lint/rules/cor017-composite-name-match.js +93 -0
- package/dist/lint/rules/cor018-composite-prefer-lexicon-type.js +136 -0
- package/dist/lint/rules/cor021-env-literal-name.js +100 -0
- package/dist/lint/rules/cor022-receipt-leaf.js +118 -0
- package/dist/lint/rules/cor024-receipt-secret-pointer.js +199 -0
- package/dist/lint/rules/declarable-naming-convention.js +62 -0
- package/dist/lint/rules/evl001-non-literal-expression.js +66 -0
- package/dist/lint/rules/evl002-control-flow-resource.js +69 -0
- package/dist/lint/rules/evl003-dynamic-property-access.js +44 -0
- package/dist/lint/rules/evl004-spread-non-const.js +94 -0
- package/dist/lint/rules/evl005-resource-block-body.js +41 -0
- package/dist/lint/rules/evl007-invalid-siblings.js +105 -0
- package/dist/lint/rules/evl009-composite-no-constant.js +158 -0
- package/dist/lint/rules/evl010-composite-no-transform.js +59 -0
- package/dist/lint/rules/evl011-symbolic-in-template.js +106 -0
- package/dist/lint/rules/export-required.js +115 -0
- package/dist/lint/rules/file-declarable-limit.js +88 -0
- package/dist/lint/rules/flat-declarations.js +62 -0
- package/dist/lint/rules/index.js +90 -0
- package/dist/lint/rules/no-cyclic-declarable-ref.js +138 -0
- package/dist/lint/rules/no-redundant-type-import.js +76 -0
- package/dist/lint/rules/no-redundant-value-cast.js +41 -0
- package/dist/lint/rules/no-string-ref.js +59 -0
- package/dist/lint/rules/no-unused-declarable-import.js +75 -0
- package/dist/lint/rules/no-unused-declarable.js +142 -0
- package/dist/lint/rules/op/index.js +28 -0
- package/dist/lint/rules/op/ops012-activity-contract.js +54 -0
- package/dist/lint/rules/op/ops013-step-output-ref.js +88 -0
- package/dist/lint/rules/op/ops014-converge-rule-refusals.js +114 -0
- package/dist/lint/rules/op/ops015-gate-approval.js +45 -0
- package/dist/lint/rules/op/support.js +11 -0
- package/dist/lint/rules/op/sys010-key-over-plain-http.js +100 -0
- package/dist/lint/rules/property-kind.js +56 -0
- package/dist/lint/rules/single-concern-file.js +71 -0
- package/dist/lint/rules/sys001-no-literal-key.js +60 -0
- package/dist/lint/selectors.js +168 -0
- package/dist/lint/suppressions.js +129 -0
- package/dist/lint/typescript.js +17 -0
- package/dist/live-endpoint.js +113 -0
- package/dist/live-read-session.js +76 -0
- package/dist/lsp/lexicon-providers.js +163 -0
- package/dist/lsp/types.js +5 -0
- package/dist/managed-fields.js +293 -0
- package/dist/mcp/types.js +4 -0
- package/dist/notify-verify.js +0 -1
- package/dist/notify.js +0 -1
- package/dist/notify.schema.json +72 -0
- package/dist/observation.js +266 -0
- package/dist/okf-read.js +134 -0
- package/dist/okf.js +275 -0
- package/dist/op/__fixtures__/decide-stub-backend.js +125 -0
- package/dist/op/activities/activity-contracts.js +313 -0
- package/dist/op/activities/apply.js +582 -0
- package/dist/op/activities/build.js +18 -0
- package/dist/op/activities/change-coverage.js +40 -0
- package/dist/op/activities/change-set.js +64 -0
- package/dist/op/activities/converge.js +492 -0
- package/dist/op/activities/decide.js +211 -0
- package/dist/op/activities/env-teardown.js +110 -0
- package/dist/op/activities/factory.js +591 -0
- package/dist/op/activities/forge-pull-request.js +82 -0
- package/dist/op/activities/gh-host.js +78 -0
- package/dist/op/activities/guard-validate.js +165 -0
- package/dist/op/activities/http-check.js +40 -0
- package/dist/op/activities/index.js +59 -0
- package/dist/op/activities/lexicon-upgrade.js +629 -0
- package/dist/op/activities/lifecycle.js +109 -0
- package/dist/op/activities/pipeline-audit.js +147 -0
- package/dist/op/activities/policy.js +26 -0
- package/dist/op/activities/predict-behaviour.js +341 -0
- package/dist/op/activities/propose-upgrade.js +165 -0
- package/dist/op/activities/reconcile.js +997 -0
- package/dist/op/activities/shell.js +118 -0
- package/dist/op/activities/source-release.js +97 -0
- package/dist/op/activities/source-rollback.js +165 -0
- package/dist/op/activities/teardown.js +17 -0
- package/dist/op/activities/util.js +6 -0
- package/dist/op/activities/wait.js +51 -0
- package/dist/op/activities/work-evidence.js +35 -0
- package/dist/op/activities/workflow-audit.js +133 -0
- package/dist/op/activity-contract-registry.js +106 -0
- package/dist/op/activity-contract.js +232 -0
- package/dist/op/activity-failure.js +31 -0
- package/dist/op/activity-profiles.js +129 -0
- package/dist/op/activity-registry.js +105 -0
- package/dist/op/activity-runtime.js +28 -0
- package/dist/op/builders.js +801 -0
- package/dist/op/change-signal.js +118 -0
- package/dist/op/composites/apply-op.js +151 -0
- package/dist/op/composites/behaviour-op.js +65 -0
- package/dist/op/composites/converge-op.js +141 -0
- package/dist/op/composites/index.js +19 -0
- package/dist/op/composites/lexicon-upgrade-op.js +107 -0
- package/dist/op/composites/pipeline-audit-op.js +50 -0
- package/dist/op/composites/reconcile-op.js +84 -0
- package/dist/op/composites/watch-op.js +69 -0
- package/dist/op/composites/workflow-audit-op.js +57 -0
- package/dist/op/converge-rule.js +205 -0
- package/dist/op/cron.js +146 -0
- package/dist/op/decide-backend.js +181 -0
- package/dist/op/decide-config.js +68 -0
- package/dist/op/decide-read-inputs.js +141 -0
- package/dist/op/discover.d.ts.map +1 -1
- package/dist/op/discover.js +213 -0
- package/dist/op/duration.js +21 -0
- package/dist/op/emulator-freshness.js +80 -0
- package/dist/op/emulator-lifecycle.js +269 -0
- package/dist/op/factory.js +83 -0
- package/dist/op/gate-approval.js +172 -0
- package/dist/op/gate-name.js +86 -0
- package/dist/op/gate-plan-context.js +167 -0
- package/dist/op/gate-point-run.js +67 -0
- package/dist/op/gate-point.js +111 -0
- package/dist/op/gate-resume-plan.js +155 -0
- package/dist/op/gate-resume.js +31 -0
- package/dist/op/gate-review.js +290 -0
- package/dist/op/gate-run-locator.js +85 -0
- package/dist/op/gate-summary.js +100 -0
- package/dist/op/gate-wait.js +56 -0
- package/dist/op/gate.js +449 -0
- package/dist/op/generate-pipeline.js +124 -0
- package/dist/op/index.js +51 -0
- package/dist/op/lifecycle-receipt-store.js +45 -0
- package/dist/op/local-executor.js +1164 -0
- package/dist/op/local-output.js +140 -0
- package/dist/op/op-ir.js +317 -0
- package/dist/op/op-verb-class.js +131 -0
- package/dist/op/op-waves-notify.js +136 -0
- package/dist/op/op-waves-run.js +1657 -0
- package/dist/op/op-waves.js +409 -0
- package/dist/op/operator.js +743 -0
- package/dist/op/receipt-store.js +94 -0
- package/dist/op/resource.js +23 -0
- package/dist/op/run-context.js +28 -0
- package/dist/op/run-live.js +256 -0
- package/dist/op/runtime.js +21 -0
- package/dist/op/runtimes/local.js +195 -0
- package/dist/op/source-archive.js +131 -0
- package/dist/op/step-output-ref.js +397 -0
- package/dist/op/steward-beside.js +169 -0
- package/dist/op/steward-points.js +138 -0
- package/dist/op/steward-turn.js +59 -0
- package/dist/op/steward.js +317 -0
- package/dist/op/types.js +25 -0
- package/dist/op/work-lease-decl.js +81 -0
- package/dist/op/work-lease-run.js +393 -0
- package/dist/override-gate.js +284 -0
- package/dist/owner-chain.js +74 -0
- package/dist/ownership.js +92 -0
- package/dist/params.js +61 -0
- package/dist/plan-summary.js +711 -0
- package/dist/point-decision.js +211 -0
- package/dist/pr-forge.js +810 -0
- package/dist/pr-loop.js +203 -0
- package/dist/project-codegen.js +191 -0
- package/dist/project-root.js +74 -0
- package/dist/project-validation.js +50 -0
- package/dist/provenance.js +157 -0
- package/dist/pseudo-parameter.js +40 -0
- package/dist/reconcile.js +450 -0
- package/dist/resource-attributes.js +33 -0
- package/dist/runtime-adapter.js +77 -0
- package/dist/runtime.js +66 -0
- package/dist/secret-materialization.js +153 -0
- package/dist/secret-provenance.js +250 -0
- package/dist/serializer-walker.js +112 -0
- package/dist/serializer.js +1 -0
- package/dist/sort.js +45 -0
- package/dist/stack-output.js +115 -0
- package/dist/telemetry-attribution.js +149 -0
- package/dist/terraform/__fixtures__/build-graph.js +63 -0
- package/dist/terraform/adopt-state.js +40 -0
- package/dist/terraform/aws-resources.js +384 -0
- package/dist/terraform/bridge.js +204 -0
- package/dist/terraform/carve-provider.js +155 -0
- package/dist/terraform/carve.js +138 -0
- package/dist/terraform/data-source-shape.js +57 -0
- package/dist/terraform/emit-source.js +36 -0
- package/dist/terraform/excise.js +123 -0
- package/dist/terraform/graduate.js +128 -0
- package/dist/terraform/graph.js +435 -0
- package/dist/terraform/hcl2json.js +60 -0
- package/dist/terraform/manifest.js +149 -0
- package/dist/terraform/parse.js +81 -0
- package/dist/terraform/providers/aws.js +146 -0
- package/dist/terraform/providers/gcp.js +294 -0
- package/dist/terraform/providers/index.js +17 -0
- package/dist/terraform/providers/kubernetes.js +253 -0
- package/dist/terraform/score.js +151 -0
- package/dist/terraform/state.js +67 -0
- package/dist/terraform/tier-map.js +74 -0
- package/dist/terraform/types.js +13 -0
- package/dist/terraform/unified-diff.js +132 -0
- package/dist/testing.js +295 -0
- package/dist/toml-emit.js +153 -0
- package/dist/toml-parse.js +355 -0
- package/dist/toml-utils.js +60 -0
- package/dist/toml.js +428 -0
- package/dist/ts-loader.d.ts +46 -0
- package/dist/ts-loader.d.ts.map +1 -0
- package/dist/ts-loader.js +103 -0
- package/dist/types.js +1 -0
- package/dist/utils.js +61 -0
- package/dist/validation.js +20 -0
- package/dist/vendor/js-yaml-load.js +1662 -0
- package/dist/workspace/__fixtures__/contract-repo.js +103 -0
- package/dist/workspace/__fixtures__/decide-workspace.js +112 -0
- package/dist/workspace/__fixtures__/sessions.js +91 -0
- package/dist/workspace/__fixtures__/two-member-workspace.js +34 -0
- package/dist/workspace/agent-cli.js +99 -0
- package/dist/workspace/agent.schema.json +390 -0
- package/dist/workspace/answers-ledger.js +89 -0
- package/dist/workspace/box-cli.js +142 -0
- package/dist/workspace/box-factory-write.js +196 -0
- package/dist/workspace/box-factory-write.schema.json +342 -0
- package/dist/workspace/box-factory.js +88 -0
- package/dist/workspace/box-intent.js +126 -0
- package/dist/workspace/box-isolation.js +169 -0
- package/dist/workspace/box-listing-write.schema.json +204 -0
- package/dist/workspace/box-listing.js +298 -0
- package/dist/workspace/box-publish.js +352 -0
- package/dist/workspace/box-publish.schema.json +498 -0
- package/dist/workspace/box-services.js +39 -0
- package/dist/workspace/broker-protocol.js +359 -0
- package/dist/workspace/broker-protocol.schema.json +228 -0
- package/dist/workspace/change-set.schema.json +460 -0
- package/dist/workspace/changes-cli.js +56 -0
- package/dist/workspace/changes.js +446 -0
- package/dist/workspace/changes.schema.json +642 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-fly-site.js +198 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-live-names.js +155 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-rollback.js +214 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-inputs.js +180 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-policy.js +99 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit.js +847 -0
- package/dist/workspace/chant-migrations.js +113 -0
- package/dist/workspace/check.schema.json +433 -0
- package/dist/workspace/checks/box-isolation.js +62 -0
- package/dist/workspace/checks/boxes.js +491 -0
- package/dist/workspace/checks/diagrams.js +104 -0
- package/dist/workspace/checks/generated.js +419 -0
- package/dist/workspace/checks/ledgers.js +212 -0
- package/dist/workspace/checks/links.js +191 -0
- package/dist/workspace/checks/live.js +100 -0
- package/dist/workspace/checks/pipelines.js +188 -0
- package/dist/workspace/checks/records.js +169 -0
- package/dist/workspace/checks.js +426 -0
- package/dist/workspace/ci-green-cli.js +125 -0
- package/dist/workspace/ci-green-forge.js +83 -0
- package/dist/workspace/ci-green-workflow.js +199 -0
- package/dist/workspace/ci-green.js +325 -0
- package/dist/workspace/ci-last-green.schema.json +158 -0
- package/dist/workspace/compose-graph.js +235 -0
- package/dist/workspace/compose-reports.js +146 -0
- package/dist/workspace/composites.js +264 -0
- package/dist/workspace/composites.schema.json +617 -0
- package/dist/workspace/conformance/__fixture__/app/package.json +7 -0
- package/dist/workspace/conformance/__fixture__/app/src/server.mjs +29 -0
- package/dist/workspace/conformance/__fixture__/decisions/decision.kind.mjs +54 -0
- package/dist/workspace/conformance/__fixture__/decisions/decision.schema.json +512 -0
- package/dist/workspace/conformance/__fixture__/decisions/fix-001-how-the-app-is-deployed.md +40 -0
- package/dist/workspace/conformance/__fixture__/delivery/chant.config.ts +7 -0
- package/dist/workspace/conformance/__fixture__/delivery/lexicon/index.ts +26 -0
- package/dist/workspace/conformance/__fixture__/delivery/package.json +7 -0
- package/dist/workspace/conformance/__fixture__/delivery/src/app.component.ts +14 -0
- package/dist/workspace/conformance/__fixture__/delivery/src/app.ts +4 -0
- package/dist/workspace/conformance/__fixtures__/reference-broker.js +205 -0
- package/dist/workspace/conformance/__writer_fixture__/answers/answer.kind.mjs +32 -0
- package/dist/workspace/conformance/__writer_fixture__/answers/answer.schema.json +135 -0
- package/dist/workspace/conformance/__writer_fixture__/contracts/contract.kind.mjs +37 -0
- package/dist/workspace/conformance/__writer_fixture__/contracts/contract.schema.json +213 -0
- package/dist/workspace/conformance/__writer_fixture__/decisions/points.json +228 -0
- package/dist/workspace/conformance/__writer_fixture__/drivers/driver.kind.mjs +15 -0
- package/dist/workspace/conformance/__writer_fixture__/drivers/driver.schema.json +38 -0
- package/dist/workspace/conformance/__writer_fixture__/sessions/session.kind.mjs +54 -0
- package/dist/workspace/conformance/__writer_fixture__/sessions/session.schema.json +289 -0
- package/dist/workspace/conformance/__writer_fixture__/work/W-001-the-writer-suite-works-this-item.md +25 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.kind.mjs +60 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.schema.json +603 -0
- package/dist/workspace/conformance/broker.js +736 -0
- package/dist/workspace/conformance/index.js +673 -0
- package/dist/workspace/conformance/vitest.js +108 -0
- package/dist/workspace/conformance/writer.js +1080 -0
- package/dist/workspace/decide.js +879 -0
- package/dist/workspace/decision-points.schema.json +135 -135
- package/dist/workspace/declaration-write-cli.js +74 -0
- package/dist/workspace/declaration-write.js +238 -0
- package/dist/workspace/declaration.js +938 -0
- package/dist/workspace/declaration.schema.json +1413 -1413
- package/dist/workspace/declared-kinds.js +106 -0
- package/dist/workspace/environments.js +164 -0
- package/dist/workspace/evidence.schema.json +279 -0
- package/dist/workspace/export-cli.js +185 -0
- package/dist/workspace/export.js +499 -0
- package/dist/workspace/factory-rules.js +175 -0
- package/dist/workspace/generated-files.js +92 -0
- package/dist/workspace/glob.js +45 -0
- package/dist/workspace/graph-cache.js +352 -0
- package/dist/workspace/graph-cli.js +348 -0
- package/dist/workspace/graph.schema.json +1338 -0
- package/dist/workspace/identity-gate-rule.js +75 -0
- package/dist/workspace/identity.js +126 -0
- package/dist/workspace/import.js +283 -0
- package/dist/workspace/init.js +620 -0
- package/dist/workspace/intent-cli.js +263 -0
- package/dist/workspace/intent-joins.js +201 -0
- package/dist/workspace/intent-record.js +352 -0
- package/dist/workspace/intent-record.schema.json +864 -0
- package/dist/workspace/intent.js +1582 -0
- package/dist/workspace/intent.schema.json +2420 -0
- package/dist/workspace/json-edit.js +221 -0
- package/dist/workspace/jsonc.js +235 -0
- package/dist/workspace/kind-readers.js +103 -0
- package/dist/workspace/kinds.js +587 -0
- package/dist/workspace/lexicon-symbols.js +112 -0
- package/dist/workspace/lineage-adopt-cli.js +102 -0
- package/dist/workspace/lineage-adopt.js +360 -0
- package/dist/workspace/lineage-check.js +282 -0
- package/dist/workspace/lineage-cli.js +121 -0
- package/dist/workspace/lineage-hash-index.js +284 -0
- package/dist/workspace/lineage-init.js +507 -0
- package/dist/workspace/lineage-lock.js +387 -0
- package/dist/workspace/lineage-merge.js +45 -0
- package/dist/workspace/lineage-migrations.d.ts.map +1 -1
- package/dist/workspace/lineage-migrations.js +329 -0
- package/dist/workspace/lineage-provenance.js +36 -0
- package/dist/workspace/lineage-update.js +138 -0
- package/dist/workspace/lineage-upgrade-cli.js +131 -0
- package/dist/workspace/lineage-upgrade.js +889 -0
- package/dist/workspace/lineage-vendor.js +171 -0
- package/dist/workspace/lineage-version.js +128 -0
- package/dist/workspace/lineage-versions.js +275 -0
- package/dist/workspace/links.js +330 -0
- package/dist/workspace/ls-generated.js +95 -0
- package/dist/workspace/ls.js +277 -0
- package/dist/workspace/ls.schema.json +333 -0
- package/dist/workspace/member-commands.js +508 -0
- package/dist/workspace/member-handles.js +216 -0
- package/dist/workspace/member-pipeline.js +258 -0
- package/dist/workspace/member-run.js +117 -0
- package/dist/workspace/member-write.schema.json +193 -0
- package/dist/workspace/nested-graph.js +156 -0
- package/dist/workspace/nesting.js +38 -0
- package/dist/workspace/patch.js +301 -0
- package/dist/workspace/patch.schema.json +321 -0
- package/dist/workspace/pin-cli.js +55 -0
- package/dist/workspace/pin-integrity.js +100 -0
- package/dist/workspace/plan-summary.schema.json +155 -0
- package/dist/workspace/point-answer.schema.json +129 -129
- package/dist/workspace/points-cli.js +291 -0
- package/dist/workspace/points-write.schema.json +660 -0
- package/dist/workspace/points.js +521 -0
- package/dist/workspace/points.schema.json +916 -0
- package/dist/workspace/pr-report.schema.json +108 -0
- package/dist/workspace/principal-classes.js +245 -0
- package/dist/workspace/reason-codes.js +326 -0
- package/dist/workspace/record-assets.js +151 -0
- package/dist/workspace/record-decided.js +105 -0
- package/dist/workspace/record-sessions.js +96 -0
- package/dist/workspace/record-source.js +114 -0
- package/dist/workspace/records-amend.schema.json +284 -0
- package/dist/workspace/records-checkout.js +76 -0
- package/dist/workspace/records-cli.js +707 -0
- package/dist/workspace/records-close.js +116 -0
- package/dist/workspace/records-close.schema.json +278 -0
- package/dist/workspace/records-new.schema.json +202 -0
- package/dist/workspace/records-review.schema.json +367 -0
- package/dist/workspace/records-since.js +317 -0
- package/dist/workspace/records-since.schema.json +218 -0
- package/dist/workspace/records-write.js +1229 -0
- package/dist/workspace/records.js +1345 -0
- package/dist/workspace/records.schema.json +604 -0
- package/dist/workspace/reference-kinds/app/package.json +10 -0
- package/dist/workspace/reference-kinds/app/workspace-kinds.json +45 -0
- package/dist/workspace/returns.js +303 -0
- package/dist/workspace/root-refusal.js +75 -0
- package/dist/workspace/run-statement.schema.json +622 -0
- package/dist/workspace/runs-cli.js +584 -0
- package/dist/workspace/runs-write.schema.json +994 -0
- package/dist/workspace/runs.js +708 -0
- package/dist/workspace/runs.schema.json +1257 -0
- package/dist/workspace/runtimes.js +76 -0
- package/dist/workspace/session-kinds.js +83 -0
- package/dist/workspace/signers.schema.json +206 -0
- package/dist/workspace/source-block.js +125 -0
- package/dist/workspace/squash.js +177 -0
- package/dist/workspace/status-gates.js +162 -0
- package/dist/workspace/status-stewards.js +330 -0
- package/dist/workspace/status.js +514 -0
- package/dist/workspace/status.schema.json +998 -0
- package/dist/workspace/steward-index.js +191 -0
- package/dist/workspace/symbols.js +188 -0
- package/dist/workspace/template-manifest.js +227 -0
- package/dist/workspace/template-pins.js +115 -0
- package/dist/workspace/trailer-joins.js +65 -0
- package/dist/workspace/trailers.js +111 -0
- package/dist/workspace/tree.js +136 -0
- package/dist/workspace/trust/attestor.js +63 -0
- package/dist/workspace/trust/dsse.js +108 -0
- package/dist/workspace/trust/evidence-cli.js +175 -0
- package/dist/workspace/trust/evidence.js +161 -0
- package/dist/workspace/trust/gate-seal.js +226 -0
- package/dist/workspace/trust/policy.js +190 -0
- package/dist/workspace/trust/provenance.js +180 -0
- package/dist/workspace/trust/rotation.js +298 -0
- package/dist/workspace/trust/run-commits.js +101 -0
- package/dist/workspace/trust/run-statement.js +182 -0
- package/dist/workspace/trust/seal.js +272 -0
- package/dist/workspace/trust/signers-cli.js +152 -0
- package/dist/workspace/trust/ssh-commit.js +178 -0
- package/dist/workspace/trust/test-repo.js +118 -0
- package/dist/workspace/trust/trust-files.js +193 -0
- package/dist/workspace/trust/verify-cli.js +63 -0
- package/dist/workspace/trust/verify.js +192 -0
- package/dist/workspace/which-chant.js +141 -0
- package/dist/workspace/wip-cli.js +95 -0
- package/dist/workspace/wip-write.schema.json +504 -0
- package/dist/workspace/wip.js +631 -0
- package/dist/workspace/wip.schema.json +334 -0
- package/dist/workspace/work-cli.js +448 -0
- package/dist/workspace/work-evidence.js +122 -0
- package/dist/workspace/work-evidence.schema.json +222 -0
- package/dist/workspace/work-history.schema.json +421 -0
- package/dist/workspace/work-lease.schema.json +246 -0
- package/dist/workspace/work-size.js +77 -0
- package/dist/workspace/work.js +283 -0
- package/dist/workspace/workspace-kinds.schema.json +259 -259
- package/dist/workspace/workspace-principals.schema.json +53 -53
- package/dist/workspace/write-lock-cli.js +105 -0
- package/dist/workspace/write-lock.js +424 -0
- package/dist/workspace/write-lock.schema.json +172 -0
- package/dist/workspace/write-scope.js +484 -0
- package/dist/yaml.js +459 -0
- package/package.json +2 -2
- package/src/cli/commands/check-lexicon-plugin.ts +2 -0
- package/src/cli/commands/lint.ts +3 -0
- package/src/cli/commands/migrate.ts +2 -0
- package/src/cli/compiled-cli.e2e.test.ts +165 -0
- package/src/cli/main.ts +121 -27
- package/src/cli/mcp/workspace-tools.ts +1 -1
- package/src/codegen/pinned-upgrade.ts +2 -0
- package/src/components/discover.ts +2 -0
- package/src/components/sandbox/driver.ts +3 -1
- package/src/config-import.ts +3 -0
- package/src/discovery/fold-import.ts +23 -14
- package/src/discovery/import.ts +2 -0
- package/src/discovery/sandbox/driver.ts +3 -1
- package/src/lexicon-module.ts +3 -0
- package/src/lint/config.ts +1 -1
- package/src/lint/discover.ts +28 -8
- package/src/lint/policy-import.ts +4 -1
- package/src/lint/rule-loader.ts +2 -0
- package/src/op/discover.ts +3 -0
- package/src/ts-loader.test.ts +23 -0
- package/src/ts-loader.ts +122 -0
- package/src/workspace/chant-migrations/chud-lexicon-exit.ts +1 -1
- package/src/workspace/declaration.ts +1 -1
- package/src/workspace/kinds.ts +1 -1
- package/src/workspace/lineage-migrations.ts +2 -0
- package/src/workspace/points.ts +1 -1
- package/src/workspace/principal-classes.ts +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pilot: DynamoDB table (#555, epic #551).
|
|
3
|
+
*
|
|
4
|
+
* Exercises the sticky-apply axis: `cfn-deploy` carries declarative safety
|
|
5
|
+
* options — `onReplace: "block"` refuses a changeset that would replace the
|
|
6
|
+
* table (losing data) rather than update it in place, and `stageGsi: true`
|
|
7
|
+
* stages a GSI change (add → backfill → remove) instead of an in-place
|
|
8
|
+
* replace. That stickiness lives inside the `cfn-deploy` capability, exposed
|
|
9
|
+
* as options, not scripted per component — see
|
|
10
|
+
* capabilities.mdx#stickiness-lives-in-the-capability. `infra` archetype: no
|
|
11
|
+
* build, apply → verify only. Verify fans out in parallel: the stack wait and
|
|
12
|
+
* a GSI backfill migration have no ordering dependency on each other.
|
|
13
|
+
*
|
|
14
|
+
* The JSON projection of this pilot is authoritative at
|
|
15
|
+
* ../__fixtures__/dynamodb-infra.json (already schema-validated by
|
|
16
|
+
* component-schema.test.ts) — this module is the real typed `Component`
|
|
17
|
+
* authoring form (#560, ../component.ts) that composes to that same
|
|
18
|
+
* document; see ./pilots.test.ts, which asserts the two never diverge.
|
|
19
|
+
*/
|
|
20
|
+
import { phase } from "../component.js";
|
|
21
|
+
// `cfn-deploy`'s safety fields, kept as a plain literal here: the pilot is
|
|
22
|
+
// agnostic component *data* naming the `cfn-deploy` kind, so it does not import
|
|
23
|
+
// the AWS capability's types (those live in the aws lexicon now). The `onReplace`
|
|
24
|
+
// value must match `cfn-deploy`'s `CfnReplacePolicy` union.
|
|
25
|
+
const cfnSafetyOptions = {
|
|
26
|
+
onReplace: "block",
|
|
27
|
+
stageGsi: true,
|
|
28
|
+
};
|
|
29
|
+
export const ordersTable = {
|
|
30
|
+
name: "orders-table",
|
|
31
|
+
archetype: "infra",
|
|
32
|
+
dependsOn: [],
|
|
33
|
+
deploy: [
|
|
34
|
+
phase("Apply", [
|
|
35
|
+
{ kind: "cfn-deploy", template: "archive:orders-table.template.json", ...cfnSafetyOptions },
|
|
36
|
+
]),
|
|
37
|
+
phase("Verify", [
|
|
38
|
+
{ kind: "wait-for-stack", stack: "orders-table" },
|
|
39
|
+
{
|
|
40
|
+
kind: "run-migration",
|
|
41
|
+
script: "archive:migrations/backfill-gsi.sql",
|
|
42
|
+
// A GSI backfill has no clean inverse: once items are re-projected
|
|
43
|
+
// onto the new index, "rolling back" the migration would mean a
|
|
44
|
+
// second migration to undo it, not a mechanical compensation the
|
|
45
|
+
// capability could run automatically — see COMP003
|
|
46
|
+
// (lint-rules/composition.mdx) for the opt-out convention.
|
|
47
|
+
noRollback: "GSI backfill is forward-only; undoing it needs a second, hand-written migration, not automatic compensation",
|
|
48
|
+
},
|
|
49
|
+
], { parallel: true }),
|
|
50
|
+
],
|
|
51
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pilot pair: JAR producer -> EMR consumer, cross-component artifact outputs
|
|
3
|
+
* (#561, epic #551).
|
|
4
|
+
*
|
|
5
|
+
* This is the epic's worked example for cross-component wiring (#551
|
|
6
|
+
* §"Cross-component outputs", docs/components/composition-and-wiring.mdx
|
|
7
|
+
* §"Cross-component outputs"): a **producer-library** component
|
|
8
|
+
* (`jar-lib`) that only builds and publishes an artifact — no apply, no
|
|
9
|
+
* service — paired with an **infra** consumer (`emr-job`) that submits an
|
|
10
|
+
* EMR job run against the producer's published S3 URI.
|
|
11
|
+
*
|
|
12
|
+
* The wiring itself needs no new machinery: `dependsOn: ["jar-lib"]` orders
|
|
13
|
+
* the producer first (`resolveComponentGraph`, ../driver.ts), and
|
|
14
|
+
* `"@jar-lib.publish.uri"` is the same `@<component>.publish.uri|digest|key`
|
|
15
|
+
* reference form `resolveWiring` (../driver.ts) already resolves generically
|
|
16
|
+
* from `componentOutputs`, which `runComponentDeploy` already populates from
|
|
17
|
+
* any step whose output carries `uri`/`digest`/`key` (`findPublishOutput`) —
|
|
18
|
+
* both landed with #556/#560 and are exercised by ../driver.test.ts's
|
|
19
|
+
* "wires a cross-component artifact reference" case. What #561 actually adds
|
|
20
|
+
* is: this pair authored as real typed `Component`s (rather than only the
|
|
21
|
+
* hand-written JSON fixtures), and a real `emr-start-job-run`/`wait-job`
|
|
22
|
+
* capability implementation (../verbs/job-submission.ts,
|
|
23
|
+
* ../verbs/wait-verify.ts) so the pair runs to completion against a mocked
|
|
24
|
+
* `CloudExecutor` instead of throwing `CapabilityNotImplementedError`.
|
|
25
|
+
*
|
|
26
|
+
* The JSON projections of these two components are authoritative at
|
|
27
|
+
* ../__fixtures__/jar-lib-producer.json and
|
|
28
|
+
* ../__fixtures__/emr-job-consumer.json (pre-existing, from #560) — this
|
|
29
|
+
* module is the real typed `Component` authoring form that composes to those
|
|
30
|
+
* same documents; see ./pilots.test.ts, which asserts the two never diverge.
|
|
31
|
+
*/
|
|
32
|
+
import { phase } from "../component.js";
|
|
33
|
+
/** Producer: a JAR built from a Maven project, published to S3. Publish-only deploy — no apply phase at all, the defining shape of the `producer-library` archetype. */
|
|
34
|
+
export const jarLib = {
|
|
35
|
+
name: "jar-lib",
|
|
36
|
+
archetype: "producer-library",
|
|
37
|
+
dependsOn: [],
|
|
38
|
+
build: { kind: "jvm-build", context: ".", into: "archive" },
|
|
39
|
+
deploy: [
|
|
40
|
+
// → @jar-lib.publish.uri / @jar-lib.publish.digest, resolved by the graph
|
|
41
|
+
// for any downstream consumer — never known by this component itself.
|
|
42
|
+
phase("Publish", [{ kind: "publish-artifact", from: "archive", to: "$env.s3" }]),
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
/** Consumer: an EMR job run reading the producer's published JAR by S3 URI. `dependsOn: ["jar-lib"]` orders the producer first; the graph resolves the reference into the Submit step. */
|
|
46
|
+
export const emrJob = {
|
|
47
|
+
name: "emr-job",
|
|
48
|
+
archetype: "infra",
|
|
49
|
+
dependsOn: ["jar-lib"],
|
|
50
|
+
deploy: [
|
|
51
|
+
phase("Submit", [
|
|
52
|
+
{
|
|
53
|
+
kind: "emr-start-job-run",
|
|
54
|
+
jar: "@jar-lib.publish.uri",
|
|
55
|
+
args: ["--input", "$env.inputPath", "--output", "$env.outputPath"],
|
|
56
|
+
// A submitted EMR job run has no automatic "undo": stopping a
|
|
57
|
+
// running/completed job is not the same as reverting whatever it
|
|
58
|
+
// already wrote, so compensation is a human/runbook decision, not a
|
|
59
|
+
// mechanical capability rollback — see COMP003 (lint-rules/composition.mdx).
|
|
60
|
+
noRollback: "a submitted job run has no automatic undo; cancelling it does not revert data it already wrote",
|
|
61
|
+
},
|
|
62
|
+
]),
|
|
63
|
+
phase("Verify", [{ kind: "wait-job", runId: "@Submit.runId" }]),
|
|
64
|
+
],
|
|
65
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pilot: image-processor Lambda (#558, epic #551).
|
|
3
|
+
*
|
|
4
|
+
* The fourth, deliberately different component #558 asks for, added to prove
|
|
5
|
+
* the sprawl metric holds beyond the original three pilots (#555): a
|
|
6
|
+
* container-image AWS Lambda function. `service` archetype, same as ALB/ECS,
|
|
7
|
+
* but a genuinely different shape on two axes at once:
|
|
8
|
+
*
|
|
9
|
+
* - **apply target**: no CloudFormation stack at all — `lambda-deploy`
|
|
10
|
+
* updates a function's code directly (`UpdateFunctionCode` +
|
|
11
|
+
* `PublishVersion` + `UpdateAlias`), never a `cfn-deploy` changeset. Every
|
|
12
|
+
* prior pilot's apply step was `cfn-deploy`; this is the first pilot whose
|
|
13
|
+
* Apply phase contains none.
|
|
14
|
+
* - **verify shape**: a single `wait-for-stack`-free health check
|
|
15
|
+
* (`health-gate` against the function's alias URL) rather than an ECS
|
|
16
|
+
* steady-state poll or a Neo4j quorum probe.
|
|
17
|
+
*
|
|
18
|
+
* Reuses `docker-build` + `publish-image` unchanged from the ALB/ECS pilot's
|
|
19
|
+
* axis (build + promote-by-digest is identical for a container-image Lambda:
|
|
20
|
+
* https://docs.aws.amazon.com/lambda/latest/dg/images-create.html) — the
|
|
21
|
+
* `imageRef`/`codeRef` wiring (`@Publish.digest` / `@Publish.uri`) is the same
|
|
22
|
+
* `@Phase.field` prior-step reference form every pilot already uses. The only
|
|
23
|
+
* capability this component needed that didn't already exist is `lambda-deploy`
|
|
24
|
+
* (../verbs/apply.ts) — one new capability, exactly the sprawl metric's bound
|
|
25
|
+
* for "genuinely novel"; see ../SPRAWL-VALIDATION.md for the full accounting.
|
|
26
|
+
*
|
|
27
|
+
* The JSON projection of this pilot is authoritative at
|
|
28
|
+
* ../__fixtures__/lambda-image-processor.json — this module is the real
|
|
29
|
+
* typed `Component` authoring form (#560, ../component.ts) that composes to
|
|
30
|
+
* that same document; see ./pilots.test.ts, which asserts the two never
|
|
31
|
+
* diverge.
|
|
32
|
+
*/
|
|
33
|
+
import { phase } from "../component.js";
|
|
34
|
+
export const imageProcessor = {
|
|
35
|
+
name: "image-processor-lambda",
|
|
36
|
+
archetype: "service",
|
|
37
|
+
dependsOn: [],
|
|
38
|
+
build: { kind: "docker-build", context: ".", into: "archive" },
|
|
39
|
+
deploy: [
|
|
40
|
+
phase("Publish", [{ kind: "publish-image", from: "archive", to: "$env.registry" }]),
|
|
41
|
+
phase("Apply", [
|
|
42
|
+
{ kind: "lambda-deploy", functionName: "image-processor", codeRef: "@Publish.uri", alias: "live" },
|
|
43
|
+
]),
|
|
44
|
+
phase("Verify", [{ kind: "health-gate", path: "@Apply.functionArn" }]),
|
|
45
|
+
],
|
|
46
|
+
// No native rollback on lambda-deploy for an alias already repointed at a bad
|
|
47
|
+
// version — same "no automatic capability rollback" story as the ALB/ECS
|
|
48
|
+
// pilot's ecs-update-service, except here the capability itself supplies the
|
|
49
|
+
// best-effort restore (see createLambdaDeployCapability's rollback in
|
|
50
|
+
// ../verbs/apply.ts) rather than the component declaring its own phase, so
|
|
51
|
+
// no component-level `rollback` field is needed here.
|
|
52
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pilot: Neo4j per-instance fan-out cluster (#555, epic #551).
|
|
3
|
+
*
|
|
4
|
+
* Exercises the fan-out axis: one component composing N per-instance
|
|
5
|
+
* mini-compositions (`cfn-deploy` + `code-deploy` + a health wait), seeded
|
|
6
|
+
* first, then rolled through the remaining instances one at a time behind a
|
|
7
|
+
* `wait-cluster-healthy` gate. See composition-and-wiring.mdx#fan-out-is-composition-not-orchestrator-knowledge.
|
|
8
|
+
*
|
|
9
|
+
* The JSON projection of this pilot is authoritative at
|
|
10
|
+
* ../__fixtures__/neo4j-fanout.json (already schema-validated by
|
|
11
|
+
* component-schema.test.ts) — this module is the real typed `Component`
|
|
12
|
+
* authoring form (#560, ../component.ts) that composes to that same
|
|
13
|
+
* document; see ./pilots.test.ts, which asserts the two never diverge.
|
|
14
|
+
*/
|
|
15
|
+
import { gate, phase } from "../component.js";
|
|
16
|
+
const SEED = {
|
|
17
|
+
index: 0,
|
|
18
|
+
label: "Seed",
|
|
19
|
+
template: "archive:neo4j-az0-0.template.json",
|
|
20
|
+
health: { size: 1 },
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Followers roll one at a time after the seed is healthy. Node 1 carries an
|
|
24
|
+
* explicit approval gate — composed the same way any other step is, never as
|
|
25
|
+
* driver knowledge — so a human confirms the seed before the cluster starts
|
|
26
|
+
* fanning out further; later nodes roll unattended once that first rollout is
|
|
27
|
+
* trusted.
|
|
28
|
+
*/
|
|
29
|
+
const FOLLOWERS = [
|
|
30
|
+
{
|
|
31
|
+
index: 1,
|
|
32
|
+
label: "Node 1",
|
|
33
|
+
template: "archive:neo4j-1.template.json",
|
|
34
|
+
health: { quorum: true },
|
|
35
|
+
approval: {
|
|
36
|
+
gate: "approve-neo4j-node-1",
|
|
37
|
+
description: "Confirm the seed node is healthy before rolling to node 1",
|
|
38
|
+
timeout: "24h",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
index: 2,
|
|
43
|
+
label: "Node 2",
|
|
44
|
+
template: "archive:neo4j-2.template.json",
|
|
45
|
+
health: { quorum: true },
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
/** Build one instance's mini-composition phase — the unit that repeats N times for an N-node cluster. */
|
|
49
|
+
function instancePhase(instance) {
|
|
50
|
+
const steps = [
|
|
51
|
+
...(instance.approval ? [gate(instance.approval.gate, instance.approval)] : []),
|
|
52
|
+
{ kind: "cfn-deploy", template: instance.template },
|
|
53
|
+
{ kind: "code-deploy", instance: instance.index, revision: "@Seed.templateUri" },
|
|
54
|
+
{ kind: "wait-cluster-healthy", ...instance.health },
|
|
55
|
+
];
|
|
56
|
+
return phase(instance.label, steps);
|
|
57
|
+
}
|
|
58
|
+
export const neo4jCluster = {
|
|
59
|
+
name: "neo4j-cluster",
|
|
60
|
+
archetype: "infra",
|
|
61
|
+
dependsOn: [],
|
|
62
|
+
deploy: [
|
|
63
|
+
instancePhase(SEED),
|
|
64
|
+
// Array.map over instance configs — the fan-out is authored here, in the
|
|
65
|
+
// composition, never known by the orchestrator (composition-and-wiring.mdx).
|
|
66
|
+
...FOLLOWERS.map(instancePhase),
|
|
67
|
+
],
|
|
68
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-exports the real `projectToJson` (#560, ../component.ts) under the
|
|
3
|
+
* pilots' original import path. Prior to #560, this module held its own
|
|
4
|
+
* "intentionally dumb" projection over the stopgap `authoring-shape.ts`
|
|
5
|
+
* (#555); now that the real typed `Component` authoring form exists, its
|
|
6
|
+
* `projectToJson` (which also fills in `archetype` via `inferArchetype` when
|
|
7
|
+
* a pilot doesn't set one explicitly) is the single implementation. Kept as a
|
|
8
|
+
* re-export, rather than inlining `../component`'s import into every pilot
|
|
9
|
+
* test, so `./pilots.test.ts`/`./pilots-e2e.test.ts`/`../driver.test.ts`
|
|
10
|
+
* don't need their import paths touched by this migration.
|
|
11
|
+
*/
|
|
12
|
+
export { projectToJson } from "../component.js";
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The jobs of a generated pull-request pipeline (#3183): a plan job on every
|
|
3
|
+
* pull request and an apply job on every push to the target branch.
|
|
4
|
+
*
|
|
5
|
+
* Each forge's generator (the github, gitlab and forgejo lexicons) adds its
|
|
6
|
+
* own triggers, permissions and artifact handling; the commands and the
|
|
7
|
+
* values they read from the forge live here so the three cannot disagree.
|
|
8
|
+
*
|
|
9
|
+
* - The plan job runs `chant components pr-plan` against the pull request's
|
|
10
|
+
* target commit. It posts the note and the `chant/plan` status and writes
|
|
11
|
+
* nothing to `chant/lifecycle`, since it runs the pull request's code.
|
|
12
|
+
* - The apply job runs `chant components pr-apply` against the commit the
|
|
13
|
+
* push replaced, finds the pull request that merged the pushed commit
|
|
14
|
+
* through the forge, and applies only when an approval stands for the
|
|
15
|
+
* digest it plans. With `requireReview` (the default) the approver must
|
|
16
|
+
* also have approved the pull request on the forge. It needs write access
|
|
17
|
+
* to `chant/lifecycle`, to record the pending fact when the gate stops it.
|
|
18
|
+
* One apply runs at a time per environment.
|
|
19
|
+
*
|
|
20
|
+
* The apply job passes `--resume` (#3543) with a record path outside the
|
|
21
|
+
* report directory, and each forge keeps that file in its CI cache under a
|
|
22
|
+
* key that names the environment, the member and the pushed commit
|
|
23
|
+
* (`prApplyRecordKey`). A re-run of a failed apply job restores it and
|
|
24
|
+
* finishes the approved set under the same approval; the record itself is
|
|
25
|
+
* checked against the pull request's gate, the commit, the selection and
|
|
26
|
+
* the ledger before it counts (`pr-apply --resume`, #3464).
|
|
27
|
+
*
|
|
28
|
+
* Measuring the push from the commit it replaced works for merge commits,
|
|
29
|
+
* squash merges and rebase merges alike, and every job measures from the
|
|
30
|
+
* merge base of that commit and its own head (`resolveMergeBase`).
|
|
31
|
+
*
|
|
32
|
+
* In a workspace member (#3465) both commands run in the member's directory
|
|
33
|
+
* and pass `--member <name>`, so the member's gate (`pr-<number>-<member>`),
|
|
34
|
+
* note and statuses stay apart from every other member's on the same pull
|
|
35
|
+
* request. They still measure the whole change: a file outside the member
|
|
36
|
+
* that one of its units reaches selects that unit.
|
|
37
|
+
*/
|
|
38
|
+
import { PR_APPLY_GATE } from "../pr-loop.js";
|
|
39
|
+
/** Where both jobs write their reports, kept as a CI artifact. */
|
|
40
|
+
export const PR_LOOP_REPORT_DIR = ".chant/pr";
|
|
41
|
+
/**
|
|
42
|
+
* The attempt record the apply job resumes from (#3543), relative to the
|
|
43
|
+
* directory the job runs in. It sits outside `PR_LOOP_REPORT_DIR`, so the
|
|
44
|
+
* report artifact never carries it: it holds the outputs the members read.
|
|
45
|
+
*/
|
|
46
|
+
export const PR_APPLY_RECORD = ".chant/pr-resume/pr-apply.json";
|
|
47
|
+
/**
|
|
48
|
+
* The image the pull-request pipeline runs in when the caller sets none. The
|
|
49
|
+
* full `node` image has git, which both jobs measure the change with;
|
|
50
|
+
* `PR_LOOP_SETUP` adds OpenTofu on top of it. A caller who sets `image`
|
|
51
|
+
* brings both and gets no setup lines.
|
|
52
|
+
*/
|
|
53
|
+
export const PR_LOOP_IMAGE = "node:22";
|
|
54
|
+
/** Installs OpenTofu into `PR_LOOP_IMAGE`. */
|
|
55
|
+
export const PR_LOOP_SETUP = [
|
|
56
|
+
"command -v tofu >/dev/null 2>&1 || (curl -fsSL https://get.opentofu.org/install-opentofu.sh -o /tmp/install-opentofu.sh && sh /tmp/install-opentofu.sh --install-method standalone)",
|
|
57
|
+
];
|
|
58
|
+
/** The setup lines for a pipeline running in `image`: the install when it is the default image, none otherwise. */
|
|
59
|
+
export function prLoopSetup(image) {
|
|
60
|
+
return image === PR_LOOP_IMAGE ? PR_LOOP_SETUP : [];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The two jobs for `forge`. `member` is the workspace member the pipeline is
|
|
64
|
+
* generated for; the commands then run in its directory, so `--output` is
|
|
65
|
+
* relative to it.
|
|
66
|
+
*/
|
|
67
|
+
export function prLoopJobs(forge, env, options = {}, member) {
|
|
68
|
+
const gate = options.gate ?? PR_APPLY_GATE;
|
|
69
|
+
const common = [
|
|
70
|
+
"--env", env, "--gate", gate, "--output", PR_LOOP_REPORT_DIR, "--forge", forge,
|
|
71
|
+
...(member ? ["--member", member] : []),
|
|
72
|
+
];
|
|
73
|
+
const github = forge !== "gitlab";
|
|
74
|
+
const token = github ? { GITHUB_TOKEN: "${{ github.token }}" } : {};
|
|
75
|
+
return [
|
|
76
|
+
{
|
|
77
|
+
jobName: "plan",
|
|
78
|
+
command: ["chant", "components", "pr-plan", "--base", '"$BASE_SHA"', "--pr", '"$PR_NUMBER"', ...common].join(" "),
|
|
79
|
+
env: github
|
|
80
|
+
? { BASE_SHA: "${{ github.event.pull_request.base.sha }}", PR_NUMBER: "${{ github.event.pull_request.number }}", ...token }
|
|
81
|
+
: { BASE_SHA: "$CI_MERGE_REQUEST_DIFF_BASE_SHA", PR_NUMBER: "$CI_MERGE_REQUEST_IID" },
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
jobName: "apply",
|
|
85
|
+
command: [
|
|
86
|
+
"chant", "components", "pr-apply", "--base", '"$BASE_SHA"', ...common,
|
|
87
|
+
...(options.requireReview === false ? [] : ["--require-review"]),
|
|
88
|
+
"--resume", PR_APPLY_RECORD,
|
|
89
|
+
].join(" "),
|
|
90
|
+
env: github ? { BASE_SHA: "${{ github.event.before }}", ...token } : { BASE_SHA: "$CI_COMMIT_BEFORE_SHA" },
|
|
91
|
+
...(github ? {} : { setup: [gitlabBaseFallback(options.branch)] }),
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The concurrency group (GitHub, Forgejo) or resource group (GitLab) that
|
|
97
|
+
* keeps one apply at a time per environment, and per member in a workspace.
|
|
98
|
+
*
|
|
99
|
+
* A member's group is `chant-apply.<member>.<env>`. Member names hold only
|
|
100
|
+
* lower-case letters, digits and `-`, so the first `.` ends the member and no
|
|
101
|
+
* two member and environment pairs share a group: member `a` with environment
|
|
102
|
+
* `b-c` is `chant-apply.a.b-c`, and member `a-b` with environment `c` is
|
|
103
|
+
* `chant-apply.a-b.c`. The `.` after `chant-apply` keeps a member's groups
|
|
104
|
+
* apart from a single project's `chant-apply-<env>`.
|
|
105
|
+
*/
|
|
106
|
+
export function prApplyGroup(env, member) {
|
|
107
|
+
return member ? `chant-apply.${member}.${env}` : `chant-apply-${env}`;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* The cache key the apply job keeps its attempt record under (#3543), with
|
|
111
|
+
* `commit` the forge's expression for the pushed commit. A push of another
|
|
112
|
+
* commit never restores a record, and the environment and member keep each
|
|
113
|
+
* pipeline's record apart. The pull request and the gate digest are not in
|
|
114
|
+
* the key, since neither is known before the job runs; `pr-apply --resume`
|
|
115
|
+
* refuses a record made for another pull request, gate or digest.
|
|
116
|
+
*/
|
|
117
|
+
export function prApplyRecordKey(env, commit, member) {
|
|
118
|
+
return `${prApplyGroup(env, member)}-${commit}`;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* GitLab sets `CI_COMMIT_BEFORE_SHA` to forty zeros on a branch's first push.
|
|
122
|
+
* The line replaces it with the merge request's diff base when the pipeline
|
|
123
|
+
* has one, and otherwise with the merge base of the target branch and the
|
|
124
|
+
* pushed commit, or the pushed commit's parent when that is the commit itself.
|
|
125
|
+
*/
|
|
126
|
+
export function gitlabBaseFallback(branch) {
|
|
127
|
+
const target = branch ? JSON.stringify(branch) : "$CI_DEFAULT_BRANCH";
|
|
128
|
+
return ('if [ -z "$BASE_SHA" ] || [ "$BASE_SHA" = "0000000000000000000000000000000000000000" ]; then ' +
|
|
129
|
+
'BASE_SHA="${CI_MERGE_REQUEST_DIFF_BASE_SHA:-}"; ' +
|
|
130
|
+
'if [ -z "$BASE_SHA" ]; then ' +
|
|
131
|
+
`git fetch origin ${target} && BASE_SHA="$(git merge-base FETCH_HEAD "$CI_COMMIT_SHA")"; ` +
|
|
132
|
+
'if [ "$BASE_SHA" = "$CI_COMMIT_SHA" ]; then BASE_SHA="$(git rev-parse "$CI_COMMIT_SHA^")"; fi; ' +
|
|
133
|
+
"fi; fi; export BASE_SHA");
|
|
134
|
+
}
|