@intentius/chant 0.124.13 → 0.124.15
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.d.ts +6 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +669 -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.d.ts +24 -2
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +361 -0
- package/dist/child-project.js +21 -0
- package/dist/ci-jobs.d.ts +227 -0
- package/dist/ci-jobs.d.ts.map +1 -0
- package/dist/ci-jobs.js +448 -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.d.ts.map +1 -1
- package/dist/components/pr-pipeline.js +135 -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.d.ts +10 -2
- package/dist/composite.d.ts.map +1 -1
- package/dist/composite.js +313 -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.d.ts +2 -1
- package/dist/discovery/collect.d.ts.map +1 -1
- package/dist/discovery/collect.js +223 -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 +4073 -0
- package/dist/discovery/fold-rank.js +292 -0
- package/dist/discovery/graph.js +115 -0
- package/dist/discovery/host-composite.d.ts +35 -0
- package/dist/discovery/host-composite.d.ts.map +1 -0
- package/dist/discovery/host-composite.js +93 -0
- package/dist/discovery/import.d.ts.map +1 -1
- package/dist/discovery/import.js +65 -0
- package/dist/discovery/index.d.ts +9 -0
- package/dist/discovery/index.d.ts.map +1 -1
- 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 +20 -9
- package/dist/gate-decision.d.ts.map +1 -1
- package/dist/gate-decision.js +313 -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.d.ts +69 -2
- package/dist/lifecycle/gate-audit.d.ts.map +1 -1
- package/dist/lifecycle/gate-audit.js +415 -0
- package/dist/lifecycle/gate-ledger-select.js +89 -0
- package/dist/lifecycle/gate-ledger.d.ts +24 -0
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.js +201 -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.d.ts +1 -1
- 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.d.ts +8 -3
- package/dist/op/activities/change-set.d.ts.map +1 -1
- package/dist/op/activities/change-set.js +67 -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.d.ts +28 -16
- package/dist/op/activities/reconcile.d.ts.map +1 -1
- package/dist/op/activities/reconcile.js +1011 -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.d.ts +1 -1
- package/dist/op/builders.d.ts.map +1 -1
- 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.d.ts +7 -0
- package/dist/workspace/__fixtures__/contract-repo.d.ts.map +1 -1
- package/dist/workspace/__fixtures__/contract-repo.js +119 -0
- package/dist/workspace/__fixtures__/decide-workspace.js +112 -0
- package/dist/workspace/__fixtures__/sessions.d.ts +1 -1
- package/dist/workspace/__fixtures__/sessions.d.ts.map +1 -1
- 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 +462 -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.d.ts +3 -1
- package/dist/workspace/ci-green-workflow.d.ts.map +1 -1
- package/dist/workspace/ci-green-workflow.js +202 -0
- package/dist/workspace/ci-green.js +325 -0
- package/dist/workspace/ci-last-green.schema.json +158 -0
- package/dist/workspace/class-data.d.ts +84 -0
- package/dist/workspace/class-data.d.ts.map +1 -0
- package/dist/workspace/class-data.js +238 -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.d.ts +3 -7
- package/dist/workspace/kinds.d.ts.map +1 -1
- package/dist/workspace/kinds.js +553 -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 +4 -11
- package/dist/workspace/principal-classes.d.ts.map +1 -1
- package/dist/workspace/principal-classes.js +162 -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/build.ts +8 -0
- package/src/change-set.test.ts +48 -0
- package/src/change-set.ts +52 -2
- package/src/ci-jobs.test.ts +49 -0
- package/src/ci-jobs.ts +515 -0
- 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/pr-pipeline.ts +3 -2
- package/src/components/sandbox/driver.ts +3 -1
- package/src/composite.ts +15 -3
- package/src/config-import.ts +3 -0
- package/src/discovery/collect.ts +15 -1
- package/src/discovery/fold-build-parity.test.ts +71 -0
- package/src/discovery/fold-import.ts +25 -127
- package/src/discovery/fold-project-provenance.test.ts +21 -4
- package/src/discovery/host-composite.ts +101 -0
- package/src/discovery/import.ts +2 -0
- package/src/discovery/index.ts +11 -1
- package/src/discovery/sandbox/driver.ts +3 -1
- package/src/gate-decision-bundle.test.ts +5 -4
- package/src/gate-decision-identity.test.ts +59 -6
- package/src/gate-decision.ts +81 -21
- package/src/lexicon-module.ts +3 -0
- package/src/lifecycle/gate-audit.test.ts +55 -1
- package/src/lifecycle/gate-audit.ts +116 -3
- package/src/lifecycle/gate-ledger.test.ts +20 -1
- package/src/lifecycle/gate-ledger.ts +33 -1
- 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/activities/activity-contracts.ts +1 -1
- package/src/op/activities/change-set.ts +11 -3
- package/src/op/activities/lexicon-upgrade.test.ts +2 -0
- package/src/op/activities/reconcile.test.ts +62 -2
- package/src/op/activities/reconcile.ts +46 -22
- package/src/op/builders.ts +1 -1
- package/src/op/discover.ts +3 -0
- package/src/op/op-waves-run.ts +4 -3
- package/src/op/op-waves.test.ts +2 -0
- package/src/op/work-lease-run.test.ts +12 -4
- package/src/ts-loader.test.ts +23 -0
- package/src/ts-loader.ts +122 -0
- package/src/workspace/__fixtures__/contract-repo.ts +17 -1
- package/src/workspace/__fixtures__/sessions.ts +3 -3
- package/src/workspace/change-set.schema.json +5 -3
- package/src/workspace/chant-migrations/chud-lexicon-exit.ts +1 -1
- package/src/workspace/ci-green-workflow.test.ts +4 -4
- package/src/workspace/ci-green-workflow.ts +5 -2
- package/src/workspace/class-data.test.ts +64 -0
- package/src/workspace/class-data.ts +236 -0
- package/src/workspace/declaration.ts +1 -1
- package/src/workspace/kinds.ts +7 -36
- package/src/workspace/lineage-migrations.ts +2 -0
- package/src/workspace/points.ts +1 -1
- package/src/workspace/principal-classes.ts +12 -95
- package/src/workspace/records-formats.test.ts +7 -2
- package/src/workspace/records-sessions-write.test.ts +3 -3
- package/src/workspace/status-contract.e2e.test.ts +37 -0
- package/src/workspace/status-contract.test.ts +23 -21
|
@@ -0,0 +1,998 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://intentius.io/chant/schemas/workspace/status/v1/status.schema.json",
|
|
4
|
+
"title": "chant workspace status output",
|
|
5
|
+
"description": "What `chant workspace status <env> --json` prints, version 1 of the read contract for releases across members (#2524 D15, D19, #2544). 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`. Each member's gates, read from its gate ledger on the same branch, are in the JSON only (#2674), and so is each member's box block, from the declaration (#2726), with its isolation resolved (#2727). So are its stewards, their Ops and each Op's last run (#2731), the work lease each Op's turn holds (#2748), and the open decision points a steward waits on (#2749).",
|
|
6
|
+
"oneOf": [{ "$ref": "#/$defs/result" }, { "$ref": "#/$defs/failure" }],
|
|
7
|
+
"$defs": {
|
|
8
|
+
"boxShip": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"patternProperties": { "^x-": { "description": "Added in contract 1 by #3595. An x- key the declaration holds on this object, with its value as written." } },
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"required": ["op", "gate", "env", "bookkeeping", "serving", "pending"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"op": { "type": "string", "description": "The Op in the box member that commits the staged tree and releases it." },
|
|
15
|
+
"gate": { "type": "string", "description": "The gate the Op stops at for a person's approval." },
|
|
16
|
+
"env": { "type": "string", "description": "The environment whose release ledger, under the box member, the Op records each release in." },
|
|
17
|
+
"bookkeeping": { "type": "array", "items": { "type": "string" }, "description": "Path prefixes from the workspace root whose changes never count as waiting to ship." },
|
|
18
|
+
"serving": {
|
|
19
|
+
"description": "The latest release in env's ledger, the commit the box's site serves, or null when nothing has shipped or the ledger can't be read.",
|
|
20
|
+
"oneOf": [
|
|
21
|
+
{ "type": "null" },
|
|
22
|
+
{
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["commit", "digest", "component", "at", "actor"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"commit": { "type": "string" },
|
|
28
|
+
"digest": { "type": "string" },
|
|
29
|
+
"component": { "type": "string" },
|
|
30
|
+
"at": { "type": "string" },
|
|
31
|
+
"actor": { "type": ["string", "null"] }
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"pending": {
|
|
37
|
+
"description": "What is waiting to ship: the files that differ between serving.commit and the working tree, tracked or untracked and not ignored, bookkeeping left out. paths is sorted and lists at most 200. Null when nothing has shipped or the serving commit isn't in this checkout.",
|
|
38
|
+
"oneOf": [
|
|
39
|
+
{ "type": "null" },
|
|
40
|
+
{
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["files", "paths"],
|
|
44
|
+
"properties": {
|
|
45
|
+
"files": { "type": "integer", "minimum": 0 },
|
|
46
|
+
"paths": { "type": "array", "items": { "type": "string" }, "maxItems": 200 }
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"result": {
|
|
54
|
+
"description": "The declaration was read. Exit code 0, even when some ledgers can't be read or members differ.",
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["$schema", "contract", "chant", "env", "compareTo", "lifecycle", "workspace", "members", "summary"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"$schema": { "const": "https://intentius.io/chant/schemas/workspace/status/v1/status.schema.json" },
|
|
59
|
+
"contract": { "const": 1 },
|
|
60
|
+
"chant": { "type": "string", "description": "The version of the chant that read the ledgers." },
|
|
61
|
+
"env": { "$ref": "#/$defs/env" },
|
|
62
|
+
"compareTo": {
|
|
63
|
+
"description": "The environment given to --compare-to, or null.",
|
|
64
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/env" }]
|
|
65
|
+
},
|
|
66
|
+
"error": false,
|
|
67
|
+
"lifecycle": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"required": ["ref", "commit"],
|
|
70
|
+
"properties": {
|
|
71
|
+
"ref": { "const": "chant/lifecycle" },
|
|
72
|
+
"commit": {
|
|
73
|
+
"description": "The local branch tip the ledgers were read at, or null when the checkout has no such branch. The command never fetches it.",
|
|
74
|
+
"type": ["string", "null"],
|
|
75
|
+
"pattern": "^[0-9a-f]{40,64}$"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"checkout": {
|
|
80
|
+
"description": "Added in contract 1 by #3160. The branch, head and base of the checkout status ran in. records --uncommitted --json lists the records that working tree holds modified or new against head.",
|
|
81
|
+
"type": "object",
|
|
82
|
+
"required": ["branch", "head", "base", "baseFrom"],
|
|
83
|
+
"properties": {
|
|
84
|
+
"branch": { "type": ["string", "null"], "description": "The checked-out branch's short name, such as chant/work/w-12, or null when HEAD is detached." },
|
|
85
|
+
"head": { "type": ["string", "null"], "pattern": "^[0-9a-f]{40,64}$", "description": "The full commit id HEAD names, or null before the first commit." },
|
|
86
|
+
"base": {
|
|
87
|
+
"type": ["string", "null"],
|
|
88
|
+
"pattern": "^[0-9a-f]{40,64}$",
|
|
89
|
+
"description": "The merge base of head and the target branch tip (origin/HEAD, else main, else master), the commit the branch forked from. Null without a head, a target, or common history."
|
|
90
|
+
},
|
|
91
|
+
"baseFrom": { "enum": ["origin/HEAD", "main", "master", null], "description": "Where the target branch was found; null when there is none." }
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"replication": {
|
|
95
|
+
"description": "Added in contract 1 by #3172. When a box block declares replicate (ws-085), where each ref it names (work branches, kept attempts, work-in-progress snapshots, the ledger branch) stands against the remote: replicated, or how many commits ahead. Read from the local refs and what chant recorded at its last push or fetch under refs/chant/replica/<remote>/; the command never fetches. chant workspace wip --json prints the same, with each branch's snapshots. null when no box declares replicate.",
|
|
96
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/replication" }]
|
|
97
|
+
},
|
|
98
|
+
"plantable": {
|
|
99
|
+
"description": "Added in contract 1 by #3146. Whether a host such as a studio's planter can plant the workspace as one box: exactly one member's box block declares services. Not a check: a records-only or infra workspace is valid and simply not plantable.",
|
|
100
|
+
"$ref": "#/$defs/plantable"
|
|
101
|
+
},
|
|
102
|
+
"workspace": {
|
|
103
|
+
"type": "object",
|
|
104
|
+
"required": ["name", "root", "file"],
|
|
105
|
+
"properties": {
|
|
106
|
+
"name": { "type": "string" },
|
|
107
|
+
"root": { "type": "string", "description": "The workspace root relative to the git root, with / separators, \".\" for the git root itself." },
|
|
108
|
+
"file": { "enum": ["chant.workspace.json", "chant.workspace.jsonc"] }
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"members": {
|
|
112
|
+
"description": "Every member, in declaration order. Example groups have no ledger and are not listed.",
|
|
113
|
+
"type": "array",
|
|
114
|
+
"items": { "$ref": "#/$defs/member" }
|
|
115
|
+
},
|
|
116
|
+
"leases": {
|
|
117
|
+
"description": "Added in contract 1 by #2732. Every work lease (chant workspace work claim) in the flat ledger and each member's, active and expired, by member (flat first) and then item. Read from the local lease refs, refs/chant/lease/[_members/<member>/]work/<id> and the remote's as last fetched; the command never fetches. A released lease has no ref and is not listed; its history is _leases/<id>.jsonl on chant/lifecycle.",
|
|
118
|
+
"type": "array",
|
|
119
|
+
"items": { "$ref": "#/$defs/lease" }
|
|
120
|
+
},
|
|
121
|
+
"acceptance": {
|
|
122
|
+
"description": "Added in contract 1 by #2772. Each current work item of a declared work kind whose work block names acceptance criteria, when the item lists some, by declared kind and then item, read in the working tree: how many of its criteria passing evidence meets. Empty when no declared work kind has criteria. A done item with a criterion unmet is what chant workspace check fails on (WSP117).",
|
|
123
|
+
"type": "array",
|
|
124
|
+
"items": { "$ref": "#/$defs/acceptance" }
|
|
125
|
+
},
|
|
126
|
+
"summary": {
|
|
127
|
+
"type": "object",
|
|
128
|
+
"required": ["members", "released", "unreadable", "differing"],
|
|
129
|
+
"properties": {
|
|
130
|
+
"members": { "type": "integer", "minimum": 0 },
|
|
131
|
+
"released": { "type": "integer", "minimum": 0, "description": "Members with at least one release in env." },
|
|
132
|
+
"unreadable": { "type": "integer", "minimum": 0, "description": "Members with a reason in any environment." },
|
|
133
|
+
"differing": {
|
|
134
|
+
"type": ["integer", "null"],
|
|
135
|
+
"minimum": 0,
|
|
136
|
+
"description": "Members whose compare differs, or null without --compare-to."
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"acceptance": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"required": ["member", "kind", "item", "state", "met", "total"],
|
|
145
|
+
"properties": {
|
|
146
|
+
"member": { "type": ["string", "null"], "description": "The member that declares the work kind, or null for the workspace's own." },
|
|
147
|
+
"kind": { "type": "string", "description": "The work kind file, from the workspace root." },
|
|
148
|
+
"item": { "type": "string", "description": "The work item's id." },
|
|
149
|
+
"state": { "type": ["string", "null"], "description": "The item's state." },
|
|
150
|
+
"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." },
|
|
151
|
+
"total": { "type": "integer", "minimum": 0, "description": "Criteria the item lists." }
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
"lease": {
|
|
155
|
+
"type": "object",
|
|
156
|
+
"required": ["item", "member", "ref", "holder", "token", "acquiredAt", "expiresAt", "state"],
|
|
157
|
+
"properties": {
|
|
158
|
+
"item": { "type": "string", "description": "The work item's id." },
|
|
159
|
+
"member": { "type": ["string", "null"], "description": "The member whose ledger holds the lease: the one owning the work kind file, or null for the flat ledger." },
|
|
160
|
+
"ref": { "type": "string", "description": "The lease ref, refs/chant/lease/work/<id> or refs/chant/lease/_members/<member>/work/<id>." },
|
|
161
|
+
"holder": { "type": "string" },
|
|
162
|
+
"token": { "type": "string", "description": "The fencing token: new on every claim, kept by every renew." },
|
|
163
|
+
"acquiredAt": { "type": "string" },
|
|
164
|
+
"expiresAt": { "type": "string" },
|
|
165
|
+
"state": { "enum": ["active", "expired"], "description": "expired once expiresAt has passed: the item can be claimed again, with a new token." }
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"env": {
|
|
169
|
+
"type": "string",
|
|
170
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$"
|
|
171
|
+
},
|
|
172
|
+
"member": {
|
|
173
|
+
"type": "object",
|
|
174
|
+
"patternProperties": { "^x-": { "description": "Added in contract 1 by #3595. An x- key the declaration holds on this object, with its value as written." } },
|
|
175
|
+
"required": ["name", "dir", "kind", "fields", "environments", "compare", "readable", "gateLedger", "gates", "box", "stewards", "stewardReasons"],
|
|
176
|
+
"properties": {
|
|
177
|
+
"name": { "type": "string" },
|
|
178
|
+
"dir": { "type": "string", "description": "Relative to the workspace root, with / separators; \".\" is the root member." },
|
|
179
|
+
"kind": { "type": "string" },
|
|
180
|
+
"fields": {
|
|
181
|
+
"description": "The fields the member's kind declares (#3151), each set from the entry or its default, null when it has neither. Null when the kind declares no fields or no pinned package supplies it. A value of the wrong type reads as the default, and chant workspace check reports it (WSP005). Added in contract 1 by chant 0.103.0.",
|
|
182
|
+
"type": ["object", "null"],
|
|
183
|
+
"additionalProperties": {
|
|
184
|
+
"oneOf": [
|
|
185
|
+
{ "type": "string" },
|
|
186
|
+
{ "type": "integer" },
|
|
187
|
+
{ "type": "boolean" },
|
|
188
|
+
{ "type": "null" },
|
|
189
|
+
{ "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "integer" }, { "type": "boolean" }, { "type": "null" }] } }
|
|
190
|
+
]
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"environments": {
|
|
194
|
+
"description": "env first, then compareTo when it is given and differs from env.",
|
|
195
|
+
"type": "array",
|
|
196
|
+
"minItems": 1,
|
|
197
|
+
"maxItems": 2,
|
|
198
|
+
"items": { "$ref": "#/$defs/environment" }
|
|
199
|
+
},
|
|
200
|
+
"compare": {
|
|
201
|
+
"description": "Null without --compare-to.",
|
|
202
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/compare" }]
|
|
203
|
+
},
|
|
204
|
+
"readable": { "type": "boolean", "description": "True exactly when no environment has a reason. A gate ledger reason doesn't change it." },
|
|
205
|
+
"gateLedger": { "$ref": "#/$defs/gateLedger" },
|
|
206
|
+
"box": {
|
|
207
|
+
"description": "The member's box block from the declaration (#2726), or null when it declares none. A broker reads the scopes it enforces here, and chant workspace check fails on a capability with a null broker (WSP122).",
|
|
208
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/box" }]
|
|
209
|
+
},
|
|
210
|
+
"gates": {
|
|
211
|
+
"description": "Each gate the member's gate ledger records, one per gate and environment, for env and compareTo. A gate that records no environment (an Op gate) is listed whatever the environment. Sorted by component, then gate. Empty when gateLedger has a reason.",
|
|
212
|
+
"type": "array",
|
|
213
|
+
"items": { "$ref": "#/$defs/gate" }
|
|
214
|
+
},
|
|
215
|
+
"stewards": {
|
|
216
|
+
"description": "The stewards the member declares in its *.op.ts files (#2731), sorted by name. Empty for a member that is not of kind chant, or has no chant.config.ts or .json in its own directory.",
|
|
217
|
+
"type": "array",
|
|
218
|
+
"items": { "$ref": "#/$defs/steward" }
|
|
219
|
+
},
|
|
220
|
+
"stewardReasons": {
|
|
221
|
+
"description": "Why a steward or an Op's last run may be missing from stewards. Empty when every one was read.",
|
|
222
|
+
"type": "array",
|
|
223
|
+
"items": {
|
|
224
|
+
"type": "object",
|
|
225
|
+
"required": ["code", "message"],
|
|
226
|
+
"properties": {
|
|
227
|
+
"code": { "enum": ["stewards-unreadable", "stewards-conflict", "steward-runs-unreadable"] },
|
|
228
|
+
"message": { "type": "string" }
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"stewardForm": { "enum": ["local", "fountain"] },
|
|
235
|
+
"steward": {
|
|
236
|
+
"type": "object",
|
|
237
|
+
"required": ["name", "file", "form", "forms", "vault", "capabilities", "lease", "ops", "waiting"],
|
|
238
|
+
"properties": {
|
|
239
|
+
"name": { "type": "string", "description": "The steward's name; on Fountain, its Agent's and Teammate's." },
|
|
240
|
+
"file": { "type": "string", "description": "The *.op.ts file that declares it, relative to the member's directory." },
|
|
241
|
+
"form": { "$ref": "#/$defs/stewardForm", "description": "Its form in env: fountain (the fountain lexicon's Agent and Teammate) or local (chant operator --steward in the box)." },
|
|
242
|
+
"forms": {
|
|
243
|
+
"type": "object",
|
|
244
|
+
"required": ["default", "environments"],
|
|
245
|
+
"properties": {
|
|
246
|
+
"default": { "$ref": "#/$defs/stewardForm" },
|
|
247
|
+
"environments": {
|
|
248
|
+
"description": "The environments whose form differs from default.",
|
|
249
|
+
"type": "object",
|
|
250
|
+
"additionalProperties": { "$ref": "#/$defs/stewardForm" }
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
"vault": { "type": ["string", "null"], "description": "The vault the steward holds on Fountain, by name, or null. Never set when capabilities is non-empty." },
|
|
255
|
+
"capabilities": {
|
|
256
|
+
"description": "The box capabilities the steward reaches through a broker (#2726), in declaration order, joined with the member's box block. broker is the block's; declared is false when the block doesn't list the capability or the member has no block.",
|
|
257
|
+
"type": "array",
|
|
258
|
+
"items": {
|
|
259
|
+
"type": "object",
|
|
260
|
+
"required": ["name", "broker", "declared"],
|
|
261
|
+
"properties": {
|
|
262
|
+
"name": { "type": "string" },
|
|
263
|
+
"broker": { "type": ["string", "null"] },
|
|
264
|
+
"declared": { "type": "boolean" }
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"lease": {
|
|
269
|
+
"description": "The local steward's own lease ref, read locally and never fetched, or null when no local operator has held it. live is false once expiresAt has passed.",
|
|
270
|
+
"oneOf": [
|
|
271
|
+
{ "type": "null" },
|
|
272
|
+
{
|
|
273
|
+
"type": "object",
|
|
274
|
+
"required": ["holder", "acquiredAt", "expiresAt", "live"],
|
|
275
|
+
"properties": {
|
|
276
|
+
"holder": { "type": "string" },
|
|
277
|
+
"acquiredAt": { "type": "string" },
|
|
278
|
+
"expiresAt": { "type": "string" },
|
|
279
|
+
"live": { "type": "boolean" }
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
"ops": {
|
|
285
|
+
"description": "The Ops it runs, in declaration order: its turns' Ops, then those it runs beside its turns (#2861).",
|
|
286
|
+
"type": "array",
|
|
287
|
+
"items": {
|
|
288
|
+
"type": "object",
|
|
289
|
+
"required": ["name", "schedule", "env", "lastRun", "inFlight", "lastTick", "changesCheckout", "workLease", "beside"],
|
|
290
|
+
"properties": {
|
|
291
|
+
"name": { "type": "string" },
|
|
292
|
+
"schedule": {
|
|
293
|
+
"description": "The Op's cadence, or null for an Op the steward runs only when asked.",
|
|
294
|
+
"oneOf": [
|
|
295
|
+
{ "type": "null" },
|
|
296
|
+
{
|
|
297
|
+
"type": "object",
|
|
298
|
+
"required": ["cron", "overlap"],
|
|
299
|
+
"properties": { "cron": { "type": "string" }, "overlap": { "const": "skip" } }
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
},
|
|
303
|
+
"env": { "type": "string", "description": "The environment its runs are recorded under: its labels.Env, or local." },
|
|
304
|
+
"lastRun": {
|
|
305
|
+
"description": "The newest record in the Op's run ledger on chant/lifecycle, or null when it has none.",
|
|
306
|
+
"oneOf": [
|
|
307
|
+
{ "type": "null" },
|
|
308
|
+
{
|
|
309
|
+
"type": "object",
|
|
310
|
+
"required": ["id", "status", "started", "ended", "gate", "point", "phases"],
|
|
311
|
+
"properties": {
|
|
312
|
+
"id": { "type": "string" },
|
|
313
|
+
"status": { "enum": ["ok", "fail", "gated", "waiting"], "description": "waiting: an activity asked a decision point that is still open (#2749), and the run stopped there." },
|
|
314
|
+
"started": { "type": "string" },
|
|
315
|
+
"ended": { "type": "string" },
|
|
316
|
+
"gate": {
|
|
317
|
+
"oneOf": [
|
|
318
|
+
{ "type": "null" },
|
|
319
|
+
{
|
|
320
|
+
"type": "object",
|
|
321
|
+
"required": ["name", "since"],
|
|
322
|
+
"properties": {
|
|
323
|
+
"name": { "type": "string" },
|
|
324
|
+
"since": { "type": "string" },
|
|
325
|
+
"op": { "type": "string", "description": "The op the gate is recorded under: the Op's own, or the command's when a step's command stopped at a gate of its own (#2779), such as workspace-upgrade." },
|
|
326
|
+
"approve": { "type": "string", "description": "The command that approves the gate, run in the member's directory." }
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
]
|
|
330
|
+
},
|
|
331
|
+
"point": {
|
|
332
|
+
"description": "The decision point a waiting run stopped on (#2749), or null. Its state is the question's now, as `points` reads it: `answered` once a person has answered it. When the questions can't be read, or the answer record is gone, it is the state the run ledger recorded.",
|
|
333
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/stewardWait" }]
|
|
334
|
+
},
|
|
335
|
+
"phases": {
|
|
336
|
+
"description": "Each phase of the run in execution order, with its verdict and its wall-clock time in milliseconds. For a record written before chant kept phase times, durationMs is the sum of its steps' times. A phase skipped whole has 0. Added by chant 0.96.0.",
|
|
337
|
+
"type": "array",
|
|
338
|
+
"items": { "$ref": "#/$defs/runPhase" }
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
]
|
|
343
|
+
},
|
|
344
|
+
"inFlight": {
|
|
345
|
+
"description": "The run of the Op in flight now, or null when none is. A run that writes to the run ledger keeps a record beside the checkout's git directory while it runs and removes it once its ledger record is written; a record whose process on this host is gone is not in flight. phase and step are what it is doing now (step is the newest step still running, named by its id, or its activity when it has none), phases the phases it has finished, and activity the newest lines its steps reported (a shell step appends them to the file in CHANT_RUN_ACTIVITY), with seq counting from 1 over the run and total the count so far. item is the work item its lease holds, once claimed. Added by chant 0.96.0.",
|
|
346
|
+
"oneOf": [
|
|
347
|
+
{ "type": "null" },
|
|
348
|
+
{
|
|
349
|
+
"type": "object",
|
|
350
|
+
"required": ["id", "started", "updated", "steward", "item", "phase", "step", "phases", "activity"],
|
|
351
|
+
"properties": {
|
|
352
|
+
"id": { "type": "string", "description": "The run's id: the id its ledger record will have." },
|
|
353
|
+
"started": { "type": "string" },
|
|
354
|
+
"updated": { "type": "string", "description": "When the run last changed its record." },
|
|
355
|
+
"steward": { "type": ["string", "null"] },
|
|
356
|
+
"item": { "type": ["string", "null"] },
|
|
357
|
+
"phase": {
|
|
358
|
+
"oneOf": [
|
|
359
|
+
{ "type": "null" },
|
|
360
|
+
{ "type": "object", "required": ["name", "started"], "properties": { "name": { "type": "string" }, "started": { "type": "string" } } }
|
|
361
|
+
]
|
|
362
|
+
},
|
|
363
|
+
"step": {
|
|
364
|
+
"oneOf": [
|
|
365
|
+
{ "type": "null" },
|
|
366
|
+
{
|
|
367
|
+
"type": "object",
|
|
368
|
+
"required": ["name", "fn", "started"],
|
|
369
|
+
"properties": { "name": { "type": "string" }, "fn": { "type": "string" }, "started": { "type": "string" } }
|
|
370
|
+
}
|
|
371
|
+
]
|
|
372
|
+
},
|
|
373
|
+
"phases": { "type": "array", "items": { "$ref": "#/$defs/runPhase" } },
|
|
374
|
+
"activity": {
|
|
375
|
+
"type": "object",
|
|
376
|
+
"required": ["total", "lines"],
|
|
377
|
+
"properties": {
|
|
378
|
+
"total": { "type": "integer" },
|
|
379
|
+
"lines": {
|
|
380
|
+
"type": "array",
|
|
381
|
+
"items": {
|
|
382
|
+
"type": "object",
|
|
383
|
+
"required": ["seq", "at", "text"],
|
|
384
|
+
"properties": { "seq": { "type": "integer" }, "at": { "type": ["string", "null"] }, "text": { "type": "string" } }
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
]
|
|
392
|
+
},
|
|
393
|
+
"lastTick": {
|
|
394
|
+
"description": "For a ConvergeOp, its newest tick on the converge ledger (#2778): the rules that fired, what each did and for which resource, and what its observer step reported. null for any other Op, or before its first tick.",
|
|
395
|
+
"oneOf": [
|
|
396
|
+
{ "type": "null" },
|
|
397
|
+
{
|
|
398
|
+
"type": "object",
|
|
399
|
+
"required": ["id", "timestamp", "log", "firedRuleIds", "outcomes", "resources"],
|
|
400
|
+
"properties": {
|
|
401
|
+
"id": { "type": ["string", "null"] },
|
|
402
|
+
"timestamp": { "type": "string" },
|
|
403
|
+
"log": { "type": "string" },
|
|
404
|
+
"firedRuleIds": { "type": "array", "items": { "type": "string" } },
|
|
405
|
+
"outcomes": {
|
|
406
|
+
"type": "array",
|
|
407
|
+
"items": {
|
|
408
|
+
"type": "object",
|
|
409
|
+
"required": ["ruleId", "action", "op", "resource", "reason"],
|
|
410
|
+
"properties": {
|
|
411
|
+
"ruleId": { "type": "string" },
|
|
412
|
+
"action": { "enum": ["ran", "reported", "skipped-budget", "skipped-flap", "gated"] },
|
|
413
|
+
"op": { "type": ["string", "null"] },
|
|
414
|
+
"resource": { "type": ["string", "null"], "description": "The resource the rule fired for, on a ConvergeOp with an observer step." },
|
|
415
|
+
"reason": { "type": ["string", "null"] }
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
"resources": {
|
|
420
|
+
"description": "What the observer step reported, or null for a ConvergeOp that observes a lexicon environment.",
|
|
421
|
+
"oneOf": [
|
|
422
|
+
{ "type": "null" },
|
|
423
|
+
{
|
|
424
|
+
"type": "array",
|
|
425
|
+
"items": {
|
|
426
|
+
"type": "object",
|
|
427
|
+
"required": ["name", "status", "detail"],
|
|
428
|
+
"properties": {
|
|
429
|
+
"name": { "type": "string" },
|
|
430
|
+
"status": { "enum": ["in-sync", "drifted", "unknown"] },
|
|
431
|
+
"detail": { "type": ["string", "null"] }
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
]
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
]
|
|
440
|
+
},
|
|
441
|
+
"changesCheckout": { "type": "boolean", "description": "Whether the Op changes the checkout, and so runs under a work lease on a branch of its own, chant/work/<item> (#2748)." },
|
|
442
|
+
"workLease": {
|
|
443
|
+
"description": "The Op's work lease (#2748), or null when it declares none. kind is the work kind file whose ledger holds it, relative to the member, or null for the member's own ledger. held is the work leases the steward's turns of this Op hold (holder <steward>/<op>@<process>), read locally and never fetched: an active one while a turn runs, an expired one left by a turn that stopped renewing.",
|
|
444
|
+
"oneOf": [
|
|
445
|
+
{ "type": "null" },
|
|
446
|
+
{
|
|
447
|
+
"type": "object",
|
|
448
|
+
"required": ["kind", "held"],
|
|
449
|
+
"properties": {
|
|
450
|
+
"kind": { "type": ["string", "null"] },
|
|
451
|
+
"held": {
|
|
452
|
+
"type": "array",
|
|
453
|
+
"items": {
|
|
454
|
+
"type": "object",
|
|
455
|
+
"required": ["item", "holder", "token", "acquiredAt", "expiresAt", "state"],
|
|
456
|
+
"properties": {
|
|
457
|
+
"item": { "type": "string" },
|
|
458
|
+
"holder": { "type": "string" },
|
|
459
|
+
"token": { "type": "string" },
|
|
460
|
+
"acquiredAt": { "type": "string" },
|
|
461
|
+
"expiresAt": { "type": "string" },
|
|
462
|
+
"state": { "enum": ["active", "expired"] }
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
]
|
|
469
|
+
},
|
|
470
|
+
"beside": {
|
|
471
|
+
"description": "For an Op the steward runs beside its turns (#2861), in a process of its own under the Op's own lease: ready is whether a ready step says when the operator starts it, and lease is the Op's lease ref (refs/chant/lease/<op>), held by a run of it while it runs (holder <steward>/<op>@<operator> for a run the operator started), read locally and never fetched, or null when none has held it. live is false once expiresAt has passed. Null for an Op the steward runs as one of its turns.",
|
|
472
|
+
"oneOf": [
|
|
473
|
+
{ "type": "null" },
|
|
474
|
+
{
|
|
475
|
+
"type": "object",
|
|
476
|
+
"required": ["ready", "lease"],
|
|
477
|
+
"properties": {
|
|
478
|
+
"ready": { "type": "boolean" },
|
|
479
|
+
"lease": {
|
|
480
|
+
"oneOf": [
|
|
481
|
+
{ "type": "null" },
|
|
482
|
+
{
|
|
483
|
+
"type": "object",
|
|
484
|
+
"required": ["holder", "acquiredAt", "expiresAt", "live"],
|
|
485
|
+
"properties": {
|
|
486
|
+
"holder": { "type": "string" },
|
|
487
|
+
"acquiredAt": { "type": "string" },
|
|
488
|
+
"expiresAt": { "type": "string" },
|
|
489
|
+
"live": { "type": "boolean" }
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
]
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
]
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
"waiting": {
|
|
502
|
+
"description": "The open decision points the steward waits on (#2749): one for each Op whose newest run is the steward's own (its ledger record names the steward) and stopped on a question that is still open: the steward's own Ops in ops order, then any other Op of the member, such as one the steward's process starts itself (studio#137), by name. The state is the question's now, as `chant workspace points --open` reads it, where hud asks a person. A question answered since, or whose answer record is gone, is not listed, and nor is one whose Op has a newer run in flight: the Op's lease or one of its work leases was taken after the waiting run ended and is still held. When the questions can't be read, the run ledger's state stands. The steward never answers one, and runs an Op it lists again on the first round after it is answered (an Op beside its turns, in a process of its own, #2861).",
|
|
503
|
+
"type": "array",
|
|
504
|
+
"items": {
|
|
505
|
+
"allOf": [
|
|
506
|
+
{ "$ref": "#/$defs/stewardWait" },
|
|
507
|
+
{
|
|
508
|
+
"type": "object",
|
|
509
|
+
"required": ["op", "run"],
|
|
510
|
+
"properties": { "op": { "type": "string" }, "run": { "type": "string", "description": "The waiting run's id." }, "state": { "enum": ["escalated", "proposed"] } }
|
|
511
|
+
}
|
|
512
|
+
]
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
},
|
|
517
|
+
"runPhase": {
|
|
518
|
+
"type": "object",
|
|
519
|
+
"required": ["name", "status", "durationMs"],
|
|
520
|
+
"properties": {
|
|
521
|
+
"name": { "type": "string" },
|
|
522
|
+
"status": { "enum": ["ok", "fail", "skipped"] },
|
|
523
|
+
"durationMs": { "type": "number" }
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
"stewardWait": {
|
|
527
|
+
"type": "object",
|
|
528
|
+
"required": ["id", "point", "state", "path", "subject", "since"],
|
|
529
|
+
"properties": {
|
|
530
|
+
"id": { "type": "string", "description": "The answer record's id, as `points` lists the question and `points answer` names it." },
|
|
531
|
+
"point": { "type": "string" },
|
|
532
|
+
"state": { "enum": ["escalated", "proposed", "answered"], "description": "The question's state now, as `points` reads it, or the state the run ledger recorded when the questions can't be read or the record is gone. Never `answered` in a steward's `waiting`." },
|
|
533
|
+
"path": { "type": "string", "description": "The answer record, from the repository root." },
|
|
534
|
+
"subject": { "type": ["string", "null"] },
|
|
535
|
+
"since": { "type": "string", "description": "When the run stopped on it." }
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
"intent": {
|
|
539
|
+
"type": "object",
|
|
540
|
+
"required": ["id", "state", "question", "choice", "answer", "decided_by", "decided_on"],
|
|
541
|
+
"properties": {
|
|
542
|
+
"id": { "type": "string", "description": "The record's id, as the box block names it." },
|
|
543
|
+
"state": { "type": ["string", "null"], "description": "The record's state as written, such as proposed or decided, or null when no decision record has the id." },
|
|
544
|
+
"question": { "type": ["string", "null"], "description": "The question the record answers." },
|
|
545
|
+
"choice": { "description": "The record's choice as written, such as { option, reason }, or null while the record is proposed." },
|
|
546
|
+
"answer": { "type": ["string", "null"], "description": "The chosen option's label, from options[]'s entry whose id is choice.option, or null while no option is chosen (#2855). Added by chant 0.94.0." },
|
|
547
|
+
"decided_by": { "type": ["string", "null"], "description": "Who decided it, or null while it is proposed." },
|
|
548
|
+
"decided_on": { "type": ["string", "null"], "description": "The day it was decided, or null while it is proposed." },
|
|
549
|
+
"approved": {
|
|
550
|
+
"type": "boolean",
|
|
551
|
+
"description": "Added in contract 1 by #3609. Whether the record's state counts as approved: the decision kind's approval rank for that state is above 0, the rule the factory's pick holds dispatch with. With chant's decision kind, decided, ratified and superseded are approved, and proposed and withdrawn are not. False when no decision record has the id, and for a kind that declares no approval ranks."
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
"replication": {
|
|
556
|
+
"type": "object",
|
|
557
|
+
"required": ["policy", "remoteConfigured", "replicated", "refs"],
|
|
558
|
+
"properties": {
|
|
559
|
+
"policy": {
|
|
560
|
+
"type": "object",
|
|
561
|
+
"required": ["box", "remote", "refs", "on", "every"],
|
|
562
|
+
"properties": {
|
|
563
|
+
"box": { "type": "string", "description": "The member whose box block declares the policy." },
|
|
564
|
+
"remote": { "type": "string" },
|
|
565
|
+
"refs": { "type": "array", "items": { "enum": ["work", "kept", "wip", "ledger"] } },
|
|
566
|
+
"on": { "type": "array", "items": { "enum": ["save", "release"] } },
|
|
567
|
+
"every": { "type": ["string", "null"] }
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"remoteConfigured": { "type": "boolean", "description": "Whether the checkout has a git remote of the policy's name." },
|
|
571
|
+
"replicated": { "type": "boolean", "description": "True when every ref listed is on the remote as it is locally." },
|
|
572
|
+
"refs": {
|
|
573
|
+
"type": "array",
|
|
574
|
+
"description": "Every local ref the policy names, sorted by ref.",
|
|
575
|
+
"items": {
|
|
576
|
+
"type": "object",
|
|
577
|
+
"required": ["ref", "class", "commit", "replica", "replicated", "ahead"],
|
|
578
|
+
"properties": {
|
|
579
|
+
"ref": { "type": "string", "description": "Such as refs/heads/chant/work/W-001, refs/chant/kept/W-001/<token>, refs/chant/wip/chant/work/W-001 or refs/heads/chant/lifecycle." },
|
|
580
|
+
"class": { "enum": ["work", "kept", "wip", "ledger"] },
|
|
581
|
+
"commit": { "type": "string", "pattern": "^[0-9a-f]{40,64}$" },
|
|
582
|
+
"replica": { "type": ["string", "null"], "pattern": "^[0-9a-f]{40,64}$", "description": "What the remote held of the ref as chant last saw it (or, for a branch, git's remote-tracking ref), or null when unknown." },
|
|
583
|
+
"replicated": { "type": "boolean" },
|
|
584
|
+
"ahead": { "type": "integer", "minimum": 0, "description": "Commits reachable from commit that nothing known to be on the remote reaches; 0 when replicated." }
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
},
|
|
590
|
+
"box": {
|
|
591
|
+
"type": "object",
|
|
592
|
+
"patternProperties": { "^x-": { "description": "Added in contract 1 by #3595. An x- key the declaration holds on this object, with its value as written." } },
|
|
593
|
+
"required": ["capabilities", "isolation", "intent", "services"],
|
|
594
|
+
"properties": {
|
|
595
|
+
"factory": {
|
|
596
|
+
"description": "Added in contract 1 by #3146. What the box builds and how (ws-077), with every default filled in, or null when the block declares no factory. At most one member's box has one.",
|
|
597
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/factory" }]
|
|
598
|
+
},
|
|
599
|
+
"listing": {
|
|
600
|
+
"description": "Added in contract 1 by #3146. What the box shows of itself on a home site, or null when the block declares no listing.",
|
|
601
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/listing" }]
|
|
602
|
+
},
|
|
603
|
+
"publisher": {
|
|
604
|
+
"description": "Added in contract 1 by #3165. The command that publishes the box's work, as the box block declares it (ws-088), or null when it names none. A surface offers a publish only when it is set, and asks for one with chant workspace box publish rather than running it.",
|
|
605
|
+
"type": ["string", "null"]
|
|
606
|
+
},
|
|
607
|
+
"ship": {
|
|
608
|
+
"description": "Added in contract 1 by ws-100. How the box ships its staged work to its own site, with defaults filled in, the release its site serves and what is waiting to ship, or null when the box block declares no ship. A surface offers Ship only when it is set: it runs chant run <op> in the member's directory with the person in CHANT_SHIP_BY and approves <gate> as for any Op.",
|
|
609
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/boxShip" }]
|
|
610
|
+
},
|
|
611
|
+
"replicate": {
|
|
612
|
+
"description": "Added in contract 1 by #3172. Where the box's work in progress is replicated (ws-085), with every default filled in, or null when the block declares no policy. At most one member's box has one; the top-level replication says how far each ref is from the remote.",
|
|
613
|
+
"oneOf": [
|
|
614
|
+
{ "type": "null" },
|
|
615
|
+
{
|
|
616
|
+
"type": "object",
|
|
617
|
+
"required": ["remote", "refs", "on", "every"],
|
|
618
|
+
"properties": {
|
|
619
|
+
"remote": { "type": "string", "description": "The git remote, by name; origin when the block names none." },
|
|
620
|
+
"refs": { "type": "array", "items": { "enum": ["work", "kept", "wip", "ledger"] }, "description": "What is replicated, in this order; all four when the block names none." },
|
|
621
|
+
"on": { "type": "array", "items": { "enum": ["save", "release"] }, "description": "When chant pushes on its own; both when the block names none." },
|
|
622
|
+
"every": { "type": ["string", "null"], "description": "The interval at which the host runs chant workspace wip push, or null." }
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
]
|
|
626
|
+
},
|
|
627
|
+
"services": {
|
|
628
|
+
"description": "The services the box block declares (#2880), in declaration order, or empty when it declares none. A reader has them before any converge tick; a steward's ConvergeOp's lastTick carries each one's verdict. cmd is as declared: its ${VAR} references are left for the process that applies it to expand. Added by chant 0.95.0.",
|
|
629
|
+
"type": "array",
|
|
630
|
+
"items": {
|
|
631
|
+
"type": "object",
|
|
632
|
+
"required": ["name", "cmd", "needs", "httpPort", "duration", "health", "optional"],
|
|
633
|
+
"properties": {
|
|
634
|
+
"name": { "type": "string" },
|
|
635
|
+
"cmd": { "type": "string", "description": "The command the supervisor runs, as declared." },
|
|
636
|
+
"needs": { "type": "array", "items": { "type": "string" }, "description": "Services of the same box that start first. Empty when none." },
|
|
637
|
+
"httpPort": { "type": ["integer", "null"], "description": "The port the supervisor routes the sprite's URL to, or null." },
|
|
638
|
+
"duration": { "type": ["string", "null"], "description": "How long the service must stay up after a create or start, such as 3s, or null for the supervisor's default." },
|
|
639
|
+
"health": { "type": ["string", "null"], "description": "A URL that answers 200 while the service works, or null when the supervisor's state decides." },
|
|
640
|
+
"optional": { "type": "boolean", "description": "True for a service something else creates by name, such as a site a release makes." }
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
"intent": {
|
|
645
|
+
"description": "The decision record the box block names as the box's intent (#2850), or null when it names none. A box starts as a question: the record is proposed with a null choice, and decided when the person who answered it amends it. Read from the working tree, from the declared record kinds named decision. When no decision record has the id, every field but id is null and chant workspace check fails (WSP126). Added by chant 0.94.0.",
|
|
646
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/intent" }]
|
|
647
|
+
},
|
|
648
|
+
"isolation": {
|
|
649
|
+
"description": "The box's isolation resolved from its identity, its host, the member's name and its slot (#2727), or null when the block declares no host. A runtime that plants or starts the box sets these values instead of choosing its own. The same for every environment.",
|
|
650
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/isolation" }]
|
|
651
|
+
},
|
|
652
|
+
"capabilities": {
|
|
653
|
+
"description": "Each capability the box reaches through a broker, in declaration order.",
|
|
654
|
+
"type": "array",
|
|
655
|
+
"items": {
|
|
656
|
+
"type": "object",
|
|
657
|
+
"required": ["name", "broker", "scope"],
|
|
658
|
+
"properties": {
|
|
659
|
+
"name": { "type": "string", "description": "The capability, such as inference or fountain." },
|
|
660
|
+
"broker": { "type": ["string", "null"], "description": "What brokers it, such as lobby, or null when the declaration names none." },
|
|
661
|
+
"scope": { "type": "array", "items": { "type": "string" }, "description": "What of the box's own the broker lets it reach, such as agent, vault, conversations and sandboxes. Empty when none is declared." }
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
},
|
|
667
|
+
"plantable": {
|
|
668
|
+
"type": "object",
|
|
669
|
+
"required": ["plantable", "box", "reason"],
|
|
670
|
+
"properties": {
|
|
671
|
+
"plantable": { "type": "boolean" },
|
|
672
|
+
"box": { "type": ["string", "null"], "description": "The member whose box block declares services, or null when the workspace isn't plantable." },
|
|
673
|
+
"reason": {
|
|
674
|
+
"description": "Why the workspace isn't plantable, or null when it is.",
|
|
675
|
+
"oneOf": [
|
|
676
|
+
{ "type": "null" },
|
|
677
|
+
{
|
|
678
|
+
"type": "object",
|
|
679
|
+
"required": ["code", "message"],
|
|
680
|
+
"properties": {
|
|
681
|
+
"code": { "enum": ["box-none", "box-several"] },
|
|
682
|
+
"message": { "type": "string" }
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
]
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
},
|
|
689
|
+
"factory": {
|
|
690
|
+
"type": "object",
|
|
691
|
+
"patternProperties": { "^x-": { "description": "Added in contract 1 by #3595. An x- key the declaration holds on this object, with its value as written." } },
|
|
692
|
+
"required": ["builds", "check", "checks", "builders", "tiers", "builderFor", "publish"],
|
|
693
|
+
"properties": {
|
|
694
|
+
"builds": { "type": "array", "minItems": 1, "items": { "type": "string" }, "description": "The members the factory builds, in declaration order. A work item a person asks for constrains member:<the first>." },
|
|
695
|
+
"check": {
|
|
696
|
+
"description": "The verdict command, run from the workspace root, and what it is; null when none is declared.",
|
|
697
|
+
"oneOf": [
|
|
698
|
+
{ "type": "null" },
|
|
699
|
+
{
|
|
700
|
+
"type": "object",
|
|
701
|
+
"required": ["run", "kind"],
|
|
702
|
+
"properties": {
|
|
703
|
+
"run": { "type": "string" },
|
|
704
|
+
"kind": { "enum": ["test", "build", "lint", "plan", "conformance"] }
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
]
|
|
708
|
+
},
|
|
709
|
+
"checks": { "type": ["string", "null"], "description": "Where a work item's builder writes its check, from the workspace root, or null for the orchestrator's choice." },
|
|
710
|
+
"builders": { "type": ["string", "null"], "description": "The member that declares the builder agents, or null." },
|
|
711
|
+
"tiers": {"type": "array", "items": {"type": "object", "required": ["tier", "agent", "kinds", "session"], "properties": {"tier": {"type": "string"}, "agent": {"type": "string"}, "kinds": {"oneOf": [{"type": "null"}, {"type": "array", "items": {"type": "string"}}]}, "session": {"type": ["string", "null"]}}}, "description": "Which builder agent builds at which tier, as declared (#3152, ws-094), each { tier, agent, kinds, session } with kinds and session null when not declared; empty when none is. Added in contract 1 by chant 0.103.0."},
|
|
712
|
+
"builderFor": {"type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "object", "required": ["agent", "session"], "properties": {"agent": {"type": "string"}, "session": {"type": ["string", "null"]}}}}, "description": "The builder for each member the factory builds, by tier (#3152): member name, then tier, then { agent, session }. For a member the entry naming its kind is used, else the tier's entry with no kinds; a tier with neither is left out. Added in contract 1 by chant 0.103.0."},
|
|
713
|
+
"publish": {
|
|
714
|
+
"description": "Where a finished build is published, or null when the factory doesn't publish past the box.",
|
|
715
|
+
"oneOf": [
|
|
716
|
+
{ "type": "null" },
|
|
717
|
+
{
|
|
718
|
+
"type": "object",
|
|
719
|
+
"required": ["forge", "repo", "base", "branchPrefix", "head"],
|
|
720
|
+
"properties": {
|
|
721
|
+
"forge": { "const": "github" },
|
|
722
|
+
"repo": { "type": "string", "description": "owner/name: where the pull request is opened." },
|
|
723
|
+
"base": { "type": ["string", "null"], "description": "The branch the pull request targets, or null for the repository's default branch." },
|
|
724
|
+
"branchPrefix": { "type": "string", "description": "What the published branch's name starts with, before the work item's id. chant/work/ unless declared." },
|
|
725
|
+
"head": { "type": ["string", "null"], "description": "owner/name of the fork the branch is pushed to, or null to push to repo." }
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
]
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
},
|
|
732
|
+
"listing": {
|
|
733
|
+
"type": "object",
|
|
734
|
+
"patternProperties": { "^x-": { "description": "Added in contract 1 by #3595. An x- key the declaration holds on this object, with its value as written." } },
|
|
735
|
+
"required": ["published", "title", "line", "cover"],
|
|
736
|
+
"properties": {
|
|
737
|
+
"published": { "type": "boolean", "description": "Whether the box is listed; true unless declared otherwise." },
|
|
738
|
+
"title": { "type": "string", "description": "Empty when not declared: a reader shows a name of its own." },
|
|
739
|
+
"line": { "type": "string", "description": "Empty when not declared." },
|
|
740
|
+
"cover": {
|
|
741
|
+
"description": "The cover image, or null when none is declared.",
|
|
742
|
+
"oneOf": [
|
|
743
|
+
{ "type": "null" },
|
|
744
|
+
{
|
|
745
|
+
"type": "object",
|
|
746
|
+
"required": ["path", "sha256"],
|
|
747
|
+
"properties": {
|
|
748
|
+
"path": { "type": "string", "description": "From the workspace root." },
|
|
749
|
+
"sha256": { "type": ["string", "null"], "pattern": "^[0-9a-f]{64}$", "description": "The sha256 of the file's bytes in the working tree, or null when it can't be read." }
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
]
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
"isolation": {
|
|
757
|
+
"type": "object",
|
|
758
|
+
"required": ["host", "slot", "portRange", "ports", "stateDir", "state", "cookies"],
|
|
759
|
+
"properties": {
|
|
760
|
+
"host": { "type": "string", "description": "The host the box runs on. Boxes on different hosts share nothing." },
|
|
761
|
+
"slot": { "type": "integer", "minimum": 0 },
|
|
762
|
+
"portRange": {
|
|
763
|
+
"type": "object",
|
|
764
|
+
"description": "The box's block of its host's range, inclusive: from + slot * perBox to from + (slot + 1) * perBox - 1.",
|
|
765
|
+
"required": ["from", "to"],
|
|
766
|
+
"properties": {
|
|
767
|
+
"from": { "type": "integer", "minimum": 1, "maximum": 65535 },
|
|
768
|
+
"to": { "type": "integer", "minimum": 1, "maximum": 65535 }
|
|
769
|
+
}
|
|
770
|
+
},
|
|
771
|
+
"ports": {
|
|
772
|
+
"type": "object",
|
|
773
|
+
"description": "Each declared port's number: the block's first port plus the port's offset.",
|
|
774
|
+
"additionalProperties": { "type": "integer", "minimum": 1, "maximum": 65535 }
|
|
775
|
+
},
|
|
776
|
+
"stateDir": { "type": "string", "description": "<stateRoot>/<member name>. Its environment reference, such as ${XDG_STATE_HOME}, is left for the runtime to expand." },
|
|
777
|
+
"state": {
|
|
778
|
+
"type": "object",
|
|
779
|
+
"description": "Each declared state entry's path under stateDir, keyed as declared, such as HUD_IDENTITY_PATH.",
|
|
780
|
+
"additionalProperties": { "type": "string" }
|
|
781
|
+
},
|
|
782
|
+
"cookies": {
|
|
783
|
+
"type": "object",
|
|
784
|
+
"description": "Each declared cookie's name for this box: <cookie>_<member name>.",
|
|
785
|
+
"additionalProperties": { "type": "string" }
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
},
|
|
789
|
+
"gateLedger": {
|
|
790
|
+
"type": "object",
|
|
791
|
+
"required": ["layout", "path", "shared", "malformed", "reason"],
|
|
792
|
+
"properties": {
|
|
793
|
+
"layout": {
|
|
794
|
+
"enum": ["members", "flat"],
|
|
795
|
+
"description": "members: _members/<member>/_gates. flat: _gates. Chosen as for the member's release ledger."
|
|
796
|
+
},
|
|
797
|
+
"path": { "type": "string", "description": "The gate ledger directory on chant/lifecycle. Each file in it is <component>.jsonl, or <op>.jsonl for a gate an Op run reached." },
|
|
798
|
+
"shared": { "type": "boolean", "description": "True when more than one member in this output reads the flat _gates directory, so they list the same gates." },
|
|
799
|
+
"malformed": { "type": "integer", "minimum": 0, "description": "Lines that are neither a pending fact nor an approval. They are skipped." },
|
|
800
|
+
"reason": {
|
|
801
|
+
"oneOf": [
|
|
802
|
+
{ "type": "null" },
|
|
803
|
+
{
|
|
804
|
+
"type": "object",
|
|
805
|
+
"required": ["code", "message"],
|
|
806
|
+
"properties": {
|
|
807
|
+
"code": { "enum": ["gates-no-ledger", "gates-no-gate-ledger", "gates-ledger-unreadable"] },
|
|
808
|
+
"message": { "type": "string" }
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
]
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
"gate": {
|
|
816
|
+
"type": "object",
|
|
817
|
+
"required": ["component", "name", "env", "planDigest", "state", "recordedAt", "expiresAt", "approvals", "needed", "signed", "approve"],
|
|
818
|
+
"properties": {
|
|
819
|
+
"component": { "type": "string", "description": "The ledger file's key: the component, or the op for a gate an Op run reached." },
|
|
820
|
+
"name": { "type": "string", "description": "The gate's name." },
|
|
821
|
+
"env": {
|
|
822
|
+
"description": "The environment the run reached the gate in, or null for a gate that records none.",
|
|
823
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/env" }]
|
|
824
|
+
},
|
|
825
|
+
"planDigest": { "type": ["string", "null"], "description": "The plan the run reached the gate with (#2300), or null for a gate that binds no plan. An approval counts only for this plan." },
|
|
826
|
+
"state": {
|
|
827
|
+
"enum": ["pending", "approved", "expired", "superseded"],
|
|
828
|
+
"description": "Read from the newest pending fact for the gate in env, as a run reads it. approved: the approvals recorded since it, for its plan, pass the gate (its quorum, or a policy permit in enforce mode). expired: not approved, and the pending fact is past expiresAt, so the next run records a fresh one. superseded: not approved, and an approval recorded since it names a different plan, so it doesn't count. pending: none of these."
|
|
829
|
+
},
|
|
830
|
+
"recordedAt": { "type": "string", "description": "When the run recorded the pending fact." },
|
|
831
|
+
"expiresAt": { "type": "string" },
|
|
832
|
+
"approvals": {
|
|
833
|
+
"description": "The approvals that count toward the gate for its plan, oldest first.",
|
|
834
|
+
"type": "array",
|
|
835
|
+
"items": {
|
|
836
|
+
"type": "object",
|
|
837
|
+
"required": ["principal", "channel", "relayedBy", "at"],
|
|
838
|
+
"properties": {
|
|
839
|
+
"principal": { "type": "string", "description": "Who recorded it." },
|
|
840
|
+
"channel": { "type": ["string", "null"], "description": "The channel it was recorded on, such as cli or mcp, or null for a record older than chant#2384." },
|
|
841
|
+
"relayedBy": { "type": ["string", "null"], "description": "Added in contract 1 by #3402. Who carried the approval to chant for principal (chant approve --relayed-by), such as a follower relaying a person's approval; a seal covers it. Null when nobody relayed it." },
|
|
842
|
+
"at": { "type": "string" }
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
},
|
|
846
|
+
"needed": { "type": "integer", "minimum": 1, "description": "The human approvals the gate needs: its quorum's count, 1 without one." },
|
|
847
|
+
"signed": {
|
|
848
|
+
"description": "Added in contract 1 by #3163. The declaration's rule for the gate, read at base (identity.gates, ws-080): only an approval sealed with chant approve --sign by a key the signers file at base lists for its approver counts, and when class is not null, only one whose approver the role grants at base put in that class. Approvals that don't meet it are left out of approvals and state. Null when any approval counts.",
|
|
849
|
+
"oneOf": [
|
|
850
|
+
{ "type": "null" },
|
|
851
|
+
{
|
|
852
|
+
"type": "object",
|
|
853
|
+
"required": ["class"],
|
|
854
|
+
"properties": {
|
|
855
|
+
"class": { "type": ["string", "null"], "description": "The principal class the signer must be in, or null for any listed signer." }
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
]
|
|
859
|
+
},
|
|
860
|
+
"approve": { "type": "string", "description": "The chant approve line for the gate, run in the member's directory: chant approve <component> <gate>, with --env <env> when env is not null and --plan <planDigest> when planDigest is not null (#2832), so the line approves the plan this read showed, and --sign when signed is not null (#3163). The caller adds --actor <principal>. For a gate that asks a decision point (#3170), the chant workspace points answer line for the question in answer." },
|
|
861
|
+
"answer": {
|
|
862
|
+
"type": "object",
|
|
863
|
+
"description": "The open question the gate waits on, when it asks a decision point (#3170): absent on a gate chant approve passes. Answered with chant workspace points answer <id>; the run that passes the gate then cites the answer record on the ledger.",
|
|
864
|
+
"required": ["point", "id", "path"],
|
|
865
|
+
"properties": {
|
|
866
|
+
"point": { "type": "string" },
|
|
867
|
+
"id": { "type": "string", "description": "The answer record's id." },
|
|
868
|
+
"path": { "type": "string", "description": "The answer record, from the repository root." }
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
},
|
|
873
|
+
"environment": {
|
|
874
|
+
"type": "object",
|
|
875
|
+
"required": ["env", "ledger", "releases", "reason"],
|
|
876
|
+
"properties": {
|
|
877
|
+
"env": { "$ref": "#/$defs/env" },
|
|
878
|
+
"ledger": {
|
|
879
|
+
"type": "object",
|
|
880
|
+
"required": ["layout", "path", "shared"],
|
|
881
|
+
"properties": {
|
|
882
|
+
"layout": {
|
|
883
|
+
"enum": ["members", "flat"],
|
|
884
|
+
"description": "members: _members/<member>/<env>/releases.jsonl (#2538). flat: <env>/releases.jsonl, for the root member and for a member with no _members/<member>/ directory yet."
|
|
885
|
+
},
|
|
886
|
+
"path": { "type": "string", "description": "The ledger's path on chant/lifecycle." },
|
|
887
|
+
"shared": { "type": "boolean", "description": "True when more than one member in this output reads the same flat ledger, so they list the same records." }
|
|
888
|
+
}
|
|
889
|
+
},
|
|
890
|
+
"releases": {
|
|
891
|
+
"description": "The latest release of each component in the ledger, sorted by component. Empty when the ledger has none.",
|
|
892
|
+
"type": "array",
|
|
893
|
+
"items": { "$ref": "#/$defs/release" }
|
|
894
|
+
},
|
|
895
|
+
"reason": {
|
|
896
|
+
"oneOf": [
|
|
897
|
+
{ "type": "null" },
|
|
898
|
+
{
|
|
899
|
+
"type": "object",
|
|
900
|
+
"required": ["code", "message"],
|
|
901
|
+
"properties": {
|
|
902
|
+
"code": { "enum": ["ledger-unreadable", "ledger-malformed"] },
|
|
903
|
+
"message": { "type": "string" }
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
]
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
"release": {
|
|
911
|
+
"type": "object",
|
|
912
|
+
"required": ["component", "digest", "gitSha", "inputDigest", "runId", "timestamp", "actor", "flags", "plan"],
|
|
913
|
+
"properties": {
|
|
914
|
+
"component": { "type": "string" },
|
|
915
|
+
"digest": { "type": "string", "description": "The artifact digest the release deployed." },
|
|
916
|
+
"gitSha": { "type": "string", "description": "The commit the artifact was built from." },
|
|
917
|
+
"inputDigest": { "type": ["string", "null"], "description": "The input-side digest when digest is a rendered one. Compare joins on it when present." },
|
|
918
|
+
"runId": { "type": "string" },
|
|
919
|
+
"timestamp": { "type": "string" },
|
|
920
|
+
"actor": { "type": "string" },
|
|
921
|
+
"flags": { "type": "array", "items": { "enum": ["legacy-digest"] } },
|
|
922
|
+
"plan": {
|
|
923
|
+
"type": ["object", "null"],
|
|
924
|
+
"description": "The release plan digest names, read from _plans/<digest>.json on chant/lifecycle (ws-055, #2733): the work items and evidence this release shipped. Null when this checkout has no plan stored under that digest — most releases carry no plan, and a plan not yet fetched also reads null."
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
},
|
|
928
|
+
"compare": {
|
|
929
|
+
"type": "object",
|
|
930
|
+
"required": ["differs", "components"],
|
|
931
|
+
"properties": {
|
|
932
|
+
"differs": { "type": "boolean", "description": "True when any component is not same." },
|
|
933
|
+
"components": {
|
|
934
|
+
"type": "array",
|
|
935
|
+
"items": {
|
|
936
|
+
"type": "object",
|
|
937
|
+
"required": ["component", "state", "digest", "compareDigest"],
|
|
938
|
+
"properties": {
|
|
939
|
+
"component": { "type": "string" },
|
|
940
|
+
"state": {
|
|
941
|
+
"enum": ["same", "differs", "only-env", "only-compare"],
|
|
942
|
+
"description": "same: both environments have the same digest (the input digest when there is one). only-env and only-compare: the component has a release in one of them."
|
|
943
|
+
},
|
|
944
|
+
"digest": { "type": ["string", "null"] },
|
|
945
|
+
"compareDigest": { "type": ["string", "null"] }
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
},
|
|
951
|
+
"failure": {
|
|
952
|
+
"description": "The declaration could not be read, or an environment name can't be one. Exit code 1.",
|
|
953
|
+
"type": "object",
|
|
954
|
+
"required": ["$schema", "contract", "chant", "error"],
|
|
955
|
+
"properties": {
|
|
956
|
+
"$schema": { "const": "https://intentius.io/chant/schemas/workspace/status/v1/status.schema.json" },
|
|
957
|
+
"contract": { "const": 1 },
|
|
958
|
+
"chant": { "type": "string" },
|
|
959
|
+
"error": {
|
|
960
|
+
"type": "object",
|
|
961
|
+
"required": ["code", "message", "location"],
|
|
962
|
+
"properties": {
|
|
963
|
+
"code": {
|
|
964
|
+
"enum": [
|
|
965
|
+
"declaration-missing",
|
|
966
|
+
"declaration-ambiguous",
|
|
967
|
+
"declaration-unparseable",
|
|
968
|
+
"declaration-invalid",
|
|
969
|
+
"placement-invalid",
|
|
970
|
+
"reader-too-old",
|
|
971
|
+
"root-chant-required",
|
|
972
|
+
"not-a-git-repository",
|
|
973
|
+
"environment-invalid"
|
|
974
|
+
]
|
|
975
|
+
},
|
|
976
|
+
"message": { "type": "string" },
|
|
977
|
+
"location": {
|
|
978
|
+
"oneOf": [
|
|
979
|
+
{ "type": "null" },
|
|
980
|
+
{
|
|
981
|
+
"type": "object",
|
|
982
|
+
"required": ["file", "line", "column"],
|
|
983
|
+
"properties": {
|
|
984
|
+
"file": { "type": "string" },
|
|
985
|
+
"line": { "type": "integer", "minimum": 1 },
|
|
986
|
+
"column": { "type": "integer", "minimum": 1 }
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
]
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
},
|
|
993
|
+
"members": false,
|
|
994
|
+
"workspace": false
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
}
|