@intentius/chant 0.124.13 → 0.124.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/chant +11 -0
- package/dist/agents/checks.js +326 -0
- package/dist/agents/discover.js +885 -0
- package/dist/agents/importer.js +17 -0
- package/dist/agents/index.js +12 -0
- package/dist/agents/types.js +19 -0
- package/dist/apply.js +151 -0
- package/dist/attrref.js +70 -0
- package/dist/audit/catalog.js +350 -0
- package/dist/audit/core.js +252 -0
- package/dist/audit/discover.js +633 -0
- package/dist/audit/fetch.js +666 -0
- package/dist/audit/lineage.js +91 -0
- package/dist/audit/nginx.js +366 -0
- package/dist/audit/prior-art.js +132 -0
- package/dist/audit/proof.js +321 -0
- package/dist/audit/report-html.js +194 -0
- package/dist/audit/report-model.js +198 -0
- package/dist/audit/report.js +102 -0
- package/dist/audit/rules-doc.js +144 -0
- package/dist/audit/secrets.js +405 -0
- package/dist/audit/terraform-state.js +140 -0
- package/dist/audit/wrangler.js +262 -0
- package/dist/behaviour-delta.js +401 -0
- package/dist/behaviour-engine.js +357 -0
- package/dist/behaviour-graph.js +83 -0
- package/dist/behaviour-http.js +188 -0
- package/dist/behaviour-kinds.js +172 -0
- package/dist/behaviour-overlay.js +50 -0
- package/dist/behaviour-predict.js +188 -0
- package/dist/behaviour-request.js +194 -0
- package/dist/behaviour.js +1325 -0
- package/dist/build-params.js +108 -0
- package/dist/build.js +668 -0
- package/dist/builder.js +44 -0
- package/dist/cdk/advise.js +30 -0
- package/dist/cdk/assembly.js +122 -0
- package/dist/cdk/graph.js +444 -0
- package/dist/cdk/tier-map.js +64 -0
- package/dist/cdk/types.js +24 -0
- package/dist/change-set.js +312 -0
- package/dist/child-project.js +21 -0
- package/dist/claimed-fields.js +135 -0
- package/dist/cli/build-options.js +70 -0
- package/dist/cli/build-params-cli.js +139 -0
- package/dist/cli/command-group.js +123 -0
- package/dist/cli/commands/audit-agents.js +326 -0
- package/dist/cli/commands/audit.js +571 -0
- package/dist/cli/commands/build.js +920 -0
- package/dist/cli/commands/carve-apply.js +153 -0
- package/dist/cli/commands/carve-bridge.js +201 -0
- package/dist/cli/commands/carve-emit.js +332 -0
- package/dist/cli/commands/carve-status.js +119 -0
- package/dist/cli/commands/carve.js +204 -0
- package/dist/cli/commands/check-lexicon-docs.js +79 -0
- package/dist/cli/commands/check-lexicon-examples.js +177 -0
- package/dist/cli/commands/check-lexicon-intrinsics.js +291 -0
- package/dist/cli/commands/check-lexicon-mcp.js +82 -0
- package/dist/cli/commands/check-lexicon-plugin.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon-plugin.js +104 -0
- package/dist/cli/commands/check-lexicon.js +766 -0
- package/dist/cli/commands/describe.js +85 -0
- package/dist/cli/commands/diff.js +175 -0
- package/dist/cli/commands/doctor.js +350 -0
- package/dist/cli/commands/import-agents.js +155 -0
- package/dist/cli/commands/import.js +670 -0
- package/dist/cli/commands/init-lexicon/templates/codegen.js +194 -0
- package/dist/cli/commands/init-lexicon/templates/docs.js +100 -0
- package/dist/cli/commands/init-lexicon/templates/examples.js +29 -0
- package/dist/cli/commands/init-lexicon/templates/lint.js +34 -0
- package/dist/cli/commands/init-lexicon/templates/lsp.js +37 -0
- package/dist/cli/commands/init-lexicon/templates/plugin.js +108 -0
- package/dist/cli/commands/init-lexicon/templates/project.js +240 -0
- package/dist/cli/commands/init-lexicon/templates/spec.js +56 -0
- package/dist/cli/commands/init-lexicon/templates/tests.js +66 -0
- package/dist/cli/commands/init-lexicon.js +172 -0
- package/dist/cli/commands/init.js +381 -0
- package/dist/cli/commands/lexicon-rolling-upgrade.js +145 -0
- package/dist/cli/commands/lexicon-surface-diff.js +145 -0
- package/dist/cli/commands/licenses.js +125 -0
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/lint.js +948 -0
- package/dist/cli/commands/list.js +63 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +423 -0
- package/dist/cli/commands/onboard.js +403 -0
- package/dist/cli/commands/pinned-upgrade.js +191 -0
- package/dist/cli/commands/update.js +194 -0
- package/dist/cli/commands/vendor.js +217 -0
- package/dist/cli/conflict-check.js +104 -0
- package/dist/cli/debug.js +8 -0
- package/dist/cli/format.js +104 -0
- package/dist/cli/handlers/build.js +267 -0
- package/dist/cli/handlers/carve-apply.js +30 -0
- package/dist/cli/handlers/carve-bridge.js +28 -0
- package/dist/cli/handlers/carve-emit.js +50 -0
- package/dist/cli/handlers/carve-status.js +26 -0
- package/dist/cli/handlers/carve.js +40 -0
- package/dist/cli/handlers/change-set.js +46 -0
- package/dist/cli/handlers/components.js +730 -0
- package/dist/cli/handlers/dev.js +113 -0
- package/dist/cli/handlers/emulator.js +233 -0
- package/dist/cli/handlers/explain.js +54 -0
- package/dist/cli/handlers/fan-out.js +422 -0
- package/dist/cli/handlers/gate-resume.js +275 -0
- package/dist/cli/handlers/generate.js +84 -0
- package/dist/cli/handlers/graph.js +969 -0
- package/dist/cli/handlers/init.js +102 -0
- package/dist/cli/handlers/lifecycle.js +1727 -0
- package/dist/cli/handlers/lint.js +62 -0
- package/dist/cli/handlers/migrate.js +48 -0
- package/dist/cli/handlers/misc.js +391 -0
- package/dist/cli/handlers/operator.js +1162 -0
- package/dist/cli/handlers/override-approve.js +102 -0
- package/dist/cli/handlers/pr.js +503 -0
- package/dist/cli/handlers/promote.js +342 -0
- package/dist/cli/handlers/run-generate.js +206 -0
- package/dist/cli/handlers/run-wave.js +66 -0
- package/dist/cli/handlers/run.js +1191 -0
- package/dist/cli/handlers/scenario.js +325 -0
- package/dist/cli/handlers/search.js +924 -0
- package/dist/cli/handlers/serve.js +32 -0
- package/dist/cli/handlers/vendor.js +154 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/is-entry-point.js +23 -0
- package/dist/cli/lsp/capabilities.js +28 -0
- package/dist/cli/lsp/diagnostics.js +34 -0
- package/dist/cli/lsp/server.js +329 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +2540 -0
- package/dist/cli/mcp/lifecycle-tools.js +80 -0
- package/dist/cli/mcp/op-tools.js +306 -0
- package/dist/cli/mcp/resource-handlers.js +258 -0
- package/dist/cli/mcp/resources/context.js +85 -0
- package/dist/cli/mcp/server.js +353 -0
- package/dist/cli/mcp/tools/build.js +111 -0
- package/dist/cli/mcp/tools/composites.js +95 -0
- package/dist/cli/mcp/tools/explain.js +166 -0
- package/dist/cli/mcp/tools/import.js +49 -0
- package/dist/cli/mcp/tools/lint.js +41 -0
- package/dist/cli/mcp/tools/scaffold.js +111 -0
- package/dist/cli/mcp/tools/search.js +112 -0
- package/dist/cli/mcp/types.js +1 -0
- package/dist/cli/mcp/workspace-plugins.js +91 -0
- package/dist/cli/mcp/workspace-tools.d.ts +1 -1
- package/dist/cli/mcp/workspace-tools.js +564 -0
- package/dist/cli/mcp-config.js +70 -0
- package/dist/cli/plugins.js +313 -0
- package/dist/cli/registry.js +23 -0
- package/dist/cli/reporters/stylish.js +329 -0
- package/dist/cli/version.js +15 -0
- package/dist/cli/watch.js +79 -0
- package/dist/codegen/bound-property-types.js +82 -0
- package/dist/codegen/coverage.js +119 -0
- package/dist/codegen/docs-file-markers.js +60 -0
- package/dist/codegen/docs-pages.js +115 -0
- package/dist/codegen/docs-rule-scanning.js +164 -0
- package/dist/codegen/docs-rules.js +76 -0
- package/dist/codegen/docs-sections.js +117 -0
- package/dist/codegen/docs-sidebar.js +65 -0
- package/dist/codegen/docs-types.js +4 -0
- package/dist/codegen/docs.js +356 -0
- package/dist/codegen/fetch.js +340 -0
- package/dist/codegen/generate-post-synth-barrel.js +63 -0
- package/dist/codegen/generate-registry.js +71 -0
- package/dist/codegen/generate-runtime-index.js +56 -0
- package/dist/codegen/generate-typescript.js +119 -0
- package/dist/codegen/generate.js +115 -0
- package/dist/codegen/json-patch.js +141 -0
- package/dist/codegen/json-schema-to-ts.js +344 -0
- package/dist/codegen/json-schema.js +246 -0
- package/dist/codegen/lexicon-regen.js +412 -0
- package/dist/codegen/naming.js +217 -0
- package/dist/codegen/okf-lexicon.js +245 -0
- package/dist/codegen/package.js +150 -0
- package/dist/codegen/pinned-upgrade.d.ts.map +1 -1
- package/dist/codegen/pinned-upgrade.js +494 -0
- package/dist/codegen/registry.js +60 -0
- package/dist/codegen/rehype-base-url.mjs +68 -0
- package/dist/codegen/rolling-upgrade.js +217 -0
- package/dist/codegen/surface-snapshot.js +537 -0
- package/dist/codegen/testdata/postgres-tags.json +242 -0
- package/dist/codegen/topo-sort.js +36 -0
- package/dist/codegen/typecheck.js +115 -0
- package/dist/codegen/validate.js +200 -0
- package/dist/codegen/version-bump.js +35 -0
- package/dist/components/auto-release.js +143 -0
- package/dist/components/builders.js +47 -0
- package/dist/components/capability-plugin-loader.js +175 -0
- package/dist/components/capability-plugin-schema.js +46 -0
- package/dist/components/capability-plugin.js +99 -0
- package/dist/components/capability.js +60 -0
- package/dist/components/changed-files.js +72 -0
- package/dist/components/cli-support.js +427 -0
- package/dist/components/component.js +120 -0
- package/dist/components/component.schema.json +271 -0
- package/dist/components/config-defaults.js +130 -0
- package/dist/components/deploy-units.js +60 -0
- package/dist/components/discover.d.ts.map +1 -1
- package/dist/components/discover.js +189 -0
- package/dist/components/driver-output.js +86 -0
- package/dist/components/driver.js +728 -0
- package/dist/components/fan-out-output.js +165 -0
- package/dist/components/fan-out-record.js +94 -0
- package/dist/components/fan-out-run.js +373 -0
- package/dist/components/fan-out-support.js +60 -0
- package/dist/components/fan-out.js +273 -0
- package/dist/components/gate-plan.js +41 -0
- package/dist/components/gated-wave-pipeline.js +46 -0
- package/dist/components/index.js +24 -0
- package/dist/components/layers.js +28 -0
- package/dist/components/manifest-persistence.js +108 -0
- package/dist/components/pilots/alb-ecs.pilot.js +59 -0
- package/dist/components/pilots/dynamodb.pilot.js +51 -0
- package/dist/components/pilots/jar-emr.pilot.js +65 -0
- package/dist/components/pilots/lambda.pilot.js +52 -0
- package/dist/components/pilots/neo4j-fanout.pilot.js +68 -0
- package/dist/components/pilots/project.js +12 -0
- package/dist/components/pr-pipeline.js +134 -0
- package/dist/components/pr-run.js +363 -0
- package/dist/components/presets/ecs-fargate.js +72 -0
- package/dist/components/presets/index.js +28 -0
- package/dist/components/presets/lambda.js +34 -0
- package/dist/components/presets/single-host-compose.js +41 -0
- package/dist/components/promote.js +549 -0
- package/dist/components/registry.js +34 -0
- package/dist/components/run-progress.js +33 -0
- package/dist/components/sandbox/driver.d.ts.map +1 -1
- package/dist/components/sandbox/driver.js +93 -0
- package/dist/components/sandbox/run.js +115 -0
- package/dist/components/starter-plugin.js +104 -0
- package/dist/components/verbs/__tests__/mock-cloud-executor.js +68 -0
- package/dist/components/verbs/__tests__/mock-process-runner.js +45 -0
- package/dist/components/verbs/__tests__/mock-sbom-generator.js +56 -0
- package/dist/components/verbs/bom-writer.js +287 -0
- package/dist/components/verbs/build-archive.js +188 -0
- package/dist/components/verbs/build.js +142 -0
- package/dist/components/verbs/cloud-executor.js +110 -0
- package/dist/components/verbs/component-bom.js +125 -0
- package/dist/components/verbs/ensure-secret.js +50 -0
- package/dist/components/verbs/index.js +61 -0
- package/dist/components/verbs/license-policy.js +75 -0
- package/dist/components/verbs/lockfile-sbom-generator.js +191 -0
- package/dist/components/verbs/process-runner.js +78 -0
- package/dist/components/verbs/r2-sync.js +93 -0
- package/dist/components/verbs/reproducibility.js +62 -0
- package/dist/components/verbs/run-agent.js +577 -0
- package/dist/components/verbs/sbom-generator.js +119 -0
- package/dist/components/verbs/sbom.js +97 -0
- package/dist/components/verbs/shell.js +32 -0
- package/dist/components/verbs/sign.js +221 -0
- package/dist/components/verbs/stub.js +28 -0
- package/dist/components/verbs/tool-sbom-generator.js +154 -0
- package/dist/components/verbs/verify.js +112 -0
- package/dist/components/verbs/vex.js +131 -0
- package/dist/components/verbs/vuln-gate.js +152 -0
- package/dist/components/verbs/vuln-scan.js +288 -0
- package/dist/components/verbs/wait-verify.js +106 -0
- package/dist/components/verbs/wrangler.js +179 -0
- package/dist/components/wave-plan.js +102 -0
- package/dist/composite.js +305 -0
- package/dist/config-import.d.ts.map +1 -1
- package/dist/config-import.js +22 -0
- package/dist/config-sandbox.js +122 -0
- package/dist/config-static.js +206 -0
- package/dist/config.js +605 -0
- package/dist/content-digest.js +23 -0
- package/dist/declarable.js +114 -0
- package/dist/deep-observation.js +437 -0
- package/dist/detectLexicon.js +54 -0
- package/dist/discovery/cache.js +70 -0
- package/dist/discovery/collect.js +208 -0
- package/dist/discovery/cycles.js +95 -0
- package/dist/discovery/entity-wire-codec.js +391 -0
- package/dist/discovery/entity-wire.js +42 -0
- package/dist/discovery/files.js +121 -0
- package/dist/discovery/fold-import.d.ts.map +1 -1
- package/dist/discovery/fold-import.js +4178 -0
- package/dist/discovery/fold-rank.js +292 -0
- package/dist/discovery/graph.js +115 -0
- package/dist/discovery/import.d.ts.map +1 -1
- package/dist/discovery/import.js +65 -0
- package/dist/discovery/index.js +333 -0
- package/dist/discovery/param-deps.js +487 -0
- package/dist/discovery/resolve.js +39 -0
- package/dist/discovery/sandbox/bundle.js +214 -0
- package/dist/discovery/sandbox/child-errors.js +26 -0
- package/dist/discovery/sandbox/config-run.js +100 -0
- package/dist/discovery/sandbox/config-wire.js +183 -0
- package/dist/discovery/sandbox/driver.d.ts.map +1 -1
- package/dist/discovery/sandbox/driver.js +333 -0
- package/dist/discovery/sandbox/fork.js +229 -0
- package/dist/discovery/sandbox/policy-run.js +142 -0
- package/dist/discovery/sandbox/policy-wire.js +152 -0
- package/dist/discovery/sandbox/run.js +77 -0
- package/dist/discovery/specifier-resolve.js +320 -0
- package/dist/discovery/walk.js +284 -0
- package/dist/effect-receipt.js +340 -0
- package/dist/env.js +55 -0
- package/dist/errors.js +62 -0
- package/dist/fold/fold.js +1434 -0
- package/dist/fold/foldable-helpers.js +229 -0
- package/dist/fold/subset.js +696 -0
- package/dist/fold-provenance.js +414 -0
- package/dist/gate-decision.js +260 -0
- package/dist/gate-resume-run.js +154 -0
- package/dist/gated-waves.js +165 -0
- package/dist/governance.js +43 -0
- package/dist/graph-declared.js +45 -0
- package/dist/graph-detail.js +207 -0
- package/dist/graph-dot.js +54 -0
- package/dist/graph-effective.js +107 -0
- package/dist/graph-ir.js +623 -0
- package/dist/graph-layout.js +184 -0
- package/dist/graph-lens.js +105 -0
- package/dist/graph-mermaid.js +83 -0
- package/dist/graph-ops.js +39 -0
- package/dist/graph-refs.js +156 -0
- package/dist/held-elsewhere.js +87 -0
- package/dist/identity.js +251 -0
- package/dist/import/base-parser.js +34 -0
- package/dist/import/embedded.js +255 -0
- package/dist/import/generator.js +1 -0
- package/dist/import/ir-utils.js +85 -0
- package/dist/import/parser-options.js +45 -0
- package/dist/import/parser.js +1 -0
- package/dist/index.js +118 -0
- package/dist/intrinsic-interpolation.js +73 -0
- package/dist/intrinsic.js +31 -0
- package/dist/join-key.js +35 -0
- package/dist/kubectl-context.js +150 -0
- package/dist/lexicon-config.js +58 -0
- package/dist/lexicon-integrity.js +47 -0
- package/dist/lexicon-manifest.js +70 -0
- package/dist/lexicon-module.d.ts.map +1 -1
- package/dist/lexicon-module.js +241 -0
- package/dist/lexicon-output.js +218 -0
- package/dist/lexicon-plugin-helpers.js +104 -0
- package/dist/lexicon-schema.js +136 -0
- package/dist/lexicon.js +130 -0
- package/dist/lifecycle/affected.js +224 -0
- package/dist/lifecycle/assert-live.js +110 -0
- package/dist/lifecycle/build-ledger-store.js +160 -0
- package/dist/lifecycle/build-ledger.js +155 -0
- package/dist/lifecycle/change-set.js +356 -0
- package/dist/lifecycle/converge-ledger.js +161 -0
- package/dist/lifecycle/deep-diff.js +233 -0
- package/dist/lifecycle/deep-observe.js +147 -0
- package/dist/lifecycle/digest.js +143 -0
- package/dist/lifecycle/disruption.js +135 -0
- package/dist/lifecycle/gate-applied.js +113 -0
- package/dist/lifecycle/gate-audit.js +341 -0
- package/dist/lifecycle/gate-ledger-select.js +89 -0
- package/dist/lifecycle/gate-ledger.js +193 -0
- package/dist/lifecycle/gate-origin.js +117 -0
- package/dist/lifecycle/gate-pending.js +58 -0
- package/dist/lifecycle/git.js +1182 -0
- package/dist/lifecycle/identity.js +58 -0
- package/dist/lifecycle/index.js +26 -0
- package/dist/lifecycle/lease.js +283 -0
- package/dist/lifecycle/ledger-port.js +1 -0
- package/dist/lifecycle/legacy-digest.js +91 -0
- package/dist/lifecycle/live-diff.js +274 -0
- package/dist/lifecycle/local-note.js +15 -0
- package/dist/lifecycle/member-ledger.js +122 -0
- package/dist/lifecycle/observation-baseline.js +155 -0
- package/dist/lifecycle/observe.js +375 -0
- package/dist/lifecycle/oras-referrer-lookup.js +82 -0
- package/dist/lifecycle/override-ledger.js +54 -0
- package/dist/lifecycle/plan-digest.js +110 -0
- package/dist/lifecycle/plan-ledger.js +129 -0
- package/dist/lifecycle/receipt-plan.js +192 -0
- package/dist/lifecycle/release-ledger.js +155 -0
- package/dist/lifecycle/release-read.js +64 -0
- package/dist/lifecycle/replay.js +193 -0
- package/dist/lifecycle/rollback.js +102 -0
- package/dist/lifecycle/run-ledger.js +183 -0
- package/dist/lifecycle/scenario-eval.js +204 -0
- package/dist/lifecycle/scenario.js +214 -0
- package/dist/lifecycle/snapshot.js +239 -0
- package/dist/lifecycle/status.js +447 -0
- package/dist/lifecycle/symptoms.js +117 -0
- package/dist/lifecycle/teardown.js +255 -0
- package/dist/lifecycle/types.js +1 -0
- package/dist/lifecycle/unobserved-gate.js +33 -0
- package/dist/lifecycle/wave-plans.js +68 -0
- package/dist/lifecycle/work-item-id.js +36 -0
- package/dist/lifecycle/work-lease.js +393 -0
- package/dist/lint/component-checks.js +87 -0
- package/dist/lint/config.js +483 -0
- package/dist/lint/declarative.js +122 -0
- package/dist/lint/discover.d.ts.map +1 -1
- package/dist/lint/discover.js +138 -0
- package/dist/lint/engine.js +246 -0
- package/dist/lint/knowledge-checks.js +64 -0
- package/dist/lint/named-checks.js +22 -0
- package/dist/lint/output-checks.js +87 -0
- package/dist/lint/output-docs.js +163 -0
- package/dist/lint/parser.js +33 -0
- package/dist/lint/pipeline-change-gate.js +70 -0
- package/dist/lint/policy-import.d.ts +1 -1
- package/dist/lint/policy-import.d.ts.map +1 -1
- package/dist/lint/policy-import.js +62 -0
- package/dist/lint/policy-sandbox.js +86 -0
- package/dist/lint/policy.js +122 -0
- package/dist/lint/post-synth.js +87 -0
- package/dist/lint/presets/relaxed.json +26 -0
- package/dist/lint/presets/strict.json +24 -24
- package/dist/lint/receipt-checks.js +83 -0
- package/dist/lint/rule-loader.d.ts.map +1 -1
- package/dist/lint/rule-loader.js +89 -0
- package/dist/lint/rule-registry.js +86 -0
- package/dist/lint/rule.js +1 -0
- package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-a.component.js +7 -0
- package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-b.component.js +7 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/fail/orphan-lib.component.js +9 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/pass/emr-job.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/pass/jar-lib.component.js +9 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/fail/search-service.component.js +25 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/pass/jar-lib.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/pass/search-service.component.js +21 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/fail/migrator.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/agent-turn.component.js +24 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/migrator.component.js +17 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/orders-table.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/fail/neo4j-cluster.component.js +18 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.js +20 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp005/fail/search-service.component.js +12 -0
- package/dist/lint/rules/__fixtures__/comp/comp005/pass/search-service.component.js +16 -0
- package/dist/lint/rules/__fixtures__/comp/comp006/fail/legacy-tool.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp006/pass/legacy-tool.component.js +12 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/fail/inventory-table.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/fail/orders-table.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/pass/orders-table.component.js +10 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/pass/search-service.component.js +16 -0
- package/dist/lint/rules/comp/comp001-publishes-never-applies.js +69 -0
- package/dist/lint/rules/comp/comp002-dangling-wiring-ref.js +84 -0
- package/dist/lint/rules/comp/comp003-mutating-no-rollback.js +103 -0
- package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.js +70 -0
- package/dist/lint/rules/comp/comp005-capability-kind-is-noun.js +109 -0
- package/dist/lint/rules/comp/comp006-shell-needs-reason.js +49 -0
- package/dist/lint/rules/comp/comp007-composition-sprawl.js +64 -0
- package/dist/lint/rules/comp/index.js +33 -0
- package/dist/lint/rules/comp/support.js +129 -0
- package/dist/lint/rules/composite-scope.js +51 -0
- package/dist/lint/rules/cor017-composite-name-match.js +93 -0
- package/dist/lint/rules/cor018-composite-prefer-lexicon-type.js +136 -0
- package/dist/lint/rules/cor021-env-literal-name.js +100 -0
- package/dist/lint/rules/cor022-receipt-leaf.js +118 -0
- package/dist/lint/rules/cor024-receipt-secret-pointer.js +199 -0
- package/dist/lint/rules/declarable-naming-convention.js +62 -0
- package/dist/lint/rules/evl001-non-literal-expression.js +66 -0
- package/dist/lint/rules/evl002-control-flow-resource.js +69 -0
- package/dist/lint/rules/evl003-dynamic-property-access.js +44 -0
- package/dist/lint/rules/evl004-spread-non-const.js +94 -0
- package/dist/lint/rules/evl005-resource-block-body.js +41 -0
- package/dist/lint/rules/evl007-invalid-siblings.js +105 -0
- package/dist/lint/rules/evl009-composite-no-constant.js +158 -0
- package/dist/lint/rules/evl010-composite-no-transform.js +59 -0
- package/dist/lint/rules/evl011-symbolic-in-template.js +106 -0
- package/dist/lint/rules/export-required.js +115 -0
- package/dist/lint/rules/file-declarable-limit.js +88 -0
- package/dist/lint/rules/flat-declarations.js +62 -0
- package/dist/lint/rules/index.js +90 -0
- package/dist/lint/rules/no-cyclic-declarable-ref.js +138 -0
- package/dist/lint/rules/no-redundant-type-import.js +76 -0
- package/dist/lint/rules/no-redundant-value-cast.js +41 -0
- package/dist/lint/rules/no-string-ref.js +59 -0
- package/dist/lint/rules/no-unused-declarable-import.js +75 -0
- package/dist/lint/rules/no-unused-declarable.js +142 -0
- package/dist/lint/rules/op/index.js +28 -0
- package/dist/lint/rules/op/ops012-activity-contract.js +54 -0
- package/dist/lint/rules/op/ops013-step-output-ref.js +88 -0
- package/dist/lint/rules/op/ops014-converge-rule-refusals.js +114 -0
- package/dist/lint/rules/op/ops015-gate-approval.js +45 -0
- package/dist/lint/rules/op/support.js +11 -0
- package/dist/lint/rules/op/sys010-key-over-plain-http.js +100 -0
- package/dist/lint/rules/property-kind.js +56 -0
- package/dist/lint/rules/single-concern-file.js +71 -0
- package/dist/lint/rules/sys001-no-literal-key.js +60 -0
- package/dist/lint/selectors.js +168 -0
- package/dist/lint/suppressions.js +129 -0
- package/dist/lint/typescript.js +17 -0
- package/dist/live-endpoint.js +113 -0
- package/dist/live-read-session.js +76 -0
- package/dist/lsp/lexicon-providers.js +163 -0
- package/dist/lsp/types.js +5 -0
- package/dist/managed-fields.js +293 -0
- package/dist/mcp/types.js +4 -0
- package/dist/notify-verify.js +0 -1
- package/dist/notify.js +0 -1
- package/dist/notify.schema.json +72 -0
- package/dist/observation.js +266 -0
- package/dist/okf-read.js +134 -0
- package/dist/okf.js +275 -0
- package/dist/op/__fixtures__/decide-stub-backend.js +125 -0
- package/dist/op/activities/activity-contracts.js +313 -0
- package/dist/op/activities/apply.js +582 -0
- package/dist/op/activities/build.js +18 -0
- package/dist/op/activities/change-coverage.js +40 -0
- package/dist/op/activities/change-set.js +64 -0
- package/dist/op/activities/converge.js +492 -0
- package/dist/op/activities/decide.js +211 -0
- package/dist/op/activities/env-teardown.js +110 -0
- package/dist/op/activities/factory.js +591 -0
- package/dist/op/activities/forge-pull-request.js +82 -0
- package/dist/op/activities/gh-host.js +78 -0
- package/dist/op/activities/guard-validate.js +165 -0
- package/dist/op/activities/http-check.js +40 -0
- package/dist/op/activities/index.js +59 -0
- package/dist/op/activities/lexicon-upgrade.js +629 -0
- package/dist/op/activities/lifecycle.js +109 -0
- package/dist/op/activities/pipeline-audit.js +147 -0
- package/dist/op/activities/policy.js +26 -0
- package/dist/op/activities/predict-behaviour.js +341 -0
- package/dist/op/activities/propose-upgrade.js +165 -0
- package/dist/op/activities/reconcile.js +997 -0
- package/dist/op/activities/shell.js +118 -0
- package/dist/op/activities/source-release.js +97 -0
- package/dist/op/activities/source-rollback.js +165 -0
- package/dist/op/activities/teardown.js +17 -0
- package/dist/op/activities/util.js +6 -0
- package/dist/op/activities/wait.js +51 -0
- package/dist/op/activities/work-evidence.js +35 -0
- package/dist/op/activities/workflow-audit.js +133 -0
- package/dist/op/activity-contract-registry.js +106 -0
- package/dist/op/activity-contract.js +232 -0
- package/dist/op/activity-failure.js +31 -0
- package/dist/op/activity-profiles.js +129 -0
- package/dist/op/activity-registry.js +105 -0
- package/dist/op/activity-runtime.js +28 -0
- package/dist/op/builders.js +801 -0
- package/dist/op/change-signal.js +118 -0
- package/dist/op/composites/apply-op.js +151 -0
- package/dist/op/composites/behaviour-op.js +65 -0
- package/dist/op/composites/converge-op.js +141 -0
- package/dist/op/composites/index.js +19 -0
- package/dist/op/composites/lexicon-upgrade-op.js +107 -0
- package/dist/op/composites/pipeline-audit-op.js +50 -0
- package/dist/op/composites/reconcile-op.js +84 -0
- package/dist/op/composites/watch-op.js +69 -0
- package/dist/op/composites/workflow-audit-op.js +57 -0
- package/dist/op/converge-rule.js +205 -0
- package/dist/op/cron.js +146 -0
- package/dist/op/decide-backend.js +181 -0
- package/dist/op/decide-config.js +68 -0
- package/dist/op/decide-read-inputs.js +141 -0
- package/dist/op/discover.d.ts.map +1 -1
- package/dist/op/discover.js +213 -0
- package/dist/op/duration.js +21 -0
- package/dist/op/emulator-freshness.js +80 -0
- package/dist/op/emulator-lifecycle.js +269 -0
- package/dist/op/factory.js +83 -0
- package/dist/op/gate-approval.js +172 -0
- package/dist/op/gate-name.js +86 -0
- package/dist/op/gate-plan-context.js +167 -0
- package/dist/op/gate-point-run.js +67 -0
- package/dist/op/gate-point.js +111 -0
- package/dist/op/gate-resume-plan.js +155 -0
- package/dist/op/gate-resume.js +31 -0
- package/dist/op/gate-review.js +290 -0
- package/dist/op/gate-run-locator.js +85 -0
- package/dist/op/gate-summary.js +100 -0
- package/dist/op/gate-wait.js +56 -0
- package/dist/op/gate.js +449 -0
- package/dist/op/generate-pipeline.js +124 -0
- package/dist/op/index.js +51 -0
- package/dist/op/lifecycle-receipt-store.js +45 -0
- package/dist/op/local-executor.js +1164 -0
- package/dist/op/local-output.js +140 -0
- package/dist/op/op-ir.js +317 -0
- package/dist/op/op-verb-class.js +131 -0
- package/dist/op/op-waves-notify.js +136 -0
- package/dist/op/op-waves-run.js +1657 -0
- package/dist/op/op-waves.js +409 -0
- package/dist/op/operator.js +743 -0
- package/dist/op/receipt-store.js +94 -0
- package/dist/op/resource.js +23 -0
- package/dist/op/run-context.js +28 -0
- package/dist/op/run-live.js +256 -0
- package/dist/op/runtime.js +21 -0
- package/dist/op/runtimes/local.js +195 -0
- package/dist/op/source-archive.js +131 -0
- package/dist/op/step-output-ref.js +397 -0
- package/dist/op/steward-beside.js +169 -0
- package/dist/op/steward-points.js +138 -0
- package/dist/op/steward-turn.js +59 -0
- package/dist/op/steward.js +317 -0
- package/dist/op/types.js +25 -0
- package/dist/op/work-lease-decl.js +81 -0
- package/dist/op/work-lease-run.js +393 -0
- package/dist/override-gate.js +284 -0
- package/dist/owner-chain.js +74 -0
- package/dist/ownership.js +92 -0
- package/dist/params.js +61 -0
- package/dist/plan-summary.js +711 -0
- package/dist/point-decision.js +211 -0
- package/dist/pr-forge.js +810 -0
- package/dist/pr-loop.js +203 -0
- package/dist/project-codegen.js +191 -0
- package/dist/project-root.js +74 -0
- package/dist/project-validation.js +50 -0
- package/dist/provenance.js +157 -0
- package/dist/pseudo-parameter.js +40 -0
- package/dist/reconcile.js +450 -0
- package/dist/resource-attributes.js +33 -0
- package/dist/runtime-adapter.js +77 -0
- package/dist/runtime.js +66 -0
- package/dist/secret-materialization.js +153 -0
- package/dist/secret-provenance.js +250 -0
- package/dist/serializer-walker.js +112 -0
- package/dist/serializer.js +1 -0
- package/dist/sort.js +45 -0
- package/dist/stack-output.js +115 -0
- package/dist/telemetry-attribution.js +149 -0
- package/dist/terraform/__fixtures__/build-graph.js +63 -0
- package/dist/terraform/adopt-state.js +40 -0
- package/dist/terraform/aws-resources.js +384 -0
- package/dist/terraform/bridge.js +204 -0
- package/dist/terraform/carve-provider.js +155 -0
- package/dist/terraform/carve.js +138 -0
- package/dist/terraform/data-source-shape.js +57 -0
- package/dist/terraform/emit-source.js +36 -0
- package/dist/terraform/excise.js +123 -0
- package/dist/terraform/graduate.js +128 -0
- package/dist/terraform/graph.js +435 -0
- package/dist/terraform/hcl2json.js +60 -0
- package/dist/terraform/manifest.js +149 -0
- package/dist/terraform/parse.js +81 -0
- package/dist/terraform/providers/aws.js +146 -0
- package/dist/terraform/providers/gcp.js +294 -0
- package/dist/terraform/providers/index.js +17 -0
- package/dist/terraform/providers/kubernetes.js +253 -0
- package/dist/terraform/score.js +151 -0
- package/dist/terraform/state.js +67 -0
- package/dist/terraform/tier-map.js +74 -0
- package/dist/terraform/types.js +13 -0
- package/dist/terraform/unified-diff.js +132 -0
- package/dist/testing.js +295 -0
- package/dist/toml-emit.js +153 -0
- package/dist/toml-parse.js +355 -0
- package/dist/toml-utils.js +60 -0
- package/dist/toml.js +428 -0
- package/dist/ts-loader.d.ts +46 -0
- package/dist/ts-loader.d.ts.map +1 -0
- package/dist/ts-loader.js +103 -0
- package/dist/types.js +1 -0
- package/dist/utils.js +61 -0
- package/dist/validation.js +20 -0
- package/dist/vendor/js-yaml-load.js +1662 -0
- package/dist/workspace/__fixtures__/contract-repo.js +103 -0
- package/dist/workspace/__fixtures__/decide-workspace.js +112 -0
- package/dist/workspace/__fixtures__/sessions.js +91 -0
- package/dist/workspace/__fixtures__/two-member-workspace.js +34 -0
- package/dist/workspace/agent-cli.js +99 -0
- package/dist/workspace/agent.schema.json +390 -0
- package/dist/workspace/answers-ledger.js +89 -0
- package/dist/workspace/box-cli.js +142 -0
- package/dist/workspace/box-factory-write.js +196 -0
- package/dist/workspace/box-factory-write.schema.json +342 -0
- package/dist/workspace/box-factory.js +88 -0
- package/dist/workspace/box-intent.js +126 -0
- package/dist/workspace/box-isolation.js +169 -0
- package/dist/workspace/box-listing-write.schema.json +204 -0
- package/dist/workspace/box-listing.js +298 -0
- package/dist/workspace/box-publish.js +352 -0
- package/dist/workspace/box-publish.schema.json +498 -0
- package/dist/workspace/box-services.js +39 -0
- package/dist/workspace/broker-protocol.js +359 -0
- package/dist/workspace/broker-protocol.schema.json +228 -0
- package/dist/workspace/change-set.schema.json +460 -0
- package/dist/workspace/changes-cli.js +56 -0
- package/dist/workspace/changes.js +446 -0
- package/dist/workspace/changes.schema.json +642 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-fly-site.js +198 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-live-names.js +155 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-rollback.js +214 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-inputs.js +180 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-policy.js +99 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit.js +847 -0
- package/dist/workspace/chant-migrations.js +113 -0
- package/dist/workspace/check.schema.json +433 -0
- package/dist/workspace/checks/box-isolation.js +62 -0
- package/dist/workspace/checks/boxes.js +491 -0
- package/dist/workspace/checks/diagrams.js +104 -0
- package/dist/workspace/checks/generated.js +419 -0
- package/dist/workspace/checks/ledgers.js +212 -0
- package/dist/workspace/checks/links.js +191 -0
- package/dist/workspace/checks/live.js +100 -0
- package/dist/workspace/checks/pipelines.js +188 -0
- package/dist/workspace/checks/records.js +169 -0
- package/dist/workspace/checks.js +426 -0
- package/dist/workspace/ci-green-cli.js +125 -0
- package/dist/workspace/ci-green-forge.js +83 -0
- package/dist/workspace/ci-green-workflow.js +199 -0
- package/dist/workspace/ci-green.js +325 -0
- package/dist/workspace/ci-last-green.schema.json +158 -0
- package/dist/workspace/compose-graph.js +235 -0
- package/dist/workspace/compose-reports.js +146 -0
- package/dist/workspace/composites.js +264 -0
- package/dist/workspace/composites.schema.json +617 -0
- package/dist/workspace/conformance/__fixture__/app/package.json +7 -0
- package/dist/workspace/conformance/__fixture__/app/src/server.mjs +29 -0
- package/dist/workspace/conformance/__fixture__/decisions/decision.kind.mjs +54 -0
- package/dist/workspace/conformance/__fixture__/decisions/decision.schema.json +512 -0
- package/dist/workspace/conformance/__fixture__/decisions/fix-001-how-the-app-is-deployed.md +40 -0
- package/dist/workspace/conformance/__fixture__/delivery/chant.config.ts +7 -0
- package/dist/workspace/conformance/__fixture__/delivery/lexicon/index.ts +26 -0
- package/dist/workspace/conformance/__fixture__/delivery/package.json +7 -0
- package/dist/workspace/conformance/__fixture__/delivery/src/app.component.ts +14 -0
- package/dist/workspace/conformance/__fixture__/delivery/src/app.ts +4 -0
- package/dist/workspace/conformance/__fixtures__/reference-broker.js +205 -0
- package/dist/workspace/conformance/__writer_fixture__/answers/answer.kind.mjs +32 -0
- package/dist/workspace/conformance/__writer_fixture__/answers/answer.schema.json +135 -0
- package/dist/workspace/conformance/__writer_fixture__/contracts/contract.kind.mjs +37 -0
- package/dist/workspace/conformance/__writer_fixture__/contracts/contract.schema.json +213 -0
- package/dist/workspace/conformance/__writer_fixture__/decisions/points.json +228 -0
- package/dist/workspace/conformance/__writer_fixture__/drivers/driver.kind.mjs +15 -0
- package/dist/workspace/conformance/__writer_fixture__/drivers/driver.schema.json +38 -0
- package/dist/workspace/conformance/__writer_fixture__/sessions/session.kind.mjs +54 -0
- package/dist/workspace/conformance/__writer_fixture__/sessions/session.schema.json +289 -0
- package/dist/workspace/conformance/__writer_fixture__/work/W-001-the-writer-suite-works-this-item.md +25 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.kind.mjs +60 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.schema.json +603 -0
- package/dist/workspace/conformance/broker.js +736 -0
- package/dist/workspace/conformance/index.js +673 -0
- package/dist/workspace/conformance/vitest.js +108 -0
- package/dist/workspace/conformance/writer.js +1080 -0
- package/dist/workspace/decide.js +879 -0
- package/dist/workspace/decision-points.schema.json +135 -135
- package/dist/workspace/declaration-write-cli.js +74 -0
- package/dist/workspace/declaration-write.js +238 -0
- package/dist/workspace/declaration.js +938 -0
- package/dist/workspace/declaration.schema.json +1413 -1413
- package/dist/workspace/declared-kinds.js +106 -0
- package/dist/workspace/environments.js +164 -0
- package/dist/workspace/evidence.schema.json +279 -0
- package/dist/workspace/export-cli.js +185 -0
- package/dist/workspace/export.js +499 -0
- package/dist/workspace/factory-rules.js +175 -0
- package/dist/workspace/generated-files.js +92 -0
- package/dist/workspace/glob.js +45 -0
- package/dist/workspace/graph-cache.js +352 -0
- package/dist/workspace/graph-cli.js +348 -0
- package/dist/workspace/graph.schema.json +1338 -0
- package/dist/workspace/identity-gate-rule.js +75 -0
- package/dist/workspace/identity.js +126 -0
- package/dist/workspace/import.js +283 -0
- package/dist/workspace/init.js +620 -0
- package/dist/workspace/intent-cli.js +263 -0
- package/dist/workspace/intent-joins.js +201 -0
- package/dist/workspace/intent-record.js +352 -0
- package/dist/workspace/intent-record.schema.json +864 -0
- package/dist/workspace/intent.js +1582 -0
- package/dist/workspace/intent.schema.json +2420 -0
- package/dist/workspace/json-edit.js +221 -0
- package/dist/workspace/jsonc.js +235 -0
- package/dist/workspace/kind-readers.js +103 -0
- package/dist/workspace/kinds.js +587 -0
- package/dist/workspace/lexicon-symbols.js +112 -0
- package/dist/workspace/lineage-adopt-cli.js +102 -0
- package/dist/workspace/lineage-adopt.js +360 -0
- package/dist/workspace/lineage-check.js +282 -0
- package/dist/workspace/lineage-cli.js +121 -0
- package/dist/workspace/lineage-hash-index.js +284 -0
- package/dist/workspace/lineage-init.js +507 -0
- package/dist/workspace/lineage-lock.js +387 -0
- package/dist/workspace/lineage-merge.js +45 -0
- package/dist/workspace/lineage-migrations.d.ts.map +1 -1
- package/dist/workspace/lineage-migrations.js +329 -0
- package/dist/workspace/lineage-provenance.js +36 -0
- package/dist/workspace/lineage-update.js +138 -0
- package/dist/workspace/lineage-upgrade-cli.js +131 -0
- package/dist/workspace/lineage-upgrade.js +889 -0
- package/dist/workspace/lineage-vendor.js +171 -0
- package/dist/workspace/lineage-version.js +128 -0
- package/dist/workspace/lineage-versions.js +275 -0
- package/dist/workspace/links.js +330 -0
- package/dist/workspace/ls-generated.js +95 -0
- package/dist/workspace/ls.js +277 -0
- package/dist/workspace/ls.schema.json +333 -0
- package/dist/workspace/member-commands.js +508 -0
- package/dist/workspace/member-handles.js +216 -0
- package/dist/workspace/member-pipeline.js +258 -0
- package/dist/workspace/member-run.js +117 -0
- package/dist/workspace/member-write.schema.json +193 -0
- package/dist/workspace/nested-graph.js +156 -0
- package/dist/workspace/nesting.js +38 -0
- package/dist/workspace/patch.js +301 -0
- package/dist/workspace/patch.schema.json +321 -0
- package/dist/workspace/pin-cli.js +55 -0
- package/dist/workspace/pin-integrity.js +100 -0
- package/dist/workspace/plan-summary.schema.json +155 -0
- package/dist/workspace/point-answer.schema.json +129 -129
- package/dist/workspace/points-cli.js +291 -0
- package/dist/workspace/points-write.schema.json +660 -0
- package/dist/workspace/points.js +521 -0
- package/dist/workspace/points.schema.json +916 -0
- package/dist/workspace/pr-report.schema.json +108 -0
- package/dist/workspace/principal-classes.js +245 -0
- package/dist/workspace/reason-codes.js +326 -0
- package/dist/workspace/record-assets.js +151 -0
- package/dist/workspace/record-decided.js +105 -0
- package/dist/workspace/record-sessions.js +96 -0
- package/dist/workspace/record-source.js +114 -0
- package/dist/workspace/records-amend.schema.json +284 -0
- package/dist/workspace/records-checkout.js +76 -0
- package/dist/workspace/records-cli.js +707 -0
- package/dist/workspace/records-close.js +116 -0
- package/dist/workspace/records-close.schema.json +278 -0
- package/dist/workspace/records-new.schema.json +202 -0
- package/dist/workspace/records-review.schema.json +367 -0
- package/dist/workspace/records-since.js +317 -0
- package/dist/workspace/records-since.schema.json +218 -0
- package/dist/workspace/records-write.js +1229 -0
- package/dist/workspace/records.js +1345 -0
- package/dist/workspace/records.schema.json +604 -0
- package/dist/workspace/reference-kinds/app/package.json +10 -0
- package/dist/workspace/reference-kinds/app/workspace-kinds.json +45 -0
- package/dist/workspace/returns.js +303 -0
- package/dist/workspace/root-refusal.js +75 -0
- package/dist/workspace/run-statement.schema.json +622 -0
- package/dist/workspace/runs-cli.js +584 -0
- package/dist/workspace/runs-write.schema.json +994 -0
- package/dist/workspace/runs.js +708 -0
- package/dist/workspace/runs.schema.json +1257 -0
- package/dist/workspace/runtimes.js +76 -0
- package/dist/workspace/session-kinds.js +83 -0
- package/dist/workspace/signers.schema.json +206 -0
- package/dist/workspace/source-block.js +125 -0
- package/dist/workspace/squash.js +177 -0
- package/dist/workspace/status-gates.js +162 -0
- package/dist/workspace/status-stewards.js +330 -0
- package/dist/workspace/status.js +514 -0
- package/dist/workspace/status.schema.json +998 -0
- package/dist/workspace/steward-index.js +191 -0
- package/dist/workspace/symbols.js +188 -0
- package/dist/workspace/template-manifest.js +227 -0
- package/dist/workspace/template-pins.js +115 -0
- package/dist/workspace/trailer-joins.js +65 -0
- package/dist/workspace/trailers.js +111 -0
- package/dist/workspace/tree.js +136 -0
- package/dist/workspace/trust/attestor.js +63 -0
- package/dist/workspace/trust/dsse.js +108 -0
- package/dist/workspace/trust/evidence-cli.js +175 -0
- package/dist/workspace/trust/evidence.js +161 -0
- package/dist/workspace/trust/gate-seal.js +226 -0
- package/dist/workspace/trust/policy.js +190 -0
- package/dist/workspace/trust/provenance.js +180 -0
- package/dist/workspace/trust/rotation.js +298 -0
- package/dist/workspace/trust/run-commits.js +101 -0
- package/dist/workspace/trust/run-statement.js +182 -0
- package/dist/workspace/trust/seal.js +272 -0
- package/dist/workspace/trust/signers-cli.js +152 -0
- package/dist/workspace/trust/ssh-commit.js +178 -0
- package/dist/workspace/trust/test-repo.js +118 -0
- package/dist/workspace/trust/trust-files.js +193 -0
- package/dist/workspace/trust/verify-cli.js +63 -0
- package/dist/workspace/trust/verify.js +192 -0
- package/dist/workspace/which-chant.js +141 -0
- package/dist/workspace/wip-cli.js +95 -0
- package/dist/workspace/wip-write.schema.json +504 -0
- package/dist/workspace/wip.js +631 -0
- package/dist/workspace/wip.schema.json +334 -0
- package/dist/workspace/work-cli.js +448 -0
- package/dist/workspace/work-evidence.js +122 -0
- package/dist/workspace/work-evidence.schema.json +222 -0
- package/dist/workspace/work-history.schema.json +421 -0
- package/dist/workspace/work-lease.schema.json +246 -0
- package/dist/workspace/work-size.js +77 -0
- package/dist/workspace/work.js +283 -0
- package/dist/workspace/workspace-kinds.schema.json +259 -259
- package/dist/workspace/workspace-principals.schema.json +53 -53
- package/dist/workspace/write-lock-cli.js +105 -0
- package/dist/workspace/write-lock.js +424 -0
- package/dist/workspace/write-lock.schema.json +172 -0
- package/dist/workspace/write-scope.js +484 -0
- package/dist/yaml.js +459 -0
- package/package.json +2 -2
- package/src/cli/commands/check-lexicon-plugin.ts +2 -0
- package/src/cli/commands/lint.ts +3 -0
- package/src/cli/commands/migrate.ts +2 -0
- package/src/cli/compiled-cli.e2e.test.ts +165 -0
- package/src/cli/main.ts +121 -27
- package/src/cli/mcp/workspace-tools.ts +1 -1
- package/src/codegen/pinned-upgrade.ts +2 -0
- package/src/components/discover.ts +2 -0
- package/src/components/sandbox/driver.ts +3 -1
- package/src/config-import.ts +3 -0
- package/src/discovery/fold-import.ts +23 -14
- package/src/discovery/import.ts +2 -0
- package/src/discovery/sandbox/driver.ts +3 -1
- package/src/lexicon-module.ts +3 -0
- package/src/lint/config.ts +1 -1
- package/src/lint/discover.ts +28 -8
- package/src/lint/policy-import.ts +4 -1
- package/src/lint/rule-loader.ts +2 -0
- package/src/op/discover.ts +3 -0
- package/src/ts-loader.test.ts +23 -0
- package/src/ts-loader.ts +122 -0
- package/src/workspace/chant-migrations/chud-lexicon-exit.ts +1 -1
- package/src/workspace/declaration.ts +1 -1
- package/src/workspace/kinds.ts +1 -1
- package/src/workspace/lineage-migrations.ts +2 -0
- package/src/workspace/points.ts +1 -1
- package/src/workspace/principal-classes.ts +1 -1
package/dist/toml.js
ADDED
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight TOML parser (#446).
|
|
3
|
+
*
|
|
4
|
+
* Written for the audit engine's spike: is there a pure, dependency-free way
|
|
5
|
+
* to parse a config format the engine can't read today? TOML fits — it is a
|
|
6
|
+
* fully-specified, static (no macros/interpolation/imports) grammar, so a
|
|
7
|
+
* hand-rolled tokenizer + recursive-descent parser covers it without any
|
|
8
|
+
* runtime surface a Workers sandbox would reject (no `eval`, no native
|
|
9
|
+
* modules, no filesystem/network).
|
|
10
|
+
*
|
|
11
|
+
* Covers the subset of TOML v1.0 that real-world deploy configs
|
|
12
|
+
* (`wrangler.toml`, `Cargo.toml`, `pyproject.toml`, `netlify.toml`) actually
|
|
13
|
+
* use: basic/literal strings (single-line), integers, floats, booleans,
|
|
14
|
+
* arrays (including multi-line), inline tables, dotted keys, standard tables
|
|
15
|
+
* (`[a.b]`), and arrays of tables (`[[a.b]]`).
|
|
16
|
+
*
|
|
17
|
+
* Deliberately NOT a full spec implementation:
|
|
18
|
+
* - Multi-line strings (`"""..."""`, `'''...'''`) are read as a single
|
|
19
|
+
* opaque string body (no line-ending backslash trimming); good enough to
|
|
20
|
+
* not crash, not spec-perfect for continuation whitespace.
|
|
21
|
+
* - Dates/times are returned as their raw source text (a string), not a
|
|
22
|
+
* `Date` — none of the checks built on this parser need calendar math.
|
|
23
|
+
* - A dotted-key path element must be a bare word or a plain quoted string;
|
|
24
|
+
* mixing exotic key shapes mid-path is not supported.
|
|
25
|
+
* These gaps only matter for exotic TOML; they don't affect the shapes the
|
|
26
|
+
* audit checks read (`[vars]`, `[[kv_namespaces]]`, `[env.NAME]`, …).
|
|
27
|
+
*/
|
|
28
|
+
export class TomlParseError extends Error {
|
|
29
|
+
}
|
|
30
|
+
const STOP_CHARS = new Set([" ", "\t", "\r", "\n", "[", "]", "{", "}", "=", ",", ".", "#", '"', "'"]);
|
|
31
|
+
/** Same stop set, minus `.` — used for numeric-looking tokens so `3.14` lexes whole. */
|
|
32
|
+
const NUM_STOP_CHARS = new Set([...STOP_CHARS].filter((ch) => ch !== "."));
|
|
33
|
+
/** Read a quoted string (basic `"..."`/`'...'` or multi-line `"""..."""`/`'''...'''`) starting at `i` (the opening quote). */
|
|
34
|
+
function readString(s, i) {
|
|
35
|
+
const q = s[i];
|
|
36
|
+
const literal = q === "'";
|
|
37
|
+
const triple = s[i + 1] === q && s[i + 2] === q;
|
|
38
|
+
const quoteLen = triple ? 3 : 1;
|
|
39
|
+
let j = i + quoteLen;
|
|
40
|
+
// A newline immediately after an opening multi-line delimiter is trimmed (TOML spec).
|
|
41
|
+
if (triple && s[j] === "\r")
|
|
42
|
+
j++;
|
|
43
|
+
if (triple && s[j] === "\n")
|
|
44
|
+
j++;
|
|
45
|
+
let out = "";
|
|
46
|
+
while (true) {
|
|
47
|
+
if (j >= s.length)
|
|
48
|
+
throw new TomlParseError(`Unterminated string starting at offset ${i}`);
|
|
49
|
+
if (s.startsWith(q.repeat(quoteLen), j)) {
|
|
50
|
+
return { value: out, next: j + quoteLen };
|
|
51
|
+
}
|
|
52
|
+
const c = s[j];
|
|
53
|
+
if (!triple && (c === "\n" || c === "\r")) {
|
|
54
|
+
throw new TomlParseError(`Unterminated single-line string starting at offset ${i}`);
|
|
55
|
+
}
|
|
56
|
+
if (literal) {
|
|
57
|
+
out += c;
|
|
58
|
+
j++;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (c === "\\") {
|
|
62
|
+
const esc = s[j + 1];
|
|
63
|
+
if (triple && (esc === "\n" || esc === "\r" || esc === " " || esc === "\t")) {
|
|
64
|
+
// Line-ending backslash: consume the backslash, trailing whitespace, the
|
|
65
|
+
// newline, and all leading whitespace on the next line (folds away).
|
|
66
|
+
let k = j + 1;
|
|
67
|
+
while (s[k] === " " || s[k] === "\t")
|
|
68
|
+
k++;
|
|
69
|
+
if (s[k] === "\r")
|
|
70
|
+
k++;
|
|
71
|
+
if (s[k] === "\n")
|
|
72
|
+
k++;
|
|
73
|
+
while (s[k] === " " || s[k] === "\t" || s[k] === "\n" || s[k] === "\r")
|
|
74
|
+
k++;
|
|
75
|
+
j = k;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const simple = { n: "\n", t: "\t", r: "\r", b: "\b", f: "\f", '"': '"', "\\": "\\" };
|
|
79
|
+
if (esc !== undefined && esc in simple) {
|
|
80
|
+
out += simple[esc];
|
|
81
|
+
j += 2;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (esc === "u" || esc === "U") {
|
|
85
|
+
const width = esc === "u" ? 4 : 8;
|
|
86
|
+
const hex = s.slice(j + 2, j + 2 + width);
|
|
87
|
+
if (hex.length < width || !/^[0-9a-fA-F]+$/.test(hex)) {
|
|
88
|
+
throw new TomlParseError(`Invalid unicode escape at offset ${j}`);
|
|
89
|
+
}
|
|
90
|
+
out += String.fromCodePoint(parseInt(hex, 16));
|
|
91
|
+
j += 2 + width;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
throw new TomlParseError(`Invalid escape \\${esc} at offset ${j}`);
|
|
95
|
+
}
|
|
96
|
+
out += c;
|
|
97
|
+
j++;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function lex(input) {
|
|
101
|
+
const s = input.replace(/\r\n/g, "\n");
|
|
102
|
+
const tokens = [];
|
|
103
|
+
let i = 0;
|
|
104
|
+
let atLineStart = true;
|
|
105
|
+
const n = s.length;
|
|
106
|
+
while (i < n) {
|
|
107
|
+
const c = s[i];
|
|
108
|
+
if (c === "\n") {
|
|
109
|
+
tokens.push({ t: "nl" });
|
|
110
|
+
i++;
|
|
111
|
+
atLineStart = true;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (c === " " || c === "\t") {
|
|
115
|
+
i++;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (c === "#") {
|
|
119
|
+
while (i < n && s[i] !== "\n")
|
|
120
|
+
i++;
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
if (c === "[") {
|
|
124
|
+
if (atLineStart && s[i + 1] === "[") {
|
|
125
|
+
tokens.push({ t: "[[" });
|
|
126
|
+
i += 2;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
tokens.push({ t: "[" });
|
|
130
|
+
i += 1;
|
|
131
|
+
}
|
|
132
|
+
atLineStart = false;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
if (c === "]") {
|
|
136
|
+
if (s[i + 1] === "]" && tokens.length > 0 && hasUnmatchedArrayTableOpen(tokens)) {
|
|
137
|
+
tokens.push({ t: "]]" });
|
|
138
|
+
i += 2;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
tokens.push({ t: "]" });
|
|
142
|
+
i += 1;
|
|
143
|
+
}
|
|
144
|
+
atLineStart = false;
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
if (c === "{") {
|
|
148
|
+
tokens.push({ t: "{" });
|
|
149
|
+
i++;
|
|
150
|
+
atLineStart = false;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (c === "}") {
|
|
154
|
+
tokens.push({ t: "}" });
|
|
155
|
+
i++;
|
|
156
|
+
atLineStart = false;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
if (c === "=") {
|
|
160
|
+
tokens.push({ t: "=" });
|
|
161
|
+
i++;
|
|
162
|
+
atLineStart = false;
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
if (c === ",") {
|
|
166
|
+
tokens.push({ t: "," });
|
|
167
|
+
i++;
|
|
168
|
+
atLineStart = false;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
if (c === ".") {
|
|
172
|
+
tokens.push({ t: "." });
|
|
173
|
+
i++;
|
|
174
|
+
atLineStart = false;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (c === '"' || c === "'") {
|
|
178
|
+
const { value, next } = readString(s, i);
|
|
179
|
+
tokens.push({ t: "str", v: value });
|
|
180
|
+
i = next;
|
|
181
|
+
atLineStart = false;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
// A dotted key (`a.b`) uses `.` as a segment separator, so a plain
|
|
185
|
+
// bareword stops there. A value that looks numeric (starts with a digit,
|
|
186
|
+
// or +/- followed by one) needs `.` to stay IN the token so floats
|
|
187
|
+
// (`3.14`) and dates (`2024-01-01`, already dash-based) lex as one piece.
|
|
188
|
+
const numericStart = /[0-9]/.test(c) || ((c === "+" || c === "-") && /[0-9]/.test(s[i + 1] ?? ""));
|
|
189
|
+
const stopSet = numericStart ? NUM_STOP_CHARS : STOP_CHARS;
|
|
190
|
+
let j = i;
|
|
191
|
+
while (j < n && !stopSet.has(s[j]))
|
|
192
|
+
j++;
|
|
193
|
+
if (j === i)
|
|
194
|
+
throw new TomlParseError(`Unexpected character ${JSON.stringify(c)} at offset ${i}`);
|
|
195
|
+
tokens.push({ t: "bare", v: s.slice(i, j) });
|
|
196
|
+
i = j;
|
|
197
|
+
atLineStart = false;
|
|
198
|
+
}
|
|
199
|
+
tokens.push({ t: "eof" });
|
|
200
|
+
return tokens;
|
|
201
|
+
}
|
|
202
|
+
/** Is the most recent unmatched `[[` in `tokens` still open (no `]]` seen since)? Used only to decide whether a trailing `]]` closes an array-of-tables header vs. two array closes. */
|
|
203
|
+
function hasUnmatchedArrayTableOpen(tokens) {
|
|
204
|
+
let depth = 0;
|
|
205
|
+
for (const tok of tokens) {
|
|
206
|
+
if (tok.t === "[[")
|
|
207
|
+
depth++;
|
|
208
|
+
else if (tok.t === "]]")
|
|
209
|
+
depth--;
|
|
210
|
+
}
|
|
211
|
+
return depth > 0;
|
|
212
|
+
}
|
|
213
|
+
class Cursor {
|
|
214
|
+
constructor(tokens, pos = 0) {
|
|
215
|
+
this.tokens = tokens;
|
|
216
|
+
this.pos = pos;
|
|
217
|
+
}
|
|
218
|
+
peek() { return this.tokens[this.pos]; }
|
|
219
|
+
next() { return this.tokens[this.pos++]; }
|
|
220
|
+
skipNl() { while (this.peek().t === "nl")
|
|
221
|
+
this.pos++; }
|
|
222
|
+
expect(t) {
|
|
223
|
+
const tok = this.next();
|
|
224
|
+
if (tok.t !== t)
|
|
225
|
+
throw new TomlParseError(`Expected ${t}, got ${tok.t}`);
|
|
226
|
+
return tok;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/** Read a dotted key path (`a.b.c`) — bare words or quoted strings joined by `.`. */
|
|
230
|
+
function readPath(c) {
|
|
231
|
+
const parts = [];
|
|
232
|
+
while (true) {
|
|
233
|
+
const tok = c.next();
|
|
234
|
+
if (tok.t === "bare")
|
|
235
|
+
parts.push(tok.v);
|
|
236
|
+
else if (tok.t === "str")
|
|
237
|
+
parts.push(tok.v);
|
|
238
|
+
else
|
|
239
|
+
throw new TomlParseError(`Expected a key segment, got ${tok.t}`);
|
|
240
|
+
if (c.peek().t === ".") {
|
|
241
|
+
c.next();
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
break;
|
|
245
|
+
}
|
|
246
|
+
return parts;
|
|
247
|
+
}
|
|
248
|
+
const INT_RE = /^[+-]?(0|[1-9](_?\d)*)$/;
|
|
249
|
+
const HEX_RE = /^0x[0-9A-Fa-f](_?[0-9A-Fa-f])*$/;
|
|
250
|
+
const OCT_RE = /^0o[0-7](_?[0-7])*$/;
|
|
251
|
+
const BIN_RE = /^0b[01](_?[01])*$/;
|
|
252
|
+
const FLOAT_RE = /^[+-]?(\d(_?\d)*)(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/;
|
|
253
|
+
/** Coerce a bare value token to boolean / number / raw string (dates fall through as strings). */
|
|
254
|
+
function coerceBare(raw) {
|
|
255
|
+
if (raw === "true")
|
|
256
|
+
return true;
|
|
257
|
+
if (raw === "false")
|
|
258
|
+
return false;
|
|
259
|
+
if (raw === "nan" || raw === "+nan" || raw === "-nan")
|
|
260
|
+
return NaN;
|
|
261
|
+
if (raw === "inf" || raw === "+inf")
|
|
262
|
+
return Infinity;
|
|
263
|
+
if (raw === "-inf")
|
|
264
|
+
return -Infinity;
|
|
265
|
+
if (HEX_RE.test(raw))
|
|
266
|
+
return parseInt(raw.replace(/_/g, ""), 16);
|
|
267
|
+
if (OCT_RE.test(raw))
|
|
268
|
+
return parseInt(raw.replace(/_/g, "").slice(2), 8);
|
|
269
|
+
if (BIN_RE.test(raw))
|
|
270
|
+
return parseInt(raw.replace(/_/g, "").slice(2), 2);
|
|
271
|
+
if (INT_RE.test(raw))
|
|
272
|
+
return parseInt(raw.replace(/_/g, ""), 10);
|
|
273
|
+
if (FLOAT_RE.test(raw) && /[.eE]/.test(raw))
|
|
274
|
+
return parseFloat(raw.replace(/_/g, ""));
|
|
275
|
+
// Not a recognized scalar shape — likely a date/time or something exotic.
|
|
276
|
+
// Kept as its raw source text rather than failing the whole document.
|
|
277
|
+
return raw;
|
|
278
|
+
}
|
|
279
|
+
function parseValue(c) {
|
|
280
|
+
const tok = c.peek();
|
|
281
|
+
if (tok.t === "str") {
|
|
282
|
+
c.next();
|
|
283
|
+
return tok.v;
|
|
284
|
+
}
|
|
285
|
+
if (tok.t === "bare") {
|
|
286
|
+
c.next();
|
|
287
|
+
return coerceBare(tok.v);
|
|
288
|
+
}
|
|
289
|
+
if (tok.t === "[")
|
|
290
|
+
return parseArray(c);
|
|
291
|
+
if (tok.t === "{")
|
|
292
|
+
return parseInlineTable(c);
|
|
293
|
+
throw new TomlParseError(`Unexpected token ${tok.t} where a value was expected`);
|
|
294
|
+
}
|
|
295
|
+
function parseArray(c) {
|
|
296
|
+
c.expect("[");
|
|
297
|
+
const out = [];
|
|
298
|
+
c.skipNl();
|
|
299
|
+
while (c.peek().t !== "]") {
|
|
300
|
+
out.push(parseValue(c));
|
|
301
|
+
c.skipNl();
|
|
302
|
+
if (c.peek().t === ",") {
|
|
303
|
+
c.next();
|
|
304
|
+
c.skipNl();
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
c.skipNl();
|
|
310
|
+
c.expect("]");
|
|
311
|
+
return out;
|
|
312
|
+
}
|
|
313
|
+
function assignDotted(target, path, value) {
|
|
314
|
+
let cur = target;
|
|
315
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
316
|
+
const seg = path[i];
|
|
317
|
+
const existing = cur[seg];
|
|
318
|
+
if (existing && typeof existing === "object" && !Array.isArray(existing)) {
|
|
319
|
+
cur = existing;
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
const created = {};
|
|
323
|
+
cur[seg] = created;
|
|
324
|
+
cur = created;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
cur[path[path.length - 1]] = value;
|
|
328
|
+
}
|
|
329
|
+
function parseInlineTable(c) {
|
|
330
|
+
c.expect("{");
|
|
331
|
+
const out = {};
|
|
332
|
+
// Inline tables are single-line per spec, but stray newlines are tolerated
|
|
333
|
+
// here rather than rejected — the audit must never crash on odd input.
|
|
334
|
+
c.skipNl();
|
|
335
|
+
while (c.peek().t !== "}") {
|
|
336
|
+
const path = readPath(c);
|
|
337
|
+
c.expect("=");
|
|
338
|
+
const value = parseValue(c);
|
|
339
|
+
assignDotted(out, path, value);
|
|
340
|
+
c.skipNl();
|
|
341
|
+
if (c.peek().t === ",") {
|
|
342
|
+
c.next();
|
|
343
|
+
c.skipNl();
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
c.skipNl();
|
|
349
|
+
c.expect("}");
|
|
350
|
+
return out;
|
|
351
|
+
}
|
|
352
|
+
/** Navigate/create a nested table (or the last element of a nested array-of-tables) at `path`, per TOML header semantics. */
|
|
353
|
+
function navigateTable(root, path) {
|
|
354
|
+
let cur = root;
|
|
355
|
+
for (const seg of path) {
|
|
356
|
+
const existing = cur[seg];
|
|
357
|
+
if (existing === undefined) {
|
|
358
|
+
const created = {};
|
|
359
|
+
cur[seg] = created;
|
|
360
|
+
cur = created;
|
|
361
|
+
}
|
|
362
|
+
else if (Array.isArray(existing)) {
|
|
363
|
+
const last = existing[existing.length - 1];
|
|
364
|
+
if (!last || typeof last !== "object")
|
|
365
|
+
throw new TomlParseError(`Cannot navigate into array segment "${seg}"`);
|
|
366
|
+
cur = last;
|
|
367
|
+
}
|
|
368
|
+
else if (typeof existing === "object") {
|
|
369
|
+
cur = existing;
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
throw new TomlParseError(`Key "${seg}" is already a scalar value`);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
return cur;
|
|
376
|
+
}
|
|
377
|
+
function navigateArrayTable(root, path) {
|
|
378
|
+
const parent = navigateTable(root, path.slice(0, -1));
|
|
379
|
+
const last = path[path.length - 1];
|
|
380
|
+
const existing = parent[last];
|
|
381
|
+
const arr = Array.isArray(existing) ? existing : [];
|
|
382
|
+
if (!Array.isArray(existing))
|
|
383
|
+
parent[last] = arr;
|
|
384
|
+
const entry = {};
|
|
385
|
+
arr.push(entry);
|
|
386
|
+
return entry;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Parse a TOML document into a plain nested object. Throws {@link TomlParseError}
|
|
390
|
+
* on malformed input — callers that scan arbitrary repo files should wrap the
|
|
391
|
+
* call in a try/catch (matching the rest of the audit engine's tolerance for
|
|
392
|
+
* unparseable content).
|
|
393
|
+
*/
|
|
394
|
+
export function parseTOML(input) {
|
|
395
|
+
const tokens = lex(input);
|
|
396
|
+
const c = new Cursor(tokens);
|
|
397
|
+
const root = {};
|
|
398
|
+
let current = root;
|
|
399
|
+
c.skipNl();
|
|
400
|
+
while (c.peek().t !== "eof") {
|
|
401
|
+
const tok = c.peek();
|
|
402
|
+
if (tok.t === "[") {
|
|
403
|
+
c.next();
|
|
404
|
+
const path = readPath(c);
|
|
405
|
+
c.expect("]");
|
|
406
|
+
current = navigateTable(root, path);
|
|
407
|
+
}
|
|
408
|
+
else if (tok.t === "[[") {
|
|
409
|
+
c.next();
|
|
410
|
+
const path = readPath(c);
|
|
411
|
+
c.expect("]]");
|
|
412
|
+
current = navigateArrayTable(root, path);
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
const path = readPath(c);
|
|
416
|
+
c.expect("=");
|
|
417
|
+
const value = parseValue(c);
|
|
418
|
+
assignDotted(current, path, value);
|
|
419
|
+
}
|
|
420
|
+
const end = c.next();
|
|
421
|
+
if (end.t === "eof")
|
|
422
|
+
break;
|
|
423
|
+
if (end.t !== "nl")
|
|
424
|
+
throw new TomlParseError(`Expected end of line, got ${end.t}`);
|
|
425
|
+
c.skipNl();
|
|
426
|
+
}
|
|
427
|
+
return root;
|
|
428
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #3878 — TypeScript loading for the compiled CLI.
|
|
3
|
+
*
|
|
4
|
+
* An installed chant runs `dist/cli/main.js` with plain `node`, so chant's own
|
|
5
|
+
* modules need no loader. Everything else chant imports at run time still can
|
|
6
|
+
* be TypeScript: a project's `chant.config.ts` and source files, `*.op.ts`,
|
|
7
|
+
* policies and lint rules, and the lexicon packages, which ship `src/*.ts`.
|
|
8
|
+
* {@link ensureTypeScriptLoader} registers tsx for those, the first time one of
|
|
9
|
+
* them is about to be imported, so a command that imports none (`--version`,
|
|
10
|
+
* `run wave` on a project with no `chant.config.ts`) never loads tsx at all.
|
|
11
|
+
*
|
|
12
|
+
* {@link installCompiledCli} also points every resolution of chant's own
|
|
13
|
+
* source at the compiled file next to it. A lexicon or project file imports
|
|
14
|
+
* `@intentius/chant`, and the package exports resolve that to `src/*.ts`;
|
|
15
|
+
* without the redirect that import would load a second copy of core,
|
|
16
|
+
* transpiled, beside the one the CLI runs, with its own registries and
|
|
17
|
+
* classes.
|
|
18
|
+
*
|
|
19
|
+
* Run from source (the repository's `bin/chant` through tsx, vitest), this
|
|
20
|
+
* module is itself TypeScript, the TypeScript loader is already there, and
|
|
21
|
+
* both functions do nothing.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Called once by the CLI's `main()`. Compiled, it records that TypeScript
|
|
25
|
+
* loads lazily and installs the `src/*.ts` to `dist/*.js` redirect; from
|
|
26
|
+
* source it does nothing.
|
|
27
|
+
*/
|
|
28
|
+
export declare function installCompiledCli(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Register tsx for the ESM and CommonJS loaders, once, before importing
|
|
31
|
+
* anything that may be TypeScript. A no-op from source, where tsx (or vitest)
|
|
32
|
+
* is already loading chant itself. Returns whether the compiled CLI's tsx
|
|
33
|
+
* registration covers this process, so a caller that registers its own
|
|
34
|
+
* CommonJS hook from source knows not to add a second one.
|
|
35
|
+
*/
|
|
36
|
+
export declare function ensureTypeScriptLoader(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The source directory for a module of chant's own: `dirname` of `moduleUrl`
|
|
39
|
+
* from source, and the matching directory under `<package>/src` when the
|
|
40
|
+
* module runs from `<package>/dist`. The sandbox drivers hand chant's own
|
|
41
|
+
* modules to esbuild by path, and must name the TypeScript source the
|
|
42
|
+
* project's own `@intentius/chant/*` imports resolve to. String arithmetic
|
|
43
|
+
* only: no filesystem access, so it is safe inside a sandboxed child.
|
|
44
|
+
*/
|
|
45
|
+
export declare function chantSourceDir(moduleUrl: string): string;
|
|
46
|
+
//# sourceMappingURL=ts-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ts-loader.d.ts","sourceRoot":"","sources":["../src/ts-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAoCH;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAwBzC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAShD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOxD"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #3878 — TypeScript loading for the compiled CLI.
|
|
3
|
+
*
|
|
4
|
+
* An installed chant runs `dist/cli/main.js` with plain `node`, so chant's own
|
|
5
|
+
* modules need no loader. Everything else chant imports at run time still can
|
|
6
|
+
* be TypeScript: a project's `chant.config.ts` and source files, `*.op.ts`,
|
|
7
|
+
* policies and lint rules, and the lexicon packages, which ship `src/*.ts`.
|
|
8
|
+
* {@link ensureTypeScriptLoader} registers tsx for those, the first time one of
|
|
9
|
+
* them is about to be imported, so a command that imports none (`--version`,
|
|
10
|
+
* `run wave` on a project with no `chant.config.ts`) never loads tsx at all.
|
|
11
|
+
*
|
|
12
|
+
* {@link installCompiledCli} also points every resolution of chant's own
|
|
13
|
+
* source at the compiled file next to it. A lexicon or project file imports
|
|
14
|
+
* `@intentius/chant`, and the package exports resolve that to `src/*.ts`;
|
|
15
|
+
* without the redirect that import would load a second copy of core,
|
|
16
|
+
* transpiled, beside the one the CLI runs, with its own registries and
|
|
17
|
+
* classes.
|
|
18
|
+
*
|
|
19
|
+
* Run from source (the repository's `bin/chant` through tsx, vitest), this
|
|
20
|
+
* module is itself TypeScript, the TypeScript loader is already there, and
|
|
21
|
+
* both functions do nothing.
|
|
22
|
+
*/
|
|
23
|
+
import { existsSync } from "node:fs";
|
|
24
|
+
import * as nodeModule from "node:module";
|
|
25
|
+
import { dirname, join, sep } from "node:path";
|
|
26
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
27
|
+
const { createRequire, registerHooks } = nodeModule;
|
|
28
|
+
const STATE = Symbol.for("chant.compiledCli");
|
|
29
|
+
function compiledState() {
|
|
30
|
+
return globalThis[STATE];
|
|
31
|
+
}
|
|
32
|
+
/** True when this module runs as compiled JavaScript, from `<package>/dist`. */
|
|
33
|
+
function runsCompiled() {
|
|
34
|
+
return import.meta.url.endsWith(".js");
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Called once by the CLI's `main()`. Compiled, it records that TypeScript
|
|
38
|
+
* loads lazily and installs the `src/*.ts` to `dist/*.js` redirect; from
|
|
39
|
+
* source it does nothing.
|
|
40
|
+
*/
|
|
41
|
+
export function installCompiledCli() {
|
|
42
|
+
if (!runsCompiled() || compiledState())
|
|
43
|
+
return;
|
|
44
|
+
globalThis[STATE] = { tsx: false };
|
|
45
|
+
const distDir = dirname(fileURLToPath(import.meta.url));
|
|
46
|
+
const srcUrl = pathToFileURL(join(dirname(distDir), "src") + sep).href;
|
|
47
|
+
const distUrl = pathToFileURL(distDir + sep).href;
|
|
48
|
+
const compiled = new Map();
|
|
49
|
+
registerHooks({
|
|
50
|
+
resolve(specifier, context, nextResolve) {
|
|
51
|
+
const result = nextResolve(specifier, context);
|
|
52
|
+
if (!result.url.startsWith(srcUrl))
|
|
53
|
+
return result;
|
|
54
|
+
const path = result.url.slice(srcUrl.length).replace(/[?#].*$/, "");
|
|
55
|
+
if (!path.endsWith(".ts") || path.endsWith(".d.ts"))
|
|
56
|
+
return result;
|
|
57
|
+
let target = compiled.get(path);
|
|
58
|
+
if (target === undefined) {
|
|
59
|
+
const js = distUrl + path.slice(0, -3) + ".js";
|
|
60
|
+
target = existsSync(fileURLToPath(js)) ? js : null;
|
|
61
|
+
compiled.set(path, target);
|
|
62
|
+
}
|
|
63
|
+
return target === null ? result : { ...result, url: target, format: "module" };
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Register tsx for the ESM and CommonJS loaders, once, before importing
|
|
69
|
+
* anything that may be TypeScript. A no-op from source, where tsx (or vitest)
|
|
70
|
+
* is already loading chant itself. Returns whether the compiled CLI's tsx
|
|
71
|
+
* registration covers this process, so a caller that registers its own
|
|
72
|
+
* CommonJS hook from source knows not to add a second one.
|
|
73
|
+
*/
|
|
74
|
+
export function ensureTypeScriptLoader() {
|
|
75
|
+
const state = compiledState();
|
|
76
|
+
if (!state)
|
|
77
|
+
return false;
|
|
78
|
+
if (state.tsx)
|
|
79
|
+
return true;
|
|
80
|
+
state.tsx = true;
|
|
81
|
+
const require = createRequire(import.meta.url);
|
|
82
|
+
require("tsx/cjs/api").register();
|
|
83
|
+
require("tsx/esm/api").register();
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The source directory for a module of chant's own: `dirname` of `moduleUrl`
|
|
88
|
+
* from source, and the matching directory under `<package>/src` when the
|
|
89
|
+
* module runs from `<package>/dist`. The sandbox drivers hand chant's own
|
|
90
|
+
* modules to esbuild by path, and must name the TypeScript source the
|
|
91
|
+
* project's own `@intentius/chant/*` imports resolve to. String arithmetic
|
|
92
|
+
* only: no filesystem access, so it is safe inside a sandboxed child.
|
|
93
|
+
*/
|
|
94
|
+
export function chantSourceDir(moduleUrl) {
|
|
95
|
+
const dir = dirname(fileURLToPath(moduleUrl));
|
|
96
|
+
if (!moduleUrl.endsWith(".js"))
|
|
97
|
+
return dir;
|
|
98
|
+
const marker = `${sep}dist${sep}`;
|
|
99
|
+
const at = (dir + sep).lastIndexOf(marker);
|
|
100
|
+
if (at < 0)
|
|
101
|
+
return dir;
|
|
102
|
+
return dir.slice(0, at) + `${sep}src` + dir.slice(at + marker.length - 1);
|
|
103
|
+
}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { AttrRef } from "./attrref.js";
|
|
2
|
+
/**
|
|
3
|
+
* Symbol for storing logical names on Declarable entities
|
|
4
|
+
*/
|
|
5
|
+
export const LOGICAL_NAME_SYMBOL = Symbol.for("chant.logicalName");
|
|
6
|
+
/**
|
|
7
|
+
* Duck-type check for AttrRef that survives the dual-package hazard.
|
|
8
|
+
* When npm installs separate copies of @intentius/chant (one for the CLI,
|
|
9
|
+
* one for the lexicon), `instanceof AttrRef` fails across package boundaries.
|
|
10
|
+
*/
|
|
11
|
+
export function isAttrRefLike(value) {
|
|
12
|
+
if (value instanceof AttrRef)
|
|
13
|
+
return true;
|
|
14
|
+
return (typeof value === "object" &&
|
|
15
|
+
value !== null &&
|
|
16
|
+
"parent" in value &&
|
|
17
|
+
"attribute" in value &&
|
|
18
|
+
"_setLogicalName" in value &&
|
|
19
|
+
typeof value.parent === "object" &&
|
|
20
|
+
typeof value.attribute === "string");
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* JSON.stringify replacer that sorts object keys for deterministic output.
|
|
24
|
+
*/
|
|
25
|
+
export function sortedJsonReplacer(_key, value) {
|
|
26
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
27
|
+
return Object.fromEntries(Object.entries(value).sort(([a], [b]) => a.localeCompare(b)));
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get all property names that have AttrRef values
|
|
33
|
+
* @param entity - The declarable entity to inspect
|
|
34
|
+
* @returns Array of property names with AttrRef values
|
|
35
|
+
*/
|
|
36
|
+
export function getAttributes(entity) {
|
|
37
|
+
const attributes = [];
|
|
38
|
+
const obj = entity;
|
|
39
|
+
for (const key in obj) {
|
|
40
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
41
|
+
const value = obj[key];
|
|
42
|
+
if (isAttrRefLike(value)) {
|
|
43
|
+
attributes.push(key);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return attributes;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get the logical name stored on a Declarable entity
|
|
51
|
+
* @param entity - The declarable entity
|
|
52
|
+
* @returns The logical name
|
|
53
|
+
* @throws {Error} If logical name is not set
|
|
54
|
+
*/
|
|
55
|
+
export function getLogicalName(entity) {
|
|
56
|
+
const logicalName = entity[LOGICAL_NAME_SYMBOL];
|
|
57
|
+
if (typeof logicalName !== "string") {
|
|
58
|
+
throw new Error(`Logical name not set on entity of type "${entity.entityType}"`);
|
|
59
|
+
}
|
|
60
|
+
return logicalName;
|
|
61
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation system for declarable entities
|
|
3
|
+
*
|
|
4
|
+
* Provides opt-in, non-blocking validation hooks that can be used
|
|
5
|
+
* to validate entities during build or discovery phases.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Validate an entity against a set of validation rules
|
|
9
|
+
*
|
|
10
|
+
* This function is opt-in and non-blocking - it returns results
|
|
11
|
+
* but does not throw errors. Callers can decide how to handle
|
|
12
|
+
* validation failures.
|
|
13
|
+
*
|
|
14
|
+
* @param entity - The declarable entity to validate
|
|
15
|
+
* @param rules - Array of validation rules to apply
|
|
16
|
+
* @returns Array of validation results, one per rule
|
|
17
|
+
*/
|
|
18
|
+
export function validate(entity, rules) {
|
|
19
|
+
return rules.map((rule) => rule.validate(entity));
|
|
20
|
+
}
|