@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.
Files changed (991) hide show
  1. package/bin/chant +11 -0
  2. package/dist/agents/checks.js +326 -0
  3. package/dist/agents/discover.js +885 -0
  4. package/dist/agents/importer.js +17 -0
  5. package/dist/agents/index.js +12 -0
  6. package/dist/agents/types.js +19 -0
  7. package/dist/apply.js +151 -0
  8. package/dist/attrref.js +70 -0
  9. package/dist/audit/catalog.js +350 -0
  10. package/dist/audit/core.js +252 -0
  11. package/dist/audit/discover.js +633 -0
  12. package/dist/audit/fetch.js +666 -0
  13. package/dist/audit/lineage.js +91 -0
  14. package/dist/audit/nginx.js +366 -0
  15. package/dist/audit/prior-art.js +132 -0
  16. package/dist/audit/proof.js +321 -0
  17. package/dist/audit/report-html.js +194 -0
  18. package/dist/audit/report-model.js +198 -0
  19. package/dist/audit/report.js +102 -0
  20. package/dist/audit/rules-doc.js +144 -0
  21. package/dist/audit/secrets.js +405 -0
  22. package/dist/audit/terraform-state.js +140 -0
  23. package/dist/audit/wrangler.js +262 -0
  24. package/dist/behaviour-delta.js +401 -0
  25. package/dist/behaviour-engine.js +357 -0
  26. package/dist/behaviour-graph.js +83 -0
  27. package/dist/behaviour-http.js +188 -0
  28. package/dist/behaviour-kinds.js +172 -0
  29. package/dist/behaviour-overlay.js +50 -0
  30. package/dist/behaviour-predict.js +188 -0
  31. package/dist/behaviour-request.js +194 -0
  32. package/dist/behaviour.js +1325 -0
  33. package/dist/build-params.js +108 -0
  34. package/dist/build.d.ts +6 -0
  35. package/dist/build.d.ts.map +1 -1
  36. package/dist/build.js +669 -0
  37. package/dist/builder.js +44 -0
  38. package/dist/cdk/advise.js +30 -0
  39. package/dist/cdk/assembly.js +122 -0
  40. package/dist/cdk/graph.js +444 -0
  41. package/dist/cdk/tier-map.js +64 -0
  42. package/dist/cdk/types.js +24 -0
  43. package/dist/change-set.d.ts +24 -2
  44. package/dist/change-set.d.ts.map +1 -1
  45. package/dist/change-set.js +361 -0
  46. package/dist/child-project.js +21 -0
  47. package/dist/ci-jobs.d.ts +227 -0
  48. package/dist/ci-jobs.d.ts.map +1 -0
  49. package/dist/ci-jobs.js +448 -0
  50. package/dist/claimed-fields.js +135 -0
  51. package/dist/cli/build-options.js +70 -0
  52. package/dist/cli/build-params-cli.js +139 -0
  53. package/dist/cli/command-group.js +123 -0
  54. package/dist/cli/commands/audit-agents.js +326 -0
  55. package/dist/cli/commands/audit.js +571 -0
  56. package/dist/cli/commands/build.js +920 -0
  57. package/dist/cli/commands/carve-apply.js +153 -0
  58. package/dist/cli/commands/carve-bridge.js +201 -0
  59. package/dist/cli/commands/carve-emit.js +332 -0
  60. package/dist/cli/commands/carve-status.js +119 -0
  61. package/dist/cli/commands/carve.js +204 -0
  62. package/dist/cli/commands/check-lexicon-docs.js +79 -0
  63. package/dist/cli/commands/check-lexicon-examples.js +177 -0
  64. package/dist/cli/commands/check-lexicon-intrinsics.js +291 -0
  65. package/dist/cli/commands/check-lexicon-mcp.js +82 -0
  66. package/dist/cli/commands/check-lexicon-plugin.d.ts.map +1 -1
  67. package/dist/cli/commands/check-lexicon-plugin.js +104 -0
  68. package/dist/cli/commands/check-lexicon.js +766 -0
  69. package/dist/cli/commands/describe.js +85 -0
  70. package/dist/cli/commands/diff.js +175 -0
  71. package/dist/cli/commands/doctor.js +350 -0
  72. package/dist/cli/commands/import-agents.js +155 -0
  73. package/dist/cli/commands/import.js +670 -0
  74. package/dist/cli/commands/init-lexicon/templates/codegen.js +194 -0
  75. package/dist/cli/commands/init-lexicon/templates/docs.js +100 -0
  76. package/dist/cli/commands/init-lexicon/templates/examples.js +29 -0
  77. package/dist/cli/commands/init-lexicon/templates/lint.js +34 -0
  78. package/dist/cli/commands/init-lexicon/templates/lsp.js +37 -0
  79. package/dist/cli/commands/init-lexicon/templates/plugin.js +108 -0
  80. package/dist/cli/commands/init-lexicon/templates/project.js +240 -0
  81. package/dist/cli/commands/init-lexicon/templates/spec.js +56 -0
  82. package/dist/cli/commands/init-lexicon/templates/tests.js +66 -0
  83. package/dist/cli/commands/init-lexicon.js +172 -0
  84. package/dist/cli/commands/init.js +381 -0
  85. package/dist/cli/commands/lexicon-rolling-upgrade.js +145 -0
  86. package/dist/cli/commands/lexicon-surface-diff.js +145 -0
  87. package/dist/cli/commands/licenses.js +125 -0
  88. package/dist/cli/commands/lint.d.ts.map +1 -1
  89. package/dist/cli/commands/lint.js +948 -0
  90. package/dist/cli/commands/list.js +63 -0
  91. package/dist/cli/commands/migrate.d.ts.map +1 -1
  92. package/dist/cli/commands/migrate.js +423 -0
  93. package/dist/cli/commands/onboard.js +403 -0
  94. package/dist/cli/commands/pinned-upgrade.js +191 -0
  95. package/dist/cli/commands/update.js +194 -0
  96. package/dist/cli/commands/vendor.js +217 -0
  97. package/dist/cli/conflict-check.js +104 -0
  98. package/dist/cli/debug.js +8 -0
  99. package/dist/cli/format.js +104 -0
  100. package/dist/cli/handlers/build.js +267 -0
  101. package/dist/cli/handlers/carve-apply.js +30 -0
  102. package/dist/cli/handlers/carve-bridge.js +28 -0
  103. package/dist/cli/handlers/carve-emit.js +50 -0
  104. package/dist/cli/handlers/carve-status.js +26 -0
  105. package/dist/cli/handlers/carve.js +40 -0
  106. package/dist/cli/handlers/change-set.js +46 -0
  107. package/dist/cli/handlers/components.js +730 -0
  108. package/dist/cli/handlers/dev.js +113 -0
  109. package/dist/cli/handlers/emulator.js +233 -0
  110. package/dist/cli/handlers/explain.js +54 -0
  111. package/dist/cli/handlers/fan-out.js +422 -0
  112. package/dist/cli/handlers/gate-resume.js +275 -0
  113. package/dist/cli/handlers/generate.js +84 -0
  114. package/dist/cli/handlers/graph.js +969 -0
  115. package/dist/cli/handlers/init.js +102 -0
  116. package/dist/cli/handlers/lifecycle.js +1727 -0
  117. package/dist/cli/handlers/lint.js +62 -0
  118. package/dist/cli/handlers/migrate.js +48 -0
  119. package/dist/cli/handlers/misc.js +391 -0
  120. package/dist/cli/handlers/operator.js +1162 -0
  121. package/dist/cli/handlers/override-approve.js +102 -0
  122. package/dist/cli/handlers/pr.js +503 -0
  123. package/dist/cli/handlers/promote.js +342 -0
  124. package/dist/cli/handlers/run-generate.js +206 -0
  125. package/dist/cli/handlers/run-wave.js +66 -0
  126. package/dist/cli/handlers/run.js +1191 -0
  127. package/dist/cli/handlers/scenario.js +325 -0
  128. package/dist/cli/handlers/search.js +924 -0
  129. package/dist/cli/handlers/serve.js +32 -0
  130. package/dist/cli/handlers/vendor.js +154 -0
  131. package/dist/cli/index.js +3 -0
  132. package/dist/cli/is-entry-point.js +23 -0
  133. package/dist/cli/lsp/capabilities.js +28 -0
  134. package/dist/cli/lsp/diagnostics.js +34 -0
  135. package/dist/cli/lsp/server.js +329 -0
  136. package/dist/cli/main.d.ts.map +1 -1
  137. package/dist/cli/main.js +2540 -0
  138. package/dist/cli/mcp/lifecycle-tools.js +80 -0
  139. package/dist/cli/mcp/op-tools.js +306 -0
  140. package/dist/cli/mcp/resource-handlers.js +258 -0
  141. package/dist/cli/mcp/resources/context.js +85 -0
  142. package/dist/cli/mcp/server.js +353 -0
  143. package/dist/cli/mcp/tools/build.js +111 -0
  144. package/dist/cli/mcp/tools/composites.js +95 -0
  145. package/dist/cli/mcp/tools/explain.js +166 -0
  146. package/dist/cli/mcp/tools/import.js +49 -0
  147. package/dist/cli/mcp/tools/lint.js +41 -0
  148. package/dist/cli/mcp/tools/scaffold.js +111 -0
  149. package/dist/cli/mcp/tools/search.js +112 -0
  150. package/dist/cli/mcp/types.js +1 -0
  151. package/dist/cli/mcp/workspace-plugins.js +91 -0
  152. package/dist/cli/mcp/workspace-tools.d.ts +1 -1
  153. package/dist/cli/mcp/workspace-tools.js +564 -0
  154. package/dist/cli/mcp-config.js +70 -0
  155. package/dist/cli/plugins.js +313 -0
  156. package/dist/cli/registry.js +23 -0
  157. package/dist/cli/reporters/stylish.js +329 -0
  158. package/dist/cli/version.js +15 -0
  159. package/dist/cli/watch.js +79 -0
  160. package/dist/codegen/bound-property-types.js +82 -0
  161. package/dist/codegen/coverage.js +119 -0
  162. package/dist/codegen/docs-file-markers.js +60 -0
  163. package/dist/codegen/docs-pages.js +115 -0
  164. package/dist/codegen/docs-rule-scanning.js +164 -0
  165. package/dist/codegen/docs-rules.js +76 -0
  166. package/dist/codegen/docs-sections.js +117 -0
  167. package/dist/codegen/docs-sidebar.js +65 -0
  168. package/dist/codegen/docs-types.js +4 -0
  169. package/dist/codegen/docs.js +356 -0
  170. package/dist/codegen/fetch.js +340 -0
  171. package/dist/codegen/generate-post-synth-barrel.js +63 -0
  172. package/dist/codegen/generate-registry.js +71 -0
  173. package/dist/codegen/generate-runtime-index.js +56 -0
  174. package/dist/codegen/generate-typescript.js +119 -0
  175. package/dist/codegen/generate.js +115 -0
  176. package/dist/codegen/json-patch.js +141 -0
  177. package/dist/codegen/json-schema-to-ts.js +344 -0
  178. package/dist/codegen/json-schema.js +246 -0
  179. package/dist/codegen/lexicon-regen.js +412 -0
  180. package/dist/codegen/naming.js +217 -0
  181. package/dist/codegen/okf-lexicon.js +245 -0
  182. package/dist/codegen/package.js +150 -0
  183. package/dist/codegen/pinned-upgrade.d.ts.map +1 -1
  184. package/dist/codegen/pinned-upgrade.js +494 -0
  185. package/dist/codegen/registry.js +60 -0
  186. package/dist/codegen/rehype-base-url.mjs +68 -0
  187. package/dist/codegen/rolling-upgrade.js +217 -0
  188. package/dist/codegen/surface-snapshot.js +537 -0
  189. package/dist/codegen/testdata/postgres-tags.json +242 -0
  190. package/dist/codegen/topo-sort.js +36 -0
  191. package/dist/codegen/typecheck.js +115 -0
  192. package/dist/codegen/validate.js +200 -0
  193. package/dist/codegen/version-bump.js +35 -0
  194. package/dist/components/auto-release.js +143 -0
  195. package/dist/components/builders.js +47 -0
  196. package/dist/components/capability-plugin-loader.js +175 -0
  197. package/dist/components/capability-plugin-schema.js +46 -0
  198. package/dist/components/capability-plugin.js +99 -0
  199. package/dist/components/capability.js +60 -0
  200. package/dist/components/changed-files.js +72 -0
  201. package/dist/components/cli-support.js +427 -0
  202. package/dist/components/component.js +120 -0
  203. package/dist/components/component.schema.json +271 -0
  204. package/dist/components/config-defaults.js +130 -0
  205. package/dist/components/deploy-units.js +60 -0
  206. package/dist/components/discover.d.ts.map +1 -1
  207. package/dist/components/discover.js +189 -0
  208. package/dist/components/driver-output.js +86 -0
  209. package/dist/components/driver.js +728 -0
  210. package/dist/components/fan-out-output.js +165 -0
  211. package/dist/components/fan-out-record.js +94 -0
  212. package/dist/components/fan-out-run.js +373 -0
  213. package/dist/components/fan-out-support.js +60 -0
  214. package/dist/components/fan-out.js +273 -0
  215. package/dist/components/gate-plan.js +41 -0
  216. package/dist/components/gated-wave-pipeline.js +46 -0
  217. package/dist/components/index.js +24 -0
  218. package/dist/components/layers.js +28 -0
  219. package/dist/components/manifest-persistence.js +108 -0
  220. package/dist/components/pilots/alb-ecs.pilot.js +59 -0
  221. package/dist/components/pilots/dynamodb.pilot.js +51 -0
  222. package/dist/components/pilots/jar-emr.pilot.js +65 -0
  223. package/dist/components/pilots/lambda.pilot.js +52 -0
  224. package/dist/components/pilots/neo4j-fanout.pilot.js +68 -0
  225. package/dist/components/pilots/project.js +12 -0
  226. package/dist/components/pr-pipeline.d.ts.map +1 -1
  227. package/dist/components/pr-pipeline.js +135 -0
  228. package/dist/components/pr-run.js +363 -0
  229. package/dist/components/presets/ecs-fargate.js +72 -0
  230. package/dist/components/presets/index.js +28 -0
  231. package/dist/components/presets/lambda.js +34 -0
  232. package/dist/components/presets/single-host-compose.js +41 -0
  233. package/dist/components/promote.js +549 -0
  234. package/dist/components/registry.js +34 -0
  235. package/dist/components/run-progress.js +33 -0
  236. package/dist/components/sandbox/driver.d.ts.map +1 -1
  237. package/dist/components/sandbox/driver.js +93 -0
  238. package/dist/components/sandbox/run.js +115 -0
  239. package/dist/components/starter-plugin.js +104 -0
  240. package/dist/components/verbs/__tests__/mock-cloud-executor.js +68 -0
  241. package/dist/components/verbs/__tests__/mock-process-runner.js +45 -0
  242. package/dist/components/verbs/__tests__/mock-sbom-generator.js +56 -0
  243. package/dist/components/verbs/bom-writer.js +287 -0
  244. package/dist/components/verbs/build-archive.js +188 -0
  245. package/dist/components/verbs/build.js +142 -0
  246. package/dist/components/verbs/cloud-executor.js +110 -0
  247. package/dist/components/verbs/component-bom.js +125 -0
  248. package/dist/components/verbs/ensure-secret.js +50 -0
  249. package/dist/components/verbs/index.js +61 -0
  250. package/dist/components/verbs/license-policy.js +75 -0
  251. package/dist/components/verbs/lockfile-sbom-generator.js +191 -0
  252. package/dist/components/verbs/process-runner.js +78 -0
  253. package/dist/components/verbs/r2-sync.js +93 -0
  254. package/dist/components/verbs/reproducibility.js +62 -0
  255. package/dist/components/verbs/run-agent.js +577 -0
  256. package/dist/components/verbs/sbom-generator.js +119 -0
  257. package/dist/components/verbs/sbom.js +97 -0
  258. package/dist/components/verbs/shell.js +32 -0
  259. package/dist/components/verbs/sign.js +221 -0
  260. package/dist/components/verbs/stub.js +28 -0
  261. package/dist/components/verbs/tool-sbom-generator.js +154 -0
  262. package/dist/components/verbs/verify.js +112 -0
  263. package/dist/components/verbs/vex.js +131 -0
  264. package/dist/components/verbs/vuln-gate.js +152 -0
  265. package/dist/components/verbs/vuln-scan.js +288 -0
  266. package/dist/components/verbs/wait-verify.js +106 -0
  267. package/dist/components/verbs/wrangler.js +179 -0
  268. package/dist/components/wave-plan.js +102 -0
  269. package/dist/composite.d.ts +10 -2
  270. package/dist/composite.d.ts.map +1 -1
  271. package/dist/composite.js +313 -0
  272. package/dist/config-import.d.ts.map +1 -1
  273. package/dist/config-import.js +22 -0
  274. package/dist/config-sandbox.js +122 -0
  275. package/dist/config-static.js +206 -0
  276. package/dist/config.js +605 -0
  277. package/dist/content-digest.js +23 -0
  278. package/dist/declarable.js +114 -0
  279. package/dist/deep-observation.js +437 -0
  280. package/dist/detectLexicon.js +54 -0
  281. package/dist/discovery/cache.js +70 -0
  282. package/dist/discovery/collect.d.ts +2 -1
  283. package/dist/discovery/collect.d.ts.map +1 -1
  284. package/dist/discovery/collect.js +223 -0
  285. package/dist/discovery/cycles.js +95 -0
  286. package/dist/discovery/entity-wire-codec.js +391 -0
  287. package/dist/discovery/entity-wire.js +42 -0
  288. package/dist/discovery/files.js +121 -0
  289. package/dist/discovery/fold-import.d.ts.map +1 -1
  290. package/dist/discovery/fold-import.js +4073 -0
  291. package/dist/discovery/fold-rank.js +292 -0
  292. package/dist/discovery/graph.js +115 -0
  293. package/dist/discovery/host-composite.d.ts +35 -0
  294. package/dist/discovery/host-composite.d.ts.map +1 -0
  295. package/dist/discovery/host-composite.js +93 -0
  296. package/dist/discovery/import.d.ts.map +1 -1
  297. package/dist/discovery/import.js +65 -0
  298. package/dist/discovery/index.d.ts +9 -0
  299. package/dist/discovery/index.d.ts.map +1 -1
  300. package/dist/discovery/index.js +333 -0
  301. package/dist/discovery/param-deps.js +487 -0
  302. package/dist/discovery/resolve.js +39 -0
  303. package/dist/discovery/sandbox/bundle.js +214 -0
  304. package/dist/discovery/sandbox/child-errors.js +26 -0
  305. package/dist/discovery/sandbox/config-run.js +100 -0
  306. package/dist/discovery/sandbox/config-wire.js +183 -0
  307. package/dist/discovery/sandbox/driver.d.ts.map +1 -1
  308. package/dist/discovery/sandbox/driver.js +333 -0
  309. package/dist/discovery/sandbox/fork.js +229 -0
  310. package/dist/discovery/sandbox/policy-run.js +142 -0
  311. package/dist/discovery/sandbox/policy-wire.js +152 -0
  312. package/dist/discovery/sandbox/run.js +77 -0
  313. package/dist/discovery/specifier-resolve.js +320 -0
  314. package/dist/discovery/walk.js +284 -0
  315. package/dist/effect-receipt.js +340 -0
  316. package/dist/env.js +55 -0
  317. package/dist/errors.js +62 -0
  318. package/dist/fold/fold.js +1434 -0
  319. package/dist/fold/foldable-helpers.js +229 -0
  320. package/dist/fold/subset.js +696 -0
  321. package/dist/fold-provenance.js +414 -0
  322. package/dist/gate-decision.d.ts +20 -9
  323. package/dist/gate-decision.d.ts.map +1 -1
  324. package/dist/gate-decision.js +313 -0
  325. package/dist/gate-resume-run.js +154 -0
  326. package/dist/gated-waves.js +165 -0
  327. package/dist/governance.js +43 -0
  328. package/dist/graph-declared.js +45 -0
  329. package/dist/graph-detail.js +207 -0
  330. package/dist/graph-dot.js +54 -0
  331. package/dist/graph-effective.js +107 -0
  332. package/dist/graph-ir.js +623 -0
  333. package/dist/graph-layout.js +184 -0
  334. package/dist/graph-lens.js +105 -0
  335. package/dist/graph-mermaid.js +83 -0
  336. package/dist/graph-ops.js +39 -0
  337. package/dist/graph-refs.js +156 -0
  338. package/dist/held-elsewhere.js +87 -0
  339. package/dist/identity.js +251 -0
  340. package/dist/import/base-parser.js +34 -0
  341. package/dist/import/embedded.js +255 -0
  342. package/dist/import/generator.js +1 -0
  343. package/dist/import/ir-utils.js +85 -0
  344. package/dist/import/parser-options.js +45 -0
  345. package/dist/import/parser.js +1 -0
  346. package/dist/index.js +118 -0
  347. package/dist/intrinsic-interpolation.js +73 -0
  348. package/dist/intrinsic.js +31 -0
  349. package/dist/join-key.js +35 -0
  350. package/dist/kubectl-context.js +150 -0
  351. package/dist/lexicon-config.js +58 -0
  352. package/dist/lexicon-integrity.js +47 -0
  353. package/dist/lexicon-manifest.js +70 -0
  354. package/dist/lexicon-module.d.ts.map +1 -1
  355. package/dist/lexicon-module.js +241 -0
  356. package/dist/lexicon-output.js +218 -0
  357. package/dist/lexicon-plugin-helpers.js +104 -0
  358. package/dist/lexicon-schema.js +136 -0
  359. package/dist/lexicon.js +130 -0
  360. package/dist/lifecycle/affected.js +224 -0
  361. package/dist/lifecycle/assert-live.js +110 -0
  362. package/dist/lifecycle/build-ledger-store.js +160 -0
  363. package/dist/lifecycle/build-ledger.js +155 -0
  364. package/dist/lifecycle/change-set.js +356 -0
  365. package/dist/lifecycle/converge-ledger.js +161 -0
  366. package/dist/lifecycle/deep-diff.js +233 -0
  367. package/dist/lifecycle/deep-observe.js +147 -0
  368. package/dist/lifecycle/digest.js +143 -0
  369. package/dist/lifecycle/disruption.js +135 -0
  370. package/dist/lifecycle/gate-applied.js +113 -0
  371. package/dist/lifecycle/gate-audit.d.ts +69 -2
  372. package/dist/lifecycle/gate-audit.d.ts.map +1 -1
  373. package/dist/lifecycle/gate-audit.js +415 -0
  374. package/dist/lifecycle/gate-ledger-select.js +89 -0
  375. package/dist/lifecycle/gate-ledger.d.ts +24 -0
  376. package/dist/lifecycle/gate-ledger.d.ts.map +1 -1
  377. package/dist/lifecycle/gate-ledger.js +201 -0
  378. package/dist/lifecycle/gate-origin.js +117 -0
  379. package/dist/lifecycle/gate-pending.js +58 -0
  380. package/dist/lifecycle/git.js +1182 -0
  381. package/dist/lifecycle/identity.js +58 -0
  382. package/dist/lifecycle/index.js +26 -0
  383. package/dist/lifecycle/lease.js +283 -0
  384. package/dist/lifecycle/ledger-port.js +1 -0
  385. package/dist/lifecycle/legacy-digest.js +91 -0
  386. package/dist/lifecycle/live-diff.js +274 -0
  387. package/dist/lifecycle/local-note.js +15 -0
  388. package/dist/lifecycle/member-ledger.js +122 -0
  389. package/dist/lifecycle/observation-baseline.js +155 -0
  390. package/dist/lifecycle/observe.js +375 -0
  391. package/dist/lifecycle/oras-referrer-lookup.js +82 -0
  392. package/dist/lifecycle/override-ledger.js +54 -0
  393. package/dist/lifecycle/plan-digest.js +110 -0
  394. package/dist/lifecycle/plan-ledger.js +129 -0
  395. package/dist/lifecycle/receipt-plan.js +192 -0
  396. package/dist/lifecycle/release-ledger.js +155 -0
  397. package/dist/lifecycle/release-read.js +64 -0
  398. package/dist/lifecycle/replay.js +193 -0
  399. package/dist/lifecycle/rollback.js +102 -0
  400. package/dist/lifecycle/run-ledger.js +183 -0
  401. package/dist/lifecycle/scenario-eval.js +204 -0
  402. package/dist/lifecycle/scenario.js +214 -0
  403. package/dist/lifecycle/snapshot.js +239 -0
  404. package/dist/lifecycle/status.js +447 -0
  405. package/dist/lifecycle/symptoms.js +117 -0
  406. package/dist/lifecycle/teardown.js +255 -0
  407. package/dist/lifecycle/types.js +1 -0
  408. package/dist/lifecycle/unobserved-gate.js +33 -0
  409. package/dist/lifecycle/wave-plans.js +68 -0
  410. package/dist/lifecycle/work-item-id.js +36 -0
  411. package/dist/lifecycle/work-lease.js +393 -0
  412. package/dist/lint/component-checks.js +87 -0
  413. package/dist/lint/config.js +483 -0
  414. package/dist/lint/declarative.js +122 -0
  415. package/dist/lint/discover.d.ts.map +1 -1
  416. package/dist/lint/discover.js +138 -0
  417. package/dist/lint/engine.js +246 -0
  418. package/dist/lint/knowledge-checks.js +64 -0
  419. package/dist/lint/named-checks.js +22 -0
  420. package/dist/lint/output-checks.js +87 -0
  421. package/dist/lint/output-docs.js +163 -0
  422. package/dist/lint/parser.js +33 -0
  423. package/dist/lint/pipeline-change-gate.js +70 -0
  424. package/dist/lint/policy-import.d.ts +1 -1
  425. package/dist/lint/policy-import.d.ts.map +1 -1
  426. package/dist/lint/policy-import.js +62 -0
  427. package/dist/lint/policy-sandbox.js +86 -0
  428. package/dist/lint/policy.js +122 -0
  429. package/dist/lint/post-synth.js +87 -0
  430. package/dist/lint/presets/relaxed.json +26 -0
  431. package/dist/lint/presets/strict.json +24 -24
  432. package/dist/lint/receipt-checks.js +83 -0
  433. package/dist/lint/rule-loader.d.ts.map +1 -1
  434. package/dist/lint/rule-loader.js +89 -0
  435. package/dist/lint/rule-registry.js +86 -0
  436. package/dist/lint/rule.js +1 -0
  437. package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-a.component.js +7 -0
  438. package/dist/lint/rules/__fixtures__/comp/comp000-discovery-error/broken-b.component.js +7 -0
  439. package/dist/lint/rules/__fixtures__/comp/comp001/fail/orphan-lib.component.js +9 -0
  440. package/dist/lint/rules/__fixtures__/comp/comp001/pass/emr-job.component.js +11 -0
  441. package/dist/lint/rules/__fixtures__/comp/comp001/pass/jar-lib.component.js +9 -0
  442. package/dist/lint/rules/__fixtures__/comp/comp002/fail/search-service.component.js +25 -0
  443. package/dist/lint/rules/__fixtures__/comp/comp002/pass/jar-lib.component.js +8 -0
  444. package/dist/lint/rules/__fixtures__/comp/comp002/pass/search-service.component.js +21 -0
  445. package/dist/lint/rules/__fixtures__/comp/comp003/fail/migrator.component.js +8 -0
  446. package/dist/lint/rules/__fixtures__/comp/comp003/pass/agent-turn.component.js +24 -0
  447. package/dist/lint/rules/__fixtures__/comp/comp003/pass/migrator.component.js +17 -0
  448. package/dist/lint/rules/__fixtures__/comp/comp003/pass/orders-table.component.js +8 -0
  449. package/dist/lint/rules/__fixtures__/comp/comp004/fail/neo4j-cluster.component.js +18 -0
  450. package/dist/lint/rules/__fixtures__/comp/comp004/pass/neo4j-cluster.component.js +20 -0
  451. package/dist/lint/rules/__fixtures__/comp/comp004/pass/orders-table.component.js +8 -0
  452. package/dist/lint/rules/__fixtures__/comp/comp005/fail/search-service.component.js +12 -0
  453. package/dist/lint/rules/__fixtures__/comp/comp005/pass/search-service.component.js +16 -0
  454. package/dist/lint/rules/__fixtures__/comp/comp006/fail/legacy-tool.component.js +8 -0
  455. package/dist/lint/rules/__fixtures__/comp/comp006/pass/legacy-tool.component.js +12 -0
  456. package/dist/lint/rules/__fixtures__/comp/comp007/fail/inventory-table.component.js +11 -0
  457. package/dist/lint/rules/__fixtures__/comp/comp007/fail/orders-table.component.js +11 -0
  458. package/dist/lint/rules/__fixtures__/comp/comp007/pass/orders-table.component.js +10 -0
  459. package/dist/lint/rules/__fixtures__/comp/comp007/pass/search-service.component.js +16 -0
  460. package/dist/lint/rules/comp/comp001-publishes-never-applies.js +69 -0
  461. package/dist/lint/rules/comp/comp002-dangling-wiring-ref.js +84 -0
  462. package/dist/lint/rules/comp/comp003-mutating-no-rollback.js +103 -0
  463. package/dist/lint/rules/comp/comp004-gate-needs-durable-runtime.js +70 -0
  464. package/dist/lint/rules/comp/comp005-capability-kind-is-noun.js +109 -0
  465. package/dist/lint/rules/comp/comp006-shell-needs-reason.js +49 -0
  466. package/dist/lint/rules/comp/comp007-composition-sprawl.js +64 -0
  467. package/dist/lint/rules/comp/index.js +33 -0
  468. package/dist/lint/rules/comp/support.js +129 -0
  469. package/dist/lint/rules/composite-scope.js +51 -0
  470. package/dist/lint/rules/cor017-composite-name-match.js +93 -0
  471. package/dist/lint/rules/cor018-composite-prefer-lexicon-type.js +136 -0
  472. package/dist/lint/rules/cor021-env-literal-name.js +100 -0
  473. package/dist/lint/rules/cor022-receipt-leaf.js +118 -0
  474. package/dist/lint/rules/cor024-receipt-secret-pointer.js +199 -0
  475. package/dist/lint/rules/declarable-naming-convention.js +62 -0
  476. package/dist/lint/rules/evl001-non-literal-expression.js +66 -0
  477. package/dist/lint/rules/evl002-control-flow-resource.js +69 -0
  478. package/dist/lint/rules/evl003-dynamic-property-access.js +44 -0
  479. package/dist/lint/rules/evl004-spread-non-const.js +94 -0
  480. package/dist/lint/rules/evl005-resource-block-body.js +41 -0
  481. package/dist/lint/rules/evl007-invalid-siblings.js +105 -0
  482. package/dist/lint/rules/evl009-composite-no-constant.js +158 -0
  483. package/dist/lint/rules/evl010-composite-no-transform.js +59 -0
  484. package/dist/lint/rules/evl011-symbolic-in-template.js +106 -0
  485. package/dist/lint/rules/export-required.js +115 -0
  486. package/dist/lint/rules/file-declarable-limit.js +88 -0
  487. package/dist/lint/rules/flat-declarations.js +62 -0
  488. package/dist/lint/rules/index.js +90 -0
  489. package/dist/lint/rules/no-cyclic-declarable-ref.js +138 -0
  490. package/dist/lint/rules/no-redundant-type-import.js +76 -0
  491. package/dist/lint/rules/no-redundant-value-cast.js +41 -0
  492. package/dist/lint/rules/no-string-ref.js +59 -0
  493. package/dist/lint/rules/no-unused-declarable-import.js +75 -0
  494. package/dist/lint/rules/no-unused-declarable.js +142 -0
  495. package/dist/lint/rules/op/index.js +28 -0
  496. package/dist/lint/rules/op/ops012-activity-contract.js +54 -0
  497. package/dist/lint/rules/op/ops013-step-output-ref.js +88 -0
  498. package/dist/lint/rules/op/ops014-converge-rule-refusals.js +114 -0
  499. package/dist/lint/rules/op/ops015-gate-approval.js +45 -0
  500. package/dist/lint/rules/op/support.js +11 -0
  501. package/dist/lint/rules/op/sys010-key-over-plain-http.js +100 -0
  502. package/dist/lint/rules/property-kind.js +56 -0
  503. package/dist/lint/rules/single-concern-file.js +71 -0
  504. package/dist/lint/rules/sys001-no-literal-key.js +60 -0
  505. package/dist/lint/selectors.js +168 -0
  506. package/dist/lint/suppressions.js +129 -0
  507. package/dist/lint/typescript.js +17 -0
  508. package/dist/live-endpoint.js +113 -0
  509. package/dist/live-read-session.js +76 -0
  510. package/dist/lsp/lexicon-providers.js +163 -0
  511. package/dist/lsp/types.js +5 -0
  512. package/dist/managed-fields.js +293 -0
  513. package/dist/mcp/types.js +4 -0
  514. package/dist/notify-verify.js +0 -1
  515. package/dist/notify.js +0 -1
  516. package/dist/notify.schema.json +72 -0
  517. package/dist/observation.js +266 -0
  518. package/dist/okf-read.js +134 -0
  519. package/dist/okf.js +275 -0
  520. package/dist/op/__fixtures__/decide-stub-backend.js +125 -0
  521. package/dist/op/activities/activity-contracts.d.ts +1 -1
  522. package/dist/op/activities/activity-contracts.js +313 -0
  523. package/dist/op/activities/apply.js +582 -0
  524. package/dist/op/activities/build.js +18 -0
  525. package/dist/op/activities/change-coverage.js +40 -0
  526. package/dist/op/activities/change-set.d.ts +8 -3
  527. package/dist/op/activities/change-set.d.ts.map +1 -1
  528. package/dist/op/activities/change-set.js +67 -0
  529. package/dist/op/activities/converge.js +492 -0
  530. package/dist/op/activities/decide.js +211 -0
  531. package/dist/op/activities/env-teardown.js +110 -0
  532. package/dist/op/activities/factory.js +591 -0
  533. package/dist/op/activities/forge-pull-request.js +82 -0
  534. package/dist/op/activities/gh-host.js +78 -0
  535. package/dist/op/activities/guard-validate.js +165 -0
  536. package/dist/op/activities/http-check.js +40 -0
  537. package/dist/op/activities/index.js +59 -0
  538. package/dist/op/activities/lexicon-upgrade.js +629 -0
  539. package/dist/op/activities/lifecycle.js +109 -0
  540. package/dist/op/activities/pipeline-audit.js +147 -0
  541. package/dist/op/activities/policy.js +26 -0
  542. package/dist/op/activities/predict-behaviour.js +341 -0
  543. package/dist/op/activities/propose-upgrade.js +165 -0
  544. package/dist/op/activities/reconcile.d.ts +28 -16
  545. package/dist/op/activities/reconcile.d.ts.map +1 -1
  546. package/dist/op/activities/reconcile.js +1011 -0
  547. package/dist/op/activities/shell.js +118 -0
  548. package/dist/op/activities/source-release.js +97 -0
  549. package/dist/op/activities/source-rollback.js +165 -0
  550. package/dist/op/activities/teardown.js +17 -0
  551. package/dist/op/activities/util.js +6 -0
  552. package/dist/op/activities/wait.js +51 -0
  553. package/dist/op/activities/work-evidence.js +35 -0
  554. package/dist/op/activities/workflow-audit.js +133 -0
  555. package/dist/op/activity-contract-registry.js +106 -0
  556. package/dist/op/activity-contract.js +232 -0
  557. package/dist/op/activity-failure.js +31 -0
  558. package/dist/op/activity-profiles.js +129 -0
  559. package/dist/op/activity-registry.js +105 -0
  560. package/dist/op/activity-runtime.js +28 -0
  561. package/dist/op/builders.d.ts +1 -1
  562. package/dist/op/builders.d.ts.map +1 -1
  563. package/dist/op/builders.js +801 -0
  564. package/dist/op/change-signal.js +118 -0
  565. package/dist/op/composites/apply-op.js +151 -0
  566. package/dist/op/composites/behaviour-op.js +65 -0
  567. package/dist/op/composites/converge-op.js +141 -0
  568. package/dist/op/composites/index.js +19 -0
  569. package/dist/op/composites/lexicon-upgrade-op.js +107 -0
  570. package/dist/op/composites/pipeline-audit-op.js +50 -0
  571. package/dist/op/composites/reconcile-op.js +84 -0
  572. package/dist/op/composites/watch-op.js +69 -0
  573. package/dist/op/composites/workflow-audit-op.js +57 -0
  574. package/dist/op/converge-rule.js +205 -0
  575. package/dist/op/cron.js +146 -0
  576. package/dist/op/decide-backend.js +181 -0
  577. package/dist/op/decide-config.js +68 -0
  578. package/dist/op/decide-read-inputs.js +141 -0
  579. package/dist/op/discover.d.ts.map +1 -1
  580. package/dist/op/discover.js +213 -0
  581. package/dist/op/duration.js +21 -0
  582. package/dist/op/emulator-freshness.js +80 -0
  583. package/dist/op/emulator-lifecycle.js +269 -0
  584. package/dist/op/factory.js +83 -0
  585. package/dist/op/gate-approval.js +172 -0
  586. package/dist/op/gate-name.js +86 -0
  587. package/dist/op/gate-plan-context.js +167 -0
  588. package/dist/op/gate-point-run.js +67 -0
  589. package/dist/op/gate-point.js +111 -0
  590. package/dist/op/gate-resume-plan.js +155 -0
  591. package/dist/op/gate-resume.js +31 -0
  592. package/dist/op/gate-review.js +290 -0
  593. package/dist/op/gate-run-locator.js +85 -0
  594. package/dist/op/gate-summary.js +100 -0
  595. package/dist/op/gate-wait.js +56 -0
  596. package/dist/op/gate.js +449 -0
  597. package/dist/op/generate-pipeline.js +124 -0
  598. package/dist/op/index.js +51 -0
  599. package/dist/op/lifecycle-receipt-store.js +45 -0
  600. package/dist/op/local-executor.js +1164 -0
  601. package/dist/op/local-output.js +140 -0
  602. package/dist/op/op-ir.js +317 -0
  603. package/dist/op/op-verb-class.js +131 -0
  604. package/dist/op/op-waves-notify.js +136 -0
  605. package/dist/op/op-waves-run.d.ts +1 -1
  606. package/dist/op/op-waves-run.d.ts.map +1 -1
  607. package/dist/op/op-waves-run.js +1657 -0
  608. package/dist/op/op-waves.js +409 -0
  609. package/dist/op/operator.js +743 -0
  610. package/dist/op/receipt-store.js +94 -0
  611. package/dist/op/resource.js +23 -0
  612. package/dist/op/run-context.js +28 -0
  613. package/dist/op/run-live.js +256 -0
  614. package/dist/op/runtime.js +21 -0
  615. package/dist/op/runtimes/local.js +195 -0
  616. package/dist/op/source-archive.js +131 -0
  617. package/dist/op/step-output-ref.js +397 -0
  618. package/dist/op/steward-beside.js +169 -0
  619. package/dist/op/steward-points.js +138 -0
  620. package/dist/op/steward-turn.js +59 -0
  621. package/dist/op/steward.js +317 -0
  622. package/dist/op/types.js +25 -0
  623. package/dist/op/work-lease-decl.js +81 -0
  624. package/dist/op/work-lease-run.js +393 -0
  625. package/dist/override-gate.js +284 -0
  626. package/dist/owner-chain.js +74 -0
  627. package/dist/ownership.js +92 -0
  628. package/dist/params.js +61 -0
  629. package/dist/plan-summary.js +711 -0
  630. package/dist/point-decision.js +211 -0
  631. package/dist/pr-forge.js +810 -0
  632. package/dist/pr-loop.js +203 -0
  633. package/dist/project-codegen.js +191 -0
  634. package/dist/project-root.js +74 -0
  635. package/dist/project-validation.js +50 -0
  636. package/dist/provenance.js +157 -0
  637. package/dist/pseudo-parameter.js +40 -0
  638. package/dist/reconcile.js +450 -0
  639. package/dist/resource-attributes.js +33 -0
  640. package/dist/runtime-adapter.js +77 -0
  641. package/dist/runtime.js +66 -0
  642. package/dist/secret-materialization.js +153 -0
  643. package/dist/secret-provenance.js +250 -0
  644. package/dist/serializer-walker.js +112 -0
  645. package/dist/serializer.js +1 -0
  646. package/dist/sort.js +45 -0
  647. package/dist/stack-output.js +115 -0
  648. package/dist/telemetry-attribution.js +149 -0
  649. package/dist/terraform/__fixtures__/build-graph.js +63 -0
  650. package/dist/terraform/adopt-state.js +40 -0
  651. package/dist/terraform/aws-resources.js +384 -0
  652. package/dist/terraform/bridge.js +204 -0
  653. package/dist/terraform/carve-provider.js +155 -0
  654. package/dist/terraform/carve.js +138 -0
  655. package/dist/terraform/data-source-shape.js +57 -0
  656. package/dist/terraform/emit-source.js +36 -0
  657. package/dist/terraform/excise.js +123 -0
  658. package/dist/terraform/graduate.js +128 -0
  659. package/dist/terraform/graph.js +435 -0
  660. package/dist/terraform/hcl2json.js +60 -0
  661. package/dist/terraform/manifest.js +149 -0
  662. package/dist/terraform/parse.js +81 -0
  663. package/dist/terraform/providers/aws.js +146 -0
  664. package/dist/terraform/providers/gcp.js +294 -0
  665. package/dist/terraform/providers/index.js +17 -0
  666. package/dist/terraform/providers/kubernetes.js +253 -0
  667. package/dist/terraform/score.js +151 -0
  668. package/dist/terraform/state.js +67 -0
  669. package/dist/terraform/tier-map.js +74 -0
  670. package/dist/terraform/types.js +13 -0
  671. package/dist/terraform/unified-diff.js +132 -0
  672. package/dist/testing.js +295 -0
  673. package/dist/toml-emit.js +153 -0
  674. package/dist/toml-parse.js +355 -0
  675. package/dist/toml-utils.js +60 -0
  676. package/dist/toml.js +428 -0
  677. package/dist/ts-loader.d.ts +46 -0
  678. package/dist/ts-loader.d.ts.map +1 -0
  679. package/dist/ts-loader.js +103 -0
  680. package/dist/types.js +1 -0
  681. package/dist/utils.js +61 -0
  682. package/dist/validation.js +20 -0
  683. package/dist/vendor/js-yaml-load.js +1662 -0
  684. package/dist/workspace/__fixtures__/contract-repo.d.ts +7 -0
  685. package/dist/workspace/__fixtures__/contract-repo.d.ts.map +1 -1
  686. package/dist/workspace/__fixtures__/contract-repo.js +119 -0
  687. package/dist/workspace/__fixtures__/decide-workspace.js +112 -0
  688. package/dist/workspace/__fixtures__/sessions.d.ts +1 -1
  689. package/dist/workspace/__fixtures__/sessions.d.ts.map +1 -1
  690. package/dist/workspace/__fixtures__/sessions.js +91 -0
  691. package/dist/workspace/__fixtures__/two-member-workspace.js +34 -0
  692. package/dist/workspace/agent-cli.js +99 -0
  693. package/dist/workspace/agent.schema.json +390 -0
  694. package/dist/workspace/answers-ledger.js +89 -0
  695. package/dist/workspace/box-cli.js +142 -0
  696. package/dist/workspace/box-factory-write.js +196 -0
  697. package/dist/workspace/box-factory-write.schema.json +342 -0
  698. package/dist/workspace/box-factory.js +88 -0
  699. package/dist/workspace/box-intent.js +126 -0
  700. package/dist/workspace/box-isolation.js +169 -0
  701. package/dist/workspace/box-listing-write.schema.json +204 -0
  702. package/dist/workspace/box-listing.js +298 -0
  703. package/dist/workspace/box-publish.js +352 -0
  704. package/dist/workspace/box-publish.schema.json +498 -0
  705. package/dist/workspace/box-services.js +39 -0
  706. package/dist/workspace/broker-protocol.js +359 -0
  707. package/dist/workspace/broker-protocol.schema.json +228 -0
  708. package/dist/workspace/change-set.schema.json +462 -0
  709. package/dist/workspace/changes-cli.js +56 -0
  710. package/dist/workspace/changes.js +446 -0
  711. package/dist/workspace/changes.schema.json +642 -0
  712. package/dist/workspace/chant-migrations/chud-lexicon-exit-fly-site.js +198 -0
  713. package/dist/workspace/chant-migrations/chud-lexicon-exit-live-names.js +155 -0
  714. package/dist/workspace/chant-migrations/chud-lexicon-exit-rollback.js +214 -0
  715. package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-inputs.js +180 -0
  716. package/dist/workspace/chant-migrations/chud-lexicon-exit-ship-policy.js +99 -0
  717. package/dist/workspace/chant-migrations/chud-lexicon-exit.js +847 -0
  718. package/dist/workspace/chant-migrations.js +113 -0
  719. package/dist/workspace/check.schema.json +433 -0
  720. package/dist/workspace/checks/box-isolation.js +62 -0
  721. package/dist/workspace/checks/boxes.js +491 -0
  722. package/dist/workspace/checks/diagrams.js +104 -0
  723. package/dist/workspace/checks/generated.js +419 -0
  724. package/dist/workspace/checks/ledgers.js +212 -0
  725. package/dist/workspace/checks/links.js +191 -0
  726. package/dist/workspace/checks/live.js +100 -0
  727. package/dist/workspace/checks/pipelines.js +188 -0
  728. package/dist/workspace/checks/records.js +169 -0
  729. package/dist/workspace/checks.js +426 -0
  730. package/dist/workspace/ci-green-cli.js +125 -0
  731. package/dist/workspace/ci-green-forge.js +83 -0
  732. package/dist/workspace/ci-green-workflow.d.ts +3 -1
  733. package/dist/workspace/ci-green-workflow.d.ts.map +1 -1
  734. package/dist/workspace/ci-green-workflow.js +202 -0
  735. package/dist/workspace/ci-green.js +325 -0
  736. package/dist/workspace/ci-last-green.schema.json +158 -0
  737. package/dist/workspace/class-data.d.ts +84 -0
  738. package/dist/workspace/class-data.d.ts.map +1 -0
  739. package/dist/workspace/class-data.js +238 -0
  740. package/dist/workspace/compose-graph.js +235 -0
  741. package/dist/workspace/compose-reports.js +146 -0
  742. package/dist/workspace/composites.js +264 -0
  743. package/dist/workspace/composites.schema.json +617 -0
  744. package/dist/workspace/conformance/__fixture__/app/package.json +7 -0
  745. package/dist/workspace/conformance/__fixture__/app/src/server.mjs +29 -0
  746. package/dist/workspace/conformance/__fixture__/decisions/decision.kind.mjs +54 -0
  747. package/dist/workspace/conformance/__fixture__/decisions/decision.schema.json +512 -0
  748. package/dist/workspace/conformance/__fixture__/decisions/fix-001-how-the-app-is-deployed.md +40 -0
  749. package/dist/workspace/conformance/__fixture__/delivery/chant.config.ts +7 -0
  750. package/dist/workspace/conformance/__fixture__/delivery/lexicon/index.ts +26 -0
  751. package/dist/workspace/conformance/__fixture__/delivery/package.json +7 -0
  752. package/dist/workspace/conformance/__fixture__/delivery/src/app.component.ts +14 -0
  753. package/dist/workspace/conformance/__fixture__/delivery/src/app.ts +4 -0
  754. package/dist/workspace/conformance/__fixtures__/reference-broker.js +205 -0
  755. package/dist/workspace/conformance/__writer_fixture__/answers/answer.kind.mjs +32 -0
  756. package/dist/workspace/conformance/__writer_fixture__/answers/answer.schema.json +135 -0
  757. package/dist/workspace/conformance/__writer_fixture__/contracts/contract.kind.mjs +37 -0
  758. package/dist/workspace/conformance/__writer_fixture__/contracts/contract.schema.json +213 -0
  759. package/dist/workspace/conformance/__writer_fixture__/decisions/points.json +228 -0
  760. package/dist/workspace/conformance/__writer_fixture__/drivers/driver.kind.mjs +15 -0
  761. package/dist/workspace/conformance/__writer_fixture__/drivers/driver.schema.json +38 -0
  762. package/dist/workspace/conformance/__writer_fixture__/sessions/session.kind.mjs +54 -0
  763. package/dist/workspace/conformance/__writer_fixture__/sessions/session.schema.json +289 -0
  764. package/dist/workspace/conformance/__writer_fixture__/work/W-001-the-writer-suite-works-this-item.md +25 -0
  765. package/dist/workspace/conformance/__writer_fixture__/work/work.kind.mjs +60 -0
  766. package/dist/workspace/conformance/__writer_fixture__/work/work.schema.json +603 -0
  767. package/dist/workspace/conformance/broker.js +736 -0
  768. package/dist/workspace/conformance/index.js +673 -0
  769. package/dist/workspace/conformance/vitest.js +108 -0
  770. package/dist/workspace/conformance/writer.js +1080 -0
  771. package/dist/workspace/decide.js +879 -0
  772. package/dist/workspace/decision-points.schema.json +135 -135
  773. package/dist/workspace/declaration-write-cli.js +74 -0
  774. package/dist/workspace/declaration-write.js +238 -0
  775. package/dist/workspace/declaration.js +938 -0
  776. package/dist/workspace/declaration.schema.json +1413 -1413
  777. package/dist/workspace/declared-kinds.js +106 -0
  778. package/dist/workspace/environments.js +164 -0
  779. package/dist/workspace/evidence.schema.json +279 -0
  780. package/dist/workspace/export-cli.js +185 -0
  781. package/dist/workspace/export.js +499 -0
  782. package/dist/workspace/factory-rules.js +175 -0
  783. package/dist/workspace/generated-files.js +92 -0
  784. package/dist/workspace/glob.js +45 -0
  785. package/dist/workspace/graph-cache.js +352 -0
  786. package/dist/workspace/graph-cli.js +348 -0
  787. package/dist/workspace/graph.schema.json +1338 -0
  788. package/dist/workspace/identity-gate-rule.js +75 -0
  789. package/dist/workspace/identity.js +126 -0
  790. package/dist/workspace/import.js +283 -0
  791. package/dist/workspace/init.js +620 -0
  792. package/dist/workspace/intent-cli.js +263 -0
  793. package/dist/workspace/intent-joins.js +201 -0
  794. package/dist/workspace/intent-record.js +352 -0
  795. package/dist/workspace/intent-record.schema.json +864 -0
  796. package/dist/workspace/intent.js +1582 -0
  797. package/dist/workspace/intent.schema.json +2420 -0
  798. package/dist/workspace/json-edit.js +221 -0
  799. package/dist/workspace/jsonc.js +235 -0
  800. package/dist/workspace/kind-readers.js +103 -0
  801. package/dist/workspace/kinds.d.ts +3 -7
  802. package/dist/workspace/kinds.d.ts.map +1 -1
  803. package/dist/workspace/kinds.js +553 -0
  804. package/dist/workspace/lexicon-symbols.js +112 -0
  805. package/dist/workspace/lineage-adopt-cli.js +102 -0
  806. package/dist/workspace/lineage-adopt.js +360 -0
  807. package/dist/workspace/lineage-check.js +282 -0
  808. package/dist/workspace/lineage-cli.js +121 -0
  809. package/dist/workspace/lineage-hash-index.js +284 -0
  810. package/dist/workspace/lineage-init.js +507 -0
  811. package/dist/workspace/lineage-lock.js +387 -0
  812. package/dist/workspace/lineage-merge.js +45 -0
  813. package/dist/workspace/lineage-migrations.d.ts.map +1 -1
  814. package/dist/workspace/lineage-migrations.js +329 -0
  815. package/dist/workspace/lineage-provenance.js +36 -0
  816. package/dist/workspace/lineage-update.js +138 -0
  817. package/dist/workspace/lineage-upgrade-cli.js +131 -0
  818. package/dist/workspace/lineage-upgrade.js +889 -0
  819. package/dist/workspace/lineage-vendor.js +171 -0
  820. package/dist/workspace/lineage-version.js +128 -0
  821. package/dist/workspace/lineage-versions.js +275 -0
  822. package/dist/workspace/links.js +330 -0
  823. package/dist/workspace/ls-generated.js +95 -0
  824. package/dist/workspace/ls.js +277 -0
  825. package/dist/workspace/ls.schema.json +333 -0
  826. package/dist/workspace/member-commands.js +508 -0
  827. package/dist/workspace/member-handles.js +216 -0
  828. package/dist/workspace/member-pipeline.js +258 -0
  829. package/dist/workspace/member-run.js +117 -0
  830. package/dist/workspace/member-write.schema.json +193 -0
  831. package/dist/workspace/nested-graph.js +156 -0
  832. package/dist/workspace/nesting.js +38 -0
  833. package/dist/workspace/patch.js +301 -0
  834. package/dist/workspace/patch.schema.json +321 -0
  835. package/dist/workspace/pin-cli.js +55 -0
  836. package/dist/workspace/pin-integrity.js +100 -0
  837. package/dist/workspace/plan-summary.schema.json +155 -0
  838. package/dist/workspace/point-answer.schema.json +129 -129
  839. package/dist/workspace/points-cli.js +291 -0
  840. package/dist/workspace/points-write.schema.json +660 -0
  841. package/dist/workspace/points.js +521 -0
  842. package/dist/workspace/points.schema.json +916 -0
  843. package/dist/workspace/pr-report.schema.json +108 -0
  844. package/dist/workspace/principal-classes.d.ts +4 -11
  845. package/dist/workspace/principal-classes.d.ts.map +1 -1
  846. package/dist/workspace/principal-classes.js +162 -0
  847. package/dist/workspace/reason-codes.js +326 -0
  848. package/dist/workspace/record-assets.js +151 -0
  849. package/dist/workspace/record-decided.js +105 -0
  850. package/dist/workspace/record-sessions.js +96 -0
  851. package/dist/workspace/record-source.js +114 -0
  852. package/dist/workspace/records-amend.schema.json +284 -0
  853. package/dist/workspace/records-checkout.js +76 -0
  854. package/dist/workspace/records-cli.js +707 -0
  855. package/dist/workspace/records-close.js +116 -0
  856. package/dist/workspace/records-close.schema.json +278 -0
  857. package/dist/workspace/records-new.schema.json +202 -0
  858. package/dist/workspace/records-review.schema.json +367 -0
  859. package/dist/workspace/records-since.js +317 -0
  860. package/dist/workspace/records-since.schema.json +218 -0
  861. package/dist/workspace/records-write.js +1229 -0
  862. package/dist/workspace/records.js +1345 -0
  863. package/dist/workspace/records.schema.json +604 -0
  864. package/dist/workspace/reference-kinds/app/package.json +10 -0
  865. package/dist/workspace/reference-kinds/app/workspace-kinds.json +45 -0
  866. package/dist/workspace/returns.js +303 -0
  867. package/dist/workspace/root-refusal.js +75 -0
  868. package/dist/workspace/run-statement.schema.json +622 -0
  869. package/dist/workspace/runs-cli.js +584 -0
  870. package/dist/workspace/runs-write.schema.json +994 -0
  871. package/dist/workspace/runs.js +708 -0
  872. package/dist/workspace/runs.schema.json +1257 -0
  873. package/dist/workspace/runtimes.js +76 -0
  874. package/dist/workspace/session-kinds.js +83 -0
  875. package/dist/workspace/signers.schema.json +206 -0
  876. package/dist/workspace/source-block.js +125 -0
  877. package/dist/workspace/squash.js +177 -0
  878. package/dist/workspace/status-gates.js +162 -0
  879. package/dist/workspace/status-stewards.js +330 -0
  880. package/dist/workspace/status.js +514 -0
  881. package/dist/workspace/status.schema.json +998 -0
  882. package/dist/workspace/steward-index.js +191 -0
  883. package/dist/workspace/symbols.js +188 -0
  884. package/dist/workspace/template-manifest.js +227 -0
  885. package/dist/workspace/template-pins.js +115 -0
  886. package/dist/workspace/trailer-joins.js +65 -0
  887. package/dist/workspace/trailers.js +111 -0
  888. package/dist/workspace/tree.js +136 -0
  889. package/dist/workspace/trust/attestor.js +63 -0
  890. package/dist/workspace/trust/dsse.js +108 -0
  891. package/dist/workspace/trust/evidence-cli.js +175 -0
  892. package/dist/workspace/trust/evidence.js +161 -0
  893. package/dist/workspace/trust/gate-seal.js +226 -0
  894. package/dist/workspace/trust/policy.js +190 -0
  895. package/dist/workspace/trust/provenance.js +180 -0
  896. package/dist/workspace/trust/rotation.js +298 -0
  897. package/dist/workspace/trust/run-commits.js +101 -0
  898. package/dist/workspace/trust/run-statement.js +182 -0
  899. package/dist/workspace/trust/seal.js +272 -0
  900. package/dist/workspace/trust/signers-cli.js +152 -0
  901. package/dist/workspace/trust/ssh-commit.js +178 -0
  902. package/dist/workspace/trust/test-repo.js +118 -0
  903. package/dist/workspace/trust/trust-files.js +193 -0
  904. package/dist/workspace/trust/verify-cli.js +63 -0
  905. package/dist/workspace/trust/verify.js +192 -0
  906. package/dist/workspace/which-chant.js +141 -0
  907. package/dist/workspace/wip-cli.js +95 -0
  908. package/dist/workspace/wip-write.schema.json +504 -0
  909. package/dist/workspace/wip.js +631 -0
  910. package/dist/workspace/wip.schema.json +334 -0
  911. package/dist/workspace/work-cli.js +448 -0
  912. package/dist/workspace/work-evidence.js +122 -0
  913. package/dist/workspace/work-evidence.schema.json +222 -0
  914. package/dist/workspace/work-history.schema.json +421 -0
  915. package/dist/workspace/work-lease.schema.json +246 -0
  916. package/dist/workspace/work-size.js +77 -0
  917. package/dist/workspace/work.js +283 -0
  918. package/dist/workspace/workspace-kinds.schema.json +259 -259
  919. package/dist/workspace/workspace-principals.schema.json +53 -53
  920. package/dist/workspace/write-lock-cli.js +105 -0
  921. package/dist/workspace/write-lock.js +424 -0
  922. package/dist/workspace/write-lock.schema.json +172 -0
  923. package/dist/workspace/write-scope.js +484 -0
  924. package/dist/yaml.js +459 -0
  925. package/package.json +2 -2
  926. package/src/build.ts +8 -0
  927. package/src/change-set.test.ts +48 -0
  928. package/src/change-set.ts +52 -2
  929. package/src/ci-jobs.test.ts +49 -0
  930. package/src/ci-jobs.ts +515 -0
  931. package/src/cli/commands/check-lexicon-plugin.ts +2 -0
  932. package/src/cli/commands/lint.ts +3 -0
  933. package/src/cli/commands/migrate.ts +2 -0
  934. package/src/cli/compiled-cli.e2e.test.ts +165 -0
  935. package/src/cli/main.ts +121 -27
  936. package/src/cli/mcp/workspace-tools.ts +1 -1
  937. package/src/codegen/pinned-upgrade.ts +2 -0
  938. package/src/components/discover.ts +2 -0
  939. package/src/components/pr-pipeline.ts +3 -2
  940. package/src/components/sandbox/driver.ts +3 -1
  941. package/src/composite.ts +15 -3
  942. package/src/config-import.ts +3 -0
  943. package/src/discovery/collect.ts +15 -1
  944. package/src/discovery/fold-build-parity.test.ts +71 -0
  945. package/src/discovery/fold-import.ts +25 -127
  946. package/src/discovery/fold-project-provenance.test.ts +21 -4
  947. package/src/discovery/host-composite.ts +101 -0
  948. package/src/discovery/import.ts +2 -0
  949. package/src/discovery/index.ts +11 -1
  950. package/src/discovery/sandbox/driver.ts +3 -1
  951. package/src/gate-decision-bundle.test.ts +5 -4
  952. package/src/gate-decision-identity.test.ts +59 -6
  953. package/src/gate-decision.ts +81 -21
  954. package/src/lexicon-module.ts +3 -0
  955. package/src/lifecycle/gate-audit.test.ts +55 -1
  956. package/src/lifecycle/gate-audit.ts +116 -3
  957. package/src/lifecycle/gate-ledger.test.ts +20 -1
  958. package/src/lifecycle/gate-ledger.ts +33 -1
  959. package/src/lint/config.ts +1 -1
  960. package/src/lint/discover.ts +28 -8
  961. package/src/lint/policy-import.ts +4 -1
  962. package/src/lint/rule-loader.ts +2 -0
  963. package/src/op/activities/activity-contracts.ts +1 -1
  964. package/src/op/activities/change-set.ts +11 -3
  965. package/src/op/activities/lexicon-upgrade.test.ts +2 -0
  966. package/src/op/activities/reconcile.test.ts +62 -2
  967. package/src/op/activities/reconcile.ts +46 -22
  968. package/src/op/builders.ts +1 -1
  969. package/src/op/discover.ts +3 -0
  970. package/src/op/op-waves-run.ts +4 -3
  971. package/src/op/op-waves.test.ts +2 -0
  972. package/src/op/work-lease-run.test.ts +12 -4
  973. package/src/ts-loader.test.ts +23 -0
  974. package/src/ts-loader.ts +122 -0
  975. package/src/workspace/__fixtures__/contract-repo.ts +17 -1
  976. package/src/workspace/__fixtures__/sessions.ts +3 -3
  977. package/src/workspace/change-set.schema.json +5 -3
  978. package/src/workspace/chant-migrations/chud-lexicon-exit.ts +1 -1
  979. package/src/workspace/ci-green-workflow.test.ts +4 -4
  980. package/src/workspace/ci-green-workflow.ts +5 -2
  981. package/src/workspace/class-data.test.ts +64 -0
  982. package/src/workspace/class-data.ts +236 -0
  983. package/src/workspace/declaration.ts +1 -1
  984. package/src/workspace/kinds.ts +7 -36
  985. package/src/workspace/lineage-migrations.ts +2 -0
  986. package/src/workspace/points.ts +1 -1
  987. package/src/workspace/principal-classes.ts +12 -95
  988. package/src/workspace/records-formats.test.ts +7 -2
  989. package/src/workspace/records-sessions-write.test.ts +3 -3
  990. package/src/workspace/status-contract.e2e.test.ts +37 -0
  991. package/src/workspace/status-contract.test.ts +23 -21
