worldvm 0.0.0-stage → 0.1.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.
Files changed (426) hide show
  1. package/AUTHORING.md +833 -0
  2. package/README.md +154 -2
  3. package/bin/worldvm.mjs +3 -0
  4. package/dist/_internal/forma/index.d.ts +1 -0
  5. package/dist/_internal/forma/index.js +1 -0
  6. package/dist/_internal/forma/world/authoring-help.d.ts +25 -0
  7. package/dist/_internal/forma/world/authoring-help.js +130 -0
  8. package/dist/_internal/forma/world/citations.d.ts +3 -0
  9. package/dist/_internal/forma/world/citations.js +26 -0
  10. package/dist/_internal/forma/world/clock-bindings.d.ts +4 -0
  11. package/dist/_internal/forma/world/clock-bindings.js +45 -0
  12. package/dist/_internal/forma/world/compile.d.ts +13 -0
  13. package/dist/_internal/forma/world/compile.js +190 -0
  14. package/dist/_internal/forma/world/coverage.d.ts +10 -0
  15. package/dist/_internal/forma/world/coverage.js +242 -0
  16. package/dist/_internal/forma/world/digest.d.ts +1 -0
  17. package/dist/_internal/forma/world/digest.js +1 -0
  18. package/dist/_internal/forma/world/documentation.d.ts +3 -0
  19. package/dist/_internal/forma/world/documentation.js +38 -0
  20. package/dist/_internal/forma/world/homes.d.ts +4 -0
  21. package/dist/_internal/forma/world/homes.js +202 -0
  22. package/dist/_internal/forma/world/index.d.ts +6 -0
  23. package/dist/_internal/forma/world/index.js +5 -0
  24. package/dist/_internal/forma/world/lowering/accounts.d.ts +4 -0
  25. package/dist/_internal/forma/world/lowering/accounts.js +36 -0
  26. package/dist/_internal/forma/world/lowering/action-policy.d.ts +5 -0
  27. package/dist/_internal/forma/world/lowering/action-policy.js +16 -0
  28. package/dist/_internal/forma/world/lowering/agents.d.ts +6 -0
  29. package/dist/_internal/forma/world/lowering/agents.js +116 -0
  30. package/dist/_internal/forma/world/lowering/bundles.d.ts +3 -0
  31. package/dist/_internal/forma/world/lowering/bundles.js +13 -0
  32. package/dist/_internal/forma/world/lowering/child-parameters.d.ts +14 -0
  33. package/dist/_internal/forma/world/lowering/child-parameters.js +36 -0
  34. package/dist/_internal/forma/world/lowering/collects.d.ts +3 -0
  35. package/dist/_internal/forma/world/lowering/collects.js +51 -0
  36. package/dist/_internal/forma/world/lowering/component-operations.d.ts +6 -0
  37. package/dist/_internal/forma/world/lowering/component-operations.js +26 -0
  38. package/dist/_internal/forma/world/lowering/components.d.ts +7 -0
  39. package/dist/_internal/forma/world/lowering/components.js +236 -0
  40. package/dist/_internal/forma/world/lowering/connectors.d.ts +4 -0
  41. package/dist/_internal/forma/world/lowering/connectors.js +31 -0
  42. package/dist/_internal/forma/world/lowering/context.d.ts +80 -0
  43. package/dist/_internal/forma/world/lowering/context.js +316 -0
  44. package/dist/_internal/forma/world/lowering/contracts.d.ts +7 -0
  45. package/dist/_internal/forma/world/lowering/contracts.js +73 -0
  46. package/dist/_internal/forma/world/lowering/decisions.d.ts +3 -0
  47. package/dist/_internal/forma/world/lowering/decisions.js +164 -0
  48. package/dist/_internal/forma/world/lowering/derives.d.ts +3 -0
  49. package/dist/_internal/forma/world/lowering/derives.js +22 -0
  50. package/dist/_internal/forma/world/lowering/discretionary.d.ts +7 -0
  51. package/dist/_internal/forma/world/lowering/discretionary.js +15 -0
  52. package/dist/_internal/forma/world/lowering/documents.d.ts +3 -0
  53. package/dist/_internal/forma/world/lowering/documents.js +68 -0
  54. package/dist/_internal/forma/world/lowering/effective.d.ts +5 -0
  55. package/dist/_internal/forma/world/lowering/effective.js +26 -0
  56. package/dist/_internal/forma/world/lowering/entities.d.ts +3 -0
  57. package/dist/_internal/forma/world/lowering/entities.js +43 -0
  58. package/dist/_internal/forma/world/lowering/escalations.d.ts +6 -0
  59. package/dist/_internal/forma/world/lowering/escalations.js +31 -0
  60. package/dist/_internal/forma/world/lowering/evidence.d.ts +3 -0
  61. package/dist/_internal/forma/world/lowering/evidence.js +75 -0
  62. package/dist/_internal/forma/world/lowering/files.d.ts +4 -0
  63. package/dist/_internal/forma/world/lowering/files.js +56 -0
  64. package/dist/_internal/forma/world/lowering/holds.d.ts +6 -0
  65. package/dist/_internal/forma/world/lowering/holds.js +35 -0
  66. package/dist/_internal/forma/world/lowering/index.d.ts +89 -0
  67. package/dist/_internal/forma/world/lowering/index.js +115 -0
  68. package/dist/_internal/forma/world/lowering/interactions.d.ts +7 -0
  69. package/dist/_internal/forma/world/lowering/interactions.js +190 -0
  70. package/dist/_internal/forma/world/lowering/library.d.ts +5 -0
  71. package/dist/_internal/forma/world/lowering/library.js +41 -0
  72. package/dist/_internal/forma/world/lowering/milestones.d.ts +6 -0
  73. package/dist/_internal/forma/world/lowering/milestones.js +17 -0
  74. package/dist/_internal/forma/world/lowering/notices.d.ts +3 -0
  75. package/dist/_internal/forma/world/lowering/notices.js +33 -0
  76. package/dist/_internal/forma/world/lowering/param-bounds.d.ts +15 -0
  77. package/dist/_internal/forma/world/lowering/param-bounds.js +71 -0
  78. package/dist/_internal/forma/world/lowering/policies.d.ts +6 -0
  79. package/dist/_internal/forma/world/lowering/policies.js +95 -0
  80. package/dist/_internal/forma/world/lowering/principals.d.ts +62 -0
  81. package/dist/_internal/forma/world/lowering/principals.js +32 -0
  82. package/dist/_internal/forma/world/lowering/recurrences.d.ts +9 -0
  83. package/dist/_internal/forma/world/lowering/recurrences.js +56 -0
  84. package/dist/_internal/forma/world/lowering/renewal.d.ts +5 -0
  85. package/dist/_internal/forma/world/lowering/renewal.js +21 -0
  86. package/dist/_internal/forma/world/lowering/resources.d.ts +6 -0
  87. package/dist/_internal/forma/world/lowering/resources.js +19 -0
  88. package/dist/_internal/forma/world/lowering/reuse.d.ts +5 -0
  89. package/dist/_internal/forma/world/lowering/reuse.js +75 -0
  90. package/dist/_internal/forma/world/lowering/sources.d.ts +10 -0
  91. package/dist/_internal/forma/world/lowering/sources.js +47 -0
  92. package/dist/_internal/forma/world/lowering/syntax.d.ts +84 -0
  93. package/dist/_internal/forma/world/lowering/syntax.js +94 -0
  94. package/dist/_internal/forma/world/lowering/vaults.d.ts +11 -0
  95. package/dist/_internal/forma/world/lowering/vaults.js +148 -0
  96. package/dist/_internal/forma/world/prelude.generated.d.ts +1 -0
  97. package/dist/_internal/forma/world/prelude.generated.js +2 -0
  98. package/dist/_internal/forma/world/properties.d.ts +9 -0
  99. package/dist/_internal/forma/world/properties.js +387 -0
  100. package/dist/_internal/forma/world/scenarios.d.ts +10 -0
  101. package/dist/_internal/forma/world/scenarios.js +757 -0
  102. package/dist/_internal/forma/world/sensitivity.d.ts +3 -0
  103. package/dist/_internal/forma/world/sensitivity.js +118 -0
  104. package/dist/_internal/forma/world/source-syntax.d.ts +6 -0
  105. package/dist/_internal/forma/world/source-syntax.js +27 -0
  106. package/dist/_internal/forma/world/status-handling.d.ts +3 -0
  107. package/dist/_internal/forma/world/status-handling.js +143 -0
  108. package/dist/_internal/forma/world/surface.d.ts +30 -0
  109. package/dist/_internal/forma/world/surface.js +213 -0
  110. package/dist/_internal/forma/world/table-expressions.d.ts +3 -0
  111. package/dist/_internal/forma/world/table-expressions.js +41 -0
  112. package/dist/_internal/forma-tools/index.d.ts +17 -0
  113. package/dist/_internal/forma-tools/index.js +124 -0
  114. package/dist/_internal/ir-checks/advances.d.ts +7 -0
  115. package/dist/_internal/ir-checks/advances.js +6 -0
  116. package/dist/_internal/ir-checks/agent-reads.d.ts +14 -0
  117. package/dist/_internal/ir-checks/agent-reads.js +118 -0
  118. package/dist/_internal/ir-checks/amendments.d.ts +3 -0
  119. package/dist/_internal/ir-checks/amendments.js +21 -0
  120. package/dist/_internal/ir-checks/canonical-json.d.ts +3 -0
  121. package/dist/_internal/ir-checks/canonical-json.js +85 -0
  122. package/dist/_internal/ir-checks/child-parameters.d.ts +2 -0
  123. package/dist/_internal/ir-checks/child-parameters.js +43 -0
  124. package/dist/_internal/ir-checks/clock-bindings.d.ts +3 -0
  125. package/dist/_internal/ir-checks/clock-bindings.js +43 -0
  126. package/dist/_internal/ir-checks/collect-types.d.ts +14 -0
  127. package/dist/_internal/ir-checks/collect-types.js +34 -0
  128. package/dist/_internal/ir-checks/component-operations.d.ts +4 -0
  129. package/dist/_internal/ir-checks/component-operations.js +23 -0
  130. package/dist/_internal/ir-checks/content-digest.d.ts +4 -0
  131. package/dist/_internal/ir-checks/content-digest.js +78 -0
  132. package/dist/_internal/ir-checks/contract-validation.d.ts +3 -0
  133. package/dist/_internal/ir-checks/contract-validation.js +307 -0
  134. package/dist/_internal/ir-checks/contracts.d.ts +25 -0
  135. package/dist/_internal/ir-checks/contracts.js +80 -0
  136. package/dist/_internal/ir-checks/dates.d.ts +2 -0
  137. package/dist/_internal/ir-checks/dates.js +7 -0
  138. package/dist/_internal/ir-checks/documents.d.ts +3 -0
  139. package/dist/_internal/ir-checks/documents.js +45 -0
  140. package/dist/_internal/ir-checks/evidence.d.ts +20 -0
  141. package/dist/_internal/ir-checks/evidence.js +56 -0
  142. package/dist/_internal/ir-checks/files.d.ts +7 -0
  143. package/dist/_internal/ir-checks/files.js +47 -0
  144. package/dist/_internal/ir-checks/index.d.ts +59 -0
  145. package/dist/_internal/ir-checks/index.js +166 -0
  146. package/dist/_internal/ir-checks/instants.d.ts +7 -0
  147. package/dist/_internal/ir-checks/instants.js +61 -0
  148. package/dist/_internal/ir-checks/notices.d.ts +4 -0
  149. package/dist/_internal/ir-checks/notices.js +58 -0
  150. package/dist/_internal/ir-checks/policy-bounds.d.ts +5 -0
  151. package/dist/_internal/ir-checks/policy-bounds.js +28 -0
  152. package/dist/_internal/ir-checks/principals.d.ts +26 -0
  153. package/dist/_internal/ir-checks/principals.js +162 -0
  154. package/dist/_internal/ir-checks/prior-cycle.d.ts +41 -0
  155. package/dist/_internal/ir-checks/prior-cycle.js +21 -0
  156. package/dist/_internal/ir-checks/read-classification.d.ts +12 -0
  157. package/dist/_internal/ir-checks/read-classification.js +67 -0
  158. package/dist/_internal/ir-checks/read-types.d.ts +2 -0
  159. package/dist/_internal/ir-checks/read-types.js +40 -0
  160. package/dist/_internal/ir-checks/resource-proofs.d.ts +4 -0
  161. package/dist/_internal/ir-checks/resource-proofs.js +98 -0
  162. package/dist/_internal/ir-checks/resources.d.ts +3 -0
  163. package/dist/_internal/ir-checks/resources.js +30 -0
  164. package/dist/_internal/ir-checks/reuse.d.ts +10 -0
  165. package/dist/_internal/ir-checks/reuse.js +99 -0
  166. package/dist/_internal/ir-checks/sealing.d.ts +14 -0
  167. package/dist/_internal/ir-checks/sealing.js +123 -0
  168. package/dist/_internal/ir-checks/sensitive-flow.d.ts +4 -0
  169. package/dist/_internal/ir-checks/sensitive-flow.js +240 -0
  170. package/dist/_internal/ir-checks/sensitivity.d.ts +19 -0
  171. package/dist/_internal/ir-checks/sensitivity.js +133 -0
  172. package/dist/_internal/ir-checks/signatures.d.ts +4 -0
  173. package/dist/_internal/ir-checks/signatures.js +22 -0
  174. package/dist/_internal/ir-checks/vaults.d.ts +10 -0
  175. package/dist/_internal/ir-checks/vaults.js +140 -0
  176. package/dist/_internal/protocol/index.d.ts +1234 -0
  177. package/dist/_internal/protocol/index.js +215 -0
  178. package/dist/_internal/reconciler/action-intents.d.ts +17 -0
  179. package/dist/_internal/reconciler/action-intents.js +161 -0
  180. package/dist/_internal/reconciler/actions.d.ts +7 -0
  181. package/dist/_internal/reconciler/actions.js +134 -0
  182. package/dist/_internal/reconciler/amendments.d.ts +12 -0
  183. package/dist/_internal/reconciler/amendments.js +52 -0
  184. package/dist/_internal/reconciler/basis.d.ts +253 -0
  185. package/dist/_internal/reconciler/basis.js +16 -0
  186. package/dist/_internal/reconciler/bundles.d.ts +22 -0
  187. package/dist/_internal/reconciler/bundles.js +110 -0
  188. package/dist/_internal/reconciler/change-detection.d.ts +5 -0
  189. package/dist/_internal/reconciler/change-detection.js +82 -0
  190. package/dist/_internal/reconciler/collection-rules.d.ts +7 -0
  191. package/dist/_internal/reconciler/collection-rules.js +46 -0
  192. package/dist/_internal/reconciler/collection-state.d.ts +11 -0
  193. package/dist/_internal/reconciler/collection-state.js +62 -0
  194. package/dist/_internal/reconciler/collection-values.d.ts +5 -0
  195. package/dist/_internal/reconciler/collection-values.js +60 -0
  196. package/dist/_internal/reconciler/collections.d.ts +35 -0
  197. package/dist/_internal/reconciler/collections.js +141 -0
  198. package/dist/_internal/reconciler/commands.d.ts +60 -0
  199. package/dist/_internal/reconciler/commands.js +468 -0
  200. package/dist/_internal/reconciler/component-operations.d.ts +48 -0
  201. package/dist/_internal/reconciler/component-operations.js +256 -0
  202. package/dist/_internal/reconciler/context.d.ts +38 -0
  203. package/dist/_internal/reconciler/context.js +44 -0
  204. package/dist/_internal/reconciler/coverage.d.ts +31 -0
  205. package/dist/_internal/reconciler/coverage.js +124 -0
  206. package/dist/_internal/reconciler/dates.d.ts +38 -0
  207. package/dist/_internal/reconciler/dates.js +121 -0
  208. package/dist/_internal/reconciler/decide.d.ts +25 -0
  209. package/dist/_internal/reconciler/decide.js +263 -0
  210. package/dist/_internal/reconciler/decision-evaluation.d.ts +9 -0
  211. package/dist/_internal/reconciler/decision-evaluation.js +67 -0
  212. package/dist/_internal/reconciler/decision-records.d.ts +14 -0
  213. package/dist/_internal/reconciler/decision-records.js +77 -0
  214. package/dist/_internal/reconciler/decision-release.d.ts +3 -0
  215. package/dist/_internal/reconciler/decision-release.js +12 -0
  216. package/dist/_internal/reconciler/dependencies.d.ts +179 -0
  217. package/dist/_internal/reconciler/dependencies.js +372 -0
  218. package/dist/_internal/reconciler/discovery.d.ts +9 -0
  219. package/dist/_internal/reconciler/discovery.js +65 -0
  220. package/dist/_internal/reconciler/document-corrections.d.ts +18 -0
  221. package/dist/_internal/reconciler/document-corrections.js +59 -0
  222. package/dist/_internal/reconciler/documents.d.ts +26 -0
  223. package/dist/_internal/reconciler/documents.js +88 -0
  224. package/dist/_internal/reconciler/effective.d.ts +6 -0
  225. package/dist/_internal/reconciler/effective.js +17 -0
  226. package/dist/_internal/reconciler/escalations.d.ts +4 -0
  227. package/dist/_internal/reconciler/escalations.js +76 -0
  228. package/dist/_internal/reconciler/evaluation.d.ts +56 -0
  229. package/dist/_internal/reconciler/evaluation.js +704 -0
  230. package/dist/_internal/reconciler/evidence-authority.d.ts +6 -0
  231. package/dist/_internal/reconciler/evidence-authority.js +70 -0
  232. package/dist/_internal/reconciler/evidence-history.d.ts +5 -0
  233. package/dist/_internal/reconciler/evidence-history.js +22 -0
  234. package/dist/_internal/reconciler/evidence-validity.d.ts +17 -0
  235. package/dist/_internal/reconciler/evidence-validity.js +135 -0
  236. package/dist/_internal/reconciler/fact-validation.d.ts +5 -0
  237. package/dist/_internal/reconciler/fact-validation.js +49 -0
  238. package/dist/_internal/reconciler/files.d.ts +9 -0
  239. package/dist/_internal/reconciler/files.js +56 -0
  240. package/dist/_internal/reconciler/graph.d.ts +40 -0
  241. package/dist/_internal/reconciler/graph.js +298 -0
  242. package/dist/_internal/reconciler/holds.d.ts +6 -0
  243. package/dist/_internal/reconciler/holds.js +18 -0
  244. package/dist/_internal/reconciler/home-definitions.d.ts +11 -0
  245. package/dist/_internal/reconciler/home-definitions.js +25 -0
  246. package/dist/_internal/reconciler/homes.d.ts +6 -0
  247. package/dist/_internal/reconciler/homes.js +32 -0
  248. package/dist/_internal/reconciler/index.d.ts +42 -0
  249. package/dist/_internal/reconciler/index.js +58 -0
  250. package/dist/_internal/reconciler/instants.d.ts +17 -0
  251. package/dist/_internal/reconciler/instants.js +56 -0
  252. package/dist/_internal/reconciler/interaction-fields.d.ts +10 -0
  253. package/dist/_internal/reconciler/interaction-fields.js +30 -0
  254. package/dist/_internal/reconciler/invariants.d.ts +8 -0
  255. package/dist/_internal/reconciler/invariants.js +34 -0
  256. package/dist/_internal/reconciler/journal.d.ts +3 -0
  257. package/dist/_internal/reconciler/journal.js +4 -0
  258. package/dist/_internal/reconciler/linking.d.ts +10 -0
  259. package/dist/_internal/reconciler/linking.js +259 -0
  260. package/dist/_internal/reconciler/memory.d.ts +32 -0
  261. package/dist/_internal/reconciler/memory.js +190 -0
  262. package/dist/_internal/reconciler/milestones.d.ts +7 -0
  263. package/dist/_internal/reconciler/milestones.js +58 -0
  264. package/dist/_internal/reconciler/missing.d.ts +18 -0
  265. package/dist/_internal/reconciler/missing.js +79 -0
  266. package/dist/_internal/reconciler/model.d.ts +350 -0
  267. package/dist/_internal/reconciler/model.js +9 -0
  268. package/dist/_internal/reconciler/notices.d.ts +14 -0
  269. package/dist/_internal/reconciler/notices.js +80 -0
  270. package/dist/_internal/reconciler/occurrences.d.ts +3 -0
  271. package/dist/_internal/reconciler/occurrences.js +30 -0
  272. package/dist/_internal/reconciler/outputs.d.ts +12 -0
  273. package/dist/_internal/reconciler/outputs.js +132 -0
  274. package/dist/_internal/reconciler/parameters.d.ts +4 -0
  275. package/dist/_internal/reconciler/parameters.js +27 -0
  276. package/dist/_internal/reconciler/policies.d.ts +22 -0
  277. package/dist/_internal/reconciler/policies.js +94 -0
  278. package/dist/_internal/reconciler/policy-edits.d.ts +11 -0
  279. package/dist/_internal/reconciler/policy-edits.js +42 -0
  280. package/dist/_internal/reconciler/policy-linking.d.ts +4 -0
  281. package/dist/_internal/reconciler/policy-linking.js +104 -0
  282. package/dist/_internal/reconciler/principal-types.d.ts +2 -0
  283. package/dist/_internal/reconciler/principal-types.js +38 -0
  284. package/dist/_internal/reconciler/prior-decisions.d.ts +3 -0
  285. package/dist/_internal/reconciler/prior-decisions.js +34 -0
  286. package/dist/_internal/reconciler/projections.d.ts +4 -0
  287. package/dist/_internal/reconciler/projections.js +85 -0
  288. package/dist/_internal/reconciler/proofs.d.ts +9 -0
  289. package/dist/_internal/reconciler/proofs.js +24 -0
  290. package/dist/_internal/reconciler/properties.d.ts +25 -0
  291. package/dist/_internal/reconciler/properties.js +67 -0
  292. package/dist/_internal/reconciler/property-eval.d.ts +5 -0
  293. package/dist/_internal/reconciler/property-eval.js +101 -0
  294. package/dist/_internal/reconciler/property-generator.d.ts +9 -0
  295. package/dist/_internal/reconciler/property-generator.js +288 -0
  296. package/dist/_internal/reconciler/property-shrink.d.ts +14 -0
  297. package/dist/_internal/reconciler/property-shrink.js +183 -0
  298. package/dist/_internal/reconciler/provenance.d.ts +8 -0
  299. package/dist/_internal/reconciler/provenance.js +61 -0
  300. package/dist/_internal/reconciler/reconcile.d.ts +32 -0
  301. package/dist/_internal/reconciler/reconcile.js +164 -0
  302. package/dist/_internal/reconciler/recurrence.d.ts +9 -0
  303. package/dist/_internal/reconciler/recurrence.js +44 -0
  304. package/dist/_internal/reconciler/requirements.d.ts +5 -0
  305. package/dist/_internal/reconciler/requirements.js +331 -0
  306. package/dist/_internal/reconciler/resource-generation.d.ts +9 -0
  307. package/dist/_internal/reconciler/resource-generation.js +17 -0
  308. package/dist/_internal/reconciler/resource-scenarios.d.ts +26 -0
  309. package/dist/_internal/reconciler/resource-scenarios.js +78 -0
  310. package/dist/_internal/reconciler/resources.d.ts +24 -0
  311. package/dist/_internal/reconciler/resources.js +178 -0
  312. package/dist/_internal/reconciler/result-digest.d.ts +13 -0
  313. package/dist/_internal/reconciler/result-digest.js +66 -0
  314. package/dist/_internal/reconciler/reuse.d.ts +16 -0
  315. package/dist/_internal/reconciler/reuse.js +119 -0
  316. package/dist/_internal/reconciler/scenarios.d.ts +32 -0
  317. package/dist/_internal/reconciler/scenarios.js +442 -0
  318. package/dist/_internal/reconciler/scheduling.d.ts +9 -0
  319. package/dist/_internal/reconciler/scheduling.js +203 -0
  320. package/dist/_internal/reconciler/sha256.d.ts +1 -0
  321. package/dist/_internal/reconciler/sha256.js +1 -0
  322. package/dist/_internal/reconciler/signatures.d.ts +13 -0
  323. package/dist/_internal/reconciler/signatures.js +37 -0
  324. package/dist/_internal/reconciler/temporal.d.ts +10 -0
  325. package/dist/_internal/reconciler/temporal.js +46 -0
  326. package/dist/_internal/reconciler/upgrades.d.ts +6 -0
  327. package/dist/_internal/reconciler/upgrades.js +65 -0
  328. package/dist/_internal/reconciler/wire.d.ts +2 -0
  329. package/dist/_internal/reconciler/wire.js +5 -0
  330. package/dist/_internal/reconciler/work.d.ts +32 -0
  331. package/dist/_internal/reconciler/work.js +101 -0
  332. package/dist/_internal/world-ir/schema.generated.d.ts +180 -0
  333. package/dist/_internal/world-ir/schema.generated.js +1127 -0
  334. package/dist/_internal/world-ir/types.generated.d.ts +1011 -0
  335. package/dist/_internal/world-ir/types.generated.js +1 -0
  336. package/dist/authoring.d.ts +9 -0
  337. package/dist/authoring.js +10 -0
  338. package/dist/catalogue.d.ts +20 -0
  339. package/dist/catalogue.js +531 -0
  340. package/dist/cli.d.ts +2 -0
  341. package/dist/cli.js +553 -0
  342. package/dist/codegen.d.ts +6 -0
  343. package/dist/codegen.js +89 -0
  344. package/dist/coverage.d.ts +60 -0
  345. package/dist/coverage.js +128 -0
  346. package/dist/deploy.d.ts +21 -0
  347. package/dist/deploy.js +72 -0
  348. package/dist/diagnostics.d.ts +9 -0
  349. package/dist/diagnostics.js +37 -0
  350. package/dist/diff.d.ts +17 -0
  351. package/dist/diff.js +19 -0
  352. package/dist/durable-object.d.ts +14 -0
  353. package/dist/durable-object.js +30 -0
  354. package/dist/explain.d.ts +113 -0
  355. package/dist/explain.js +225 -0
  356. package/dist/fixes.d.ts +4 -0
  357. package/dist/fixes.js +70 -0
  358. package/dist/fmt.d.ts +12 -0
  359. package/dist/fmt.js +39 -0
  360. package/dist/handle/open.d.ts +18 -0
  361. package/dist/handle/open.js +28 -0
  362. package/dist/handle/protocol.d.ts +12 -0
  363. package/dist/handle/protocol.js +96 -0
  364. package/dist/handle/store.d.ts +31 -0
  365. package/dist/handle/store.js +11 -0
  366. package/dist/handle/types.d.ts +37 -0
  367. package/dist/handle/types.js +1 -0
  368. package/dist/handle/world.d.ts +190 -0
  369. package/dist/handle/world.js +533 -0
  370. package/dist/http.d.ts +3 -0
  371. package/dist/http.js +72 -0
  372. package/dist/impact.d.ts +21 -0
  373. package/dist/impact.js +57 -0
  374. package/dist/index.d.ts +30 -0
  375. package/dist/index.js +43 -0
  376. package/dist/init.d.ts +13 -0
  377. package/dist/init.js +99 -0
  378. package/dist/ir-schema.json +4213 -0
  379. package/dist/lints.d.ts +8 -0
  380. package/dist/lints.js +154 -0
  381. package/dist/lsp.d.ts +14 -0
  382. package/dist/lsp.js +380 -0
  383. package/dist/manual/catalog.d.ts +12 -0
  384. package/dist/manual/catalog.js +23 -0
  385. package/dist/manual/examples.d.ts +15 -0
  386. package/dist/manual/examples.js +39 -0
  387. package/dist/manual/projections.d.ts +77 -0
  388. package/dist/manual/projections.js +344 -0
  389. package/dist/manual/prose.d.ts +19 -0
  390. package/dist/manual/prose.js +215 -0
  391. package/dist/manual/render.d.ts +76 -0
  392. package/dist/manual/render.js +250 -0
  393. package/dist/manual/text.d.ts +7 -0
  394. package/dist/manual/text.js +15 -0
  395. package/dist/mcp.d.ts +32 -0
  396. package/dist/mcp.js +269 -0
  397. package/dist/mutate.d.ts +36 -0
  398. package/dist/mutate.js +123 -0
  399. package/dist/project.d.ts +26 -0
  400. package/dist/project.js +80 -0
  401. package/dist/refine.d.ts +18 -0
  402. package/dist/refine.js +197 -0
  403. package/dist/release/diff.d.ts +45 -0
  404. package/dist/release/diff.js +103 -0
  405. package/dist/release/impact.d.ts +83 -0
  406. package/dist/release/impact.js +214 -0
  407. package/dist/release/nodes.d.ts +20 -0
  408. package/dist/release/nodes.js +118 -0
  409. package/dist/render.d.ts +19 -0
  410. package/dist/render.js +43 -0
  411. package/dist/serve.d.ts +18 -0
  412. package/dist/serve.js +140 -0
  413. package/dist/snapshot.d.ts +19 -0
  414. package/dist/snapshot.js +45 -0
  415. package/dist/sqlite.d.ts +16 -0
  416. package/dist/sqlite.js +151 -0
  417. package/dist/test.d.ts +54 -0
  418. package/dist/test.js +131 -0
  419. package/dist/world.d.ts +7 -0
  420. package/dist/world.js +5 -0
  421. package/docs/authoring/vendor-risk/example.forma +11 -0
  422. package/docs/authoring/vendor-risk/library/vendor.forma +76 -0
  423. package/docs/authoring/vendor-risk/scenarios/reviews.forma +107 -0
  424. package/docs/protocol.md +195 -0
  425. package/docs/reference.md +258 -0
  426. package/package.json +81 -3
