@smthrs/engine-store 0.0.0-stage → 1.0.0-rc.3

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 (787) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/LICENSE +21 -0
  3. package/README.md +146 -2
  4. package/dist/cjs/ArtifactGc.d.ts +235 -0
  5. package/dist/cjs/ArtifactGc.d.ts.map +1 -0
  6. package/dist/cjs/ArtifactGc.js +183 -0
  7. package/dist/cjs/ArtifactGc.js.map +7 -0
  8. package/dist/cjs/ArtifactSync.d.ts +164 -0
  9. package/dist/cjs/ArtifactSync.d.ts.map +1 -0
  10. package/dist/cjs/ArtifactSync.js +144 -0
  11. package/dist/cjs/ArtifactSync.js.map +7 -0
  12. package/dist/cjs/CacheSync.d.ts +112 -0
  13. package/dist/cjs/CacheSync.d.ts.map +1 -0
  14. package/dist/cjs/CacheSync.js +64 -0
  15. package/dist/cjs/CacheSync.js.map +7 -0
  16. package/dist/cjs/DeferredClockFold.d.ts +354 -0
  17. package/dist/cjs/DeferredClockFold.d.ts.map +1 -0
  18. package/dist/cjs/DeferredClockFold.js +335 -0
  19. package/dist/cjs/DeferredClockFold.js.map +7 -0
  20. package/dist/cjs/DisasterRecovery.d.ts +431 -0
  21. package/dist/cjs/DisasterRecovery.d.ts.map +1 -0
  22. package/dist/cjs/DisasterRecovery.js +453 -0
  23. package/dist/cjs/DisasterRecovery.js.map +7 -0
  24. package/dist/cjs/DurableEngineState.d.ts +776 -0
  25. package/dist/cjs/DurableEngineState.d.ts.map +1 -0
  26. package/dist/cjs/DurableEngineState.js +1536 -0
  27. package/dist/cjs/DurableEngineState.js.map +7 -0
  28. package/dist/cjs/EngineStore.d.ts +158 -0
  29. package/dist/cjs/EngineStore.d.ts.map +1 -0
  30. package/dist/cjs/EngineStore.js +398 -0
  31. package/dist/cjs/EngineStore.js.map +7 -0
  32. package/dist/cjs/EngineStoreMetrics.d.ts +276 -0
  33. package/dist/cjs/EngineStoreMetrics.d.ts.map +1 -0
  34. package/dist/cjs/EngineStoreMetrics.js +135 -0
  35. package/dist/cjs/EngineStoreMetrics.js.map +7 -0
  36. package/dist/cjs/Errors.d.ts +22 -0
  37. package/dist/cjs/Errors.d.ts.map +1 -0
  38. package/dist/cjs/Errors.js +39 -0
  39. package/dist/cjs/Errors.js.map +7 -0
  40. package/dist/cjs/EventTypes.d.ts +27 -0
  41. package/dist/cjs/EventTypes.d.ts.map +1 -0
  42. package/dist/cjs/EventTypes.js +37 -0
  43. package/dist/cjs/EventTypes.js.map +7 -0
  44. package/dist/cjs/ExecutionFacts.d.ts +59 -0
  45. package/dist/cjs/ExecutionFacts.d.ts.map +1 -0
  46. package/dist/cjs/ExecutionFacts.js +123 -0
  47. package/dist/cjs/ExecutionFacts.js.map +7 -0
  48. package/dist/cjs/ExecutionSnapshot.d.ts +117 -0
  49. package/dist/cjs/ExecutionSnapshot.d.ts.map +1 -0
  50. package/dist/cjs/ExecutionSnapshot.js +111 -0
  51. package/dist/cjs/ExecutionSnapshot.js.map +7 -0
  52. package/dist/cjs/Inconsistency.d.ts +154 -0
  53. package/dist/cjs/Inconsistency.d.ts.map +1 -0
  54. package/dist/cjs/Inconsistency.js +135 -0
  55. package/dist/cjs/Inconsistency.js.map +7 -0
  56. package/dist/cjs/Migrations.d.ts +56 -0
  57. package/dist/cjs/Migrations.d.ts.map +1 -0
  58. package/dist/cjs/Migrations.js +78 -0
  59. package/dist/cjs/Migrations.js.map +7 -0
  60. package/dist/cjs/OwnerIdentity.d.ts +91 -0
  61. package/dist/cjs/OwnerIdentity.d.ts.map +1 -0
  62. package/dist/cjs/OwnerIdentity.js +65 -0
  63. package/dist/cjs/OwnerIdentity.js.map +7 -0
  64. package/dist/cjs/PlanInputStore.d.ts +110 -0
  65. package/dist/cjs/PlanInputStore.d.ts.map +1 -0
  66. package/dist/cjs/PlanInputStore.js +224 -0
  67. package/dist/cjs/PlanInputStore.js.map +7 -0
  68. package/dist/cjs/PlanMergeStore.d.ts +113 -0
  69. package/dist/cjs/PlanMergeStore.d.ts.map +1 -0
  70. package/dist/cjs/PlanMergeStore.js +255 -0
  71. package/dist/cjs/PlanMergeStore.js.map +7 -0
  72. package/dist/cjs/PlanScheduler.d.ts +363 -0
  73. package/dist/cjs/PlanScheduler.d.ts.map +1 -0
  74. package/dist/cjs/PlanScheduler.js +1090 -0
  75. package/dist/cjs/PlanScheduler.js.map +7 -0
  76. package/dist/cjs/Reconciliation.d.ts +175 -0
  77. package/dist/cjs/Reconciliation.d.ts.map +1 -0
  78. package/dist/cjs/Reconciliation.js +119 -0
  79. package/dist/cjs/Reconciliation.js.map +7 -0
  80. package/dist/cjs/ReplayOnly.d.ts +91 -0
  81. package/dist/cjs/ReplayOnly.d.ts.map +1 -0
  82. package/dist/cjs/ReplayOnly.js +52 -0
  83. package/dist/cjs/ReplayOnly.js.map +7 -0
  84. package/dist/cjs/Retention.d.ts +113 -0
  85. package/dist/cjs/Retention.d.ts.map +1 -0
  86. package/dist/cjs/Retention.js +99 -0
  87. package/dist/cjs/Retention.js.map +7 -0
  88. package/dist/cjs/RunCatalogRead.d.ts +17 -0
  89. package/dist/cjs/RunCatalogRead.d.ts.map +1 -0
  90. package/dist/cjs/RunCatalogRead.js +33 -0
  91. package/dist/cjs/RunCatalogRead.js.map +7 -0
  92. package/dist/cjs/RunChangeFeed.d.ts +75 -0
  93. package/dist/cjs/RunChangeFeed.d.ts.map +1 -0
  94. package/dist/cjs/RunChangeFeed.js +96 -0
  95. package/dist/cjs/RunChangeFeed.js.map +7 -0
  96. package/dist/cjs/RunState.d.ts +116 -0
  97. package/dist/cjs/RunState.d.ts.map +1 -0
  98. package/dist/cjs/RunState.js +76 -0
  99. package/dist/cjs/RunState.js.map +7 -0
  100. package/dist/cjs/Selection.d.ts +495 -0
  101. package/dist/cjs/Selection.d.ts.map +1 -0
  102. package/dist/cjs/Selection.js +288 -0
  103. package/dist/cjs/Selection.js.map +7 -0
  104. package/dist/cjs/SelectionStore.d.ts +141 -0
  105. package/dist/cjs/SelectionStore.d.ts.map +1 -0
  106. package/dist/cjs/SelectionStore.js +229 -0
  107. package/dist/cjs/SelectionStore.js.map +7 -0
  108. package/dist/cjs/StepBoundary.d.ts +501 -0
  109. package/dist/cjs/StepBoundary.d.ts.map +1 -0
  110. package/dist/cjs/StepBoundary.js +619 -0
  111. package/dist/cjs/StepBoundary.js.map +7 -0
  112. package/dist/cjs/StepCacheFold.d.ts +148 -0
  113. package/dist/cjs/StepCacheFold.d.ts.map +1 -0
  114. package/dist/cjs/StepCacheFold.js +131 -0
  115. package/dist/cjs/StepCacheFold.js.map +7 -0
  116. package/dist/cjs/StepSandbox.d.ts +78 -0
  117. package/dist/cjs/StepSandbox.d.ts.map +1 -0
  118. package/dist/cjs/StepSandbox.js +75 -0
  119. package/dist/cjs/StepSandbox.js.map +7 -0
  120. package/dist/cjs/WakeBus.d.ts +116 -0
  121. package/dist/cjs/WakeBus.d.ts.map +1 -0
  122. package/dist/cjs/WakeBus.js +89 -0
  123. package/dist/cjs/WakeBus.js.map +7 -0
  124. package/dist/cjs/WorkspaceSandbox.d.ts +619 -0
  125. package/dist/cjs/WorkspaceSandbox.d.ts.map +1 -0
  126. package/dist/cjs/WorkspaceSandbox.js +711 -0
  127. package/dist/cjs/WorkspaceSandbox.js.map +7 -0
  128. package/dist/cjs/index.d.ts +157 -0
  129. package/dist/cjs/index.d.ts.map +1 -0
  130. package/dist/cjs/index.js +95 -0
  131. package/dist/cjs/index.js.map +7 -0
  132. package/dist/cjs/internal/ActionPersistence.d.ts +276 -0
  133. package/dist/cjs/internal/ActionPersistence.d.ts.map +1 -0
  134. package/dist/cjs/internal/ActionPersistence.js +1395 -0
  135. package/dist/cjs/internal/ActionPersistence.js.map +7 -0
  136. package/dist/cjs/internal/ArtifactRoots.d.ts +38 -0
  137. package/dist/cjs/internal/ArtifactRoots.d.ts.map +1 -0
  138. package/dist/cjs/internal/ArtifactRoots.js +89 -0
  139. package/dist/cjs/internal/ArtifactRoots.js.map +7 -0
  140. package/dist/cjs/internal/AttemptAdmission.d.ts +53 -0
  141. package/dist/cjs/internal/AttemptAdmission.d.ts.map +1 -0
  142. package/dist/cjs/internal/AttemptAdmission.js +52 -0
  143. package/dist/cjs/internal/AttemptAdmission.js.map +7 -0
  144. package/dist/cjs/internal/AttemptLifecycle.d.ts +245 -0
  145. package/dist/cjs/internal/AttemptLifecycle.d.ts.map +1 -0
  146. package/dist/cjs/internal/AttemptLifecycle.js +112 -0
  147. package/dist/cjs/internal/AttemptLifecycle.js.map +7 -0
  148. package/dist/cjs/internal/AttemptProbe.d.ts +53 -0
  149. package/dist/cjs/internal/AttemptProbe.d.ts.map +1 -0
  150. package/dist/cjs/internal/AttemptProbe.js +66 -0
  151. package/dist/cjs/internal/AttemptProbe.js.map +7 -0
  152. package/dist/cjs/internal/CacheAdmission.d.ts +79 -0
  153. package/dist/cjs/internal/CacheAdmission.d.ts.map +1 -0
  154. package/dist/cjs/internal/CacheAdmission.js +71 -0
  155. package/dist/cjs/internal/CacheAdmission.js.map +7 -0
  156. package/dist/cjs/internal/CacheAgeHistory.d.ts +27 -0
  157. package/dist/cjs/internal/CacheAgeHistory.d.ts.map +1 -0
  158. package/dist/cjs/internal/CacheAgeHistory.js +61 -0
  159. package/dist/cjs/internal/CacheAgeHistory.js.map +7 -0
  160. package/dist/cjs/internal/CacheAgeVerdicts.d.ts +15 -0
  161. package/dist/cjs/internal/CacheAgeVerdicts.d.ts.map +1 -0
  162. package/dist/cjs/internal/CacheAgeVerdicts.js +73 -0
  163. package/dist/cjs/internal/CacheAgeVerdicts.js.map +7 -0
  164. package/dist/cjs/internal/CacheOutputPolicy.d.ts +24 -0
  165. package/dist/cjs/internal/CacheOutputPolicy.d.ts.map +1 -0
  166. package/dist/cjs/internal/CacheOutputPolicy.js +75 -0
  167. package/dist/cjs/internal/CacheOutputPolicy.js.map +7 -0
  168. package/dist/cjs/internal/CachePublication.d.ts +97 -0
  169. package/dist/cjs/internal/CachePublication.d.ts.map +1 -0
  170. package/dist/cjs/internal/CachePublication.js +80 -0
  171. package/dist/cjs/internal/CachePublication.js.map +7 -0
  172. package/dist/cjs/internal/CallFacts.d.ts +15 -0
  173. package/dist/cjs/internal/CallFacts.d.ts.map +1 -0
  174. package/dist/cjs/internal/CallFacts.js +97 -0
  175. package/dist/cjs/internal/CallFacts.js.map +7 -0
  176. package/dist/cjs/internal/CopiedRecord.d.ts +61 -0
  177. package/dist/cjs/internal/CopiedRecord.d.ts.map +1 -0
  178. package/dist/cjs/internal/CopiedRecord.js +134 -0
  179. package/dist/cjs/internal/CopiedRecord.js.map +7 -0
  180. package/dist/cjs/internal/DeferredPersistence.d.ts +108 -0
  181. package/dist/cjs/internal/DeferredPersistence.d.ts.map +1 -0
  182. package/dist/cjs/internal/DeferredPersistence.js +270 -0
  183. package/dist/cjs/internal/DeferredPersistence.js.map +7 -0
  184. package/dist/cjs/internal/EffectRecords.d.ts +92 -0
  185. package/dist/cjs/internal/EffectRecords.d.ts.map +1 -0
  186. package/dist/cjs/internal/EffectRecords.js +63 -0
  187. package/dist/cjs/internal/EffectRecords.js.map +7 -0
  188. package/dist/cjs/internal/EngineJj.d.ts +30 -0
  189. package/dist/cjs/internal/EngineJj.d.ts.map +1 -0
  190. package/dist/cjs/internal/EngineJj.js +42 -0
  191. package/dist/cjs/internal/EngineJj.js.map +7 -0
  192. package/dist/cjs/internal/EngineStateSchema.d.ts +68 -0
  193. package/dist/cjs/internal/EngineStateSchema.d.ts.map +1 -0
  194. package/dist/cjs/internal/EngineStateSchema.js +58 -0
  195. package/dist/cjs/internal/EngineStateSchema.js.map +7 -0
  196. package/dist/cjs/internal/ExecutionSnapshotRead.d.ts +162 -0
  197. package/dist/cjs/internal/ExecutionSnapshotRead.d.ts.map +1 -0
  198. package/dist/cjs/internal/ExecutionSnapshotRead.js +199 -0
  199. package/dist/cjs/internal/ExecutionSnapshotRead.js.map +7 -0
  200. package/dist/cjs/internal/ExecutionSnapshotRelations.d.ts +39 -0
  201. package/dist/cjs/internal/ExecutionSnapshotRelations.d.ts.map +1 -0
  202. package/dist/cjs/internal/ExecutionSnapshotRelations.js +105 -0
  203. package/dist/cjs/internal/ExecutionSnapshotRelations.js.map +7 -0
  204. package/dist/cjs/internal/ExitEncoding.d.ts +180 -0
  205. package/dist/cjs/internal/ExitEncoding.d.ts.map +1 -0
  206. package/dist/cjs/internal/ExitEncoding.js +236 -0
  207. package/dist/cjs/internal/ExitEncoding.js.map +7 -0
  208. package/dist/cjs/internal/FileBoundarySnapshot.d.ts +14 -0
  209. package/dist/cjs/internal/FileBoundarySnapshot.d.ts.map +1 -0
  210. package/dist/cjs/internal/FileBoundarySnapshot.js +51 -0
  211. package/dist/cjs/internal/FileBoundarySnapshot.js.map +7 -0
  212. package/dist/cjs/internal/FileEnumeration.d.ts +127 -0
  213. package/dist/cjs/internal/FileEnumeration.d.ts.map +1 -0
  214. package/dist/cjs/internal/FileEnumeration.js +194 -0
  215. package/dist/cjs/internal/FileEnumeration.js.map +7 -0
  216. package/dist/cjs/internal/HostReflection.d.ts +80 -0
  217. package/dist/cjs/internal/HostReflection.d.ts.map +1 -0
  218. package/dist/cjs/internal/HostReflection.js +43 -0
  219. package/dist/cjs/internal/HostReflection.js.map +7 -0
  220. package/dist/cjs/internal/JournalRecords.d.ts +325 -0
  221. package/dist/cjs/internal/JournalRecords.d.ts.map +1 -0
  222. package/dist/cjs/internal/JournalRecords.js +122 -0
  223. package/dist/cjs/internal/JournalRecords.js.map +7 -0
  224. package/dist/cjs/internal/NodeJournal.d.ts +157 -0
  225. package/dist/cjs/internal/NodeJournal.d.ts.map +1 -0
  226. package/dist/cjs/internal/NodeJournal.js +192 -0
  227. package/dist/cjs/internal/NodeJournal.js.map +7 -0
  228. package/dist/cjs/internal/Ordering.d.ts +14 -0
  229. package/dist/cjs/internal/Ordering.d.ts.map +1 -0
  230. package/dist/cjs/internal/Ordering.js +25 -0
  231. package/dist/cjs/internal/Ordering.js.map +7 -0
  232. package/dist/cjs/internal/PlanInputs.d.ts +14 -0
  233. package/dist/cjs/internal/PlanInputs.d.ts.map +1 -0
  234. package/dist/cjs/internal/PlanInputs.js +78 -0
  235. package/dist/cjs/internal/PlanInputs.js.map +7 -0
  236. package/dist/cjs/internal/PlanMerges.d.ts +178 -0
  237. package/dist/cjs/internal/PlanMerges.d.ts.map +1 -0
  238. package/dist/cjs/internal/PlanMerges.js +125 -0
  239. package/dist/cjs/internal/PlanMerges.js.map +7 -0
  240. package/dist/cjs/internal/ProvenanceSlot.d.ts +30 -0
  241. package/dist/cjs/internal/ProvenanceSlot.d.ts.map +1 -0
  242. package/dist/cjs/internal/ProvenanceSlot.js +53 -0
  243. package/dist/cjs/internal/ProvenanceSlot.js.map +7 -0
  244. package/dist/cjs/internal/ResultEnvelope.d.ts +88 -0
  245. package/dist/cjs/internal/ResultEnvelope.d.ts.map +1 -0
  246. package/dist/cjs/internal/ResultEnvelope.js +90 -0
  247. package/dist/cjs/internal/ResultEnvelope.js.map +7 -0
  248. package/dist/cjs/internal/RetentionOps.d.ts +414 -0
  249. package/dist/cjs/internal/RetentionOps.d.ts.map +1 -0
  250. package/dist/cjs/internal/RetentionOps.js +354 -0
  251. package/dist/cjs/internal/RetentionOps.js.map +7 -0
  252. package/dist/cjs/internal/RunCatalogOps.d.ts +118 -0
  253. package/dist/cjs/internal/RunCatalogOps.d.ts.map +1 -0
  254. package/dist/cjs/internal/RunCatalogOps.js +85 -0
  255. package/dist/cjs/internal/RunCatalogOps.js.map +7 -0
  256. package/dist/cjs/internal/RunCoordinator.d.ts +78 -0
  257. package/dist/cjs/internal/RunCoordinator.d.ts.map +1 -0
  258. package/dist/cjs/internal/RunCoordinator.js +123 -0
  259. package/dist/cjs/internal/RunCoordinator.js.map +7 -0
  260. package/dist/cjs/internal/RunDriver.d.ts +192 -0
  261. package/dist/cjs/internal/RunDriver.d.ts.map +1 -0
  262. package/dist/cjs/internal/RunDriver.js +1584 -0
  263. package/dist/cjs/internal/RunDriver.js.map +7 -0
  264. package/dist/cjs/internal/RunLifecycle.d.ts +22 -0
  265. package/dist/cjs/internal/RunLifecycle.d.ts.map +1 -0
  266. package/dist/cjs/internal/RunLifecycle.js +63 -0
  267. package/dist/cjs/internal/RunLifecycle.js.map +7 -0
  268. package/dist/cjs/internal/RunListing.d.ts +78 -0
  269. package/dist/cjs/internal/RunListing.d.ts.map +1 -0
  270. package/dist/cjs/internal/RunListing.js +171 -0
  271. package/dist/cjs/internal/RunListing.js.map +7 -0
  272. package/dist/cjs/internal/RunListingError.d.ts +35 -0
  273. package/dist/cjs/internal/RunListingError.d.ts.map +1 -0
  274. package/dist/cjs/internal/RunListingError.js +47 -0
  275. package/dist/cjs/internal/RunListingError.js.map +7 -0
  276. package/dist/cjs/internal/RuntimeGraph.d.ts +73 -0
  277. package/dist/cjs/internal/RuntimeGraph.d.ts.map +1 -0
  278. package/dist/cjs/internal/RuntimeGraph.js +180 -0
  279. package/dist/cjs/internal/RuntimeGraph.js.map +7 -0
  280. package/dist/cjs/internal/SandboxedExecution.d.ts +80 -0
  281. package/dist/cjs/internal/SandboxedExecution.d.ts.map +1 -0
  282. package/dist/cjs/internal/SandboxedExecution.js +104 -0
  283. package/dist/cjs/internal/SandboxedExecution.js.map +7 -0
  284. package/dist/cjs/internal/StateTransaction.d.ts +44 -0
  285. package/dist/cjs/internal/StateTransaction.d.ts.map +1 -0
  286. package/dist/cjs/internal/StateTransaction.js +52 -0
  287. package/dist/cjs/internal/StateTransaction.js.map +7 -0
  288. package/dist/cjs/internal/StepFacts.d.ts +14 -0
  289. package/dist/cjs/internal/StepFacts.d.ts.map +1 -0
  290. package/dist/cjs/internal/StepFacts.js +58 -0
  291. package/dist/cjs/internal/StepFacts.js.map +7 -0
  292. package/dist/cjs/internal/TypedEvents.d.ts +14 -0
  293. package/dist/cjs/internal/TypedEvents.d.ts.map +1 -0
  294. package/dist/cjs/internal/TypedEvents.js +37 -0
  295. package/dist/cjs/internal/TypedEvents.js.map +7 -0
  296. package/dist/cjs/migrations/0001_initial.d.ts +17 -0
  297. package/dist/cjs/migrations/0001_initial.d.ts.map +1 -0
  298. package/dist/cjs/migrations/0001_initial.js +61 -0
  299. package/dist/cjs/migrations/0001_initial.js.map +7 -0
  300. package/dist/cjs/migrations/0002_selection_store.d.ts +15 -0
  301. package/dist/cjs/migrations/0002_selection_store.d.ts.map +1 -0
  302. package/dist/cjs/migrations/0002_selection_store.js +56 -0
  303. package/dist/cjs/migrations/0002_selection_store.js.map +7 -0
  304. package/dist/cjs/migrations/0003_plan_inputs.d.ts +13 -0
  305. package/dist/cjs/migrations/0003_plan_inputs.d.ts.map +1 -0
  306. package/dist/cjs/migrations/0003_plan_inputs.js +90 -0
  307. package/dist/cjs/migrations/0003_plan_inputs.js.map +7 -0
  308. package/dist/cjs/migrations/0004_plan_environment.d.ts +14 -0
  309. package/dist/cjs/migrations/0004_plan_environment.d.ts.map +1 -0
  310. package/dist/cjs/migrations/0004_plan_environment.js +56 -0
  311. package/dist/cjs/migrations/0004_plan_environment.js.map +7 -0
  312. package/dist/cjs/migrations/0005_plan_merges.d.ts +14 -0
  313. package/dist/cjs/migrations/0005_plan_merges.d.ts.map +1 -0
  314. package/dist/cjs/migrations/0005_plan_merges.js +82 -0
  315. package/dist/cjs/migrations/0005_plan_merges.js.map +7 -0
  316. package/dist/cjs/migrations/0006_execution_listing.d.ts +15 -0
  317. package/dist/cjs/migrations/0006_execution_listing.d.ts.map +1 -0
  318. package/dist/cjs/migrations/0006_execution_listing.js +101 -0
  319. package/dist/cjs/migrations/0006_execution_listing.js.map +7 -0
  320. package/dist/cjs/migrations/0007_run_parent_sequence.d.ts +15 -0
  321. package/dist/cjs/migrations/0007_run_parent_sequence.d.ts.map +1 -0
  322. package/dist/cjs/migrations/0007_run_parent_sequence.js +40 -0
  323. package/dist/cjs/migrations/0007_run_parent_sequence.js.map +7 -0
  324. package/dist/cjs/migrations/0008_deferred_consumption.d.ts +16 -0
  325. package/dist/cjs/migrations/0008_deferred_consumption.d.ts.map +1 -0
  326. package/dist/cjs/migrations/0008_deferred_consumption.js +45 -0
  327. package/dist/cjs/migrations/0008_deferred_consumption.js.map +7 -0
  328. package/dist/cjs/migrations/0009_deferred_clock_facts.d.ts +24 -0
  329. package/dist/cjs/migrations/0009_deferred_clock_facts.d.ts.map +1 -0
  330. package/dist/cjs/migrations/0009_deferred_clock_facts.js +141 -0
  331. package/dist/cjs/migrations/0009_deferred_clock_facts.js.map +7 -0
  332. package/dist/cjs/migrations/0010_pending_cancellation.d.ts +15 -0
  333. package/dist/cjs/migrations/0010_pending_cancellation.d.ts.map +1 -0
  334. package/dist/cjs/migrations/0010_pending_cancellation.js +41 -0
  335. package/dist/cjs/migrations/0010_pending_cancellation.js.map +7 -0
  336. package/dist/cjs/package.json +1 -0
  337. package/dist/cjs/test/TestStores.d.ts +89 -0
  338. package/dist/cjs/test/TestStores.d.ts.map +1 -0
  339. package/dist/cjs/test/TestStores.js +98 -0
  340. package/dist/cjs/test/TestStores.js.map +7 -0
  341. package/dist/esm/ArtifactGc.d.ts +235 -0
  342. package/dist/esm/ArtifactGc.d.ts.map +1 -0
  343. package/dist/esm/ArtifactGc.js +268 -0
  344. package/dist/esm/ArtifactGc.js.map +1 -0
  345. package/dist/esm/ArtifactSync.d.ts +164 -0
  346. package/dist/esm/ArtifactSync.d.ts.map +1 -0
  347. package/dist/esm/ArtifactSync.js +176 -0
  348. package/dist/esm/ArtifactSync.js.map +1 -0
  349. package/dist/esm/CacheSync.d.ts +112 -0
  350. package/dist/esm/CacheSync.d.ts.map +1 -0
  351. package/dist/esm/CacheSync.js +94 -0
  352. package/dist/esm/CacheSync.js.map +1 -0
  353. package/dist/esm/DeferredClockFold.d.ts +354 -0
  354. package/dist/esm/DeferredClockFold.d.ts.map +1 -0
  355. package/dist/esm/DeferredClockFold.js +472 -0
  356. package/dist/esm/DeferredClockFold.js.map +1 -0
  357. package/dist/esm/DisasterRecovery.d.ts +431 -0
  358. package/dist/esm/DisasterRecovery.d.ts.map +1 -0
  359. package/dist/esm/DisasterRecovery.js +523 -0
  360. package/dist/esm/DisasterRecovery.js.map +1 -0
  361. package/dist/esm/DurableEngineState.d.ts +776 -0
  362. package/dist/esm/DurableEngineState.d.ts.map +1 -0
  363. package/dist/esm/DurableEngineState.js +1648 -0
  364. package/dist/esm/DurableEngineState.js.map +1 -0
  365. package/dist/esm/EngineStore.d.ts +158 -0
  366. package/dist/esm/EngineStore.d.ts.map +1 -0
  367. package/dist/esm/EngineStore.js +403 -0
  368. package/dist/esm/EngineStore.js.map +1 -0
  369. package/dist/esm/EngineStoreMetrics.d.ts +276 -0
  370. package/dist/esm/EngineStoreMetrics.d.ts.map +1 -0
  371. package/dist/esm/EngineStoreMetrics.js +260 -0
  372. package/dist/esm/EngineStoreMetrics.js.map +1 -0
  373. package/dist/esm/Errors.d.ts +22 -0
  374. package/dist/esm/Errors.d.ts.map +1 -0
  375. package/dist/esm/Errors.js +22 -0
  376. package/dist/esm/Errors.js.map +1 -0
  377. package/dist/esm/EventTypes.d.ts +27 -0
  378. package/dist/esm/EventTypes.d.ts.map +1 -0
  379. package/dist/esm/EventTypes.js +27 -0
  380. package/dist/esm/EventTypes.js.map +1 -0
  381. package/dist/esm/ExecutionFacts.d.ts +59 -0
  382. package/dist/esm/ExecutionFacts.d.ts.map +1 -0
  383. package/dist/esm/ExecutionFacts.js +96 -0
  384. package/dist/esm/ExecutionFacts.js.map +1 -0
  385. package/dist/esm/ExecutionSnapshot.d.ts +117 -0
  386. package/dist/esm/ExecutionSnapshot.d.ts.map +1 -0
  387. package/dist/esm/ExecutionSnapshot.js +95 -0
  388. package/dist/esm/ExecutionSnapshot.js.map +1 -0
  389. package/dist/esm/Inconsistency.d.ts +154 -0
  390. package/dist/esm/Inconsistency.d.ts.map +1 -0
  391. package/dist/esm/Inconsistency.js +133 -0
  392. package/dist/esm/Inconsistency.js.map +1 -0
  393. package/dist/esm/Migrations.d.ts +56 -0
  394. package/dist/esm/Migrations.d.ts.map +1 -0
  395. package/dist/esm/Migrations.js +91 -0
  396. package/dist/esm/Migrations.js.map +1 -0
  397. package/dist/esm/OwnerIdentity.d.ts +91 -0
  398. package/dist/esm/OwnerIdentity.d.ts.map +1 -0
  399. package/dist/esm/OwnerIdentity.js +99 -0
  400. package/dist/esm/OwnerIdentity.js.map +1 -0
  401. package/dist/esm/PlanInputStore.d.ts +110 -0
  402. package/dist/esm/PlanInputStore.d.ts.map +1 -0
  403. package/dist/esm/PlanInputStore.js +207 -0
  404. package/dist/esm/PlanInputStore.js.map +1 -0
  405. package/dist/esm/PlanMergeStore.d.ts +113 -0
  406. package/dist/esm/PlanMergeStore.d.ts.map +1 -0
  407. package/dist/esm/PlanMergeStore.js +244 -0
  408. package/dist/esm/PlanMergeStore.js.map +1 -0
  409. package/dist/esm/PlanScheduler.d.ts +363 -0
  410. package/dist/esm/PlanScheduler.d.ts.map +1 -0
  411. package/dist/esm/PlanScheduler.js +1321 -0
  412. package/dist/esm/PlanScheduler.js.map +1 -0
  413. package/dist/esm/Reconciliation.d.ts +175 -0
  414. package/dist/esm/Reconciliation.d.ts.map +1 -0
  415. package/dist/esm/Reconciliation.js +175 -0
  416. package/dist/esm/Reconciliation.js.map +1 -0
  417. package/dist/esm/ReplayOnly.d.ts +91 -0
  418. package/dist/esm/ReplayOnly.d.ts.map +1 -0
  419. package/dist/esm/ReplayOnly.js +59 -0
  420. package/dist/esm/ReplayOnly.js.map +1 -0
  421. package/dist/esm/Retention.d.ts +113 -0
  422. package/dist/esm/Retention.d.ts.map +1 -0
  423. package/dist/esm/Retention.js +139 -0
  424. package/dist/esm/Retention.js.map +1 -0
  425. package/dist/esm/RunCatalogRead.d.ts +17 -0
  426. package/dist/esm/RunCatalogRead.d.ts.map +1 -0
  427. package/dist/esm/RunCatalogRead.js +17 -0
  428. package/dist/esm/RunCatalogRead.js.map +1 -0
  429. package/dist/esm/RunChangeFeed.d.ts +75 -0
  430. package/dist/esm/RunChangeFeed.d.ts.map +1 -0
  431. package/dist/esm/RunChangeFeed.js +81 -0
  432. package/dist/esm/RunChangeFeed.js.map +1 -0
  433. package/dist/esm/RunState.d.ts +116 -0
  434. package/dist/esm/RunState.d.ts.map +1 -0
  435. package/dist/esm/RunState.js +109 -0
  436. package/dist/esm/RunState.js.map +1 -0
  437. package/dist/esm/Selection.d.ts +495 -0
  438. package/dist/esm/Selection.d.ts.map +1 -0
  439. package/dist/esm/Selection.js +482 -0
  440. package/dist/esm/Selection.js.map +1 -0
  441. package/dist/esm/SelectionStore.d.ts +141 -0
  442. package/dist/esm/SelectionStore.d.ts.map +1 -0
  443. package/dist/esm/SelectionStore.js +215 -0
  444. package/dist/esm/SelectionStore.js.map +1 -0
  445. package/dist/esm/StepBoundary.d.ts +501 -0
  446. package/dist/esm/StepBoundary.d.ts.map +1 -0
  447. package/dist/esm/StepBoundary.js +919 -0
  448. package/dist/esm/StepBoundary.js.map +1 -0
  449. package/dist/esm/StepCacheFold.d.ts +148 -0
  450. package/dist/esm/StepCacheFold.d.ts.map +1 -0
  451. package/dist/esm/StepCacheFold.js +201 -0
  452. package/dist/esm/StepCacheFold.js.map +1 -0
  453. package/dist/esm/StepSandbox.d.ts +78 -0
  454. package/dist/esm/StepSandbox.d.ts.map +1 -0
  455. package/dist/esm/StepSandbox.js +70 -0
  456. package/dist/esm/StepSandbox.js.map +1 -0
  457. package/dist/esm/WakeBus.d.ts +116 -0
  458. package/dist/esm/WakeBus.d.ts.map +1 -0
  459. package/dist/esm/WakeBus.js +121 -0
  460. package/dist/esm/WakeBus.js.map +1 -0
  461. package/dist/esm/WorkspaceSandbox.d.ts +619 -0
  462. package/dist/esm/WorkspaceSandbox.d.ts.map +1 -0
  463. package/dist/esm/WorkspaceSandbox.js +985 -0
  464. package/dist/esm/WorkspaceSandbox.js.map +1 -0
  465. package/dist/esm/index.d.ts +157 -0
  466. package/dist/esm/index.d.ts.map +1 -0
  467. package/dist/esm/index.js +157 -0
  468. package/dist/esm/index.js.map +1 -0
  469. package/dist/esm/internal/ActionPersistence.d.ts +276 -0
  470. package/dist/esm/internal/ActionPersistence.d.ts.map +1 -0
  471. package/dist/esm/internal/ActionPersistence.js +2306 -0
  472. package/dist/esm/internal/ActionPersistence.js.map +1 -0
  473. package/dist/esm/internal/ArtifactRoots.d.ts +38 -0
  474. package/dist/esm/internal/ArtifactRoots.d.ts.map +1 -0
  475. package/dist/esm/internal/ArtifactRoots.js +76 -0
  476. package/dist/esm/internal/ArtifactRoots.js.map +1 -0
  477. package/dist/esm/internal/AttemptAdmission.d.ts +53 -0
  478. package/dist/esm/internal/AttemptAdmission.d.ts.map +1 -0
  479. package/dist/esm/internal/AttemptAdmission.js +52 -0
  480. package/dist/esm/internal/AttemptAdmission.js.map +1 -0
  481. package/dist/esm/internal/AttemptLifecycle.d.ts +245 -0
  482. package/dist/esm/internal/AttemptLifecycle.d.ts.map +1 -0
  483. package/dist/esm/internal/AttemptLifecycle.js +104 -0
  484. package/dist/esm/internal/AttemptLifecycle.js.map +1 -0
  485. package/dist/esm/internal/AttemptProbe.d.ts +53 -0
  486. package/dist/esm/internal/AttemptProbe.d.ts.map +1 -0
  487. package/dist/esm/internal/AttemptProbe.js +83 -0
  488. package/dist/esm/internal/AttemptProbe.js.map +1 -0
  489. package/dist/esm/internal/CacheAdmission.d.ts +79 -0
  490. package/dist/esm/internal/CacheAdmission.d.ts.map +1 -0
  491. package/dist/esm/internal/CacheAdmission.js +72 -0
  492. package/dist/esm/internal/CacheAdmission.js.map +1 -0
  493. package/dist/esm/internal/CacheAgeHistory.d.ts +27 -0
  494. package/dist/esm/internal/CacheAgeHistory.d.ts.map +1 -0
  495. package/dist/esm/internal/CacheAgeHistory.js +49 -0
  496. package/dist/esm/internal/CacheAgeHistory.js.map +1 -0
  497. package/dist/esm/internal/CacheAgeVerdicts.d.ts +15 -0
  498. package/dist/esm/internal/CacheAgeVerdicts.d.ts.map +1 -0
  499. package/dist/esm/internal/CacheAgeVerdicts.js +54 -0
  500. package/dist/esm/internal/CacheAgeVerdicts.js.map +1 -0
  501. package/dist/esm/internal/CacheOutputPolicy.d.ts +24 -0
  502. package/dist/esm/internal/CacheOutputPolicy.d.ts.map +1 -0
  503. package/dist/esm/internal/CacheOutputPolicy.js +73 -0
  504. package/dist/esm/internal/CacheOutputPolicy.js.map +1 -0
  505. package/dist/esm/internal/CachePublication.d.ts +97 -0
  506. package/dist/esm/internal/CachePublication.d.ts.map +1 -0
  507. package/dist/esm/internal/CachePublication.js +116 -0
  508. package/dist/esm/internal/CachePublication.js.map +1 -0
  509. package/dist/esm/internal/CallFacts.d.ts +15 -0
  510. package/dist/esm/internal/CallFacts.d.ts.map +1 -0
  511. package/dist/esm/internal/CallFacts.js +83 -0
  512. package/dist/esm/internal/CallFacts.js.map +1 -0
  513. package/dist/esm/internal/CopiedRecord.d.ts +61 -0
  514. package/dist/esm/internal/CopiedRecord.d.ts.map +1 -0
  515. package/dist/esm/internal/CopiedRecord.js +165 -0
  516. package/dist/esm/internal/CopiedRecord.js.map +1 -0
  517. package/dist/esm/internal/DeferredPersistence.d.ts +108 -0
  518. package/dist/esm/internal/DeferredPersistence.d.ts.map +1 -0
  519. package/dist/esm/internal/DeferredPersistence.js +240 -0
  520. package/dist/esm/internal/DeferredPersistence.js.map +1 -0
  521. package/dist/esm/internal/EffectRecords.d.ts +92 -0
  522. package/dist/esm/internal/EffectRecords.d.ts.map +1 -0
  523. package/dist/esm/internal/EffectRecords.js +94 -0
  524. package/dist/esm/internal/EffectRecords.js.map +1 -0
  525. package/dist/esm/internal/EngineJj.d.ts +30 -0
  526. package/dist/esm/internal/EngineJj.d.ts.map +1 -0
  527. package/dist/esm/internal/EngineJj.js +29 -0
  528. package/dist/esm/internal/EngineJj.js.map +1 -0
  529. package/dist/esm/internal/EngineStateSchema.d.ts +68 -0
  530. package/dist/esm/internal/EngineStateSchema.d.ts.map +1 -0
  531. package/dist/esm/internal/EngineStateSchema.js +53 -0
  532. package/dist/esm/internal/EngineStateSchema.js.map +1 -0
  533. package/dist/esm/internal/ExecutionSnapshotRead.d.ts +162 -0
  534. package/dist/esm/internal/ExecutionSnapshotRead.d.ts.map +1 -0
  535. package/dist/esm/internal/ExecutionSnapshotRead.js +218 -0
  536. package/dist/esm/internal/ExecutionSnapshotRead.js.map +1 -0
  537. package/dist/esm/internal/ExecutionSnapshotRelations.d.ts +39 -0
  538. package/dist/esm/internal/ExecutionSnapshotRelations.d.ts.map +1 -0
  539. package/dist/esm/internal/ExecutionSnapshotRelations.js +81 -0
  540. package/dist/esm/internal/ExecutionSnapshotRelations.js.map +1 -0
  541. package/dist/esm/internal/ExitEncoding.d.ts +180 -0
  542. package/dist/esm/internal/ExitEncoding.d.ts.map +1 -0
  543. package/dist/esm/internal/ExitEncoding.js +361 -0
  544. package/dist/esm/internal/ExitEncoding.js.map +1 -0
  545. package/dist/esm/internal/FileBoundarySnapshot.d.ts +14 -0
  546. package/dist/esm/internal/FileBoundarySnapshot.d.ts.map +1 -0
  547. package/dist/esm/internal/FileBoundarySnapshot.js +29 -0
  548. package/dist/esm/internal/FileBoundarySnapshot.js.map +1 -0
  549. package/dist/esm/internal/FileEnumeration.d.ts +127 -0
  550. package/dist/esm/internal/FileEnumeration.d.ts.map +1 -0
  551. package/dist/esm/internal/FileEnumeration.js +236 -0
  552. package/dist/esm/internal/FileEnumeration.js.map +1 -0
  553. package/dist/esm/internal/HostReflection.d.ts +80 -0
  554. package/dist/esm/internal/HostReflection.d.ts.map +1 -0
  555. package/dist/esm/internal/HostReflection.js +98 -0
  556. package/dist/esm/internal/HostReflection.js.map +1 -0
  557. package/dist/esm/internal/JournalRecords.d.ts +325 -0
  558. package/dist/esm/internal/JournalRecords.d.ts.map +1 -0
  559. package/dist/esm/internal/JournalRecords.js +306 -0
  560. package/dist/esm/internal/JournalRecords.js.map +1 -0
  561. package/dist/esm/internal/NodeJournal.d.ts +157 -0
  562. package/dist/esm/internal/NodeJournal.d.ts.map +1 -0
  563. package/dist/esm/internal/NodeJournal.js +298 -0
  564. package/dist/esm/internal/NodeJournal.js.map +1 -0
  565. package/dist/esm/internal/Ordering.d.ts +14 -0
  566. package/dist/esm/internal/Ordering.d.ts.map +1 -0
  567. package/dist/esm/internal/Ordering.js +14 -0
  568. package/dist/esm/internal/Ordering.js.map +1 -0
  569. package/dist/esm/internal/PlanInputs.d.ts +14 -0
  570. package/dist/esm/internal/PlanInputs.d.ts.map +1 -0
  571. package/dist/esm/internal/PlanInputs.js +57 -0
  572. package/dist/esm/internal/PlanInputs.js.map +1 -0
  573. package/dist/esm/internal/PlanMerges.d.ts +178 -0
  574. package/dist/esm/internal/PlanMerges.d.ts.map +1 -0
  575. package/dist/esm/internal/PlanMerges.js +113 -0
  576. package/dist/esm/internal/PlanMerges.js.map +1 -0
  577. package/dist/esm/internal/ProvenanceSlot.d.ts +30 -0
  578. package/dist/esm/internal/ProvenanceSlot.d.ts.map +1 -0
  579. package/dist/esm/internal/ProvenanceSlot.js +39 -0
  580. package/dist/esm/internal/ProvenanceSlot.js.map +1 -0
  581. package/dist/esm/internal/ResultEnvelope.d.ts +88 -0
  582. package/dist/esm/internal/ResultEnvelope.d.ts.map +1 -0
  583. package/dist/esm/internal/ResultEnvelope.js +83 -0
  584. package/dist/esm/internal/ResultEnvelope.js.map +1 -0
  585. package/dist/esm/internal/RetentionOps.d.ts +414 -0
  586. package/dist/esm/internal/RetentionOps.d.ts.map +1 -0
  587. package/dist/esm/internal/RetentionOps.js +576 -0
  588. package/dist/esm/internal/RetentionOps.js.map +1 -0
  589. package/dist/esm/internal/RunCatalogOps.d.ts +118 -0
  590. package/dist/esm/internal/RunCatalogOps.d.ts.map +1 -0
  591. package/dist/esm/internal/RunCatalogOps.js +120 -0
  592. package/dist/esm/internal/RunCatalogOps.js.map +1 -0
  593. package/dist/esm/internal/RunCoordinator.d.ts +78 -0
  594. package/dist/esm/internal/RunCoordinator.d.ts.map +1 -0
  595. package/dist/esm/internal/RunCoordinator.js +115 -0
  596. package/dist/esm/internal/RunCoordinator.js.map +1 -0
  597. package/dist/esm/internal/RunDriver.d.ts +192 -0
  598. package/dist/esm/internal/RunDriver.d.ts.map +1 -0
  599. package/dist/esm/internal/RunDriver.js +2334 -0
  600. package/dist/esm/internal/RunDriver.js.map +1 -0
  601. package/dist/esm/internal/RunLifecycle.d.ts +22 -0
  602. package/dist/esm/internal/RunLifecycle.d.ts.map +1 -0
  603. package/dist/esm/internal/RunLifecycle.js +49 -0
  604. package/dist/esm/internal/RunLifecycle.js.map +1 -0
  605. package/dist/esm/internal/RunListing.d.ts +78 -0
  606. package/dist/esm/internal/RunListing.d.ts.map +1 -0
  607. package/dist/esm/internal/RunListing.js +146 -0
  608. package/dist/esm/internal/RunListing.js.map +1 -0
  609. package/dist/esm/internal/RunListingError.d.ts +35 -0
  610. package/dist/esm/internal/RunListingError.d.ts.map +1 -0
  611. package/dist/esm/internal/RunListingError.js +27 -0
  612. package/dist/esm/internal/RunListingError.js.map +1 -0
  613. package/dist/esm/internal/RuntimeGraph.d.ts +73 -0
  614. package/dist/esm/internal/RuntimeGraph.d.ts.map +1 -0
  615. package/dist/esm/internal/RuntimeGraph.js +182 -0
  616. package/dist/esm/internal/RuntimeGraph.js.map +1 -0
  617. package/dist/esm/internal/SandboxedExecution.d.ts +80 -0
  618. package/dist/esm/internal/SandboxedExecution.d.ts.map +1 -0
  619. package/dist/esm/internal/SandboxedExecution.js +107 -0
  620. package/dist/esm/internal/SandboxedExecution.js.map +1 -0
  621. package/dist/esm/internal/StateTransaction.d.ts +44 -0
  622. package/dist/esm/internal/StateTransaction.d.ts.map +1 -0
  623. package/dist/esm/internal/StateTransaction.js +54 -0
  624. package/dist/esm/internal/StateTransaction.js.map +1 -0
  625. package/dist/esm/internal/StepFacts.d.ts +14 -0
  626. package/dist/esm/internal/StepFacts.d.ts.map +1 -0
  627. package/dist/esm/internal/StepFacts.js +35 -0
  628. package/dist/esm/internal/StepFacts.js.map +1 -0
  629. package/dist/esm/internal/TypedEvents.d.ts +14 -0
  630. package/dist/esm/internal/TypedEvents.d.ts.map +1 -0
  631. package/dist/esm/internal/TypedEvents.js +14 -0
  632. package/dist/esm/internal/TypedEvents.js.map +1 -0
  633. package/dist/esm/migrations/0001_initial.d.ts +17 -0
  634. package/dist/esm/migrations/0001_initial.d.ts.map +1 -0
  635. package/dist/esm/migrations/0001_initial.js +41 -0
  636. package/dist/esm/migrations/0001_initial.js.map +1 -0
  637. package/dist/esm/migrations/0002_selection_store.d.ts +15 -0
  638. package/dist/esm/migrations/0002_selection_store.d.ts.map +1 -0
  639. package/dist/esm/migrations/0002_selection_store.js +34 -0
  640. package/dist/esm/migrations/0002_selection_store.js.map +1 -0
  641. package/dist/esm/migrations/0003_plan_inputs.d.ts +13 -0
  642. package/dist/esm/migrations/0003_plan_inputs.d.ts.map +1 -0
  643. package/dist/esm/migrations/0003_plan_inputs.js +70 -0
  644. package/dist/esm/migrations/0003_plan_inputs.js.map +1 -0
  645. package/dist/esm/migrations/0004_plan_environment.d.ts +14 -0
  646. package/dist/esm/migrations/0004_plan_environment.d.ts.map +1 -0
  647. package/dist/esm/migrations/0004_plan_environment.js +33 -0
  648. package/dist/esm/migrations/0004_plan_environment.js.map +1 -0
  649. package/dist/esm/migrations/0005_plan_merges.d.ts +14 -0
  650. package/dist/esm/migrations/0005_plan_merges.d.ts.map +1 -0
  651. package/dist/esm/migrations/0005_plan_merges.js +59 -0
  652. package/dist/esm/migrations/0005_plan_merges.js.map +1 -0
  653. package/dist/esm/migrations/0006_execution_listing.d.ts +15 -0
  654. package/dist/esm/migrations/0006_execution_listing.d.ts.map +1 -0
  655. package/dist/esm/migrations/0006_execution_listing.js +81 -0
  656. package/dist/esm/migrations/0006_execution_listing.js.map +1 -0
  657. package/dist/esm/migrations/0007_run_parent_sequence.d.ts +15 -0
  658. package/dist/esm/migrations/0007_run_parent_sequence.d.ts.map +1 -0
  659. package/dist/esm/migrations/0007_run_parent_sequence.js +18 -0
  660. package/dist/esm/migrations/0007_run_parent_sequence.js.map +1 -0
  661. package/dist/esm/migrations/0008_deferred_consumption.d.ts +16 -0
  662. package/dist/esm/migrations/0008_deferred_consumption.d.ts.map +1 -0
  663. package/dist/esm/migrations/0008_deferred_consumption.js +24 -0
  664. package/dist/esm/migrations/0008_deferred_consumption.js.map +1 -0
  665. package/dist/esm/migrations/0009_deferred_clock_facts.d.ts +24 -0
  666. package/dist/esm/migrations/0009_deferred_clock_facts.d.ts.map +1 -0
  667. package/dist/esm/migrations/0009_deferred_clock_facts.js +127 -0
  668. package/dist/esm/migrations/0009_deferred_clock_facts.js.map +1 -0
  669. package/dist/esm/migrations/0010_pending_cancellation.d.ts +15 -0
  670. package/dist/esm/migrations/0010_pending_cancellation.d.ts.map +1 -0
  671. package/dist/esm/migrations/0010_pending_cancellation.js +19 -0
  672. package/dist/esm/migrations/0010_pending_cancellation.js.map +1 -0
  673. package/dist/esm/test/TestStores.d.ts +89 -0
  674. package/dist/esm/test/TestStores.d.ts.map +1 -0
  675. package/dist/esm/test/TestStores.js +103 -0
  676. package/dist/esm/test/TestStores.js.map +1 -0
  677. package/docs/README.md +113 -0
  678. package/docs/api.md +1494 -0
  679. package/docs/concepts/attempts-and-replay.md +149 -0
  680. package/docs/concepts/cache-admission.md +265 -0
  681. package/docs/concepts/call-facts.md +86 -0
  682. package/docs/concepts/durable-waits.md +175 -0
  683. package/docs/concepts/execution-facts.md +90 -0
  684. package/docs/concepts/ownership-and-fencing.md +128 -0
  685. package/docs/concepts/step-boundaries.md +148 -0
  686. package/docs/concepts/workspace-transactions.md +199 -0
  687. package/docs/event-types.md +14 -0
  688. package/docs/guides/back-up-and-restore.md +164 -0
  689. package/docs/guides/collect-unreferenced-artifacts.md +128 -0
  690. package/docs/guides/compose-a-durable-engine.md +146 -0
  691. package/docs/guides/coordinate-two-processes.md +120 -0
  692. package/docs/guides/defer-work-with-selection.md +171 -0
  693. package/docs/guides/delete-old-run-history.md +154 -0
  694. package/docs/guides/drive-a-plan.md +314 -0
  695. package/docs/guides/observe-engine-metrics.md +98 -0
  696. package/docs/guides/observe-executions.md +187 -0
  697. package/docs/guides/reclaim-runs-from-a-dead-host.md +133 -0
  698. package/docs/guides/share-a-cache-across-machines.md +134 -0
  699. package/docs/guides/testing.md +123 -0
  700. package/docs/installation.md +102 -0
  701. package/docs/quickstart.md +215 -0
  702. package/docs/troubleshooting.md +347 -0
  703. package/package.json +438 -3
  704. package/src/ArtifactGc.ts +408 -0
  705. package/src/ArtifactSync.ts +278 -0
  706. package/src/CacheSync.ts +131 -0
  707. package/src/DeferredClockFold.ts +586 -0
  708. package/src/DisasterRecovery.ts +888 -0
  709. package/src/DurableEngineState.ts +2656 -0
  710. package/src/EngineStore.ts +656 -0
  711. package/src/EngineStoreMetrics.ts +331 -0
  712. package/src/Errors.ts +28 -0
  713. package/src/EventTypes.ts +27 -0
  714. package/src/ExecutionFacts.ts +125 -0
  715. package/src/ExecutionSnapshot.ts +186 -0
  716. package/src/Inconsistency.ts +253 -0
  717. package/src/Migrations.ts +95 -0
  718. package/src/OwnerIdentity.ts +125 -0
  719. package/src/PlanInputStore.ts +292 -0
  720. package/src/PlanMergeStore.ts +330 -0
  721. package/src/PlanScheduler.ts +1806 -0
  722. package/src/Reconciliation.ts +224 -0
  723. package/src/ReplayOnly.ts +95 -0
  724. package/src/Retention.ts +214 -0
  725. package/src/RunCatalogRead.ts +27 -0
  726. package/src/RunChangeFeed.ts +125 -0
  727. package/src/RunState.ts +137 -0
  728. package/src/Selection.ts +683 -0
  729. package/src/SelectionStore.ts +353 -0
  730. package/src/StepBoundary.ts +1165 -0
  731. package/src/StepCacheFold.ts +244 -0
  732. package/src/StepSandbox.ts +110 -0
  733. package/src/WakeBus.ts +167 -0
  734. package/src/WorkspaceSandbox.ts +1604 -0
  735. package/src/index.ts +185 -0
  736. package/src/internal/ActionPersistence.ts +2687 -0
  737. package/src/internal/ArtifactRoots.ts +92 -0
  738. package/src/internal/AttemptAdmission.ts +76 -0
  739. package/src/internal/AttemptLifecycle.ts +163 -0
  740. package/src/internal/AttemptProbe.ts +90 -0
  741. package/src/internal/CacheAdmission.ts +133 -0
  742. package/src/internal/CacheAgeHistory.ts +58 -0
  743. package/src/internal/CacheAgeVerdicts.ts +61 -0
  744. package/src/internal/CacheOutputPolicy.ts +82 -0
  745. package/src/internal/CachePublication.ts +153 -0
  746. package/src/internal/CallFacts.ts +87 -0
  747. package/src/internal/CopiedRecord.ts +201 -0
  748. package/src/internal/DeferredPersistence.ts +459 -0
  749. package/src/internal/EffectRecords.ts +136 -0
  750. package/src/internal/EngineJj.ts +30 -0
  751. package/src/internal/EngineStateSchema.ts +92 -0
  752. package/src/internal/ExecutionSnapshotRead.ts +298 -0
  753. package/src/internal/ExecutionSnapshotRelations.ts +121 -0
  754. package/src/internal/ExitEncoding.ts +453 -0
  755. package/src/internal/FileBoundarySnapshot.ts +39 -0
  756. package/src/internal/FileEnumeration.ts +334 -0
  757. package/src/internal/HostReflection.ts +128 -0
  758. package/src/internal/JournalRecords.ts +396 -0
  759. package/src/internal/NodeJournal.ts +340 -0
  760. package/src/internal/Ordering.ts +14 -0
  761. package/src/internal/PlanInputs.ts +62 -0
  762. package/src/internal/PlanMerges.ts +123 -0
  763. package/src/internal/ProvenanceSlot.ts +52 -0
  764. package/src/internal/ResultEnvelope.ts +118 -0
  765. package/src/internal/RetentionOps.ts +865 -0
  766. package/src/internal/RunCatalogOps.ts +174 -0
  767. package/src/internal/RunCoordinator.ts +215 -0
  768. package/src/internal/RunDriver.ts +3152 -0
  769. package/src/internal/RunLifecycle.ts +53 -0
  770. package/src/internal/RunListing.ts +210 -0
  771. package/src/internal/RunListingError.ts +37 -0
  772. package/src/internal/RuntimeGraph.ts +253 -0
  773. package/src/internal/SandboxedExecution.ts +165 -0
  774. package/src/internal/StateTransaction.ts +71 -0
  775. package/src/internal/StepFacts.ts +36 -0
  776. package/src/internal/TypedEvents.ts +29 -0
  777. package/src/migrations/0001_initial.ts +51 -0
  778. package/src/migrations/0002_selection_store.ts +38 -0
  779. package/src/migrations/0003_plan_inputs.ts +75 -0
  780. package/src/migrations/0004_plan_environment.ts +34 -0
  781. package/src/migrations/0005_plan_merges.ts +60 -0
  782. package/src/migrations/0006_execution_listing.ts +86 -0
  783. package/src/migrations/0007_run_parent_sequence.ts +19 -0
  784. package/src/migrations/0008_deferred_consumption.ts +27 -0
  785. package/src/migrations/0009_deferred_clock_facts.ts +163 -0
  786. package/src/migrations/0010_pending_cancellation.ts +20 -0
  787. package/src/test/TestStores.ts +145 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/RuntimeGraph.ts"],
