@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,85 @@
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 RunCatalogOps_exports = {};
30
+ __export(RunCatalogOps_exports, {
31
+ RunCatalogError: () => import_RunListingError3.RunCatalogError,
32
+ RunCatalogErrorCode: () => import_RunListingError2.RunCatalogErrorCode,
33
+ RunCatalogRead: () => RunCatalogRead,
34
+ defaultLimit: () => defaultLimit,
35
+ layer: () => layer,
36
+ make: () => make
37
+ });
38
+ module.exports = __toCommonJS(RunCatalogOps_exports);
39
+ var Context = __toESM(require("effect/Context"), 1);
40
+ var Effect = __toESM(require("effect/Effect"), 1);
41
+ var Layer = __toESM(require("effect/Layer"), 1);
42
+ var SqlClient = __toESM(require("effect/unstable/sql/SqlClient"), 1);
43
+ var RunListing = __toESM(require("./RunListing.js"), 1);
44
+ var import_RunListingError = require("./RunListingError.js");
45
+ var import_RunListingError2 = require("./RunListingError.js");
46
+ var import_RunListingError3 = require("./RunListingError.js");
47
+ class RunCatalogRead extends Context.Service()(
48
+ "@smthrs/engine-store/RunCatalogRead"
49
+ ) {
50
+ }
51
+ const defaultLimit = 1e4;
52
+ const make = () => Effect.gen(function* () {
53
+ const sql = yield* Effect.service(SqlClient.SqlClient);
54
+ const listing = yield* RunListing.make();
55
+ const listRunIds = Effect.fn("RunCatalog.listRunIds")(
56
+ (options) => Effect.gen(function* () {
57
+ const limit = options?.limit ?? defaultLimit;
58
+ if (!Number.isSafeInteger(limit) || limit < 0) {
59
+ return yield* Effect.fail(
60
+ new import_RunListingError.RunCatalogError({
61
+ code: "invalid_options",
62
+ message: "the run catalog limit must be a non-negative safe integer"
63
+ })
64
+ );
65
+ }
66
+ return yield* sql`
67
+ SELECT run_id FROM flows_runs
68
+ ORDER BY rowid DESC
69
+ LIMIT ${limit}
70
+ `.pipe(
71
+ Effect.map((rows) => rows.map((row) => row.run_id).reverse()),
72
+ Effect.mapError(
73
+ (cause) => new import_RunListingError.RunCatalogError({
74
+ code: "list_failed",
75
+ message: "the workspace run set could not be read",
76
+ cause
77
+ })
78
+ )
79
+ );
80
+ })
81
+ );
82
+ return { listRunIds, ...listing };
83
+ });
84
+ const layer = Layer.effect(RunCatalogRead)(make());
85
+ //# sourceMappingURL=RunCatalogOps.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/RunCatalogOps.ts"],
4
+ "sourcesContent": ["/**\n * The workspace run catalog read.\n *\n * `@smthrs/sync` serves a workspace subscription over a `RunCatalog`, and\n * every implementation of that service was static (`layerStatic`,\n * `layerNoop`) or in-process (`makeMemory`, which hears only about runs the\n * same process registered). A follower composed against any of them saw the\n * runs that existed when it started and never learned of another run, so a\n * second engine writing to the same workspace was invisible to it. This\n * module is the durable half of the fix: the read that says which runs the\n * workspace has right now, taken from `flows_runs` itself.\n *\n * The read is a full set rather than a cursor tail, for one reason: retention\n * deletes runs. A follower that only ever appended what appeared after a\n * cursor would keep every collected run in its view forever and hold a\n * journal stream open for each one. Reading the set makes both directions\n * work, and the workspace's own bound keeps the cost of it flat.\n *\n * Nothing here polls. The interval belongs to the catalog that consumes this\n * read (`RunCatalog.makePolling` in `@smthrs/sync`), so the durable side has\n * no policy and no fiber of its own.\n *\n * @since 0.1.0\n */\n\nimport * as Context from \"effect/Context\"\nimport * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\nimport * as SqlClient from \"effect/unstable/sql/SqlClient\"\nimport * as RunListing from \"./RunListing.ts\"\nimport { RunCatalogError } from \"./RunListingError.ts\"\n\n/**\n * Stable error codes returned by the catalog read.\n *\n * @category models\n * @since 0.1.0\n */\nexport { RunCatalogErrorCode } from \"./RunListingError.ts\"\n\n/**\n * A catalog read that could not complete.\n *\n * `list_failed` means the workspace's run set could not be read. The caller\n * keeps whatever view it already had; the read is idempotent, so the next one\n * converges once the cause is fixed.\n *\n * @category errors\n * @since 0.1.0\n */\nexport { RunCatalogError } from \"./RunListingError.ts\"\n\n/**\n * Options for one catalog read.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface ListOptions {\n /**\n * Largest number of runs the read returns. Defaults to\n * {@link defaultLimit}. A workspace with more runs than the bound is\n * followed by its most recent ones; an older run stays readable through a\n * run-scoped subscription, which names it directly.\n */\n readonly limit?: number | undefined\n}\n\n/**\n * The workspace's run set.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Service {\n /** Revision-consistent, filtered keyset page of execution rows. */\n readonly listRuns: RunListing.Service[\"listRuns\"]\n /**\n * Every run the workspace has, oldest first, bounded by the read. \"Oldest\"\n * is the run table's own row order, which is the order `RunStore.create`\n * inserted them: SQLite hands a new row an identifier above every one in\n * the table, and reuses one only after the highest is deleted, so deletion\n * by retention does not reorder what is left.\n */\n readonly listRunIds: (options?: ListOptions) => Effect.Effect<ReadonlyArray<string>, RunCatalogError>\n}\n\n/**\n * Service tag for the workspace run catalog read.\n *\n * @category services\n * @since 0.1.0\n */\nexport class RunCatalogRead extends Context.Service<RunCatalogRead, Service>()(\n \"@smthrs/engine-store/RunCatalogRead\"\n) {}\n\n/**\n * Runs one read returns when the caller names no bound. Large enough that an\n * ordinary workspace is returned whole, small enough that a workspace which\n * has never been collected does not hand a follower an unbounded list.\n *\n * @category constants\n * @since 0.1.0\n */\nexport const defaultLimit = 10_000\n\n/**\n * Builds the catalog read over the composition's own run table.\n *\n * The read goes to `flows_runs` directly, the way `DurableEngineState`,\n * `ArtifactGc`, and `RetentionOps` do: this package composes the run-store\n * migrations, so the schema is its own.\n *\n * @category constructors\n * @since 0.1.0\n */\nexport const make = (): Effect.Effect<Service, never, SqlClient.SqlClient> =>\n Effect.gen(function*() {\n const sql = yield* Effect.service(SqlClient.SqlClient)\n const listing = yield* RunListing.make()\n\n // Newest first by `rowid`, then reversed. `rowid` is the order the\n // workspace gained its runs, and reading it backwards walks the table's\n // own b-tree, so the bound costs one seek rather than a sort of every\n // run: `flows_runs` carries no index on `created_at_ms`, and two runs\n // created in the same millisecond do not order by it at all.\n //\n // `flows_runs` has a TEXT primary key, so its `rowid` is not an alias of\n // a declared column and SQLite documents that a rebuild may reassign it.\n // The order the rebuild leaves is what this read depends on, not the\n // numbers, and `VACUUM INTO` \u2014 the hot backup this release ships, and the\n // only rebuild in the supported path (the release policy) \u2014 preserves\n // it. `RunCatalogCatchUp.test.ts` pins that across a real backup and\n // reopen, including after retention has deleted rows out of the middle\n // and the end.\n const listRunIds: Service[\"listRunIds\"] = Effect.fn(\"RunCatalog.listRunIds\")((options?: ListOptions) =>\n Effect.gen(function*() {\n const limit = options?.limit ?? defaultLimit\n if (!Number.isSafeInteger(limit) || limit < 0) {\n return yield* Effect.fail(\n new RunCatalogError({\n code: \"invalid_options\",\n message: \"the run catalog limit must be a non-negative safe integer\"\n })\n )\n }\n return yield* sql<{ readonly run_id: string }>`\n SELECT run_id FROM flows_runs\n ORDER BY rowid DESC\n LIMIT ${limit}\n `.pipe(\n Effect.map((rows) => rows.map((row) => row.run_id).reverse()),\n Effect.mapError((cause) =>\n new RunCatalogError({\n code: \"list_failed\",\n message: \"the workspace run set could not be read\",\n cause\n })\n )\n )\n })\n )\n\n return { listRunIds, ...listing }\n })\n\n/**\n * Provides the workspace run catalog read.\n *\n * @category layers\n * @since 0.1.0\n */\nexport const layer: Layer.Layer<RunCatalogRead, never, SqlClient.SqlClient> = Layer.effect(RunCatalogRead)(make())\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBA,cAAyB;AACzB,aAAwB;AACxB,YAAuB;AACvB,gBAA2B;AAC3B,iBAA4B;AAC5B,6BAAgC;AAQhC,IAAAA,0BAAoC;AAYpC,IAAAA,0BAAgC;AA2CzB,MAAM,uBAAuB,QAAQ,QAAiC;AAAA,EAC3E;AACF,EAAE;AAAC;AAUI,MAAM,eAAe;AAYrB,MAAM,OAAO,MAClB,OAAO,IAAI,aAAY;AACrB,QAAM,MAAM,OAAO,OAAO,QAAQ,UAAU,SAAS;AACrD,QAAM,UAAU,OAAO,WAAW,KAAK;AAgBvC,QAAM,aAAoC,OAAO,GAAG,uBAAuB;AAAA,IAAE,CAAC,YAC5E,OAAO,IAAI,aAAY;AACrB,YAAM,QAAQ,SAAS,SAAS;AAChC,UAAI,CAAC,OAAO,cAAc,KAAK,KAAK,QAAQ,GAAG;AAC7C,eAAO,OAAO,OAAO;AAAA,UACnB,IAAI,uCAAgB;AAAA,YAClB,MAAM;AAAA,YACN,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO,OAAO;AAAA;AAAA;AAAA,kBAGJ,KAAK;AAAA,UACb;AAAA,QACA,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,QAAQ,CAAC;AAAA,QAC5D,OAAO;AAAA,UAAS,CAAC,UACf,IAAI,uCAAgB;AAAA,YAClB,MAAM;AAAA,YACN,SAAS;AAAA,YACT;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO,EAAE,YAAY,GAAG,QAAQ;AAClC,CAAC;AAQI,MAAM,QAAiE,MAAM,OAAO,cAAc,EAAE,KAAK,CAAC;",
6
+ "names": ["import_RunListingError"]
7
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Coordinates keyed drain executions.
3
+ *
4
+ * Adapted nearly verbatim from
5
+ * `reference/opencode/packages/smithers/flows/core/src/session/run-coordinator.ts`:
6
+ * `Deferred` joins, `FiberSet` ownership, coalesced wakes, and
7
+ * `uninterruptibleMask` preserve its start-or-join semantics. This adaptation
8
+ * drops the source's `force` drain argument because no engine-store drain has
9
+ * a second execution mode; the successor flag carries coordinator scheduling.
10
+ *
11
+ * @since 0.1.0
12
+ */
13
+ import { Effect, type Scope } from "effect";
14
+ /**
15
+ * Serializes drain execution for each key while allowing distinct keys to run
16
+ * concurrently.
17
+ *
18
+ * @since 0.1.0
19
+ * @category models
20
+ */
21
+ export interface RunCoordinator<Key, E> {
22
+ /**
23
+ * Snapshots keys with an execution owned by this coordinator.
24
+ *
25
+ * @since 0.1.0
26
+ * @category operations
27
+ */
28
+ readonly active: Effect.Effect<ReadonlySet<Key>>;
29
+ /**
30
+ * Starts a drain while idle or joins the active drain for the key.
31
+ *
32
+ * @since 0.1.0
33
+ * @category operations
34
+ */
35
+ readonly run: (key: Key) => Effect.Effect<void, E>;
36
+ /**
37
+ * Joins the active drain for the key, and starts none while idle.
38
+ *
39
+ * @since 1.0.0
40
+ * @category operations
41
+ */
42
+ readonly join: (key: Key) => Effect.Effect<void, E>;
43
+ /**
44
+ * Starts an idle key without joining or requesting another active drain.
45
+ *
46
+ * @since 1.0.0
47
+ * @category operations
48
+ */
49
+ readonly schedule: (key: Key) => Effect.Effect<void>;
50
+ /** Reserves an idle key, then starts its drain only while the supplied durable readiness holds. */
51
+ readonly scheduleIf: (key: Key, ready: Effect.Effect<boolean>) => Effect.Effect<void>;
52
+ /**
53
+ * Ensures one coalesced drain follows the active drain for the key.
54
+ *
55
+ * @since 0.1.0
56
+ * @category operations
57
+ */
58
+ readonly wake: (key: Key) => Effect.Effect<void>;
59
+ /**
60
+ * Interrupts the active drain for the key and waits for its cleanup.
61
+ *
62
+ * @since 0.1.0
63
+ * @category operations
64
+ */
65
+ readonly interrupt: (key: Key) => Effect.Effect<void>;
66
+ /** Sends interruption without awaiting cleanup; safe for a short commit publication. */
67
+ readonly requestInterrupt: (key: Key) => Effect.Effect<void>;
68
+ }
69
+ /**
70
+ * Creates a scoped coordinator for keyed drain effects.
71
+ *
72
+ * @since 0.1.0
73
+ * @category constructors
74
+ */
75
+ export declare const make: <Key, E, R>(options: {
76
+ readonly drain: (key: Key) => Effect.Effect<void, E, R>;
77
+ }) => Effect.Effect<RunCoordinator<Key, E>, never, Scope.Scope | R>;
78
+ //# sourceMappingURL=RunCoordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunCoordinator.d.ts","sourceRoot":"","sources":["../../../src/internal/RunCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAmB,MAAM,EAAyB,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEnF;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG,EAAE,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAClD;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACnD;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpD,mGAAmG;IACnG,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrF;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACrD,wFAAwF;IACxF,QAAQ,CAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAC7D;AASD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS;IACvC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACxD,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAgI5D,CAAA"}
@@ -0,0 +1,123 @@
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 RunCoordinator_exports = {};
20
+ __export(RunCoordinator_exports, {
21
+ make: () => make
22
+ });
23
+ module.exports = __toCommonJS(RunCoordinator_exports);
24
+ var import_effect = require("effect");
25
+ const make = (options) => import_effect.Effect.gen(function* () {
26
+ const active = /* @__PURE__ */ new Map();
27
+ const fork = yield* import_effect.FiberSet.makeRuntime();
28
+ const makeEntry = () => ({
29
+ done: import_effect.Deferred.makeUnsafe(),
30
+ pendingWake: false,
31
+ stopping: false
32
+ });
33
+ const start = (key, entry, successor = false, onlyIf = import_effect.Effect.succeed(true)) => {
34
+ const ready = import_effect.Deferred.makeUnsafe();
35
+ const owner = fork(
36
+ (successor ? import_effect.Effect.yieldNow : import_effect.Deferred.await(ready)).pipe(
37
+ import_effect.Effect.andThen(onlyIf),
38
+ import_effect.Effect.flatMap((ready2) => ready2 ? import_effect.Effect.suspend(() => options.drain(key)) : import_effect.Effect.void),
39
+ import_effect.Effect.onError(
40
+ (cause) => import_effect.Cause.hasInterruptsOnly(cause) ? import_effect.Effect.void : import_effect.Effect.logWarning(`engine-store: coordinated drain failed for ${String(key)}`, cause)
41
+ ),
42
+ import_effect.Effect.onExit((exit) => import_effect.Effect.sync(() => settle(key, entry, exit))),
43
+ import_effect.Effect.exit,
44
+ import_effect.Effect.asVoid
45
+ )
46
+ );
47
+ entry.owner = owner;
48
+ if (!successor) import_effect.Deferred.doneUnsafe(ready, import_effect.Effect.void);
49
+ };
50
+ const settle = (key, entry, exit) => {
51
+ if (import_effect.Exit.isSuccess(exit) && !entry.stopping && entry.pendingWake) {
52
+ entry.pendingWake = false;
53
+ start(key, entry, true);
54
+ return;
55
+ }
56
+ const successor = entry.pendingWake ? makeEntry() : void 0;
57
+ if (successor === void 0) active.delete(key);
58
+ else {
59
+ active.set(key, successor);
60
+ start(key, successor, true);
61
+ }
62
+ import_effect.Deferred.doneUnsafe(entry.done, exit);
63
+ };
64
+ const startIdle = (key, onlyIf) => {
65
+ const next = makeEntry();
66
+ active.set(key, next);
67
+ start(key, next, false, onlyIf);
68
+ return next;
69
+ };
70
+ const run = (key) => import_effect.Effect.uninterruptibleMask((restore) => {
71
+ const entry = active.get(key);
72
+ if (entry !== void 0) {
73
+ if (entry.stopping) return restore(import_effect.Deferred.await(entry.done).pipe(import_effect.Effect.andThen(run(key))));
74
+ return restore(import_effect.Deferred.await(entry.done));
75
+ }
76
+ return restore(import_effect.Deferred.await(startIdle(key).done));
77
+ });
78
+ const join = (key) => import_effect.Effect.suspend(() => {
79
+ const entry = active.get(key);
80
+ return entry === void 0 ? import_effect.Effect.void : import_effect.Deferred.await(entry.done);
81
+ });
82
+ const schedule = (key) => import_effect.Effect.sync(() => {
83
+ if (!active.has(key)) startIdle(key);
84
+ });
85
+ const scheduleIf = (key, ready) => import_effect.Effect.sync(() => {
86
+ if (!active.has(key)) startIdle(key, ready);
87
+ });
88
+ const wake = (key) => import_effect.Effect.sync(() => {
89
+ const entry = active.get(key);
90
+ if (entry !== void 0) {
91
+ entry.pendingWake = true;
92
+ return;
93
+ }
94
+ startIdle(key);
95
+ });
96
+ const interrupt = (key) => import_effect.Effect.suspend(() => {
97
+ const entry = active.get(key);
98
+ if (entry?.owner === void 0) return import_effect.Effect.void;
99
+ entry.stopping = true;
100
+ entry.pendingWake = false;
101
+ return import_effect.Fiber.interrupt(entry.owner);
102
+ });
103
+ const requestInterrupt = (key) => import_effect.Effect.withFiber(
104
+ (fiber) => import_effect.Effect.sync(() => {
105
+ const entry = active.get(key);
106
+ if (entry?.owner === void 0) return;
107
+ entry.stopping = true;
108
+ entry.pendingWake = false;
109
+ entry.owner.interruptUnsafe(fiber.id);
110
+ })
111
+ );
112
+ return {
113
+ active: import_effect.Effect.fn("RunCoordinator.active")(() => import_effect.Effect.sync(() => new Set(active.keys())))(),
114
+ run: import_effect.Effect.fn("RunCoordinator.run")(run),
115
+ join: import_effect.Effect.fn("RunCoordinator.join")(join),
116
+ schedule: import_effect.Effect.fn("RunCoordinator.schedule")(schedule),
117
+ scheduleIf: import_effect.Effect.fn("RunCoordinator.scheduleIf")(scheduleIf),
118
+ wake: import_effect.Effect.fn("RunCoordinator.wake")(wake),
119
+ interrupt: import_effect.Effect.fn("RunCoordinator.interrupt")(interrupt),
120
+ requestInterrupt: import_effect.Effect.fn("RunCoordinator.requestInterrupt")(requestInterrupt)
121
+ };
122
+ });
123
+ //# sourceMappingURL=RunCoordinator.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/RunCoordinator.ts"],
4
+ "sourcesContent": ["/**\n * Coordinates keyed drain executions.\n *\n * Adapted nearly verbatim from\n * `reference/opencode/packages/smithers/flows/core/src/session/run-coordinator.ts`:\n * `Deferred` joins, `FiberSet` ownership, coalesced wakes, and\n * `uninterruptibleMask` preserve its start-or-join semantics. This adaptation\n * drops the source's `force` drain argument because no engine-store drain has\n * a second execution mode; the successor flag carries coordinator scheduling.\n *\n * @since 0.1.0\n */\n\nimport { Cause, Deferred, Effect, Exit, Fiber, FiberSet, type Scope } from \"effect\"\n\n/**\n * Serializes drain execution for each key while allowing distinct keys to run\n * concurrently.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface RunCoordinator<Key, E> {\n /**\n * Snapshots keys with an execution owned by this coordinator.\n *\n * @since 0.1.0\n * @category operations\n */\n readonly active: Effect.Effect<ReadonlySet<Key>>\n /**\n * Starts a drain while idle or joins the active drain for the key.\n *\n * @since 0.1.0\n * @category operations\n */\n readonly run: (key: Key) => Effect.Effect<void, E>\n /**\n * Joins the active drain for the key, and starts none while idle.\n *\n * @since 1.0.0\n * @category operations\n */\n readonly join: (key: Key) => Effect.Effect<void, E>\n /**\n * Starts an idle key without joining or requesting another active drain.\n *\n * @since 1.0.0\n * @category operations\n */\n readonly schedule: (key: Key) => Effect.Effect<void>\n /** Reserves an idle key, then starts its drain only while the supplied durable readiness holds. */\n readonly scheduleIf: (key: Key, ready: Effect.Effect<boolean>) => Effect.Effect<void>\n /**\n * Ensures one coalesced drain follows the active drain for the key.\n *\n * @since 0.1.0\n * @category operations\n */\n readonly wake: (key: Key) => Effect.Effect<void>\n /**\n * Interrupts the active drain for the key and waits for its cleanup.\n *\n * @since 0.1.0\n * @category operations\n */\n readonly interrupt: (key: Key) => Effect.Effect<void>\n /** Sends interruption without awaiting cleanup; safe for a short commit publication. */\n readonly requestInterrupt: (key: Key) => Effect.Effect<void>\n}\n\ntype Entry<E> = {\n readonly done: Deferred.Deferred<void, E>\n owner?: Fiber.Fiber<void, never>\n pendingWake: boolean\n stopping: boolean\n}\n\n/**\n * Creates a scoped coordinator for keyed drain effects.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const make = <Key, E, R>(options: {\n readonly drain: (key: Key) => Effect.Effect<void, E, R>\n}): Effect.Effect<RunCoordinator<Key, E>, never, Scope.Scope | R> =>\n Effect.gen(function*() {\n const active = new Map<Key, Entry<E>>()\n const fork = yield* FiberSet.makeRuntime<R, void, never>()\n\n const makeEntry = (): Entry<E> => ({\n done: Deferred.makeUnsafe<void, E>(),\n pendingWake: false,\n stopping: false\n })\n\n const start = (\n key: Key,\n entry: Entry<E>,\n successor = false,\n onlyIf: Effect.Effect<boolean> = Effect.succeed(true)\n ): void => {\n const ready = Deferred.makeUnsafe<void>()\n const owner = fork(\n (successor ? Effect.yieldNow : Deferred.await(ready)).pipe(\n Effect.andThen(onlyIf),\n Effect.flatMap((ready) => ready ? Effect.suspend(() => options.drain(key)) : Effect.void),\n Effect.onError((cause) =>\n Cause.hasInterruptsOnly(cause)\n ? Effect.void\n : Effect.logWarning(`engine-store: coordinated drain failed for ${String(key)}`, cause)\n ),\n Effect.onExit((exit) => Effect.sync(() => settle(key, entry, exit))),\n Effect.exit,\n Effect.asVoid\n )\n )\n entry.owner = owner\n if (!successor) Deferred.doneUnsafe(ready, Effect.void)\n }\n\n const settle = (key: Key, entry: Entry<E>, exit: Exit.Exit<void, E>): void => {\n if (Exit.isSuccess(exit) && !entry.stopping && entry.pendingWake) {\n entry.pendingWake = false\n start(key, entry, true)\n return\n }\n\n const successor = entry.pendingWake ? makeEntry() : undefined\n if (successor === undefined) active.delete(key)\n else {\n active.set(key, successor)\n start(key, successor, true)\n }\n Deferred.doneUnsafe(entry.done, exit)\n }\n\n const startIdle = (key: Key, onlyIf?: Effect.Effect<boolean>): Entry<E> => {\n const next = makeEntry()\n active.set(key, next)\n start(key, next, false, onlyIf)\n return next\n }\n\n const run = (key: Key): Effect.Effect<void, E> =>\n Effect.uninterruptibleMask((restore) => {\n const entry = active.get(key)\n if (entry !== undefined) {\n /* v8 ignore next -- stopping is a cooperative-scheduler handoff covered by the cleanup race test */\n if (entry.stopping) return restore(Deferred.await(entry.done).pipe(Effect.andThen(run(key))))\n return restore(Deferred.await(entry.done))\n }\n\n return restore(Deferred.await(startIdle(key).done))\n })\n\n const join = (key: Key): Effect.Effect<void, E> =>\n Effect.suspend(() => {\n const entry = active.get(key)\n return entry === undefined ? Effect.void : Deferred.await(entry.done)\n })\n\n const schedule = (key: Key): Effect.Effect<void> =>\n Effect.sync(() => {\n if (!active.has(key)) startIdle(key)\n })\n\n const scheduleIf = (key: Key, ready: Effect.Effect<boolean>): Effect.Effect<void> =>\n Effect.sync(() => {\n if (!active.has(key)) startIdle(key, ready)\n })\n\n const wake = (key: Key): Effect.Effect<void> =>\n Effect.sync(() => {\n const entry = active.get(key)\n if (entry !== undefined) {\n entry.pendingWake = true\n return\n }\n\n startIdle(key)\n })\n\n const interrupt = (key: Key): Effect.Effect<void> =>\n Effect.suspend(() => {\n const entry = active.get(key)\n if (entry?.owner === undefined) return Effect.void\n entry.stopping = true\n entry.pendingWake = false\n return Fiber.interrupt(entry.owner)\n })\n\n const requestInterrupt = (key: Key): Effect.Effect<void> =>\n Effect.withFiber((fiber) =>\n Effect.sync(() => {\n const entry = active.get(key)\n if (entry?.owner === undefined) return\n entry.stopping = true\n entry.pendingWake = false\n entry.owner.interruptUnsafe(fiber.id)\n })\n )\n\n return {\n active: Effect.fn(\"RunCoordinator.active\")(() => Effect.sync(() => new Set(active.keys())))(),\n run: Effect.fn(\"RunCoordinator.run\")(run),\n join: Effect.fn(\"RunCoordinator.join\")(join),\n schedule: Effect.fn(\"RunCoordinator.schedule\")(schedule),\n scheduleIf: Effect.fn(\"RunCoordinator.scheduleIf\")(scheduleIf),\n wake: Effect.fn(\"RunCoordinator.wake\")(wake),\n interrupt: Effect.fn(\"RunCoordinator.interrupt\")(interrupt),\n requestInterrupt: Effect.fn(\"RunCoordinator.requestInterrupt\")(requestInterrupt)\n }\n })\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaA,oBAA2E;AAuEpE,MAAM,OAAO,CAAY,YAG9B,qBAAO,IAAI,aAAY;AACrB,QAAM,SAAS,oBAAI,IAAmB;AACtC,QAAM,OAAO,OAAO,uBAAS,YAA4B;AAEzD,QAAM,YAAY,OAAiB;AAAA,IACjC,MAAM,uBAAS,WAAoB;AAAA,IACnC,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAEA,QAAM,QAAQ,CACZ,KACA,OACA,YAAY,OACZ,SAAiC,qBAAO,QAAQ,IAAI,MAC3C;AACT,UAAM,QAAQ,uBAAS,WAAiB;AACxC,UAAM,QAAQ;AAAA,OACX,YAAY,qBAAO,WAAW,uBAAS,MAAM,KAAK,GAAG;AAAA,QACpD,qBAAO,QAAQ,MAAM;AAAA,QACrB,qBAAO,QAAQ,CAACA,WAAUA,SAAQ,qBAAO,QAAQ,MAAM,QAAQ,MAAM,GAAG,CAAC,IAAI,qBAAO,IAAI;AAAA,QACxF,qBAAO;AAAA,UAAQ,CAAC,UACd,oBAAM,kBAAkB,KAAK,IACzB,qBAAO,OACP,qBAAO,WAAW,8CAA8C,OAAO,GAAG,CAAC,IAAI,KAAK;AAAA,QAC1F;AAAA,QACA,qBAAO,OAAO,CAAC,SAAS,qBAAO,KAAK,MAAM,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC;AAAA,QACnE,qBAAO;AAAA,QACP,qBAAO;AAAA,MACT;AAAA,IACF;AACA,UAAM,QAAQ;AACd,QAAI,CAAC,UAAW,wBAAS,WAAW,OAAO,qBAAO,IAAI;AAAA,EACxD;AAEA,QAAM,SAAS,CAAC,KAAU,OAAiB,SAAmC;AAC5E,QAAI,mBAAK,UAAU,IAAI,KAAK,CAAC,MAAM,YAAY,MAAM,aAAa;AAChE,YAAM,cAAc;AACpB,YAAM,KAAK,OAAO,IAAI;AACtB;AAAA,IACF;AAEA,UAAM,YAAY,MAAM,cAAc,UAAU,IAAI;AACpD,QAAI,cAAc,OAAW,QAAO,OAAO,GAAG;AAAA,SACzC;AACH,aAAO,IAAI,KAAK,SAAS;AACzB,YAAM,KAAK,WAAW,IAAI;AAAA,IAC5B;AACA,2BAAS,WAAW,MAAM,MAAM,IAAI;AAAA,EACtC;AAEA,QAAM,YAAY,CAAC,KAAU,WAA8C;AACzE,UAAM,OAAO,UAAU;AACvB,WAAO,IAAI,KAAK,IAAI;AACpB,UAAM,KAAK,MAAM,OAAO,MAAM;AAC9B,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,CAAC,QACX,qBAAO,oBAAoB,CAAC,YAAY;AACtC,UAAM,QAAQ,OAAO,IAAI,GAAG;AAC5B,QAAI,UAAU,QAAW;AAEvB,UAAI,MAAM,SAAU,QAAO,QAAQ,uBAAS,MAAM,MAAM,IAAI,EAAE,KAAK,qBAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC;AAC5F,aAAO,QAAQ,uBAAS,MAAM,MAAM,IAAI,CAAC;AAAA,IAC3C;AAEA,WAAO,QAAQ,uBAAS,MAAM,UAAU,GAAG,EAAE,IAAI,CAAC;AAAA,EACpD,CAAC;AAEH,QAAM,OAAO,CAAC,QACZ,qBAAO,QAAQ,MAAM;AACnB,UAAM,QAAQ,OAAO,IAAI,GAAG;AAC5B,WAAO,UAAU,SAAY,qBAAO,OAAO,uBAAS,MAAM,MAAM,IAAI;AAAA,EACtE,CAAC;AAEH,QAAM,WAAW,CAAC,QAChB,qBAAO,KAAK,MAAM;AAChB,QAAI,CAAC,OAAO,IAAI,GAAG,EAAG,WAAU,GAAG;AAAA,EACrC,CAAC;AAEH,QAAM,aAAa,CAAC,KAAU,UAC5B,qBAAO,KAAK,MAAM;AAChB,QAAI,CAAC,OAAO,IAAI,GAAG,EAAG,WAAU,KAAK,KAAK;AAAA,EAC5C,CAAC;AAEH,QAAM,OAAO,CAAC,QACZ,qBAAO,KAAK,MAAM;AAChB,UAAM,QAAQ,OAAO,IAAI,GAAG;AAC5B,QAAI,UAAU,QAAW;AACvB,YAAM,cAAc;AACpB;AAAA,IACF;AAEA,cAAU,GAAG;AAAA,EACf,CAAC;AAEH,QAAM,YAAY,CAAC,QACjB,qBAAO,QAAQ,MAAM;AACnB,UAAM,QAAQ,OAAO,IAAI,GAAG;AAC5B,QAAI,OAAO,UAAU,OAAW,QAAO,qBAAO;AAC9C,UAAM,WAAW;AACjB,UAAM,cAAc;AACpB,WAAO,oBAAM,UAAU,MAAM,KAAK;AAAA,EACpC,CAAC;AAEH,QAAM,mBAAmB,CAAC,QACxB,qBAAO;AAAA,IAAU,CAAC,UAChB,qBAAO,KAAK,MAAM;AAChB,YAAM,QAAQ,OAAO,IAAI,GAAG;AAC5B,UAAI,OAAO,UAAU,OAAW;AAChC,YAAM,WAAW;AACjB,YAAM,cAAc;AACpB,YAAM,MAAM,gBAAgB,MAAM,EAAE;AAAA,IACtC,CAAC;AAAA,EACH;AAEF,SAAO;AAAA,IACL,QAAQ,qBAAO,GAAG,uBAAuB,EAAE,MAAM,qBAAO,KAAK,MAAM,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE;AAAA,IAC5F,KAAK,qBAAO,GAAG,oBAAoB,EAAE,GAAG;AAAA,IACxC,MAAM,qBAAO,GAAG,qBAAqB,EAAE,IAAI;AAAA,IAC3C,UAAU,qBAAO,GAAG,yBAAyB,EAAE,QAAQ;AAAA,IACvD,YAAY,qBAAO,GAAG,2BAA2B,EAAE,UAAU;AAAA,IAC7D,MAAM,qBAAO,GAAG,qBAAqB,EAAE,IAAI;AAAA,IAC3C,WAAW,qBAAO,GAAG,0BAA0B,EAAE,SAAS;AAAA,IAC1D,kBAAkB,qBAAO,GAAG,iCAAiC,EAAE,gBAAgB;AAAA,EACjF;AACF,CAAC;",
6
+ "names": ["ready"]
7
+ }
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Claim-gated durable flow run lifecycle.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import { DurableWriter } from "@smthrs/database/DurableWriter";
7
+ import { FlowEngine } from "@smthrs/engine";
8
+ import { Flow, FlowRuntime } from "@smthrs/flow";
9
+ import { Journal } from "@smthrs/journal";
10
+ import { Ownership, RunStore } from "@smthrs/run-store";
11
+ import type * as Crypto from "effect/Crypto";
12
+ import * as Effect from "effect/Effect";
13
+ import * as Scope from "effect/Scope";
14
+ import * as DurableEngineState from "../DurableEngineState.ts";
15
+ import * as WakeBus from "../WakeBus.ts";
16
+ /**
17
+ * Raised when a flow (directly or through mutual ancestry) attempts to
18
+ * execute an execution id that already appears in its own persisted
19
+ * `parentExecutionId` chain.
20
+ *
21
+ * Detection walks the already-persisted parent chain from the requesting
22
+ * parent upward — an O(depth) check, not a dependency-graph DFS — because
23
+ * `parentExecutionId` is the only edge our runtime model can express.
24
+ *
25
+ * The class is declared by `@smthrs/flow` (it is part of the `execute`
26
+ * contract) and re-exported here for the detector's callers.
27
+ *
28
+ * @since 0.1.0
29
+ * @category errors
30
+ */
31
+ export declare const FlowCycleDetected: typeof FlowRuntime.FlowCycleDetected;
32
+ /**
33
+ * The value form of {@link FlowCycleDetected}.
34
+ *
35
+ * @since 0.1.0
36
+ * @category errors
37
+ */
38
+ export type FlowCycleDetected = FlowRuntime.FlowCycleDetected;
39
+ /**
40
+ * Why the engine itself asked a parked execution to resume.
41
+ *
42
+ * The operator's own resume is absent on purpose: it is the one wake a host
43
+ * has already claimed before the engine hears about it.
44
+ *
45
+ * @since 0.1.0
46
+ * @category models
47
+ */
48
+ export type RequestedResumeReason = "deferred" | "clock" | "parent";
49
+ /**
50
+ * Why a wake is scheduled for an execution.
51
+ *
52
+ * Only `operator` is recovery consent for a quarantine park. `delegated` is a
53
+ * host taking up a control delegation it has already claimed, so, like
54
+ * `operator`, it is not recorded back to the host as a request.
55
+ *
56
+ * @since 1.0.0
57
+ * @category models
58
+ */
59
+ export type ScheduledResumeReason = RequestedResumeReason | "operator" | "delegated";
60
+ /**
61
+ * Dependencies for the run driver.
62
+ *
63
+ * @since 0.1.0
64
+ * @category models
65
+ */
66
+ export interface Dependencies {
67
+ readonly owner: Ownership.OwnerId;
68
+ readonly journalSource: string;
69
+ /**
70
+ * Liveness arbitration before a steal, consulted only for a run whose lease
71
+ * has already expired. Optional: the default is
72
+ * `Ownership.leaseLiveness(Ownership.heartbeatStaleAfter)`, which has no
73
+ * evidence beyond the lease and therefore reports the owner gone, so a
74
+ * composition that supplies nothing still reclaims hard-killed runs.
75
+ */
76
+ readonly isAlive?: Ownership.LivenessCheck | undefined;
77
+ readonly canExecute?: ((row: RunStore.RunRow) => Effect.Effect<boolean>) | undefined;
78
+ readonly canActivate?: ((row: RunStore.RunRow) => Effect.Effect<boolean>) | undefined;
79
+ /**
80
+ * Records, for a host that keeps one, that this driver has asked a
81
+ * SUSPENDED execution to resume.
82
+ *
83
+ * Every wake the engine itself initiates passes through here: a durable
84
+ * clock firing, a durable deferred completing (a signal, a queue offer, a
85
+ * registration-time sweep of completions taken while the host was down),
86
+ * and a child settling under a parent that parked on it. A host that guards
87
+ * re-entry into a parked run — `AgentSession` refuses a round for a parked
88
+ * control row that nobody asked for — otherwise cannot tell those from its
89
+ * own heartbeat sweep, and a run that slept never settled.
90
+ *
91
+ * An operator resume is NOT recorded: `Control.resume` and
92
+ * `ControlLive.decide` claim the control row themselves, and recording a
93
+ * second request for the resume a host is already taking up would buy that
94
+ * park a second re-drive.
95
+ *
96
+ * Optional. A composition with no such host leaves it undefined and the
97
+ * wake is exactly what it was.
98
+ */
99
+ readonly requestResume?: ((executionId: string, reason: RequestedResumeReason) => Effect.Effect<void>) | undefined;
100
+ readonly engine: Effect.Effect<FlowRuntime.FlowRuntime["Service"]>;
101
+ /**
102
+ * In-process wake bus announced to whenever a durable write makes a run
103
+ * runnable — a scheduled resume (deferred, clock, operator) and a run
104
+ * settling terminally. Optional so a direct construction without one keeps
105
+ * the pre-existing polling-only behavior: the default drops every wake,
106
+ * which the engine's suspension polling schedule already covers.
107
+ */
108
+ readonly wakeBus?: WakeBus.Service | undefined;
109
+ /**
110
+ * Runs inside the uninterruptible finalizer that retains a suspended run's
111
+ * flow scope, immediately after the entry is inserted and before the round's
112
+ * settlement can start.
113
+ *
114
+ * Private to `packages/smithers/flows/engine-store/test`. That boundary is where a pending
115
+ * interruption first becomes observable again, and no public seam reaches
116
+ * it, so the regression proving the retention is released there — rather
117
+ * than stranded until the driver's own scope closes — raises the
118
+ * interruption from here. This module is not exported from the package
119
+ * (`"./internal/*": null`), and production compositions leave the hook
120
+ * undefined, which costs one `undefined` check per suspension.
121
+ */
122
+ readonly unsafeOnScopeRetained?: ((runId: string) => Effect.Effect<void>) | undefined;
123
+ }
124
+ /**
125
+ * Claim-gated operations composed into the encoded flow engine.
126
+ *
127
+ * @since 0.1.0
128
+ * @category models
129
+ */
130
+ export interface Service {
131
+ readonly register: FlowEngine.Encoded["register"];
132
+ /**
133
+ * The encoded `execute`, widened for direct driver callers: an absent
134
+ * `round` admits the execution as round zero of its own lineage. Nested
135
+ * direct callers observe its latest round; encoded callers read one round.
136
+ * To decode a terminal result, direct nested callers must register the
137
+ * terminal flow's codec in this driver, even if another worker ran it.
138
+ * A missing codec is a wiring defect, as with the typed Trampoline; it
139
+ * fails fast rather than suspending terminal work with no future wake.
140
+ */
141
+ readonly execute: <const Discard extends boolean>(flow: Flow.Any, options: {
142
+ readonly executionId: string;
143
+ readonly payload: object;
144
+ readonly discard: Discard;
145
+ readonly parent?: FlowRuntime.FlowInstance["Service"] | undefined;
146
+ readonly round?: Parameters<FlowEngine.Encoded["execute"]>[1]["round"] | undefined;
147
+ readonly follow?: boolean | undefined;
148
+ }) => Effect.Effect<Discard extends true ? void : Flow.Result<unknown, unknown>, FlowCycleDetected>;
149
+ readonly poll: FlowEngine.Encoded["poll"];
150
+ readonly interrupt: FlowEngine.Encoded["interrupt"];
151
+ readonly interruptUnsafe: FlowEngine.Encoded["interruptUnsafe"];
152
+ readonly resume: FlowEngine.Encoded["resume"];
153
+ readonly scheduleResume: (flowName: string, executionId: string, reason: ScheduledResumeReason, sourceId?: string | undefined) => Effect.Effect<void>;
154
+ readonly active: Effect.Effect<ReadonlySet<string>>;
155
+ /**
156
+ * The runs whose parked flow scope this driver still holds. Cancellation
157
+ * and re-drive both release; the set is the leak assertion's observation
158
+ * point.
159
+ */
160
+ readonly retainedRuns: Effect.Effect<ReadonlySet<string>>;
161
+ }
162
+ /**
163
+ * The effect kind a detached child spawn is journaled under, and therefore the
164
+ * kind an engine composition registers a spawn-compensation handler for.
165
+ *
166
+ * @since 0.1.0
167
+ * @category constants
168
+ */
169
+ export declare const spawnEffectKind: "flows/engine-store/child-spawn";
170
+ /**
171
+ * Compares encoded JSON payloads structurally. Object key order is not part
172
+ * of JSON identity, while array order and array length are.
173
+ *
174
+ * Values outside JSON compare unequal unless both arguments are the same
175
+ * reference.
176
+ *
177
+ * @since 1.0.0
178
+ * @category guards
179
+ * @private
180
+ */
181
+ export declare const samePayload: (left: unknown, right: unknown) => boolean;
182
+ /**
183
+ * Constructs a scoped run driver.
184
+ *
185
+ * Every start and wake enters the same keyed coordinator and then the same
186
+ * exact-snapshot claim/activation path.
187
+ *
188
+ * @since 0.1.0
189
+ * @category constructors
190
+ */
191
+ export declare const make: (dependencies: Dependencies) => Effect.Effect<Service, never, Crypto.Crypto | DurableEngineState.DurableEngineState | DurableWriter | Journal.Journal | RunStore.RunStore | Scope.Scope>;
192
+ //# sourceMappingURL=RunDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunDriver.d.ts","sourceRoot":"","sources":["../../../src/internal/RunDriver.ts"],"names":[],"mappings":"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"}