@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,17 @@
1
+ /**
2
+ * The workspace run catalog read.
3
+ *
4
+ * `@smthrs/sync` serves a workspace subscription over a `RunCatalog`, and its
5
+ * own implementations are static or in-process. This is the durable source a
6
+ * `RunCatalog.makePolling` catalog reads, so a follower learns of a run
7
+ * another engine created.
8
+ *
9
+ * The operation lives in `internal/RunCatalogOps.ts`, beside the other
10
+ * modules that read this package's own tables; this module is the public
11
+ * surface, so `internal/` is never imported by a consumer.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ export { defaultLimit, layer, type ListOptions, make, RunCatalogError, RunCatalogErrorCode, RunCatalogRead, type Service } from "./internal/RunCatalogOps.ts";
16
+ export { Filters, type ListRunsOptions, maximumPageSize, type RunPage } from "./internal/RunListing.ts";
17
+ //# sourceMappingURL=RunCatalogRead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunCatalogRead.d.ts","sourceRoot":"","sources":["../../src/RunCatalogRead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,YAAY,EACZ,KAAK,EACL,KAAK,WAAW,EAChB,IAAI,EACJ,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,KAAK,OAAO,EACb,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,OAAO,EAAE,KAAK,eAAe,EAAE,eAAe,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The workspace run catalog read.
3
+ *
4
+ * `@smthrs/sync` serves a workspace subscription over a `RunCatalog`, and its
5
+ * own implementations are static or in-process. This is the durable source a
6
+ * `RunCatalog.makePolling` catalog reads, so a follower learns of a run
7
+ * another engine created.
8
+ *
9
+ * The operation lives in `internal/RunCatalogOps.ts`, beside the other
10
+ * modules that read this package's own tables; this module is the public
11
+ * surface, so `internal/` is never imported by a consumer.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ export { defaultLimit, layer, make, RunCatalogError, RunCatalogErrorCode, RunCatalogRead } from "./internal/RunCatalogOps.js";
16
+ export { Filters, maximumPageSize } from "./internal/RunListing.js";
17
+ //# sourceMappingURL=RunCatalogRead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunCatalogRead.js","sourceRoot":"","sources":["../../src/RunCatalogRead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,YAAY,EACZ,KAAK,EAEL,IAAI,EACJ,eAAe,EACf,mBAAmB,EACnB,cAAc,EAEf,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,OAAO,EAAwB,eAAe,EAAgB,MAAM,0BAA0B,CAAA","sourcesContent":["/**\n * The workspace run catalog read.\n *\n * `@smthrs/sync` serves a workspace subscription over a `RunCatalog`, and its\n * own implementations are static or in-process. This is the durable source a\n * `RunCatalog.makePolling` catalog reads, so a follower learns of a run\n * another engine created.\n *\n * The operation lives in `internal/RunCatalogOps.ts`, beside the other\n * modules that read this package's own tables; this module is the public\n * surface, so `internal/` is never imported by a consumer.\n *\n * @since 0.1.0\n */\n\nexport {\n defaultLimit,\n layer,\n type ListOptions,\n make,\n RunCatalogError,\n RunCatalogErrorCode,\n RunCatalogRead,\n type Service\n} from \"./internal/RunCatalogOps.ts\"\n\nexport { Filters, type ListRunsOptions, maximumPageSize, type RunPage } from \"./internal/RunListing.ts\"\n"]}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Coalesced execution catch-up with permanent deletion evidence.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import { RunStoreError } from "@smthrs/run-store/RunStore";
7
+ import { Context, Effect, Layer } from "effect";
8
+ import * as SqlClient from "effect/unstable/sql/SqlClient";
9
+ import type { Position } from "./ExecutionSnapshot.ts";
10
+ /**
11
+ * A live-row change or retained tombstone.
12
+ *
13
+ * @category models
14
+ * @since 1.0.0
15
+ */
16
+ export interface Change extends Position {
17
+ readonly runId: string;
18
+ readonly deleted: boolean;
19
+ }
20
+ /**
21
+ * One catch-up page at an engine watermark.
22
+ *
23
+ * @category models
24
+ * @since 1.0.0
25
+ */
26
+ export interface Page extends Position {
27
+ readonly changes: ReadonlyArray<Change>;
28
+ /** Resume here, including across gaps from coalesced changes. */
29
+ readonly nextRevision: number;
30
+ readonly hasMore: boolean;
31
+ }
32
+ /**
33
+ * Bounded state-feed operations.
34
+ *
35
+ * @category models
36
+ * @since 1.0.0
37
+ */
38
+ export interface Service {
39
+ readonly current: Effect.Effect<Position, RunStoreError>;
40
+ readonly changesSince: (options: Position & {
41
+ readonly limit: number;
42
+ }) => Effect.Effect<Page, RunStoreError>;
43
+ }
44
+ declare const RunChangeFeed_base: Context.ServiceClass<RunChangeFeed, "@smthrs/engine-store/RunChangeFeed", Service>;
45
+ /**
46
+ * Durable change-feed service.
47
+ *
48
+ * @category services
49
+ * @since 1.0.0
50
+ */
51
+ export declare class RunChangeFeed extends RunChangeFeed_base {
52
+ }
53
+ /**
54
+ * Maximum change-feed page size.
55
+ *
56
+ * @category constants
57
+ * @since 1.0.0
58
+ */
59
+ export declare const maximumPageSize = 1000;
60
+ /**
61
+ * Constructs the feed without polling or retention timers.
62
+ *
63
+ * @category constructors
64
+ * @since 1.0.0
65
+ */
66
+ export declare const make: () => Effect.Effect<Service, never, SqlClient.SqlClient>;
67
+ /**
68
+ * Provides the SQL feed.
69
+ *
70
+ * @category layers
71
+ * @since 1.0.0
72
+ */
73
+ export declare const layer: Layer.Layer<RunChangeFeed, never, SqlClient.SqlClient>;
74
+ export {};
75
+ //# sourceMappingURL=RunChangeFeed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunChangeFeed.d.ts","sourceRoot":"","sources":["../../src/RunChangeFeed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGtD;;;;;GAKG;AACH,MAAM,WAAW,MAAO,SAAQ,QAAQ;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AACD;;;;;GAKG;AACH,MAAM,WAAW,IAAK,SAAQ,QAAQ;IACpC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACvC,iEAAiE;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AACD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IACxD,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;CAC9G;;AACD;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,kBAA+E;CAAG;AACrH;;;;;GAKG;AACH,eAAO,MAAM,eAAe,OAAO,CAAA;AAQnC;;;;;GAKG;AACH,eAAO,MAAM,IAAI,QAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CA8CrE,CAAA;AACJ;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAAuC,CAAA"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Coalesced execution catch-up with permanent deletion evidence.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import { RunStoreError } from "@smthrs/run-store/RunStore";
7
+ import { Context, Effect, Layer, Schema } from "effect";
8
+ import * as SqlClient from "effect/unstable/sql/SqlClient";
9
+ import * as Read from "./internal/ExecutionSnapshotRead.js";
10
+ /**
11
+ * Durable change-feed service.
12
+ *
13
+ * @category services
14
+ * @since 1.0.0
15
+ */
16
+ export class RunChangeFeed extends Context.Service()("@smthrs/engine-store/RunChangeFeed") {
17
+ }
18
+ /**
19
+ * Maximum change-feed page size.
20
+ *
21
+ * @category constants
22
+ * @since 1.0.0
23
+ */
24
+ export const maximumPageSize = 1000;
25
+ const Options = Schema.Struct({
26
+ source: Read.Source,
27
+ revision: Read.Natural,
28
+ limit: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: maximumPageSize }))
29
+ });
30
+ const ChangeRow = Schema.Struct({ run_id: Read.Identifier, revision: Read.Natural, deleted: Schema.Literals([0, 1]) });
31
+ /**
32
+ * Constructs the feed without polling or retention timers.
33
+ *
34
+ * @category constructors
35
+ * @since 1.0.0
36
+ */
37
+ export const make = () => Effect.gen(function* () {
38
+ const sql = yield* SqlClient.SqlClient;
39
+ return {
40
+ current: Read.boundary("RunChangeFeed.current", Read.position(sql)),
41
+ changesSince: (options) => Read.boundary("RunChangeFeed.changesSince", Effect.gen(function* () {
42
+ const input = yield* Read.decode(Options, options);
43
+ return yield* Read.transaction(sql, Effect.gen(function* () {
44
+ const at = yield* Read.position(sql);
45
+ if (input.source !== at.source || input.revision > at.revision) {
46
+ return yield* Effect.fail(new RunStoreError({
47
+ method: "RunChangeFeed.changesSince",
48
+ code: "invalid_run",
49
+ message: "change cursor requires an explicit source rebuild",
50
+ cause: { requested: input, observed: at }
51
+ }));
52
+ }
53
+ const rows = yield* sql `SELECT run_id, revision, deleted FROM flows_run_changes
54
+ WHERE revision > ${input.revision} AND revision <= ${at.revision}
55
+ ORDER BY revision LIMIT ${input.limit + 1}`;
56
+ const decoded = yield* Effect.forEach(rows, (row) => Read.decode(ChangeRow, row));
57
+ const changes = decoded.slice(0, input.limit).map((row) => ({
58
+ runId: row.run_id,
59
+ source: at.source,
60
+ revision: row.revision,
61
+ deleted: row.deleted === 1
62
+ }));
63
+ const hasMore = decoded.length > input.limit;
64
+ return {
65
+ ...at,
66
+ changes,
67
+ hasMore,
68
+ nextRevision: hasMore ? changes[changes.length - 1].revision : at.revision
69
+ };
70
+ }));
71
+ }))
72
+ };
73
+ });
74
+ /**
75
+ * Provides the SQL feed.
76
+ *
77
+ * @category layers
78
+ * @since 1.0.0
79
+ */
80
+ export const layer = Layer.effect(RunChangeFeed)(make());
81
+ //# sourceMappingURL=RunChangeFeed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunChangeFeed.js","sourceRoot":"","sources":["../../src/RunChangeFeed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAE1D,OAAO,KAAK,IAAI,MAAM,qCAAqC,CAAA;AAkC3D;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,OAAO,EAA0B,CAAC,oCAAoC,CAAC;CAAG;AACrH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,QAAQ,EAAE,IAAI,CAAC,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;CACpF,CAAC,CAAA;AACF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAEtH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,GAAuD,EAAE,CAC3E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAA;IACtC,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CACxB,IAAI,CAAC,QAAQ,CACX,4BAA4B,EAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAClD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAC5B,GAAG,EACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACpC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;oBAC/D,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,aAAa,CAAC;wBAChB,MAAM,EAAE,4BAA4B;wBACpC,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE,mDAAmD;wBAC5D,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;qBAC1C,CAAC,CACH,CAAA;gBACH,CAAC;gBACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAA;6BACV,KAAK,CAAC,QAAQ,oBAAoB,EAAE,CAAC,QAAQ;oCACtC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAA;gBACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;gBACjF,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC1D,KAAK,EAAE,GAAG,CAAC,MAAM;oBACjB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,CAAC;iBAC3B,CAAC,CAAC,CAAA;gBACH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAA;gBAC5C,OAAO;oBACL,GAAG,EAAE;oBACL,OAAO;oBACP,OAAO;oBACP,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ;iBAC5E,CAAA;YACH,CAAC,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CACH;KACJ,CAAA;AACH,CAAC,CAAC,CAAA;AACJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAA2D,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA","sourcesContent":["/**\n * Coalesced execution catch-up with permanent deletion evidence.\n *\n * @since 1.0.0\n */\n\nimport { RunStoreError } from \"@smthrs/run-store/RunStore\"\nimport { Context, Effect, Layer, Schema } from \"effect\"\nimport * as SqlClient from \"effect/unstable/sql/SqlClient\"\nimport type { Position } from \"./ExecutionSnapshot.ts\"\nimport * as Read from \"./internal/ExecutionSnapshotRead.ts\"\n\n/**\n * A live-row change or retained tombstone.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Change extends Position {\n readonly runId: string\n readonly deleted: boolean\n}\n/**\n * One catch-up page at an engine watermark.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Page extends Position {\n readonly changes: ReadonlyArray<Change>\n /** Resume here, including across gaps from coalesced changes. */\n readonly nextRevision: number\n readonly hasMore: boolean\n}\n/**\n * Bounded state-feed operations.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Service {\n readonly current: Effect.Effect<Position, RunStoreError>\n readonly changesSince: (options: Position & { readonly limit: number }) => Effect.Effect<Page, RunStoreError>\n}\n/**\n * Durable change-feed service.\n *\n * @category services\n * @since 1.0.0\n */\nexport class RunChangeFeed extends Context.Service<RunChangeFeed, Service>()(\"@smthrs/engine-store/RunChangeFeed\") {}\n/**\n * Maximum change-feed page size.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const maximumPageSize = 1000\nconst Options = Schema.Struct({\n source: Read.Source,\n revision: Read.Natural,\n limit: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: maximumPageSize }))\n})\nconst ChangeRow = Schema.Struct({ run_id: Read.Identifier, revision: Read.Natural, deleted: Schema.Literals([0, 1]) })\n\n/**\n * Constructs the feed without polling or retention timers.\n *\n * @category constructors\n * @since 1.0.0\n */\nexport const make = (): Effect.Effect<Service, never, SqlClient.SqlClient> =>\n Effect.gen(function*() {\n const sql = yield* SqlClient.SqlClient\n return {\n current: Read.boundary(\"RunChangeFeed.current\", Read.position(sql)),\n changesSince: (options) =>\n Read.boundary(\n \"RunChangeFeed.changesSince\",\n Effect.gen(function*() {\n const input = yield* Read.decode(Options, options)\n return yield* Read.transaction(\n sql,\n Effect.gen(function*() {\n const at = yield* Read.position(sql)\n if (input.source !== at.source || input.revision > at.revision) {\n return yield* Effect.fail(\n new RunStoreError({\n method: \"RunChangeFeed.changesSince\",\n code: \"invalid_run\",\n message: \"change cursor requires an explicit source rebuild\",\n cause: { requested: input, observed: at }\n })\n )\n }\n const rows = yield* sql`SELECT run_id, revision, deleted FROM flows_run_changes\n WHERE revision > ${input.revision} AND revision <= ${at.revision}\n ORDER BY revision LIMIT ${input.limit + 1}`\n const decoded = yield* Effect.forEach(rows, (row) => Read.decode(ChangeRow, row))\n const changes = decoded.slice(0, input.limit).map((row) => ({\n runId: row.run_id,\n source: at.source,\n revision: row.revision,\n deleted: row.deleted === 1\n }))\n const hasMore = decoded.length > input.limit\n return {\n ...at,\n changes,\n hasMore,\n nextRevision: hasMore ? changes[changes.length - 1]!.revision : at.revision\n }\n })\n )\n })\n )\n }\n })\n/**\n * Provides the SQL feed.\n *\n * @category layers\n * @since 1.0.0\n */\nexport const layer: Layer.Layer<RunChangeFeed, never, SqlClient.SqlClient> = Layer.effect(RunChangeFeed)(make())\n"]}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * The envelope a durable run's state is persisted inside.
3
+ *
4
+ * The engine never stores a flow's payload bare — it wraps it in a versioned
5
+ * struct, so a store row written by an older build decodes under a known
6
+ * shape instead of being guessed at. `version` is a literal rather than a
7
+ * number for exactly that reason: a future revision adds a new literal and
8
+ * both remain decodable.
9
+ *
10
+ * Time travel reads these rows too, deriving the state AT a frame by
11
+ * replaying run-decision records rather than trusting the row's latest value.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ import { CapabilityPattern } from "@smthrs/capability/Capability";
16
+ import * as Schema from "effect/Schema";
17
+ /**
18
+ * What a linked child does when the run that spawned it ends.
19
+ *
20
+ * `cancel` is the default and the shape a `.child()` boundary takes: the
21
+ * parent is waiting on this child, so a parent that stops waiting — because it
22
+ * completed, failed, or was cancelled — leaves nothing behind. `detach` is the
23
+ * shape a fire-and-forget spawn takes: the parent deliberately did not wait,
24
+ * so the child outlives it and keeps its own claim and its own journal.
25
+ *
26
+ * The policy is recorded on the CHILD rather than on the edge because it is a
27
+ * property of how the child was started, and because a child with two parents
28
+ * (the diamond `flows_run_parents` permits) must answer the question once.
29
+ *
30
+ * @since 0.1.0
31
+ * @category schemas
32
+ */
33
+ export declare const OnParentExit: Schema.Literals<readonly ["cancel", "detach"]>;
34
+ /**
35
+ * The value form of {@link OnParentExit}.
36
+ *
37
+ * @since 0.1.0
38
+ * @category models
39
+ */
40
+ export type OnParentExit = typeof OnParentExit.Type;
41
+ /**
42
+ * The versioned state stored for a durable flow run: which flow it is, the
43
+ * encoded `payload` it was started with, and — as they arrive — its
44
+ * `result` and its cancellation timestamp.
45
+ *
46
+ * `parentExecutionId` is present only on a child run, and is what makes a
47
+ * spawned subflow reachable from the run that spawned it. `onParentExit`
48
+ * travels with it: it is what the parent's terminal transition reads to decide
49
+ * whether this child ends with it.
50
+ *
51
+ * @since 0.1.0
52
+ * @category schemas
53
+ */
54
+ export declare const RunState: Schema.Struct<{
55
+ readonly version: Schema.Literal<1>;
56
+ readonly flowName: Schema.NonEmptyString;
57
+ readonly payload: Schema.Unknown;
58
+ readonly capabilityCeilings: Schema.optionalKey<Schema.$Array<Schema.$Array<typeof CapabilityPattern>>>;
59
+ readonly forkKeyRunIds: Schema.optionalKey<Schema.$Array<Schema.NonEmptyString>>;
60
+ readonly parentExecutionId: Schema.optionalKey<Schema.NonEmptyString>;
61
+ readonly onParentExit: Schema.optionalKey<Schema.Literals<readonly ["cancel", "detach"]>>;
62
+ readonly maxRounds: Schema.optionalKey<Schema.Int>;
63
+ readonly deadline: Schema.optionalKey<Schema.Struct<{
64
+ readonly startedAtMs: Schema.Number;
65
+ readonly deadlineMs: Schema.Number;
66
+ }>>;
67
+ readonly result: Schema.optionalKey<Schema.Unknown>;
68
+ readonly cancellation: Schema.optionalKey<Schema.Struct<{
69
+ readonly interruptedAtMs: Schema.Number;
70
+ }>>;
71
+ }>;
72
+ /**
73
+ * The value form of {@link RunState}.
74
+ *
75
+ * @since 0.1.0
76
+ * @category models
77
+ */
78
+ export type RunState = typeof RunState.Type;
79
+ /**
80
+ * Why a driver released a run it still owned, recorded on its
81
+ * `interrupt-released` run decision.
82
+ *
83
+ * `lease-lapsed` means the host went `unconfirmedMs` without confirming its
84
+ * run lease (a stalled or overloaded host), so the heartbeat loop stopped the
85
+ * run's work before a peer could take it. `interrupted` is any other
86
+ * interruption that was not a cancellation, usually a host shutdown.
87
+ *
88
+ * Decisions written before this field existed carry no cause; read them with
89
+ * {@link releaseCauseOf}, which answers `undefined` for them.
90
+ *
91
+ * @since 1.0.0
92
+ * @category schemas
93
+ */
94
+ export declare const ReleaseCause: Schema.Union<readonly [Schema.Struct<{
95
+ readonly kind: Schema.Literal<"lease-lapsed">;
96
+ readonly unconfirmedMs: Schema.Int;
97
+ }>, Schema.Struct<{
98
+ readonly kind: Schema.Literal<"interrupted">;
99
+ }>]>;
100
+ /**
101
+ * The value form of {@link ReleaseCause}.
102
+ *
103
+ * @since 1.0.0
104
+ * @category models
105
+ */
106
+ export type ReleaseCause = typeof ReleaseCause.Type;
107
+ /**
108
+ * The release cause a run decision payload records, or `undefined` for a
109
+ * decision that is not `interrupt-released`, one written before causes were
110
+ * recorded, or one whose cause does not decode.
111
+ *
112
+ * @since 1.0.0
113
+ * @category decoding
114
+ */
115
+ export declare const releaseCauseOf: (decision: unknown) => ReleaseCause | undefined;
116
+ //# sourceMappingURL=RunState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunState.d.ts","sourceRoot":"","sources":["../../src/RunState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,gDAAwC,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;EAkBnB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAA;AAE3C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,YAAY;;;;;IAMvB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAInD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,OAAO,KAAG,YAAY,GAAG,SAMjE,CAAA"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * The envelope a durable run's state is persisted inside.
3
+ *
4
+ * The engine never stores a flow's payload bare — it wraps it in a versioned
5
+ * struct, so a store row written by an older build decodes under a known
6
+ * shape instead of being guessed at. `version` is a literal rather than a
7
+ * number for exactly that reason: a future revision adds a new literal and
8
+ * both remain decodable.
9
+ *
10
+ * Time travel reads these rows too, deriving the state AT a frame by
11
+ * replaying run-decision records rather than trusting the row's latest value.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ import { CapabilityPattern } from "@smthrs/capability/Capability";
16
+ import { Flow } from "@smthrs/flow";
17
+ import * as Schema from "effect/Schema";
18
+ /** @private */
19
+ const PositiveSafeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1));
20
+ /**
21
+ * What a linked child does when the run that spawned it ends.
22
+ *
23
+ * `cancel` is the default and the shape a `.child()` boundary takes: the
24
+ * parent is waiting on this child, so a parent that stops waiting — because it
25
+ * completed, failed, or was cancelled — leaves nothing behind. `detach` is the
26
+ * shape a fire-and-forget spawn takes: the parent deliberately did not wait,
27
+ * so the child outlives it and keeps its own claim and its own journal.
28
+ *
29
+ * The policy is recorded on the CHILD rather than on the edge because it is a
30
+ * property of how the child was started, and because a child with two parents
31
+ * (the diamond `flows_run_parents` permits) must answer the question once.
32
+ *
33
+ * @since 0.1.0
34
+ * @category schemas
35
+ */
36
+ export const OnParentExit = Schema.Literals(["cancel", "detach"]);
37
+ /**
38
+ * The versioned state stored for a durable flow run: which flow it is, the
39
+ * encoded `payload` it was started with, and — as they arrive — its
40
+ * `result` and its cancellation timestamp.
41
+ *
42
+ * `parentExecutionId` is present only on a child run, and is what makes a
43
+ * spawned subflow reachable from the run that spawned it. `onParentExit`
44
+ * travels with it: it is what the parent's terminal transition reads to decide
45
+ * whether this child ends with it.
46
+ *
47
+ * @since 0.1.0
48
+ * @category schemas
49
+ */
50
+ export const RunState = Schema.Struct({
51
+ version: Schema.Literal(1),
52
+ flowName: Schema.NonEmptyString,
53
+ payload: Schema.Unknown,
54
+ capabilityCeilings: Schema.optionalKey(Schema.Array(Schema.Array(CapabilityPattern))),
55
+ // Key origins are immutable fork metadata, independent of the chosen frame.
56
+ // Copied attempts, not ancestry alone, authorize reuse of an origin's key.
57
+ forkKeyRunIds: Schema.optionalKey(Schema.Array(Schema.NonEmptyString)),
58
+ parentExecutionId: Schema.optionalKey(Schema.NonEmptyString),
59
+ onParentExit: Schema.optionalKey(OnParentExit),
60
+ maxRounds: Schema.optionalKey(PositiveSafeInt),
61
+ // The lineage deadline a round after a handoff runs under, copied from the
62
+ // `Flow.Handoff` that opened it.
63
+ deadline: Schema.optionalKey(Flow.LineageDeadline),
64
+ result: Schema.optionalKey(Schema.Unknown),
65
+ cancellation: Schema.optionalKey(Schema.Struct({
66
+ interruptedAtMs: Schema.Number.check(Schema.isGreaterThanOrEqualTo(0))
67
+ }))
68
+ });
69
+ /**
70
+ * Why a driver released a run it still owned, recorded on its
71
+ * `interrupt-released` run decision.
72
+ *
73
+ * `lease-lapsed` means the host went `unconfirmedMs` without confirming its
74
+ * run lease (a stalled or overloaded host), so the heartbeat loop stopped the
75
+ * run's work before a peer could take it. `interrupted` is any other
76
+ * interruption that was not a cancellation, usually a host shutdown.
77
+ *
78
+ * Decisions written before this field existed carry no cause; read them with
79
+ * {@link releaseCauseOf}, which answers `undefined` for them.
80
+ *
81
+ * @since 1.0.0
82
+ * @category schemas
83
+ */
84
+ export const ReleaseCause = Schema.Union([
85
+ Schema.Struct({
86
+ kind: Schema.Literal("lease-lapsed"),
87
+ unconfirmedMs: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))
88
+ }),
89
+ Schema.Struct({ kind: Schema.Literal("interrupted") })
90
+ ]);
91
+ const decodeReleaseCause = Schema.decodeUnknownOption(ReleaseCause);
92
+ /**
93
+ * The release cause a run decision payload records, or `undefined` for a
94
+ * decision that is not `interrupt-released`, one written before causes were
95
+ * recorded, or one whose cause does not decode.
96
+ *
97
+ * @since 1.0.0
98
+ * @category decoding
99
+ */
100
+ export const releaseCauseOf = (decision) => {
101
+ if (decision === null || typeof decision !== "object")
102
+ return undefined;
103
+ const record = decision;
104
+ if (record.decision !== "interrupt-released")
105
+ return undefined;
106
+ const decoded = decodeReleaseCause(record.cause);
107
+ return decoded._tag === "Some" ? decoded.value : undefined;
108
+ };
109
+ //# sourceMappingURL=RunState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunState.js","sourceRoot":"","sources":["../../src/RunState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,eAAe;AACf,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAUjE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,cAAc;IAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACrF,4EAA4E;IAC5E,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACtE,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;IAC5D,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC;IAC9C,2EAA2E;IAC3E,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7C,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC,CAAC;CACJ,CAAC,CAAA;AAUF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;QACpC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;CACvD,CAAC,CAAA;AAUF,MAAM,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAiB,EAA4B,EAAE;IAC5E,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAA;IACvE,MAAM,MAAM,GAAG,QAAqE,CAAA;IACpF,IAAI,MAAM,CAAC,QAAQ,KAAK,oBAAoB;QAAE,OAAO,SAAS,CAAA;IAC9D,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChD,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC,CAAA","sourcesContent":["/**\n * The envelope a durable run's state is persisted inside.\n *\n * The engine never stores a flow's payload bare — it wraps it in a versioned\n * struct, so a store row written by an older build decodes under a known\n * shape instead of being guessed at. `version` is a literal rather than a\n * number for exactly that reason: a future revision adds a new literal and\n * both remain decodable.\n *\n * Time travel reads these rows too, deriving the state AT a frame by\n * replaying run-decision records rather than trusting the row's latest value.\n *\n * @since 0.1.0\n */\n\nimport { CapabilityPattern } from \"@smthrs/capability/Capability\"\nimport { Flow } from \"@smthrs/flow\"\nimport * as Schema from \"effect/Schema\"\n\n/** @private */\nconst PositiveSafeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))\n\n/**\n * What a linked child does when the run that spawned it ends.\n *\n * `cancel` is the default and the shape a `.child()` boundary takes: the\n * parent is waiting on this child, so a parent that stops waiting — because it\n * completed, failed, or was cancelled — leaves nothing behind. `detach` is the\n * shape a fire-and-forget spawn takes: the parent deliberately did not wait,\n * so the child outlives it and keeps its own claim and its own journal.\n *\n * The policy is recorded on the CHILD rather than on the edge because it is a\n * property of how the child was started, and because a child with two parents\n * (the diamond `flows_run_parents` permits) must answer the question once.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const OnParentExit = Schema.Literals([\"cancel\", \"detach\"])\n\n/**\n * The value form of {@link OnParentExit}.\n *\n * @since 0.1.0\n * @category models\n */\nexport type OnParentExit = typeof OnParentExit.Type\n\n/**\n * The versioned state stored for a durable flow run: which flow it is, the\n * encoded `payload` it was started with, and — as they arrive — its\n * `result` and its cancellation timestamp.\n *\n * `parentExecutionId` is present only on a child run, and is what makes a\n * spawned subflow reachable from the run that spawned it. `onParentExit`\n * travels with it: it is what the parent's terminal transition reads to decide\n * whether this child ends with it.\n *\n * @since 0.1.0\n * @category schemas\n */\nexport const RunState = Schema.Struct({\n version: Schema.Literal(1),\n flowName: Schema.NonEmptyString,\n payload: Schema.Unknown,\n capabilityCeilings: Schema.optionalKey(Schema.Array(Schema.Array(CapabilityPattern))),\n // Key origins are immutable fork metadata, independent of the chosen frame.\n // Copied attempts, not ancestry alone, authorize reuse of an origin's key.\n forkKeyRunIds: Schema.optionalKey(Schema.Array(Schema.NonEmptyString)),\n parentExecutionId: Schema.optionalKey(Schema.NonEmptyString),\n onParentExit: Schema.optionalKey(OnParentExit),\n maxRounds: Schema.optionalKey(PositiveSafeInt),\n // The lineage deadline a round after a handoff runs under, copied from the\n // `Flow.Handoff` that opened it.\n deadline: Schema.optionalKey(Flow.LineageDeadline),\n result: Schema.optionalKey(Schema.Unknown),\n cancellation: Schema.optionalKey(Schema.Struct({\n interruptedAtMs: Schema.Number.check(Schema.isGreaterThanOrEqualTo(0))\n }))\n})\n\n/**\n * The value form of {@link RunState}.\n *\n * @since 0.1.0\n * @category models\n */\nexport type RunState = typeof RunState.Type\n\n/**\n * Why a driver released a run it still owned, recorded on its\n * `interrupt-released` run decision.\n *\n * `lease-lapsed` means the host went `unconfirmedMs` without confirming its\n * run lease (a stalled or overloaded host), so the heartbeat loop stopped the\n * run's work before a peer could take it. `interrupted` is any other\n * interruption that was not a cancellation, usually a host shutdown.\n *\n * Decisions written before this field existed carry no cause; read them with\n * {@link releaseCauseOf}, which answers `undefined` for them.\n *\n * @since 1.0.0\n * @category schemas\n */\nexport const ReleaseCause = Schema.Union([\n Schema.Struct({\n kind: Schema.Literal(\"lease-lapsed\"),\n unconfirmedMs: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))\n }),\n Schema.Struct({ kind: Schema.Literal(\"interrupted\") })\n])\n\n/**\n * The value form of {@link ReleaseCause}.\n *\n * @since 1.0.0\n * @category models\n */\nexport type ReleaseCause = typeof ReleaseCause.Type\n\nconst decodeReleaseCause = Schema.decodeUnknownOption(ReleaseCause)\n\n/**\n * The release cause a run decision payload records, or `undefined` for a\n * decision that is not `interrupt-released`, one written before causes were\n * recorded, or one whose cause does not decode.\n *\n * @since 1.0.0\n * @category decoding\n */\nexport const releaseCauseOf = (decision: unknown): ReleaseCause | undefined => {\n if (decision === null || typeof decision !== \"object\") return undefined\n const record = decision as { readonly decision?: unknown; readonly cause?: unknown }\n if (record.decision !== \"interrupt-released\") return undefined\n const decoded = decodeReleaseCause(record.cause)\n return decoded._tag === \"Some\" ? decoded.value : undefined\n}\n"]}