4
+ "sourcesContent": ["/**\n * Rebuildable scheduler indexes. Only verified, append-only plan nodes enter\n * here; durable plans, observations and attempts remain authoritative.\n *\n * @since 1.0.0\n */\n\nimport type { Plan, Scheduling } from \"@smthrs/plan\"\nimport type { Outcome } from \"../PlanScheduler.ts\"\n\n/** Mutable coordinator state; dispatch fibers own only attempt-local progress.\n * @since 1.0.0\n * @category models\n */\nexport interface NodeState {\n status: \"pending\" | \"running\" | \"settled\"\n outcome: Outcome\n attempts: number\n rebases: number\n waited: number\n dispatchKey: string\n}\n\n/** Counts explicit graph work, not host time or VM-internal allocations.\n * `allocations` counts new containers and records, including frontier copies\n * and candidate records. Collection backing storage and sort internals are\n * not observable here. Admission policy work is owned by Scheduling.\n * @since 1.0.0\n * @category diagnostics\n */\nexport interface Work {\n nodes: number\n edges: number\n allocations: number\n membership: number\n}\n\ninterface Vertex {\n readonly node: Plan.PlanNode\n readonly index: number\n readonly state: NodeState\n readonly dependencies: Set<Vertex>\n readonly dependents: Set<Vertex>\n unresolved: number\n blocked: number\n propagated: Outcome | undefined\n}\n\nconst work = (): Work => ({ nodes: 0, edges: 0, allocations: 0, membership: 0 })\nconst blocks = (outcome: Outcome): boolean => outcome !== \"built\" && outcome !== \"clean\"\n\n/** Run-local adjacency, readiness, membership and work counters.\n *\n * A provisional outcome is staged while reconciliation reads the journal.\n * Only `reconcile` publishes it to dependents. A later verdict can change an\n * outcome's blocking contribution, but never decrement indegree twice.\n *\n * @since 1.0.0\n * @category models\n */\nexport interface RuntimeGraph {\n readonly states: ReadonlyMap<string, NodeState>\n readonly remaining: number\n readonly cost: {\n readonly update: Work\n readonly settlement: Work\n readonly frontier: Work\n readonly admission: Work\n readonly reachability: Work\n }\n /** Adds only the newly admitted suffix, synchronously after its durable commit. */\n readonly append: (nodes: ReadonlyArray<Plan.PlanNode>) => void\n readonly stage: (nodeId: string, outcome: Outcome) => void\n readonly reconcile: () => void\n /** Declaration-ordered snapshots preserve passive-settlement wave ordering. */\n readonly blocked: () => ReadonlyArray<Plan.PlanNode>\n readonly ready: () => ReadonlyArray<Plan.PlanNode>\n readonly candidates: (ready: ReadonlyArray<Plan.PlanNode>) => ReadonlyArray<Scheduling.Candidate>\n readonly start: (nodeId: string) => void\n /** Discovered edges affect readiness only, never declared file versions. */\n readonly reorder: (nodeId: string, owners: ReadonlyArray<string>) => void\n /** Visits declared ancestors once per query, including a not-yet-admitted suffix node. */\n readonly visitAncestors: (node: Plan.PlanNode, visit: (node: Plan.PlanNode) => void) => void\n}\n\n/** Builds one private graph per run/resume. Recovery stages durable settlements\n * before the first admission; ordinary attempt replay still verifies content.\n * @since 1.0.0\n * @category constructors\n */\nexport const make = (nodes: ReadonlyArray<Plan.PlanNode>): RuntimeGraph => {\n const vertices = new Map<string, Vertex>()\n const states = new Map<string, NodeState>()\n const ready = new Set<Vertex>()\n const blocked = new Set<Vertex>()\n const staged = new Set<Vertex>()\n const cost = { update: work(), settlement: work(), frontier: work(), admission: work(), reachability: work() }\n // The graph object, cost records, maps, sets and method closures have a\n // constant per-run footprint. Count the explicit containers/records.\n cost.update.allocations = 12\n let remaining = 0\n\n const refresh = (vertex: Vertex): void => {\n ready.delete(vertex)\n blocked.delete(vertex)\n if (vertex.state.status === \"pending\" && vertex.unresolved === 0) {\n if (vertex.blocked > 0) blocked.add(vertex)\n else ready.add(vertex)\n }\n }\n\n const edge = (target: Vertex, dependency: Vertex, count: Work): void => {\n count.edges++\n count.membership++\n if (target.dependencies.has(dependency)) return\n target.dependencies.add(dependency)\n dependency.dependents.add(target)\n if (dependency.propagated === undefined) target.unresolved++\n else if (blocks(dependency.propagated)) target.blocked++\n }\n\n const append = (suffix: ReadonlyArray<Plan.PlanNode>): void => {\n // Register the whole suffix first: declaration order need not be a\n // topological order. Verified generations never rewrite old vertices.\n for (const node of suffix) {\n const state: NodeState = {\n status: \"pending\",\n outcome: \"skipped\",\n attempts: 0,\n rebases: 0,\n waited: 0,\n dispatchKey: \"\"\n }\n const vertex: Vertex = {\n node,\n index: vertices.size,\n state,\n dependencies: new Set(),\n dependents: new Set(),\n unresolved: 0,\n blocked: 0,\n propagated: undefined\n }\n vertices.set(node.id, vertex)\n states.set(node.id, state)\n remaining++\n cost.update.nodes++\n cost.update.allocations += 4\n }\n for (const node of suffix) {\n const vertex = vertices.get(node.id)!\n cost.update.nodes++\n cost.update.membership++\n for (const dependency of node.dependsOn) {\n cost.update.membership++\n edge(vertex, vertices.get(dependency)!, cost.update)\n }\n refresh(vertex)\n }\n }\n\n const snapshot = (frontier: ReadonlySet<Vertex>): ReadonlyArray<Plan.PlanNode> => {\n cost.frontier.nodes += frontier.size\n cost.frontier.allocations += 2\n return [...frontier].sort((left, right) => left.index - right.index).map((vertex) => vertex.node)\n }\n\n append(nodes)\n return {\n states,\n get remaining() {\n return remaining\n },\n cost,\n append,\n stage: (nodeId, outcome) => {\n cost.settlement.nodes++\n cost.settlement.membership++\n const vertex = vertices.get(nodeId)!\n vertex.state.status = \"settled\"\n vertex.state.outcome = outcome\n staged.add(vertex)\n },\n reconcile: () => {\n for (const vertex of staged) {\n cost.settlement.nodes++\n const previous = vertex.propagated\n const outcome = vertex.state.outcome\n if (previous === outcome) continue\n if (previous === undefined) remaining--\n const delta = Number(blocks(outcome)) - Number(previous !== undefined && blocks(previous))\n vertex.propagated = outcome\n refresh(vertex)\n for (const dependent of vertex.dependents) {\n cost.settlement.edges++\n cost.settlement.nodes++\n if (previous === undefined) dependent.unresolved--\n dependent.blocked += delta\n refresh(dependent)\n }\n }\n staged.clear()\n },\n blocked: () => snapshot(blocked),\n ready: () => snapshot(ready),\n candidates: (frontier) => {\n cost.admission.allocations += 1 + frontier.length\n return frontier.map((node) => {\n cost.admission.nodes++\n cost.admission.membership++\n const vertex = vertices.get(node.id)!\n return { node, order: vertex.index, waited: vertex.state.waited }\n })\n },\n start: (nodeId) => {\n cost.admission.nodes++\n cost.admission.membership++\n const vertex = vertices.get(nodeId)!\n vertex.state.status = \"running\"\n ready.delete(vertex)\n },\n reorder: (nodeId, owners) => {\n const dependency = vertices.get(nodeId)!\n cost.update.membership++\n for (const owner of owners) {\n cost.update.nodes++\n cost.update.membership++\n const target = vertices.get(owner)\n if (target?.state.status !== \"pending\") continue\n edge(target, dependency, cost.update)\n refresh(target)\n }\n },\n visitAncestors: (node, visit) => {\n const seen = new Set<string>([node.id])\n const stack = [...node.dependsOn]\n cost.reachability.allocations += 2\n cost.reachability.edges += stack.length\n while (stack.length > 0) {\n const id = stack.pop()!\n cost.reachability.membership++\n if (seen.has(id)) continue\n seen.add(id)\n const predecessor = vertices.get(id)!.node\n cost.reachability.membership++\n cost.reachability.nodes++\n visit(predecessor)\n cost.reachability.edges += predecessor.dependsOn.length\n stack.push(...predecessor.dependsOn)\n }\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgDA,MAAM,OAAO,OAAa,EAAE,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,YAAY,EAAE;AAC9E,MAAM,SAAS,CAAC,YAA8B,YAAY,WAAW,YAAY;AAyC1E,MAAM,OAAO,CAAC,UAAsD;AACzE,QAAM,WAAW,oBAAI,IAAoB;AACzC,QAAM,SAAS,oBAAI,IAAuB;AAC1C,QAAM,QAAQ,oBAAI,IAAY;AAC9B,QAAM,UAAU,oBAAI,IAAY;AAChC,QAAM,SAAS,oBAAI,IAAY;AAC/B,QAAM,OAAO,EAAE,QAAQ,KAAK,GAAG,YAAY,KAAK,GAAG,UAAU,KAAK,GAAG,WAAW,KAAK,GAAG,cAAc,KAAK,EAAE;AAG7G,OAAK,OAAO,cAAc;AAC1B,MAAI,YAAY;AAEhB,QAAM,UAAU,CAAC,WAAyB;AACxC,UAAM,OAAO,MAAM;AACnB,YAAQ,OAAO,MAAM;AACrB,QAAI,OAAO,MAAM,WAAW,aAAa,OAAO,eAAe,GAAG;AAChE,UAAI,OAAO,UAAU,EAAG,SAAQ,IAAI,MAAM;AAAA,UACrC,OAAM,IAAI,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,OAAO,CAAC,QAAgB,YAAoB,UAAsB;AACtE,UAAM;AACN,UAAM;AACN,QAAI,OAAO,aAAa,IAAI,UAAU,EAAG;AACzC,WAAO,aAAa,IAAI,UAAU;AAClC,eAAW,WAAW,IAAI,MAAM;AAChC,QAAI,WAAW,eAAe,OAAW,QAAO;AAAA,aACvC,OAAO,WAAW,UAAU,EAAG,QAAO;AAAA,EACjD;AAEA,QAAM,SAAS,CAAC,WAA+C;AAG7D,eAAW,QAAQ,QAAQ;AACzB,YAAM,QAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,aAAa;AAAA,MACf;AACA,YAAM,SAAiB;AAAA,QACrB;AAAA,QACA,OAAO,SAAS;AAAA,QAChB;AAAA,QACA,cAAc,oBAAI,IAAI;AAAA,QACtB,YAAY,oBAAI,IAAI;AAAA,QACpB,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,YAAY;AAAA,MACd;AACA,eAAS,IAAI,KAAK,IAAI,MAAM;AAC5B,aAAO,IAAI,KAAK,IAAI,KAAK;AACzB;AACA,WAAK,OAAO;AACZ,WAAK,OAAO,eAAe;AAAA,IAC7B;AACA,eAAW,QAAQ,QAAQ;AACzB,YAAM,SAAS,SAAS,IAAI,KAAK,EAAE;AACnC,WAAK,OAAO;AACZ,WAAK,OAAO;AACZ,iBAAW,cAAc,KAAK,WAAW;AACvC,aAAK,OAAO;AACZ,aAAK,QAAQ,SAAS,IAAI,UAAU,GAAI,KAAK,MAAM;AAAA,MACrD;AACA,cAAQ,MAAM;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,WAAW,CAAC,aAAgE;AAChF,SAAK,SAAS,SAAS,SAAS;AAChC,SAAK,SAAS,eAAe;AAC7B,WAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,MAAM,UAAU,KAAK,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,WAAW,OAAO,IAAI;AAAA,EAClG;AAEA,SAAO,KAAK;AACZ,SAAO;AAAA,IACL;AAAA,IACA,IAAI,YAAY;AACd,aAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,CAAC,QAAQ,YAAY;AAC1B,WAAK,WAAW;AAChB,WAAK,WAAW;AAChB,YAAM,SAAS,SAAS,IAAI,MAAM;AAClC,aAAO,MAAM,SAAS;AACtB,aAAO,MAAM,UAAU;AACvB,aAAO,IAAI,MAAM;AAAA,IACnB;AAAA,IACA,WAAW,MAAM;AACf,iBAAW,UAAU,QAAQ;AAC3B,aAAK,WAAW;AAChB,cAAM,WAAW,OAAO;AACxB,cAAM,UAAU,OAAO,MAAM;AAC7B,YAAI,aAAa,QAAS;AAC1B,YAAI,aAAa,OAAW;AAC5B,cAAM,QAAQ,OAAO,OAAO,OAAO,CAAC,IAAI,OAAO,aAAa,UAAa,OAAO,QAAQ,CAAC;AACzF,eAAO,aAAa;AACpB,gBAAQ,MAAM;AACd,mBAAW,aAAa,OAAO,YAAY;AACzC,eAAK,WAAW;AAChB,eAAK,WAAW;AAChB,cAAI,aAAa,OAAW,WAAU;AACtC,oBAAU,WAAW;AACrB,kBAAQ,SAAS;AAAA,QACnB;AAAA,MACF;AACA,aAAO,MAAM;AAAA,IACf;AAAA,IACA,SAAS,MAAM,SAAS,OAAO;AAAA,IAC/B,OAAO,MAAM,SAAS,KAAK;AAAA,IAC3B,YAAY,CAAC,aAAa;AACxB,WAAK,UAAU,eAAe,IAAI,SAAS;AAC3C,aAAO,SAAS,IAAI,CAAC,SAAS;AAC5B,aAAK,UAAU;AACf,aAAK,UAAU;AACf,cAAM,SAAS,SAAS,IAAI,KAAK,EAAE;AACnC,eAAO,EAAE,MAAM,OAAO,OAAO,OAAO,QAAQ,OAAO,MAAM,OAAO;AAAA,MAClE,CAAC;AAAA,IACH;AAAA,IACA,OAAO,CAAC,WAAW;AACjB,WAAK,UAAU;AACf,WAAK,UAAU;AACf,YAAM,SAAS,SAAS,IAAI,MAAM;AAClC,aAAO,MAAM,SAAS;AACtB,YAAM,OAAO,MAAM;AAAA,IACrB;AAAA,IACA,SAAS,CAAC,QAAQ,WAAW;AAC3B,YAAM,aAAa,SAAS,IAAI,MAAM;AACtC,WAAK,OAAO;AACZ,iBAAW,SAAS,QAAQ;AAC1B,aAAK,OAAO;AACZ,aAAK,OAAO;AACZ,cAAM,SAAS,SAAS,IAAI,KAAK;AACjC,YAAI,QAAQ,MAAM,WAAW,UAAW;AACxC,aAAK,QAAQ,YAAY,KAAK,MAAM;AACpC,gBAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAAA,IACA,gBAAgB,CAAC,MAAM,UAAU;AAC/B,YAAM,OAAO,oBAAI,IAAY,CAAC,KAAK,EAAE,CAAC;AACtC,YAAM,QAAQ,CAAC,GAAG,KAAK,SAAS;AAChC,WAAK,aAAa,eAAe;AACjC,WAAK,aAAa,SAAS,MAAM;AACjC,aAAO,MAAM,SAAS,GAAG;AACvB,cAAM,KAAK,MAAM,IAAI;AACrB,aAAK,aAAa;AAClB,YAAI,KAAK,IAAI,EAAE,EAAG;AAClB,aAAK,IAAI,EAAE;AACX,cAAM,cAAc,SAAS,IAAI,EAAE,EAAG;AACtC,aAAK,aAAa;AAClB,aAAK,aAAa;AAClB,cAAM,WAAW;AACjB,aAAK,aAAa,SAAS,YAAY,UAAU;AACjD,cAAM,KAAK,GAAG,YAAY,SAAS;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The isolated half of an attempt: run the body in a workspace transaction,
3
+ * copy its diff bundle back, and rebase a bounded number of times when the
4
+ * host moved underneath it.
5
+ *
6
+ * Copy-back has no human review gate.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+ import type { FileBoundary } from "@smthrs/flow/FileBoundary";
11
+ import type * as Crypto from "effect/Crypto";
12
+ import * as Effect from "effect/Effect";
13
+ import type * as FileSystem from "effect/FileSystem";
14
+ import * as WorkspaceSandbox from "../WorkspaceSandbox.ts";
15
+ /**
16
+ * An isolated execution whose diff bundle is now on the host.
17
+ *
18
+ * @since 0.1.0
19
+ * @category models
20
+ */
21
+ export interface Settlement {
22
+ readonly result: unknown;
23
+ /**
24
+ * The content address of the applied bundle: a digest over every
25
+ * `(path, beforeDigest, afterDigest)` triple. It is the journal's handle on
26
+ * the copy-back, and the `diffIdentity` a deviation carries.
27
+ */
28
+ readonly bundleIdentity: string;
29
+ readonly files: ReadonlyArray<WorkspaceSandbox.FileChange>;
30
+ readonly effects: ReadonlyArray<WorkspaceSandbox.QueuedEffect>;
31
+ /**
32
+ * Paths the body wrote outside its declared write set. Non-empty only in
33
+ * expected mode — hard mode fails instead — and the whole tree is in view,
34
+ * not just the declared read set `StepBoundary` can re-measure.
35
+ */
36
+ readonly deviations: ReadonlyArray<string>;
37
+ /** How many times copy-back lost a race and the attempt re-ran from a fresh base. */
38
+ readonly rebases: number;
39
+ }
40
+ /**
41
+ * How many times a losing copy-back re-runs the body from a fresh base.
42
+ *
43
+ * Bounded on purpose: an unbounded rebase against a workspace under sustained
44
+ * concurrent modification never converges. This retry budget does not
45
+ * recreate the removed worktree-lane surface.
46
+ *
47
+ * @since 0.1.0
48
+ * @category models
49
+ */
50
+ export declare const defaultMaxRebases = 3;
51
+ /**
52
+ * Runs one action body inside a workspace transaction and copies its result
53
+ * back.
54
+ *
55
+ * The host is untouched until copy-back, so every refusal below leaves the
56
+ * tree exactly as it found it:
57
+ *
58
+ * - a body failure propagates unchanged, because it is the action's own
59
+ * declared error and the retry policy must still match on it;
60
+ * - an execution the declaration did not predict fails with the boundary's own
61
+ * {@link StepBoundary.UndeclaredWrite}, which routes it through the caller's
62
+ * existing hard-violation classification instead of inventing a second one;
63
+ * - a lost copy-back race re-runs the body from a fresh base up to
64
+ * `maxRebases` times before surfacing the conflict.
65
+ *
66
+ * @since 0.1.0
67
+ * @category constructors
68
+ */
69
+ export declare const execute: (options: {
70
+ readonly sandbox: WorkspaceSandbox.Service;
71
+ readonly descriptor: FileBoundary;
72
+ /**
73
+ * The action body. The engine's encoded effect erases its requirements, so
74
+ * the sandbox's own surfaces are named here: they are what `execute` seeds,
75
+ * and naming them keeps a caller from having to launder the type.
76
+ */
77
+ readonly workflow: Effect.Effect<unknown, unknown, WorkspaceSandbox.Workspace | FileSystem.FileSystem>;
78
+ readonly maxRebases?: number | undefined;
79
+ }) => Effect.Effect<Settlement, unknown, Crypto.Crypto>;
80
+ //# sourceMappingURL=SandboxedExecution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SandboxedExecution.d.ts","sourceRoot":"","sources":["../../../src/internal/SandboxedExecution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAG7D,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAIpD,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAC1D,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC9D;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC1C,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAqBlC;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,OAAO,GAAI,SAAS;IAC/B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAA;IAC1C,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACtG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,KAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAyDnD,CAAA"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var SandboxedExecution_exports = {};
30
+ __export(SandboxedExecution_exports, {
31
+ defaultMaxRebases: () => defaultMaxRebases,
32
+ execute: () => execute
33
+ });
34
+ module.exports = __toCommonJS(SandboxedExecution_exports);
35
+ var import_keys = require("@smthrs/keys");
36
+ var Cause = __toESM(require("effect/Cause"), 1);
37
+ var Effect = __toESM(require("effect/Effect"), 1);
38
+ var Exit = __toESM(require("effect/Exit"), 1);
39
+ var Schema = __toESM(require("effect/Schema"), 1);
40
+ var StepBoundary = __toESM(require("../StepBoundary.js"), 1);
41
+ var StepSandbox = __toESM(require("../StepSandbox.js"), 1);
42
+ var WorkspaceSandbox = __toESM(require("../WorkspaceSandbox.js"), 1);
43
+ const defaultMaxRebases = 3;
44
+ const bundleIdentity = (entries) => Schema.decodeUnknownEffect(import_keys.DerivedKey)({
45
+ kind: "bundle-identity",
46
+ // Canonicalization substitutes undefined array slots with null. Name and
47
+ // normalize each member first so absence is explicit in this durable key.
48
+ entries: entries.map(([path, before, after]) => ({
49
+ path,
50
+ before: before ?? null,
51
+ after: after ?? null
52
+ }))
53
+ }).pipe(Effect.orDie);
54
+ const conflicted = (cause) => cause.reasons.some(
55
+ (reason) => Cause.isFailReason(reason) && reason.error instanceof WorkspaceSandbox.MaterializationConflict
56
+ );
57
+ const execute = (options) => {
58
+ const maxRebases = options.maxRebases ?? defaultMaxRebases;
59
+ const attempt = (rebases) => Effect.gen(function* () {
60
+ const executed = yield* options.sandbox.execute({
61
+ descriptor: options.descriptor,
62
+ workflow: options.workflow
63
+ });
64
+ if (executed._tag === "Invalidated") {
65
+ const paths = executed.violations.map((violation) => violation.resource.id);
66
+ const identity2 = yield* bundleIdentity(
67
+ executed.provenance.outputs.map((output) => [output.resource.id, void 0, output.digest])
68
+ );
69
+ if (executed.violations.some((violation) => violation.kind === "undeclared-read")) {
70
+ return yield* Effect.fail(
71
+ new StepSandbox.UndeclaredRead({
72
+ code: "undeclared_read",
73
+ paths: executed.violations.filter((violation) => violation.kind === "undeclared-read").map((violation) => violation.resource.id),
74
+ diffIdentity: identity2
75
+ })
76
+ );
77
+ }
78
+ return yield* Effect.fail(
79
+ new StepBoundary.UndeclaredWrite({
80
+ code: "undeclared_write",
81
+ paths,
82
+ diffIdentity: identity2
83
+ })
84
+ );
85
+ }
86
+ const identity = yield* bundleIdentity(
87
+ executed.result.files.map((change) => [change.path, change.beforeDigest, change.afterDigest])
88
+ );
89
+ const applied = yield* options.sandbox.materialize(executed).pipe(Effect.exit);
90
+ if (Exit.isFailure(applied)) {
91
+ return conflicted(applied.cause) && rebases < maxRebases ? yield* attempt(rebases + 1) : yield* Effect.failCause(applied.cause);
92
+ }
93
+ return {
94
+ result: executed.result.output,
95
+ bundleIdentity: identity,
96
+ files: executed.result.files,
97
+ effects: executed.result.effects,
98
+ deviations: executed.violations.map((violation) => violation.resource.id),
99
+ rebases
100
+ };
101
+ });
102
+ return attempt(0);
103
+ };
104
+ //# sourceMappingURL=SandboxedExecution.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/SandboxedExecution.ts"],
4
+ "sourcesContent": ["/**\n * The isolated half of an attempt: run the body in a workspace transaction,\n * copy its diff bundle back, and rebase a bounded number of times when the\n * host moved underneath it.\n *\n * Copy-back has no human review gate.\n *\n * @since 0.1.0\n */\n\nimport type { FileBoundary } from \"@smthrs/flow/FileBoundary\"\nimport { DerivedKey } from \"@smthrs/keys\"\nimport * as Cause from \"effect/Cause\"\nimport type * as Crypto from \"effect/Crypto\"\nimport * as Effect from \"effect/Effect\"\nimport * as Exit from \"effect/Exit\"\nimport type * as FileSystem from \"effect/FileSystem\"\nimport * as Schema from \"effect/Schema\"\nimport * as StepBoundary from \"../StepBoundary.ts\"\nimport * as StepSandbox from \"../StepSandbox.ts\"\nimport * as WorkspaceSandbox from \"../WorkspaceSandbox.ts\"\n\n/**\n * An isolated execution whose diff bundle is now on the host.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Settlement {\n readonly result: unknown\n /**\n * The content address of the applied bundle: a digest over every\n * `(path, beforeDigest, afterDigest)` triple. It is the journal's handle on\n * the copy-back, and the `diffIdentity` a deviation carries.\n */\n readonly bundleIdentity: string\n readonly files: ReadonlyArray<WorkspaceSandbox.FileChange>\n readonly effects: ReadonlyArray<WorkspaceSandbox.QueuedEffect>\n /**\n * Paths the body wrote outside its declared write set. Non-empty only in\n * expected mode \u2014 hard mode fails instead \u2014 and the whole tree is in view,\n * not just the declared read set `StepBoundary` can re-measure.\n */\n readonly deviations: ReadonlyArray<string>\n /** How many times copy-back lost a race and the attempt re-ran from a fresh base. */\n readonly rebases: number\n}\n\n/**\n * How many times a losing copy-back re-runs the body from a fresh base.\n *\n * Bounded on purpose: an unbounded rebase against a workspace under sustained\n * concurrent modification never converges. This retry budget does not\n * recreate the removed worktree-lane surface.\n *\n * @since 0.1.0\n * @category models\n */\nexport const defaultMaxRebases = 3\n\nconst bundleIdentity = (\n entries: ReadonlyArray<readonly [string, string | undefined, string | undefined]>\n): Effect.Effect<string, never, Crypto.Crypto> =>\n Schema.decodeUnknownEffect(DerivedKey)({\n kind: \"bundle-identity\",\n // Canonicalization substitutes undefined array slots with null. Name and\n // normalize each member first so absence is explicit in this durable key.\n entries: entries.map(([path, before, after]) => ({\n path,\n before: before ?? null,\n after: after ?? null\n }))\n }).pipe(Effect.orDie)\n\nconst conflicted = (cause: Cause.Cause<unknown>): boolean =>\n cause.reasons.some((reason) =>\n Cause.isFailReason(reason) && reason.error instanceof WorkspaceSandbox.MaterializationConflict\n )\n\n/**\n * Runs one action body inside a workspace transaction and copies its result\n * back.\n *\n * The host is untouched until copy-back, so every refusal below leaves the\n * tree exactly as it found it:\n *\n * - a body failure propagates unchanged, because it is the action's own\n * declared error and the retry policy must still match on it;\n * - an execution the declaration did not predict fails with the boundary's own\n * {@link StepBoundary.UndeclaredWrite}, which routes it through the caller's\n * existing hard-violation classification instead of inventing a second one;\n * - a lost copy-back race re-runs the body from a fresh base up to\n * `maxRebases` times before surfacing the conflict.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const execute = (options: {\n readonly sandbox: WorkspaceSandbox.Service\n readonly descriptor: FileBoundary\n /**\n * The action body. The engine's encoded effect erases its requirements, so\n * the sandbox's own surfaces are named here: they are what `execute` seeds,\n * and naming them keeps a caller from having to launder the type.\n */\n readonly workflow: Effect.Effect<unknown, unknown, WorkspaceSandbox.Workspace | FileSystem.FileSystem>\n readonly maxRebases?: number | undefined\n}): Effect.Effect<Settlement, unknown, Crypto.Crypto> => {\n const maxRebases = options.maxRebases ?? defaultMaxRebases\n const attempt = (rebases: number): Effect.Effect<Settlement, unknown, Crypto.Crypto> =>\n Effect.gen(function*() {\n const executed = yield* options.sandbox.execute({\n descriptor: options.descriptor,\n workflow: options.workflow\n })\n if (executed._tag === \"Invalidated\") {\n // NOTHING IS RETURNED FROM AN INVALIDATED EXECUTION. The candidate\n // output, its files, and its queued effects are not on the shape at\n // all; only the violations and the provenance identifying them are.\n const paths = executed.violations.map((violation) => violation.resource.id)\n const identity = yield* bundleIdentity(\n executed.provenance.outputs.map((output) => [output.resource.id, undefined, output.digest])\n )\n if (executed.violations.some((violation) => violation.kind === \"undeclared-read\")) {\n return yield* Effect.fail(\n new StepSandbox.UndeclaredRead({\n code: \"undeclared_read\",\n paths: executed.violations\n .filter((violation) => violation.kind === \"undeclared-read\")\n .map((violation) => violation.resource.id),\n diffIdentity: identity\n })\n )\n }\n return yield* Effect.fail(\n new StepBoundary.UndeclaredWrite({\n code: \"undeclared_write\",\n paths,\n diffIdentity: identity\n })\n )\n }\n const identity = yield* bundleIdentity(\n executed.result.files.map((change) => [change.path, change.beforeDigest, change.afterDigest])\n )\n const applied = yield* options.sandbox.materialize(executed).pipe(Effect.exit)\n if (Exit.isFailure(applied)) {\n // Only a conflict is rebaseable: it says the base moved, which a fresh\n // execution answers. A host or artifact refusal says the copy-back\n // itself cannot be performed, and re-running the body would not help.\n return conflicted(applied.cause) && rebases < maxRebases\n ? yield* attempt(rebases + 1)\n : yield* Effect.failCause(applied.cause)\n }\n return {\n result: executed.result.output,\n bundleIdentity: identity,\n files: executed.result.files,\n effects: executed.result.effects,\n deviations: executed.violations.map((violation) => violation.resource.id),\n rebases\n }\n })\n return attempt(0)\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,kBAA2B;AAC3B,YAAuB;AAEvB,aAAwB;AACxB,WAAsB;AAEtB,aAAwB;AACxB,mBAA8B;AAC9B,kBAA6B;AAC7B,uBAAkC;AAsC3B,MAAM,oBAAoB;AAEjC,MAAM,iBAAiB,CACrB,YAEA,OAAO,oBAAoB,sBAAU,EAAE;AAAA,EACrC,MAAM;AAAA;AAAA;AAAA,EAGN,SAAS,QAAQ,IAAI,CAAC,CAAC,MAAM,QAAQ,KAAK,OAAO;AAAA,IAC/C;AAAA,IACA,QAAQ,UAAU;AAAA,IAClB,OAAO,SAAS;AAAA,EAClB,EAAE;AACJ,CAAC,EAAE,KAAK,OAAO,KAAK;AAEtB,MAAM,aAAa,CAAC,UAClB,MAAM,QAAQ;AAAA,EAAK,CAAC,WAClB,MAAM,aAAa,MAAM,KAAK,OAAO,iBAAiB,iBAAiB;AACzE;AAoBK,MAAM,UAAU,CAAC,YAUiC;AACvD,QAAM,aAAa,QAAQ,cAAc;AACzC,QAAM,UAAU,CAAC,YACf,OAAO,IAAI,aAAY;AACrB,UAAM,WAAW,OAAO,QAAQ,QAAQ,QAAQ;AAAA,MAC9C,YAAY,QAAQ;AAAA,MACpB,UAAU,QAAQ;AAAA,IACpB,CAAC;AACD,QAAI,SAAS,SAAS,eAAe;AAInC,YAAM,QAAQ,SAAS,WAAW,IAAI,CAAC,cAAc,UAAU,SAAS,EAAE;AAC1E,YAAMA,YAAW,OAAO;AAAA,QACtB,SAAS,WAAW,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,SAAS,IAAI,QAAW,OAAO,MAAM,CAAC;AAAA,MAC5F;AACA,UAAI,SAAS,WAAW,KAAK,CAAC,cAAc,UAAU,SAAS,iBAAiB,GAAG;AACjF,eAAO,OAAO,OAAO;AAAA,UACnB,IAAI,YAAY,eAAe;AAAA,YAC7B,MAAM;AAAA,YACN,OAAO,SAAS,WACb,OAAO,CAAC,cAAc,UAAU,SAAS,iBAAiB,EAC1D,IAAI,CAAC,cAAc,UAAU,SAAS,EAAE;AAAA,YAC3C,cAAcA;AAAA,UAChB,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO,OAAO,OAAO;AAAA,QACnB,IAAI,aAAa,gBAAgB;AAAA,UAC/B,MAAM;AAAA,UACN;AAAA,UACA,cAAcA;AAAA,QAChB,CAAC;AAAA,MACH;AAAA,IACF;AACA,UAAM,WAAW,OAAO;AAAA,MACtB,SAAS,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,MAAM,OAAO,cAAc,OAAO,WAAW,CAAC;AAAA,IAC9F;AACA,UAAM,UAAU,OAAO,QAAQ,QAAQ,YAAY,QAAQ,EAAE,KAAK,OAAO,IAAI;AAC7E,QAAI,KAAK,UAAU,OAAO,GAAG;AAI3B,aAAO,WAAW,QAAQ,KAAK,KAAK,UAAU,aAC1C,OAAO,QAAQ,UAAU,CAAC,IAC1B,OAAO,OAAO,UAAU,QAAQ,KAAK;AAAA,IAC3C;AACA,WAAO;AAAA,MACL,QAAQ,SAAS,OAAO;AAAA,MACxB,gBAAgB;AAAA,MAChB,OAAO,SAAS,OAAO;AAAA,MACvB,SAAS,SAAS,OAAO;AAAA,MACzB,YAAY,SAAS,WAAW,IAAI,CAAC,cAAc,UAAU,SAAS,EAAE;AAAA,MACxE;AAAA,IACF;AAAA,EACF,CAAC;AACH,SAAO,QAAQ,CAAC;AAClB;",
6
+ "names": ["identity"]
7
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The engine store's one lock order for engine state and the journal.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import type { DatabaseError } from "@smthrs/database/DurableWriter";
7
+ import type { Journal } from "@smthrs/journal";
8
+ import * as Effect from "effect/Effect";
9
+ import type * as DurableEngineState from "../DurableEngineState.ts";
10
+ /**
11
+ * Binds one ordered transaction boundary to a pair of stores.
12
+ *
13
+ * **The order is part of the package's contract.** Every fiber that needs
14
+ * both boundaries takes `DurableEngineState.transaction` FIRST and opens the
15
+ * journal's write transaction inside it. Never the other way around. The SQL
16
+ * engine state cannot tell the difference, because its transaction and the
17
+ * journal's are the same `DurableWriter` transaction and one of them nests as
18
+ * a savepoint of the other either way. The memory engine state has a gate of
19
+ * its own, and the contract requires the two implementations to be
20
+ * semantically equal. Taking the journal transaction first leaves a fiber
21
+ * holding the writer while it waits for that gate, which deadlocks against
22
+ * any fiber holding the gate while it waits for the writer. Both waits keep the
23
+ * caller's interruptibility: the state gate is taken first, then DurableWriter
24
+ * queues for its own permit before entering Effect SQL's masked connection
25
+ * acquisition. A journal-only writer never takes the state gate, so the
26
+ * writer's permit is what keeps a caller waiting behind it cancellable.
27
+ *
28
+ * Within that order the boundary is atomic in both directions: a failure
29
+ * before COMMIT rolls the SQL transaction back AND restores the memory
30
+ * snapshot, and the memory snapshot is accepted exactly at SQL COMMIT,
31
+ * through the `onCommit` callback registered before the body can queue any
32
+ * publication. The gate is therefore already released when the journal runs
33
+ * its post-commit work: compaction capture runs in a CHILD fiber and must see
34
+ * a released gate, just as it sees a committed SQL transaction. Publication
35
+ * failures happen after both commits and cannot undo either.
36
+ *
37
+ * `transact` defaults to the journal's own transaction. A caller passes its
38
+ * own only to change how the writer's Exit is read, never to change the order.
39
+ *
40
+ * @category constructors
41
+ * @since 0.1.0
42
+ */
43
+ export declare const make: (state: Pick<DurableEngineState.Service, "transaction">, journal: Journal.Service) => <A, E, R>(effect: Effect.Effect<A, E, R>, transact?: <B, F, S>(write: Effect.Effect<B, F, S>) => Effect.Effect<B, F | Journal.JournalError | DatabaseError, S>) => Effect.Effect<A, E | Journal.JournalError | DatabaseError, R>;
44
+ //# sourceMappingURL=StateTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StateTransaction.d.ts","sourceRoot":"","sources":["../../../src/internal/StateTransaction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,kBAAkB,MAAM,0BAA0B,CAAA;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,IAAI,GACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,EACtD,SAAS,OAAO,CAAC,OAAO,MAEzB,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,WAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,GAAG,aAAa,EAAE,CAAC,CAAoB,KACpF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,GAAG,aAAa,EAAE,CAAC,CAiB3D,CAAA"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var StateTransaction_exports = {};
30
+ __export(StateTransaction_exports, {
31
+ make: () => make
32
+ });
33
+ module.exports = __toCommonJS(StateTransaction_exports);
34
+ var Effect = __toESM(require("effect/Effect"), 1);
35
+ const make = (state, journal) => (effect, transact = journal.transact) => Effect.suspend(() => {
36
+ let commit = Effect.void;
37
+ let bodyCompleted = false;
38
+ return state.transaction(
39
+ transact(Effect.gen(function* () {
40
+ yield* journal.whenCommitted(Effect.suspend(() => bodyCompleted ? commit : Effect.void));
41
+ const value = yield* effect;
42
+ bodyCompleted = true;
43
+ return value;
44
+ })),
45
+ {
46
+ onCommit: (accept) => {
47
+ commit = accept;
48
+ }
49
+ }
50
+ );
51
+ });
52
+ //# sourceMappingURL=StateTransaction.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/StateTransaction.ts"],
4
+ "sourcesContent": ["/**\n * The engine store's one lock order for engine state and the journal.\n *\n * @since 0.1.0\n */\n\nimport type { DatabaseError } from \"@smthrs/database/DurableWriter\"\nimport type { Journal } from \"@smthrs/journal\"\nimport * as Effect from \"effect/Effect\"\nimport type * as DurableEngineState from \"../DurableEngineState.ts\"\n\n/**\n * Binds one ordered transaction boundary to a pair of stores.\n *\n * **The order is part of the package's contract.** Every fiber that needs\n * both boundaries takes `DurableEngineState.transaction` FIRST and opens the\n * journal's write transaction inside it. Never the other way around. The SQL\n * engine state cannot tell the difference, because its transaction and the\n * journal's are the same `DurableWriter` transaction and one of them nests as\n * a savepoint of the other either way. The memory engine state has a gate of\n * its own, and the contract requires the two implementations to be\n * semantically equal. Taking the journal transaction first leaves a fiber\n * holding the writer while it waits for that gate, which deadlocks against\n * any fiber holding the gate while it waits for the writer. Both waits keep the\n * caller's interruptibility: the state gate is taken first, then DurableWriter\n * queues for its own permit before entering Effect SQL's masked connection\n * acquisition. A journal-only writer never takes the state gate, so the\n * writer's permit is what keeps a caller waiting behind it cancellable.\n *\n * Within that order the boundary is atomic in both directions: a failure\n * before COMMIT rolls the SQL transaction back AND restores the memory\n * snapshot, and the memory snapshot is accepted exactly at SQL COMMIT,\n * through the `onCommit` callback registered before the body can queue any\n * publication. The gate is therefore already released when the journal runs\n * its post-commit work: compaction capture runs in a CHILD fiber and must see\n * a released gate, just as it sees a committed SQL transaction. Publication\n * failures happen after both commits and cannot undo either.\n *\n * `transact` defaults to the journal's own transaction. A caller passes its\n * own only to change how the writer's Exit is read, never to change the order.\n *\n * @category constructors\n * @since 0.1.0\n */\nexport const make = (\n state: Pick<DurableEngineState.Service, \"transaction\">,\n journal: Journal.Service\n) =>\n<A, E, R>(\n effect: Effect.Effect<A, E, R>,\n transact: <B, F, S>(\n write: Effect.Effect<B, F, S>\n ) => Effect.Effect<B, F | Journal.JournalError | DatabaseError, S> = journal.transact\n): Effect.Effect<A, E | Journal.JournalError | DatabaseError, R> =>\n Effect.suspend(() => {\n let commit = Effect.void\n let bodyCompleted = false\n return state.transaction(\n transact(Effect.gen(function*() {\n yield* journal.whenCommitted(Effect.suspend(() => bodyCompleted ? commit : Effect.void))\n const value = yield* effect\n bodyCompleted = true\n return value\n })),\n {\n onCommit: (accept) => {\n commit = accept\n }\n }\n )\n })\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,aAAwB;AAoCjB,MAAM,OAAO,CAClB,OACA,YAEF,CACE,QACA,WAEqE,QAAQ,aAE7E,OAAO,QAAQ,MAAM;AACnB,MAAI,SAAS,OAAO;AACpB,MAAI,gBAAgB;AACpB,SAAO,MAAM;AAAA,IACX,SAAS,OAAO,IAAI,aAAY;AAC9B,aAAO,QAAQ,cAAc,OAAO,QAAQ,MAAM,gBAAgB,SAAS,OAAO,IAAI,CAAC;AACvF,YAAM,QAAQ,OAAO;AACrB,sBAAgB;AAChB,aAAO;AAAA,IACT,CAAC,CAAC;AAAA,IACF;AAAA,MACE,UAAU,CAAC,WAAW;AACpB,iBAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ /** Projects only the saved outcome of an annotated trace checkpoint.
2
+ * @since 1.0.0
3
+ */
4
+ import { JournalEvent } from "@smthrs/journal";
5
+ import * as Effect from "effect/Effect";
6
+ /** Builds the storage-only projector for one action.
7
+ * @category constructors
8
+ * @since 1.0.0
9
+ */
10
+ export declare const make: (action: unknown, runId: string) => {
11
+ annotated: boolean;
12
+ settled: (outcome: unknown) => Effect.Effect<JournalEvent.Input | undefined, never, never>;
13
+ };
14
+ //# sourceMappingURL=StepFacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepFacts.d.ts","sourceRoot":"","sources":["../../../src/internal/StepFacts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAA;AAExD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,QAAQ,OAAO,EAAE,OAAO,MAAM;;uBAO5B,OAAO;CAc7B,CAAA"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var StepFacts_exports = {};
30
+ __export(StepFacts_exports, {
31
+ make: () => make
32
+ });
33
+ module.exports = __toCommonJS(StepFacts_exports);
34
+ var import_journal = require("@smthrs/journal");
35
+ var Context = __toESM(require("effect/Context"), 1);
36
+ var Effect = __toESM(require("effect/Effect"), 1);
37
+ var Option = __toESM(require("effect/Option"), 1);
38
+ var Schema = __toESM(require("effect/Schema"), 1);
39
+ const make = (action, runId) => {
40
+ const annotations = typeof action === "object" && action !== null && "annotations" in action ? action.annotations : void 0;
41
+ const annotated = annotations !== void 0 && Option.isSome(Context.getOption(annotations, import_journal.StepFact.Annotation));
42
+ return {
43
+ annotated,
44
+ settled: (outcome) => Effect.gen(function* () {
45
+ if (!annotated) return void 0;
46
+ const fact = yield* Schema.decodeUnknownEffect(import_journal.StepFact.Fact)(outcome).pipe(Effect.orDie);
47
+ const step = fact.step;
48
+ return new import_journal.JournalEvent.Input({
49
+ runId: import_journal.JournalEvent.RunId.make(runId),
50
+ sourceId: import_journal.JournalEvent.SourceId.make(`step-fact-v1:${step.stepId}:${step.attempt}:${step.ask}:${step.retry}`),
51
+ sourceSeq: import_journal.JournalEvent.SourceSeq.make(fact.sourceSequence),
52
+ eventType: import_journal.StepFact.eventType,
53
+ payload: fact
54
+ });
55
+ })
56
+ };
57
+ };
58
+ //# sourceMappingURL=StepFacts.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/StepFacts.ts"],
4
+ "sourcesContent": ["/** Projects only the saved outcome of an annotated trace checkpoint.\n * @since 1.0.0\n */\n\nimport { JournalEvent, StepFact } from \"@smthrs/journal\"\nimport * as Context from \"effect/Context\"\nimport * as Effect from \"effect/Effect\"\nimport * as Option from \"effect/Option\"\nimport * as Schema from \"effect/Schema\"\n\n/** Builds the storage-only projector for one action.\n * @category constructors\n * @since 1.0.0\n */\nexport const make = (action: unknown, runId: string) => {\n const annotations = typeof action === \"object\" && action !== null && \"annotations\" in action\n ? action.annotations as Context.Context<never>\n : undefined\n const annotated = annotations !== undefined && Option.isSome(Context.getOption(annotations, StepFact.Annotation))\n return {\n annotated,\n settled: (outcome: unknown) =>\n Effect.gen(function*() {\n if (!annotated) return undefined\n const fact = yield* Schema.decodeUnknownEffect(StepFact.Fact)(outcome).pipe(Effect.orDie)\n const step = fact.step\n return new JournalEvent.Input({\n runId: JournalEvent.RunId.make(runId),\n sourceId: JournalEvent.SourceId.make(`step-fact-v1:${step.stepId}:${step.attempt}:${step.ask}:${step.retry}`),\n sourceSeq: JournalEvent.SourceSeq.make(fact.sourceSequence),\n eventType: StepFact.eventType,\n payload: fact\n })\n })\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,qBAAuC;AACvC,cAAyB;AACzB,aAAwB;AACxB,aAAwB;AACxB,aAAwB;AAMjB,MAAM,OAAO,CAAC,QAAiB,UAAkB;AACtD,QAAM,cAAc,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB,SAClF,OAAO,cACP;AACJ,QAAM,YAAY,gBAAgB,UAAa,OAAO,OAAO,QAAQ,UAAU,aAAa,wBAAS,UAAU,CAAC;AAChH,SAAO;AAAA,IACL;AAAA,IACA,SAAS,CAAC,YACR,OAAO,IAAI,aAAY;AACrB,UAAI,CAAC,UAAW,QAAO;AACvB,YAAM,OAAO,OAAO,OAAO,oBAAoB,wBAAS,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,KAAK;AACxF,YAAM,OAAO,KAAK;AAClB,aAAO,IAAI,4BAAa,MAAM;AAAA,QAC5B,OAAO,4BAAa,MAAM,KAAK,KAAK;AAAA,QACpC,UAAU,4BAAa,SAAS,KAAK,gBAAgB,KAAK,MAAM,IAAI,KAAK,OAAO,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,EAAE;AAAA,QAC5G,WAAW,4BAAa,UAAU,KAAK,KAAK,cAAc;AAAA,QAC1D,WAAW,wBAAS;AAAA,QACpB,SAAS;AAAA,MACX,CAAC;AAAA,IACH,CAAC;AAAA,EACL;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Additive v2 constructors. Existing JournalRecords writers retain their bytes
3
+ * until a versioned writer cutover can supply complete lifecycle evidence.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+ /**
8
+ * Additive typed engine event constructors and decoders.
9
+ *
10
+ * @category events
11
+ * @since 1.0.0
12
+ */
13
+ export { attempt, attemptEventType, AttemptPayload, type Consumer, CurrentAttempt, decodeCurrentAttempt, decodeEntry, EventError, ExecutionLifecycle, Lineage, stateEvent, stateEventType, StatePayload, Wait } from "@smthrs/journal/EngineEvent";
14
+ //# sourceMappingURL=TypedEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypedEvents.d.ts","sourceRoot":"","sources":["../../../src/internal/TypedEvents.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,KAAK,QAAQ,EACb,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,OAAO,EACP,UAAU,EACV,cAAc,EACd,YAAY,EACZ,IAAI,EACL,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var TypedEvents_exports = {};
20
+ __export(TypedEvents_exports, {
21
+ AttemptPayload: () => import_EngineEvent.AttemptPayload,
22
+ CurrentAttempt: () => import_EngineEvent.CurrentAttempt,
23
+ EventError: () => import_EngineEvent.EventError,
24
+ ExecutionLifecycle: () => import_EngineEvent.ExecutionLifecycle,
25
+ Lineage: () => import_EngineEvent.Lineage,
26
+ StatePayload: () => import_EngineEvent.StatePayload,
27
+ Wait: () => import_EngineEvent.Wait,
28
+ attempt: () => import_EngineEvent.attempt,
29
+ attemptEventType: () => import_EngineEvent.attemptEventType,
30
+ decodeCurrentAttempt: () => import_EngineEvent.decodeCurrentAttempt,
31
+ decodeEntry: () => import_EngineEvent.decodeEntry,
32
+ stateEvent: () => import_EngineEvent.stateEvent,
33
+ stateEventType: () => import_EngineEvent.stateEventType
34
+ });
35
+ module.exports = __toCommonJS(TypedEvents_exports);
36
+ var import_EngineEvent = require("@smthrs/journal/EngineEvent");
37
+ //# sourceMappingURL=TypedEvents.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/TypedEvents.ts"],
4
+ "sourcesContent": ["/**\n * Additive v2 constructors. Existing JournalRecords writers retain their bytes\n * until a versioned writer cutover can supply complete lifecycle evidence.\n *\n * @since 1.0.0\n */\n\n/**\n * Additive typed engine event constructors and decoders.\n *\n * @category events\n * @since 1.0.0\n */\nexport {\n attempt,\n attemptEventType,\n AttemptPayload,\n type Consumer,\n CurrentAttempt,\n decodeCurrentAttempt,\n decodeEntry,\n EventError,\n ExecutionLifecycle,\n Lineage,\n stateEvent,\n stateEventType,\n StatePayload,\n Wait\n} from \"@smthrs/journal/EngineEvent\"\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,yBAeO;",
6
+ "names": []
7
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Initial durable deferred-completion and clock-deadline schema.
3
+ *
4
+ * Schema boundary: `packages/smithers/flows/engine-store/docs/concepts/durable-waits.md`.
5
+ *
6
+ * @since 0.1.0
7
+ */
8
+ import * as Effect from "effect/Effect";
9
+ import * as SqlClient from "effect/unstable/sql/SqlClient";
10
+ /**
11
+ * Creates the `flows_deferred_completions` and `flows_clock_deadlines` tables.
12
+ *
13
+ * @category migrations
14
+ * @since 0.1.0
15
+ */
16
+ export declare const initial: Effect.Effect<void, unknown, SqlClient.SqlClient>;
17
+ //# sourceMappingURL=0001_initial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0001_initial.d.ts","sourceRoot":"","sources":["../../../src/migrations/0001_initial.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAgCpE,CAAA"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var initial_exports = {};
30
+ __export(initial_exports, {
31
+ initial: () => initial
32
+ });
33
+ module.exports = __toCommonJS(initial_exports);
34
+ var Dialect = __toESM(require("@smthrs/database/Dialect"), 1);
35
+ var Effect = __toESM(require("effect/Effect"), 1);
36
+ var SqlClient = __toESM(require("effect/unstable/sql/SqlClient"), 1);
37
+ const initial = Effect.gen(function* () {
38
+ const sql = yield* SqlClient.SqlClient;
39
+ yield* sql`CREATE TABLE flows_deferred_completions (
40
+ flow_name TEXT NOT NULL CHECK (length(flow_name) > 0),
41
+ execution_id TEXT NOT NULL CHECK (length(execution_id) > 0),
42
+ deferred_name TEXT NOT NULL CHECK (length(deferred_name) > 0),
43
+ exit_json TEXT NOT NULL CHECK (${Dialect.jsonValid(sql, sql`exit_json`)}),
44
+ metadata_json TEXT CHECK (metadata_json IS NULL OR ${Dialect.jsonValid(sql, sql`metadata_json`)}),
45
+ completed_at_ms ${Dialect.integer(sql)} NOT NULL CHECK (${Dialect.isInteger(sql, sql`completed_at_ms`)} AND completed_at_ms >= 0 AND completed_at_ms <= 9007199254740991),
46
+ PRIMARY KEY (flow_name, execution_id, deferred_name),
47
+ FOREIGN KEY (execution_id) REFERENCES flows_runs (run_id)
48
+ )`;
49
+ yield* sql`CREATE TABLE flows_clock_deadlines (
50
+ flow_name TEXT NOT NULL CHECK (length(flow_name) > 0),
51
+ execution_id TEXT NOT NULL CHECK (length(execution_id) > 0),
52
+ clock_name TEXT NOT NULL CHECK (length(clock_name) > 0),
53
+ deferred_name TEXT NOT NULL CHECK (length(deferred_name) > 0),
54
+ due_at_ms ${Dialect.integer(sql)} NOT NULL CHECK (${Dialect.isInteger(sql, sql`due_at_ms`)} AND due_at_ms >= 0 AND due_at_ms <= 9007199254740991),
55
+ completed_at_ms ${Dialect.integer(sql)} CHECK (completed_at_ms IS NULL OR (${Dialect.isInteger(sql, sql`completed_at_ms`)} AND completed_at_ms >= 0 AND completed_at_ms <= 9007199254740991)),
56
+ PRIMARY KEY (flow_name, execution_id, clock_name),
57
+ FOREIGN KEY (execution_id) REFERENCES flows_runs (run_id)
58
+ )`;
59
+ yield* sql`CREATE INDEX flows_clock_deadlines_pending_idx ON flows_clock_deadlines (completed_at_ms, due_at_ms)`;
60
+ });
61
+ //# sourceMappingURL=0001_initial.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/migrations/0001_initial.ts"],
4
+ "sourcesContent": ["/**\n * Initial durable deferred-completion and clock-deadline schema.\n *\n * Schema boundary: `packages/smithers/flows/engine-store/docs/concepts/durable-waits.md`.\n *\n * @since 0.1.0\n */\n\nimport * as Dialect from \"@smthrs/database/Dialect\"\nimport * as Effect from \"effect/Effect\"\nimport * as SqlClient from \"effect/unstable/sql/SqlClient\"\n\n/**\n * Creates the `flows_deferred_completions` and `flows_clock_deadlines` tables.\n *\n * @category migrations\n * @since 0.1.0\n */\nexport const initial: Effect.Effect<void, unknown, SqlClient.SqlClient> = Effect.gen(function*() {\n const sql = yield* SqlClient.SqlClient\n\n yield* sql`CREATE TABLE flows_deferred_completions (\n flow_name TEXT NOT NULL CHECK (length(flow_name) > 0),\n execution_id TEXT NOT NULL CHECK (length(execution_id) > 0),\n deferred_name TEXT NOT NULL CHECK (length(deferred_name) > 0),\n exit_json TEXT NOT NULL CHECK (${Dialect.jsonValid(sql, sql`exit_json`)}),\n metadata_json TEXT CHECK (metadata_json IS NULL OR ${Dialect.jsonValid(sql, sql`metadata_json`)}),\n completed_at_ms ${Dialect.integer(sql)} NOT NULL CHECK (${\n Dialect.isInteger(sql, sql`completed_at_ms`)\n } AND completed_at_ms >= 0 AND completed_at_ms <= 9007199254740991),\n PRIMARY KEY (flow_name, execution_id, deferred_name),\n FOREIGN KEY (execution_id) REFERENCES flows_runs (run_id)\n )`\n\n yield* sql`CREATE TABLE flows_clock_deadlines (\n flow_name TEXT NOT NULL CHECK (length(flow_name) > 0),\n execution_id TEXT NOT NULL CHECK (length(execution_id) > 0),\n clock_name TEXT NOT NULL CHECK (length(clock_name) > 0),\n deferred_name TEXT NOT NULL CHECK (length(deferred_name) > 0),\n due_at_ms ${Dialect.integer(sql)} NOT NULL CHECK (${\n Dialect.isInteger(sql, sql`due_at_ms`)\n } AND due_at_ms >= 0 AND due_at_ms <= 9007199254740991),\n completed_at_ms ${Dialect.integer(sql)} CHECK (completed_at_ms IS NULL OR (${\n Dialect.isInteger(sql, sql`completed_at_ms`)\n } AND completed_at_ms >= 0 AND completed_at_ms <= 9007199254740991)),\n PRIMARY KEY (flow_name, execution_id, clock_name),\n FOREIGN KEY (execution_id) REFERENCES flows_runs (run_id)\n )`\n\n yield* sql`CREATE INDEX flows_clock_deadlines_pending_idx ON flows_clock_deadlines (completed_at_ms, due_at_ms)`\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,cAAyB;AACzB,aAAwB;AACxB,gBAA2B;AAQpB,MAAM,UAA6D,OAAO,IAAI,aAAY;AAC/F,QAAM,MAAM,OAAO,UAAU;AAE7B,SAAO;AAAA;AAAA;AAAA;AAAA,qCAI4B,QAAQ,UAAU,KAAK,cAAc,CAAC;AAAA,yDAClB,QAAQ,UAAU,KAAK,kBAAkB,CAAC;AAAA,sBAC7E,QAAQ,QAAQ,GAAG,CAAC,oBACtC,QAAQ,UAAU,KAAK,oBAAoB,CAC7C;AAAA;AAAA;AAAA;AAKA,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA,gBAKO,QAAQ,QAAQ,GAAG,CAAC,oBAChC,QAAQ,UAAU,KAAK,cAAc,CACvC;AAAA,sBACoB,QAAQ,QAAQ,GAAG,CAAC,uCACtC,QAAQ,UAAU,KAAK,oBAAoB,CAC7C;AAAA;AAAA;AAAA;AAKA,SAAO;AACT,CAAC;",
6
+ "names": []
7
+ }