@intentius/chant 0.124.13 → 0.124.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/chant +11 -0
- package/dist/agents/checks.js +326 -0
- package/dist/agents/discover.js +885 -0
- package/dist/agents/importer.js +17 -0
- package/dist/agents/index.js +12 -0
- package/dist/agents/types.js +19 -0
- package/dist/apply.js +151 -0
- package/dist/attrref.js +70 -0
- package/dist/audit/catalog.js +350 -0
- package/dist/audit/core.js +252 -0
- package/dist/audit/discover.js +633 -0
- package/dist/audit/fetch.js +666 -0
- package/dist/audit/lineage.js +91 -0
- package/dist/audit/nginx.js +366 -0
- package/dist/audit/prior-art.js +132 -0
- package/dist/audit/proof.js +321 -0
- package/dist/audit/report-html.js +194 -0
- package/dist/audit/report-model.js +198 -0
- package/dist/audit/report.js +102 -0
- package/dist/audit/rules-doc.js +144 -0
- package/dist/audit/secrets.js +405 -0
- package/dist/audit/terraform-state.js +140 -0
- package/dist/audit/wrangler.js +262 -0
- package/dist/behaviour-delta.js +401 -0
- package/dist/behaviour-engine.js +357 -0
- package/dist/behaviour-graph.js +83 -0
- package/dist/behaviour-http.js +188 -0
- package/dist/behaviour-kinds.js +172 -0
- package/dist/behaviour-overlay.js +50 -0
- package/dist/behaviour-predict.js +188 -0
- package/dist/behaviour-request.js +194 -0
- package/dist/behaviour.js +1325 -0
- package/dist/build-params.js +108 -0
- package/dist/build.js +668 -0
- package/dist/builder.js +44 -0
- package/dist/cdk/advise.js +30 -0
- package/dist/cdk/assembly.js +122 -0
- package/dist/cdk/graph.js +444 -0
- package/dist/cdk/tier-map.js +64 -0
- package/dist/cdk/types.js +24 -0
- package/dist/change-set.js +312 -0
- package/dist/child-project.js +21 -0
- package/dist/claimed-fields.js +135 -0
- package/dist/cli/build-options.js +70 -0
- package/dist/cli/build-params-cli.js +139 -0
- package/dist/cli/command-group.js +123 -0
- package/dist/cli/commands/audit-agents.js +326 -0
- package/dist/cli/commands/audit.js +571 -0
- package/dist/cli/commands/build.js +920 -0
- package/dist/cli/commands/carve-apply.js +153 -0
- package/dist/cli/commands/carve-bridge.js +201 -0
- package/dist/cli/commands/carve-emit.js +332 -0
- package/dist/cli/commands/carve-status.js +119 -0
- package/dist/cli/commands/carve.js +204 -0
- package/dist/cli/commands/check-lexicon-docs.js +79 -0
- package/dist/cli/commands/check-lexicon-examples.js +177 -0
- package/dist/cli/commands/check-lexicon-intrinsics.js +291 -0
- package/dist/cli/commands/check-lexicon-mcp.js +82 -0
- package/dist/cli/commands/check-lexicon-plugin.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon-plugin.js +104 -0
- package/dist/cli/commands/check-lexicon.js +766 -0
- package/dist/cli/commands/describe.js +85 -0
- package/dist/cli/commands/diff.js +175 -0
- package/dist/cli/commands/doctor.js +350 -0
- package/dist/cli/commands/import-agents.js +155 -0
- package/dist/cli/commands/import.js +670 -0
- package/dist/cli/commands/init-lexicon/templates/codegen.js +194 -0
- package/dist/cli/commands/init-lexicon/templates/docs.js +100 -0
- package/dist/cli/commands/init-lexicon/templates/examples.js +29 -0
- package/dist/cli/commands/init-lexicon/templates/lint.js +34 -0
- package/dist/cli/commands/init-lexicon/templates/lsp.js +37 -0
- package/dist/cli/commands/init-lexicon/templates/plugin.js +108 -0
- package/dist/cli/commands/init-lexicon/templates/project.js +240 -0
- package/dist/cli/commands/init-lexicon/templates/spec.js +56 -0
- package/dist/cli/commands/init-lexicon/templates/tests.js +66 -0
- package/dist/cli/commands/init-lexicon.js +172 -0
- package/dist/cli/commands/init.js +381 -0
- package/dist/cli/commands/lexicon-rolling-upgrade.js +145 -0
- package/dist/cli/commands/lexicon-surface-diff.js +145 -0
- package/dist/cli/commands/licenses.js +125 -0
- package/dist/cli/commands/lint.d.ts.map +1 -1
- package/dist/cli/commands/lint.js +948 -0
- package/dist/cli/commands/list.js +63 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +423 -0
- package/dist/cli/commands/onboard.js +403 -0
- package/dist/cli/commands/pinned-upgrade.js +191 -0
- package/dist/cli/commands/update.js +194 -0
- package/dist/cli/commands/vendor.js +217 -0
- package/dist/cli/conflict-check.js +104 -0
- package/dist/cli/debug.js +8 -0
- package/dist/cli/format.js +104 -0
- package/dist/cli/handlers/build.js +267 -0
- package/dist/cli/handlers/carve-apply.js +30 -0
- package/dist/cli/handlers/carve-bridge.js +28 -0
- package/dist/cli/handlers/carve-emit.js +50 -0
- package/dist/cli/handlers/carve-status.js +26 -0
- package/dist/cli/handlers/carve.js +40 -0
- package/dist/cli/handlers/change-set.js +46 -0
- package/dist/cli/handlers/components.js +730 -0
- package/dist/cli/handlers/dev.js +113 -0
- package/dist/cli/handlers/emulator.js +233 -0
- package/dist/cli/handlers/explain.js +54 -0
- package/dist/cli/handlers/fan-out.js +422 -0
- package/dist/cli/handlers/gate-resume.js +275 -0
- package/dist/cli/handlers/generate.js +84 -0
- package/dist/cli/handlers/graph.js +969 -0
- package/dist/cli/handlers/init.js +102 -0
- package/dist/cli/handlers/lifecycle.js +1727 -0
- package/dist/cli/handlers/lint.js +62 -0
- package/dist/cli/handlers/migrate.js +48 -0
- package/dist/cli/handlers/misc.js +391 -0
- package/dist/cli/handlers/operator.js +1162 -0
- package/dist/cli/handlers/override-approve.js +102 -0
- package/dist/cli/handlers/pr.js +503 -0
- package/dist/cli/handlers/promote.js +342 -0
- package/dist/cli/handlers/run-generate.js +206 -0
- package/dist/cli/handlers/run-wave.js +66 -0
- package/dist/cli/handlers/run.js +1191 -0
- package/dist/cli/handlers/scenario.js +325 -0
- package/dist/cli/handlers/search.js +924 -0
- package/dist/cli/handlers/serve.js +32 -0
- package/dist/cli/handlers/vendor.js +154 -0
- package/dist/cli/index.js +3 -0
- package/dist/cli/is-entry-point.js +23 -0
- package/dist/cli/lsp/capabilities.js +28 -0
- package/dist/cli/lsp/diagnostics.js +34 -0
- package/dist/cli/lsp/server.js +329 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +2540 -0
- package/dist/cli/mcp/lifecycle-tools.js +80 -0
- package/dist/cli/mcp/op-tools.js +306 -0
- package/dist/cli/mcp/resource-handlers.js +258 -0
- package/dist/cli/mcp/resources/context.js +85 -0
- package/dist/cli/mcp/server.js +353 -0
- package/dist/cli/mcp/tools/build.js +111 -0
- package/dist/cli/mcp/tools/composites.js +95 -0
- package/dist/cli/mcp/tools/explain.js +166 -0
- package/dist/cli/mcp/tools/import.js +49 -0
- package/dist/cli/mcp/tools/lint.js +41 -0
- package/dist/cli/mcp/tools/scaffold.js +111 -0
- package/dist/cli/mcp/tools/search.js +112 -0
- package/dist/cli/mcp/types.js +1 -0
- package/dist/cli/mcp/workspace-plugins.js +91 -0
- package/dist/cli/mcp/workspace-tools.d.ts +1 -1
- package/dist/cli/mcp/workspace-tools.js +564 -0
- package/dist/cli/mcp-config.js +70 -0
- package/dist/cli/plugins.js +313 -0
- package/dist/cli/registry.js +23 -0
- package/dist/cli/reporters/stylish.js +329 -0
- package/dist/cli/version.js +15 -0
- package/dist/cli/watch.js +79 -0
- package/dist/codegen/bound-property-types.js +82 -0
- package/dist/codegen/coverage.js +119 -0
- package/dist/codegen/docs-file-markers.js +60 -0
- package/dist/codegen/docs-pages.js +115 -0
- package/dist/codegen/docs-rule-scanning.js +164 -0
- package/dist/codegen/docs-rules.js +76 -0
- package/dist/codegen/docs-sections.js +117 -0
- package/dist/codegen/docs-sidebar.js +65 -0
- package/dist/codegen/docs-types.js +4 -0
- package/dist/codegen/docs.js +356 -0
- package/dist/codegen/fetch.js +340 -0
- package/dist/codegen/generate-post-synth-barrel.js +63 -0
- package/dist/codegen/generate-registry.js +71 -0
- package/dist/codegen/generate-runtime-index.js +56 -0
- package/dist/codegen/generate-typescript.js +119 -0
- package/dist/codegen/generate.js +115 -0
- package/dist/codegen/json-patch.js +141 -0
- package/dist/codegen/json-schema-to-ts.js +344 -0
- package/dist/codegen/json-schema.js +246 -0
- package/dist/codegen/lexicon-regen.js +412 -0
- package/dist/codegen/naming.js +217 -0
- package/dist/codegen/okf-lexicon.js +245 -0
- package/dist/codegen/package.js +150 -0
- package/dist/codegen/pinned-upgrade.d.ts.map +1 -1
- package/dist/codegen/pinned-upgrade.js +494 -0
- package/dist/codegen/registry.js +60 -0
- package/dist/codegen/rehype-base-url.mjs +68 -0
- package/dist/codegen/rolling-upgrade.js +217 -0
- package/dist/codegen/surface-snapshot.js +537 -0
- package/dist/codegen/testdata/postgres-tags.json +242 -0
- package/dist/codegen/topo-sort.js +36 -0
- package/dist/codegen/typecheck.js +115 -0
- package/dist/codegen/validate.js +200 -0
- package/dist/codegen/version-bump.js +35 -0
- package/dist/components/auto-release.js +143 -0
- package/dist/components/builders.js +47 -0
- package/dist/components/capability-plugin-loader.js +175 -0
- package/dist/components/capability-plugin-schema.js +46 -0
- package/dist/components/capability-plugin.js +99 -0
- package/dist/components/capability.js +60 -0
- package/dist/components/changed-files.js +72 -0
- package/dist/components/cli-support.js +427 -0
- package/dist/components/component.js +120 -0
- package/dist/components/component.schema.json +271 -0
- package/dist/components/config-defaults.js +130 -0
- package/dist/components/deploy-units.js +60 -0
- package/dist/components/discover.d.ts.map +1 -1
- package/dist/components/discover.js +189 -0
- package/dist/components/driver-output.js +86 -0
- package/dist/components/driver.js +728 -0
- package/dist/components/fan-out-output.js +165 -0
- package/dist/components/fan-out-record.js +94 -0
- package/dist/components/fan-out-run.js +373 -0
- package/dist/components/fan-out-support.js +60 -0
- package/dist/components/fan-out.js +273 -0
- package/dist/components/gate-plan.js +41 -0
- package/dist/components/gated-wave-pipeline.js +46 -0
- package/dist/components/index.js +24 -0
- package/dist/components/layers.js +28 -0
- package/dist/components/manifest-persistence.js +108 -0
- package/dist/components/pilots/alb-ecs.pilot.js +59 -0
- package/dist/components/pilots/dynamodb.pilot.js +51 -0
- package/dist/components/pilots/jar-emr.pilot.js +65 -0
- package/dist/components/pilots/lambda.pilot.js +52 -0
- package/dist/components/pilots/neo4j-fanout.pilot.js +68 -0
- package/dist/components/pilots/project.js +12 -0
- package/dist/components/pr-pipeline.js +134 -0
- package/dist/components/pr-run.js +363 -0
- package/dist/components/presets/ecs-fargate.js +72 -0
- package/dist/components/presets/index.js +28 -0
- package/dist/components/presets/lambda.js +34 -0
- package/dist/components/presets/single-host-compose.js +41 -0
- package/dist/components/promote.js +549 -0
- package/dist/components/registry.js +34 -0
- package/dist/components/run-progress.js +33 -0
- package/dist/components/sandbox/driver.d.ts.map +1 -1
- package/dist/components/sandbox/driver.js +93 -0
- package/dist/components/sandbox/run.js +115 -0
- package/dist/components/starter-plugin.js +104 -0
- package/dist/components/verbs/__tests__/mock-cloud-executor.js +68 -0
- package/dist/components/verbs/__tests__/mock-process-runner.js +45 -0
- package/dist/components/verbs/__tests__/mock-sbom-generator.js +56 -0
- package/dist/components/verbs/bom-writer.js +287 -0
- package/dist/components/verbs/build-archive.js +188 -0
- package/dist/components/verbs/build.js +142 -0
- package/dist/components/verbs/cloud-executor.js +110 -0
- package/dist/components/verbs/component-bom.js +125 -0
- package/dist/components/verbs/ensure-secret.js +50 -0
- package/dist/components/verbs/index.js +61 -0
- package/dist/components/verbs/license-policy.js +75 -0
- package/dist/components/verbs/lockfile-sbom-generator.js +191 -0
- package/dist/components/verbs/process-runner.js +78 -0
- package/dist/components/verbs/r2-sync.js +93 -0
- package/dist/components/verbs/reproducibility.js +62 -0
- package/dist/components/verbs/run-agent.js +577 -0
- package/dist/components/verbs/sbom-generator.js +119 -0
- package/dist/components/verbs/sbom.js +97 -0
- package/dist/components/verbs/shell.js +32 -0
- package/dist/components/verbs/sign.js +221 -0
- package/dist/components/verbs/stub.js +28 -0
- package/dist/components/verbs/tool-sbom-generator.js +154 -0
- package/dist/components/verbs/verify.js +112 -0
- package/dist/components/verbs/vex.js +131 -0
- package/dist/components/verbs/vuln-gate.js +152 -0
- package/dist/components/verbs/vuln-scan.js +288 -0
- package/dist/components/verbs/wait-verify.js +106 -0
- package/dist/components/verbs/wrangler.js +179 -0
- package/dist/components/wave-plan.js +102 -0
- package/dist/composite.js +305 -0
- package/dist/config-import.d.ts.map +1 -1
- package/dist/config-import.js +22 -0
- package/dist/config-sandbox.js +122 -0
- package/dist/config-static.js +206 -0
- package/dist/config.js +605 -0
- package/dist/content-digest.js +23 -0
- package/dist/declarable.js +114 -0
- package/dist/deep-observation.js +437 -0
- package/dist/detectLexicon.js +54 -0
- package/dist/discovery/cache.js +70 -0
- package/dist/discovery/collect.js +208 -0
- package/dist/discovery/cycles.js +95 -0
- package/dist/discovery/entity-wire-codec.js +391 -0
- package/dist/discovery/entity-wire.js +42 -0
- package/dist/discovery/files.js +121 -0
- package/dist/discovery/fold-import.d.ts.map +1 -1
- package/dist/discovery/fold-import.js +4178 -0
- package/dist/discovery/fold-rank.js +292 -0
- package/dist/discovery/graph.js +115 -0
- package/dist/discovery/import.d.ts.map +1 -1
- package/dist/discovery/import.js +65 -0
- package/dist/discovery/index.js +333 -0
- package/dist/discovery/param-deps.js +487 -0
- package/dist/discovery/resolve.js +39 -0
- package/dist/discovery/sandbox/bundle.js +214 -0
- package/dist/discovery/sandbox/child-errors.js +26 -0
- package/dist/discovery/sandbox/config-run.js +100 -0
- package/dist/discovery/sandbox/config-wire.js +183 -0
- package/dist/discovery/sandbox/driver.d.ts.map +1 -1
- package/dist/discovery/sandbox/driver.js +333 -0
- package/dist/discovery/sandbox/fork.js +229 -0
- package/dist/discovery/sandbox/policy-run.js +142 -0
- package/dist/discovery/sandbox/policy-wire.js +152 -0
- package/dist/discovery/sandbox/run.js +77 -0
- package/dist/discovery/specifier-resolve.js +320 -0
- package/dist/discovery/walk.js +284 -0
- package/dist/effect-receipt.js +340 -0
- package/dist/env.js +55 -0
- package/dist/errors.js +62 -0
- package/dist/fold/fold.js +1434 -0
- package/dist/fold/foldable-helpers.js +229 -0
- package/dist/fold/subset.js +696 -0
- package/dist/fold-provenance.js +414 -0
- package/dist/gate-decision.js +260 -0
- package/dist/gate-resume-run.js +154 -0
- package/dist/gated-waves.js +165 -0
- package/dist/governance.js +43 -0
- package/dist/graph-declared.js +45 -0
- package/dist/graph-detail.js +207 -0
- package/dist/graph-dot.js +54 -0
- package/dist/graph-effective.js +107 -0
- package/dist/graph-ir.js +623 -0
- package/dist/graph-layout.js +184 -0
- package/dist/graph-lens.js +105 -0
- package/dist/graph-mermaid.js +83 -0
- package/dist/graph-ops.js +39 -0
- package/dist/graph-refs.js +156 -0
- package/dist/held-elsewhere.js +87 -0
- package/dist/identity.js +251 -0
- package/dist/import/base-parser.js +34 -0
- package/dist/import/embedded.js +255 -0
- package/dist/import/generator.js +1 -0
- package/dist/import/ir-utils.js +85 -0
- package/dist/import/parser-options.js +45 -0
- package/dist/import/parser.js +1 -0
- package/dist/index.js +118 -0
- package/dist/intrinsic-interpolation.js +73 -0
- package/dist/intrinsic.js +31 -0
- package/dist/join-key.js +35 -0
- package/dist/kubectl-context.js +150 -0
- package/dist/lexicon-config.js +58 -0
- package/dist/lexicon-integrity.js +47 -0
- package/dist/lexicon-manifest.js +70 -0
- package/dist/lexicon-module.d.ts.map +1 -1
- package/dist/lexicon-module.js +241 -0
- package/dist/lexicon-output.js +218 -0
- package/dist/lexicon-plugin-helpers.js +104 -0
- package/dist/lexicon-schema.js +136 -0
- package/dist/lexicon.js +130 -0
- package/dist/lifecycle/affected.js +224 -0
- package/dist/lifecycle/assert-live.js +110 -0
- package/dist/lifecycle/build-ledger-store.js +160 -0
- package/dist/lifecycle/build-ledger.js +155 -0
- package/dist/lifecycle/change-set.js +356 -0
- package/dist/lifecycle/converge-ledger.js +161 -0
- package/dist/lifecycle/deep-diff.js +233 -0
- package/dist/lifecycle/deep-observe.js +147 -0
- package/dist/lifecycle/digest.js +143 -0
- package/dist/lifecycle/disruption.js +135 -0
- package/dist/lifecycle/gate-applied.js +113 -0
- package/dist/lifecycle/gate-audit.js +341 -0
- package/dist/lifecycle/gate-ledger-select.js +89 -0
- package/dist/lifecycle/gate-ledger.js +193 -0
- package/dist/lifecycle/gate-origin.js +117 -0
- package/dist/lifecycle/gate-pending.js +58 -0
- package/dist/lifecycle/git.js +1182 -0
- package/dist/lifecycle/identity.js +58 -0
- package/dist/lifecycle/index.js +26 -0
- package/dist/lifecycle/lease.js +283 -0
- package/dist/lifecycle/ledger-port.js +1 -0
- package/dist/lifecycle/legacy-digest.js +91 -0
- package/dist/lifecycle/live-diff.js +274 -0
- package/dist/lifecycle/local-note.js +15 -0
- package/dist/lifecycle/member-ledger.js +122 -0
- package/dist/lifecycle/observation-baseline.js +155 -0
- package/dist/lifecycle/observe.js +375 -0
- package/dist/lifecycle/oras-referrer-lookup.js +82 -0
- package/dist/lifecycle/override-ledger.js +54 -0
- package/dist/lifecycle/plan-digest.js +110 -0
- package/dist/lifecycle/plan-ledger.js +129 -0
- package/dist/lifecycle/receipt-plan.js +192 -0
- package/dist/lifecycle/release-ledger.js +155 -0
- package/dist/lifecycle/release-read.js +64 -0
- package/dist/lifecycle/replay.js +193 -0
- package/dist/lifecycle/rollback.js +102 -0
- package/dist/lifecycle/run-ledger.js +183 -0
- package/dist/lifecycle/scenario-eval.js +204 -0
- package/dist/lifecycle/scenario.js +214 -0
- package/dist/lifecycle/snapshot.js +239 -0
- package/dist/lifecycle/status.js +447 -0
- package/dist/lifecycle/symptoms.js +117 -0
- package/dist/lifecycle/teardown.js +255 -0
- package/dist/lifecycle/types.js +1 -0
- package/dist/lifecycle/unobserved-gate.js +33 -0
- package/dist/lifecycle/wave-plans.js +68 -0
- package/dist/lifecycle/work-item-id.js +36 -0
- package/dist/lifecycle/work-lease.js +393 -0
- package/dist/lint/component-checks.js +87 -0
- package/dist/lint/config.js +483 -0
- package/dist/lint/declarative.js +122 -0
- package/dist/lint/discover.d.ts.map +1 -1
- package/dist/lint/discover.js +138 -0
- package/dist/lint/engine.js +246 -0
- package/dist/lint/knowledge-checks.js +64 -0
- package/dist/lint/named-checks.js +22 -0
- package/dist/lint/output-checks.js +87 -0
- package/dist/lint/output-docs.js +163 -0
- package/dist/lint/parser.js +33 -0
- package/dist/lint/pipeline-change-gate.js +70 -0
- package/dist/lint/policy-import.d.ts +1 -1
- package/dist/lint/policy-import.d.ts.map +1 -1
- package/dist/lint/policy-import.js +62 -0
- package/dist/lint/policy-sandbox.js +86 -0
- package/dist/lint/policy.js +122 -0
- package/dist/lint/post-synth.js +87 -0
- package/dist/lint/presets/relaxed.json +26 -0
- package/dist/lint/presets/strict.json +24 -24
- package/dist/lint/receipt-checks.js +83 -0
- package/dist/lint/rule-loader.d.ts.map +1 -1
- package/dist/lint/rule-loader.js +89 -0
- package/dist/lint/rule-registry.js +86 -0
- package/dist/lint/rule.js +1 -0
- package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-a.component.js +7 -0
- package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-b.component.js +7 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/fail/orphan-lib.component.js +9 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/pass/emr-job.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp001/pass/jar-lib.component.js +9 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/fail/search-service.component.js +25 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/pass/jar-lib.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp002/pass/search-service.component.js +21 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/fail/migrator.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/agent-turn.component.js +24 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/migrator.component.js +17 -0
- package/dist/lint/rules/__fixtures__/comp/comp003/pass/orders-table.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/fail/neo4j-cluster.component.js +18 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.js +20 -0
- package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp005/fail/search-service.component.js +12 -0
- package/dist/lint/rules/__fixtures__/comp/comp005/pass/search-service.component.js +16 -0
- package/dist/lint/rules/__fixtures__/comp/comp006/fail/legacy-tool.component.js +8 -0
- package/dist/lint/rules/__fixtures__/comp/comp006/pass/legacy-tool.component.js +12 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/fail/inventory-table.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/fail/orders-table.component.js +11 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/pass/orders-table.component.js +10 -0
- package/dist/lint/rules/__fixtures__/comp/comp007/pass/search-service.component.js +16 -0
- package/dist/lint/rules/comp/comp001-publishes-never-applies.js +69 -0
- package/dist/lint/rules/comp/comp002-dangling-wiring-ref.js +84 -0
- package/dist/lint/rules/comp/comp003-mutating-no-rollback.js +103 -0
- package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.js +70 -0
- package/dist/lint/rules/comp/comp005-capability-kind-is-noun.js +109 -0
- package/dist/lint/rules/comp/comp006-shell-needs-reason.js +49 -0
- package/dist/lint/rules/comp/comp007-composition-sprawl.js +64 -0
- package/dist/lint/rules/comp/index.js +33 -0
- package/dist/lint/rules/comp/support.js +129 -0
- package/dist/lint/rules/composite-scope.js +51 -0
- package/dist/lint/rules/cor017-composite-name-match.js +93 -0
- package/dist/lint/rules/cor018-composite-prefer-lexicon-type.js +136 -0
- package/dist/lint/rules/cor021-env-literal-name.js +100 -0
- package/dist/lint/rules/cor022-receipt-leaf.js +118 -0
- package/dist/lint/rules/cor024-receipt-secret-pointer.js +199 -0
- package/dist/lint/rules/declarable-naming-convention.js +62 -0
- package/dist/lint/rules/evl001-non-literal-expression.js +66 -0
- package/dist/lint/rules/evl002-control-flow-resource.js +69 -0
- package/dist/lint/rules/evl003-dynamic-property-access.js +44 -0
- package/dist/lint/rules/evl004-spread-non-const.js +94 -0
- package/dist/lint/rules/evl005-resource-block-body.js +41 -0
- package/dist/lint/rules/evl007-invalid-siblings.js +105 -0
- package/dist/lint/rules/evl009-composite-no-constant.js +158 -0
- package/dist/lint/rules/evl010-composite-no-transform.js +59 -0
- package/dist/lint/rules/evl011-symbolic-in-template.js +106 -0
- package/dist/lint/rules/export-required.js +115 -0
- package/dist/lint/rules/file-declarable-limit.js +88 -0
- package/dist/lint/rules/flat-declarations.js +62 -0
- package/dist/lint/rules/index.js +90 -0
- package/dist/lint/rules/no-cyclic-declarable-ref.js +138 -0
- package/dist/lint/rules/no-redundant-type-import.js +76 -0
- package/dist/lint/rules/no-redundant-value-cast.js +41 -0
- package/dist/lint/rules/no-string-ref.js +59 -0
- package/dist/lint/rules/no-unused-declarable-import.js +75 -0
- package/dist/lint/rules/no-unused-declarable.js +142 -0
- package/dist/lint/rules/op/index.js +28 -0
- package/dist/lint/rules/op/ops012-activity-contract.js +54 -0
- package/dist/lint/rules/op/ops013-step-output-ref.js +88 -0
- package/dist/lint/rules/op/ops014-converge-rule-refusals.js +114 -0
- package/dist/lint/rules/op/ops015-gate-approval.js +45 -0
- package/dist/lint/rules/op/support.js +11 -0
- package/dist/lint/rules/op/sys010-key-over-plain-http.js +100 -0
- package/dist/lint/rules/property-kind.js +56 -0
- package/dist/lint/rules/single-concern-file.js +71 -0
- package/dist/lint/rules/sys001-no-literal-key.js +60 -0
- package/dist/lint/selectors.js +168 -0
- package/dist/lint/suppressions.js +129 -0
- package/dist/lint/typescript.js +17 -0
- package/dist/live-endpoint.js +113 -0
- package/dist/live-read-session.js +76 -0
- package/dist/lsp/lexicon-providers.js +163 -0
- package/dist/lsp/types.js +5 -0
- package/dist/managed-fields.js +293 -0
- package/dist/mcp/types.js +4 -0
- package/dist/notify-verify.js +0 -1
- package/dist/notify.js +0 -1
- package/dist/notify.schema.json +72 -0
- package/dist/observation.js +266 -0
- package/dist/okf-read.js +134 -0
- package/dist/okf.js +275 -0
- package/dist/op/__fixtures__/decide-stub-backend.js +125 -0
- package/dist/op/activities/activity-contracts.js +313 -0
- package/dist/op/activities/apply.js +582 -0
- package/dist/op/activities/build.js +18 -0
- package/dist/op/activities/change-coverage.js +40 -0
- package/dist/op/activities/change-set.js +64 -0
- package/dist/op/activities/converge.js +492 -0
- package/dist/op/activities/decide.js +211 -0
- package/dist/op/activities/env-teardown.js +110 -0
- package/dist/op/activities/factory.js +591 -0
- package/dist/op/activities/forge-pull-request.js +82 -0
- package/dist/op/activities/gh-host.js +78 -0
- package/dist/op/activities/guard-validate.js +165 -0
- package/dist/op/activities/http-check.js +40 -0
- package/dist/op/activities/index.js +59 -0
- package/dist/op/activities/lexicon-upgrade.js +629 -0
- package/dist/op/activities/lifecycle.js +109 -0
- package/dist/op/activities/pipeline-audit.js +147 -0
- package/dist/op/activities/policy.js +26 -0
- package/dist/op/activities/predict-behaviour.js +341 -0
- package/dist/op/activities/propose-upgrade.js +165 -0
- package/dist/op/activities/reconcile.js +997 -0
- package/dist/op/activities/shell.js +118 -0
- package/dist/op/activities/source-release.js +97 -0
- package/dist/op/activities/source-rollback.js +165 -0
- package/dist/op/activities/teardown.js +17 -0
- package/dist/op/activities/util.js +6 -0
- package/dist/op/activities/wait.js +51 -0
- package/dist/op/activities/work-evidence.js +35 -0
- package/dist/op/activities/workflow-audit.js +133 -0
- package/dist/op/activity-contract-registry.js +106 -0
- package/dist/op/activity-contract.js +232 -0
- package/dist/op/activity-failure.js +31 -0
- package/dist/op/activity-profiles.js +129 -0
- package/dist/op/activity-registry.js +105 -0
- package/dist/op/activity-runtime.js +28 -0
- package/dist/op/builders.js +801 -0
- package/dist/op/change-signal.js +118 -0
- package/dist/op/composites/apply-op.js +151 -0
- package/dist/op/composites/behaviour-op.js +65 -0
- package/dist/op/composites/converge-op.js +141 -0
- package/dist/op/composites/index.js +19 -0
- package/dist/op/composites/lexicon-upgrade-op.js +107 -0
- package/dist/op/composites/pipeline-audit-op.js +50 -0
- package/dist/op/composites/reconcile-op.js +84 -0
- package/dist/op/composites/watch-op.js +69 -0
- package/dist/op/composites/workflow-audit-op.js +57 -0
- package/dist/op/converge-rule.js +205 -0
- package/dist/op/cron.js +146 -0
- package/dist/op/decide-backend.js +181 -0
- package/dist/op/decide-config.js +68 -0
- package/dist/op/decide-read-inputs.js +141 -0
- package/dist/op/discover.d.ts.map +1 -1
- package/dist/op/discover.js +213 -0
- package/dist/op/duration.js +21 -0
- package/dist/op/emulator-freshness.js +80 -0
- package/dist/op/emulator-lifecycle.js +269 -0
- package/dist/op/factory.js +83 -0
- package/dist/op/gate-approval.js +172 -0
- package/dist/op/gate-name.js +86 -0
- package/dist/op/gate-plan-context.js +167 -0
- package/dist/op/gate-point-run.js +67 -0
- package/dist/op/gate-point.js +111 -0
- package/dist/op/gate-resume-plan.js +155 -0
- package/dist/op/gate-resume.js +31 -0
- package/dist/op/gate-review.js +290 -0
- package/dist/op/gate-run-locator.js +85 -0
- package/dist/op/gate-summary.js +100 -0
- package/dist/op/gate-wait.js +56 -0
- package/dist/op/gate.js +449 -0
- package/dist/op/generate-pipeline.js +124 -0
- package/dist/op/index.js +51 -0
- package/dist/op/lifecycle-receipt-store.js +45 -0
- package/dist/op/local-executor.js +1164 -0
- package/dist/op/local-output.js +140 -0
- package/dist/op/op-ir.js +317 -0
- package/dist/op/op-verb-class.js +131 -0
- package/dist/op/op-waves-notify.js +136 -0
- package/dist/op/op-waves-run.js +1657 -0
- package/dist/op/op-waves.js +409 -0
- package/dist/op/operator.js +743 -0
- package/dist/op/receipt-store.js +94 -0
- package/dist/op/resource.js +23 -0
- package/dist/op/run-context.js +28 -0
- package/dist/op/run-live.js +256 -0
- package/dist/op/runtime.js +21 -0
- package/dist/op/runtimes/local.js +195 -0
- package/dist/op/source-archive.js +131 -0
- package/dist/op/step-output-ref.js +397 -0
- package/dist/op/steward-beside.js +169 -0
- package/dist/op/steward-points.js +138 -0
- package/dist/op/steward-turn.js +59 -0
- package/dist/op/steward.js +317 -0
- package/dist/op/types.js +25 -0
- package/dist/op/work-lease-decl.js +81 -0
- package/dist/op/work-lease-run.js +393 -0
- package/dist/override-gate.js +284 -0
- package/dist/owner-chain.js +74 -0
- package/dist/ownership.js +92 -0
- package/dist/params.js +61 -0
- package/dist/plan-summary.js +711 -0
- package/dist/point-decision.js +211 -0
- package/dist/pr-forge.js +810 -0
- package/dist/pr-loop.js +203 -0
- package/dist/project-codegen.js +191 -0
- package/dist/project-root.js +74 -0
- package/dist/project-validation.js +50 -0
- package/dist/provenance.js +157 -0
- package/dist/pseudo-parameter.js +40 -0
- package/dist/reconcile.js +450 -0
- package/dist/resource-attributes.js +33 -0
- package/dist/runtime-adapter.js +77 -0
- package/dist/runtime.js +66 -0
- package/dist/secret-materialization.js +153 -0
- package/dist/secret-provenance.js +250 -0
- package/dist/serializer-walker.js +112 -0
- package/dist/serializer.js +1 -0
- package/dist/sort.js +45 -0
- package/dist/stack-output.js +115 -0
- package/dist/telemetry-attribution.js +149 -0
- package/dist/terraform/__fixtures__/build-graph.js +63 -0
- package/dist/terraform/adopt-state.js +40 -0
- package/dist/terraform/aws-resources.js +384 -0
- package/dist/terraform/bridge.js +204 -0
- package/dist/terraform/carve-provider.js +155 -0
- package/dist/terraform/carve.js +138 -0
- package/dist/terraform/data-source-shape.js +57 -0
- package/dist/terraform/emit-source.js +36 -0
- package/dist/terraform/excise.js +123 -0
- package/dist/terraform/graduate.js +128 -0
- package/dist/terraform/graph.js +435 -0
- package/dist/terraform/hcl2json.js +60 -0
- package/dist/terraform/manifest.js +149 -0
- package/dist/terraform/parse.js +81 -0
- package/dist/terraform/providers/aws.js +146 -0
- package/dist/terraform/providers/gcp.js +294 -0
- package/dist/terraform/providers/index.js +17 -0
- package/dist/terraform/providers/kubernetes.js +253 -0
- package/dist/terraform/score.js +151 -0
- package/dist/terraform/state.js +67 -0
- package/dist/terraform/tier-map.js +74 -0
- package/dist/terraform/types.js +13 -0
- package/dist/terraform/unified-diff.js +132 -0
- package/dist/testing.js +295 -0
- package/dist/toml-emit.js +153 -0
- package/dist/toml-parse.js +355 -0
- package/dist/toml-utils.js +60 -0
- package/dist/toml.js +428 -0
- package/dist/ts-loader.d.ts +46 -0
- package/dist/ts-loader.d.ts.map +1 -0
- package/dist/ts-loader.js +103 -0
- package/dist/types.js +1 -0
- package/dist/utils.js +61 -0
- package/dist/validation.js +20 -0
- package/dist/vendor/js-yaml-load.js +1662 -0
- package/dist/workspace/__fixtures__/contract-repo.js +103 -0
- package/dist/workspace/__fixtures__/decide-workspace.js +112 -0
- package/dist/workspace/__fixtures__/sessions.js +91 -0
- package/dist/workspace/__fixtures__/two-member-workspace.js +34 -0
- package/dist/workspace/agent-cli.js +99 -0
- package/dist/workspace/agent.schema.json +390 -0
- package/dist/workspace/answers-ledger.js +89 -0
- package/dist/workspace/box-cli.js +142 -0
- package/dist/workspace/box-factory-write.js +196 -0
- package/dist/workspace/box-factory-write.schema.json +342 -0
- package/dist/workspace/box-factory.js +88 -0
- package/dist/workspace/box-intent.js +126 -0
- package/dist/workspace/box-isolation.js +169 -0
- package/dist/workspace/box-listing-write.schema.json +204 -0
- package/dist/workspace/box-listing.js +298 -0
- package/dist/workspace/box-publish.js +352 -0
- package/dist/workspace/box-publish.schema.json +498 -0
- package/dist/workspace/box-services.js +39 -0
- package/dist/workspace/broker-protocol.js +359 -0
- package/dist/workspace/broker-protocol.schema.json +228 -0
- package/dist/workspace/change-set.schema.json +460 -0
- package/dist/workspace/changes-cli.js +56 -0
- package/dist/workspace/changes.js +446 -0
- package/dist/workspace/changes.schema.json +642 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-fly-site.js +198 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-live-names.js +155 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-rollback.js +214 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-inputs.js +180 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-policy.js +99 -0
- package/dist/workspace/chant-migrations/chud-lexicon-exit.js +847 -0
- package/dist/workspace/chant-migrations.js +113 -0
- package/dist/workspace/check.schema.json +433 -0
- package/dist/workspace/checks/box-isolation.js +62 -0
- package/dist/workspace/checks/boxes.js +491 -0
- package/dist/workspace/checks/diagrams.js +104 -0
- package/dist/workspace/checks/generated.js +419 -0
- package/dist/workspace/checks/ledgers.js +212 -0
- package/dist/workspace/checks/links.js +191 -0
- package/dist/workspace/checks/live.js +100 -0
- package/dist/workspace/checks/pipelines.js +188 -0
- package/dist/workspace/checks/records.js +169 -0
- package/dist/workspace/checks.js +426 -0
- package/dist/workspace/ci-green-cli.js +125 -0
- package/dist/workspace/ci-green-forge.js +83 -0
- package/dist/workspace/ci-green-workflow.js +199 -0
- package/dist/workspace/ci-green.js +325 -0
- package/dist/workspace/ci-last-green.schema.json +158 -0
- package/dist/workspace/compose-graph.js +235 -0
- package/dist/workspace/compose-reports.js +146 -0
- package/dist/workspace/composites.js +264 -0
- package/dist/workspace/composites.schema.json +617 -0
- package/dist/workspace/conformance/__fixture__/app/package.json +7 -0
- package/dist/workspace/conformance/__fixture__/app/src/server.mjs +29 -0
- package/dist/workspace/conformance/__fixture__/decisions/decision.kind.mjs +54 -0
- package/dist/workspace/conformance/__fixture__/decisions/decision.schema.json +512 -0
- package/dist/workspace/conformance/__fixture__/decisions/fix-001-how-the-app-is-deployed.md +40 -0
- package/dist/workspace/conformance/__fixture__/delivery/chant.config.ts +7 -0
- package/dist/workspace/conformance/__fixture__/delivery/lexicon/index.ts +26 -0
- package/dist/workspace/conformance/__fixture__/delivery/package.json +7 -0
- package/dist/workspace/conformance/__fixture__/delivery/src/app.component.ts +14 -0
- package/dist/workspace/conformance/__fixture__/delivery/src/app.ts +4 -0
- package/dist/workspace/conformance/__fixtures__/reference-broker.js +205 -0
- package/dist/workspace/conformance/__writer_fixture__/answers/answer.kind.mjs +32 -0
- package/dist/workspace/conformance/__writer_fixture__/answers/answer.schema.json +135 -0
- package/dist/workspace/conformance/__writer_fixture__/contracts/contract.kind.mjs +37 -0
- package/dist/workspace/conformance/__writer_fixture__/contracts/contract.schema.json +213 -0
- package/dist/workspace/conformance/__writer_fixture__/decisions/points.json +228 -0
- package/dist/workspace/conformance/__writer_fixture__/drivers/driver.kind.mjs +15 -0
- package/dist/workspace/conformance/__writer_fixture__/drivers/driver.schema.json +38 -0
- package/dist/workspace/conformance/__writer_fixture__/sessions/session.kind.mjs +54 -0
- package/dist/workspace/conformance/__writer_fixture__/sessions/session.schema.json +289 -0
- package/dist/workspace/conformance/__writer_fixture__/work/W-001-the-writer-suite-works-this-item.md +25 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.kind.mjs +60 -0
- package/dist/workspace/conformance/__writer_fixture__/work/work.schema.json +603 -0
- package/dist/workspace/conformance/broker.js +736 -0
- package/dist/workspace/conformance/index.js +673 -0
- package/dist/workspace/conformance/vitest.js +108 -0
- package/dist/workspace/conformance/writer.js +1080 -0
- package/dist/workspace/decide.js +879 -0
- package/dist/workspace/decision-points.schema.json +135 -135
- package/dist/workspace/declaration-write-cli.js +74 -0
- package/dist/workspace/declaration-write.js +238 -0
- package/dist/workspace/declaration.js +938 -0
- package/dist/workspace/declaration.schema.json +1413 -1413
- package/dist/workspace/declared-kinds.js +106 -0
- package/dist/workspace/environments.js +164 -0
- package/dist/workspace/evidence.schema.json +279 -0
- package/dist/workspace/export-cli.js +185 -0
- package/dist/workspace/export.js +499 -0
- package/dist/workspace/factory-rules.js +175 -0
- package/dist/workspace/generated-files.js +92 -0
- package/dist/workspace/glob.js +45 -0
- package/dist/workspace/graph-cache.js +352 -0
- package/dist/workspace/graph-cli.js +348 -0
- package/dist/workspace/graph.schema.json +1338 -0
- package/dist/workspace/identity-gate-rule.js +75 -0
- package/dist/workspace/identity.js +126 -0
- package/dist/workspace/import.js +283 -0
- package/dist/workspace/init.js +620 -0
- package/dist/workspace/intent-cli.js +263 -0
- package/dist/workspace/intent-joins.js +201 -0
- package/dist/workspace/intent-record.js +352 -0
- package/dist/workspace/intent-record.schema.json +864 -0
- package/dist/workspace/intent.js +1582 -0
- package/dist/workspace/intent.schema.json +2420 -0
- package/dist/workspace/json-edit.js +221 -0
- package/dist/workspace/jsonc.js +235 -0
- package/dist/workspace/kind-readers.js +103 -0
- package/dist/workspace/kinds.js +587 -0
- package/dist/workspace/lexicon-symbols.js +112 -0
- package/dist/workspace/lineage-adopt-cli.js +102 -0
- package/dist/workspace/lineage-adopt.js +360 -0
- package/dist/workspace/lineage-check.js +282 -0
- package/dist/workspace/lineage-cli.js +121 -0
- package/dist/workspace/lineage-hash-index.js +284 -0
- package/dist/workspace/lineage-init.js +507 -0
- package/dist/workspace/lineage-lock.js +387 -0
- package/dist/workspace/lineage-merge.js +45 -0
- package/dist/workspace/lineage-migrations.d.ts.map +1 -1
- package/dist/workspace/lineage-migrations.js +329 -0
- package/dist/workspace/lineage-provenance.js +36 -0
- package/dist/workspace/lineage-update.js +138 -0
- package/dist/workspace/lineage-upgrade-cli.js +131 -0
- package/dist/workspace/lineage-upgrade.js +889 -0
- package/dist/workspace/lineage-vendor.js +171 -0
- package/dist/workspace/lineage-version.js +128 -0
- package/dist/workspace/lineage-versions.js +275 -0
- package/dist/workspace/links.js +330 -0
- package/dist/workspace/ls-generated.js +95 -0
- package/dist/workspace/ls.js +277 -0
- package/dist/workspace/ls.schema.json +333 -0
- package/dist/workspace/member-commands.js +508 -0
- package/dist/workspace/member-handles.js +216 -0
- package/dist/workspace/member-pipeline.js +258 -0
- package/dist/workspace/member-run.js +117 -0
- package/dist/workspace/member-write.schema.json +193 -0
- package/dist/workspace/nested-graph.js +156 -0
- package/dist/workspace/nesting.js +38 -0
- package/dist/workspace/patch.js +301 -0
- package/dist/workspace/patch.schema.json +321 -0
- package/dist/workspace/pin-cli.js +55 -0
- package/dist/workspace/pin-integrity.js +100 -0
- package/dist/workspace/plan-summary.schema.json +155 -0
- package/dist/workspace/point-answer.schema.json +129 -129
- package/dist/workspace/points-cli.js +291 -0
- package/dist/workspace/points-write.schema.json +660 -0
- package/dist/workspace/points.js +521 -0
- package/dist/workspace/points.schema.json +916 -0
- package/dist/workspace/pr-report.schema.json +108 -0
- package/dist/workspace/principal-classes.js +245 -0
- package/dist/workspace/reason-codes.js +326 -0
- package/dist/workspace/record-assets.js +151 -0
- package/dist/workspace/record-decided.js +105 -0
- package/dist/workspace/record-sessions.js +96 -0
- package/dist/workspace/record-source.js +114 -0
- package/dist/workspace/records-amend.schema.json +284 -0
- package/dist/workspace/records-checkout.js +76 -0
- package/dist/workspace/records-cli.js +707 -0
- package/dist/workspace/records-close.js +116 -0
- package/dist/workspace/records-close.schema.json +278 -0
- package/dist/workspace/records-new.schema.json +202 -0
- package/dist/workspace/records-review.schema.json +367 -0
- package/dist/workspace/records-since.js +317 -0
- package/dist/workspace/records-since.schema.json +218 -0
- package/dist/workspace/records-write.js +1229 -0
- package/dist/workspace/records.js +1345 -0
- package/dist/workspace/records.schema.json +604 -0
- package/dist/workspace/reference-kinds/app/package.json +10 -0
- package/dist/workspace/reference-kinds/app/workspace-kinds.json +45 -0
- package/dist/workspace/returns.js +303 -0
- package/dist/workspace/root-refusal.js +75 -0
- package/dist/workspace/run-statement.schema.json +622 -0
- package/dist/workspace/runs-cli.js +584 -0
- package/dist/workspace/runs-write.schema.json +994 -0
- package/dist/workspace/runs.js +708 -0
- package/dist/workspace/runs.schema.json +1257 -0
- package/dist/workspace/runtimes.js +76 -0
- package/dist/workspace/session-kinds.js +83 -0
- package/dist/workspace/signers.schema.json +206 -0
- package/dist/workspace/source-block.js +125 -0
- package/dist/workspace/squash.js +177 -0
- package/dist/workspace/status-gates.js +162 -0
- package/dist/workspace/status-stewards.js +330 -0
- package/dist/workspace/status.js +514 -0
- package/dist/workspace/status.schema.json +998 -0
- package/dist/workspace/steward-index.js +191 -0
- package/dist/workspace/symbols.js +188 -0
- package/dist/workspace/template-manifest.js +227 -0
- package/dist/workspace/template-pins.js +115 -0
- package/dist/workspace/trailer-joins.js +65 -0
- package/dist/workspace/trailers.js +111 -0
- package/dist/workspace/tree.js +136 -0
- package/dist/workspace/trust/attestor.js +63 -0
- package/dist/workspace/trust/dsse.js +108 -0
- package/dist/workspace/trust/evidence-cli.js +175 -0
- package/dist/workspace/trust/evidence.js +161 -0
- package/dist/workspace/trust/gate-seal.js +226 -0
- package/dist/workspace/trust/policy.js +190 -0
- package/dist/workspace/trust/provenance.js +180 -0
- package/dist/workspace/trust/rotation.js +298 -0
- package/dist/workspace/trust/run-commits.js +101 -0
- package/dist/workspace/trust/run-statement.js +182 -0
- package/dist/workspace/trust/seal.js +272 -0
- package/dist/workspace/trust/signers-cli.js +152 -0
- package/dist/workspace/trust/ssh-commit.js +178 -0
- package/dist/workspace/trust/test-repo.js +118 -0
- package/dist/workspace/trust/trust-files.js +193 -0
- package/dist/workspace/trust/verify-cli.js +63 -0
- package/dist/workspace/trust/verify.js +192 -0
- package/dist/workspace/which-chant.js +141 -0
- package/dist/workspace/wip-cli.js +95 -0
- package/dist/workspace/wip-write.schema.json +504 -0
- package/dist/workspace/wip.js +631 -0
- package/dist/workspace/wip.schema.json +334 -0
- package/dist/workspace/work-cli.js +448 -0
- package/dist/workspace/work-evidence.js +122 -0
- package/dist/workspace/work-evidence.schema.json +222 -0
- package/dist/workspace/work-history.schema.json +421 -0
- package/dist/workspace/work-lease.schema.json +246 -0
- package/dist/workspace/work-size.js +77 -0
- package/dist/workspace/work.js +283 -0
- package/dist/workspace/workspace-kinds.schema.json +259 -259
- package/dist/workspace/workspace-principals.schema.json +53 -53
- package/dist/workspace/write-lock-cli.js +105 -0
- package/dist/workspace/write-lock.js +424 -0
- package/dist/workspace/write-lock.schema.json +172 -0
- package/dist/workspace/write-scope.js +484 -0
- package/dist/yaml.js +459 -0
- package/package.json +2 -2
- package/src/cli/commands/check-lexicon-plugin.ts +2 -0
- package/src/cli/commands/lint.ts +3 -0
- package/src/cli/commands/migrate.ts +2 -0
- package/src/cli/compiled-cli.e2e.test.ts +165 -0
- package/src/cli/main.ts +121 -27
- package/src/cli/mcp/workspace-tools.ts +1 -1
- package/src/codegen/pinned-upgrade.ts +2 -0
- package/src/components/discover.ts +2 -0
- package/src/components/sandbox/driver.ts +3 -1
- package/src/config-import.ts +3 -0
- package/src/discovery/fold-import.ts +23 -14
- package/src/discovery/import.ts +2 -0
- package/src/discovery/sandbox/driver.ts +3 -1
- package/src/lexicon-module.ts +3 -0
- package/src/lint/config.ts +1 -1
- package/src/lint/discover.ts +28 -8
- package/src/lint/policy-import.ts +4 -1
- package/src/lint/rule-loader.ts +2 -0
- package/src/op/discover.ts +3 -0
- package/src/ts-loader.test.ts +23 -0
- package/src/ts-loader.ts +122 -0
- package/src/workspace/chant-migrations/chud-lexicon-exit.ts +1 -1
- package/src/workspace/declaration.ts +1 -1
- package/src/workspace/kinds.ts +1 -1
- package/src/workspace/lineage-migrations.ts +2 -0
- package/src/workspace/points.ts +1 -1
- package/src/workspace/principal-classes.ts +1 -1
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `chant workspace ls [dir] [--at <rev>] [--json]` (#2534): list a workspace's
|
|
3
|
+
* members and example groups from its declaration.
|
|
4
|
+
*
|
|
5
|
+
* A member that can't be read is still listed, with a reason code, and the
|
|
6
|
+
* command still exits 0 (#2524 D15, ws-020). Failing on it is the job of
|
|
7
|
+
* `chant workspace check`. Only a declaration that can't be read exits 1.
|
|
8
|
+
*
|
|
9
|
+
* The `--json` output is part of the read contract, versioned like
|
|
10
|
+
* `workspace records` and described by `ls.schema.json` beside this file.
|
|
11
|
+
*
|
|
12
|
+
* The record kinds the declaration names are listed too, the workspace's own
|
|
13
|
+
* and each member's, with each kind file's own name when it loads (#2680).
|
|
14
|
+
* Loading one imports it, so {@link listWorkspace} lists them unloaded and
|
|
15
|
+
* {@link listWorkspaceWithKinds}, which the command runs, loads them.
|
|
16
|
+
*
|
|
17
|
+
* The declared diagram artifacts are listed too, flattened across the
|
|
18
|
+
* workspace and its members into one `diagrams` array (#2764). Unlike record
|
|
19
|
+
* kinds, nothing about a diagram is loaded: everything printed comes
|
|
20
|
+
* straight from the declaration, and chant runs no renderer to list it.
|
|
21
|
+
*/
|
|
22
|
+
import { existsSync } from "node:fs";
|
|
23
|
+
import { isAbsolute, resolve } from "node:path";
|
|
24
|
+
import { formatError } from "../cli/format.js";
|
|
25
|
+
import { declaredDiagrams, extensionsAt, readDeclaration, readerVersion, resolveGroups, WorkspaceReadError, } from "./declaration.js";
|
|
26
|
+
import { memberGenerated } from "./ls-generated.js";
|
|
27
|
+
import { loadKindRegistry, probeKind } from "./kinds.js";
|
|
28
|
+
import { handToRootChant, locateWorkspace } from "./which-chant.js";
|
|
29
|
+
import { declaredSessions } from "./write-scope.js";
|
|
30
|
+
/** The version of the `ls` output this chant writes. */
|
|
31
|
+
export const LS_CONTRACT_VERSION = 1;
|
|
32
|
+
/** `$id` of the JSON Schema for the `--json` output, shipped beside this file. */
|
|
33
|
+
export const LS_OUTPUT_SCHEMA_ID = "https://intentius.io/chant/schemas/workspace/ls/v1/ls.schema.json";
|
|
34
|
+
const USAGE = "chant workspace ls [dir] [--at <rev>] [--json]";
|
|
35
|
+
/**
|
|
36
|
+
* Why one member can't be read. Closed, like the error codes: a new code is a
|
|
37
|
+
* contract change.
|
|
38
|
+
*/
|
|
39
|
+
export const MEMBER_REASON_CODES = [
|
|
40
|
+
/** The member's directory does not exist. */
|
|
41
|
+
"dir-missing",
|
|
42
|
+
/** No built-in kind or pinned package supplies the member's kind. */
|
|
43
|
+
"unknown-kind",
|
|
44
|
+
/** The directory is not what its kind reads, such as a `chant` member with no chant config. */
|
|
45
|
+
"kind-probe-failed",
|
|
46
|
+
];
|
|
47
|
+
/** Why a group lists nothing. */
|
|
48
|
+
export const GROUP_REASON_CODES = [
|
|
49
|
+
/** No directory the globs match holds a chant project. */
|
|
50
|
+
"no-matches",
|
|
51
|
+
];
|
|
52
|
+
/** A member's reason code, or null when its kind can read it. */
|
|
53
|
+
export function memberReason(member, tree, kinds) {
|
|
54
|
+
if (tree.stat(member.dir === "." ? "" : member.dir) !== "dir") {
|
|
55
|
+
return { code: "dir-missing", message: `${member.dir} is not a directory${tree.label}` };
|
|
56
|
+
}
|
|
57
|
+
const kind = kinds.get(member.kind);
|
|
58
|
+
if (!kind) {
|
|
59
|
+
return { code: "unknown-kind", message: `no built-in kind or pinned package supplies kind ${member.kind}; known kinds: ${kinds.names().join(", ")}` };
|
|
60
|
+
}
|
|
61
|
+
if (!probeKind(kind, tree, member.dir === "." ? "" : member.dir)) {
|
|
62
|
+
return { code: "kind-probe-failed", message: `${member.dir} is not ${kind.description}` };
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Find the workspace, read it and build the document `--json` prints, with
|
|
68
|
+
* the declared record kinds unloaded: `kind` null and no reason. Never throws
|
|
69
|
+
* a {@link WorkspaceReadError}.
|
|
70
|
+
*/
|
|
71
|
+
export function listWorkspace(query) {
|
|
72
|
+
return readListing(query).doc;
|
|
73
|
+
}
|
|
74
|
+
/** {@link listWorkspace}, with each declared record kind loaded for its name, or the reason it can't be (#2680). */
|
|
75
|
+
export async function listWorkspaceWithKinds(query) {
|
|
76
|
+
const { doc, declaration, tree, rootOnDisk } = readListing(query);
|
|
77
|
+
if (!declaration || "error" in doc)
|
|
78
|
+
return doc;
|
|
79
|
+
const { loadDeclaredKinds } = await import("./declared-kinds.js");
|
|
80
|
+
const loaded = await loadDeclaredKinds(declaration, tree, rootOnDisk, { acceptance: true, ...(doc.at !== null ? { at: doc.at } : {}) });
|
|
81
|
+
const byPath = new Map(loaded.map((k) => [k.declared.path, k]));
|
|
82
|
+
const fill = (r) => {
|
|
83
|
+
const k = byPath.get(r.path);
|
|
84
|
+
const acceptance = k.acceptance ? k.acceptance.map((a) => ({ item: a.item, state: a.state, met: a.met, total: a.total })) : null;
|
|
85
|
+
return { ...r, name: r.name ?? k.kind, kind: k.kind, reason: k.reason, acceptance };
|
|
86
|
+
};
|
|
87
|
+
return {
|
|
88
|
+
...doc,
|
|
89
|
+
workspace: { ...doc.workspace, records: doc.workspace.records.map(fill) },
|
|
90
|
+
members: doc.members.map((m) => ({ ...m, records: m.records.map(fill) })),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
const unloaded = (records) => records.map((r) => ({ name: r.name, path: r.path, kind: null, reason: null, acceptance: null }));
|
|
94
|
+
function readListing(query) {
|
|
95
|
+
const chant = readerVersion();
|
|
96
|
+
const head = { $schema: LS_OUTPUT_SCHEMA_ID, contract: LS_CONTRACT_VERSION, chant };
|
|
97
|
+
try {
|
|
98
|
+
const located = locateWorkspace(query.cwd, query.at);
|
|
99
|
+
const { tree, rootOnDisk, at } = located;
|
|
100
|
+
const declaration = readDeclaration(tree, "", { rootChant: true });
|
|
101
|
+
// Kinds come from the pinned packages installed in the working tree, also
|
|
102
|
+
// for --at: they are read as data, never run (#2535).
|
|
103
|
+
const kinds = query.kinds ?? loadKindRegistry(declaration.pins, rootOnDisk).registry;
|
|
104
|
+
const groups = resolveGroups(declaration, tree);
|
|
105
|
+
const repoPrefix = isAbsolute(located.root) ? "." : located.root;
|
|
106
|
+
// Sessions are read where the write paths read them, at base (#3615); a
|
|
107
|
+
// listing at a revision reads them there, so it describes one commit.
|
|
108
|
+
const sessions = at !== null ? { agents: declaration.agents, from: "at" } : (declaredSessions(query.cwd) ?? { agents: declaration.agents, from: "working-tree" });
|
|
109
|
+
const members = declaration.members.map((m) => {
|
|
110
|
+
const reason = memberReason(m, tree, kinds);
|
|
111
|
+
return {
|
|
112
|
+
name: m.name,
|
|
113
|
+
dir: m.dir,
|
|
114
|
+
kind: m.kind,
|
|
115
|
+
roles: m.roles,
|
|
116
|
+
upstream: m.upstream,
|
|
117
|
+
because: m.because,
|
|
118
|
+
readable: reason === null,
|
|
119
|
+
reason,
|
|
120
|
+
records: unloaded(m.records),
|
|
121
|
+
generated: memberGenerated(m, tree, repoPrefix),
|
|
122
|
+
agents: sessions.agents.filter((a) => a.members.includes(m.name)).map((a) => a.name),
|
|
123
|
+
// The member's x- keys, as declared (#3595).
|
|
124
|
+
...extensionsAt(declaration, m.pointer),
|
|
125
|
+
};
|
|
126
|
+
});
|
|
127
|
+
const lsGroups = groups.map((g) => ({
|
|
128
|
+
name: g.group.name,
|
|
129
|
+
kind: "examples",
|
|
130
|
+
glob: g.group.globs,
|
|
131
|
+
matches: g.matches,
|
|
132
|
+
skipped: g.skipped,
|
|
133
|
+
reason: g.matches.length === 0
|
|
134
|
+
? { code: "no-matches", message: `no directory ${g.group.globs.join(" or ")} matches${tree.label} holds a chant project` }
|
|
135
|
+
: null,
|
|
136
|
+
}));
|
|
137
|
+
const diagrams = declaredDiagrams(declaration).map((d) => ({
|
|
138
|
+
name: d.name,
|
|
139
|
+
title: d.title,
|
|
140
|
+
source: d.source,
|
|
141
|
+
render: d.render,
|
|
142
|
+
renderer: d.renderer,
|
|
143
|
+
member: d.member,
|
|
144
|
+
}));
|
|
145
|
+
const doc = {
|
|
146
|
+
...head,
|
|
147
|
+
at,
|
|
148
|
+
workspace: {
|
|
149
|
+
name: declaration.name,
|
|
150
|
+
root: located.root,
|
|
151
|
+
file: declaration.file,
|
|
152
|
+
schema: declaration.schema,
|
|
153
|
+
minReader: declaration.minReader,
|
|
154
|
+
pins: declaration.pins,
|
|
155
|
+
records: unloaded(declaration.records),
|
|
156
|
+
agentsFrom: sessions.from,
|
|
157
|
+
...extensionsAt(declaration, ""),
|
|
158
|
+
},
|
|
159
|
+
members,
|
|
160
|
+
groups: lsGroups,
|
|
161
|
+
diagrams,
|
|
162
|
+
ci: declaration.ci
|
|
163
|
+
? {
|
|
164
|
+
green: declaration.ci.green
|
|
165
|
+
? {
|
|
166
|
+
branch: declaration.ci.green.branch,
|
|
167
|
+
window: declaration.ci.green.window,
|
|
168
|
+
phases: declaration.ci.green.phases.map((p) => ({ name: p.name, runs: p.runs, skipped: p.skipped })),
|
|
169
|
+
require: declaration.ci.green.require,
|
|
170
|
+
}
|
|
171
|
+
: null,
|
|
172
|
+
}
|
|
173
|
+
: null,
|
|
174
|
+
summary: {
|
|
175
|
+
members: members.length,
|
|
176
|
+
unreadable: members.filter((m) => !m.readable).length,
|
|
177
|
+
groups: lsGroups.length,
|
|
178
|
+
matches: lsGroups.reduce((n, g) => n + g.matches.length, 0),
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
return { doc, declaration, tree, rootOnDisk };
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
if (!(err instanceof WorkspaceReadError))
|
|
185
|
+
throw err;
|
|
186
|
+
return { doc: { ...head, error: { code: err.code, message: err.message, location: err.location ?? null } } };
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
export async function runWorkspaceLs(ctx) {
|
|
190
|
+
const { args } = ctx;
|
|
191
|
+
const cwd = resolve(args.extraPositional ?? ".");
|
|
192
|
+
if (!existsSync(cwd)) {
|
|
193
|
+
console.error(formatError({ message: `${cwd} does not exist`, hint: USAGE }));
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
// The root's chant reads the declaration (ws-021).
|
|
197
|
+
const handed = await handToRootChant(cwd, args.at);
|
|
198
|
+
if (handed !== undefined)
|
|
199
|
+
return handed;
|
|
200
|
+
const doc = await listWorkspaceWithKinds({ cwd, at: args.at });
|
|
201
|
+
if (args.json) {
|
|
202
|
+
console.log(JSON.stringify(doc, null, 2));
|
|
203
|
+
}
|
|
204
|
+
else if ("error" in doc) {
|
|
205
|
+
const l = doc.error.location;
|
|
206
|
+
const where = l ? `${l.file}:${l.line}:${l.column}: ` : "";
|
|
207
|
+
console.error(formatError({ message: `${doc.error.code}: ${where}${doc.error.message}`, hint: USAGE }));
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
console.log(formatLs(doc));
|
|
211
|
+
}
|
|
212
|
+
return "error" in doc ? 1 : 0;
|
|
213
|
+
}
|
|
214
|
+
function table(rows) {
|
|
215
|
+
const widths = rows[0].map((_, c) => Math.max(...rows.map((r) => r[c].length)));
|
|
216
|
+
return rows.map((r) => r.map((cell, c) => (c === r.length - 1 ? cell : cell.padEnd(widths[c]))).join(" ").trimEnd());
|
|
217
|
+
}
|
|
218
|
+
function formatLs(doc) {
|
|
219
|
+
const lines = [];
|
|
220
|
+
const w = doc.workspace;
|
|
221
|
+
lines.push(`${w.name} (${w.root === "." ? w.file : `${w.root}/${w.file}`}${doc.at ? ` at ${doc.at.slice(0, 8)}` : ""})`);
|
|
222
|
+
if (doc.members.length > 0) {
|
|
223
|
+
lines.push("");
|
|
224
|
+
const rows = [["MEMBER", "KIND", "DIR", "ROLES"]];
|
|
225
|
+
for (const m of doc.members) {
|
|
226
|
+
rows.push([m.name, m.kind, m.dir, m.roles.map((r) => (r.path ? `${r.name}:${r.path}` : r.name)).join(",")]);
|
|
227
|
+
}
|
|
228
|
+
const rendered = table(rows);
|
|
229
|
+
lines.push(rendered[0]);
|
|
230
|
+
doc.members.forEach((m, i) => {
|
|
231
|
+
lines.push(rendered[i + 1]);
|
|
232
|
+
if (m.reason)
|
|
233
|
+
lines.push(` ${m.reason.code}: ${m.reason.message}`);
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
const kinds = [...w.records.map((r) => ({ owner: "(workspace)", r })), ...doc.members.flatMap((m) => m.records.map((r) => ({ owner: m.name, r })))];
|
|
237
|
+
if (kinds.length > 0) {
|
|
238
|
+
lines.push("");
|
|
239
|
+
const rows = [["RECORDS", "KIND", "MEMBER", "FILE"]];
|
|
240
|
+
for (const { owner, r } of kinds)
|
|
241
|
+
rows.push([r.name ?? "-", r.kind ?? "-", owner, r.path]);
|
|
242
|
+
const rendered = table(rows);
|
|
243
|
+
lines.push(rendered[0]);
|
|
244
|
+
kinds.forEach(({ r }, i) => {
|
|
245
|
+
lines.push(rendered[i + 1]);
|
|
246
|
+
if (r.reason)
|
|
247
|
+
lines.push(` ${r.reason.code}: ${r.reason.message}`);
|
|
248
|
+
for (const a of r.acceptance ?? [])
|
|
249
|
+
lines.push(` ${a.item} ${a.state ?? "-"}: ${a.met}/${a.total} criteria met`);
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
if (doc.diagrams.length > 0) {
|
|
253
|
+
lines.push("");
|
|
254
|
+
const rows = [["DIAGRAM", "MEMBER", "SOURCE", "RENDER", "RENDERER"]];
|
|
255
|
+
for (const d of doc.diagrams)
|
|
256
|
+
rows.push([d.name, d.member ?? "(workspace)", d.source ?? "-", d.render ?? "-", `${d.renderer.tool} ${d.renderer.version}`]);
|
|
257
|
+
lines.push(...table(rows));
|
|
258
|
+
}
|
|
259
|
+
if (doc.groups.length > 0) {
|
|
260
|
+
lines.push("");
|
|
261
|
+
const rows = [["GROUP", "KIND", "GLOB", "PROJECTS"]];
|
|
262
|
+
for (const g of doc.groups)
|
|
263
|
+
rows.push([g.name, g.kind, g.glob.join(" "), String(g.matches.length)]);
|
|
264
|
+
const rendered = table(rows);
|
|
265
|
+
lines.push(rendered[0]);
|
|
266
|
+
doc.groups.forEach((g, i) => {
|
|
267
|
+
lines.push(rendered[i + 1]);
|
|
268
|
+
if (g.reason)
|
|
269
|
+
lines.push(` ${g.reason.code}: ${g.reason.message}`);
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
const s = doc.summary;
|
|
273
|
+
lines.push("");
|
|
274
|
+
lines.push(`${s.members} member${s.members === 1 ? "" : "s"}, ${s.unreadable} unreadable; ` +
|
|
275
|
+
`${s.groups} example group${s.groups === 1 ? "" : "s"} with ${s.matches} project${s.matches === 1 ? "" : "s"}`);
|
|
276
|
+
return lines.join("\n");
|
|
277
|
+
}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://intentius.io/chant/schemas/workspace/ls/v1/ls.schema.json",
|
|
4
|
+
"title": "chant workspace ls output",
|
|
5
|
+
"description": "What `chant workspace ls --json` prints, version 1 of the read contract for listing a workspace (#2524 D15, #2534). Readers ignore fields they do not know; a field is only ever added within a version. The reason and error codes are closed lists: a new code is a new contract version. Contract version 1 is written by chant 0.81.0 and newer; a reader that needs it refuses output whose `contract` it doesn't know. Every code is in the one closed list of `reason-codes.ts`.",
|
|
6
|
+
"oneOf": [{ "$ref": "#/$defs/result" }, { "$ref": "#/$defs/failure" }],
|
|
7
|
+
"$defs": {
|
|
8
|
+
"ciGreen": {
|
|
9
|
+
"description": "Which commits chant ci tick tags green: the first-parent commits of branch within window whose required phases all passed.",
|
|
10
|
+
"type": "object",
|
|
11
|
+
"required": ["branch", "window", "phases", "require"],
|
|
12
|
+
"properties": {
|
|
13
|
+
"branch": { "type": "string" },
|
|
14
|
+
"window": { "type": "string", "description": "Such as 24h, the default." },
|
|
15
|
+
"phases": {
|
|
16
|
+
"description": "In file order.",
|
|
17
|
+
"type": "array",
|
|
18
|
+
"items": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"required": ["name", "runs", "skipped"],
|
|
21
|
+
"properties": {
|
|
22
|
+
"name": { "type": "string" },
|
|
23
|
+
"runs": { "type": "array", "items": { "type": "string" }, "description": "Check-run name patterns, * standing for any run of characters." },
|
|
24
|
+
"skipped": { "enum": ["pass", "fail"], "description": "What a run that finished as skipped counts as." }
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"require": { "type": "array", "items": { "type": "string" } }
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"result": {
|
|
32
|
+
"description": "The declaration was read. Exit code 0, even when some members can't be read.",
|
|
33
|
+
"type": "object",
|
|
34
|
+
"required": ["$schema", "contract", "chant", "at", "workspace", "members", "groups", "diagrams", "summary"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"$schema": { "const": "https://intentius.io/chant/schemas/workspace/ls/v1/ls.schema.json" },
|
|
37
|
+
"contract": { "const": 1 },
|
|
38
|
+
"chant": { "type": "string", "description": "The version of the chant that read the workspace." },
|
|
39
|
+
"at": {
|
|
40
|
+
"description": "The full commit id the workspace was read at (--at), or null for the working tree.",
|
|
41
|
+
"type": ["string", "null"],
|
|
42
|
+
"pattern": "^[0-9a-f]{40,64}$"
|
|
43
|
+
},
|
|
44
|
+
"error": false,
|
|
45
|
+
"workspace": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"patternProperties": { "^x-": { "description": "Added in contract 1 by #3595. An x- key the declaration holds at the top level, with its value as written." } },
|
|
48
|
+
"required": ["name", "root", "file", "schema", "minReader", "pins"],
|
|
49
|
+
"properties": {
|
|
50
|
+
"name": { "type": "string", "description": "The declared name. With the revision, it identifies the workspace." },
|
|
51
|
+
"root": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "The workspace root relative to the git root, with / separators, \".\" for the git root itself. An absolute path outside a git repository."
|
|
54
|
+
},
|
|
55
|
+
"file": { "enum": ["chant.workspace.json", "chant.workspace.jsonc"] },
|
|
56
|
+
"schema": { "const": 1 },
|
|
57
|
+
"minReader": { "type": ["string", "null"] },
|
|
58
|
+
"pins": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"required": ["package", "version", "path", "integrity"],
|
|
63
|
+
"properties": {
|
|
64
|
+
"package": { "type": ["string", "null"] },
|
|
65
|
+
"version": { "type": ["string", "null"] },
|
|
66
|
+
"path": { "type": ["string", "null"] },
|
|
67
|
+
"integrity": { "type": ["string", "null"] }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"records": {
|
|
72
|
+
"description": "Added in contract 1 by #2680. The workspace's own record kinds, from the declaration's top-level records, in file order.",
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": { "$ref": "#/$defs/recordKind" }
|
|
75
|
+
},
|
|
76
|
+
"agentsFrom": {
|
|
77
|
+
"description": "Added in contract 1 by #3615. Where the members' agents were read: base, the declaration at the base revision (origin/HEAD, main or master), as chant workspace agent and the write paths read it; working-tree, when there is no base or no declaration at it; at, the declaration at the --at revision.",
|
|
78
|
+
"enum": ["base", "working-tree", "at"]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"members": {
|
|
83
|
+
"description": "Every member, in declaration order, readable or not.",
|
|
84
|
+
"type": "array",
|
|
85
|
+
"items": { "$ref": "#/$defs/member" }
|
|
86
|
+
},
|
|
87
|
+
"groups": {
|
|
88
|
+
"description": "Every example group (ws-051), in declaration order. Their matches are not members.",
|
|
89
|
+
"type": "array",
|
|
90
|
+
"items": { "$ref": "#/$defs/group" }
|
|
91
|
+
},
|
|
92
|
+
"diagrams": {
|
|
93
|
+
"description": "Added in contract 1 by #2764. Every declared diagram artifact, flattened across the workspace and its members: the workspace's own first, then each member's, in file order.",
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": { "$ref": "#/$defs/diagram" }
|
|
96
|
+
},
|
|
97
|
+
"ci": {
|
|
98
|
+
"description": "Added in contract 1 by #3573 (ws-103), so absent from an older chant's output. The declaration's ci block with its defaults filled in, or null when it has none; green is null when the block declares no green.",
|
|
99
|
+
"oneOf": [
|
|
100
|
+
{ "type": "null" },
|
|
101
|
+
{
|
|
102
|
+
"type": "object",
|
|
103
|
+
"required": ["green"],
|
|
104
|
+
"properties": { "green": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/ciGreen" }] } }
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"summary": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"required": ["members", "unreadable", "groups", "matches"],
|
|
111
|
+
"properties": {
|
|
112
|
+
"members": { "type": "integer", "minimum": 0 },
|
|
113
|
+
"unreadable": { "type": "integer", "minimum": 0, "description": "Members with a reason." },
|
|
114
|
+
"groups": { "type": "integer", "minimum": 0 },
|
|
115
|
+
"matches": { "type": "integer", "minimum": 0, "description": "Projects across all groups." }
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"member": {
|
|
121
|
+
"type": "object",
|
|
122
|
+
"patternProperties": { "^x-": { "description": "Added in contract 1 by #3595. An x- key the declaration holds on this object, with its value as written." } },
|
|
123
|
+
"required": ["name", "dir", "kind", "roles", "upstream", "because", "readable", "reason"],
|
|
124
|
+
"properties": {
|
|
125
|
+
"name": { "type": "string" },
|
|
126
|
+
"dir": { "type": "string", "description": "Relative to the workspace root, with / separators; \".\" is the root member." },
|
|
127
|
+
"kind": { "type": "string" },
|
|
128
|
+
"roles": {
|
|
129
|
+
"type": "array",
|
|
130
|
+
"items": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"required": ["name", "path"],
|
|
133
|
+
"properties": {
|
|
134
|
+
"name": { "type": "string" },
|
|
135
|
+
"path": { "type": ["string", "null"], "description": "Relative to the member's directory, or null for the whole member." }
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"upstream": { "type": ["string", "null"] },
|
|
140
|
+
"because": { "type": ["string", "null"] },
|
|
141
|
+
"readable": { "type": "boolean", "description": "True exactly when reason is null." },
|
|
142
|
+
"records": {
|
|
143
|
+
"description": "Added in contract 1 by #2680. The record kinds the member declares, in file order. A kind that can't be loaded does not make the member unreadable.",
|
|
144
|
+
"type": "array",
|
|
145
|
+
"items": { "$ref": "#/$defs/recordKind" }
|
|
146
|
+
},
|
|
147
|
+
"generated": {
|
|
148
|
+
"description": "Added in contract 1 by #3050. The files the member generates, from its declared generated entries and from the record `chant build --components --generate` and `chant run --generate` write, sorted by path. A hand-written entry is not listed.",
|
|
149
|
+
"type": "array",
|
|
150
|
+
"items": { "$ref": "#/$defs/generatedFile" }
|
|
151
|
+
},
|
|
152
|
+
"agents": {
|
|
153
|
+
"description": "Added in contract 1 by #3615. The names of the agent sessions the declaration binds to the member (agents[].member or agents[].members), in declaration order, read where workspace.agentsFrom says. Empty when none is. A session bound to several members is listed on each.",
|
|
154
|
+
"type": "array",
|
|
155
|
+
"items": { "type": "string" }
|
|
156
|
+
},
|
|
157
|
+
"reason": {
|
|
158
|
+
"oneOf": [
|
|
159
|
+
{ "type": "null" },
|
|
160
|
+
{
|
|
161
|
+
"type": "object",
|
|
162
|
+
"required": ["code", "message"],
|
|
163
|
+
"properties": {
|
|
164
|
+
"code": { "enum": ["dir-missing", "unknown-kind", "kind-probe-failed"] },
|
|
165
|
+
"message": { "type": "string" }
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
]
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"if": { "type": "object", "properties": { "readable": { "const": true } }, "required": ["readable"] },
|
|
172
|
+
"then": { "type": "object", "properties": { "reason": { "type": "null" } } },
|
|
173
|
+
"else": { "type": "object", "properties": { "reason": { "type": "object" } } }
|
|
174
|
+
},
|
|
175
|
+
"recordKind": {
|
|
176
|
+
"description": "A record kind the declaration names (#2680). chant workspace records and graph --intent read every one of them when --kind is not given.",
|
|
177
|
+
"type": "object",
|
|
178
|
+
"required": ["name", "path", "kind", "reason"],
|
|
179
|
+
"properties": {
|
|
180
|
+
"name": { "type": ["string", "null"], "description": "The name the declaration gives the kind, else the kind file's own recordKind.name, else null when the file can't be loaded." },
|
|
181
|
+
"path": { "type": "string", "description": "The kind file, relative to the workspace root, with / separators." },
|
|
182
|
+
"kind": { "type": ["string", "null"], "description": "The kind file's recordKind.name, or null when it can't be loaded." },
|
|
183
|
+
"reason": {
|
|
184
|
+
"description": "Why the kind file can't be loaded, or null. The file is looked for in the tree read, the revision under --at, and loaded from the working tree.",
|
|
185
|
+
"oneOf": [
|
|
186
|
+
{ "type": "null" },
|
|
187
|
+
{
|
|
188
|
+
"type": "object",
|
|
189
|
+
"required": ["code", "message"],
|
|
190
|
+
"properties": {
|
|
191
|
+
"code": { "enum": ["kind-unreadable", "kind-invalid", "schema-unreadable", "schema-id-mismatch"] },
|
|
192
|
+
"message": { "type": "string" }
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
"acceptance": {
|
|
198
|
+
"description": "Added in contract 1 by #2772. For a work kind whose work block names acceptance criteria: each current work item that lists some, in path order, with how many of its criteria passing evidence meets, read in the tree read. Null for any other kind, and when the kind or its records can't be read.",
|
|
199
|
+
"oneOf": [
|
|
200
|
+
{ "type": "null" },
|
|
201
|
+
{
|
|
202
|
+
"type": "array",
|
|
203
|
+
"items": {
|
|
204
|
+
"type": "object",
|
|
205
|
+
"required": ["item", "state", "met", "total"],
|
|
206
|
+
"properties": {
|
|
207
|
+
"item": { "type": "string", "description": "The work item's id." },
|
|
208
|
+
"state": { "type": ["string", "null"], "description": "The item's state." },
|
|
209
|
+
"met": { "type": "integer", "minimum": 0, "description": "Criteria met by evidence naming them, with result pass and the criterion's verification; a manual verdict counts only from someone other than the implementer." },
|
|
210
|
+
"total": { "type": "integer", "minimum": 0, "description": "Criteria the item lists." }
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
]
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"generatedFile": {
|
|
219
|
+
"type": "object",
|
|
220
|
+
"required": ["path", "command", "env", "jobs"],
|
|
221
|
+
"properties": {
|
|
222
|
+
"path": { "type": "string", "description": "From the repository root, with / separators, which is how a forge reads a CI file. For a workspace below the git root, that includes the workspace root." },
|
|
223
|
+
"command": { "type": "string", "description": "The command that regenerates the file, run in the member's directory. Empty when a record names none." },
|
|
224
|
+
"env": { "type": ["string", "null"], "description": "The environment a component pipeline deploys, or null." },
|
|
225
|
+
"jobs": {
|
|
226
|
+
"description": "The check names a forge CI file declares: for GitHub, Forgejo and Gitea the job's name, else its id; for GitLab the job's key. Null for any other file, and for a CI file that is missing from the tree read or can't be parsed.",
|
|
227
|
+
"type": ["array", "null"],
|
|
228
|
+
"items": { "type": "string" }
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
"diagram": {
|
|
233
|
+
"description": "A diagram artifact the declaration names (#2764), pinned to the renderer its render was made with. chant runs no renderer; everything here comes straight from the declaration.",
|
|
234
|
+
"type": "object",
|
|
235
|
+
"required": ["name", "title", "source", "render", "renderer", "member"],
|
|
236
|
+
"properties": {
|
|
237
|
+
"name": { "type": "string" },
|
|
238
|
+
"title": { "type": "string" },
|
|
239
|
+
"source": { "type": ["string", "null"], "description": "From the workspace root, with / separators. Null for an SVG with no source." },
|
|
240
|
+
"render": { "type": ["string", "null"], "description": "From the workspace root, with / separators. Null for a mermaid or excalidraw diagram with no committed render: a reader draws it from its source." },
|
|
241
|
+
"renderer": {
|
|
242
|
+
"type": "object",
|
|
243
|
+
"required": ["tool", "version", "args"],
|
|
244
|
+
"properties": {
|
|
245
|
+
"tool": { "enum": ["d2", "mermaid", "graphviz", "excalidraw"] },
|
|
246
|
+
"version": { "type": "string", "description": "The exact release the render was made with, such as 0.9.0. For mermaid or excalidraw, the release of the library a reader draws the source with." },
|
|
247
|
+
"args": { "type": "array", "items": { "type": "string" }, "description": "Passed before the input and output paths, in order." }
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
"member": { "type": ["string", "null"], "description": "The member that declares it, or null for the workspace's own." }
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"group": {
|
|
254
|
+
"type": "object",
|
|
255
|
+
"required": ["name", "kind", "glob", "matches", "skipped", "reason"],
|
|
256
|
+
"properties": {
|
|
257
|
+
"name": { "type": "string" },
|
|
258
|
+
"kind": { "const": "examples" },
|
|
259
|
+
"glob": { "type": "array", "minItems": 1, "items": { "type": "string" } },
|
|
260
|
+
"matches": {
|
|
261
|
+
"type": "array",
|
|
262
|
+
"items": { "type": "string" },
|
|
263
|
+
"description": "Directories the globs match that hold a chant project, relative to the workspace root, sorted. They are built and linted, and nothing else."
|
|
264
|
+
},
|
|
265
|
+
"skipped": {
|
|
266
|
+
"type": "array",
|
|
267
|
+
"items": { "type": "string" },
|
|
268
|
+
"description": "Directories the globs match that hold no chant project. They are left alone."
|
|
269
|
+
},
|
|
270
|
+
"reason": {
|
|
271
|
+
"oneOf": [
|
|
272
|
+
{ "type": "null" },
|
|
273
|
+
{
|
|
274
|
+
"type": "object",
|
|
275
|
+
"required": ["code", "message"],
|
|
276
|
+
"properties": {
|
|
277
|
+
"code": { "enum": ["no-matches"] },
|
|
278
|
+
"message": { "type": "string" }
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
]
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
"failure": {
|
|
286
|
+
"description": "The declaration could not be read, and nothing is listed. Exit code 1.",
|
|
287
|
+
"type": "object",
|
|
288
|
+
"required": ["$schema", "contract", "chant", "error"],
|
|
289
|
+
"properties": {
|
|
290
|
+
"$schema": { "const": "https://intentius.io/chant/schemas/workspace/ls/v1/ls.schema.json" },
|
|
291
|
+
"contract": { "const": 1 },
|
|
292
|
+
"chant": { "type": "string" },
|
|
293
|
+
"error": {
|
|
294
|
+
"type": "object",
|
|
295
|
+
"required": ["code", "message", "location"],
|
|
296
|
+
"properties": {
|
|
297
|
+
"code": {
|
|
298
|
+
"enum": [
|
|
299
|
+
"declaration-missing",
|
|
300
|
+
"declaration-ambiguous",
|
|
301
|
+
"declaration-unparseable",
|
|
302
|
+
"declaration-invalid",
|
|
303
|
+
"placement-invalid",
|
|
304
|
+
"reader-too-old",
|
|
305
|
+
"root-chant-required",
|
|
306
|
+
"not-a-git-repository",
|
|
307
|
+
"revision-unknown"
|
|
308
|
+
]
|
|
309
|
+
},
|
|
310
|
+
"message": { "type": "string" },
|
|
311
|
+
"location": {
|
|
312
|
+
"description": "Where in the declaration the problem is, or null when it is not in the file.",
|
|
313
|
+
"oneOf": [
|
|
314
|
+
{ "type": "null" },
|
|
315
|
+
{
|
|
316
|
+
"type": "object",
|
|
317
|
+
"required": ["file", "line", "column"],
|
|
318
|
+
"properties": {
|
|
319
|
+
"file": { "type": "string" },
|
|
320
|
+
"line": { "type": "integer", "minimum": 1 },
|
|
321
|
+
"column": { "type": "integer", "minimum": 1 }
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
]
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
"members": false,
|
|
329
|
+
"workspace": false
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|