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