@intentius/chant 0.101.0 → 0.104.0
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/dist/agents/checks.d.ts.map +1 -1
- package/dist/attrref.d.ts.map +1 -1
- package/dist/audit/core.d.ts +2 -0
- package/dist/audit/core.d.ts.map +1 -1
- package/dist/audit/discover.d.ts.map +1 -1
- package/dist/audit/nginx.d.ts.map +1 -1
- package/dist/audit/prior-art.d.ts +48 -0
- package/dist/audit/prior-art.d.ts.map +1 -1
- package/dist/behaviour-kinds.d.ts.map +1 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/change-set.d.ts +232 -0
- package/dist/change-set.d.ts.map +1 -0
- package/dist/cli/commands/audit.d.ts +7 -0
- package/dist/cli/commands/audit.d.ts.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/carve-emit.d.ts.map +1 -1
- package/dist/cli/commands/check-lexicon.d.ts +16 -0
- package/dist/cli/commands/check-lexicon.d.ts.map +1 -1
- package/dist/cli/commands/import.d.ts +8 -0
- package/dist/cli/commands/import.d.ts.map +1 -1
- package/dist/cli/commands/init-lexicon.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts +19 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/onboard.d.ts +9 -0
- package/dist/cli/commands/onboard.d.ts.map +1 -1
- package/dist/cli/commands/pinned-upgrade.d.ts +19 -5
- package/dist/cli/commands/pinned-upgrade.d.ts.map +1 -1
- package/dist/cli/handlers/build.d.ts.map +1 -1
- package/dist/cli/handlers/change-set.d.ts +11 -0
- package/dist/cli/handlers/change-set.d.ts.map +1 -0
- package/dist/cli/handlers/dev.d.ts.map +1 -1
- package/dist/cli/handlers/fan-out.d.ts +33 -0
- package/dist/cli/handlers/fan-out.d.ts.map +1 -1
- package/dist/cli/handlers/lifecycle.d.ts.map +1 -1
- package/dist/cli/handlers/misc.d.ts.map +1 -1
- package/dist/cli/handlers/operator.d.ts +16 -0
- package/dist/cli/handlers/operator.d.ts.map +1 -1
- package/dist/cli/handlers/pr.d.ts +31 -0
- package/dist/cli/handlers/pr.d.ts.map +1 -0
- package/dist/cli/handlers/run.d.ts.map +1 -1
- package/dist/cli/lsp/server.d.ts.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/mcp/op-tools.d.ts.map +1 -1
- package/dist/cli/mcp/server.d.ts.map +1 -1
- package/dist/cli/mcp/tools/build.d.ts.map +1 -1
- package/dist/cli/mcp/tools/composites.d.ts.map +1 -1
- package/dist/cli/mcp/tools/explain.d.ts.map +1 -1
- package/dist/cli/mcp/tools/import.d.ts.map +1 -1
- package/dist/cli/mcp/tools/lint.d.ts.map +1 -1
- package/dist/cli/mcp/tools/scaffold.d.ts.map +1 -1
- package/dist/cli/mcp/tools/search.d.ts.map +1 -1
- package/dist/cli/mcp/workspace-tools.d.ts +4 -3
- package/dist/cli/mcp/workspace-tools.d.ts.map +1 -1
- package/dist/cli/registry.d.ts +74 -3
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/codegen/fetch.d.ts.map +1 -1
- package/dist/codegen/naming.d.ts.map +1 -1
- package/dist/codegen/pinned-upgrade.d.ts +67 -3
- package/dist/codegen/pinned-upgrade.d.ts.map +1 -1
- package/dist/codegen/registry.d.ts.map +1 -1
- package/dist/components/auto-release.d.ts +16 -0
- package/dist/components/auto-release.d.ts.map +1 -1
- package/dist/components/capability-plugin-loader.d.ts.map +1 -1
- package/dist/components/capability.d.ts +53 -0
- package/dist/components/capability.d.ts.map +1 -1
- package/dist/components/changed-files.d.ts +31 -0
- package/dist/components/changed-files.d.ts.map +1 -0
- package/dist/components/cli-support.d.ts +9 -1
- package/dist/components/cli-support.d.ts.map +1 -1
- package/dist/components/component.d.ts +24 -0
- package/dist/components/component.d.ts.map +1 -1
- package/dist/components/deploy-units.d.ts.map +1 -1
- package/dist/components/driver.d.ts +13 -0
- package/dist/components/driver.d.ts.map +1 -1
- package/dist/components/fan-out-output.d.ts +6 -0
- package/dist/components/fan-out-output.d.ts.map +1 -1
- package/dist/components/fan-out-record.d.ts +41 -0
- package/dist/components/fan-out-record.d.ts.map +1 -0
- package/dist/components/fan-out-run.d.ts +65 -0
- package/dist/components/fan-out-run.d.ts.map +1 -1
- package/dist/components/fan-out-support.d.ts +2 -0
- package/dist/components/fan-out-support.d.ts.map +1 -1
- package/dist/components/fan-out.d.ts +6 -0
- package/dist/components/fan-out.d.ts.map +1 -1
- package/dist/components/gated-wave-pipeline.d.ts +50 -0
- package/dist/components/gated-wave-pipeline.d.ts.map +1 -0
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/layers.d.ts +25 -0
- package/dist/components/layers.d.ts.map +1 -0
- package/dist/components/pr-pipeline.d.ts +61 -0
- package/dist/components/pr-pipeline.d.ts.map +1 -0
- package/dist/components/pr-run.d.ts +119 -0
- package/dist/components/pr-run.d.ts.map +1 -0
- package/dist/components/promote.d.ts.map +1 -1
- package/dist/components/starter-plugin.d.ts.map +1 -1
- package/dist/components/verbs/process-runner.d.ts.map +1 -1
- package/dist/components/verbs/r2-sync.d.ts.map +1 -1
- package/dist/components/verbs/run-agent.d.ts.map +1 -1
- package/dist/components/verbs/sbom-generator.d.ts.map +1 -1
- package/dist/components/verbs/shell.d.ts.map +1 -1
- package/dist/components/verbs/sign.d.ts.map +1 -1
- package/dist/components/verbs/verify.d.ts.map +1 -1
- package/dist/components/verbs/vuln-gate.d.ts.map +1 -1
- package/dist/components/verbs/vuln-scan.d.ts.map +1 -1
- package/dist/components/verbs/wrangler.d.ts.map +1 -1
- package/dist/components/wave-plan.d.ts +49 -0
- package/dist/components/wave-plan.d.ts.map +1 -0
- package/dist/composite.d.ts.map +1 -1
- package/dist/config.d.ts +19 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/declarable.d.ts +16 -0
- package/dist/declarable.d.ts.map +1 -1
- package/dist/discovery/cache.d.ts.map +1 -1
- package/dist/discovery/fold-import.d.ts +15 -5
- package/dist/discovery/fold-import.d.ts.map +1 -1
- package/dist/discovery/param-deps.d.ts +16 -0
- package/dist/discovery/param-deps.d.ts.map +1 -1
- package/dist/discovery/sandbox/policy-wire.d.ts.map +1 -1
- package/dist/discovery/specifier-resolve.d.ts +37 -0
- package/dist/discovery/specifier-resolve.d.ts.map +1 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/fold/fold.d.ts +3 -1
- package/dist/fold/fold.d.ts.map +1 -1
- package/dist/gated-waves.d.ts +147 -0
- package/dist/gated-waves.d.ts.map +1 -0
- package/dist/graph-detail.d.ts.map +1 -1
- package/dist/graph-ir.d.ts.map +1 -1
- package/dist/graph-layout.d.ts.map +1 -1
- package/dist/import/base-parser.d.ts.map +1 -1
- package/dist/import/embedded.d.ts +7 -0
- package/dist/import/embedded.d.ts.map +1 -1
- package/dist/import/parser-options.d.ts +14 -0
- package/dist/import/parser-options.d.ts.map +1 -0
- package/dist/import/parser.d.ts +17 -0
- package/dist/import/parser.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/kubectl-context.d.ts.map +1 -1
- package/dist/lexicon-output.d.ts.map +1 -1
- package/dist/lexicon-schema.d.ts +3 -3
- package/dist/lexicon.d.ts +103 -3
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lifecycle/assert-live.d.ts.map +1 -1
- package/dist/lifecycle/gate-ledger.d.ts +22 -0
- package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
- package/dist/lifecycle/git.d.ts +46 -1
- package/dist/lifecycle/git.d.ts.map +1 -1
- package/dist/lifecycle/member-ledger.d.ts.map +1 -1
- package/dist/lifecycle/observe.d.ts.map +1 -1
- package/dist/lifecycle/plan-ledger.d.ts.map +1 -1
- package/dist/lifecycle/release-ledger.d.ts.map +1 -1
- package/dist/lifecycle/scenario.d.ts.map +1 -1
- package/dist/lifecycle/status.d.ts.map +1 -1
- package/dist/lifecycle/work-lease.d.ts +61 -2
- package/dist/lifecycle/work-lease.d.ts.map +1 -1
- package/dist/lint/config.d.ts +8 -8
- package/dist/lint/engine.d.ts +6 -0
- package/dist/lint/engine.d.ts.map +1 -1
- package/dist/lint/post-synth.d.ts +18 -0
- package/dist/lint/post-synth.d.ts.map +1 -1
- package/dist/lsp/lexicon-providers.d.ts.map +1 -1
- package/dist/op/activities/activity-contracts.d.ts +137 -11
- package/dist/op/activities/activity-contracts.d.ts.map +1 -1
- package/dist/op/activities/apply.d.ts +79 -9
- package/dist/op/activities/apply.d.ts.map +1 -1
- package/dist/op/activities/change-set.d.ts +62 -0
- package/dist/op/activities/change-set.d.ts.map +1 -0
- package/dist/op/activities/decide.d.ts +2 -0
- package/dist/op/activities/decide.d.ts.map +1 -1
- package/dist/op/activities/factory.d.ts +137 -0
- package/dist/op/activities/factory.d.ts.map +1 -0
- package/dist/op/activities/index.d.ts +5 -1
- package/dist/op/activities/index.d.ts.map +1 -1
- package/dist/op/activities/lexicon-upgrade.d.ts +44 -12
- package/dist/op/activities/lexicon-upgrade.d.ts.map +1 -1
- package/dist/op/activity-contract.d.ts +1 -1
- package/dist/op/activity-contract.d.ts.map +1 -1
- package/dist/op/activity-failure.d.ts.map +1 -1
- package/dist/op/activity-profiles.d.ts.map +1 -1
- package/dist/op/builders.d.ts +11 -0
- package/dist/op/builders.d.ts.map +1 -1
- package/dist/op/composites/apply-op.d.ts +12 -5
- package/dist/op/composites/apply-op.d.ts.map +1 -1
- package/dist/op/composites/lexicon-upgrade-op.d.ts +22 -6
- package/dist/op/composites/lexicon-upgrade-op.d.ts.map +1 -1
- package/dist/op/decide-backend.d.ts +5 -1
- package/dist/op/decide-backend.d.ts.map +1 -1
- package/dist/op/decide-read-inputs.d.ts +4 -2
- package/dist/op/decide-read-inputs.d.ts.map +1 -1
- package/dist/op/emulator-lifecycle.d.ts +21 -2
- package/dist/op/emulator-lifecycle.d.ts.map +1 -1
- package/dist/op/factory.d.ts +83 -0
- package/dist/op/factory.d.ts.map +1 -0
- package/dist/op/gate-approval.d.ts +5 -1
- package/dist/op/gate-approval.d.ts.map +1 -1
- package/dist/op/gate-wait.d.ts.map +1 -1
- package/dist/op/gate.d.ts +19 -3
- package/dist/op/gate.d.ts.map +1 -1
- package/dist/op/index.d.ts +6 -1
- package/dist/op/index.d.ts.map +1 -1
- package/dist/op/local-executor.d.ts +6 -0
- package/dist/op/local-executor.d.ts.map +1 -1
- package/dist/op/op-ir.d.ts +2 -0
- package/dist/op/op-ir.d.ts.map +1 -1
- package/dist/op/op-verb-class.d.ts.map +1 -1
- package/dist/op/operator.d.ts.map +1 -1
- package/dist/op/run-context.d.ts +39 -0
- package/dist/op/run-context.d.ts.map +1 -0
- package/dist/op/run-live.d.ts.map +1 -1
- package/dist/op/runtimes/local.d.ts.map +1 -1
- package/dist/op/source-archive.d.ts.map +1 -1
- package/dist/op/steward-beside.d.ts.map +1 -1
- package/dist/op/steward-points.d.ts.map +1 -1
- package/dist/op/steward.d.ts.map +1 -1
- package/dist/op/types.d.ts +16 -3
- package/dist/op/types.d.ts.map +1 -1
- package/dist/op/work-lease-run.d.ts +24 -4
- package/dist/op/work-lease-run.d.ts.map +1 -1
- package/dist/plan-summary.d.ts +207 -0
- package/dist/plan-summary.d.ts.map +1 -0
- package/dist/pr-forge.d.ts +105 -0
- package/dist/pr-forge.d.ts.map +1 -0
- package/dist/pr-loop.d.ts +178 -0
- package/dist/pr-loop.d.ts.map +1 -0
- package/dist/project-root.d.ts.map +1 -1
- package/dist/provenance.d.ts +21 -0
- package/dist/provenance.d.ts.map +1 -1
- package/dist/pseudo-parameter.d.ts.map +1 -1
- package/dist/reconcile.d.ts.map +1 -1
- package/dist/secret-materialization.d.ts.map +1 -1
- package/dist/telemetry-attribution.d.ts +31 -0
- package/dist/telemetry-attribution.d.ts.map +1 -1
- package/dist/terraform/emit-source.d.ts.map +1 -1
- package/dist/terraform/hcl2json.d.ts +45 -0
- package/dist/terraform/hcl2json.d.ts.map +1 -0
- package/dist/terraform/parse.d.ts +4 -40
- package/dist/terraform/parse.d.ts.map +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/workspace/__fixtures__/contract-repo.d.ts.map +1 -1
- package/dist/workspace/__fixtures__/decide-workspace.d.ts +1 -1
- package/dist/workspace/__fixtures__/decide-workspace.d.ts.map +1 -1
- package/dist/workspace/agent-cli.d.ts +5 -0
- package/dist/workspace/agent-cli.d.ts.map +1 -1
- package/dist/workspace/box-cli.d.ts +12 -0
- package/dist/workspace/box-cli.d.ts.map +1 -0
- package/dist/workspace/box-factory.d.ts +97 -0
- package/dist/workspace/box-factory.d.ts.map +1 -0
- package/dist/workspace/box-listing.d.ts +85 -0
- package/dist/workspace/box-listing.d.ts.map +1 -0
- package/dist/workspace/box-publish.d.ts +147 -0
- package/dist/workspace/box-publish.d.ts.map +1 -0
- package/dist/workspace/broker-protocol.d.ts +190 -0
- package/dist/workspace/broker-protocol.d.ts.map +1 -0
- package/dist/workspace/changes.d.ts.map +1 -1
- package/dist/workspace/chant-migrations/chud-lexicon-exit.d.ts.map +1 -1
- package/dist/workspace/checks/boxes.d.ts.map +1 -1
- package/dist/workspace/checks.d.ts +5 -0
- package/dist/workspace/checks.d.ts.map +1 -1
- package/dist/workspace/compose-graph.d.ts +10 -0
- package/dist/workspace/compose-graph.d.ts.map +1 -1
- package/dist/workspace/composites.d.ts +2 -2
- package/dist/workspace/composites.d.ts.map +1 -1
- package/dist/workspace/conformance/__fixtures__/reference-broker.d.ts +17 -0
- package/dist/workspace/conformance/__fixtures__/reference-broker.d.ts.map +1 -0
- package/dist/workspace/conformance/broker.d.ts +202 -0
- package/dist/workspace/conformance/broker.d.ts.map +1 -0
- package/dist/workspace/conformance/index.d.ts +68 -6
- package/dist/workspace/conformance/index.d.ts.map +1 -1
- package/dist/workspace/conformance/vitest.d.ts +19 -3
- package/dist/workspace/conformance/vitest.d.ts.map +1 -1
- package/dist/workspace/conformance/writer.d.ts +462 -0
- package/dist/workspace/conformance/writer.d.ts.map +1 -0
- package/dist/workspace/decide.d.ts +126 -12
- package/dist/workspace/decide.d.ts.map +1 -1
- package/dist/workspace/decision-points.schema.json +11 -4
- package/dist/workspace/declaration.d.ts +156 -4
- package/dist/workspace/declaration.d.ts.map +1 -1
- package/dist/workspace/declaration.schema.json +383 -5
- package/dist/workspace/environments.d.ts +36 -10
- package/dist/workspace/environments.d.ts.map +1 -1
- package/dist/workspace/factory-rules.d.ts +180 -0
- package/dist/workspace/factory-rules.d.ts.map +1 -0
- package/dist/workspace/generated-files.d.ts.map +1 -1
- package/dist/workspace/graph-cache.d.ts.map +1 -1
- package/dist/workspace/graph-cli.d.ts +2 -0
- package/dist/workspace/graph-cli.d.ts.map +1 -1
- package/dist/workspace/identity.d.ts +111 -0
- package/dist/workspace/identity.d.ts.map +1 -0
- package/dist/workspace/init.d.ts +21 -0
- package/dist/workspace/init.d.ts.map +1 -1
- package/dist/workspace/intent-cli.d.ts +7 -4
- package/dist/workspace/intent-cli.d.ts.map +1 -1
- package/dist/workspace/intent-record.d.ts +36 -2
- package/dist/workspace/intent-record.d.ts.map +1 -1
- package/dist/workspace/intent.d.ts +249 -8
- package/dist/workspace/intent.d.ts.map +1 -1
- package/dist/workspace/json-edit.d.ts +24 -0
- package/dist/workspace/json-edit.d.ts.map +1 -0
- package/dist/workspace/jsonc.d.ts +11 -0
- package/dist/workspace/jsonc.d.ts.map +1 -1
- package/dist/workspace/kinds.d.ts +66 -4
- package/dist/workspace/kinds.d.ts.map +1 -1
- package/dist/workspace/lexicon-symbols.d.ts +29 -0
- package/dist/workspace/lexicon-symbols.d.ts.map +1 -0
- package/dist/workspace/lineage-hash-index.d.ts.map +1 -1
- package/dist/workspace/lineage-lock.d.ts +2 -2
- package/dist/workspace/lineage-lock.d.ts.map +1 -1
- package/dist/workspace/lineage-upgrade.d.ts +31 -2
- package/dist/workspace/lineage-upgrade.d.ts.map +1 -1
- package/dist/workspace/links.d.ts.map +1 -1
- package/dist/workspace/point-answer.schema.json +42 -2
- package/dist/workspace/points-cli.d.ts +10 -3
- package/dist/workspace/points-cli.d.ts.map +1 -1
- package/dist/workspace/points.d.ts +66 -5
- package/dist/workspace/points.d.ts.map +1 -1
- package/dist/workspace/principal-classes.d.ts +114 -0
- package/dist/workspace/principal-classes.d.ts.map +1 -0
- package/dist/workspace/reason-codes.d.ts +53 -4
- package/dist/workspace/reason-codes.d.ts.map +1 -1
- package/dist/workspace/record-assets.d.ts.map +1 -1
- package/dist/workspace/record-sessions.d.ts +5 -7
- package/dist/workspace/record-sessions.d.ts.map +1 -1
- package/dist/workspace/records-checkout.d.ts +54 -0
- package/dist/workspace/records-checkout.d.ts.map +1 -0
- package/dist/workspace/records-cli.d.ts +34 -1
- package/dist/workspace/records-cli.d.ts.map +1 -1
- package/dist/workspace/records-close.d.ts +7 -3
- package/dist/workspace/records-close.d.ts.map +1 -1
- package/dist/workspace/records-since.d.ts.map +1 -1
- package/dist/workspace/records-write.d.ts +68 -7
- package/dist/workspace/records-write.d.ts.map +1 -1
- package/dist/workspace/records.d.ts +43 -9
- package/dist/workspace/records.d.ts.map +1 -1
- package/dist/workspace/runs-cli.d.ts +296 -0
- package/dist/workspace/runs-cli.d.ts.map +1 -0
- package/dist/workspace/runs.d.ts +544 -0
- package/dist/workspace/runs.d.ts.map +1 -0
- package/dist/workspace/session-kinds.d.ts +1 -1
- package/dist/workspace/session-kinds.d.ts.map +1 -1
- package/dist/workspace/source-block.d.ts +1 -1
- package/dist/workspace/source-block.d.ts.map +1 -1
- package/dist/workspace/squash.d.ts +80 -0
- package/dist/workspace/squash.d.ts.map +1 -0
- package/dist/workspace/status-gates.d.ts +17 -3
- package/dist/workspace/status-gates.d.ts.map +1 -1
- package/dist/workspace/status.d.ts +64 -0
- package/dist/workspace/status.d.ts.map +1 -1
- package/dist/workspace/symbols.d.ts +63 -0
- package/dist/workspace/symbols.d.ts.map +1 -0
- package/dist/workspace/trailer-joins.d.ts +46 -0
- package/dist/workspace/trailer-joins.d.ts.map +1 -0
- package/dist/workspace/trailers.d.ts +89 -0
- package/dist/workspace/trailers.d.ts.map +1 -0
- package/dist/workspace/trust/attestor.d.ts.map +1 -1
- package/dist/workspace/trust/rotation.d.ts.map +1 -1
- package/dist/workspace/trust/run-commits.d.ts +46 -0
- package/dist/workspace/trust/run-commits.d.ts.map +1 -0
- package/dist/workspace/trust/run-statement.d.ts +128 -0
- package/dist/workspace/trust/run-statement.d.ts.map +1 -0
- package/dist/workspace/trust/seal.d.ts +38 -0
- package/dist/workspace/trust/seal.d.ts.map +1 -1
- package/dist/workspace/trust/test-repo.d.ts.map +1 -1
- package/dist/workspace/trust/verify-cli.d.ts +1 -1
- package/dist/workspace/trust/verify.d.ts +16 -2
- package/dist/workspace/trust/verify.d.ts.map +1 -1
- package/dist/workspace/wip-cli.d.ts +21 -0
- package/dist/workspace/wip-cli.d.ts.map +1 -0
- package/dist/workspace/wip.d.ts +268 -0
- package/dist/workspace/wip.d.ts.map +1 -0
- package/dist/workspace/work-cli.d.ts +39 -3
- package/dist/workspace/work-cli.d.ts.map +1 -1
- package/dist/workspace/work-evidence.d.ts +1 -1
- package/dist/workspace/work-evidence.d.ts.map +1 -1
- package/dist/workspace/work-size.d.ts +55 -0
- package/dist/workspace/work-size.d.ts.map +1 -0
- package/dist/workspace/work.d.ts +26 -1
- package/dist/workspace/work.d.ts.map +1 -1
- package/dist/workspace/workspace-kinds.schema.json +122 -0
- package/dist/workspace/workspace-principals.schema.json +60 -0
- package/dist/workspace/write-lock-cli.d.ts +60 -0
- package/dist/workspace/write-lock-cli.d.ts.map +1 -0
- package/dist/workspace/write-lock.d.ts +152 -0
- package/dist/workspace/write-lock.d.ts.map +1 -0
- package/dist/workspace/write-scope.d.ts +83 -19
- package/dist/workspace/write-scope.d.ts.map +1 -1
- package/dist/yaml.d.ts +21 -39
- package/dist/yaml.d.ts.map +1 -1
- package/package.json +7 -2
- package/src/__fixtures__/change-set/lifecycle-plan.floci.json +59 -0
- package/src/__fixtures__/change-set/lifecycle-v1.ts.txt +4 -0
- package/src/__fixtures__/change-set/lifecycle-v2.ts.txt +4 -0
- package/src/__fixtures__/change-set/lifecycle.change-set.golden.json +95 -0
- package/src/__fixtures__/change-set/warden.change-set.golden.json +106 -0
- package/src/__fixtures__/change-set/warden.plan.json +44 -0
- package/src/__fixtures__/plan-summary/normalization-vectors.json +1593 -0
- package/src/__fixtures__/pr-loop/pr-apply-applied.note.golden.md +31 -0
- package/src/__fixtures__/pr-loop/pr-apply-refused.note.golden.md +31 -0
- package/src/__fixtures__/pr-loop/pr-plan.golden.json +127 -0
- package/src/__fixtures__/pr-loop/pr-plan.note.golden.md +37 -0
- package/src/audit/core.test.ts +15 -0
- package/src/audit/core.ts +8 -2
- package/src/audit/discover.test.ts +11 -0
- package/src/audit/discover.ts +7 -2
- package/src/audit/prior-art.ts +15 -0
- package/src/change-set-bundle.test.ts +57 -0
- package/src/change-set.test.ts +215 -0
- package/src/change-set.ts +445 -0
- package/src/cli/commands/__fixtures__/init-lexicon-output/package.json +1 -1
- package/src/cli/commands/audit-opt-in.test.ts +54 -0
- package/src/cli/commands/audit.ts +29 -2
- package/src/cli/commands/build.test.ts +19 -0
- package/src/cli/commands/build.ts +3 -2
- package/src/cli/commands/carve-emit-state.test.ts +4 -0
- package/src/cli/commands/carve-emit.ts +5 -19
- package/src/cli/commands/check-lexicon.test.ts +62 -1
- package/src/cli/commands/check-lexicon.ts +36 -6
- package/src/cli/commands/import-live.test.ts +18 -0
- package/src/cli/commands/import-parser-options.test.ts +133 -0
- package/src/cli/commands/import.ts +21 -3
- package/src/cli/commands/init-lexicon/templates/project.ts +1 -1
- package/src/cli/commands/init.test.ts +8 -1
- package/src/cli/commands/init.ts +23 -8
- package/src/cli/commands/lint.test.ts +37 -0
- package/src/cli/commands/onboard.test.ts +53 -3
- package/src/cli/commands/onboard.ts +52 -4
- package/src/cli/commands/pinned-upgrade.ts +73 -33
- package/src/cli/handlers/__snapshots__/build-member.test.ts.snap +2 -2
- package/src/cli/handlers/build.ts +13 -1
- package/src/cli/handlers/change-set.test.ts +56 -0
- package/src/cli/handlers/change-set.ts +44 -0
- package/src/cli/handlers/components.ts +2 -2
- package/src/cli/handlers/dev.ts +8 -6
- package/src/cli/handlers/fan-out.test.ts +221 -2
- package/src/cli/handlers/fan-out.ts +165 -75
- package/src/cli/handlers/graph.ts +3 -0
- package/src/cli/handlers/lifecycle.test.ts +67 -0
- package/src/cli/handlers/lifecycle.ts +6 -5
- package/src/cli/handlers/misc.ts +2 -0
- package/src/cli/handlers/operator.test.ts +21 -0
- package/src/cli/handlers/operator.ts +121 -6
- package/src/cli/handlers/pr.ts +373 -0
- package/src/cli/handlers/run.test.ts +111 -0
- package/src/cli/handlers/run.ts +86 -24
- package/src/cli/handlers/scenario.ts +2 -2
- package/src/cli/main.test.ts +21 -0
- package/src/cli/main.ts +246 -30
- package/src/cli/mcp/never-over-mcp.test.ts +101 -0
- package/src/cli/mcp/op-tools.ts +24 -2
- package/src/cli/mcp/workspace-tools.test.ts +5 -2
- package/src/cli/mcp/workspace-tools.ts +62 -7
- package/src/cli/registry.ts +74 -3
- package/src/codegen/pinned-upgrade-multi.test.ts +157 -0
- package/src/codegen/pinned-upgrade-tags.test.ts +112 -0
- package/src/codegen/pinned-upgrade.test.ts +104 -0
- package/src/codegen/pinned-upgrade.ts +250 -56
- package/src/codegen/testdata/postgres-tags.json +242 -0
- package/src/components/auto-release.ts +1 -1
- package/src/components/capability.ts +55 -0
- package/src/components/changed-files.ts +66 -0
- package/src/components/cli-support.ts +28 -5
- package/src/components/component.schema.json +17 -0
- package/src/components/component.ts +25 -0
- package/src/components/deploy-units.ts +3 -0
- package/src/components/driver.test.ts +52 -0
- package/src/components/driver.ts +31 -13
- package/src/components/fan-out-output.ts +42 -1
- package/src/components/fan-out-record.ts +69 -0
- package/src/components/fan-out-run.test.ts +17 -0
- package/src/components/fan-out-run.ts +304 -1
- package/src/components/fan-out-support.ts +3 -0
- package/src/components/fan-out-waves.test.ts +375 -0
- package/src/components/fan-out.ts +18 -17
- package/src/components/gated-wave-pipeline.ts +82 -0
- package/src/components/index.ts +1 -0
- package/src/components/layers.ts +30 -0
- package/src/components/pr-pipeline.ts +91 -0
- package/src/components/pr-run.test.ts +205 -0
- package/src/components/pr-run.ts +280 -0
- package/src/components/promote.ts +5 -0
- package/src/components/verbs/shell.test.ts +11 -0
- package/src/components/verbs/shell.ts +7 -3
- package/src/components/wave-plan.ts +124 -0
- package/src/config.test.ts +21 -0
- package/src/config.ts +15 -0
- package/src/declarable.test.ts +21 -0
- package/src/declarable.ts +19 -0
- package/src/discovery/fold-composite.test.ts +41 -5
- package/src/discovery/fold-import.test.ts +129 -0
- package/src/discovery/fold-import.ts +643 -131
- package/src/discovery/fold-package-composite.test.ts +264 -0
- package/src/discovery/fold-specifiers.test.ts +191 -0
- package/src/discovery/param-deps.test.ts +66 -1
- package/src/discovery/param-deps.ts +45 -0
- package/src/discovery/sandbox/bundle.ts +1 -1
- package/src/discovery/specifier-resolve.ts +344 -0
- package/src/fold/fold.test.ts +39 -1
- package/src/fold/fold.ts +83 -9
- package/src/fold-provenance.test.ts +140 -0
- package/src/gated-waves-bundle.test.ts +62 -0
- package/src/gated-waves.test.ts +118 -0
- package/src/gated-waves.ts +240 -0
- package/src/graph-ir.test.ts +83 -0
- package/src/graph-ir.ts +29 -0
- package/src/import/embedded.test.ts +20 -0
- package/src/import/embedded.ts +13 -0
- package/src/import/parser-options.ts +46 -0
- package/src/import/parser.ts +20 -0
- package/src/index.ts +1 -0
- package/src/lexicon.ts +106 -3
- package/src/lifecycle/gate-ledger.ts +23 -0
- package/src/lifecycle/git.ts +102 -16
- package/src/lifecycle/observe.test.ts +18 -0
- package/src/lifecycle/observe.ts +6 -4
- package/src/lifecycle/snapshot.ts +2 -2
- package/src/lifecycle/work-lease.test.ts +1 -1
- package/src/lifecycle/work-lease.ts +93 -2
- package/src/lint/engine.test.ts +55 -0
- package/src/lint/engine.ts +30 -4
- package/src/lint/output-docs.test.ts +59 -56
- package/src/lint/post-synth.test.ts +19 -0
- package/src/lint/post-synth.ts +19 -1
- package/src/meta/declared-imports.test.ts +1 -1
- package/src/op/activities/activity-contracts.ts +84 -0
- package/src/op/activities/apply.test.ts +189 -5
- package/src/op/activities/apply.ts +230 -8
- package/src/op/activities/change-set.ts +114 -0
- package/src/op/activities/decide.ts +3 -0
- package/src/op/activities/factory.ts +675 -0
- package/src/op/activities/index.ts +9 -0
- package/src/op/activities/lexicon-upgrade.test.ts +160 -6
- package/src/op/activities/lexicon-upgrade.ts +154 -51
- package/src/op/activity-contract.test.ts +21 -1
- package/src/op/activity-contract.ts +19 -9
- package/src/op/builders.ts +23 -0
- package/src/op/composites/apply-op.ts +12 -5
- package/src/op/composites/composites.test.ts +30 -3
- package/src/op/composites/lexicon-upgrade-op.test.ts +7 -2
- package/src/op/composites/lexicon-upgrade-op.ts +29 -8
- package/src/op/decide-backend.ts +5 -1
- package/src/op/decide-read-inputs.ts +33 -5
- package/src/op/emulator-lifecycle.test.ts +23 -0
- package/src/op/emulator-lifecycle.ts +52 -14
- package/src/op/factory.e2e.test.ts +232 -0
- package/src/op/factory.ts +118 -0
- package/src/op/gate-approval.test.ts +74 -0
- package/src/op/gate-approval.ts +5 -1
- package/src/op/gate.ts +31 -5
- package/src/op/index.ts +11 -1
- package/src/op/local-executor.test.ts +15 -0
- package/src/op/local-executor.ts +40 -12
- package/src/op/local-output.ts +1 -1
- package/src/op/op-ir.test.ts +9 -0
- package/src/op/op-ir.ts +4 -0
- package/src/op/op-verb-class.ts +3 -0
- package/src/op/operator.ts +4 -0
- package/src/op/run-context.test.ts +141 -0
- package/src/op/run-context.ts +51 -0
- package/src/op/runtimes/local.test.ts +14 -0
- package/src/op/runtimes/local.ts +2 -0
- package/src/op/steward-beside.ts +2 -0
- package/src/op/types.ts +16 -3
- package/src/op/work-lease-run.test.ts +47 -0
- package/src/op/work-lease-run.ts +76 -11
- package/src/plan-summary.test.ts +263 -0
- package/src/plan-summary.ts +845 -0
- package/src/pr-forge.test.ts +237 -0
- package/src/pr-forge.ts +332 -0
- package/src/pr-loop-bundle.test.ts +46 -0
- package/src/pr-loop.test.ts +171 -0
- package/src/pr-loop.ts +324 -0
- package/src/provenance.ts +35 -0
- package/src/telemetry-attribution.test.ts +23 -1
- package/src/telemetry-attribution.ts +51 -0
- package/src/terraform/hcl2json.test.ts +21 -0
- package/src/terraform/hcl2json.ts +81 -0
- package/src/terraform/parse.ts +11 -74
- package/src/workspace/agent-cli.ts +7 -3
- package/src/workspace/agent.schema.json +22 -0
- package/src/workspace/app-kind.test.ts +196 -0
- package/src/workspace/box-cli.ts +113 -0
- package/src/workspace/box-factory.test.ts +323 -0
- package/src/workspace/box-factory.ts +136 -0
- package/src/workspace/box-listing-write.schema.json +204 -0
- package/src/workspace/box-listing.test.ts +234 -0
- package/src/workspace/box-listing.ts +324 -0
- package/src/workspace/box-publish.schema.json +498 -0
- package/src/workspace/box-publish.test.ts +204 -0
- package/src/workspace/box-publish.ts +420 -0
- package/src/workspace/box-ship.test.ts +96 -0
- package/src/workspace/broker-protocol.schema.json +186 -0
- package/src/workspace/broker-protocol.test.ts +122 -0
- package/src/workspace/broker-protocol.ts +317 -0
- package/src/workspace/builder-tiers.test.ts +146 -0
- package/src/workspace/change-set.schema.json +460 -0
- package/src/workspace/changes.schema.json +12 -20
- package/src/workspace/changes.ts +4 -1
- package/src/workspace/chant-migrations.e2e.test.ts +17 -5
- package/src/workspace/checks/boxes.test.ts +5 -0
- package/src/workspace/checks.ts +39 -8
- package/src/workspace/component-environments.test.ts +105 -0
- package/src/workspace/compose-graph.ts +7 -0
- package/src/workspace/composites.schema.json +23 -4
- package/src/workspace/composites.test.ts +8 -8
- package/src/workspace/composites.ts +13 -2
- package/src/workspace/conformance/__fixture__/decisions/decision.schema.json +2 -2
- package/src/workspace/conformance/__fixtures__/reference-broker.ts +207 -0
- package/src/workspace/conformance/__writer_fixture__/answers/answer.kind.mjs +32 -0
- package/src/workspace/conformance/__writer_fixture__/answers/answer.schema.json +135 -0
- package/src/workspace/conformance/__writer_fixture__/contracts/contract.kind.mjs +37 -0
- package/src/workspace/conformance/__writer_fixture__/contracts/contract.schema.json +213 -0
- package/src/workspace/conformance/__writer_fixture__/decisions/points.json +228 -0
- package/src/workspace/conformance/__writer_fixture__/drivers/driver.kind.mjs +15 -0
- package/src/workspace/conformance/__writer_fixture__/drivers/driver.schema.json +38 -0
- package/src/workspace/conformance/__writer_fixture__/sessions/session.kind.mjs +54 -0
- package/src/workspace/conformance/__writer_fixture__/sessions/session.schema.json +289 -0
- package/src/workspace/conformance/__writer_fixture__/work/W-001-the-writer-suite-works-this-item.md +25 -0
- package/src/workspace/conformance/__writer_fixture__/work/work.kind.mjs +60 -0
- package/src/workspace/conformance/__writer_fixture__/work/work.schema.json +603 -0
- package/src/workspace/conformance/broker.test.ts +122 -0
- package/src/workspace/conformance/broker.ts +792 -0
- package/src/workspace/conformance/conformance.e2e.test.ts +36 -3
- package/src/workspace/conformance/index.mjs +51 -3
- package/src/workspace/conformance/index.ts +107 -15
- package/src/workspace/conformance/vitest.ts +76 -2
- package/src/workspace/conformance/writer-conformance.e2e.test.ts +177 -0
- package/src/workspace/conformance/writer.test.ts +186 -0
- package/src/workspace/conformance/writer.ts +1191 -0
- package/src/workspace/decide.test.ts +208 -4
- package/src/workspace/decide.ts +433 -73
- package/src/workspace/decision-points.schema.json +11 -4
- package/src/workspace/declaration.schema.json +383 -5
- package/src/workspace/declaration.ts +315 -10
- package/src/workspace/environments.ts +66 -14
- package/src/workspace/factory-rules.test.ts +62 -0
- package/src/workspace/factory-rules.ts +218 -0
- package/src/workspace/graph-cli.ts +6 -3
- package/src/workspace/graph.schema.json +314 -0
- package/src/workspace/identity.test.ts +219 -0
- package/src/workspace/identity.ts +186 -0
- package/src/workspace/init.ts +82 -2
- package/src/workspace/intent-cli.ts +84 -13
- package/src/workspace/intent-patch-id.test.ts +162 -0
- package/src/workspace/intent-record.schema.json +336 -1
- package/src/workspace/intent-record.ts +96 -16
- package/src/workspace/intent-reviews.test.ts +76 -0
- package/src/workspace/intent-squash.test.ts +213 -0
- package/src/workspace/intent-why.test.ts +274 -0
- package/src/workspace/intent.schema.json +950 -9
- package/src/workspace/intent.test.ts +11 -2
- package/src/workspace/intent.ts +722 -65
- package/src/workspace/json-edit.test.ts +121 -0
- package/src/workspace/json-edit.ts +142 -0
- package/src/workspace/jsonc.ts +20 -0
- package/src/workspace/kinds.ts +201 -39
- package/src/workspace/lexicon-symbols.test.ts +148 -0
- package/src/workspace/lexicon-symbols.ts +125 -0
- package/src/workspace/lineage-upgrade.test.ts +63 -0
- package/src/workspace/lineage-upgrade.ts +146 -5
- package/src/workspace/plan-summary.schema.json +155 -0
- package/src/workspace/point-answer.schema.json +42 -2
- package/src/workspace/points-cli.ts +42 -16
- package/src/workspace/points-write.schema.json +163 -4
- package/src/workspace/points.schema.json +157 -2
- package/src/workspace/points.test.ts +13 -1
- package/src/workspace/points.ts +118 -12
- package/src/workspace/pr-report.schema.json +95 -0
- package/src/workspace/principal-classes.test.ts +175 -0
- package/src/workspace/principal-classes.ts +307 -0
- package/src/workspace/profiles.test.ts +159 -0
- package/src/workspace/read-contract.test.ts +2 -2
- package/src/workspace/reason-codes.test.ts +23 -3
- package/src/workspace/reason-codes.ts +61 -4
- package/src/workspace/record-sessions.ts +9 -8
- package/src/workspace/records-amend.schema.json +80 -0
- package/src/workspace/records-checkout.ts +106 -0
- package/src/workspace/records-cli.ts +123 -17
- package/src/workspace/records-close.schema.json +79 -0
- package/src/workspace/records-close.ts +31 -7
- package/src/workspace/records-concurrent.e2e.test.ts +135 -0
- package/src/workspace/records-concurrent.test.ts +145 -0
- package/src/workspace/records-formats.test.ts +46 -10
- package/src/workspace/records-new.schema.json +9 -0
- package/src/workspace/records-review.schema.json +80 -0
- package/src/workspace/records-sessions-write.test.ts +69 -0
- package/src/workspace/records-sessions.test.ts +22 -0
- package/src/workspace/records-uncommitted.test.ts +171 -0
- package/src/workspace/records-write.ts +219 -30
- package/src/workspace/records.schema.json +88 -1
- package/src/workspace/records.ts +76 -8
- package/src/workspace/reference-kinds/app/package.json +10 -0
- package/src/workspace/reference-kinds/app/workspace-kinds.json +45 -0
- package/src/workspace/run-statement.schema.json +622 -0
- package/src/workspace/runs-cli.ts +710 -0
- package/src/workspace/runs-statement.test.ts +239 -0
- package/src/workspace/runs-write.schema.json +994 -0
- package/src/workspace/runs.schema.json +1257 -0
- package/src/workspace/runs.test.ts +281 -0
- package/src/workspace/runs.ts +970 -0
- package/src/workspace/session-kinds.ts +3 -3
- package/src/workspace/squash.ts +198 -0
- package/src/workspace/status-contract.test.ts +10 -2
- package/src/workspace/status-gates.ts +25 -9
- package/src/workspace/status.schema.json +252 -4
- package/src/workspace/status.ts +110 -1
- package/src/workspace/symbols.ts +191 -0
- package/src/workspace/trailer-joins.test.ts +171 -0
- package/src/workspace/trailer-joins.ts +82 -0
- package/src/workspace/trailers.ts +148 -0
- package/src/workspace/trust/run-commits.ts +115 -0
- package/src/workspace/trust/run-statement.ts +226 -0
- package/src/workspace/trust/seal.ts +58 -1
- package/src/workspace/trust/verify-cli.ts +6 -5
- package/src/workspace/trust/verify.ts +39 -6
- package/src/workspace/wip-cli.ts +97 -0
- package/src/workspace/wip-write.schema.json +504 -0
- package/src/workspace/wip.schema.json +334 -0
- package/src/workspace/wip.test.ts +294 -0
- package/src/workspace/wip.ts +753 -0
- package/src/workspace/work-cli.e2e.test.ts +28 -1
- package/src/workspace/work-cli.ts +136 -8
- package/src/workspace/work-evidence.schema.json +5 -0
- package/src/workspace/work-history.schema.json +73 -1
- package/src/workspace/work-history.test.ts +48 -5
- package/src/workspace/work-kind-fields.test.ts +154 -0
- package/src/workspace/work-lease.schema.json +14 -1
- package/src/workspace/work-size.test.ts +77 -0
- package/src/workspace/work-size.ts +93 -0
- package/src/workspace/work.ts +82 -0
- package/src/workspace/workspace-kinds.schema.json +122 -0
- package/src/workspace/workspace-principals.schema.json +60 -0
- package/src/workspace/write-lock-cli.ts +131 -0
- package/src/workspace/write-lock.schema.json +172 -0
- package/src/workspace/write-lock.test.ts +189 -0
- package/src/workspace/write-lock.ts +474 -0
- package/src/workspace/write-scope.test.ts +144 -3
- package/src/workspace/write-scope.ts +192 -45
- package/src/yaml.test.ts +111 -1
- package/src/yaml.ts +141 -549
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "urn:intentius:chant:driver:1",
|
|
4
|
+
"title": "Driver file front matter",
|
|
5
|
+
"description": "The front matter of one driver file in design/drivers/ (#3148, ws-082): contracts grouped under one intent. The Markdown body after the front matter is the design notes. Values stay within what YAML and JSON share.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"patternProperties": {
|
|
9
|
+
"^x-": {}
|
|
10
|
+
},
|
|
11
|
+
"required": ["schema", "id", "title", "intent", "members"],
|
|
12
|
+
"properties": {
|
|
13
|
+
"schema": {
|
|
14
|
+
"description": "Format version of this file. Bumped only by a change to this schema.",
|
|
15
|
+
"const": 1
|
|
16
|
+
},
|
|
17
|
+
"id": {
|
|
18
|
+
"description": "Stable id: D, a dash and three or more digits, as studio numbers its drivers. Never reused, never renumbered.",
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^D-[0-9]{3,}$"
|
|
21
|
+
},
|
|
22
|
+
"title": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"minLength": 1
|
|
25
|
+
},
|
|
26
|
+
"intent": {
|
|
27
|
+
"description": "What the member contracts add up to once all of them hold, in a sentence or two.",
|
|
28
|
+
"type": "string",
|
|
29
|
+
"pattern": "\\S"
|
|
30
|
+
},
|
|
31
|
+
"members": {
|
|
32
|
+
"description": "The contracts the driver groups, by id. May be empty while the driver is being planned.",
|
|
33
|
+
"type": "array",
|
|
34
|
+
"uniqueItems": true,
|
|
35
|
+
"items": { "type": "string", "pattern": "^C-[0-9]{3,}$" }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// The review-session record kind (#2673, #2650 C10), data only: no imports,
|
|
2
|
+
// no code.
|
|
3
|
+
//
|
|
4
|
+
// chant workspace records --kind design/sessions/session.kind.mjs --json
|
|
5
|
+
// chant workspace records --kind design/sessions/session.kind.mjs --since <open commit> --at <close commit> --json
|
|
6
|
+
// chant workspace records --since S-0002 --json
|
|
7
|
+
// chant workspace records close S-0002
|
|
8
|
+
//
|
|
9
|
+
// A session is a group walking an agenda of records together. It keeps who
|
|
10
|
+
// attended and the verdicts it produced, and it is sealed when it closes.
|
|
11
|
+
// Each verdict it produced is also an entry in the judged record's reviews
|
|
12
|
+
// list, whose session field names the session. Its verdicts judge decisions,
|
|
13
|
+
// contracts and drivers (#3148, ws-082): studio's design sessions, which
|
|
14
|
+
// approved contracts and signed off drivers, are this kind, and so is a
|
|
15
|
+
// comment-mode review of the app's UI, one session per review batch, with
|
|
16
|
+
// its anchored comments, the agent's answers and the rounds of replies
|
|
17
|
+
// (#3350, ws-083). chud's session
|
|
18
|
+
// files (such as sessions/S-0001.json) are the starting shape; sessions are
|
|
19
|
+
// markdown front matter so that records new, amend, review and close write
|
|
20
|
+
// them.
|
|
21
|
+
export const recordKind = {
|
|
22
|
+
name: "session",
|
|
23
|
+
location: { dir: ".", match: "^S-[0-9]{4,}-.+\\.md$" },
|
|
24
|
+
format: "markdown-front-matter",
|
|
25
|
+
schema: { id: "urn:intentius:chant:session:1", path: "session.schema.json" },
|
|
26
|
+
idField: "id",
|
|
27
|
+
stateField: "state",
|
|
28
|
+
states: ["open", "closed"],
|
|
29
|
+
// A closed session never changes: records checks its seal on every read.
|
|
30
|
+
closedStates: ["closed"],
|
|
31
|
+
// The kind contract requires a supersedes declaration (#2664 proposes making
|
|
32
|
+
// it optional). The session schema has no supersedes field, so a session
|
|
33
|
+
// never supersedes another.
|
|
34
|
+
supersedes: { field: "supersedes", key: "session" },
|
|
35
|
+
// verdicts: the verdicts the session produced, each naming a decision.
|
|
36
|
+
// seal: the whole-file seal, sha256: and the hex SHA-256 of the JCS form
|
|
37
|
+
// of the session without closed_digest (front matter as core, the text
|
|
38
|
+
// below it as body, line endings LF), written when the session closes
|
|
39
|
+
// (#2546).
|
|
40
|
+
// subjects: the kinds of the records the verdicts name, decisions,
|
|
41
|
+
// contracts and drivers. Entries of their reviews lists (each kind's
|
|
42
|
+
// reviews.field) name a session.
|
|
43
|
+
// openedRev, closedRev and closedOn (#2693): the fields records new and
|
|
44
|
+
// records close write, the commits the session opened and closed at and
|
|
45
|
+
// the time it closed. records --since <session id> reads the commits.
|
|
46
|
+
session: {
|
|
47
|
+
verdicts: "verdicts",
|
|
48
|
+
seal: "closed_digest",
|
|
49
|
+
subjects: { kinds: ["../decisions/decision.kind.mjs", "../contracts/contract.kind.mjs", "../drivers/driver.kind.mjs"] },
|
|
50
|
+
openedRev: "opened_rev",
|
|
51
|
+
closedRev: "closed_rev",
|
|
52
|
+
closedOn: "closed",
|
|
53
|
+
},
|
|
54
|
+
};
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "urn:intentius:chant:session:1",
|
|
4
|
+
"title": "Review session",
|
|
5
|
+
"description": "The front matter of a review-session file (#2673, #2650 C10): a group walking an agenda of records together, who attended, and the verdicts the session produced. Its verdicts judge decisions, contracts and drivers, the kinds the session kind names as subjects (#3148, ws-082). A comment-mode review of the app's UI is a session too, one per review batch, with its comments, the agent's answers and the rounds of replies (#3350, ws-083). Each verdict is also an entry in the judged record's reviews list, whose session field names this session. A closed session is sealed: closed_digest is sha256: and the lowercase hex SHA-256 of the JCS form of the whole session without closed_digest (its front matter as core and the text below it as body, line endings LF, #2546), and chant workspace records checks it on every read (session-seal-mismatch).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"patternProperties": {
|
|
9
|
+
"^x-": {}
|
|
10
|
+
},
|
|
11
|
+
"required": ["schema", "id", "title", "state", "agenda", "attendance", "opened", "closed", "verdicts"],
|
|
12
|
+
"properties": {
|
|
13
|
+
"schema": { "const": 1 },
|
|
14
|
+
"id": {
|
|
15
|
+
"description": "S- and at least four digits, as chud numbers its sessions.",
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^S-[0-9]{4,}$"
|
|
18
|
+
},
|
|
19
|
+
"title": { "type": "string", "minLength": 1 },
|
|
20
|
+
"state": { "enum": ["open", "closed"] },
|
|
21
|
+
"agenda": {
|
|
22
|
+
"description": "What the session walks, in order: a record by its id, or an item of free text. A record may say what it was when it was put up (digest), the evidence records reviewed with it and any screenshot or recording (#3148).",
|
|
23
|
+
"type": "array",
|
|
24
|
+
"minItems": 1,
|
|
25
|
+
"items": {
|
|
26
|
+
"oneOf": [
|
|
27
|
+
{
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"required": ["record"],
|
|
31
|
+
"properties": {
|
|
32
|
+
"record": { "type": "string", "minLength": 1 },
|
|
33
|
+
"digest": {
|
|
34
|
+
"description": "The record's digest when it was put up for review, as chant workspace records --json prints it.",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
37
|
+
},
|
|
38
|
+
"evidence": {
|
|
39
|
+
"description": "The evidence records reviewed with it, by id: the SHA-256 each evidence file is named for.",
|
|
40
|
+
"type": "array",
|
|
41
|
+
"uniqueItems": true,
|
|
42
|
+
"items": { "type": "string", "pattern": "^[0-9a-f]{64}$" }
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"description": "Screenshots and recordings shown with it, each a workspace path or an https link.",
|
|
46
|
+
"type": "array",
|
|
47
|
+
"items": {
|
|
48
|
+
"type": "object",
|
|
49
|
+
"additionalProperties": false,
|
|
50
|
+
"required": ["kind", "ref"],
|
|
51
|
+
"properties": {
|
|
52
|
+
"kind": { "enum": ["screenshot", "recording"] },
|
|
53
|
+
"ref": { "type": "string", "minLength": 1 }
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "object",
|
|
61
|
+
"additionalProperties": false,
|
|
62
|
+
"required": ["text"],
|
|
63
|
+
"properties": { "text": { "type": "string", "pattern": "\\S" } }
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"attendance": {
|
|
69
|
+
"description": "Who joined, with the class of each principal. An agent may attend to prepare and lay out; it never gives a verdict (#2650).",
|
|
70
|
+
"type": "array",
|
|
71
|
+
"items": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": ["principal", "class"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"principal": { "type": "string", "minLength": 1 },
|
|
77
|
+
"class": { "enum": ["person", "agent"] },
|
|
78
|
+
"roles": {
|
|
79
|
+
"description": "The roles the principal holds in the session, such as reviewer or facilitator. A quorum that names roles counts only verdicts by principals holding one.",
|
|
80
|
+
"type": "array",
|
|
81
|
+
"uniqueItems": true,
|
|
82
|
+
"items": { "type": "string", "minLength": 1 }
|
|
83
|
+
},
|
|
84
|
+
"joined": { "description": "When the principal joined. Optional.", "$ref": "#/definitions/dateTime" }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"opened": { "$ref": "#/definitions/dateTime" },
|
|
89
|
+
"opened_by": {
|
|
90
|
+
"description": "Who opened the session. Optional.",
|
|
91
|
+
"type": "string",
|
|
92
|
+
"minLength": 1
|
|
93
|
+
},
|
|
94
|
+
"opened_rev": {
|
|
95
|
+
"description": "The commit HEAD named when chant workspace records new wrote the session (#2693), or null when the repository had no commit yet; the next records amend, review --session or close fills it. chant writes it, and records --since <session id> reads it. Optional, so a session written before #2693 stays valid.",
|
|
96
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/definitions/rev" }]
|
|
97
|
+
},
|
|
98
|
+
"closed": {
|
|
99
|
+
"description": "When the session closed, or null while it is open.",
|
|
100
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/definitions/dateTime" }]
|
|
101
|
+
},
|
|
102
|
+
"closed_rev": {
|
|
103
|
+
"description": "The commit HEAD named when chant workspace records close closed the session (#2693), or null when the repository had no commit. Only a closed session has it. Optional, so a session closed before #2693 stays valid.",
|
|
104
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/definitions/rev" }]
|
|
105
|
+
},
|
|
106
|
+
"closed_by": {
|
|
107
|
+
"description": "Who closes or closed the session, set by an amendment before chant workspace records close seals it. Optional.",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"minLength": 1
|
|
110
|
+
},
|
|
111
|
+
"verdicts": {
|
|
112
|
+
"description": "The verdicts the session produced, in the order they were given. Each names a record of one of the session kind's subject kinds: a decision, a contract or a driver.",
|
|
113
|
+
"type": "array",
|
|
114
|
+
"items": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"additionalProperties": false,
|
|
117
|
+
"required": ["record", "principal", "verdict"],
|
|
118
|
+
"properties": {
|
|
119
|
+
"record": { "description": "The id of the record judged.", "type": "string", "minLength": 1 },
|
|
120
|
+
"principal": { "type": "string", "minLength": 1 },
|
|
121
|
+
"verdict": { "enum": ["agree", "dissent", "abstain"] },
|
|
122
|
+
"digest": {
|
|
123
|
+
"description": "The digest of the record text the verdict judged, as the review entry carries it.",
|
|
124
|
+
"type": "string",
|
|
125
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
126
|
+
},
|
|
127
|
+
"roles": {
|
|
128
|
+
"description": "The roles the principal gave the verdict in, which a quorum that names roles counts. Optional.",
|
|
129
|
+
"type": "array",
|
|
130
|
+
"uniqueItems": true,
|
|
131
|
+
"items": { "type": "string", "minLength": 1 }
|
|
132
|
+
},
|
|
133
|
+
"at": { "description": "When the verdict was given. Optional.", "$ref": "#/definitions/dateTime" },
|
|
134
|
+
"note": { "description": "Why, in the principal's words. Optional.", "type": "string" }
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"follow_ups": {
|
|
139
|
+
"description": "Records the session started for later, as <kind>:<id> with kind the record kind's name, the form a Chant-Record trailer uses (ws-075): contracts drafted, work items proposed, decisions opened. Optional.",
|
|
140
|
+
"type": "array",
|
|
141
|
+
"uniqueItems": true,
|
|
142
|
+
"items": { "$ref": "#/definitions/recordRef" }
|
|
143
|
+
},
|
|
144
|
+
"comments": {
|
|
145
|
+
"description": "What people said in the session, in order (#3350, ws-083). A comment-mode review of the app's UI is one session per review batch: each comment is anchored to the page and elements it was made on, the agent that worked the batch answers each one, and a person may reply in later rounds. The comments are numbered from 1 by their position, as hud numbers them. Optional.",
|
|
146
|
+
"type": "array",
|
|
147
|
+
"items": { "$ref": "#/definitions/comment" }
|
|
148
|
+
},
|
|
149
|
+
"rounds": {
|
|
150
|
+
"description": "The rounds of a review batch (#3350, ws-083): round 0 is the batch as it was sent, with its note; each later round is a person's replies, which send the batch back for another turn. ended is when the agent's turn for the round ended, null while it is working. Optional.",
|
|
151
|
+
"type": "array",
|
|
152
|
+
"items": { "$ref": "#/definitions/round" }
|
|
153
|
+
},
|
|
154
|
+
"closed_digest": {
|
|
155
|
+
"description": "The seal, written when the session closes.",
|
|
156
|
+
"type": "string",
|
|
157
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"definitions": {
|
|
161
|
+
"rev": { "type": "string", "pattern": "^[0-9a-f]{40,64}$" },
|
|
162
|
+
"comment": {
|
|
163
|
+
"type": "object",
|
|
164
|
+
"additionalProperties": false,
|
|
165
|
+
"required": ["text"],
|
|
166
|
+
"properties": {
|
|
167
|
+
"text": {
|
|
168
|
+
"description": "What the person wrote. Empty when the comment only marks its elements for the round's note.",
|
|
169
|
+
"type": "string"
|
|
170
|
+
},
|
|
171
|
+
"by": { "description": "Who wrote it. Optional; a review batch's reviewer is in attendance.", "type": "string", "minLength": 1 },
|
|
172
|
+
"at": { "description": "When it was written. Optional.", "$ref": "#/definitions/dateTime" },
|
|
173
|
+
"anchor": {
|
|
174
|
+
"description": "Where in the app the comment was made: the page's route and the elements it points at.",
|
|
175
|
+
"type": "object",
|
|
176
|
+
"additionalProperties": false,
|
|
177
|
+
"required": ["route", "elements"],
|
|
178
|
+
"properties": {
|
|
179
|
+
"route": {
|
|
180
|
+
"description": "The page, as its path with any query and hash.",
|
|
181
|
+
"type": "string",
|
|
182
|
+
"minLength": 1
|
|
183
|
+
},
|
|
184
|
+
"elements": {
|
|
185
|
+
"type": "array",
|
|
186
|
+
"minItems": 1,
|
|
187
|
+
"items": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"required": ["selector", "state"],
|
|
191
|
+
"properties": {
|
|
192
|
+
"selector": { "description": "A CSS selector for the element.", "type": "string", "minLength": 1 },
|
|
193
|
+
"tag": { "description": "The element's tag name.", "type": "string", "minLength": 1 },
|
|
194
|
+
"text": { "description": "The element's text when the comment was made, cut short.", "type": "string" },
|
|
195
|
+
"state": {
|
|
196
|
+
"description": "anchored: the selector found exactly the element. ambiguous: it found more than one. lost: it found none.",
|
|
197
|
+
"enum": ["anchored", "ambiguous", "lost"]
|
|
198
|
+
},
|
|
199
|
+
"basis": {
|
|
200
|
+
"description": "What the selector was built from: an authored anchor (data-hud-id), the element's id, a test id, or its path in the page. Optional.",
|
|
201
|
+
"enum": ["authored", "id", "testid", "path"]
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"answers": {
|
|
209
|
+
"description": "The agent's answers to the comment, one per round it answered in, oldest first; the last is the current one. handled: it changed something, and note says what. skipped: it did not, and note says why. needs-discussion: note is the question a person has to settle, by replying in a later round.",
|
|
210
|
+
"type": "array",
|
|
211
|
+
"items": {
|
|
212
|
+
"type": "object",
|
|
213
|
+
"additionalProperties": false,
|
|
214
|
+
"required": ["round", "disposition", "note"],
|
|
215
|
+
"properties": {
|
|
216
|
+
"round": { "type": "integer", "minimum": 0 },
|
|
217
|
+
"disposition": { "enum": ["handled", "skipped", "needs-discussion"] },
|
|
218
|
+
"note": { "type": "string", "pattern": "\\S" },
|
|
219
|
+
"by": { "description": "The agent that answered. Optional.", "type": "string", "minLength": 1 },
|
|
220
|
+
"at": { "$ref": "#/definitions/dateTime" }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"replies": {
|
|
225
|
+
"description": "A person's replies to the comment, one per round from round 1.",
|
|
226
|
+
"type": "array",
|
|
227
|
+
"items": {
|
|
228
|
+
"type": "object",
|
|
229
|
+
"additionalProperties": false,
|
|
230
|
+
"required": ["round", "text"],
|
|
231
|
+
"properties": {
|
|
232
|
+
"round": { "type": "integer", "minimum": 1 },
|
|
233
|
+
"text": { "type": "string", "pattern": "\\S" },
|
|
234
|
+
"by": { "type": "string", "minLength": 1 },
|
|
235
|
+
"at": { "$ref": "#/definitions/dateTime" }
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"exit": {
|
|
240
|
+
"description": "How the comment left the box, once a person decided (hud#703, studio-039): kept, its record stays in the repository as the source of the work its changes are; sent, it went out with Send; dismissed, it was let go. Absent until then.",
|
|
241
|
+
"enum": ["kept", "sent", "dismissed"]
|
|
242
|
+
},
|
|
243
|
+
"follow_ups": {
|
|
244
|
+
"description": "Records the comment led to, as <kind>:<id>, such as the work item that carries its change. Optional.",
|
|
245
|
+
"type": "array",
|
|
246
|
+
"uniqueItems": true,
|
|
247
|
+
"items": { "$ref": "#/definitions/recordRef" }
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"round": {
|
|
252
|
+
"type": "object",
|
|
253
|
+
"additionalProperties": false,
|
|
254
|
+
"required": ["round", "note", "at"],
|
|
255
|
+
"properties": {
|
|
256
|
+
"round": { "type": "integer", "minimum": 0 },
|
|
257
|
+
"note": {
|
|
258
|
+
"description": "The note sent with the round, or null when there was none. A reply round needs a reply or a note.",
|
|
259
|
+
"type": ["string", "null"]
|
|
260
|
+
},
|
|
261
|
+
"by": { "description": "Who sent the round. Optional.", "type": "string", "minLength": 1 },
|
|
262
|
+
"at": { "description": "When the round was sent.", "$ref": "#/definitions/dateTime" },
|
|
263
|
+
"ended": {
|
|
264
|
+
"description": "When the agent's turn for the round ended, or null while it is working. Optional.",
|
|
265
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/definitions/dateTime" }]
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"recordRef": {
|
|
270
|
+
"description": "A record as <kind>:<id>, such as contract:C-002 or work:W-004.",
|
|
271
|
+
"type": "string",
|
|
272
|
+
"pattern": "^[a-z][a-z0-9-]*:[A-Za-z0-9][A-Za-z0-9._-]*$"
|
|
273
|
+
},
|
|
274
|
+
"dateTime": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}(:[0-9]{2}(\\.[0-9]+)?)?(Z|[+-][0-9]{2}:[0-9]{2})$"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"if": { "required": ["state"], "properties": { "state": { "const": "closed" } } },
|
|
280
|
+
"then": {
|
|
281
|
+
"description": "A closed session needs its closed time and its seal.",
|
|
282
|
+
"required": ["closed_digest"],
|
|
283
|
+
"properties": { "closed": { "$ref": "#/definitions/dateTime" } }
|
|
284
|
+
},
|
|
285
|
+
"else": {
|
|
286
|
+
"description": "An open session has no closed time, no closing revision and no seal.",
|
|
287
|
+
"properties": { "closed": { "type": "null" }, "closed_rev": false, "closed_digest": false }
|
|
288
|
+
}
|
|
289
|
+
}
|
package/src/workspace/conformance/__writer_fixture__/work/W-001-the-writer-suite-works-this-item.md
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: 1
|
|
3
|
+
id: "W-001"
|
|
4
|
+
title: "The writer suite works this item"
|
|
5
|
+
state: "open"
|
|
6
|
+
implements: []
|
|
7
|
+
needs: []
|
|
8
|
+
constrains:
|
|
9
|
+
- "member:delivery"
|
|
10
|
+
evidence: []
|
|
11
|
+
acceptance:
|
|
12
|
+
- id: "AC-1"
|
|
13
|
+
text: "A run under the item's lease attaches evidence for this criterion through chant"
|
|
14
|
+
verification: "unit"
|
|
15
|
+
owner: "conformance"
|
|
16
|
+
opened_on: "2026-01-01"
|
|
17
|
+
source:
|
|
18
|
+
kind: "workspace"
|
|
19
|
+
member: "delivery"
|
|
20
|
+
supersedes: []
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# The writer suite works this item
|
|
24
|
+
|
|
25
|
+
The writer conformance suite (INTENTIUS/chant#3159) claims this item's lease, renews it, attaches evidence for AC-1 and releases it, each through the writer under test.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// The work item record kind (#2683), data only: no imports, no code.
|
|
2
|
+
//
|
|
3
|
+
// chant workspace records --kind work/work.kind.mjs --json
|
|
4
|
+
// chant workspace graph --intent <region> --kind decisions/decision.kind.mjs --kind work/work.kind.mjs
|
|
5
|
+
//
|
|
6
|
+
// A work item is a record in the workspace, with its dependencies written
|
|
7
|
+
// inside it, that people and agents share as one queue with no server. Most
|
|
8
|
+
// come from a gap the intent graph reports, named in `source.finding`.
|
|
9
|
+
// Records are Markdown with front matter: an item keeps its id while its
|
|
10
|
+
// state changes, so it is not content-addressed. ws-053 (#2664) lets a kind
|
|
11
|
+
// read `format: "json"`, but `records new` and `records amend` write Markdown
|
|
12
|
+
// only, so work items stay Markdown until the write commands write JSON.
|
|
13
|
+
export const recordKind = {
|
|
14
|
+
name: "work",
|
|
15
|
+
location: { dir: ".", match: "^W-[0-9]{3,}-.+\\.md$" },
|
|
16
|
+
format: "markdown-front-matter",
|
|
17
|
+
schema: { id: "urn:intentius:chant:work:1", path: "work.schema.json" },
|
|
18
|
+
idField: "id",
|
|
19
|
+
stateField: "state",
|
|
20
|
+
// A proposal opens proposed: an item an agent or a decision point's model
|
|
21
|
+
// suggested (ws-058, #2741). A person keeps it by moving it to open, or drops it.
|
|
22
|
+
states: ["proposed", "open", "in-progress", "done", "dropped"],
|
|
23
|
+
closedStates: ["done", "dropped"],
|
|
24
|
+
// Takes effect from a done or dropped item, the closed states.
|
|
25
|
+
supersedes: { field: "supersedes", key: "work" },
|
|
26
|
+
// records new --by and the MCP records-new tool's by name a proposal's
|
|
27
|
+
// proposer here (#2756).
|
|
28
|
+
proposedBy: { field: "proposed_by" },
|
|
29
|
+
// Evidence is the proof of done: links, or workspace files pinned by hash.
|
|
30
|
+
pins: { field: "evidence" },
|
|
31
|
+
// The same grammar as a decision's: member:, path:, issues and decision ids.
|
|
32
|
+
constrains: { field: "constrains" },
|
|
33
|
+
// Workspace paths the change doing the work must not touch (#2773):
|
|
34
|
+
// chant workspace check --changes --work <id> reports change-out-of-scope.
|
|
35
|
+
outOfScope: { field: "out_of_scope" },
|
|
36
|
+
// needs and implements, the decisions they name, and when an item is ready.
|
|
37
|
+
work: {
|
|
38
|
+
needs: "needs",
|
|
39
|
+
implements: "implements",
|
|
40
|
+
decisions: "../decisions/decision.kind.mjs",
|
|
41
|
+
open: "open",
|
|
42
|
+
done: "done",
|
|
43
|
+
closedOn: "closed_on",
|
|
44
|
+
// What done means, stated on the record (#2772): each criterion expects
|
|
45
|
+
// a verification, and a manual verdict never comes from the owner.
|
|
46
|
+
acceptance: { field: "acceptance", implementer: "owner" },
|
|
47
|
+
// The builder tiers an item may name in tier, declared once here (#3147).
|
|
48
|
+
// The same three the slice-tier decision point answers with.
|
|
49
|
+
tier: { field: "tier", tiers: ["small", "medium", "large"] },
|
|
50
|
+
// An item is left to people after this many failed attempts, counted
|
|
51
|
+
// from its lease history (chant workspace work history). An item's own
|
|
52
|
+
// max_attempts overrides it (#3147).
|
|
53
|
+
attempts: { field: "max_attempts", max: 3 },
|
|
54
|
+
// Decision points' answers about an item are joined from the answer
|
|
55
|
+
// kind by the item's id, never copied onto the item (#3147).
|
|
56
|
+
answers: "../answers/answer.kind.mjs",
|
|
57
|
+
// A workspace with a contract kind links items to contracts with
|
|
58
|
+
// contract: { field: "contract", kind: "<contract kind file>" }.
|
|
59
|
+
},
|
|
60
|
+
};
|