@@ -0,0 +1,1338 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://intentius.io/chant/schemas/workspace/graph/v1/graph.schema.json",
4
+ "title": "chant workspace graph output",
5
+ "description": "What `chant workspace graph` prints, version 1 of the read contract for the composed workspace graph (#2524 D8, D15, #2536, #2537). Each member's `chant graph --format ir`, read under the member's own toolchain, with every node id prefixed by its member. Readers ignore fields they do not know; a field is only ever added within a version, and a member's node carries every field its own IR has. The reason and error codes are closed lists: a new code is a new contract version. Contract version 1 is written by chant 0.81.0 and newer; a reader that needs it refuses output whose `contract` it doesn't know. Every code is in the one closed list of `reason-codes.ts`.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "#/$defs/result"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/failure"
12
+ }
13
+ ],
14
+ "$defs": {
15
+ "result": {
16
+ "description": "The declaration was read. Exit code 0 when every chant member was composed, 1 when one failed or couldn't be read; the document is printed either way.",
17
+ "type": "object",
18
+ "required": [
19
+ "$schema",
20
+ "contract",
21
+ "chant",
22
+ "at",
23
+ "version",
24
+ "workspace",
25
+ "members",
26
+ "nodes",
27
+ "edges",
28
+ "groups",
29
+ "exports",
30
+ "imports",
31
+ "links",
32
+ "collectors",
33
+ "records"
34
+ ],
35
+ "properties": {
36
+ "$schema": {
37
+ "const": "https://intentius.io/chant/schemas/workspace/graph/v1/graph.schema.json"
38
+ },
39
+ "contract": {
40
+ "const": 1
41
+ },
42
+ "chant": {
43
+ "type": "string",
44
+ "description": "The version of the chant that read the declaration and composed the graph. Each member's own chant is on its entry."
45
+ },
46
+ "at": {
47
+ "description": "The full commit id the workspace was read at (--at), or null for the working tree.",
48
+ "type": [
49
+ "string",
50
+ "null"
51
+ ],
52
+ "pattern": "^[0-9a-f]{40,64}$"
53
+ },
54
+ "error": false,
55
+ "version": {
56
+ "const": 1,
57
+ "description": "The version of the composed graph format. It moves only for a change a reader could not ignore."
58
+ },
59
+ "workspace": {
60
+ "type": "object",
61
+ "required": [
62
+ "name",
63
+ "root"
64
+ ],
65
+ "properties": {
66
+ "name": {
67
+ "type": "string",
68
+ "description": "The declared name. With `at`, it identifies the workspace."
69
+ },
70
+ "root": {
71
+ "type": "string",
72
+ "description": "The workspace root relative to the git root, with / separators, \".\" for the git root itself. An absolute path outside a git repository."
73
+ }
74
+ }
75
+ },
76
+ "members": {
77
+ "description": "Every member the run covered, in declaration order: composed, skipped or failed.",
78
+ "type": "array",
79
+ "items": {
80
+ "$ref": "#/$defs/member"
81
+ }
82
+ },
83
+ "nodes": {
84
+ "description": "Every composed member's nodes, sorted by id.",
85
+ "type": "array",
86
+ "items": {
87
+ "$ref": "#/$defs/node"
88
+ }
89
+ },
90
+ "edges": {
91
+ "type": "array",
92
+ "items": {
93
+ "$ref": "#/$defs/edge"
94
+ }
95
+ },
96
+ "groups": {
97
+ "type": "object",
98
+ "required": [
99
+ "byMember"
100
+ ],
101
+ "properties": {
102
+ "byMember": {
103
+ "type": "object",
104
+ "additionalProperties": {
105
+ "type": "array",
106
+ "items": {
107
+ "type": "string"
108
+ }
109
+ },
110
+ "description": "Each composed member's node ids."
111
+ },
112
+ "byLexicon": {
113
+ "type": "object",
114
+ "additionalProperties": {
115
+ "type": "array",
116
+ "items": {
117
+ "type": "string"
118
+ }
119
+ },
120
+ "description": "Keys kept, ids merged across members."
121
+ },
122
+ "byComposite": {
123
+ "type": "object",
124
+ "additionalProperties": {
125
+ "type": "array",
126
+ "items": {
127
+ "type": "string"
128
+ }
129
+ },
130
+ "description": "Keys kept, ids merged across members."
131
+ },
132
+ "byStack": {
133
+ "type": "object",
134
+ "additionalProperties": {
135
+ "type": "array",
136
+ "items": {
137
+ "type": "string"
138
+ }
139
+ },
140
+ "description": "Keys prefixed with the member."
141
+ },
142
+ "byContainer": {
143
+ "type": "object",
144
+ "additionalProperties": {
145
+ "type": "array",
146
+ "items": {
147
+ "type": "string"
148
+ }
149
+ },
150
+ "description": "Keys prefixed with the member."
151
+ },
152
+ "byWave": {
153
+ "type": "object",
154
+ "additionalProperties": {
155
+ "type": "array",
156
+ "items": {
157
+ "type": "string"
158
+ }
159
+ },
160
+ "description": "Keys prefixed with the member."
161
+ }
162
+ }
163
+ },
164
+ "exports": {
165
+ "type": "array",
166
+ "items": {
167
+ "type": "object",
168
+ "required": [
169
+ "name",
170
+ "member"
171
+ ],
172
+ "properties": {
173
+ "name": {
174
+ "type": "string"
175
+ },
176
+ "node": {
177
+ "type": "string"
178
+ },
179
+ "attr": {
180
+ "type": "string"
181
+ },
182
+ "member": {
183
+ "type": "string"
184
+ }
185
+ }
186
+ }
187
+ },
188
+ "imports": {
189
+ "type": "array",
190
+ "items": {
191
+ "type": "object",
192
+ "required": [
193
+ "name",
194
+ "node",
195
+ "member"
196
+ ],
197
+ "properties": {
198
+ "name": {
199
+ "type": "string"
200
+ },
201
+ "node": {
202
+ "type": "string"
203
+ },
204
+ "member": {
205
+ "type": "string"
206
+ }
207
+ }
208
+ }
209
+ },
210
+ "derivedAttrs": {
211
+ "type": "object",
212
+ "additionalProperties": {
213
+ "type": "array",
214
+ "items": {
215
+ "type": "string"
216
+ }
217
+ },
218
+ "description": "Attributes derived per resource kind, merged across members."
219
+ },
220
+ "links": {
221
+ "type": "array",
222
+ "description": "Member links (#2524 D6, #2539): the ones declared on a consumer and the ones inferred from join keys, resolved against the composed graph. A reader draws a row from its `from` node to its `to` node when both are set. With --kind, the links of the records read follow (#2549): an `asset` row for each file a record pins by hash, and a `constrains` row for each member or path it governs. These rows have `record` and `target` instead of `consumer` and `producer`.",
223
+ "items": {
224
+ "$ref": "#/$defs/link"
225
+ }
226
+ },
227
+ "collectors": {
228
+ "type": "array",
229
+ "description": "The collector pipelines and exporters of each member that declares a collector, in declaration order (#2559). A member reports them from its own IR (`meta.collector`), which the lexicon that types the collector config writes, so chant itself reads no collector config. Empty when no member declares one. A reader joins a telemetry endpoint to the pipeline or exporter it names through `exporters[].endpoints` and `pipelines[].id`.",
230
+ "items": {
231
+ "$ref": "#/$defs/collector"
232
+ }
233
+ },
234
+ "records": {
235
+ "type": "array",
236
+ "description": "The records read with --kind (#2524 D4, #2549), sorted by path; empty without it. A record link in `links` names its record by id.",
237
+ "items": {
238
+ "$ref": "#/$defs/record"
239
+ }
240
+ },
241
+ "plantable": {
242
+ "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, read from the declaration at the revision read. Not a check: a records-only or infra workspace is valid and simply not plantable.",
243
+ "$ref": "#/$defs/plantable"
244
+ }
245
+ }
246
+ },
247
+ "member": {
248
+ "type": "object",
249
+ "required": [
250
+ "name",
251
+ "dir",
252
+ "kind",
253
+ "status",
254
+ "reason",
255
+ "chant",
256
+ "irVersion"
257
+ ],
258
+ "properties": {
259
+ "name": {
260
+ "type": "string"
261
+ },
262
+ "dir": {
263
+ "type": "string",
264
+ "description": "Relative to the workspace root, with / separators; \".\" is the root member."
265
+ },
266
+ "kind": {
267
+ "type": "string"
268
+ },
269
+ "status": {
270
+ "enum": [
271
+ "composed",
272
+ "skipped",
273
+ "failed"
274
+ ]
275
+ },
276
+ "reason": {
277
+ "oneOf": [
278
+ {
279
+ "type": "null"
280
+ },
281
+ {
282
+ "type": "object",
283
+ "required": [
284
+ "code",
285
+ "message"
286
+ ],
287
+ "properties": {
288
+ "code": {
289
+ "enum": [
290
+ "kind-not-run",
291
+ "dir-missing",
292
+ "unknown-kind",
293
+ "kind-probe-failed",
294
+ "command-failed",
295
+ "output-unreadable",
296
+ "ir-version-unsupported"
297
+ ]
298
+ },
299
+ "message": {
300
+ "type": "string"
301
+ }
302
+ }
303
+ }
304
+ ]
305
+ },
306
+ "chant": {
307
+ "type": [
308
+ "string",
309
+ "null"
310
+ ],
311
+ "description": "The chant version the member's toolchain reported, or null when a chant older than member-run read it."
312
+ },
313
+ "irVersion": {
314
+ "type": [
315
+ "integer",
316
+ "null"
317
+ ],
318
+ "description": "The IR version the member printed, or null when it printed none and was read as version 1."
319
+ },
320
+ "live": {
321
+ "type": "boolean",
322
+ "description": "Whether the member was read with --live (#2875): its graph is the account as it stands, and its nodes carry whatever _drift, _overlay and _behaviour attributes its chant wrote. false for a source read and for a member that did not run. A document from a chant before #2875 has no live field, and a reader may take that as false."
323
+ },
324
+ "readAt": {
325
+ "type": "string",
326
+ "description": "For a live read, as an ISO 8601 time: when the member's read finished. A live member of a toolchain whose member-run names no time gets the time its toolchain's process ended."
327
+ },
328
+ "cached": {
329
+ "type": "boolean",
330
+ "description": "Whether chant's per-member cache answered this read (#2876). Present on composed members. A cached read is the output the member's own chant printed for the same stamp, toolchain, command line and environment."
331
+ },
332
+ "stamp": {
333
+ "type": [
334
+ "string",
335
+ "null"
336
+ ],
337
+ "description": "What the per-member cache keys this read on (#2876): sha256 over the member's files and install state, or over the commit id with --at. Present on composed members; null for a live read or when no stamp could be taken. Two reads of a member with equal stamps read the same source."
338
+ },
339
+ "meta": {
340
+ "type": "object",
341
+ "description": "The member IR's whole-read facts."
342
+ },
343
+ "pipeline": {
344
+ "description": "The member IR's pipeline projection, when it has one."
345
+ },
346
+ "nested": {
347
+ "type": "object",
348
+ "description": "For a member of kind workspace (#2551): the nested workspace, read read-only through its own chant workspace graph. Its nodes, edges, exports and imports are in the outer sections with `<member>/<nested member>/<id>` ids, and each node names its nested member in `nested`. The outer workspace never writes inside it.",
349
+ "required": [
350
+ "name",
351
+ "contract",
352
+ "members",
353
+ "links"
354
+ ],
355
+ "properties": {
356
+ "name": {
357
+ "type": "string",
358
+ "description": "The nested declaration's name."
359
+ },
360
+ "contract": {
361
+ "type": "integer",
362
+ "description": "The contract version of the nested read's document."
363
+ },
364
+ "members": {
365
+ "type": "array",
366
+ "items": {
367
+ "$ref": "#/$defs/member"
368
+ },
369
+ "description": "The nested workspace's members as its own graph lists them, with their own names and directories (relative to the nested root)."
370
+ },
371
+ "links": {
372
+ "type": "array",
373
+ "items": {
374
+ "$ref": "#/$defs/link"
375
+ },
376
+ "description": "The nested workspace's links, naming its members as the nested side does."
377
+ }
378
+ }
379
+ },
380
+ "box": {
381
+ "description": "Added in contract 1 by #3146. The factory and listing the member's box block declares (ws-077), read from the declaration at the revision read, so --at gives them as they were. null when the box declares neither, or the member has no box block; the rest of the box block is in chant workspace status --json.",
382
+ "oneOf": [
383
+ {
384
+ "type": "null"
385
+ },
386
+ {
387
+ "type": "object",
388
+ "required": [
389
+ "factory",
390
+ "listing"
391
+ ],
392
+ "properties": {
393
+ "factory": {
394
+ "oneOf": [
395
+ {
396
+ "type": "null"
397
+ },
398
+ {
399
+ "$ref": "#/$defs/factory"
400
+ }
401
+ ]
402
+ },
403
+ "listing": {
404
+ "oneOf": [
405
+ {
406
+ "type": "null"
407
+ },
408
+ {
409
+ "$ref": "#/$defs/listing"
410
+ }
411
+ ]
412
+ }
413
+ }
414
+ }
415
+ ]
416
+ }
417
+ },
418
+ "if": {
419
+ "type": "object",
420
+ "properties": {
421
+ "status": {
422
+ "const": "composed"
423
+ }
424
+ },
425
+ "required": [
426
+ "status"
427
+ ]
428
+ },
429
+ "then": {
430
+ "type": "object",
431
+ "properties": {
432
+ "reason": {
433
+ "type": "null"
434
+ }
435
+ }
436
+ },
437
+ "else": {
438
+ "type": "object",
439
+ "properties": {
440
+ "reason": {
441
+ "type": "object"
442
+ }
443
+ }
444
+ }
445
+ },
446
+ "node": {
447
+ "type": "object",
448
+ "required": [
449
+ "id",
450
+ "kind",
451
+ "lexicon",
452
+ "attrs",
453
+ "member"
454
+ ],
455
+ "properties": {
456
+ "id": {
457
+ "type": "string",
458
+ "description": "`<member>/<id>`: the member's own id with the member's name in front."
459
+ },
460
+ "kind": {
461
+ "type": "string"
462
+ },
463
+ "lexicon": {
464
+ "type": "string"
465
+ },
466
+ "attrs": {
467
+ "type": "object",
468
+ "description": "The member's attributes, with every `$ref` prefixed like the ids."
469
+ },
470
+ "member": {
471
+ "type": "string"
472
+ },
473
+ "compositeParent": {
474
+ "type": "string"
475
+ },
476
+ "compositeInstance": {
477
+ "type": "string"
478
+ },
479
+ "runtimeOwner": {
480
+ "type": "string"
481
+ },
482
+ "nested": {
483
+ "type": "string",
484
+ "description": "For a node read through a nested workspace (#2551): the nested workspace's member it belongs to. `member` is then the outer member, and the id is `<member>/<nested>/<id>`."
485
+ },
486
+ "sourceLoc": {
487
+ "type": "object",
488
+ "required": [
489
+ "file"
490
+ ],
491
+ "properties": {
492
+ "file": {
493
+ "type": "string",
494
+ "description": "Relative to the member's directory."
495
+ },
496
+ "line": {
497
+ "type": "integer"
498
+ }
499
+ }
500
+ }
501
+ }
502
+ },
503
+ "edge": {
504
+ "type": "object",
505
+ "required": [
506
+ "from",
507
+ "to",
508
+ "kind",
509
+ "member"
510
+ ],
511
+ "properties": {
512
+ "from": {
513
+ "type": "string"
514
+ },
515
+ "to": {
516
+ "type": "string"
517
+ },
518
+ "kind": {
519
+ "type": "string"
520
+ },
521
+ "viaAttr": {
522
+ "type": "string"
523
+ },
524
+ "toAttr": {
525
+ "type": "string"
526
+ },
527
+ "member": {
528
+ "type": "string"
529
+ }
530
+ }
531
+ },
532
+ "failure": {
533
+ "description": "The declaration could not be read, and nothing was composed. Exit code 1.",
534
+ "type": "object",
535
+ "required": [
536
+ "$schema",
537
+ "contract",
538
+ "chant",
539
+ "error"
540
+ ],
541
+ "properties": {
542
+ "$schema": {
543
+ "const": "https://intentius.io/chant/schemas/workspace/graph/v1/graph.schema.json"
544
+ },
545
+ "contract": {
546
+ "const": 1
547
+ },
548
+ "chant": {
549
+ "type": "string"
550
+ },
551
+ "error": {
552
+ "type": "object",
553
+ "required": [
554
+ "code",
555
+ "message",
556
+ "location"
557
+ ],
558
+ "properties": {
559
+ "code": {
560
+ "enum": [
561
+ "declaration-missing",
562
+ "declaration-ambiguous",
563
+ "declaration-unparseable",
564
+ "declaration-invalid",
565
+ "placement-invalid",
566
+ "reader-too-old",
567
+ "root-chant-required",
568
+ "not-a-git-repository",
569
+ "revision-unknown",
570
+ "live-at-revision"
571
+ ]
572
+ },
573
+ "message": {
574
+ "type": "string"
575
+ },
576
+ "location": {
577
+ "description": "Where in the declaration the problem is, or null when it is not in the file.",
578
+ "oneOf": [
579
+ {
580
+ "type": "null"
581
+ },
582
+ {
583
+ "type": "object",
584
+ "required": [
585
+ "file",
586
+ "line",
587
+ "column"
588
+ ],
589
+ "properties": {
590
+ "file": {
591
+ "type": "string"
592
+ },
593
+ "line": {
594
+ "type": "integer",
595
+ "minimum": 1
596
+ },
597
+ "column": {
598
+ "type": "integer",
599
+ "minimum": 1
600
+ }
601
+ }
602
+ }
603
+ ]
604
+ }
605
+ }
606
+ },
607
+ "members": false,
608
+ "nodes": false
609
+ }
610
+ },
611
+ "link": {
612
+ "oneOf": [
613
+ {
614
+ "type": "object",
615
+ "required": [
616
+ "consumer",
617
+ "kind",
618
+ "origin",
619
+ "resolves",
620
+ "reason",
621
+ "status",
622
+ "producer",
623
+ "output",
624
+ "label",
625
+ "input"
626
+ ],
627
+ "properties": {
628
+ "consumer": {
629
+ "type": "string",
630
+ "description": "The member that consumes."
631
+ },
632
+ "kind": {
633
+ "type": "string",
634
+ "description": "What the link joins: `output`, or `telemetry` (#2558), where the consumer sends its telemetry to a pipeline or exporter of the producer's collector and `output` names it."
635
+ },
636
+ "origin": {
637
+ "enum": [
638
+ "declared",
639
+ "inferred:joinKey"
640
+ ]
641
+ },
642
+ "resolves": {
643
+ "const": "source"
644
+ },
645
+ "reason": {
646
+ "type": [
647
+ "string",
648
+ "null"
649
+ ],
650
+ "description": "Why the row is not resolved, or null."
651
+ },
652
+ "from": {
653
+ "type": "string",
654
+ "description": "The consumer's parameter node, when known."
655
+ },
656
+ "input": {
657
+ "type": [
658
+ "string",
659
+ "null"
660
+ ]
661
+ },
662
+ "status": {
663
+ "enum": [
664
+ "resolved",
665
+ "missing",
666
+ "unresolved",
667
+ "invalid"
668
+ ]
669
+ },
670
+ "producer": {
671
+ "type": "string"
672
+ },
673
+ "output": {
674
+ "type": "string"
675
+ },
676
+ "label": {
677
+ "enum": [
678
+ "exact",
679
+ "folded"
680
+ ]
681
+ },
682
+ "to": {
683
+ "type": "string",
684
+ "description": "The producer's output node, when known."
685
+ },
686
+ "pointer": {
687
+ "type": "string",
688
+ "description": "The declared link's JSON Pointer in the declaration; left out of the graph for a declared link."
689
+ },
690
+ "protocol": {
691
+ "enum": [
692
+ "grpc",
693
+ "http/protobuf",
694
+ "http/json"
695
+ ],
696
+ "description": "A telemetry link: the OTLP protocol it states."
697
+ },
698
+ "target": {
699
+ "enum": [
700
+ "pipeline",
701
+ "exporter"
702
+ ],
703
+ "description": "A telemetry link that found its target: whether `output` named a pipeline or an exporter in the producer's `collectors` entry."
704
+ }
705
+ }
706
+ },
707
+ {
708
+ "type": "object",
709
+ "required": [
710
+ "consumer",
711
+ "kind",
712
+ "origin",
713
+ "resolves",
714
+ "reason",
715
+ "status",
716
+ "input",
717
+ "candidates"
718
+ ],
719
+ "properties": {
720
+ "consumer": {
721
+ "type": "string",
722
+ "description": "The member that consumes."
723
+ },
724
+ "kind": {
725
+ "type": "string",
726
+ "description": "What the link joins, such as output."
727
+ },
728
+ "origin": {
729
+ "enum": [
730
+ "declared",
731
+ "inferred:joinKey"
732
+ ]
733
+ },
734
+ "resolves": {
735
+ "const": "source"
736
+ },
737
+ "reason": {
738
+ "type": [
739
+ "string",
740
+ "null"
741
+ ],
742
+ "description": "Why the row is not resolved, or null."
743
+ },
744
+ "from": {
745
+ "type": "string",
746
+ "description": "The consumer's parameter node, when known."
747
+ },
748
+ "input": {
749
+ "type": "string"
750
+ },
751
+ "status": {
752
+ "const": "ambiguous"
753
+ },
754
+ "candidates": {
755
+ "type": "array",
756
+ "items": {
757
+ "type": "object",
758
+ "required": [
759
+ "producer",
760
+ "output",
761
+ "label"
762
+ ],
763
+ "properties": {
764
+ "producer": {
765
+ "type": "string"
766
+ },
767
+ "output": {
768
+ "type": "string"
769
+ },
770
+ "label": {
771
+ "enum": [
772
+ "exact",
773
+ "folded"
774
+ ]
775
+ },
776
+ "to": {
777
+ "type": "string"
778
+ }
779
+ }
780
+ }
781
+ }
782
+ }
783
+ },
784
+ {
785
+ "type": "object",
786
+ "description": "A record link (#2549): from a current record to a file it pins (kind asset) or to a member or path it constrains (kind constrains). Superseded records have none. A reader finds the artifacts behind a file by taking the decisions whose constrains cover it and then their asset rows.",
787
+ "required": [
788
+ "kind",
789
+ "origin",
790
+ "resolves",
791
+ "recordKind",
792
+ "record",
793
+ "recordPath",
794
+ "target",
795
+ "member",
796
+ "status",
797
+ "reason"
798
+ ],
799
+ "properties": {
800
+ "kind": {
801
+ "enum": [
802
+ "asset",
803
+ "constrains"
804
+ ]
805
+ },
806
+ "origin": {
807
+ "const": "declared"
808
+ },
809
+ "resolves": {
810
+ "const": "source"
811
+ },
812
+ "recordKind": {
813
+ "type": "string",
814
+ "description": "The record's kind, such as decision."
815
+ },
816
+ "record": {
817
+ "type": "string",
818
+ "description": "The record's id."
819
+ },
820
+ "recordPath": {
821
+ "type": "string",
822
+ "description": "The record file, from the repository root."
823
+ },
824
+ "target": {
825
+ "type": "string",
826
+ "description": "For asset, the pinned path from the workspace root. For constrains, the entry as written: member:<name> or path:<path>."
827
+ },
828
+ "member": {
829
+ "type": [
830
+ "string",
831
+ "null"
832
+ ],
833
+ "description": "The member the target names or sits in; null when no member does."
834
+ },
835
+ "status": {
836
+ "enum": [
837
+ "pinned",
838
+ "drifted",
839
+ "missing",
840
+ "stale",
841
+ "resolved"
842
+ ],
843
+ "description": "For asset: pinned, drifted, missing or stale, as records reports the pin. For constrains: resolved, or missing when the member is not declared or the path does not exist."
844
+ },
845
+ "reason": {
846
+ "type": [
847
+ "string",
848
+ "null"
849
+ ],
850
+ "description": "Why the row is not pinned or resolved, or null."
851
+ },
852
+ "sha256": {
853
+ "type": "string",
854
+ "pattern": "^[0-9a-f]{64}$",
855
+ "description": "For asset: the pinned hash."
856
+ },
857
+ "actual": {
858
+ "type": [
859
+ "string",
860
+ "null"
861
+ ],
862
+ "pattern": "^[0-9a-f]{64}$",
863
+ "description": "For asset: the hash of the file in the tree read, or null when it is missing."
864
+ }
865
+ }
866
+ }
867
+ ]
868
+ },
869
+ "collector": {
870
+ "type": "object",
871
+ "required": [
872
+ "member",
873
+ "pipelines",
874
+ "components",
875
+ "exporters"
876
+ ],
877
+ "properties": {
878
+ "member": {
879
+ "type": "string",
880
+ "description": "The member whose source declares the collector."
881
+ },
882
+ "pipelines": {
883
+ "type": "array",
884
+ "description": "Each pipeline under `service.pipelines`.",
885
+ "items": {
886
+ "type": "object",
887
+ "required": [
888
+ "id",
889
+ "signal",
890
+ "receivers",
891
+ "processors",
892
+ "exporters"
893
+ ],
894
+ "properties": {
895
+ "id": {
896
+ "type": "string",
897
+ "description": "The pipeline id, such as `traces` or `traces/backend`."
898
+ },
899
+ "signal": {
900
+ "type": "string",
901
+ "description": "`traces`, `metrics` or `logs`."
902
+ },
903
+ "receivers": {
904
+ "type": "array",
905
+ "items": {
906
+ "type": "string"
907
+ }
908
+ },
909
+ "processors": {
910
+ "type": "array",
911
+ "items": {
912
+ "type": "string"
913
+ }
914
+ },
915
+ "exporters": {
916
+ "type": "array",
917
+ "items": {
918
+ "type": "string"
919
+ }
920
+ }
921
+ }
922
+ }
923
+ },
924
+ "components": {
925
+ "type": "array",
926
+ "description": "Every receiver, processor, exporter, connector and extension, with the addresses its config states.",
927
+ "items": {
928
+ "type": "object",
929
+ "required": [
930
+ "id",
931
+ "kind",
932
+ "type",
933
+ "endpoints",
934
+ "protocols",
935
+ "pipelines"
936
+ ],
937
+ "properties": {
938
+ "id": {
939
+ "type": "string",
940
+ "description": "The collector id, `type` or `type/name`."
941
+ },
942
+ "kind": {
943
+ "type": "string",
944
+ "description": "`receiver`, `processor`, `exporter`, `connector` or `extension`."
945
+ },
946
+ "type": {
947
+ "type": "string"
948
+ },
949
+ "endpoints": {
950
+ "type": "array",
951
+ "items": {
952
+ "type": "string"
953
+ }
954
+ },
955
+ "protocols": {
956
+ "type": "array",
957
+ "items": {
958
+ "type": "string"
959
+ },
960
+ "description": "The wire protocols the component speaks, as OTLP SDKs name them: `grpc`, `http/protobuf` or `http/json`. Empty when its definition states none, which a telemetry link's protocol check reads as unknown."
961
+ },
962
+ "pipelines": {
963
+ "type": "array",
964
+ "items": {
965
+ "type": "string"
966
+ }
967
+ }
968
+ }
969
+ }
970
+ },
971
+ "exporters": {
972
+ "type": "array",
973
+ "description": "The exporters again, with the signals that reach each: where the member's telemetry is sent.",
974
+ "items": {
975
+ "type": "object",
976
+ "required": [
977
+ "id",
978
+ "type",
979
+ "endpoints",
980
+ "pipelines",
981
+ "signals"
982
+ ],
983
+ "properties": {
984
+ "id": {
985
+ "type": "string"
986
+ },
987
+ "type": {
988
+ "type": "string"
989
+ },
990
+ "endpoints": {
991
+ "type": "array",
992
+ "items": {
993
+ "type": "string"
994
+ }
995
+ },
996
+ "pipelines": {
997
+ "type": "array",
998
+ "items": {
999
+ "type": "string"
1000
+ }
1001
+ },
1002
+ "signals": {
1003
+ "type": "array",
1004
+ "items": {
1005
+ "type": "string"
1006
+ }
1007
+ }
1008
+ }
1009
+ }
1010
+ }
1011
+ }
1012
+ },
1013
+ "record": {
1014
+ "type": "object",
1015
+ "required": [
1016
+ "kind",
1017
+ "id",
1018
+ "path",
1019
+ "state",
1020
+ "valid",
1021
+ "supersededBy",
1022
+ "remediatedBy"
1023
+ ],
1024
+ "properties": {
1025
+ "kind": {
1026
+ "type": "string",
1027
+ "description": "The record kind's name, such as decision."
1028
+ },
1029
+ "id": {
1030
+ "type": [
1031
+ "string",
1032
+ "null"
1033
+ ]
1034
+ },
1035
+ "path": {
1036
+ "type": "string",
1037
+ "description": "The record file, from the repository root, with / separators."
1038
+ },
1039
+ "state": {
1040
+ "type": [
1041
+ "string",
1042
+ "null"
1043
+ ]
1044
+ },
1045
+ "valid": {
1046
+ "type": "boolean",
1047
+ "description": "As chant workspace records reports it."
1048
+ },
1049
+ "supersededBy": {
1050
+ "type": [
1051
+ "string",
1052
+ "null"
1053
+ ]
1054
+ },
1055
+ "remediatedBy": {
1056
+ "description": "Added in contract 1 by #2774. The ids of records whose remediates link names this one.",
1057
+ "type": "array",
1058
+ "items": {
1059
+ "type": "string"
1060
+ }
1061
+ }
1062
+ }
1063
+ },
1064
+ "plantable": {
1065
+ "type": "object",
1066
+ "required": [
1067
+ "plantable",
1068
+ "box",
1069
+ "reason"
1070
+ ],
1071
+ "properties": {
1072
+ "plantable": {
1073
+ "type": "boolean"
1074
+ },
1075
+ "box": {
1076
+ "type": [
1077
+ "string",
1078
+ "null"
1079
+ ],
1080
+ "description": "The member whose box block declares services, or null when the workspace isn't plantable."
1081
+ },
1082
+ "reason": {
1083
+ "description": "Why the workspace isn't plantable, or null when it is.",
1084
+ "oneOf": [
1085
+ {
1086
+ "type": "null"
1087
+ },
1088
+ {
1089
+ "type": "object",
1090
+ "required": [
1091
+ "code",
1092
+ "message"
1093
+ ],
1094
+ "properties": {
1095
+ "code": {
1096
+ "enum": [
1097
+ "box-none",
1098
+ "box-several"
1099
+ ]
1100
+ },
1101
+ "message": {
1102
+ "type": "string"
1103
+ }
1104
+ }
1105
+ }
1106
+ ]
1107
+ }
1108
+ }
1109
+ },
1110
+ "factory": {
1111
+ "type": "object",
1112
+ "required": [
1113
+ "builds",
1114
+ "check",
1115
+ "checks",
1116
+ "builders",
1117
+ "tiers",
1118
+ "builderFor",
1119
+ "publish"
1120
+ ],
1121
+ "properties": {
1122
+ "builds": {
1123
+ "type": "array",
1124
+ "minItems": 1,
1125
+ "items": {
1126
+ "type": "string"
1127
+ },
1128
+ "description": "The members the factory builds, in declaration order. A work item a person asks for constrains member:<the first>."
1129
+ },
1130
+ "check": {
1131
+ "description": "The verdict command, run from the workspace root, and what it is; null when none is declared.",
1132
+ "oneOf": [
1133
+ {
1134
+ "type": "null"
1135
+ },
1136
+ {
1137
+ "type": "object",
1138
+ "required": [
1139
+ "run",
1140
+ "kind"
1141
+ ],
1142
+ "properties": {
1143
+ "run": {
1144
+ "type": "string"
1145
+ },
1146
+ "kind": {
1147
+ "enum": [
1148
+ "test",
1149
+ "build",
1150
+ "lint",
1151
+ "plan",
1152
+ "conformance"
1153
+ ]
1154
+ }
1155
+ }
1156
+ }
1157
+ ]
1158
+ },
1159
+ "checks": {
1160
+ "type": [
1161
+ "string",
1162
+ "null"
1163
+ ],
1164
+ "description": "Where a work item's builder writes its check, from the workspace root, or null for the orchestrator's choice."
1165
+ },
1166
+ "builders": {
1167
+ "type": [
1168
+ "string",
1169
+ "null"
1170
+ ],
1171
+ "description": "The member that declares the builder agents, or null."
1172
+ },
1173
+ "tiers": {
1174
+ "type": "array",
1175
+ "items": {
1176
+ "type": "object",
1177
+ "required": [
1178
+ "tier",
1179
+ "agent",
1180
+ "kinds",
1181
+ "session"
1182
+ ],
1183
+ "properties": {
1184
+ "tier": {
1185
+ "type": "string"
1186
+ },
1187
+ "agent": {
1188
+ "type": "string"
1189
+ },
1190
+ "kinds": {
1191
+ "oneOf": [
1192
+ {
1193
+ "type": "null"
1194
+ },
1195
+ {
1196
+ "type": "array",
1197
+ "items": {
1198
+ "type": "string"
1199
+ }
1200
+ }
1201
+ ]
1202
+ },
1203
+ "session": {
1204
+ "type": [
1205
+ "string",
1206
+ "null"
1207
+ ]
1208
+ }
1209
+ }
1210
+ },
1211
+ "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."
1212
+ },
1213
+ "builderFor": {
1214
+ "type": "object",
1215
+ "additionalProperties": {
1216
+ "type": "object",
1217
+ "additionalProperties": {
1218
+ "type": "object",
1219
+ "required": [
1220
+ "agent",
1221
+ "session"
1222
+ ],
1223
+ "properties": {
1224
+ "agent": {
1225
+ "type": "string"
1226
+ },
1227
+ "session": {
1228
+ "type": [
1229
+ "string",
1230
+ "null"
1231
+ ]
1232
+ }
1233
+ }
1234
+ }
1235
+ },
1236
+ "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."
1237
+ },
1238
+ "publish": {
1239
+ "description": "Where a finished build is published, or null when the factory doesn't publish past the box.",
1240
+ "oneOf": [
1241
+ {
1242
+ "type": "null"
1243
+ },
1244
+ {
1245
+ "type": "object",
1246
+ "required": [
1247
+ "forge",
1248
+ "repo",
1249
+ "base",
1250
+ "branchPrefix",
1251
+ "head"
1252
+ ],
1253
+ "properties": {
1254
+ "forge": {
1255
+ "const": "github"
1256
+ },
1257
+ "repo": {
1258
+ "type": "string",
1259
+ "description": "owner/name: where the pull request is opened."
1260
+ },
1261
+ "base": {
1262
+ "type": [
1263
+ "string",
1264
+ "null"
1265
+ ],
1266
+ "description": "The branch the pull request targets, or null for the repository's default branch."
1267
+ },
1268
+ "branchPrefix": {
1269
+ "type": "string",
1270
+ "description": "What the published branch's name starts with, before the work item's id. chant/work/ unless declared."
1271
+ },
1272
+ "head": {
1273
+ "type": [
1274
+ "string",
1275
+ "null"
1276
+ ],
1277
+ "description": "owner/name of the fork the branch is pushed to, or null to push to repo."
1278
+ }
1279
+ }
1280
+ }
1281
+ ]
1282
+ }
1283
+ }
1284
+ },
1285
+ "listing": {
1286
+ "type": "object",
1287
+ "required": [
1288
+ "published",
1289
+ "title",
1290
+ "line",
1291
+ "cover"
1292
+ ],
1293
+ "properties": {
1294
+ "published": {
1295
+ "type": "boolean",
1296
+ "description": "Whether the box is listed; true unless declared otherwise."
1297
+ },
1298
+ "title": {
1299
+ "type": "string",
1300
+ "description": "Empty when not declared: a reader shows a name of its own."
1301
+ },
1302
+ "line": {
1303
+ "type": "string",
1304
+ "description": "Empty when not declared."
1305
+ },
1306
+ "cover": {
1307
+ "description": "The cover image, or null when none is declared.",
1308
+ "oneOf": [
1309
+ {
1310
+ "type": "null"
1311
+ },
1312
+ {
1313
+ "type": "object",
1314
+ "required": [
1315
+ "path",
1316
+ "sha256"
1317
+ ],
1318
+ "properties": {
1319
+ "path": {
1320
+ "type": "string",
1321
+ "description": "From the workspace root."
1322
+ },
1323
+ "sha256": {
1324
+ "type": [
1325
+ "string",
1326
+ "null"
1327
+ ],
1328
+ "pattern": "^[0-9a-f]{64}$",
1329
+ "description": "The sha256 of the file's bytes at the revision read, or null when it can't be read."
1330
+ }
1331
+ }
1332
+ }
1333
+ ]
1334
+ }
1335
+ }
1336
+ }
1337
+ }
1338
+ }