@@ -0,0 +1,1127 @@
1
+ // Generated from packages/world-ir/ir.lisp. Run pnpm --filter @worldvm/forma generate-ir.
2
+ import { Schema } from "effect";
3
+ export const Span = Schema.Struct({
4
+ src: Schema.String,
5
+ from: Schema.Number,
6
+ to: Schema.Number,
7
+ line: Schema.Number,
8
+ col: Schema.Number,
9
+ });
10
+ export const TypeRef = Schema.Union([
11
+ Schema.String,
12
+ Schema.Array(Schema.suspend(() => TypeRef)),
13
+ ]);
14
+ export const Expr = Schema.Union([
15
+ Schema.Struct({
16
+ k: Schema.Literal("lit"),
17
+ v: Schema.Union([Schema.Null, Schema.Union([Schema.String, Schema.Number, Schema.Boolean])]),
18
+ at: Schema.suspend(() => Span),
19
+ }),
20
+ Schema.Struct({
21
+ k: Schema.Literal("kw"),
22
+ v: Schema.String,
23
+ at: Schema.suspend(() => Span),
24
+ }),
25
+ Schema.Struct({
26
+ k: Schema.Literal("var"),
27
+ name: Schema.String,
28
+ at: Schema.suspend(() => Span),
29
+ }),
30
+ Schema.Struct({
31
+ k: Schema.Literal("ref"),
32
+ kind: Schema.Union([
33
+ Schema.Literal("evidence"),
34
+ Schema.Literal("calendar"),
35
+ Schema.Literal("decision"),
36
+ Schema.Literal("notice"),
37
+ ]),
38
+ name: Schema.String,
39
+ at: Schema.suspend(() => Span),
40
+ }),
41
+ Schema.Struct({
42
+ k: Schema.Literal("read"),
43
+ role: Schema.String,
44
+ field: Schema.String,
45
+ of: Schema.suspend(() => Expr),
46
+ meta: Schema.Struct({ path: Schema.String }),
47
+ at: Schema.suspend(() => Span),
48
+ }),
49
+ Schema.Struct({
50
+ k: Schema.Literal("attr"),
51
+ attr: Schema.String,
52
+ of: Schema.suspend(() => Expr),
53
+ meta: Schema.Struct({ path: Schema.String, via: Schema.optionalKey(Schema.String) }),
54
+ at: Schema.suspend(() => Span),
55
+ }),
56
+ Schema.Struct({
57
+ k: Schema.Literal("inst"),
58
+ field: Schema.String,
59
+ of: Schema.suspend(() => Expr),
60
+ at: Schema.suspend(() => Span),
61
+ }),
62
+ Schema.Struct({
63
+ k: Schema.Literal("call"),
64
+ fn: Schema.String,
65
+ args: Schema.Array(Schema.suspend(() => Expr)),
66
+ derive: Schema.optionalKey(Schema.Literal(true)),
67
+ at: Schema.suspend(() => Span),
68
+ }),
69
+ Schema.Struct({
70
+ k: Schema.Literal("if"),
71
+ test: Schema.suspend(() => Expr),
72
+ then: Schema.suspend(() => Expr),
73
+ else: Schema.suspend(() => Expr),
74
+ at: Schema.suspend(() => Span),
75
+ }),
76
+ Schema.Struct({
77
+ k: Schema.Literal("fn"),
78
+ params: Schema.Array(Schema.String),
79
+ body: Schema.suspend(() => Expr),
80
+ at: Schema.suspend(() => Span),
81
+ }),
82
+ Schema.Struct({
83
+ k: Schema.Literal("list"),
84
+ items: Schema.Array(Schema.suspend(() => Expr)),
85
+ at: Schema.suspend(() => Span),
86
+ }),
87
+ ]);
88
+ export const FilePolicy = Schema.Struct({
89
+ accept: Schema.NonEmptyArray(Schema.String),
90
+ maxBytes: Schema.Int,
91
+ at: Schema.suspend(() => Span),
92
+ });
93
+ export const Seal = Schema.Struct({
94
+ vault: Schema.String,
95
+ at: Schema.suspend(() => Span),
96
+ });
97
+ export const Field = Schema.Struct({
98
+ name: Schema.String,
99
+ type: Schema.suspend(() => TypeRef),
100
+ file: Schema.optionalKey(Schema.suspend(() => FilePolicy)),
101
+ sealedBy: Schema.optionalKey(Schema.suspend(() => Seal)),
102
+ });
103
+ export const Source = Schema.Struct({
104
+ name: Schema.String,
105
+ doc: Schema.optionalKey(Schema.String),
106
+ kind: Schema.Union([
107
+ Schema.Literal("law"),
108
+ Schema.Literal("regulation"),
109
+ Schema.Literal("guidance"),
110
+ Schema.Literal("framework"),
111
+ Schema.Literal("contract"),
112
+ Schema.Literal("policy"),
113
+ ]),
114
+ jurisdiction: Schema.optionalKey(Schema.String),
115
+ url: Schema.String,
116
+ asOf: Schema.String,
117
+ at: Schema.suspend(() => Span),
118
+ });
119
+ export const Citation = Schema.Struct({
120
+ source: Schema.String,
121
+ clause: Schema.String,
122
+ at: Schema.suspend(() => Span),
123
+ });
124
+ export const SensitiveClass = Schema.Union([
125
+ Schema.Literal("pii"),
126
+ Schema.Literal("financial"),
127
+ Schema.Literal("health"),
128
+ Schema.Literal("immigration"),
129
+ ]);
130
+ export const AgentReadGrant = Schema.Struct({
131
+ class: Schema.suspend(() => SensitiveClass),
132
+ vault: Schema.String,
133
+ at: Schema.suspend(() => Span),
134
+ });
135
+ export const Agent = Schema.Struct({
136
+ name: Schema.String,
137
+ doc: Schema.optionalKey(Schema.String),
138
+ of: Schema.String,
139
+ reads: Schema.NonEmptyArray(Schema.suspend(() => Expr)),
140
+ mayRead: Schema.Array(Schema.suspend(() => AgentReadGrant)),
141
+ at: Schema.suspend(() => Span),
142
+ });
143
+ export const VaultKey = Schema.Struct({
144
+ kind: Schema.Union([Schema.Literal("occurrence"), Schema.Literal("subject")]),
145
+ target: Schema.String,
146
+ at: Schema.suspend(() => Span),
147
+ });
148
+ export const VaultErasure = Schema.Struct({
149
+ kind: Schema.Union([Schema.Literal("held-until-retained"), Schema.Literal("on-request")]),
150
+ at: Schema.suspend(() => Span),
151
+ });
152
+ export const VaultDisposal = Schema.Struct({
153
+ name: Schema.String,
154
+ by: Schema.suspend(() => Expr),
155
+ byKind: Schema.Union([Schema.Literal("individual"), Schema.Literal("group")]),
156
+ approvals: Schema.Int.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(9007199254740991)),
157
+ at: Schema.suspend(() => Span),
158
+ });
159
+ export const Vault = Schema.Struct({
160
+ name: Schema.String,
161
+ doc: Schema.optionalKey(Schema.String),
162
+ key: Schema.suspend(() => VaultKey),
163
+ holds: Schema.NonEmptyArray(Schema.suspend(() => SensitiveClass)),
164
+ retain: Schema.suspend(() => Expr),
165
+ cites: Schema.NonEmptyArray(Schema.suspend(() => Citation)),
166
+ erasure: Schema.suspend(() => VaultErasure),
167
+ dispose: Schema.suspend(() => VaultDisposal),
168
+ at: Schema.suspend(() => Span),
169
+ });
170
+ export const Library = Schema.Struct({
171
+ name: Schema.String,
172
+ doc: Schema.optionalKey(Schema.String),
173
+ version: Schema.String,
174
+ subject: Schema.String,
175
+ digest: Schema.String,
176
+ at: Schema.suspend(() => Span),
177
+ });
178
+ export const TypeAlias = Schema.Struct({
179
+ name: Schema.String,
180
+ type: Schema.suspend(() => TypeRef),
181
+ at: Schema.suspend(() => Span),
182
+ });
183
+ export const Role = Schema.Struct({
184
+ name: Schema.String,
185
+ doc: Schema.optionalKey(Schema.String),
186
+ fields: Schema.Array(Schema.suspend(() => Field)),
187
+ at: Schema.suspend(() => Span),
188
+ });
189
+ export const EntityField = Schema.Struct({
190
+ name: Schema.String,
191
+ type: Schema.suspend(() => TypeRef),
192
+ attr: Schema.String,
193
+ file: Schema.optionalKey(Schema.suspend(() => FilePolicy)),
194
+ sealedBy: Schema.optionalKey(Schema.suspend(() => Seal)),
195
+ });
196
+ export const Binding = Schema.Struct({
197
+ role: Schema.String,
198
+ field: Schema.String,
199
+ path: Schema.Array(Schema.String),
200
+ attrs: Schema.Array(Schema.String),
201
+ at: Schema.suspend(() => Span),
202
+ });
203
+ export const Entity = Schema.Struct({
204
+ name: Schema.String,
205
+ doc: Schema.optionalKey(Schema.String),
206
+ ns: Schema.String,
207
+ nsDeclared: Schema.Boolean,
208
+ display: Schema.optionalKey(Schema.String),
209
+ fields: Schema.Array(Schema.suspend(() => EntityField)),
210
+ implements: Schema.Array(Schema.suspend(() => Binding)),
211
+ at: Schema.suspend(() => Span),
212
+ });
213
+ export const Holiday = Schema.Struct({
214
+ name: Schema.String,
215
+ label: Schema.String,
216
+ month: Schema.Number,
217
+ day: Schema.optionalKey(Schema.Number),
218
+ weekday: Schema.optionalKey(Schema.String),
219
+ nth: Schema.optionalKey(Schema.Number),
220
+ observed: Schema.Boolean,
221
+ });
222
+ export const Calendar = Schema.Struct({
223
+ name: Schema.String,
224
+ doc: Schema.optionalKey(Schema.String),
225
+ version: Schema.String,
226
+ weekend: Schema.Array(Schema.String),
227
+ holidays: Schema.Array(Schema.suspend(() => Holiday)),
228
+ at: Schema.suspend(() => Span),
229
+ });
230
+ export const Derive = Schema.Struct({
231
+ name: Schema.String,
232
+ doc: Schema.optionalKey(Schema.String),
233
+ params: Schema.Array(Schema.suspend(() => Field)),
234
+ returns: Schema.suspend(() => TypeRef),
235
+ body: Schema.suspend(() => Expr),
236
+ at: Schema.suspend(() => Span),
237
+ });
238
+ export const Rule = Schema.Struct({
239
+ name: Schema.String,
240
+ when: Schema.optionalKey(Schema.suspend(() => Expr)),
241
+ requires: Schema.Struct({
242
+ mode: Schema.Union([Schema.Literal("all"), Schema.Literal("one-of")]),
243
+ fields: Schema.Array(Schema.String),
244
+ }),
245
+ at: Schema.suspend(() => Span),
246
+ });
247
+ export const AmendmentPolicy = Schema.Struct({
248
+ at: Schema.suspend(() => Span),
249
+ });
250
+ export const AmendmentInput = Schema.Struct({
251
+ previous: Schema.String,
252
+ reason: Schema.String,
253
+ });
254
+ export const SignaturePolicy = Schema.Struct({
255
+ consent: Schema.String,
256
+ intent: Schema.String,
257
+ });
258
+ export const SignatureInput = Schema.Struct({
259
+ consent: Schema.Boolean,
260
+ intent: Schema.Boolean,
261
+ method: Schema.String,
262
+ device: Schema.String,
263
+ });
264
+ export const Evidence = Schema.Struct({
265
+ name: Schema.String,
266
+ doc: Schema.optionalKey(Schema.String),
267
+ of: Schema.String,
268
+ label: Schema.optionalKey(Schema.String),
269
+ fields: Schema.Array(Schema.suspend(() => Field)),
270
+ sealedBy: Schema.optionalKey(Schema.suspend(() => Seal)),
271
+ expires: Schema.optionalKey(Schema.suspend(() => Expr)),
272
+ rules: Schema.Array(Schema.suspend(() => Rule)),
273
+ amend: Schema.optionalKey(Schema.suspend(() => AmendmentPolicy)),
274
+ attest: Schema.optionalKey(Schema.Struct({
275
+ signer: Schema.String,
276
+ covers: Schema.String,
277
+ method: Schema.String,
278
+ audit: Schema.optionalKey(Schema.suspend(() => SignaturePolicy)),
279
+ })),
280
+ at: Schema.suspend(() => Span),
281
+ });
282
+ export const InteractionBinding = Schema.Struct({
283
+ field: Schema.String,
284
+ from: Schema.optionalKey(Schema.suspend(() => Expr)),
285
+ target: Schema.optionalKey(Schema.suspend(() => Expr)),
286
+ });
287
+ export const Interaction = Schema.Struct({
288
+ name: Schema.String,
289
+ doc: Schema.optionalKey(Schema.String),
290
+ actor: Schema.String,
291
+ produces: Schema.String,
292
+ binds: Schema.Array(Schema.suspend(() => InteractionBinding)),
293
+ fixes: Schema.optionalKey(Schema.Array(Schema.Struct({
294
+ field: Schema.String,
295
+ value: Schema.Union([Schema.String, Schema.Number, Schema.Boolean]),
296
+ }))),
297
+ layout: Schema.optionalKey(Schema.String),
298
+ at: Schema.suspend(() => Span),
299
+ });
300
+ export const LayoutItem = Schema.Union([
301
+ Schema.Struct({
302
+ kind: Schema.Literal("field"),
303
+ name: Schema.String,
304
+ label: Schema.optionalKey(Schema.String),
305
+ showWhen: Schema.optionalKey(Schema.suspend(() => Expr)),
306
+ options: Schema.optionalKey(Schema.Array(Schema.Struct({ value: Schema.String, label: Schema.String }))),
307
+ at: Schema.suspend(() => Span),
308
+ }),
309
+ Schema.Struct({
310
+ kind: Schema.Literal("group"),
311
+ name: Schema.String,
312
+ label: Schema.optionalKey(Schema.String),
313
+ showWhen: Schema.optionalKey(Schema.suspend(() => Expr)),
314
+ items: Schema.Array(Schema.suspend(() => LayoutItem)),
315
+ at: Schema.suspend(() => Span),
316
+ }),
317
+ Schema.Struct({
318
+ kind: Schema.Literal("widget"),
319
+ name: Schema.String,
320
+ at: Schema.suspend(() => Span),
321
+ }),
322
+ Schema.Struct({
323
+ kind: Schema.Literal("sign"),
324
+ at: Schema.suspend(() => Span),
325
+ }),
326
+ ]);
327
+ export const Layout = Schema.Struct({
328
+ name: Schema.String,
329
+ doc: Schema.optionalKey(Schema.String),
330
+ steps: Schema.Array(Schema.Struct({
331
+ name: Schema.String,
332
+ label: Schema.optionalKey(Schema.String),
333
+ items: Schema.Array(Schema.suspend(() => LayoutItem)),
334
+ at: Schema.suspend(() => Span),
335
+ })),
336
+ at: Schema.suspend(() => Span),
337
+ });
338
+ export const Connector = Schema.Struct({
339
+ name: Schema.String,
340
+ doc: Schema.optionalKey(Schema.String),
341
+ capabilities: Schema.Array(Schema.String),
342
+ signals: Schema.Array(Schema.String),
343
+ owns: Schema.Array(Schema.String),
344
+ at: Schema.suspend(() => Span),
345
+ });
346
+ export const Machine = Schema.Struct({
347
+ name: Schema.String,
348
+ doc: Schema.optionalKey(Schema.String),
349
+ signal: Schema.String,
350
+ initial: Schema.String,
351
+ final: Schema.Array(Schema.String),
352
+ states: Schema.Array(Schema.Struct({ name: Schema.String, label: Schema.String })),
353
+ transitions: Schema.Array(Schema.Struct({ from: Schema.String, to: Schema.String })),
354
+ at: Schema.suspend(() => Span),
355
+ });
356
+ export const InputHome = Schema.Struct({
357
+ kind: Schema.Literal("input"),
358
+ path: Schema.NonEmptyArray(Schema.String),
359
+ });
360
+ export const Home = Schema.suspend(() => InputHome);
361
+ export const Milestone = Schema.Struct({
362
+ name: Schema.String,
363
+ label: Schema.optionalKey(Schema.String),
364
+ when: Schema.suspend(() => Expr),
365
+ at: Schema.suspend(() => Span),
366
+ });
367
+ export const DayOffset = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(9007199254740991));
368
+ export const Escalation = Schema.Struct({
369
+ afterDays: Schema.suspend(() => DayOffset),
370
+ kind: Schema.Union([Schema.Literal("notify"), Schema.Literal("reassign")]),
371
+ who: Schema.suspend(() => Expr),
372
+ whoKind: Schema.optionalKey(Schema.Union([Schema.Literal("entity"), Schema.Literal("group")])),
373
+ at: Schema.suspend(() => Span),
374
+ });
375
+ export const Hold = Schema.Struct({
376
+ name: Schema.String,
377
+ label: Schema.optionalKey(Schema.String),
378
+ while: Schema.suspend(() => Expr),
379
+ pauses: Schema.NonEmptyArray(Schema.Union([
380
+ Schema.Literal("dispatch"),
381
+ Schema.Literal("remind"),
382
+ Schema.Literal("escalate"),
383
+ ])),
384
+ cites: Schema.optionalKey(Schema.Array(Schema.suspend(() => Citation))),
385
+ at: Schema.suspend(() => Span),
386
+ });
387
+ export const Accepts = Schema.Struct({
388
+ kind: Schema.Literal("prior-cycle"),
389
+ from: Schema.optionalKey(Schema.String),
390
+ with: Schema.optionalKey(Schema.String),
391
+ within: Schema.optionalKey(Schema.suspend(() => Expr)),
392
+ confirm: Schema.optionalKey(Schema.suspend(() => Expr)),
393
+ label: Schema.optionalKey(Schema.String),
394
+ });
395
+ export const Recurrence = Schema.Struct({
396
+ every: Schema.Struct({
397
+ n: Schema.Int.check(Schema.isGreaterThan(0)),
398
+ unit: Schema.Union([Schema.Literal("days"), Schema.Literal("years")]),
399
+ }),
400
+ from: Schema.suspend(() => Expr),
401
+ at: Schema.suspend(() => Span),
402
+ });
403
+ export const Effective = Schema.Union([
404
+ Schema.Struct({
405
+ from: Schema.String.check(Schema.makeFilter((value) => /^\d{4}-\d{2}-\d{2}$/.test(value) &&
406
+ !Number.isNaN(globalThis.Date.parse(value + "T00:00:00.000Z")) &&
407
+ new globalThis.Date(value + "T00:00:00.000Z").toISOString().slice(0, 10) === value)),
408
+ until: Schema.optionalKey(Schema.String.check(Schema.makeFilter((value) => /^\d{4}-\d{2}-\d{2}$/.test(value) &&
409
+ !Number.isNaN(globalThis.Date.parse(value + "T00:00:00.000Z")) &&
410
+ new globalThis.Date(value + "T00:00:00.000Z").toISOString().slice(0, 10) === value))),
411
+ at: Schema.suspend(() => Span),
412
+ }),
413
+ Schema.Struct({
414
+ from: Schema.optionalKey(Schema.String.check(Schema.makeFilter((value) => /^\d{4}-\d{2}-\d{2}$/.test(value) &&
415
+ !Number.isNaN(globalThis.Date.parse(value + "T00:00:00.000Z")) &&
416
+ new globalThis.Date(value + "T00:00:00.000Z").toISOString().slice(0, 10) === value))),
417
+ until: Schema.String.check(Schema.makeFilter((value) => /^\d{4}-\d{2}-\d{2}$/.test(value) &&
418
+ !Number.isNaN(globalThis.Date.parse(value + "T00:00:00.000Z")) &&
419
+ new globalThis.Date(value + "T00:00:00.000Z").toISOString().slice(0, 10) === value)),
420
+ at: Schema.suspend(() => Span),
421
+ }),
422
+ ]);
423
+ export const RenewalWindow = Schema.Struct({
424
+ n: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
425
+ unit: Schema.Union([Schema.Literal("days"), Schema.Literal("years")]),
426
+ at: Schema.suspend(() => Span),
427
+ });
428
+ export const Reuse = Schema.Struct({
429
+ scope: Schema.NonEmptyArray(Schema.suspend(() => Expr)),
430
+ within: Schema.suspend(() => ConfirmationWindow),
431
+ confirm: Schema.optionalKey(Schema.suspend(() => Expr)),
432
+ confirmKind: Schema.optionalKey(Schema.Union([Schema.Literal("entity"), Schema.Literal("group")])),
433
+ at: Schema.suspend(() => Span),
434
+ });
435
+ export const Notice = Schema.Struct({
436
+ name: Schema.String,
437
+ doc: Schema.optionalKey(Schema.String),
438
+ of: Schema.String,
439
+ document: Schema.String,
440
+ to: Schema.suspend(() => Expr),
441
+ sealedBy: Schema.optionalKey(Schema.suspend(() => Seal)),
442
+ at: Schema.suspend(() => Span),
443
+ });
444
+ export const DocumentField = Schema.Struct({
445
+ label: Schema.String,
446
+ evidence: Schema.String,
447
+ field: Schema.String,
448
+ at: Schema.suspend(() => Span),
449
+ });
450
+ export const Document = Schema.Struct({
451
+ name: Schema.String,
452
+ doc: Schema.optionalKey(Schema.String),
453
+ of: Schema.String,
454
+ resource: Schema.optionalKey(Schema.Struct({ name: Schema.String, at: Schema.suspend(() => Span) })),
455
+ sources: Schema.NonEmptyArray(Schema.String),
456
+ edition: Schema.String,
457
+ effective: Schema.suspend(() => Effective),
458
+ title: Schema.String,
459
+ fields: Schema.NonEmptyArray(Schema.suspend(() => DocumentField)),
460
+ sealedBy: Schema.optionalKey(Schema.suspend(() => Seal)),
461
+ at: Schema.suspend(() => Span),
462
+ });
463
+ export const Requirement = Schema.Struct({
464
+ discretionary: Schema.optionalKey(Schema.String),
465
+ escalate: Schema.optionalKey(Schema.Array(Schema.suspend(() => Escalation))),
466
+ name: Schema.String,
467
+ label: Schema.optionalKey(Schema.String),
468
+ appliesWhen: Schema.optionalKey(Schema.suspend(() => Expr)),
469
+ satisfiedBy: Schema.suspend(() => Expr),
470
+ cites: Schema.optionalKey(Schema.Array(Schema.suspend(() => Citation))),
471
+ accepts: Schema.optionalKey(Schema.suspend(() => Accepts)),
472
+ reuse: Schema.optionalKey(Schema.suspend(() => Reuse)),
473
+ cycle: Schema.optionalKey(Schema.suspend(() => Expr)),
474
+ recur: Schema.optionalKey(Schema.suspend(() => Recurrence)),
475
+ effective: Schema.optionalKey(Schema.suspend(() => Effective)),
476
+ due: Schema.optionalKey(Schema.suspend(() => Expr)),
477
+ remind: Schema.optionalKey(Schema.suspend(() => Expr)),
478
+ renewWithin: Schema.optionalKey(Schema.suspend(() => RenewalWindow)),
479
+ at: Schema.suspend(() => Span),
480
+ });
481
+ export const Via = Schema.Union([
482
+ Schema.Struct({ kind: Schema.Literal("interaction"), name: Schema.String }),
483
+ Schema.Struct({
484
+ kind: Schema.Literal("connector"),
485
+ connector: Schema.String,
486
+ capability: Schema.String,
487
+ }),
488
+ ]);
489
+ export const Action = Schema.Struct({
490
+ assigneeKind: Schema.optionalKey(Schema.Union([Schema.Literal("entity"), Schema.Literal("group")])),
491
+ dispatch: Schema.optionalKey(Schema.Union([Schema.Literal("auto"), Schema.Literal("claim"), Schema.Literal("manual")])),
492
+ onIneligible: Schema.optionalKey(Schema.Union([Schema.Literal("withdraw"), Schema.Literal("keep"), Schema.Literal("review")])),
493
+ name: Schema.String,
494
+ label: Schema.optionalKey(Schema.String),
495
+ advances: Schema.Union([Schema.String, Schema.NonEmptyArray(Schema.String)]),
496
+ needs: Schema.Array(Schema.Struct({ expr: Schema.suspend(() => Expr), text: Schema.String })),
497
+ assignee: Schema.optionalKey(Schema.suspend(() => Expr)),
498
+ via: Schema.suspend(() => Via),
499
+ idempotency: Schema.optionalKey(Schema.Array(Schema.suspend(() => Expr))),
500
+ at: Schema.suspend(() => Span),
501
+ });
502
+ export const Slot = Schema.Struct({
503
+ discretionary: Schema.optionalKey(Schema.String),
504
+ mode: Schema.Union([Schema.Literal("child"), Schema.Literal("attach")]),
505
+ name: Schema.String,
506
+ component: Schema.String,
507
+ bind: Schema.Array(Schema.Struct({ input: Schema.String, expr: Schema.suspend(() => Expr) })),
508
+ with: Schema.optionalKey(Schema.NonEmptyArray(Schema.Struct({
509
+ name: Schema.String,
510
+ value: Schema.suspend(() => PolicyNumber),
511
+ at: Schema.suspend(() => Span),
512
+ }))),
513
+ appliesWhen: Schema.optionalKey(Schema.suspend(() => Expr)),
514
+ at: Schema.suspend(() => Span),
515
+ });
516
+ export const Output = Schema.Struct({
517
+ name: Schema.String,
518
+ label: Schema.optionalKey(Schema.String),
519
+ op: Schema.Union([
520
+ Schema.Literal("all-of"),
521
+ Schema.Literal("any-of"),
522
+ Schema.Literal("status-of"),
523
+ ]),
524
+ paths: Schema.Array(Schema.Struct({
525
+ segments: Schema.Array(Schema.String),
526
+ at: Schema.suspend(() => Span),
527
+ })),
528
+ at: Schema.suspend(() => Span),
529
+ });
530
+ export const PolicyNumber = Schema.Struct({
531
+ n: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(9007199254740991)),
532
+ unit: Schema.Union([
533
+ Schema.Literal("integer"),
534
+ Schema.Literal("days"),
535
+ Schema.Literal("years"),
536
+ Schema.Literal("hours"),
537
+ Schema.Literal("minutes"),
538
+ ]),
539
+ });
540
+ export const ParamBound = Schema.Struct({
541
+ name: Schema.String,
542
+ default: Schema.suspend(() => PolicyNumber),
543
+ min: Schema.suspend(() => PolicyNumber),
544
+ max: Schema.suspend(() => PolicyNumber),
545
+ tighten: Schema.Union([Schema.Literal("lower"), Schema.Literal("higher")]),
546
+ at: Schema.suspend(() => Span),
547
+ });
548
+ export const AccountPolicy = Schema.Struct({
549
+ name: Schema.String,
550
+ doc: Schema.String,
551
+ of: Schema.String,
552
+ cites: Schema.NonEmptyArray(Schema.suspend(() => Citation)),
553
+ when: Schema.optionalKey(Schema.suspend(() => Expr)),
554
+ require: Schema.optionalKey(Schema.suspend(() => Expr)),
555
+ params: Schema.Array(Schema.Struct({
556
+ name: Schema.String,
557
+ value: Schema.suspend(() => PolicyNumber),
558
+ at: Schema.suspend(() => Span),
559
+ })),
560
+ assign: Schema.Array(Schema.Struct({
561
+ action: Schema.String,
562
+ assignee: Schema.suspend(() => Expr),
563
+ assigneeKind: Schema.Union([Schema.Literal("entity"), Schema.Literal("group")]),
564
+ at: Schema.suspend(() => Span),
565
+ })),
566
+ effective: Schema.optionalKey(Schema.suspend(() => Effective)),
567
+ at: Schema.suspend(() => Span),
568
+ });
569
+ export const ResourceCall = Schema.Struct({
570
+ connector: Schema.String,
571
+ capability: Schema.String,
572
+ at: Schema.suspend(() => Span),
573
+ });
574
+ export const Resource = Schema.Struct({
575
+ name: Schema.String,
576
+ acquire: Schema.suspend(() => ResourceCall),
577
+ release: Schema.suspend(() => ResourceCall),
578
+ releaseWhen: Schema.suspend(() => Expr),
579
+ at: Schema.suspend(() => Span),
580
+ });
581
+ export const Component = Schema.Struct({
582
+ library: Schema.optionalKey(Schema.String),
583
+ operations: Schema.optionalKey(Schema.Array(Schema.String)),
584
+ milestones: Schema.optionalKey(Schema.Array(Schema.suspend(() => Milestone))),
585
+ holds: Schema.optionalKey(Schema.Array(Schema.suspend(() => Hold))),
586
+ resources: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => Resource))),
587
+ name: Schema.String,
588
+ doc: Schema.optionalKey(Schema.String),
589
+ key: Schema.Array(Schema.String),
590
+ home: Schema.suspend(() => Home),
591
+ inputs: Schema.Array(Schema.suspend(() => Field)),
592
+ params: Schema.Array(Schema.suspend(() => Field)),
593
+ paramBounds: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => ParamBound))),
594
+ cycle: Schema.optionalKey(Schema.suspend(() => Expr)),
595
+ requirements: Schema.Array(Schema.suspend(() => Requirement)),
596
+ actions: Schema.Array(Schema.suspend(() => Action)),
597
+ slots: Schema.Array(Schema.suspend(() => Slot)),
598
+ outputs: Schema.Array(Schema.suspend(() => Output)),
599
+ machines: Schema.Array(Schema.Struct({
600
+ name: Schema.String,
601
+ protocol: Schema.String,
602
+ at: Schema.suspend(() => Span),
603
+ })),
604
+ invariants: Schema.Array(Schema.Struct({
605
+ name: Schema.String,
606
+ cites: Schema.optionalKey(Schema.Array(Schema.suspend(() => Citation))),
607
+ forbids: Schema.Struct({
608
+ action: Schema.String,
609
+ subject: Schema.suspend(() => Expr),
610
+ }),
611
+ while: Schema.suspend(() => Expr),
612
+ at: Schema.suspend(() => Span),
613
+ })),
614
+ retention: Schema.optionalKey(Schema.Struct({
615
+ until: Schema.suspend(() => Expr),
616
+ disposal: Schema.String,
617
+ cites: Schema.optionalKey(Schema.Array(Schema.suspend(() => Citation))),
618
+ at: Schema.suspend(() => Span),
619
+ })),
620
+ at: Schema.suspend(() => Span),
621
+ });
622
+ export const Account = Schema.Struct({
623
+ name: Schema.String,
624
+ doc: Schema.optionalKey(Schema.String),
625
+ requires: Schema.Array(Schema.Struct({ library: Schema.String, version: Schema.String })),
626
+ package: Schema.Struct({
627
+ name: Schema.String,
628
+ version: Schema.optionalKey(Schema.String),
629
+ digest: Schema.String,
630
+ }),
631
+ params: Schema.Array(Schema.Struct({ name: Schema.String, value: Schema.suspend(() => Expr) })),
632
+ policies: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => AccountPolicy))),
633
+ upgrade: Schema.Union([
634
+ Schema.Literal("open-only"),
635
+ Schema.Literal("review"),
636
+ Schema.Literal("next-cycle"),
637
+ ]),
638
+ forEach: Schema.Array(Schema.Struct({ role: Schema.String, component: Schema.String })),
639
+ at: Schema.suspend(() => Span),
640
+ });
641
+ export const ScenarioValue = Schema.Union([
642
+ Schema.Struct({
643
+ k: Schema.Literal("literal"),
644
+ value: Schema.Union([Schema.String, Schema.Number, Schema.Boolean, Schema.Null]),
645
+ at: Schema.suspend(() => Span),
646
+ }),
647
+ Schema.Struct({
648
+ k: Schema.Literal("entity"),
649
+ name: Schema.String,
650
+ at: Schema.suspend(() => Span),
651
+ }),
652
+ Schema.Struct({
653
+ k: Schema.Literal("instance"),
654
+ component: Schema.String,
655
+ key: Schema.Array(Schema.suspend(() => ScenarioValue)),
656
+ cycle: Schema.optionalKey(Schema.Int.check(Schema.isGreaterThan(0))),
657
+ at: Schema.suspend(() => Span),
658
+ }),
659
+ ]);
660
+ export const ScenarioInstance = Schema.Struct({
661
+ k: Schema.Literal("instance"),
662
+ component: Schema.String,
663
+ key: Schema.Array(Schema.suspend(() => ScenarioValue)),
664
+ cycle: Schema.optionalKey(Schema.Int.check(Schema.isGreaterThan(0))),
665
+ at: Schema.suspend(() => Span),
666
+ });
667
+ export const ScenarioStatus = Schema.Union([
668
+ Schema.Literal("Unknown"),
669
+ Schema.Literal("NotApplicable"),
670
+ Schema.Literal("Open"),
671
+ Schema.Literal("Overdue"),
672
+ Schema.Literal("Satisfied"),
673
+ Schema.Literal("Waived"),
674
+ ]);
675
+ export const ScenarioExpect = Schema.Union([
676
+ Schema.Struct({
677
+ kind: Schema.Literal("resource"),
678
+ target: Schema.suspend(() => ScenarioInstance),
679
+ name: Schema.String,
680
+ expected: Schema.Union([
681
+ Schema.Literal("acquire"),
682
+ Schema.Literal("release"),
683
+ Schema.Literal("acquiring"),
684
+ Schema.Literal("acquired"),
685
+ Schema.Literal("releasing"),
686
+ Schema.Literal("released"),
687
+ Schema.Literal("failed"),
688
+ Schema.Literal("uncertain"),
689
+ Schema.Literal("timed-out"),
690
+ Schema.Literal("waiting"),
691
+ Schema.Literal("unknown"),
692
+ Schema.Literal("absent"),
693
+ ]),
694
+ at: Schema.suspend(() => Span),
695
+ }),
696
+ Schema.Struct({
697
+ kind: Schema.Literal("retention"),
698
+ target: Schema.suspend(() => ScenarioInstance),
699
+ name: Schema.Literal("retention"),
700
+ field: Schema.Union([Schema.Literal("until"), Schema.Literal("eligible")]),
701
+ expected: Schema.Union([Schema.String, Schema.Boolean, Schema.Null]),
702
+ at: Schema.suspend(() => Span),
703
+ }),
704
+ Schema.Struct({
705
+ kind: Schema.Literal("property"),
706
+ name: Schema.String,
707
+ binding: Schema.String,
708
+ expected: Schema.Boolean,
709
+ at: Schema.suspend(() => Span),
710
+ }),
711
+ Schema.Struct({
712
+ kind: Schema.Literal("work"),
713
+ target: Schema.suspend(() => ScenarioInstance),
714
+ name: Schema.String,
715
+ expected: Schema.Union([
716
+ Schema.Literal("eligible"),
717
+ Schema.Literal("waiting"),
718
+ Schema.Literal("dispatched"),
719
+ Schema.Literal("held"),
720
+ Schema.Literal("absent"),
721
+ ]),
722
+ at: Schema.suspend(() => Span),
723
+ }),
724
+ Schema.Struct({
725
+ kind: Schema.Literal("why"),
726
+ target: Schema.suspend(() => ScenarioInstance),
727
+ name: Schema.String,
728
+ expected: Schema.String,
729
+ at: Schema.suspend(() => Span),
730
+ }),
731
+ Schema.Struct({
732
+ kind: Schema.Literal("blocked"),
733
+ target: Schema.suspend(() => ScenarioInstance),
734
+ name: Schema.String,
735
+ expected: Schema.Boolean,
736
+ at: Schema.suspend(() => Span),
737
+ }),
738
+ Schema.Struct({
739
+ kind: Schema.Literal("rejected"),
740
+ command: Schema.Int.check(Schema.isGreaterThan(0)),
741
+ expected: Schema.Union([Schema.String, Schema.Boolean]),
742
+ at: Schema.suspend(() => Span),
743
+ }),
744
+ Schema.Struct({
745
+ kind: Schema.Literal("status"),
746
+ target: Schema.suspend(() => ScenarioInstance),
747
+ name: Schema.String,
748
+ expected: Schema.suspend(() => ScenarioStatus),
749
+ at: Schema.suspend(() => Span),
750
+ }),
751
+ Schema.Struct({
752
+ kind: Schema.Literal("due"),
753
+ target: Schema.suspend(() => ScenarioInstance),
754
+ name: Schema.String,
755
+ expected: Schema.Union([Schema.String, Schema.Null]),
756
+ at: Schema.suspend(() => Span),
757
+ }),
758
+ ]);
759
+ export const ScenarioField = Schema.Struct({
760
+ name: Schema.String,
761
+ value: Schema.suspend(() => ScenarioValue),
762
+ at: Schema.suspend(() => Span),
763
+ });
764
+ export const ScenarioFields = Schema.Array(Schema.suspend(() => ScenarioField));
765
+ export const ScenarioRecord = Schema.Union([
766
+ Schema.Struct({
767
+ target: Schema.suspend(() => ScenarioInstance),
768
+ by: Schema.suspend(() => ScenarioValue),
769
+ date: Schema.optionalKey(Schema.String),
770
+ at: Schema.suspend(() => Span),
771
+ kind: Schema.Literal("evidence"),
772
+ evidence: Schema.String,
773
+ requirement: Schema.String,
774
+ requirementCycle: Schema.optionalKey(Schema.Int.check(Schema.isGreaterThan(0))),
775
+ status: Schema.Union([
776
+ Schema.Literal("submitted"),
777
+ Schema.Literal("attested"),
778
+ Schema.Literal("superseded"),
779
+ ]),
780
+ values: Schema.suspend(() => ScenarioFields),
781
+ }),
782
+ Schema.Struct({
783
+ target: Schema.suspend(() => ScenarioInstance),
784
+ by: Schema.suspend(() => ScenarioValue),
785
+ date: Schema.optionalKey(Schema.String),
786
+ at: Schema.suspend(() => Span),
787
+ kind: Schema.Literal("signal"),
788
+ machine: Schema.String,
789
+ state: Schema.String,
790
+ }),
791
+ ]);
792
+ export const ScenarioCommand = Schema.Union([
793
+ Schema.Struct({
794
+ kind: Schema.Literal("resource"),
795
+ target: Schema.suspend(() => ScenarioInstance),
796
+ name: Schema.String,
797
+ phase: Schema.Union([Schema.Literal("acquire"), Schema.Literal("release")]),
798
+ handle: Schema.String,
799
+ state: Schema.optionalKey(Schema.String),
800
+ by: Schema.suspend(() => ScenarioValue),
801
+ at: Schema.suspend(() => Span),
802
+ }),
803
+ Schema.Struct({
804
+ kind: Schema.Literal("decide"),
805
+ target: Schema.suspend(() => ScenarioInstance),
806
+ decision: Schema.String,
807
+ by: Schema.suspend(() => ScenarioValue),
808
+ id: Schema.optionalKey(Schema.String),
809
+ revoke: Schema.optionalKey(Schema.String),
810
+ reason: Schema.optionalKey(Schema.Union([Schema.Null, Schema.Union([Schema.String, Schema.Number, Schema.Boolean])])),
811
+ at: Schema.suspend(() => Span),
812
+ }),
813
+ Schema.suspend(() => ScenarioRecord),
814
+ Schema.Struct({
815
+ kind: Schema.Literal("accept"),
816
+ target: Schema.suspend(() => ScenarioInstance),
817
+ requirement: Schema.String,
818
+ decision: Schema.Union([Schema.Literal("accepted"), Schema.Literal("declined")]),
819
+ by: Schema.suspend(() => ScenarioValue),
820
+ id: Schema.optionalKey(Schema.String),
821
+ revoke: Schema.optionalKey(Schema.String),
822
+ reason: Schema.optionalKey(Schema.Union([Schema.Null, Schema.Union([Schema.String, Schema.Number, Schema.Boolean])])),
823
+ at: Schema.suspend(() => Span),
824
+ }),
825
+ Schema.Struct({
826
+ kind: Schema.Literal("set"),
827
+ entity: Schema.String,
828
+ commandKind: Schema.optionalKey(Schema.String),
829
+ subject: Schema.optionalKey(Schema.String),
830
+ field: Schema.String,
831
+ value: Schema.suspend(() => ScenarioValue),
832
+ by: Schema.suspend(() => ScenarioValue),
833
+ at: Schema.suspend(() => Span),
834
+ }),
835
+ Schema.Struct({
836
+ kind: Schema.Literal("perform"),
837
+ target: Schema.suspend(() => ScenarioInstance),
838
+ action: Schema.String,
839
+ by: Schema.suspend(() => ScenarioValue),
840
+ unsigned: Schema.Boolean,
841
+ signature: Schema.optionalKey(Schema.suspend(() => SignatureInput)),
842
+ amend: Schema.optionalKey(Schema.suspend(() => AmendmentInput)),
843
+ values: Schema.suspend(() => ScenarioFields),
844
+ at: Schema.suspend(() => Span),
845
+ }),
846
+ ]);
847
+ export const ScenarioActor = Schema.Struct({
848
+ name: Schema.String,
849
+ kind: Schema.Union([Schema.Literal("human"), Schema.Literal("agent")]),
850
+ groups: Schema.Array(Schema.String),
851
+ at: Schema.suspend(() => Span),
852
+ });
853
+ export const ScenarioEntity = Schema.Struct({
854
+ name: Schema.String,
855
+ entity: Schema.String,
856
+ fields: Schema.Array(Schema.Struct({
857
+ name: Schema.String,
858
+ value: Schema.suspend(() => ScenarioValue),
859
+ at: Schema.suspend(() => Span),
860
+ })),
861
+ at: Schema.suspend(() => Span),
862
+ });
863
+ export const ScenarioFile = Schema.Struct({
864
+ home: Schema.String,
865
+ digest: Schema.String,
866
+ mediaType: Schema.String,
867
+ size: Schema.Int,
868
+ scan: Schema.Union([
869
+ Schema.Literal("pending"),
870
+ Schema.Literal("clean"),
871
+ Schema.Literal("rejected"),
872
+ ]),
873
+ redacted: Schema.Boolean,
874
+ date: Schema.optionalKey(Schema.String),
875
+ at: Schema.suspend(() => Span),
876
+ });
877
+ export const Scenario = Schema.Struct({
878
+ name: Schema.String,
879
+ doc: Schema.optionalKey(Schema.String),
880
+ world: Schema.String,
881
+ given: Schema.Array(Schema.suspend(() => ScenarioEntity)),
882
+ files: Schema.optionalKey(Schema.Array(Schema.suspend(() => ScenarioFile))),
883
+ actors: Schema.optionalKey(Schema.Array(Schema.suspend(() => ScenarioActor))),
884
+ records: Schema.optionalKey(Schema.Array(Schema.suspend(() => ScenarioRecord))),
885
+ steps: Schema.Array(Schema.Struct({
886
+ kind: Schema.Literal("at"),
887
+ date: Schema.String,
888
+ expects: Schema.Array(Schema.suspend(() => ScenarioExpect)),
889
+ commands: Schema.optionalKey(Schema.Array(Schema.suspend(() => ScenarioCommand))),
890
+ at: Schema.suspend(() => Span),
891
+ })),
892
+ at: Schema.suspend(() => Span),
893
+ });
894
+ export const PropertyTarget = Schema.Struct({
895
+ component: Schema.String,
896
+ key: Schema.Array(Schema.suspend(() => PropertyExpr)),
897
+ cycle: Schema.optionalKey(Schema.Int.check(Schema.isGreaterThan(0))),
898
+ attachedTo: Schema.optionalKey(Schema.suspend(() => PropertyExpr)),
899
+ at: Schema.suspend(() => Span),
900
+ });
901
+ export const PropertyStatus = Schema.Struct({
902
+ k: Schema.Literal("status"),
903
+ target: Schema.suspend(() => PropertyTarget),
904
+ name: Schema.String,
905
+ at: Schema.suspend(() => Span),
906
+ });
907
+ export const PropertyOperator = Schema.Union([
908
+ Schema.Literal("implies"),
909
+ Schema.Literal("and"),
910
+ Schema.Literal("or"),
911
+ Schema.Literal("not"),
912
+ Schema.Literal("="),
913
+ Schema.Literal("!="),
914
+ Schema.Literal("<"),
915
+ Schema.Literal("<="),
916
+ Schema.Literal(">"),
917
+ Schema.Literal(">="),
918
+ Schema.Literal("known?"),
919
+ Schema.Literal("unknown?"),
920
+ Schema.Literal("satisfied?"),
921
+ Schema.Literal("not-applicable?"),
922
+ ]);
923
+ export const PropertyExpr = Schema.Union([
924
+ Schema.Struct({
925
+ k: Schema.Literal("observation"),
926
+ of: Schema.suspend(() => PropertyStatus),
927
+ query: Schema.Literal("work"),
928
+ action: Schema.String,
929
+ at: Schema.suspend(() => Span),
930
+ }),
931
+ Schema.Struct({
932
+ k: Schema.Literal("observation"),
933
+ of: Schema.suspend(() => PropertyStatus),
934
+ query: Schema.Literal("due"),
935
+ at: Schema.suspend(() => Span),
936
+ }),
937
+ Schema.Struct({
938
+ k: Schema.Literal("observation"),
939
+ of: Schema.suspend(() => PropertyStatus),
940
+ query: Schema.Literal("occurrence-count"),
941
+ cycle: Schema.optionalKey(Schema.suspend(() => PropertyExpr)),
942
+ at: Schema.suspend(() => Span),
943
+ }),
944
+ Schema.Struct({
945
+ k: Schema.Literal("literal"),
946
+ value: Schema.Union([Schema.String, Schema.Number, Schema.Boolean, Schema.Null]),
947
+ at: Schema.suspend(() => Span),
948
+ }),
949
+ Schema.Struct({
950
+ k: Schema.Literal("read"),
951
+ root: Schema.String,
952
+ attrs: Schema.Array(Schema.String),
953
+ at: Schema.suspend(() => Span),
954
+ }),
955
+ Schema.Struct({
956
+ k: Schema.Literal("instance"),
957
+ target: Schema.suspend(() => PropertyTarget),
958
+ at: Schema.suspend(() => Span),
959
+ }),
960
+ Schema.suspend(() => PropertyStatus),
961
+ Schema.Struct({
962
+ k: Schema.Literal("attested"),
963
+ target: Schema.suspend(() => PropertyTarget),
964
+ evidence: Schema.String,
965
+ at: Schema.suspend(() => Span),
966
+ }),
967
+ Schema.Struct({
968
+ k: Schema.Literal("call"),
969
+ op: Schema.suspend(() => PropertyOperator),
970
+ args: Schema.Array(Schema.suspend(() => PropertyExpr)),
971
+ at: Schema.suspend(() => Span),
972
+ }),
973
+ ]);
974
+ export const Property = Schema.Struct({
975
+ name: Schema.String,
976
+ doc: Schema.optionalKey(Schema.String),
977
+ world: Schema.String,
978
+ date: Schema.String,
979
+ binding: Schema.Struct({
980
+ name: Schema.String,
981
+ entity: Schema.String,
982
+ at: Schema.suspend(() => Span),
983
+ }),
984
+ given: Schema.optionalKey(Schema.Array(Schema.suspend(() => ScenarioEntity))),
985
+ records: Schema.optionalKey(Schema.Array(Schema.suspend(() => ScenarioRecord))),
986
+ predicate: Schema.suspend(() => PropertyExpr),
987
+ at: Schema.suspend(() => Span),
988
+ });
989
+ export const Decision = Schema.Struct({
990
+ name: Schema.String,
991
+ doc: Schema.optionalKey(Schema.String),
992
+ of: Schema.String,
993
+ by: Schema.suspend(() => Expr),
994
+ byKind: Schema.optionalKey(Schema.Union([Schema.Literal("individual"), Schema.Literal("group")])),
995
+ applies: Schema.String,
996
+ when: Schema.optionalKey(Schema.suspend(() => Expr)),
997
+ effect: Schema.Union([
998
+ Schema.Literal("approve"),
999
+ Schema.Literal("reject"),
1000
+ Schema.Literal("waive"),
1001
+ Schema.Literal("defer"),
1002
+ Schema.Literal("accept"),
1003
+ Schema.Literal("add"),
1004
+ ]),
1005
+ reason: Schema.suspend(() => TypeRef),
1006
+ until: Schema.optionalKey(Schema.suspend(() => Expr)),
1007
+ expires: Schema.optionalKey(Schema.suspend(() => Expr)),
1008
+ approvals: Schema.optionalKey(Schema.suspend(() => Expr)),
1009
+ distinctFrom: Schema.optionalKey(Schema.Array(Schema.suspend(() => Expr))),
1010
+ cites: Schema.optionalKey(Schema.Array(Schema.suspend(() => Citation))),
1011
+ at: Schema.suspend(() => Span),
1012
+ });
1013
+ export const ConfirmationWindow = Schema.Struct({
1014
+ n: Schema.Int.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(9007199254740991)),
1015
+ unit: Schema.Union([
1016
+ Schema.Literal("days"),
1017
+ Schema.Literal("years"),
1018
+ Schema.Literal("hours"),
1019
+ Schema.Literal("minutes"),
1020
+ ]),
1021
+ at: Schema.suspend(() => Span),
1022
+ });
1023
+ export const Collect = Schema.Struct({
1024
+ name: Schema.String,
1025
+ doc: Schema.optionalKey(Schema.String),
1026
+ from: Schema.String,
1027
+ facts: Schema.NonEmptyArray(Schema.String),
1028
+ layout: Schema.String,
1029
+ confirmAfter: Schema.optionalKey(Schema.suspend(() => ConfirmationWindow)),
1030
+ at: Schema.suspend(() => Span),
1031
+ });
1032
+ export const Bundle = Schema.Struct({
1033
+ name: Schema.String,
1034
+ doc: Schema.optionalKey(Schema.String),
1035
+ role: Schema.String,
1036
+ label: Schema.String,
1037
+ at: Schema.suspend(() => Span),
1038
+ });
1039
+ export const ContractOperation = Schema.Struct({
1040
+ name: Schema.String,
1041
+ kind: Schema.Union([Schema.Literal("action"), Schema.Literal("decision")]),
1042
+ input: Schema.Array(Schema.suspend(() => Field)),
1043
+ result: Schema.String,
1044
+ sealedBy: Schema.optionalKey(Schema.suspend(() => Seal)),
1045
+ amendable: Schema.optionalKey(Schema.Boolean),
1046
+ signature: Schema.optionalKey(Schema.Struct({
1047
+ method: Schema.String,
1048
+ audit: Schema.suspend(() => SignaturePolicy),
1049
+ })),
1050
+ });
1051
+ export const ComponentContract = Schema.Struct({
1052
+ name: Schema.String,
1053
+ doc: Schema.optionalKey(Schema.String),
1054
+ library: Schema.String,
1055
+ component: Schema.String,
1056
+ key: Schema.Array(Schema.String),
1057
+ home: Schema.suspend(() => Home),
1058
+ inputs: Schema.Array(Schema.suspend(() => Field)),
1059
+ params: Schema.Array(Schema.suspend(() => Field)),
1060
+ paramBounds: Schema.Array(Schema.suspend(() => ParamBound)),
1061
+ types: Schema.Array(Schema.suspend(() => Field)),
1062
+ roles: Schema.Array(Schema.Struct({
1063
+ name: Schema.String,
1064
+ fields: Schema.Array(Schema.suspend(() => Field)),
1065
+ })),
1066
+ vaults: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => Vault))),
1067
+ outputs: Schema.Array(Schema.Struct({ name: Schema.String, type: Schema.Literal("Status") })),
1068
+ operations: Schema.Array(Schema.suspend(() => ContractOperation)),
1069
+ capabilities: Schema.Array(Schema.Struct({ connector: Schema.String, capabilities: Schema.Array(Schema.String) })),
1070
+ digest: Schema.String,
1071
+ at: Schema.suspend(() => Span),
1072
+ });
1073
+ export const ComponentImport = Schema.Struct({
1074
+ name: Schema.String,
1075
+ doc: Schema.optionalKey(Schema.String),
1076
+ library: Schema.String,
1077
+ from: Schema.String,
1078
+ version: Schema.String,
1079
+ contract: Schema.String,
1080
+ digest: Schema.String,
1081
+ at: Schema.suspend(() => Span),
1082
+ });
1083
+ export const WorldIR = Schema.Struct({
1084
+ format: Schema.Literal("worldvm/world-ir@1"),
1085
+ sources: Schema.Array(Schema.Struct({ id: Schema.String, sha256: Schema.String })),
1086
+ references: Schema.optionalKey(Schema.Array(Schema.suspend(() => Source))),
1087
+ scenarios: Schema.optionalKey(Schema.Array(Schema.suspend(() => Scenario))),
1088
+ properties: Schema.optionalKey(Schema.Array(Schema.suspend(() => Property))),
1089
+ decisions: Schema.optionalKey(Schema.Array(Schema.suspend(() => Decision))),
1090
+ collects: Schema.optionalKey(Schema.Array(Schema.suspend(() => Collect))),
1091
+ bundles: Schema.optionalKey(Schema.Array(Schema.suspend(() => Bundle))),
1092
+ documents: Schema.optionalKey(Schema.Array(Schema.suspend(() => Document))),
1093
+ notices: Schema.optionalKey(Schema.Array(Schema.suspend(() => Notice))),
1094
+ vaults: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => Vault))),
1095
+ agents: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => Agent))),
1096
+ libraries: Schema.Array(Schema.suspend(() => Library)),
1097
+ types: Schema.Array(Schema.suspend(() => TypeAlias)),
1098
+ roles: Schema.Array(Schema.suspend(() => Role)),
1099
+ entities: Schema.Array(Schema.suspend(() => Entity)),
1100
+ calendars: Schema.Array(Schema.suspend(() => Calendar)),
1101
+ derives: Schema.Array(Schema.suspend(() => Derive)),
1102
+ evidence: Schema.Array(Schema.suspend(() => Evidence)),
1103
+ interactions: Schema.Array(Schema.suspend(() => Interaction)),
1104
+ layouts: Schema.Array(Schema.suspend(() => Layout)),
1105
+ connectors: Schema.Array(Schema.suspend(() => Connector)),
1106
+ machines: Schema.Array(Schema.suspend(() => Machine)),
1107
+ componentContracts: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => ComponentContract))),
1108
+ componentImports: Schema.optionalKey(Schema.NonEmptyArray(Schema.suspend(() => ComponentImport))),
1109
+ components: Schema.Array(Schema.suspend(() => Component)),
1110
+ accounts: Schema.Array(Schema.suspend(() => Account)),
1111
+ });
1112
+ export const Diagnostic = Schema.Struct({
1113
+ code: Schema.String,
1114
+ severity: Schema.Union([
1115
+ Schema.Literal("error"),
1116
+ Schema.Literal("warning"),
1117
+ Schema.Literal("info"),
1118
+ ]),
1119
+ message: Schema.String,
1120
+ help: Schema.optionalKey(Schema.String),
1121
+ at: Schema.optionalKey(Schema.suspend(() => Span)),
1122
+ });
1123
+ export const Compiled = Schema.Struct({
1124
+ ok: Schema.Boolean,
1125
+ ir: Schema.Union([Schema.Null, Schema.suspend(() => WorldIR)]),
1126
+ diagnostics: Schema.Array(Schema.suspend(() => Diagnostic)),
1127
+ });