@intentius/chant 0.124.12 → 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.d.ts +36 -4
- package/dist/gate-decision.d.ts.map +1 -1
- 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.d.ts +8 -0
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- 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.d.ts +1 -1
- package/dist/op/op-waves-run.d.ts.map +1 -1
- 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.d.ts +65 -0
- package/dist/workspace/identity-gate-rule.d.ts.map +1 -0
- package/dist/workspace/identity-gate-rule.js +75 -0
- package/dist/workspace/identity.d.ts +4 -2
- package/dist/workspace/identity.d.ts.map +1 -1
- 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.d.ts +3 -14
- package/dist/workspace/principal-classes.d.ts.map +1 -1
- 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 +36 -6
- 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/gate-decision-bundle.test.ts +3 -2
- package/src/gate-decision-identity.test.ts +176 -0
- package/src/gate-decision.ts +100 -22
- package/src/lexicon-module.ts +3 -0
- package/src/lifecycle/gate-ledger.ts +8 -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/op/op-waves-point.test.ts +1 -0
- package/src/op/op-waves-run.ts +5 -4
- package/src/op/op-waves.test.ts +14 -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/identity-gate-rule.ts +109 -0
- package/src/workspace/identity.ts +8 -18
- 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 +5 -30
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Effect receipts (chant #1831, epic #1703).
|
|
3
|
+
*
|
|
4
|
+
* A RECEIPT is the declared witness that an out-of-band effect (a migration,
|
|
5
|
+
* a seed job, a one-shot bootstrap) has run — declared, diffed, and observed
|
|
6
|
+
* like any resource, but observe-only to the generic apply path: the
|
|
7
|
+
* `effect()` step (#1834) is the sole writer, on success, last. Anything
|
|
8
|
+
* else silently converts at-least-once into never (epic decision log, item
|
|
9
|
+
* 3). That write-exclusion is #1832's enforcement; what THIS module provides
|
|
10
|
+
* is the recognition marker that makes it possible: core code (lint, plan,
|
|
11
|
+
* apply) identifies receipts via {@link EFFECT_RECEIPT_MARKER} without any
|
|
12
|
+
* lexicon knowledge, while per-lexicon rows (#1835's `AWS::SSM::Parameter`)
|
|
13
|
+
* materialize them as real resources. Unlike a secret provenance declaration
|
|
14
|
+
* (./secret-provenance.ts), a receipt DOES serialize — the marker identifies,
|
|
15
|
+
* it does not exclude.
|
|
16
|
+
*
|
|
17
|
+
* The resolution split (epic decision log, item 5):
|
|
18
|
+
*
|
|
19
|
+
* - STATIC inputs hash at synthesis, in the serializer — a fully static
|
|
20
|
+
* receipt's expectation is already known when the template is written
|
|
21
|
+
* ({@link receiptExpectation}).
|
|
22
|
+
* - REFERENCE inputs (attr-refs and other intrinsics — deploy-time values)
|
|
23
|
+
* are recorded in placeholder form at synthesis and resolve in the plan
|
|
24
|
+
* engine (#1832) and again in the effect step (#1834), via
|
|
25
|
+
* {@link resolveReceiptExpectation}. Synthesis resolves NOTHING:
|
|
26
|
+
* {@link receiptExpectation} refuses a hash-flavor receipt that still
|
|
27
|
+
* carries references rather than hashing a placeholder.
|
|
28
|
+
* - Build-time `params.*` are not references here: they fold to literals
|
|
29
|
+
* before discovery ever runs (../params.ts), so by the time this factory
|
|
30
|
+
* sees them they are static.
|
|
31
|
+
*
|
|
32
|
+
* Nothing in this module reads live state. Every function is pure over the
|
|
33
|
+
* declaration and, for resolution, the caller-supplied resolver.
|
|
34
|
+
*
|
|
35
|
+
* Hashing is JCS-style canonical JSON (RFC 8785 shape: sorted keys, standard
|
|
36
|
+
* ECMAScript number/string encoding — implemented minimally here, no
|
|
37
|
+
* dependency) digested with sha256 ({@link canonicalJson},
|
|
38
|
+
* `sha256:<hex>` like the build-ledger digests in ./lifecycle/build-ledger.ts).
|
|
39
|
+
*/
|
|
40
|
+
import { contentDigest } from "./content-digest.js";
|
|
41
|
+
import { DECLARABLE_MARKER } from "./declarable.js";
|
|
42
|
+
import { isIntrinsic } from "./intrinsic.js";
|
|
43
|
+
/** Every receipt flavor, for exhaustiveness checks. */
|
|
44
|
+
export const EFFECT_RECEIPT_FLAVORS = ["existence", "hash"];
|
|
45
|
+
/** Marker symbol identifying an effect receipt. `Symbol.for` so it survives
|
|
46
|
+
* the entity-wire codec (./discovery/entity-wire-codec.ts) and so a lexicon
|
|
47
|
+
* row can stamp the SAME symbol on its materialized resource — core's lint
|
|
48
|
+
* (#1833), plan (#1832), and apply write-exclusion recognize receipts through
|
|
49
|
+
* this marker alone, lexicon-independently. */
|
|
50
|
+
export const EFFECT_RECEIPT_MARKER = Symbol.for("chant.effect-receipt");
|
|
51
|
+
/** The `entityType` the core factory stamps. Lexicon materialization rows
|
|
52
|
+
* (#1835) use their own entityType and carry the marker instead. */
|
|
53
|
+
export const EFFECT_RECEIPT_ENTITY_TYPE = "Chant::EffectReceipt";
|
|
54
|
+
/**
|
|
55
|
+
* The expected stored value of an `existence`-flavor receipt: a fixed marker
|
|
56
|
+
* constant, the same for every existence receipt. Present-and-equal means the
|
|
57
|
+
* effect has run; anything else renders an effect-will-fire row (#1832).
|
|
58
|
+
*/
|
|
59
|
+
export const EXISTENCE_EXPECTATION = "chant.effect-receipt:exists";
|
|
60
|
+
/**
|
|
61
|
+
* Declare an effect receipt. The returned object is a locked Declarable:
|
|
62
|
+
* declared fields are immutable, plain-data input structures are frozen
|
|
63
|
+
* (intrinsics are left live — discovery still stamps logical names onto
|
|
64
|
+
* attr-refs), and the top-level object stays extensible for discovery's own
|
|
65
|
+
* symbol-keyed metadata.
|
|
66
|
+
*/
|
|
67
|
+
export function EffectReceipt(name, options) {
|
|
68
|
+
if (typeof name !== "string" || name.length === 0) {
|
|
69
|
+
throw new Error("EffectReceipt: `name` must be a non-empty string");
|
|
70
|
+
}
|
|
71
|
+
if (typeof options?.effect !== "string" || options.effect.length === 0) {
|
|
72
|
+
throw new Error(`EffectReceipt("${name}"): \`effect\` must be a non-empty string`);
|
|
73
|
+
}
|
|
74
|
+
if (!EFFECT_RECEIPT_FLAVORS.includes(options.flavor)) {
|
|
75
|
+
throw new Error(`EffectReceipt("${name}"): unknown flavor "${String(options.flavor)}" — ` +
|
|
76
|
+
`expected one of ${EFFECT_RECEIPT_FLAVORS.join(", ")}`);
|
|
77
|
+
}
|
|
78
|
+
if (options.inputs !== undefined && (typeof options.inputs !== "object" || options.inputs === null || Array.isArray(options.inputs))) {
|
|
79
|
+
throw new Error(`EffectReceipt("${name}"): \`inputs\` must be a plain object when present`);
|
|
80
|
+
}
|
|
81
|
+
const inputs = deepFreezeStatic({ ...(options.inputs ?? {}) });
|
|
82
|
+
const decl = {
|
|
83
|
+
[DECLARABLE_MARKER]: true,
|
|
84
|
+
[EFFECT_RECEIPT_MARKER]: true,
|
|
85
|
+
lexicon: "chant",
|
|
86
|
+
entityType: EFFECT_RECEIPT_ENTITY_TYPE,
|
|
87
|
+
name,
|
|
88
|
+
effect: options.effect,
|
|
89
|
+
flavor: options.flavor,
|
|
90
|
+
inputs,
|
|
91
|
+
};
|
|
92
|
+
// Declared fields immutable, object extensible — same shape secret
|
|
93
|
+
// declarations use (./secret-provenance.ts's lockDeclaredFields).
|
|
94
|
+
for (const key of Object.keys(decl)) {
|
|
95
|
+
Object.defineProperty(decl, key, { writable: false, configurable: false });
|
|
96
|
+
}
|
|
97
|
+
return decl;
|
|
98
|
+
}
|
|
99
|
+
/** Freeze plain objects and arrays in place, leaving intrinsics (and any
|
|
100
|
+
* other class instance) untouched — discovery mutates AttrRefs when it
|
|
101
|
+
* assigns logical names. */
|
|
102
|
+
function deepFreezeStatic(value, seen = new Set()) {
|
|
103
|
+
if (typeof value !== "object" || value === null || isIntrinsic(value))
|
|
104
|
+
return value;
|
|
105
|
+
if (seen.has(value))
|
|
106
|
+
return value;
|
|
107
|
+
seen.add(value);
|
|
108
|
+
if (Array.isArray(value)) {
|
|
109
|
+
for (const el of value)
|
|
110
|
+
deepFreezeStatic(el, seen);
|
|
111
|
+
return Object.freeze(value);
|
|
112
|
+
}
|
|
113
|
+
if (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null) {
|
|
114
|
+
for (const el of Object.values(value))
|
|
115
|
+
deepFreezeStatic(el, seen);
|
|
116
|
+
return Object.freeze(value);
|
|
117
|
+
}
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
/** Type guard for an effect receipt — the recognition read core's guards use.
|
|
121
|
+
* True for the core declaration AND for any lexicon-materialized resource
|
|
122
|
+
* that carries the marker. */
|
|
123
|
+
export function isEffectReceipt(value) {
|
|
124
|
+
return (typeof value === "object" &&
|
|
125
|
+
value !== null &&
|
|
126
|
+
EFFECT_RECEIPT_MARKER in value &&
|
|
127
|
+
value[EFFECT_RECEIPT_MARKER] === true);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Extract the effect receipts from a discovered entity map — the read surface
|
|
131
|
+
* for lint (#1833), the plan engine (#1832), and the apply write-exclusion.
|
|
132
|
+
* Keyed by entity name (export name), the same key `DiscoveryResult.entities`
|
|
133
|
+
* uses.
|
|
134
|
+
*/
|
|
135
|
+
export function collectEffectReceipts(entities) {
|
|
136
|
+
const out = new Map();
|
|
137
|
+
for (const [name, entity] of entities) {
|
|
138
|
+
if (isEffectReceipt(entity))
|
|
139
|
+
out.set(name, entity);
|
|
140
|
+
}
|
|
141
|
+
return out;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Split an entity map into the apply-bound set and the receipts (#1832).
|
|
145
|
+
*
|
|
146
|
+
* The write-exclusion seam: receipts are observe-only to the generic apply
|
|
147
|
+
* path — the `effect()` step is the sole writer (epic #1703, decision 3), and
|
|
148
|
+
* a receipt the generic apply stamped would silently convert at-least-once
|
|
149
|
+
* into never. The build calls this at serializer-input assembly, the one core
|
|
150
|
+
* choke point every applier's input flows through (appliers consume serialized
|
|
151
|
+
* build outputs), so no lexicon's serialized apply document ever contains a
|
|
152
|
+
* receipt and no applier's desired or prune set can. Receipts still reach the
|
|
153
|
+
* serializer — for visibility rendering outside the apply-bound document
|
|
154
|
+
* (#1835) — via `SerializeContext.receipts`, never in the entity map.
|
|
155
|
+
*/
|
|
156
|
+
export function splitReceiptEntities(entities) {
|
|
157
|
+
const applyBound = new Map();
|
|
158
|
+
const receipts = new Map();
|
|
159
|
+
for (const [name, entity] of entities) {
|
|
160
|
+
if (isEffectReceipt(entity))
|
|
161
|
+
receipts.set(name, entity);
|
|
162
|
+
else
|
|
163
|
+
applyBound.set(name, entity);
|
|
164
|
+
}
|
|
165
|
+
return { applyBound, receipts };
|
|
166
|
+
}
|
|
167
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
168
|
+
// Canonical hashing — JCS-style canonical JSON + sha256.
|
|
169
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
170
|
+
/**
|
|
171
|
+
* JCS-style canonical JSON (the RFC 8785 shape, implemented minimally):
|
|
172
|
+
* object keys sorted by UTF-16 code units, numbers and strings in standard
|
|
173
|
+
* ECMAScript `JSON.stringify` encoding, no insignificant whitespace.
|
|
174
|
+
* `toJSON()` is honored the way `JSON.stringify` honors it — which is what
|
|
175
|
+
* puts an intrinsic's PLACEHOLDER envelope (e.g. an attr-ref's
|
|
176
|
+
* `{"__attrRef":{...}}`) into the canonical form rather than a resolved
|
|
177
|
+
* value. Non-representable values (undefined outside an object property,
|
|
178
|
+
* functions, symbols, bigints, non-finite numbers, cycles) throw — a hash
|
|
179
|
+
* input silently coerced is a wrong expectation.
|
|
180
|
+
*/
|
|
181
|
+
export function canonicalJson(value) {
|
|
182
|
+
const out = encodeCanonical(value, "$", new Set());
|
|
183
|
+
if (out === undefined) {
|
|
184
|
+
throw new Error(`canonicalJson: value at $ is not representable in JSON`);
|
|
185
|
+
}
|
|
186
|
+
return out;
|
|
187
|
+
}
|
|
188
|
+
/** Returns undefined only for values JSON.stringify would drop as an object
|
|
189
|
+
* property (undefined); throws for everything else non-representable. */
|
|
190
|
+
function encodeCanonical(value, path, seen) {
|
|
191
|
+
// toJSON first, like JSON.stringify — once per node.
|
|
192
|
+
if (value !== null && (typeof value === "object" || typeof value === "function")) {
|
|
193
|
+
const toJSON = value.toJSON;
|
|
194
|
+
if (typeof toJSON === "function") {
|
|
195
|
+
value = toJSON.call(value);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (value === undefined)
|
|
199
|
+
return undefined;
|
|
200
|
+
if (value === null)
|
|
201
|
+
return "null";
|
|
202
|
+
switch (typeof value) {
|
|
203
|
+
case "boolean":
|
|
204
|
+
return value ? "true" : "false";
|
|
205
|
+
case "number":
|
|
206
|
+
if (!Number.isFinite(value)) {
|
|
207
|
+
throw new Error(`canonicalJson: non-finite number at ${path}`);
|
|
208
|
+
}
|
|
209
|
+
return String(value); // ECMAScript ToString — what JCS specifies.
|
|
210
|
+
case "string":
|
|
211
|
+
return JSON.stringify(value);
|
|
212
|
+
case "bigint":
|
|
213
|
+
throw new Error(`canonicalJson: bigint at ${path} is not representable in JSON`);
|
|
214
|
+
case "function":
|
|
215
|
+
case "symbol":
|
|
216
|
+
throw new Error(`canonicalJson: ${typeof value} at ${path} is not representable in JSON`);
|
|
217
|
+
}
|
|
218
|
+
const obj = value;
|
|
219
|
+
if (seen.has(obj)) {
|
|
220
|
+
throw new Error(`canonicalJson: circular structure at ${path}`);
|
|
221
|
+
}
|
|
222
|
+
seen.add(obj);
|
|
223
|
+
try {
|
|
224
|
+
if (Array.isArray(obj)) {
|
|
225
|
+
const parts = obj.map((el, i) => encodeCanonical(el, `${path}[${i}]`, seen) ?? "null");
|
|
226
|
+
return `[${parts.join(",")}]`;
|
|
227
|
+
}
|
|
228
|
+
const keys = Object.keys(obj).sort();
|
|
229
|
+
const parts = [];
|
|
230
|
+
for (const key of keys) {
|
|
231
|
+
const encoded = encodeCanonical(obj[key], `${path}.${key}`, seen);
|
|
232
|
+
if (encoded !== undefined)
|
|
233
|
+
parts.push(`${JSON.stringify(key)}:${encoded}`);
|
|
234
|
+
}
|
|
235
|
+
return `{${parts.join(",")}}`;
|
|
236
|
+
}
|
|
237
|
+
finally {
|
|
238
|
+
seen.delete(obj);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
function sha256Digest(canonical) {
|
|
242
|
+
return contentDigest(canonical);
|
|
243
|
+
}
|
|
244
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
245
|
+
// The resolution split.
|
|
246
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
247
|
+
/** The paths (dot/bracket, rooted at `inputs`) of every reference (intrinsic)
|
|
248
|
+
* input still unresolved on the receipt. Empty means the receipt is fully
|
|
249
|
+
* static and {@link receiptExpectation} can stamp its digest at synthesis. */
|
|
250
|
+
export function referenceInputPaths(receipt) {
|
|
251
|
+
const paths = [];
|
|
252
|
+
collectReferencePaths(receipt.inputs, "inputs", paths, new Set());
|
|
253
|
+
return paths;
|
|
254
|
+
}
|
|
255
|
+
function collectReferencePaths(value, path, out, seen) {
|
|
256
|
+
if (typeof value !== "object" || value === null)
|
|
257
|
+
return;
|
|
258
|
+
if (isIntrinsic(value)) {
|
|
259
|
+
out.push(path);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (seen.has(value))
|
|
263
|
+
return;
|
|
264
|
+
seen.add(value);
|
|
265
|
+
if (Array.isArray(value)) {
|
|
266
|
+
value.forEach((el, i) => collectReferencePaths(el, `${path}[${i}]`, out, seen));
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
for (const [key, el] of Object.entries(value)) {
|
|
270
|
+
collectReferencePaths(el, `${path}.${key}`, out, seen);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* The receipt's expected stored value, computable at synthesis:
|
|
275
|
+
*
|
|
276
|
+
* - `existence` → {@link EXISTENCE_EXPECTATION}, always.
|
|
277
|
+
* - `hash` → `sha256:<hex>` over the canonical JSON of
|
|
278
|
+
* `{ effect, inputs }` — the effect name is bound into the digest so the
|
|
279
|
+
* same inputs under a different effect never collide.
|
|
280
|
+
*
|
|
281
|
+
* A hash-flavor receipt that still carries reference inputs THROWS instead
|
|
282
|
+
* of hashing placeholders: synthesis resolves nothing (epic decision log,
|
|
283
|
+
* item 5). The plan engine and the effect step get the digest through
|
|
284
|
+
* {@link resolveReceiptExpectation}.
|
|
285
|
+
*/
|
|
286
|
+
export function receiptExpectation(receipt) {
|
|
287
|
+
if (receipt.flavor === "existence")
|
|
288
|
+
return EXISTENCE_EXPECTATION;
|
|
289
|
+
const refs = referenceInputPaths(receipt);
|
|
290
|
+
if (refs.length > 0) {
|
|
291
|
+
throw new Error(`receiptExpectation("${receipt.name}"): unresolved reference inputs at ${refs.join(", ")} — ` +
|
|
292
|
+
`references resolve at plan and at run, never at synthesis; ` +
|
|
293
|
+
`use resolveReceiptExpectation with a resolver`);
|
|
294
|
+
}
|
|
295
|
+
return sha256Digest(canonicalJson({ effect: receipt.effect, inputs: receipt.inputs }));
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* The receipt's expected stored value with references resolved — the form
|
|
299
|
+
* the plan engine (#1832) compares against the live receipt and the effect
|
|
300
|
+
* step (#1834) writes on success. Deterministic over the receipt and the
|
|
301
|
+
* resolver's answers; resolves nothing itself and reads no live state (the
|
|
302
|
+
* resolver is the caller's seam to deploy-time values).
|
|
303
|
+
*/
|
|
304
|
+
export function resolveReceiptExpectation(receipt, resolver) {
|
|
305
|
+
if (receipt.flavor === "existence")
|
|
306
|
+
return EXISTENCE_EXPECTATION;
|
|
307
|
+
const resolved = resolveValue(receipt.inputs, "inputs", resolver, new Set());
|
|
308
|
+
return sha256Digest(canonicalJson({ effect: receipt.effect, inputs: resolved }));
|
|
309
|
+
}
|
|
310
|
+
function resolveValue(value, path, resolver, seen) {
|
|
311
|
+
if (typeof value !== "object" || value === null)
|
|
312
|
+
return value;
|
|
313
|
+
if (isIntrinsic(value)) {
|
|
314
|
+
const resolved = resolver(value, path);
|
|
315
|
+
if (resolved === undefined) {
|
|
316
|
+
throw new Error(`resolveReceiptExpectation: resolver returned undefined for reference at ${path}`);
|
|
317
|
+
}
|
|
318
|
+
if (isIntrinsic(resolved)) {
|
|
319
|
+
throw new Error(`resolveReceiptExpectation: resolver returned another reference for ${path}`);
|
|
320
|
+
}
|
|
321
|
+
return resolved;
|
|
322
|
+
}
|
|
323
|
+
if (seen.has(value)) {
|
|
324
|
+
throw new Error(`resolveReceiptExpectation: circular structure at ${path}`);
|
|
325
|
+
}
|
|
326
|
+
seen.add(value);
|
|
327
|
+
try {
|
|
328
|
+
if (Array.isArray(value)) {
|
|
329
|
+
return value.map((el, i) => resolveValue(el, `${path}[${i}]`, resolver, seen));
|
|
330
|
+
}
|
|
331
|
+
const out = {};
|
|
332
|
+
for (const [key, el] of Object.entries(value)) {
|
|
333
|
+
out[key] = resolveValue(el, `${path}.${key}`, resolver, seen);
|
|
334
|
+
}
|
|
335
|
+
return out;
|
|
336
|
+
}
|
|
337
|
+
finally {
|
|
338
|
+
seen.delete(value);
|
|
339
|
+
}
|
|
340
|
+
}
|
package/dist/env.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Active environment for a chant run (#505).
|
|
3
|
+
*
|
|
4
|
+
* `chant graph --env prod` / `chant build --env prod` set {@link ENV_VAR} before
|
|
5
|
+
* the project is discovered, so env-aware source can branch on it — producing an
|
|
6
|
+
* environment-specific graph (or build). Environments in chant are **build-context
|
|
7
|
+
* switches**, not a resource filter: there is no per-node env membership, so an
|
|
8
|
+
* "env view" comes from *re-evaluating* the project under the environment, exactly
|
|
9
|
+
* as a deploy of that environment would. Author env-aware source by branching on
|
|
10
|
+
* {@link env}:
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { env } from "@intentius/chant";
|
|
14
|
+
* const replicas = env() === "prod" ? 5 : 1;
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Run `chant graph --env prod` and `chant graph --env dev` to get the two graphs;
|
|
18
|
+
* pinhole renders/diffs them to show environment drift (INTENTIUS/pinhole#3).
|
|
19
|
+
*/
|
|
20
|
+
import { environmentNames, matchesDeclaredEnvironment } from "./config.js";
|
|
21
|
+
/** The environment variable the CLI sets from `--env`. */
|
|
22
|
+
export const ENV_VAR = "CHANT_ENV";
|
|
23
|
+
/** The active environment for this run (from `--env`), or `fallback` if none. */
|
|
24
|
+
export function env(fallback) {
|
|
25
|
+
return process.env[ENV_VAR] ?? fallback;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate a requested environment against the project's declared `environments`
|
|
29
|
+
* (`chant.config`). Returns an error message for an unknown env, or `undefined`
|
|
30
|
+
* when it's valid (or when the project declares no environments, in which case
|
|
31
|
+
* any name is accepted). `declared` entries may be a bare name or `{ name,
|
|
32
|
+
* endpoint }` (#1166) — {@link environmentNames} reduces either to the names
|
|
33
|
+
* this checks against. An entry containing `*` is a glob pattern (#1221):
|
|
34
|
+
* `"pr-*"` legalizes every `pr-<n>` environment. Literal entries are checked
|
|
35
|
+
* first, then patterns — see {@link matchesDeclaredEnvironment}.
|
|
36
|
+
*/
|
|
37
|
+
export function unknownEnvError(requested, declared) {
|
|
38
|
+
if (!requested || !declared || declared.length === 0)
|
|
39
|
+
return undefined;
|
|
40
|
+
if (matchesDeclaredEnvironment(declared, requested))
|
|
41
|
+
return undefined;
|
|
42
|
+
const names = environmentNames(declared) ?? [];
|
|
43
|
+
return `Unknown environment "${requested}". Declared environments: ${names.join(", ")}.`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* True when an environment name looks like production — `prod`, `production`,
|
|
47
|
+
* and separator-delimited variants (`prod-eu`, `us-prod`, `production2`).
|
|
48
|
+
* `chant lifecycle teardown <env> --yes` demands an extra confirmation for
|
|
49
|
+
* these (#1222): a typo that survives the declared-environments check should
|
|
50
|
+
* still not delete production on one flag. Name-shaped, deliberately — chant
|
|
51
|
+
* has no other signal for which environment is the one that pays the bills.
|
|
52
|
+
*/
|
|
53
|
+
export function isProdLikeEnvironment(name) {
|
|
54
|
+
return /(^|[-_./])prod(uction)?([-_./0-9]|$)/i.test(name);
|
|
55
|
+
}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error types for chant discovery, build, and lint failures
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Error during file discovery or module import
|
|
6
|
+
*/
|
|
7
|
+
export class DiscoveryError extends Error {
|
|
8
|
+
constructor(file, message, type) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "DiscoveryError";
|
|
11
|
+
this.file = file;
|
|
12
|
+
this.type = type;
|
|
13
|
+
}
|
|
14
|
+
toJSON() {
|
|
15
|
+
return {
|
|
16
|
+
name: this.name,
|
|
17
|
+
file: this.file,
|
|
18
|
+
message: this.message,
|
|
19
|
+
type: this.type,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Error during build/serialization
|
|
25
|
+
*/
|
|
26
|
+
export class BuildError extends Error {
|
|
27
|
+
constructor(entityName, message) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = "BuildError";
|
|
30
|
+
this.entityName = entityName;
|
|
31
|
+
}
|
|
32
|
+
toJSON() {
|
|
33
|
+
return {
|
|
34
|
+
name: this.name,
|
|
35
|
+
entityName: this.entityName,
|
|
36
|
+
message: this.message,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Error from lint rule violation
|
|
42
|
+
*/
|
|
43
|
+
export class LintError extends Error {
|
|
44
|
+
constructor(file, line, column, ruleId, message) {
|
|
45
|
+
super(message);
|
|
46
|
+
this.name = "LintError";
|
|
47
|
+
this.file = file;
|
|
48
|
+
this.line = line;
|
|
49
|
+
this.column = column;
|
|
50
|
+
this.ruleId = ruleId;
|
|
51
|
+
}
|
|
52
|
+
toJSON() {
|
|
53
|
+
return {
|
|
54
|
+
name: this.name,
|
|
55
|
+
file: this.file,
|
|
56
|
+
line: this.line,
|
|
57
|
+
column: this.column,
|
|
58
|
+
ruleId: this.ruleId,
|
|
59
|
+
message: this.message,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|