@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,414 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fold provenance (#2161) — which composite parameter produced which emitted field.
|
|
3
|
+
*
|
|
4
|
+
* A composite is the one lossy thing chant emits. It takes a few typed
|
|
5
|
+
* arguments and expands to several resources, so a return leg that regenerates
|
|
6
|
+
* source from live produces flat typed resources and the composite is gone. The
|
|
7
|
+
* projection is not invertible from its output alone, which is the view-update
|
|
8
|
+
* problem landing on chant's record.
|
|
9
|
+
*
|
|
10
|
+
* chant can answer it where a general generator cannot, and for one reason: the
|
|
11
|
+
* evaluated subset is restricted on purpose. `discovery/fold-import.ts` already
|
|
12
|
+
* interprets an admissible factory body rather than calling it, so the
|
|
13
|
+
* expression each member property was WRITTEN as is in hand at build time. The
|
|
14
|
+
* same pass records where the field came from, in `discovery/param-deps.ts`'s
|
|
15
|
+
* {@link import("./discovery/param-deps.js").collectCompositeOrigins}.
|
|
16
|
+
*
|
|
17
|
+
* ## Four answers, and the fourth is a real one
|
|
18
|
+
*
|
|
19
|
+
* Every emitted path gets one of {@link FoldFieldOrigin}'s four kinds. Three of
|
|
20
|
+
* them are findings; `unknown` is the fourth, and it is a legal answer rather
|
|
21
|
+
* than a gap. A build that expanded a composite without interpreting its body
|
|
22
|
+
* (the run path, a factory outside the admissible subset, a sandboxed child
|
|
23
|
+
* whose provenance did not survive the wire) knows the field came from a
|
|
24
|
+
* composite and cannot say which parameter. Recording that is the whole point:
|
|
25
|
+
* an unknown must never fall through to `direct`, because `direct` licenses
|
|
26
|
+
* editing the field in the user's source and an unattributed composite field is
|
|
27
|
+
* exactly the case where that produces a flattened resource.
|
|
28
|
+
*
|
|
29
|
+
* `direct` is claimed only where the build has a provenance record AND that
|
|
30
|
+
* record says no composite expanded the entity. Absence of a record is
|
|
31
|
+
* `unknown`, never `direct`.
|
|
32
|
+
*
|
|
33
|
+
* ## Beside the output, never in it
|
|
34
|
+
*
|
|
35
|
+
* The record is build metadata, not declared configuration, and it must not
|
|
36
|
+
* reach the document an applier writes. It rides two channels, both outside the
|
|
37
|
+
* apply-bound document, and neither is a new mechanism:
|
|
38
|
+
*
|
|
39
|
+
* - per entity, the non-enumerable symbol-keyed side channel `./provenance.ts`
|
|
40
|
+
* already owns, invisible to every serializer and to every spread;
|
|
41
|
+
* - per build, {@link import("./build.js").BuildResult.foldProvenance}, a sibling
|
|
42
|
+
* of `buildParams` and `lexiconVersions`.
|
|
43
|
+
*
|
|
44
|
+
* Nothing is added to `SerializeContext`. That is the same posture
|
|
45
|
+
* `./effect-receipt.ts` takes at the same seam, one notch stricter: a receipt
|
|
46
|
+
* rides `SerializeContext.receipts` so a lexicon MAY render it outside
|
|
47
|
+
* `Resources`, whereas provenance has no rendering and is simply never handed
|
|
48
|
+
* to a serializer at all. `fold-provenance-exclusion.test.ts` drives a real
|
|
49
|
+
* build through a spy serializer and a mock applier to hold that line.
|
|
50
|
+
*
|
|
51
|
+
* ## The return leg
|
|
52
|
+
*
|
|
53
|
+
* {@link resolveDriftedField} is the consumer. #2160 has already ruled out the
|
|
54
|
+
* fields nobody declared, so a drifted field reaching it is one source actually
|
|
55
|
+
* declared, and the origin decides what may be proposed:
|
|
56
|
+
*
|
|
57
|
+
* - a composite parameter: propose changing that parameter, naming the file,
|
|
58
|
+
* the composite call and the parameter path. One line, composite intact.
|
|
59
|
+
* - a literal the composite fixes: refuse by name. The choice is to
|
|
60
|
+
* parameterize the field or stop using the composite there, and neither is
|
|
61
|
+
* something chant may pick.
|
|
62
|
+
* - a direct declaration: today's behaviour, unchanged.
|
|
63
|
+
* - unknown: today's behaviour, and say that is what happened.
|
|
64
|
+
*
|
|
65
|
+
* Proposing is as far as this goes. Rewriting a parameter in the user's source
|
|
66
|
+
* is a source-edit problem (the generator half of `chant import` emits whole
|
|
67
|
+
* files and nothing maps a property path back to a location in a `.ts` file),
|
|
68
|
+
* so a proposal here is a described action: it names the file, the composite
|
|
69
|
+
* call and the parameter path, and performs no edit.
|
|
70
|
+
*/
|
|
71
|
+
import { isResourceDeclarable } from "./declarable.js";
|
|
72
|
+
import { relative, isAbsolute } from "node:path";
|
|
73
|
+
import { originOfPath, } from "./provenance.js";
|
|
74
|
+
/** True for an ordinary `{}`, false for an array, a class instance, an `AttrRef`. */
|
|
75
|
+
function isPlainObject(value) {
|
|
76
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
77
|
+
return false;
|
|
78
|
+
const proto = Object.getPrototypeOf(value);
|
|
79
|
+
return proto === Object.prototype || proto === null;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Every property path an entity's `props` emits, in `EntityProvenance.paths`'
|
|
83
|
+
* grammar: dotted names only, plain objects descended into, everything else
|
|
84
|
+
* attributed whole at its own path.
|
|
85
|
+
*
|
|
86
|
+
* Arrays are deliberately not indexed. An index-shaped key would not survive an
|
|
87
|
+
* element moving, and the recorder that produces origins cannot index either,
|
|
88
|
+
* so indexing here would manufacture paths nothing can ever attribute. The diff
|
|
89
|
+
* addresses array elements with `[#key]`/`[n]` and `originOfPath` resolves
|
|
90
|
+
* those against the dotted key that covers them, which is the join between the
|
|
91
|
+
* two grammars.
|
|
92
|
+
*
|
|
93
|
+
* An empty object is a value, and a leaf. An `undefined` value is not emitted
|
|
94
|
+
* and yields no path.
|
|
95
|
+
*/
|
|
96
|
+
export function emittedFieldPaths(props) {
|
|
97
|
+
const out = [];
|
|
98
|
+
const walk = (value, prefix) => {
|
|
99
|
+
if (value === undefined)
|
|
100
|
+
return;
|
|
101
|
+
if (isPlainObject(value)) {
|
|
102
|
+
const keys = Object.keys(value).sort();
|
|
103
|
+
if (keys.length === 0) {
|
|
104
|
+
if (prefix)
|
|
105
|
+
out.push(prefix);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
for (const key of keys)
|
|
109
|
+
walk(value[key], prefix ? `${prefix}.${key}` : key);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (prefix)
|
|
113
|
+
out.push(prefix);
|
|
114
|
+
};
|
|
115
|
+
walk(props, "");
|
|
116
|
+
return out;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The four-way answer for one path, from the recorded {@link PathOrigin} and
|
|
120
|
+
* the entity's own provenance.
|
|
121
|
+
*
|
|
122
|
+
* `origin` is what {@link originOfPath} resolved for the path, so a coarse key
|
|
123
|
+
* recorded at an ancestor governs a leaf, exactly as it does everywhere else.
|
|
124
|
+
*/
|
|
125
|
+
export function classifyFieldOrigin(origin, provenance) {
|
|
126
|
+
if (!provenance)
|
|
127
|
+
return { kind: "unknown", reason: "no-provenance" };
|
|
128
|
+
const instance = provenance.compositeInstance;
|
|
129
|
+
const call = provenance.compositeCall;
|
|
130
|
+
switch (origin?.kind) {
|
|
131
|
+
case "composite-parameter":
|
|
132
|
+
return {
|
|
133
|
+
kind: "composite-parameter",
|
|
134
|
+
composite: origin.composite,
|
|
135
|
+
...(instance ? { instance } : {}),
|
|
136
|
+
parameters: [...origin.parameters],
|
|
137
|
+
...(call ? { call: { ...call } } : {}),
|
|
138
|
+
...(origin.arguments ? { arguments: origin.arguments.map((a) => ({ ...a })) } : {}),
|
|
139
|
+
};
|
|
140
|
+
case "composite-literal":
|
|
141
|
+
return {
|
|
142
|
+
kind: "composite-literal",
|
|
143
|
+
composite: origin.composite,
|
|
144
|
+
...(instance ? { instance } : {}),
|
|
145
|
+
...(call ? { call: { ...call } } : {}),
|
|
146
|
+
};
|
|
147
|
+
case "composite":
|
|
148
|
+
// The coarse kind: a composite expanded this, and nothing said which
|
|
149
|
+
// parameter. Not a parameter, not a fixed literal, and above all not a
|
|
150
|
+
// direct declaration.
|
|
151
|
+
return { kind: "unknown", reason: "composite-not-interpreted" };
|
|
152
|
+
case "authored":
|
|
153
|
+
// chant#3608 — `authored` is the file's own root record, and it reaches
|
|
154
|
+
// a path only when nothing finer did. On an entity a composite wrote (a
|
|
155
|
+
// member destructured from a composite the fold invoked) that means the
|
|
156
|
+
// fold could not attribute the path, which is `unknown`, never `direct`.
|
|
157
|
+
return provenance.composite
|
|
158
|
+
? { kind: "unknown", reason: "composite-not-interpreted" }
|
|
159
|
+
: { kind: "direct" };
|
|
160
|
+
case "host":
|
|
161
|
+
// INTENTIUS/typescript-as-data#248 — host code produced the value, so
|
|
162
|
+
// editing the declaration edits a call, not the value it returned.
|
|
163
|
+
return { kind: "unknown", reason: origin.reason };
|
|
164
|
+
case "build-param":
|
|
165
|
+
// A build parameter governs the expression the AUTHOR wrote in their own
|
|
166
|
+
// source, so the declaration is still theirs to edit.
|
|
167
|
+
return { kind: "direct" };
|
|
168
|
+
case undefined:
|
|
169
|
+
return provenance.composite
|
|
170
|
+
? { kind: "unknown", reason: "composite-not-interpreted" }
|
|
171
|
+
: { kind: "direct" };
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/** One entity's fold provenance, or `undefined` when it emits no properties at all. */
|
|
175
|
+
export function foldProvenanceOfEntity(entity, provenance) {
|
|
176
|
+
if (!isResourceDeclarable(entity))
|
|
177
|
+
return undefined;
|
|
178
|
+
const paths = emittedFieldPaths(entity.props);
|
|
179
|
+
if (paths.length === 0)
|
|
180
|
+
return undefined;
|
|
181
|
+
const fields = {};
|
|
182
|
+
for (const path of paths) {
|
|
183
|
+
fields[path] = classifyFieldOrigin(originOfPath(provenance?.paths, path), provenance);
|
|
184
|
+
}
|
|
185
|
+
return {
|
|
186
|
+
...(provenance?.sourceFile ? { sourceFile: provenance.sourceFile } : {}),
|
|
187
|
+
...(provenance?.composite ? { composite: provenance.composite } : {}),
|
|
188
|
+
...(provenance?.compositeInstance ? { instance: provenance.compositeInstance } : {}),
|
|
189
|
+
...(provenance?.compositeCall ? { compositeCall: { ...provenance.compositeCall } } : {}),
|
|
190
|
+
fields,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* A whole build's fold provenance.
|
|
195
|
+
*
|
|
196
|
+
* `provenanceOf` is injected rather than read off the entity here so the same
|
|
197
|
+
* function serves a build (where it is `getProvenance`) and a test with a
|
|
198
|
+
* hand-written record. Entities with no properties are absent; sorted, because
|
|
199
|
+
* a build's outputs are compared byte for byte.
|
|
200
|
+
*/
|
|
201
|
+
export function foldProvenanceOfEntities(entities, provenanceOf) {
|
|
202
|
+
const out = {};
|
|
203
|
+
for (const name of [...entities.keys()].sort()) {
|
|
204
|
+
const entity = entities.get(name);
|
|
205
|
+
const record = foldProvenanceOfEntity(entity, provenanceOf(entity));
|
|
206
|
+
if (record)
|
|
207
|
+
out[name] = record;
|
|
208
|
+
}
|
|
209
|
+
return out;
|
|
210
|
+
}
|
|
211
|
+
/** One-line rendering of a field origin, for a report. */
|
|
212
|
+
export function describeFoldFieldOrigin(origin) {
|
|
213
|
+
switch (origin.kind) {
|
|
214
|
+
case "composite-parameter":
|
|
215
|
+
return `parameter ${origin.parameters.join(", ")} of ${compositeCall(origin.composite, origin.instance)}`;
|
|
216
|
+
case "composite-literal":
|
|
217
|
+
return `fixed by ${compositeCall(origin.composite, origin.instance)}`;
|
|
218
|
+
case "direct":
|
|
219
|
+
return "declared directly";
|
|
220
|
+
case "unknown":
|
|
221
|
+
return `origin unknown (${unknownOriginText(origin.reason)})`;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/** Why an origin could not be determined, in words a report can print. */
|
|
225
|
+
export function unknownOriginText(reason) {
|
|
226
|
+
switch (reason) {
|
|
227
|
+
case "composite-not-interpreted":
|
|
228
|
+
return "expanded by a composite whose factory this build did not interpret";
|
|
229
|
+
case "no-provenance":
|
|
230
|
+
return "this build recorded no provenance for the entity";
|
|
231
|
+
case "host-call":
|
|
232
|
+
return "the value is what a host call returned";
|
|
233
|
+
case "host-value":
|
|
234
|
+
return "the value is one a host package exports";
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/** `AutoscaledService composite call \`api\``, or just the composite when the call has no name. */
|
|
238
|
+
function compositeCall(composite, instance) {
|
|
239
|
+
return instance ? `the \`${instance}\` call of composite ${composite}` : `composite ${composite}`;
|
|
240
|
+
}
|
|
241
|
+
/** A file as a report prints it: relative to `root` when it is inside it, otherwise as recorded. */
|
|
242
|
+
function displayFile(file, root) {
|
|
243
|
+
if (!root || !isAbsolute(file))
|
|
244
|
+
return file;
|
|
245
|
+
const rel = relative(root, file);
|
|
246
|
+
return rel && !rel.startsWith("..") && !isAbsolute(rel) ? rel : file;
|
|
247
|
+
}
|
|
248
|
+
/** `src/app.ts:12`, relative to `root` when it is inside it. */
|
|
249
|
+
export function formatSourceLocation(location, root) {
|
|
250
|
+
return `${displayFile(location.file, root)}:${location.line}`;
|
|
251
|
+
}
|
|
252
|
+
/** ` in src/app.infra.ts`, or nothing when the build recorded no file. */
|
|
253
|
+
function inFile(sourceFile, root) {
|
|
254
|
+
return sourceFile ? ` in ${displayFile(sourceFile, root)}` : "";
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* The composite call as the author wrote the arguments that govern a field:
|
|
258
|
+
* `WebApp({ replicas: 3 })`, or `WebApp({ iam: { path: "/service/" } })` for a
|
|
259
|
+
* nested parameter. Only arguments actually written at the call appear; when
|
|
260
|
+
* none is, the call is shown as `WebApp(...)`.
|
|
261
|
+
*/
|
|
262
|
+
export function describeCompositeArguments(composite, locations) {
|
|
263
|
+
const written = locations.filter((a) => a.text !== undefined);
|
|
264
|
+
if (written.length === 0)
|
|
265
|
+
return `${composite}(...)`;
|
|
266
|
+
const parts = written.map((a) => {
|
|
267
|
+
const outer = a.parameter.split(".").slice(0, -1);
|
|
268
|
+
return outer.reduceRight((inner, key) => `${key}: { ${inner} }`, a.text);
|
|
269
|
+
});
|
|
270
|
+
return `${composite}({ ${parts.join(", ")} })`;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Where a composite-parameter field was set, as `at src/app.ts:12`: the first
|
|
274
|
+
* argument written at the call, else the call, else the declaring file.
|
|
275
|
+
*/
|
|
276
|
+
function parameterSite(origin, sourceFile, root) {
|
|
277
|
+
const written = origin.arguments?.find((a) => a.text !== undefined);
|
|
278
|
+
const location = written ?? origin.call ?? origin.arguments?.[0];
|
|
279
|
+
if (location)
|
|
280
|
+
return ` at ${formatSourceLocation(location, root)}`;
|
|
281
|
+
return inFile(sourceFile, root);
|
|
282
|
+
}
|
|
283
|
+
/** ` at src/app.ts:10` for the composite call, else the declaring file. */
|
|
284
|
+
function callSite(call, sourceFile, root) {
|
|
285
|
+
return call ? ` at ${formatSourceLocation(call, root)}` : inFile(sourceFile, root);
|
|
286
|
+
}
|
|
287
|
+
/** A value as a report prints it. */
|
|
288
|
+
function renderValue(value) {
|
|
289
|
+
if (value === undefined)
|
|
290
|
+
return "unset";
|
|
291
|
+
try {
|
|
292
|
+
return JSON.stringify(value) ?? String(value);
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
return String(value);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Classify one drifted field by its origin.
|
|
300
|
+
*
|
|
301
|
+
* The caller has already established this is drift in #2160's sense: a path
|
|
302
|
+
* source declared, whose live value moved. Undeclared fields are held
|
|
303
|
+
* elsewhere and never reach here, so the only question left is which of the
|
|
304
|
+
* four origins produced the field.
|
|
305
|
+
*
|
|
306
|
+
* `entityType` names the resource in the summary line, and `root` (the
|
|
307
|
+
* project directory) makes the file names in it relative. Both are optional;
|
|
308
|
+
* without them the summary uses the entity name alone and absolute files.
|
|
309
|
+
*/
|
|
310
|
+
export function resolveDriftedField(input) {
|
|
311
|
+
const origin = classifyFieldOrigin(input.origin, input.provenance);
|
|
312
|
+
const sourceFile = input.provenance?.sourceFile;
|
|
313
|
+
const root = input.root;
|
|
314
|
+
const move = `${renderValue(input.declared)} to ${renderValue(input.live)}`;
|
|
315
|
+
const subject = `${input.path} on ${input.entityType ? `${input.entityType} ` : ""}${input.entity}`;
|
|
316
|
+
const summary = (() => {
|
|
317
|
+
switch (origin.kind) {
|
|
318
|
+
case "composite-parameter":
|
|
319
|
+
return (`${subject} comes from ${describeCompositeArguments(origin.composite, origin.arguments ?? [])}` +
|
|
320
|
+
`${parameterSite(origin, sourceFile, root)}` +
|
|
321
|
+
(origin.arguments?.some((a) => a.text !== undefined)
|
|
322
|
+
? ""
|
|
323
|
+
: ` (parameter ${origin.parameters.join(", ")}, not written at the call)`));
|
|
324
|
+
case "composite-literal":
|
|
325
|
+
return (`${subject} is fixed inside composite ${origin.composite}; ` +
|
|
326
|
+
`no argument to the call${callSite(origin.call, sourceFile, root)} moves it`);
|
|
327
|
+
case "direct":
|
|
328
|
+
return `${subject} is declared directly${inFile(sourceFile, root)}`;
|
|
329
|
+
case "unknown":
|
|
330
|
+
return `${subject} has an unknown origin: ${unknownOriginText(origin.reason)}`;
|
|
331
|
+
}
|
|
332
|
+
})();
|
|
333
|
+
const resolution = (() => {
|
|
334
|
+
switch (origin.kind) {
|
|
335
|
+
case "composite-parameter": {
|
|
336
|
+
const parameters = origin.parameters;
|
|
337
|
+
return {
|
|
338
|
+
kind: "propose-parameter",
|
|
339
|
+
composite: origin.composite,
|
|
340
|
+
...(origin.instance ? { instance: origin.instance } : {}),
|
|
341
|
+
...(sourceFile ? { sourceFile } : {}),
|
|
342
|
+
parameters: [...parameters],
|
|
343
|
+
description: `change ${parameters.length === 1 ? "parameter" : "parameters"} ` +
|
|
344
|
+
`${parameters.map((p) => `\`${p}\``).join(", ")} of ` +
|
|
345
|
+
`${compositeCall(origin.composite, origin.instance)}${parameterSite(origin, sourceFile, root)} ` +
|
|
346
|
+
`so \`${input.path}\` moves from ${move}. The composite stays.`,
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
case "composite-literal":
|
|
350
|
+
return {
|
|
351
|
+
kind: "refuse-fixed",
|
|
352
|
+
composite: origin.composite,
|
|
353
|
+
...(origin.instance ? { instance: origin.instance } : {}),
|
|
354
|
+
...(sourceFile ? { sourceFile } : {}),
|
|
355
|
+
description: `refused: \`${input.path}\` is fixed by ${compositeCall(origin.composite, origin.instance)}` +
|
|
356
|
+
`${callSite(origin.call, sourceFile, root)}, so no argument at the call site moves it. ` +
|
|
357
|
+
`Parameterize the field in composite ${origin.composite}, or stop using the composite here.`,
|
|
358
|
+
};
|
|
359
|
+
case "direct":
|
|
360
|
+
return {
|
|
361
|
+
kind: "edit-declaration",
|
|
362
|
+
...(sourceFile ? { sourceFile } : {}),
|
|
363
|
+
description: `change the declared value of \`${input.path}\`${inFile(sourceFile, root)} from ${move}.`,
|
|
364
|
+
};
|
|
365
|
+
case "unknown":
|
|
366
|
+
return {
|
|
367
|
+
kind: "fall-back",
|
|
368
|
+
reason: origin.reason,
|
|
369
|
+
...(sourceFile ? { sourceFile } : {}),
|
|
370
|
+
description: `origin unknown (${unknownOriginText(origin.reason)}), so falling back to changing the ` +
|
|
371
|
+
`declared value of \`${input.path}\`${inFile(sourceFile, root)} from ${move}.`,
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
})();
|
|
375
|
+
return {
|
|
376
|
+
entity: input.entity,
|
|
377
|
+
path: input.path,
|
|
378
|
+
...("declared" in input ? { declared: input.declared } : {}),
|
|
379
|
+
...("live" in input ? { live: input.live } : {}),
|
|
380
|
+
origin,
|
|
381
|
+
summary,
|
|
382
|
+
resolution,
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Every drifted field in a deep diff, classified.
|
|
387
|
+
*
|
|
388
|
+
* Reads `drifted` only. `unclaimed` is somebody else's field and
|
|
389
|
+
* `accepted` is a difference the baseline holds back, and neither may become an
|
|
390
|
+
* update, so neither is offered a resolution.
|
|
391
|
+
*
|
|
392
|
+
* A drift row of kind `absent` has no live value: the field is declared and the
|
|
393
|
+
* cloud does not have it. That is still drift on a declared path, and the same
|
|
394
|
+
* four origins decide what may be proposed about it.
|
|
395
|
+
*/
|
|
396
|
+
export function resolveDeepDrift(drifted, provenanceOf, options = {}) {
|
|
397
|
+
const out = [];
|
|
398
|
+
for (const entity of drifted) {
|
|
399
|
+
const provenance = provenanceOf(entity.name);
|
|
400
|
+
for (const change of entity.changes) {
|
|
401
|
+
out.push(resolveDriftedField({
|
|
402
|
+
entity: entity.name,
|
|
403
|
+
entityType: entity.type,
|
|
404
|
+
path: change.path,
|
|
405
|
+
...("declared" in change ? { declared: change.declared } : {}),
|
|
406
|
+
...("live" in change ? { live: change.live } : {}),
|
|
407
|
+
...(change.origin ? { origin: change.origin } : {}),
|
|
408
|
+
...(provenance ? { provenance } : {}),
|
|
409
|
+
...(options.root ? { root: options.root } : {}),
|
|
410
|
+
}));
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
return out;
|
|
414
|
+
}
|
package/dist/gate-decision.d.ts
CHANGED
|
@@ -16,6 +16,12 @@
|
|
|
16
16
|
* approving review, when its head planned this digest
|
|
17
17
|
* ({@link reviewApproval}).
|
|
18
18
|
*
|
|
19
|
+
* A gate the declaration at base names under `identity.gates` counts only a
|
|
20
|
+
* sealed approval from its class: {@link identityGateAdmissionAt} reads that
|
|
21
|
+
* rule from a bare clone at base and judges by `admitApprover`, the function
|
|
22
|
+
* chant's `gateAdmission` judges by (#3862); pass its `refuses` to
|
|
23
|
+
* {@link decideGateApproval}.
|
|
24
|
+
*
|
|
19
25
|
* With `spend` (#3784), an approval a wave already applied under is spent and
|
|
20
26
|
* counts for nothing, as terragucci's wave gate has it: the caller hands in
|
|
21
27
|
* the lines of `_gates/<op>/applied.jsonl` ({@link parseAppliedGateLines}).
|
|
@@ -28,7 +34,8 @@
|
|
|
28
34
|
* `gate-decision.test.ts` decides the same ledgers both ways.
|
|
29
35
|
*/
|
|
30
36
|
import { type AppliedGateRecord } from "./lifecycle/gate-applied.js";
|
|
31
|
-
import { type GateSigners } from "./workspace/trust/gate-seal.js";
|
|
37
|
+
import { type GateSigners, type SealedGateApproval } from "./workspace/trust/gate-seal.js";
|
|
38
|
+
import { type ClassGrant } from "./workspace/identity-gate-rule.js";
|
|
32
39
|
import type { GateResolutionRecord, PendingGateRecord } from "./lifecycle/gate-ledger.js";
|
|
33
40
|
import type { MergedReview } from "./op/gate-review.js";
|
|
34
41
|
import type { GateApprovalSource } from "./op/op-waves.js";
|
|
@@ -37,6 +44,7 @@ export { isPendingGateExpired, latestPendingGate, latestResolutionForPlan, lates
|
|
|
37
44
|
export { GATE_SEAL_NAMESPACE, gateSealPayload, gateSealRefusal, sshKeyFingerprint, verifySshSignatureWith, type GateSigners, type SealedGateApproval, type SshSignatureCheck, } from "./workspace/trust/gate-seal.js";
|
|
38
45
|
export { DEFAULT_SIGNERS_PATH, TRUST_CONFIG_PATH, parseAllowedSigners, trustConfigProblems, type Signer, type SignerSet, } from "./workspace/trust/trust-files.js";
|
|
39
46
|
export type { GateResolutionRecord, PendingGateRecord } from "./lifecycle/gate-ledger.js";
|
|
47
|
+
export { CORE_CLASSES, admitApprover, grantedClasses, type ClassGrant, type GateAdmissionRule, type PrincipalClass, } from "./workspace/identity-gate-rule.js";
|
|
40
48
|
export { appliedGateApplies, appliedGatePath, isApprovalSpent, parseAppliedGateLines, type AppliedGateRecord, } from "./lifecycle/gate-applied.js";
|
|
41
49
|
export type { MergedReview } from "./op/gate-review.js";
|
|
42
50
|
/**
|
|
@@ -63,11 +71,35 @@ export interface IdentityGate {
|
|
|
63
71
|
/**
|
|
64
72
|
* The gates `chant.workspace.json` (or `.jsonc`) at `base` names under
|
|
65
73
|
* `identity.gates`: each counts only a sealed approval, from its class when
|
|
66
|
-
* it names one.
|
|
67
|
-
*
|
|
68
|
-
*
|
|
74
|
+
* it names one. {@link identityGateAdmissionAt} judges an approval by one.
|
|
75
|
+
* Empty when there is no declaration at base. Throws when the declaration
|
|
76
|
+
* there cannot be parsed, since the gate cannot be decided.
|
|
69
77
|
*/
|
|
70
78
|
export declare function identityGatesAt(repo: string, base: string): IdentityGate[];
|
|
79
|
+
/** An `identity.gates` gate at base, and the judge for its approvals. */
|
|
80
|
+
export interface IdentityGateAdmission {
|
|
81
|
+
requirement: IdentityGate;
|
|
82
|
+
/** Why `approval` does not count toward the gate, or null when it does. Pass it to {@link decideGateApproval} as `refuses`. */
|
|
83
|
+
refuses(approval: SealedGateApproval): string | null;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The `identity.gates` rule for `gate` at `base`, or null when the
|
|
87
|
+
* declaration there names none: what chant's `gateAdmission(cwd, gate, base)`
|
|
88
|
+
* answers, read from a bare clone. An approval counts when its seal verifies
|
|
89
|
+
* for its approver against the signers at base and, when the gate names a
|
|
90
|
+
* class, the role grants in `.chant/trust.json` at base put the approver in
|
|
91
|
+
* it. Both judge with the same function ({@link admitApprover}).
|
|
92
|
+
*
|
|
93
|
+
* The classes are the four core ones, then `classes`, the domain classes the
|
|
94
|
+
* caller read from the pinned packages (`./workspace-principals`), in pin
|
|
95
|
+
* order. This reader loads no package. A gate whose class is in neither
|
|
96
|
+
* refuses every approval, and when the declaration at base pins anything the
|
|
97
|
+
* reason says the pins were not read, since one of them may supply it.
|
|
98
|
+
* Throws when the declaration at base cannot be parsed.
|
|
99
|
+
*/
|
|
100
|
+
export declare function identityGateAdmissionAt(repo: string, base: string, gate: string, opts?: {
|
|
101
|
+
classes?: readonly ClassGrant[];
|
|
102
|
+
}): IdentityGateAdmission | null;
|
|
71
103
|
/** What a pull request's review says about a wave, under `pr-review`. */
|
|
72
104
|
export interface ReviewApproval {
|
|
73
105
|
approved: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-decision.d.ts","sourceRoot":"","sources":["../src/gate-decision.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gate-decision.d.ts","sourceRoot":"","sources":["../src/gate-decision.ts"],"names":[],"mappings":"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"}
|