@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,93 @@
|
|
|
1
|
+
import { join, resolve } from "node:path";
|
|
2
|
+
import { params as currentBuildParams } from "../../params.js";
|
|
3
|
+
import { sendFunctionSource } from "../../discovery/sandbox/driver.js";
|
|
4
|
+
import { chantSourceDir } from "../../ts-loader.js";
|
|
5
|
+
/**
|
|
6
|
+
* chant #1051 — generates the source of the "driver" module that runs INSIDE
|
|
7
|
+
* the sandboxed child for component discovery. Mirrors `../../discovery/
|
|
8
|
+
* sandbox/driver.ts`'s shape (chant #1045 Phase 2) but is materially simpler:
|
|
9
|
+
* a `Component` is plain JSON (no `AttrRef` cross-references to resolve), so
|
|
10
|
+
* there is no equivalent of `resolveAttrRefs`/`encodeEntitySet` here — the
|
|
11
|
+
* driver hands back its collected components with a bare, structural
|
|
12
|
+
* `JSON.stringify` over the IPC channel (see `./run.ts`'s `send`).
|
|
13
|
+
*
|
|
14
|
+
* Like the entity driver, every file is imported via a LITERAL string
|
|
15
|
+
* specifier dynamic `import()` — not a variable — so esbuild's bundler can
|
|
16
|
+
* trace and inline it into ONE self-contained module graph (see `../../
|
|
17
|
+
* discovery/sandbox/driver.ts`'s doc for why that's verified to lower to a
|
|
18
|
+
* lazily-invoked local module initializer, not a runtime resolution). That
|
|
19
|
+
* single module graph is what lets `collectComponents`'s duplicate-name check
|
|
20
|
+
* (`../discover.ts`) run over real, live object identity — "the same
|
|
21
|
+
* component re-exported under two bindings" only detects correctly when both
|
|
22
|
+
* bindings really do resolve to the same in-memory object, which requires
|
|
23
|
+
* every `*.component.ts` file for one discovery call to share one module
|
|
24
|
+
* cache inside a single child (see `../discover.ts`'s `collectComponents` doc
|
|
25
|
+
* for the full identity-correctness argument).
|
|
26
|
+
*/
|
|
27
|
+
// #3878: the TypeScript source, also when this module runs compiled from dist/.
|
|
28
|
+
const HERE = chantSourceDir(import.meta.url);
|
|
29
|
+
const COMPONENTS_DIR = join(HERE, "..");
|
|
30
|
+
/** Absolute paths to chant's OWN trusted modules the generated driver imports — resolved relative to THIS file's own location on disk, exactly like `../../discovery/sandbox/driver.ts` does for the entity path (works whether chant runs from the monorepo or a consumer's `node_modules`). */
|
|
31
|
+
const DISCOVER_MODULE = join(COMPONENTS_DIR, "discover.ts");
|
|
32
|
+
const CHILD_ERRORS_MODULE = join(COMPONENTS_DIR, "..", "discovery", "sandbox", "child-errors.ts");
|
|
33
|
+
// chant #1108 — same re-binding the entity driver does (see ../../discovery/
|
|
34
|
+
// sandbox/driver.ts's PARAMS_MODULE doc): the child's copy of the shared
|
|
35
|
+
// `params` object starts empty, so a `*.component.ts` file importing
|
|
36
|
+
// `@intentius/chant/params` would otherwise see `{}` under sandboxed
|
|
37
|
+
// discovery no matter what the parent resolved.
|
|
38
|
+
const PARAMS_MODULE = join(COMPONENTS_DIR, "..", "params.ts");
|
|
39
|
+
/** Escape a value for embedding as a JS/TS source-level literal. */
|
|
40
|
+
function lit(value) {
|
|
41
|
+
return JSON.stringify(value);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Generate the component driver module's full TypeScript source. Written to
|
|
45
|
+
* a tmp file and bundled (`../../discovery/sandbox/bundle.ts`'s `bundleDriver`
|
|
46
|
+
* — generic, reused as-is) before being handed to a sandboxed child — never
|
|
47
|
+
* executed directly by the parent process.
|
|
48
|
+
*/
|
|
49
|
+
export function generateComponentDriverSource(options) {
|
|
50
|
+
const { files } = options;
|
|
51
|
+
const lines = [
|
|
52
|
+
`import { collectComponents } from ${lit(DISCOVER_MODULE)};`,
|
|
53
|
+
`import { classifyChildError } from ${lit(CHILD_ERRORS_MODULE)};`,
|
|
54
|
+
`import { setBuildParams } from ${lit(PARAMS_MODULE)};`,
|
|
55
|
+
`import { writeSync } from "node:fs";`,
|
|
56
|
+
``,
|
|
57
|
+
// chant #1108 — snapshot of the parent's resolved build-time parameter
|
|
58
|
+
// values (scalars only), bound before any component file is imported.
|
|
59
|
+
`setBuildParams(${lit({ ...currentBuildParams })});`,
|
|
60
|
+
``,
|
|
61
|
+
// chant#2461 — awaits the send and fails loudly if it cannot be delivered.
|
|
62
|
+
...sendFunctionSource(),
|
|
63
|
+
``,
|
|
64
|
+
`async function main() {`,
|
|
65
|
+
` const modules = [];`,
|
|
66
|
+
` const errors = [];`,
|
|
67
|
+
];
|
|
68
|
+
for (const file of files) {
|
|
69
|
+
// `file` (as discovered by `findComponentFiles`, `../discover.ts`) may be
|
|
70
|
+
// relative to whatever cwd-relative `path` `discoverComponents` was
|
|
71
|
+
// called with — `chant list --components examples/foo` never resolves
|
|
72
|
+
// its argument before discovery, matching the unsandboxed import loop's
|
|
73
|
+
// own tolerance for that (`pathToFileURL(resolve(filePath)).href`, see
|
|
74
|
+
// `../discover.ts`'s `importAndCollectComponents`). A bare relative
|
|
75
|
+
// string hits Node's *bare-specifier* (package) resolution instead of
|
|
76
|
+
// being treated as a path, so only the import target — never the `file`
|
|
77
|
+
// key `collectComponents` dedupes and reports by — is resolved to an
|
|
78
|
+
// absolute filesystem path here, in THIS (parent) process, before being
|
|
79
|
+
// embedded as a literal in the bundled child (mirrors `../../discovery/
|
|
80
|
+
// sandbox/driver.ts`'s own literal-specifier `import()`s, which are
|
|
81
|
+
// likewise plain absolute paths, not `file://` URLs — kept that way
|
|
82
|
+
// rather than converting to a URL since esbuild's bundler is only
|
|
83
|
+
// verified to trace/inline a literal filesystem-path specifier).
|
|
84
|
+
const absoluteFile = resolve(file);
|
|
85
|
+
lines.push(` try {`, ` const mod = await import(${lit(absoluteFile)});`, ` modules.push({ file: ${lit(file)}, exports: mod });`, ` } catch (err) {`, ` errors.push(classifyChildError(${lit(file)}, err).toJSON());`, ` }`);
|
|
86
|
+
}
|
|
87
|
+
lines.push(``, ` const collected = collectComponents(modules);`, ` for (const err of collected.errors) errors.push(err.toJSON());`, ``,
|
|
88
|
+
// Plain JSON: no entity-wire codec needed (see this module's doc + chant
|
|
89
|
+
// #1051's issue — `projectToJson`, ../component.ts, already proves the
|
|
90
|
+
// bare JSON.parse(JSON.stringify()) round-trip for a Component).
|
|
91
|
+
` const components = [];`, ` for (const [name, discovered] of collected.components) {`, ` components.push({ name, component: discovered.component, exportName: discovered.exportName, filePath: discovered.filePath });`, ` }`, ` await send({ components, errors });`, `}`, ``, `main().catch((err) =>`, ` send({ components: [], errors: [classifyChildError("", err).toJSON()], fatal: true }),`, `);`);
|
|
92
|
+
return lines.join("\n");
|
|
93
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { fork } from "node:child_process";
|
|
2
|
+
import { realpathSync, rmSync } from "node:fs";
|
|
3
|
+
import { resolve } from "node:path";
|
|
4
|
+
import { bundleDriver } from "../../discovery/sandbox/bundle.js";
|
|
5
|
+
import { classifyChildError } from "../../discovery/sandbox/child-errors.js";
|
|
6
|
+
import { settleOnExitAfterChannelDrains } from "../../discovery/sandbox/fork.js";
|
|
7
|
+
import { DiscoveryError } from "../../errors.js";
|
|
8
|
+
import { generateComponentDriverSource } from "./driver.js";
|
|
9
|
+
/** How long to wait for the sandboxed child to report back before treating it as hung and killing it. Generous, matching the entity path's own budget. */
|
|
10
|
+
const CHILD_TIMEOUT_MS = 120000;
|
|
11
|
+
function isChildResponse(value) {
|
|
12
|
+
return typeof value === "object" && value !== null && "components" in value && "errors" in value;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Import `files` (every discovered `*.component.ts` file) together, isolated,
|
|
16
|
+
* in one sandboxed child process, and collect their `Component`-shaped
|
|
17
|
+
* exports — including the duplicate-name check, which runs INSIDE the child
|
|
18
|
+
* over live objects before anything is serialized (`../discover.ts`'s
|
|
19
|
+
* `collectComponents`, bundled into the driver).
|
|
20
|
+
*
|
|
21
|
+
* @param files - Absolute paths to every discovered `*.component.ts` file.
|
|
22
|
+
* @param buildRoot - The directory `discoverComponents` was pointed at — used
|
|
23
|
+
* to compute the project-directory read allowance, mirroring `../../
|
|
24
|
+
* discovery/sandbox/run.ts`.
|
|
25
|
+
*/
|
|
26
|
+
export async function discoverComponentsSandboxed(files, buildRoot) {
|
|
27
|
+
if (files.length === 0) {
|
|
28
|
+
return { components: new Map(), errors: [], bundleMs: 0, bundleBytes: 0 };
|
|
29
|
+
}
|
|
30
|
+
const driverSource = generateComponentDriverSource({ files });
|
|
31
|
+
const { bundlePath, bundleDir, externalReadPaths, durationMs, bytes } = await bundleDriver(driverSource);
|
|
32
|
+
try {
|
|
33
|
+
let projectRealpath;
|
|
34
|
+
try {
|
|
35
|
+
projectRealpath = realpathSync(resolve(buildRoot));
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
projectRealpath = resolve(buildRoot);
|
|
39
|
+
}
|
|
40
|
+
const response = await runChildProcess(bundlePath, bundleDir, projectRealpath, externalReadPaths);
|
|
41
|
+
const errors = (response.errors ?? []).map((e) => new DiscoveryError(e.file, e.message, e.type));
|
|
42
|
+
if (response.fatal) {
|
|
43
|
+
return { components: new Map(), errors, bundleMs: durationMs, bundleBytes: bytes };
|
|
44
|
+
}
|
|
45
|
+
const components = new Map();
|
|
46
|
+
for (const entry of response.components ?? []) {
|
|
47
|
+
components.set(entry.name, {
|
|
48
|
+
component: entry.component,
|
|
49
|
+
exportName: entry.exportName,
|
|
50
|
+
filePath: entry.filePath,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return { components, errors, bundleMs: durationMs, bundleBytes: bytes };
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
return {
|
|
57
|
+
components: new Map(),
|
|
58
|
+
errors: [classifyChildError("", err, "import")],
|
|
59
|
+
bundleMs: durationMs,
|
|
60
|
+
bundleBytes: bytes,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
rmSync(bundleDir, { recursive: true, force: true });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Fork the bundle under `--permission`, with a scrubbed environment, and resolve with its one IPC message (or reject on crash/timeout/fork error). Mirrors `../../discovery/sandbox/run.ts`'s `runChildProcess`. */
|
|
68
|
+
function runChildProcess(bundlePath, bundleDir, projectRealpath, externalReadPaths) {
|
|
69
|
+
return new Promise((resolvePromise, reject) => {
|
|
70
|
+
const readAllowances = [bundleDir, projectRealpath, ...externalReadPaths].map((p) => `--allow-fs-read=${p}`);
|
|
71
|
+
const child = fork(bundlePath, [], {
|
|
72
|
+
execArgv: ["--permission", ...readAllowances],
|
|
73
|
+
// chant #1051 — Node's Permission Model does not gate `process.env`;
|
|
74
|
+
// scrubbing it here is the only way to keep the ambient environment out
|
|
75
|
+
// of untrusted project source's reach, exactly as the entity path does.
|
|
76
|
+
env: { PATH: process.env.PATH ?? "" },
|
|
77
|
+
stdio: ["ignore", "pipe", "pipe", "ipc"],
|
|
78
|
+
});
|
|
79
|
+
let settled = false;
|
|
80
|
+
let stderrBuf = "";
|
|
81
|
+
const timeout = setTimeout(() => {
|
|
82
|
+
if (settled)
|
|
83
|
+
return;
|
|
84
|
+
settled = true;
|
|
85
|
+
child.kill();
|
|
86
|
+
reject(new Error(`sandboxed component discovery timed out after ${CHILD_TIMEOUT_MS}ms`));
|
|
87
|
+
}, CHILD_TIMEOUT_MS);
|
|
88
|
+
child.stderr?.on("data", (chunk) => {
|
|
89
|
+
stderrBuf += chunk.toString();
|
|
90
|
+
});
|
|
91
|
+
child.on("message", (msg) => {
|
|
92
|
+
if (settled || !isChildResponse(msg))
|
|
93
|
+
return;
|
|
94
|
+
settled = true;
|
|
95
|
+
clearTimeout(timeout);
|
|
96
|
+
resolvePromise(msg);
|
|
97
|
+
});
|
|
98
|
+
child.on("error", (err) => {
|
|
99
|
+
if (settled)
|
|
100
|
+
return;
|
|
101
|
+
settled = true;
|
|
102
|
+
clearTimeout(timeout);
|
|
103
|
+
reject(err);
|
|
104
|
+
});
|
|
105
|
+
// chant#2461 — a payload can still be in the IPC socket when the exit is
|
|
106
|
+
// handled; see settleOnExitAfterChannelDrains.
|
|
107
|
+
settleOnExitAfterChannelDrains(child, (code, signal) => {
|
|
108
|
+
if (settled)
|
|
109
|
+
return;
|
|
110
|
+
settled = true;
|
|
111
|
+
clearTimeout(timeout);
|
|
112
|
+
reject(new Error(`sandboxed component discovery child exited before reporting results (code ${code}, signal ${signal})${stderrBuf.trim() ? `: ${stderrBuf.trim()}` : ""}`));
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The starter verb set (epic #551, #554/#557/#558), wrapped as a
|
|
3
|
+
* `CapabilityPlugin` (#559) — the built-in, always-loaded plugin that
|
|
4
|
+
* carries every Phase 1 capability forward under the Phase 2 plugin
|
|
5
|
+
* contract with **no behavior change**.
|
|
6
|
+
*
|
|
7
|
+
* Migration path from Phase 1 to Phase 2: Phase 1 (`createCapabilityRegistry`,
|
|
8
|
+
* ./registry.ts) constructed a `CapabilityRegistry` by registering each
|
|
9
|
+
* starter verb directly. Phase 2 introduces `CapabilityPlugin` as the
|
|
10
|
+
* discoverable, typed package contract (./capability-plugin.ts) that
|
|
11
|
+
* mirrors how lexicons are packaged (../lexicon.ts). Rather than rewrite the
|
|
12
|
+
* starter verbs, this module packages the *exact same* verb list as one
|
|
13
|
+
* `CapabilityPlugin` named "starter" — so:
|
|
14
|
+
*
|
|
15
|
+
* - `createCapabilityRegistry()` (./registry.ts) now builds its registry by
|
|
16
|
+
* registering `starterCapabilityPlugin.capabilities()` instead of calling
|
|
17
|
+
* `registry.register(...)` once per verb inline. Same kinds, same
|
|
18
|
+
* instances, same order, same resulting registry — verified by
|
|
19
|
+
* ./registry.test.ts, unchanged.
|
|
20
|
+
* - `buildCapabilityRegistry()` (./capability-plugin-loader.ts), the new
|
|
21
|
+
* Phase 2 entry point, always loads this plugin first, then layers any
|
|
22
|
+
* additional third-party capability plugins on top by `kind`.
|
|
23
|
+
* - The driver (./driver.ts) and every pilot (./pilots/*.pilot.ts) consume
|
|
24
|
+
* only a `CapabilityRegistry` instance and never construct one directly
|
|
25
|
+
* from verb modules, so neither needed to change for this migration —
|
|
26
|
+
* the compatibility guarantee #559 asks for.
|
|
27
|
+
*/
|
|
28
|
+
import { dockerBuildCapability, zipPackageCapability, jvmBuildCapability, generateSbomCapability, signCapability, attestProvenanceCapability, verifyCapability, scanVulnerabilitiesCapability, vulnGateCapability, waitClusterHealthyCapability, waitEndpointCapability, healthGateCapability, shellCapability, ensureSecretCapability, wranglerDeployCapability, wranglerVersionsPromoteCapability, r2SyncCapability, } from "./verbs/index.js";
|
|
29
|
+
import { ownPackageVersion } from "./capability-plugin.js";
|
|
30
|
+
/**
|
|
31
|
+
* Every `kind` in the starter verb set, grouped by family, per epic #551 and
|
|
32
|
+
* docs/components/capabilities.mdx. Source of truth (moved here from
|
|
33
|
+
* ./registry.ts in #559 to avoid a module cycle: ./registry.ts's
|
|
34
|
+
* `createCapabilityRegistry` depends on `starterCapabilityPlugin`, so this
|
|
35
|
+
* plugin module cannot depend back on ./registry.ts). Re-exported from
|
|
36
|
+
* ./registry.ts unchanged for existing importers.
|
|
37
|
+
*/
|
|
38
|
+
export const STARTER_VERB_FAMILIES = {
|
|
39
|
+
build: ["docker-build", "zip-package", "jvm-build"],
|
|
40
|
+
// `extract-config-bom` parses a synthesized CloudFormation template, so it
|
|
41
|
+
// moved to the aws lexicon (#684) alongside the other AWS leaves; core's sbom
|
|
42
|
+
// family keeps only the agnostic, artifact-type-keyed `generate-sbom`.
|
|
43
|
+
sbom: ["generate-sbom"],
|
|
44
|
+
supplyChainSecurity: ["sign", "attest-provenance", "verify"],
|
|
45
|
+
supplyChainPolicy: ["scan-vulnerabilities", "vuln-gate"],
|
|
46
|
+
// Only the *agnostic* wait/verify verbs are in the starter set; the
|
|
47
|
+
// cloud-specific waits (`wait-for-stack`/`wait-steady-state`/`wait-job`) are
|
|
48
|
+
// contributed by the relevant lexicon (aws) — see docs/components/cloud-boundary.
|
|
49
|
+
waitVerify: ["wait-cluster-healthy", "wait-endpoint", "health-gate"],
|
|
50
|
+
// generated-once secret materialization (#1829, epic #1365): read-then-write,
|
|
51
|
+
// present means done; the k8s store adapter is #1830.
|
|
52
|
+
secrets: ["ensure-secret"],
|
|
53
|
+
escapeHatch: ["shell"],
|
|
54
|
+
// The Cloudflare Workers apply leaves (#1293, epic #1296) — placed in core
|
|
55
|
+
// rather than a cloudflare lexicon (decided explicitly, see ./verbs/wrangler.ts's
|
|
56
|
+
// module doc): the epic cedes the Workers plane to `wrangler` entirely, and
|
|
57
|
+
// there is no cloudflare lexicon for these three verbs to live in. Revisit
|
|
58
|
+
// if/when the zone-plane lexicon (#1294) lands.
|
|
59
|
+
cloudflare: ["wrangler-deploy", "wrangler-versions-promote", "r2-sync"],
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Every starter-set verb, in the same registration order Phase 1's
|
|
63
|
+
* `createCapabilityRegistry` used. Listed individually (not as a shared
|
|
64
|
+
* array literal) for the same reason Phase 1 registered them individually:
|
|
65
|
+
* each capability's own `In`/`Out` generics must be inferred from its own
|
|
66
|
+
* type, not widened to a lossy common supertype.
|
|
67
|
+
*/
|
|
68
|
+
function starterCapabilities() {
|
|
69
|
+
return [
|
|
70
|
+
dockerBuildCapability,
|
|
71
|
+
zipPackageCapability,
|
|
72
|
+
jvmBuildCapability,
|
|
73
|
+
generateSbomCapability,
|
|
74
|
+
signCapability,
|
|
75
|
+
attestProvenanceCapability,
|
|
76
|
+
verifyCapability,
|
|
77
|
+
scanVulnerabilitiesCapability,
|
|
78
|
+
vulnGateCapability,
|
|
79
|
+
waitClusterHealthyCapability,
|
|
80
|
+
waitEndpointCapability,
|
|
81
|
+
healthGateCapability,
|
|
82
|
+
ensureSecretCapability,
|
|
83
|
+
shellCapability,
|
|
84
|
+
wranglerDeployCapability,
|
|
85
|
+
wranglerVersionsPromoteCapability,
|
|
86
|
+
r2SyncCapability,
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The built-in capability plugin carrying the entire Phase 1 starter verb
|
|
91
|
+
* set forward under the Phase 2 contract. Always loaded first by
|
|
92
|
+
* `buildCapabilityRegistry` (./capability-plugin-loader.ts).
|
|
93
|
+
*/
|
|
94
|
+
export const starterCapabilityPlugin = {
|
|
95
|
+
name: "starter",
|
|
96
|
+
// The core package's own version (#1505) — lockstep releases bump it, so a
|
|
97
|
+
// literal here would go stale every `just release`. A getter, so the
|
|
98
|
+
// package.json read happens on first access rather than at import time.
|
|
99
|
+
get version() {
|
|
100
|
+
return ownPackageVersion(import.meta.url);
|
|
101
|
+
},
|
|
102
|
+
capabilities: starterCapabilities,
|
|
103
|
+
families: () => STARTER_VERB_FAMILIES,
|
|
104
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `MockCloudExecutor` — an in-memory fake of the *agnostic* `CloudExecutor`
|
|
3
|
+
* (../cloud-executor.ts) for tests: the `docker` build/push client and the
|
|
4
|
+
* Neo4j bolt probe, the two clients core still owns. No live docker, ever, in
|
|
5
|
+
* a test run — every method records its call and returns a canned result.
|
|
6
|
+
*
|
|
7
|
+
* The AWS clients' mock moved to the aws lexicon alongside their
|
|
8
|
+
* implementations (`@intentius/chant-lexicon-aws/components`).
|
|
9
|
+
*/
|
|
10
|
+
/** Build a fresh mock agnostic `CloudExecutor`. Every method is deterministic and synchronous-fast — no real polling delay. */
|
|
11
|
+
export function createMockCloudExecutor(options = {}) {
|
|
12
|
+
const calls = [];
|
|
13
|
+
const record = (client, method, args) => calls.push({ client, method, args });
|
|
14
|
+
const clusters = new Map(Object.entries(options.clusters ?? {}).map(([k, v]) => [k, v.healthyCount ?? Number.MAX_SAFE_INTEGER]));
|
|
15
|
+
const docker = {
|
|
16
|
+
async build(args) {
|
|
17
|
+
record("docker", "build", args);
|
|
18
|
+
if (options.failDocker)
|
|
19
|
+
throw new Error(`docker build failed for ${args.context}`);
|
|
20
|
+
return { digest: `sha256:${fakeDigest("build", args.context, args.tag)}` };
|
|
21
|
+
},
|
|
22
|
+
async save(args) {
|
|
23
|
+
record("docker", "save", args);
|
|
24
|
+
},
|
|
25
|
+
async load(args) {
|
|
26
|
+
record("docker", "load", args);
|
|
27
|
+
return { digest: `sha256:${fakeDigest("load", args.inFile)}` };
|
|
28
|
+
},
|
|
29
|
+
async tag(args) {
|
|
30
|
+
record("docker", "tag", args);
|
|
31
|
+
},
|
|
32
|
+
async push(args) {
|
|
33
|
+
record("docker", "push", args);
|
|
34
|
+
if (options.failDocker)
|
|
35
|
+
throw new Error(`docker push failed for ${args.image}`);
|
|
36
|
+
return { digest: `sha256:${fakeDigest("push", args.image)}` };
|
|
37
|
+
},
|
|
38
|
+
async remoteDigest(image) {
|
|
39
|
+
record("docker", "remoteDigest", image);
|
|
40
|
+
return `sha256:${fakeDigest("remote", image)}`;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
const neo4j = {
|
|
44
|
+
async probe(args) {
|
|
45
|
+
record("neo4j", "probe", args);
|
|
46
|
+
const endpoints = args.cluster
|
|
47
|
+
.split(",")
|
|
48
|
+
.map((s) => s.trim())
|
|
49
|
+
.filter(Boolean);
|
|
50
|
+
const healthy = clusters.get(args.cluster) ?? endpoints.length;
|
|
51
|
+
return { healthyCount: Math.min(healthy, endpoints.length), total: endpoints.length };
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
executor: { docker, neo4j },
|
|
56
|
+
calls,
|
|
57
|
+
setClusterHealth: (cluster, healthyCount) => clusters.set(cluster, healthyCount),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** Deterministic fake digest suffix derived from its inputs — stable across calls with the same args, distinct otherwise. */
|
|
61
|
+
function fakeDigest(...parts) {
|
|
62
|
+
let hash = 0;
|
|
63
|
+
const input = parts.join("|");
|
|
64
|
+
for (let i = 0; i < input.length; i++) {
|
|
65
|
+
hash = (hash * 31 + input.charCodeAt(i)) | 0;
|
|
66
|
+
}
|
|
67
|
+
return Math.abs(hash).toString(16).padStart(8, "0").repeat(4).slice(0, 64);
|
|
68
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `MockProcessRunner` — an in-memory fake of `ProcessRunner`
|
|
3
|
+
* (../process-runner.ts) for tests. No live `syft`/`buildx`/
|
|
4
|
+
* `cyclonedx-maven`/`cdxgen`/`oras`, no child process spawned at all: every
|
|
5
|
+
* call is recorded, and `run`/`available` return scripted results — the same
|
|
6
|
+
* convention `../__tests__/mock-cloud-executor.ts` uses for `CloudExecutor`.
|
|
7
|
+
*
|
|
8
|
+
* Every test that exercises a #610 real backend (`ToolSbomGenerator`,
|
|
9
|
+
* `OrasReferrerLookup`, `publish-image`'s referrer-attach step) builds one
|
|
10
|
+
* `MockProcessRunner`, scripts which tools are "installed" and what each
|
|
11
|
+
* command's canned stdout is, and passes it in — never touching the real,
|
|
12
|
+
* `child_process`-backed runner.
|
|
13
|
+
*/
|
|
14
|
+
/** Build a fresh mock `ProcessRunner`. Every method is deterministic and synchronous-fast — no real process spawned, no real delay. */
|
|
15
|
+
export function createMockProcessRunner(options = {}) {
|
|
16
|
+
const calls = [];
|
|
17
|
+
const tools = new Map(Object.entries(options.tools ?? {}));
|
|
18
|
+
const responses = new Map(Object.entries(options.responses ?? {}));
|
|
19
|
+
const failures = new Map(Object.entries(options.failures ?? {}));
|
|
20
|
+
const defaultAvailable = options.defaultAvailable ?? true;
|
|
21
|
+
const runner = {
|
|
22
|
+
async run(command, runOptions) {
|
|
23
|
+
calls.push({ command, options: runOptions });
|
|
24
|
+
for (const [substring, message] of failures) {
|
|
25
|
+
if (command.includes(substring))
|
|
26
|
+
throw new Error(message);
|
|
27
|
+
}
|
|
28
|
+
for (const [substring, stdout] of responses) {
|
|
29
|
+
if (command.includes(substring))
|
|
30
|
+
return { stdout, stderr: "" };
|
|
31
|
+
}
|
|
32
|
+
return { stdout: "", stderr: "" };
|
|
33
|
+
},
|
|
34
|
+
async available(tool) {
|
|
35
|
+
calls.push({ command: `command -v ${tool}` });
|
|
36
|
+
return tools.has(tool) ? tools.get(tool) : defaultAvailable;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
runner,
|
|
41
|
+
calls,
|
|
42
|
+
setAvailable: (tool, available) => tools.set(tool, available),
|
|
43
|
+
setResponse: (commandSubstring, stdout) => responses.set(commandSubstring, stdout),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `MockSbomGenerator` — an in-memory fake of `SbomGenerator`
|
|
3
|
+
* (../sbom-generator.ts) for tests. No live `syft`/`docker buildx`/
|
|
4
|
+
* `cyclonedx-maven`/`cdxgen`, no network: every method records its call and
|
|
5
|
+
* returns a deterministic, canned `SbomDocument` derived from its inputs, the
|
|
6
|
+
* same convention `../__tests__/mock-cloud-executor.ts` uses for
|
|
7
|
+
* `CloudExecutor` (a fake digest suffix derived from the call's arguments,
|
|
8
|
+
* stable across calls with the same args).
|
|
9
|
+
*
|
|
10
|
+
* Every test that exercises `generate-sbom` (../sbom.ts) builds one
|
|
11
|
+
* `MockSbomGenerator` and passes it to `createGenerateSbomCapability`,
|
|
12
|
+
* never touching a real scanner.
|
|
13
|
+
*/
|
|
14
|
+
import { SBOM_MEDIA_TYPES, DEFAULT_SBOM_FORMAT } from "../sbom-generator.js";
|
|
15
|
+
/** Build a fresh mock `SbomGenerator`. Every method is deterministic and synchronous-fast — no real scan delay. */
|
|
16
|
+
export function createMockSbomGenerator(options = {}) {
|
|
17
|
+
const calls = [];
|
|
18
|
+
const record = (method, args) => calls.push({ method, args });
|
|
19
|
+
function fakeSbom(kind, subject, format, generatorName) {
|
|
20
|
+
const resolvedFormat = format ?? DEFAULT_SBOM_FORMAT;
|
|
21
|
+
return {
|
|
22
|
+
format: resolvedFormat,
|
|
23
|
+
mediaType: SBOM_MEDIA_TYPES[resolvedFormat],
|
|
24
|
+
bytes: JSON.stringify({ fake: true, kind, subject, format: resolvedFormat }),
|
|
25
|
+
packageCount: options.packageCount ?? 3,
|
|
26
|
+
generator: options.generatorName ?? generatorName,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const generator = {
|
|
30
|
+
async forImage(input) {
|
|
31
|
+
record("forImage", input);
|
|
32
|
+
if (options.fail)
|
|
33
|
+
throw new Error(`sbom generation failed for image ${input.imagePath}`);
|
|
34
|
+
return fakeSbom("image", input.imagePath, input.format, "mock-buildkit");
|
|
35
|
+
},
|
|
36
|
+
async forJar(input) {
|
|
37
|
+
record("forJar", input);
|
|
38
|
+
if (options.fail)
|
|
39
|
+
throw new Error(`sbom generation failed for jar ${input.jarPath}`);
|
|
40
|
+
return fakeSbom("jar", input.jarPath, input.format, "mock-syft");
|
|
41
|
+
},
|
|
42
|
+
async forZip(input) {
|
|
43
|
+
record("forZip", input);
|
|
44
|
+
if (options.fail)
|
|
45
|
+
throw new Error(`sbom generation failed for zip ${input.zipPath}`);
|
|
46
|
+
return fakeSbom("zip", input.zipPath, input.format, "mock-syft");
|
|
47
|
+
},
|
|
48
|
+
async forDir(input) {
|
|
49
|
+
record("forDir", input);
|
|
50
|
+
if (options.fail)
|
|
51
|
+
throw new Error(`sbom generation failed for dir ${input.path}`);
|
|
52
|
+
return fakeSbom("dir", input.path, input.format, "mock-cdxgen");
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
return { generator, calls };
|
|
56
|
+
}
|