@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,27 @@
1
+ /**
2
+ * Stable engine journal record names shared with replay consumers.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ /**
7
+ * Persisted event types and the child-spawn effect kind. Writers and readers
8
+ * share these identities; changing a value requires migrating stored history.
9
+ * `childSpawnKind` names the effect inside a boundary, not its event type.
10
+ *
11
+ * @since 1.0.0
12
+ * @category constants
13
+ */
14
+ export const EventTypes = {
15
+ runDecision: "flows.engine.run-decision",
16
+ attemptStarted: "flows.engine.attempt-started",
17
+ attemptFinished: "flows.engine.attempt-finished",
18
+ snapshotIdentified: "flows.engine.snapshot-identified",
19
+ planRecorded: "flows.engine.plan-recorded",
20
+ subgraphAppended: "flows.engine.subgraph-appended",
21
+ deferredCompleted: "flows.engine.deferred-completed",
22
+ deferredConsumed: "flows.engine.deferred-consumed",
23
+ clockScheduled: "flows.engine.clock-scheduled",
24
+ clockCompleted: "flows.engine.clock-completed",
25
+ childSpawnKind: "flows/engine-store/child-spawn"
26
+ };
27
+ //# sourceMappingURL=EventTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventTypes.js","sourceRoot":"","sources":["../../src/EventTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,2BAA2B;IACxC,cAAc,EAAE,8BAA8B;IAC9C,eAAe,EAAE,+BAA+B;IAChD,kBAAkB,EAAE,kCAAkC;IACtD,YAAY,EAAE,4BAA4B;IAC1C,gBAAgB,EAAE,gCAAgC;IAClD,iBAAiB,EAAE,iCAAiC;IACpD,gBAAgB,EAAE,gCAAgC;IAClD,cAAc,EAAE,8BAA8B;IAC9C,cAAc,EAAE,8BAA8B;IAC9C,cAAc,EAAE,gCAAgC;CACxC,CAAA","sourcesContent":["/**\n * Stable engine journal record names shared with replay consumers.\n *\n * @since 1.0.0\n */\n\n/**\n * Persisted event types and the child-spawn effect kind. Writers and readers\n * share these identities; changing a value requires migrating stored history.\n * `childSpawnKind` names the effect inside a boundary, not its event type.\n *\n * @since 1.0.0\n * @category constants\n */\nexport const EventTypes = {\n runDecision: \"flows.engine.run-decision\",\n attemptStarted: \"flows.engine.attempt-started\",\n attemptFinished: \"flows.engine.attempt-finished\",\n snapshotIdentified: \"flows.engine.snapshot-identified\",\n planRecorded: \"flows.engine.plan-recorded\",\n subgraphAppended: \"flows.engine.subgraph-appended\",\n deferredCompleted: \"flows.engine.deferred-completed\",\n deferredConsumed: \"flows.engine.deferred-consumed\",\n clockScheduled: \"flows.engine.clock-scheduled\",\n clockCompleted: \"flows.engine.clock-completed\",\n childSpawnKind: \"flows/engine-store/child-spawn\"\n} as const\n"]}
@@ -0,0 +1,59 @@
1
+ /** Native lifecycle facts captured using the owning store transaction.
2
+ * @since 1.0.0
3
+ */
4
+ import { ExecutionFact, type Journal } from "@smthrs/journal";
5
+ import type { RunStore } from "@smthrs/run-store";
6
+ import { Effect, Schema } from "effect";
7
+ import type * as DurableEngineState from "./DurableEngineState.ts";
8
+ /** Captured native services; never substitute an ambient control journal.
9
+ * @category models
10
+ * @since 1.0.0
11
+ */
12
+ export interface Options {
13
+ readonly runs: RunStore.Service;
14
+ readonly state: Pick<DurableEngineState.Service, "waiting" | "runParents" | "transaction">;
15
+ readonly journal: Journal.Service;
16
+ readonly sourceId: string;
17
+ }
18
+ /** Read the semantic subset shared with ExecutionSnapshot inside its caller's transaction.
19
+ * @category queries
20
+ * @since 1.0.0
21
+ */
22
+ export declare const observe: (row: RunStore.RunRow, state: Pick<Options["state"], "waiting" | "runParents">) => Effect.Effect<ExecutionFact.Observation, Schema.SchemaError>;
23
+ /** Fact admission and cancellation intent share the same native writer transaction.
24
+ * @category constructors
25
+ * @since 1.0.0
26
+ */
27
+ export declare const make: (options: Options) => {
28
+ fact: (executionId: string, baseline?: "created" | "legacy") => Effect.Effect<{
29
+ version: 1;
30
+ baseline: "created" | "legacy";
31
+ observation: {
32
+ readonly status: "running" | "suspended" | "failed" | "completed" | "pending" | "cancelled";
33
+ readonly createdAtMs: number & import("effect/Brand").Brand<"@smthrs/journal/TimestampMs">;
34
+ readonly lineageId: string & import("effect/Brand").Brand<"@smthrs/journal/JournalEvent/RunId">;
35
+ readonly parentRunId: (string & import("effect/Brand").Brand<"@smthrs/journal/JournalEvent/RunId">) | null;
36
+ readonly finishedAtMs: (number & import("effect/Brand").Brand<"@smthrs/journal/TimestampMs">) | null;
37
+ readonly startedAtMs: (number & import("effect/Brand").Brand<"@smthrs/journal/TimestampMs">) | null;
38
+ readonly executionId: string & import("effect/Brand").Brand<"@smthrs/journal/JournalEvent/RunId">;
39
+ readonly cancelRequestedAtMs: (number & import("effect/Brand").Brand<"@smthrs/journal/TimestampMs">) | null;
40
+ readonly waiting: {
41
+ readonly reason: string;
42
+ readonly wakeAtMs: (number & import("effect/Brand").Brand<"@smthrs/journal/TimestampMs">) | null;
43
+ readonly tokenDigest: string | null;
44
+ readonly request?: Schema.Json | undefined;
45
+ readonly point?: string | null | undefined;
46
+ } | null;
47
+ readonly flowName: string;
48
+ readonly roundOrdinal: number;
49
+ readonly treeVersion?: 1 | undefined;
50
+ readonly parentPolicy?: "cancel" | "detach" | undefined;
51
+ };
52
+ } | {
53
+ version: 1;
54
+ unavailable: "invalid-observation";
55
+ }, RunStore.RunStoreError, never>;
56
+ requestCancel: (executionId: string, at: number) => Effect.Effect<RunStore.RequestCancelOutcome, import("@smthrs/database/DurableWriter").DatabaseError | Journal.JournalError | RunStore.RunStoreError, never>;
57
+ requestCancelLineage: (executionId: string, at: number) => Effect.Effect<RunStore.RequestCancelOutcome, import("@smthrs/database/DurableWriter").DatabaseError | Journal.JournalError | RunStore.RunStoreError, never>;
58
+ };
59
+ //# sourceMappingURL=ExecutionFacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionFacts.d.ts","sourceRoot":"","sources":["../../src/ExecutionFacts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAa,MAAM,iBAAiB,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,KAAK,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAIlE;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,YAAY,GAAG,aAAa,CAAC,CAAA;IAC1F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,GAClB,KAAK,QAAQ,CAAC,MAAM,EACpB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,KACtD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CA2C1D,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS,OAAO;wBAER,MAAM,aAAY,SAAS,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAmB7B,MAAM,MAAM,MAAM;wCAMX,MAAM,MAAM,MAAM;CAgB9D,CAAA"}
@@ -0,0 +1,96 @@
1
+ /** Native lifecycle facts captured using the owning store transaction.
2
+ * @since 1.0.0
3
+ */
4
+ import * as Sha256 from "@smthrs/crypto/Sha256";
5
+ import { FlowEngine } from "@smthrs/engine";
6
+ import { DurableDeferred } from "@smthrs/flow";
7
+ import { ExecutionFact, Redaction } from "@smthrs/journal";
8
+ import { Effect, Option, Schema } from "effect";
9
+ import * as JournalRecords from "./internal/JournalRecords.js";
10
+ import * as StateTransaction from "./internal/StateTransaction.js";
11
+ /** Read the semantic subset shared with ExecutionSnapshot inside its caller's transaction.
12
+ * @category queries
13
+ * @since 1.0.0
14
+ */
15
+ export const observe = (row, state) => Effect.gen(function* () {
16
+ const waiting = yield* state.waiting(row.runId);
17
+ const parents = row.parentRunId === null ? yield* state.runParents(row.runId) : [];
18
+ const firstParent = [...parents].sort((a, b) => a.seq - b.seq || a.parentId.localeCompare(b.parentId))[0];
19
+ const encoded = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(Schema.Struct({
20
+ flowName: Schema.NonEmptyString,
21
+ onParentExit: Schema.optional(Schema.Literals(["cancel", "detach"]))
22
+ })))(row.stateJson);
23
+ let point = null;
24
+ if (Option.isSome(waiting) && waiting.value.token !== null) {
25
+ try {
26
+ const { deferredName } = DurableDeferred.TokenParsed.fromString(waiting.value.token);
27
+ if (deferredName.startsWith("WaitFor/")) {
28
+ point = deferredName.slice("WaitFor/".length);
29
+ }
30
+ }
31
+ catch { /* An opaque plugin token remains an operational address only. */ }
32
+ }
33
+ return yield* Schema.decodeUnknownEffect(ExecutionFact.Observation)({
34
+ executionId: row.runId,
35
+ flowName: encoded.flowName,
36
+ status: row.status,
37
+ createdAtMs: row.createdAtMs,
38
+ startedAtMs: row.startedAtMs,
39
+ finishedAtMs: row.finishedAtMs,
40
+ parentRunId: row.parentRunId ?? firstParent?.parentId ?? null,
41
+ lineageId: row.lineageId ?? row.runId,
42
+ roundOrdinal: row.roundOrdinal ?? 0,
43
+ cancelRequestedAtMs: row.cancelRequestedAtMs,
44
+ treeVersion: 1,
45
+ parentPolicy: encoded.onParentExit ?? "cancel",
46
+ waiting: Option.isNone(waiting) ? null : {
47
+ reason: waiting.value.reason,
48
+ wakeAtMs: waiting.value.wakeAt,
49
+ tokenDigest: waiting.value.token === null ? null : Sha256.digestSync(waiting.value.token),
50
+ point,
51
+ request: waiting.value.request === undefined ? null : Redaction.redact(waiting.value.request)
52
+ }
53
+ });
54
+ });
55
+ /** Fact admission and cancellation intent share the same native writer transaction.
56
+ * @category constructors
57
+ * @since 1.0.0
58
+ */
59
+ export const make = (options) => {
60
+ const transactState = StateTransaction.make(options.state, options.journal);
61
+ const fact = (executionId, baseline = "legacy") => options.runs.get(executionId).pipe(Effect.flatMap((row) => observe(row, options.state)), Effect.map((observation) => ({ version: 1, baseline, observation })),
62
+ // Invalid semantic metadata must not prevent the driver's existing
63
+ // corruption/invalid-round path from settling the run. Record a named
64
+ // coverage failure; never normalize a bad ordinal or invent ancestry.
65
+ Effect.catchTag("SchemaError", () => Effect.succeed({ version: 1, unavailable: "invalid-observation" })));
66
+ const cancelled = (executionId) => Effect.gen(function* () {
67
+ const executionFact = yield* fact(executionId);
68
+ yield* options.journal.emitDurableUnfenced(JournalRecords.runDecision({
69
+ runId: executionId,
70
+ lineageId: FlowEngine.Lineage.root(executionId),
71
+ sourceId: options.sourceId
72
+ }, { decision: "cancel-requested", executionFact }));
73
+ });
74
+ const requestCancel = (executionId, at) => transactState(Effect.gen(function* () {
75
+ const outcome = yield* options.runs.requestCancel(executionId, at);
76
+ if (outcome._tag === "CancelRequested")
77
+ yield* cancelled(executionId);
78
+ return outcome;
79
+ }));
80
+ const requestCancelLineage = (executionId, at) => transactState(Effect.gen(function* () {
81
+ const before = yield* options.runs.lineage(executionId);
82
+ const outcome = yield* options.runs.requestCancelLineage(executionId, at);
83
+ if (outcome._tag === "CancelRequested") {
84
+ // The set update excludes terminal/already-requested rows. Record exactly
85
+ // the rows it changed, not a guessed terminal cancellation timestamp.
86
+ for (const row of before) {
87
+ if (row.cancelRequestedAtMs === null && !["completed", "failed", "cancelled"].includes(row.status)) {
88
+ yield* cancelled(row.runId);
89
+ }
90
+ }
91
+ }
92
+ return outcome;
93
+ }));
94
+ return { fact, requestCancel, requestCancelLineage };
95
+ };
96
+ //# sourceMappingURL=ExecutionFacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionFacts.js","sourceRoot":"","sources":["../../src/ExecutionFacts.ts"],"names":[],"mappings":"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","sourcesContent":["/** Native lifecycle facts captured using the owning store transaction.\n * @since 1.0.0\n */\n\nimport * as Sha256 from \"@smthrs/crypto/Sha256\"\nimport { FlowEngine } from \"@smthrs/engine\"\nimport { DurableDeferred } from \"@smthrs/flow\"\nimport { ExecutionFact, type Journal, Redaction } from \"@smthrs/journal\"\nimport type { RunStore } from \"@smthrs/run-store\"\nimport { Effect, Option, Schema } from \"effect\"\nimport type * as DurableEngineState from \"./DurableEngineState.ts\"\nimport * as JournalRecords from \"./internal/JournalRecords.ts\"\nimport * as StateTransaction from \"./internal/StateTransaction.ts\"\n\n/** Captured native services; never substitute an ambient control journal.\n * @category models\n * @since 1.0.0\n */\nexport interface Options {\n readonly runs: RunStore.Service\n readonly state: Pick<DurableEngineState.Service, \"waiting\" | \"runParents\" | \"transaction\">\n readonly journal: Journal.Service\n readonly sourceId: string\n}\n\n/** Read the semantic subset shared with ExecutionSnapshot inside its caller's transaction.\n * @category queries\n * @since 1.0.0\n */\nexport const observe = (\n row: RunStore.RunRow,\n state: Pick<Options[\"state\"], \"waiting\" | \"runParents\">\n): Effect.Effect<ExecutionFact.Observation, Schema.SchemaError> =>\n Effect.gen(function*() {\n const waiting = yield* state.waiting(row.runId)\n const parents = row.parentRunId === null ? yield* state.runParents(row.runId) : []\n const firstParent = [...parents].sort((a, b) => a.seq - b.seq || a.parentId.localeCompare(b.parentId))[0]\n const encoded = yield* Schema.decodeUnknownEffect(\n Schema.fromJsonString(\n Schema.Struct({\n flowName: Schema.NonEmptyString,\n onParentExit: Schema.optional(Schema.Literals([\"cancel\", \"detach\"]))\n })\n )\n )(row.stateJson)\n let point: string | null = null\n if (Option.isSome(waiting) && waiting.value.token !== null) {\n try {\n const { deferredName } = DurableDeferred.TokenParsed.fromString(waiting.value.token)\n if (deferredName.startsWith(\"WaitFor/\")) {\n point = deferredName.slice(\"WaitFor/\".length)\n }\n } catch { /* An opaque plugin token remains an operational address only. */ }\n }\n return yield* Schema.decodeUnknownEffect(ExecutionFact.Observation)({\n executionId: row.runId,\n flowName: encoded.flowName,\n status: row.status,\n createdAtMs: row.createdAtMs,\n startedAtMs: row.startedAtMs,\n finishedAtMs: row.finishedAtMs,\n parentRunId: row.parentRunId ?? firstParent?.parentId ?? null,\n lineageId: row.lineageId ?? row.runId,\n roundOrdinal: row.roundOrdinal ?? 0,\n cancelRequestedAtMs: row.cancelRequestedAtMs,\n treeVersion: 1,\n parentPolicy: encoded.onParentExit ?? \"cancel\",\n waiting: Option.isNone(waiting) ? null : {\n reason: waiting.value.reason,\n wakeAtMs: waiting.value.wakeAt,\n tokenDigest: waiting.value.token === null ? null : Sha256.digestSync(waiting.value.token),\n point,\n request: waiting.value.request === undefined ? null : Redaction.redact(waiting.value.request)\n }\n })\n })\n\n/** Fact admission and cancellation intent share the same native writer transaction.\n * @category constructors\n * @since 1.0.0\n */\nexport const make = (options: Options) => {\n const transactState = StateTransaction.make(options.state, options.journal)\n const fact = (executionId: string, baseline: \"created\" | \"legacy\" = \"legacy\") =>\n options.runs.get(executionId).pipe(\n Effect.flatMap((row) => observe(row, options.state)),\n Effect.map((observation) => ({ version: 1 as const, baseline, observation })),\n // Invalid semantic metadata must not prevent the driver's existing\n // corruption/invalid-round path from settling the run. Record a named\n // coverage failure; never normalize a bad ordinal or invent ancestry.\n Effect.catchTag(\"SchemaError\", () =>\n Effect.succeed({ version: 1 as const, unavailable: \"invalid-observation\" as const }))\n )\n const cancelled = (executionId: string) =>\n Effect.gen(function*() {\n const executionFact = yield* fact(executionId)\n yield* options.journal.emitDurableUnfenced(JournalRecords.runDecision({\n runId: executionId,\n lineageId: FlowEngine.Lineage.root(executionId),\n sourceId: options.sourceId\n }, { decision: \"cancel-requested\", executionFact }))\n })\n const requestCancel = (executionId: string, at: number) =>\n transactState(Effect.gen(function*() {\n const outcome = yield* options.runs.requestCancel(executionId, at)\n if (outcome._tag === \"CancelRequested\") yield* cancelled(executionId)\n return outcome\n }))\n const requestCancelLineage = (executionId: string, at: number) =>\n transactState(Effect.gen(function*() {\n const before = yield* options.runs.lineage(executionId)\n const outcome = yield* options.runs.requestCancelLineage(executionId, at)\n if (outcome._tag === \"CancelRequested\") {\n // The set update excludes terminal/already-requested rows. Record exactly\n // the rows it changed, not a guessed terminal cancellation timestamp.\n for (const row of before) {\n if (row.cancelRequestedAtMs === null && ![\"completed\", \"failed\", \"cancelled\"].includes(row.status)) {\n yield* cancelled(row.runId)\n }\n }\n }\n return outcome\n }))\n return { fact, requestCancel, requestCancelLineage }\n}\n"]}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Revisioned, round-scoped engine observations.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import type { RunStoreError } from "@smthrs/run-store/RunStore";
7
+ import { Context, Effect, Layer } from "effect";
8
+ import * as SqlClient from "effect/unstable/sql/SqlClient";
9
+ import * as Read from "./internal/ExecutionSnapshotRead.ts";
10
+ import * as Relations from "./internal/ExecutionSnapshotRelations.ts";
11
+ export type { RelatedOptions, RelatedPage } from "./internal/ExecutionSnapshotRelations.ts";
12
+ /**
13
+ * Engine database identity and observed watermark.
14
+ *
15
+ * @category models
16
+ * @since 1.0.0
17
+ */
18
+ export type Position = Read.Position;
19
+ /**
20
+ * An authoritative execution row.
21
+ *
22
+ * @category models
23
+ * @since 1.0.0
24
+ */
25
+ export type Observed = Read.Observed;
26
+ /**
27
+ * A structured durable wait.
28
+ *
29
+ * @category models
30
+ * @since 1.0.0
31
+ */
32
+ export type Waiting = Read.Waiting;
33
+ /**
34
+ * Absence is explicit; deleted distinguishes retained deletion evidence.
35
+ *
36
+ * @category models
37
+ * @since 1.0.0
38
+ */
39
+ export interface Missing extends Position {
40
+ readonly _tag: "Missing";
41
+ readonly runId: string;
42
+ readonly deleted: boolean;
43
+ }
44
+ /**
45
+ * One requested execution observation.
46
+ *
47
+ * @category models
48
+ * @since 1.0.0
49
+ */
50
+ export type Snapshot = Observed | Missing;
51
+ /**
52
+ * Coherent observations in request order, including duplicates.
53
+ *
54
+ * @category models
55
+ * @since 1.0.0
56
+ */
57
+ export interface Batch extends Position {
58
+ readonly snapshots: ReadonlyArray<Snapshot>;
59
+ }
60
+ /**
61
+ * Maximum IDs admitted by one read.
62
+ *
63
+ * @category constants
64
+ * @since 1.0.0
65
+ */
66
+ export declare const maximumBatchSize = 200;
67
+ /**
68
+ * Reserves a deferred SQLite / repeatable-read PostgreSQL read transaction
69
+ * without the durable writer's admission lock. An existing transaction is
70
+ * reused with its caller-selected isolation.
71
+ * The supplied effect must contain observations only.
72
+ *
73
+ * @category constructors
74
+ * @since 1.0.0
75
+ */
76
+ export declare const withReadTransaction: <A, E, R>(sql: SqlClient.SqlClient, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, import("effect/unstable/sql/SqlError").SqlError | E, R>;
77
+ /**
78
+ * Engine observation operations.
79
+ *
80
+ * @category models
81
+ * @since 1.0.0
82
+ */
83
+ export interface Service {
84
+ readonly read: (runIds: ReadonlyArray<string>) => Effect.Effect<Batch, RunStoreError>;
85
+ readonly related: (options: Relations.RelatedOptions) => Effect.Effect<Relations.RelatedPage, RunStoreError>;
86
+ }
87
+ declare const ExecutionSnapshot_base: Context.ServiceClass<ExecutionSnapshot, "@smthrs/engine-store/ExecutionSnapshot", Service>;
88
+ /**
89
+ * Engine observation service.
90
+ *
91
+ * @category services
92
+ * @since 1.0.0
93
+ */
94
+ export declare class ExecutionSnapshot extends ExecutionSnapshot_base {
95
+ }
96
+ /**
97
+ * Guard for applying observations and tombstones to a source-bound projection.
98
+ * Source replacement requires an explicit rebuild, never a revision comparison.
99
+ * @category guards
100
+ * @since 1.0.0
101
+ */
102
+ export declare const isNewer: (incoming: Position, current: Position) => boolean;
103
+ /**
104
+ * Constructs the SQL read port; migrations must already be applied.
105
+ *
106
+ * @category constructors
107
+ * @since 1.0.0
108
+ */
109
+ export declare const make: () => Effect.Effect<Service, never, SqlClient.SqlClient>;
110
+ /**
111
+ * Provides the SQL observation port.
112
+ *
113
+ * @category layers
114
+ * @since 1.0.0
115
+ */
116
+ export declare const layer: Layer.Layer<ExecutionSnapshot, never, SqlClient.SqlClient>;
117
+ //# sourceMappingURL=ExecutionSnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionSnapshot.d.ts","sourceRoot":"","sources":["../../src/ExecutionSnapshot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,IAAI,MAAM,qCAAqC,CAAA;AAC3D,OAAO,KAAK,SAAS,MAAM,0CAA0C,CAAA;AAErE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAE3F;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;AACpC;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;AACpC;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;AAClC;;;;;GAKG;AACH,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAC1B;AACD;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;AACzC;;;;;GAKG;AACH,MAAM,WAAW,KAAM,SAAQ,QAAQ;IACrC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CAC5C;AACD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,iJAAmB,CAAA;AACnD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IACrF,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;CAC7G;;AACD;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,sBAEtC;CAAG;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,QAAQ,EAAE,SAAS,QAAQ,KAAG,OACY,CAAA;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,IAAI,QAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CA8DrE,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,CAA2C,CAAA"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Revisioned, round-scoped engine observations.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import * as Dialect from "@smthrs/database/Dialect";
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
+ import * as Relations from "./internal/ExecutionSnapshotRelations.js";
11
+ /**
12
+ * Maximum IDs admitted by one read.
13
+ *
14
+ * @category constants
15
+ * @since 1.0.0
16
+ */
17
+ export const maximumBatchSize = 200;
18
+ /**
19
+ * Reserves a deferred SQLite / repeatable-read PostgreSQL read transaction
20
+ * without the durable writer's admission lock. An existing transaction is
21
+ * reused with its caller-selected isolation.
22
+ * The supplied effect must contain observations only.
23
+ *
24
+ * @category constructors
25
+ * @since 1.0.0
26
+ */
27
+ export const withReadTransaction = Read.transaction;
28
+ /**
29
+ * Engine observation service.
30
+ *
31
+ * @category services
32
+ * @since 1.0.0
33
+ */
34
+ export class ExecutionSnapshot extends Context.Service()("@smthrs/engine-store/ExecutionSnapshot") {
35
+ }
36
+ /**
37
+ * Guard for applying observations and tombstones to a source-bound projection.
38
+ * Source replacement requires an explicit rebuild, never a revision comparison.
39
+ * @category guards
40
+ * @since 1.0.0
41
+ */
42
+ export const isNewer = (incoming, current) => incoming.source === current.source && incoming.revision > current.revision;
43
+ /**
44
+ * Constructs the SQL read port; migrations must already be applied.
45
+ *
46
+ * @category constructors
47
+ * @since 1.0.0
48
+ */
49
+ export const make = () => Effect.gen(function* () {
50
+ const sql = yield* SqlClient.SqlClient;
51
+ const read = (runIds) => Read.boundary("ExecutionSnapshot.read", Effect.gen(function* () {
52
+ const ids = yield* Read.decode(Schema.Array(Read.Identifier).check(Schema.isMaxLength(maximumBatchSize)), runIds);
53
+ const batch = yield* Read.transaction(sql, Effect.gen(function* () {
54
+ const at = yield* Read.position(sql);
55
+ if (ids.length === 0)
56
+ return { ...at, snapshots: [] };
57
+ const rows = yield* Dialect.query(sql, `SELECT ${Read.selectColumns} FROM flows_runs r
58
+ LEFT JOIN flows_run_changes c ON c.run_id = r.run_id
59
+ WHERE r.run_id IN (${ids.map(() => "?").join(",")})`, ids);
60
+ const snapshots = new Map();
61
+ for (const row of rows) {
62
+ const value = yield* Read.observed(row, at);
63
+ snapshots.set(value.runId, value);
64
+ }
65
+ const changes = yield* Dialect.query(sql, `SELECT run_id, revision, deleted FROM flows_run_changes WHERE run_id IN (${ids.map(() => "?").join(",")})`, ids);
66
+ for (const change of changes) {
67
+ if (snapshots.has(change.run_id))
68
+ continue;
69
+ const revision = yield* Read.decode(Read.Natural.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(at.revision)), change.revision);
70
+ yield* Read.decode(Schema.Literal(1), change.deleted);
71
+ snapshots.set(change.run_id, {
72
+ _tag: "Missing",
73
+ runId: change.run_id,
74
+ source: at.source,
75
+ revision,
76
+ deleted: true
77
+ });
78
+ }
79
+ return {
80
+ ...at,
81
+ snapshots: ids.map((runId) => snapshots.get(runId) ?? { _tag: "Missing", runId, ...at, deleted: false })
82
+ };
83
+ }));
84
+ return yield* Read.coherentBatch(ids, batch);
85
+ }));
86
+ return { read, related: Relations.make(sql, read) };
87
+ });
88
+ /**
89
+ * Provides the SQL observation port.
90
+ *
91
+ * @category layers
92
+ * @since 1.0.0
93
+ */
94
+ export const layer = Layer.effect(ExecutionSnapshot)(make());
95
+ //# sourceMappingURL=ExecutionSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionSnapshot.js","sourceRoot":"","sources":["../../src/ExecutionSnapshot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAC1D,OAAO,KAAK,IAAI,MAAM,qCAAqC,CAAA;AAC3D,OAAO,KAAK,SAAS,MAAM,0CAA0C,CAAA;AAoDrE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;AACnC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAA;AAWnD;;;;;GAKG;AACH,MAAM,OAAO,iBAAkB,SAAQ,OAAO,CAAC,OAAO,EAA8B,CAClF,wCAAwC,CACzC;CAAG;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAkB,EAAE,OAAiB,EAAW,EAAE,CACxE,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;AAE5E;;;;;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,MAAM,IAAI,GAAoB,CAAC,MAAM,EAAE,EAAE,CACvC,IAAI,CAAC,QAAQ,CACX,wBAAwB,EACxB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,EACzE,MAAM,CACP,CAAA;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CACnC,GAAG,EACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;YACrD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAC/B,GAAG,EACH,UAAU,IAAI,CAAC,aAAa;;iCAEX,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAChD,GAAG,CACJ,CAAA;YACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;YAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;gBAC3C,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACnC,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAClC,GAAG,EACH,4EACE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAC7B,GAAG,EACH,GAAG,CACJ,CAAA;YACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;oBAAE,SAAQ;gBAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CACjC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EACpF,MAAM,CAAC,QAAQ,CAChB,CAAA;gBACD,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;gBACrD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC3B,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,MAAM,CAAC,MAAM;oBACpB,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,QAAQ;oBACR,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;YACJ,CAAC;YACD,OAAO;gBACL,GAAG,EAAE;gBACL,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAY,EAAE,CACrC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAC1E;aACF,CAAA;QACH,CAAC,CAAC,CACH,CAAA;QACD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC9C,CAAC,CAAC,CACH,CAAA;IACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAA;AACrD,CAAC,CAAC,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAA+D,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA","sourcesContent":["/**\n * Revisioned, round-scoped engine observations.\n *\n * @since 1.0.0\n */\n\nimport * as Dialect from \"@smthrs/database/Dialect\"\nimport type { RunStoreError } from \"@smthrs/run-store/RunStore\"\nimport { Context, Effect, Layer, Schema } from \"effect\"\nimport * as SqlClient from \"effect/unstable/sql/SqlClient\"\nimport * as Read from \"./internal/ExecutionSnapshotRead.ts\"\nimport * as Relations from \"./internal/ExecutionSnapshotRelations.ts\"\n\nexport type { RelatedOptions, RelatedPage } from \"./internal/ExecutionSnapshotRelations.ts\"\n\n/**\n * Engine database identity and observed watermark.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Position = Read.Position\n/**\n * An authoritative execution row.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Observed = Read.Observed\n/**\n * A structured durable wait.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Waiting = Read.Waiting\n/**\n * Absence is explicit; deleted distinguishes retained deletion evidence.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Missing extends Position {\n readonly _tag: \"Missing\"\n readonly runId: string\n readonly deleted: boolean\n}\n/**\n * One requested execution observation.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Snapshot = Observed | Missing\n/**\n * Coherent observations in request order, including duplicates.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Batch extends Position {\n readonly snapshots: ReadonlyArray<Snapshot>\n}\n/**\n * Maximum IDs admitted by one read.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const maximumBatchSize = 200\n/**\n * Reserves a deferred SQLite / repeatable-read PostgreSQL read transaction\n * without the durable writer's admission lock. An existing transaction is\n * reused with its caller-selected isolation.\n * The supplied effect must contain observations only.\n *\n * @category constructors\n * @since 1.0.0\n */\nexport const withReadTransaction = Read.transaction\n/**\n * Engine observation operations.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Service {\n readonly read: (runIds: ReadonlyArray<string>) => Effect.Effect<Batch, RunStoreError>\n readonly related: (options: Relations.RelatedOptions) => Effect.Effect<Relations.RelatedPage, RunStoreError>\n}\n/**\n * Engine observation service.\n *\n * @category services\n * @since 1.0.0\n */\nexport class ExecutionSnapshot extends Context.Service<ExecutionSnapshot, Service>()(\n \"@smthrs/engine-store/ExecutionSnapshot\"\n) {}\n\n/**\n * Guard for applying observations and tombstones to a source-bound projection.\n * Source replacement requires an explicit rebuild, never a revision comparison.\n * @category guards\n * @since 1.0.0\n */\nexport const isNewer = (incoming: Position, current: Position): boolean =>\n incoming.source === current.source && incoming.revision > current.revision\n\n/**\n * Constructs the SQL read port; migrations must already be applied.\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 const read: Service[\"read\"] = (runIds) =>\n Read.boundary(\n \"ExecutionSnapshot.read\",\n Effect.gen(function*() {\n const ids = yield* Read.decode(\n Schema.Array(Read.Identifier).check(Schema.isMaxLength(maximumBatchSize)),\n runIds\n )\n const batch = yield* Read.transaction(\n sql,\n Effect.gen(function*() {\n const at = yield* Read.position(sql)\n if (ids.length === 0) return { ...at, snapshots: [] }\n const rows = yield* Dialect.query(\n sql,\n `SELECT ${Read.selectColumns} FROM flows_runs r\n LEFT JOIN flows_run_changes c ON c.run_id = r.run_id\n WHERE r.run_id IN (${ids.map(() => \"?\").join(\",\")})`,\n ids\n )\n const snapshots = new Map<string, Snapshot>()\n for (const row of rows) {\n const value = yield* Read.observed(row, at)\n snapshots.set(value.runId, value)\n }\n const changes = yield* Dialect.query<{ run_id: string; revision: number; deleted: number }>(\n sql,\n `SELECT run_id, revision, deleted FROM flows_run_changes WHERE run_id IN (${\n ids.map(() => \"?\").join(\",\")\n })`,\n ids\n )\n for (const change of changes) {\n if (snapshots.has(change.run_id)) continue\n const revision = yield* Read.decode(\n Read.Natural.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(at.revision)),\n change.revision\n )\n yield* Read.decode(Schema.Literal(1), change.deleted)\n snapshots.set(change.run_id, {\n _tag: \"Missing\",\n runId: change.run_id,\n source: at.source,\n revision,\n deleted: true\n })\n }\n return {\n ...at,\n snapshots: ids.map((runId): Snapshot =>\n snapshots.get(runId) ?? { _tag: \"Missing\", runId, ...at, deleted: false }\n )\n }\n })\n )\n return yield* Read.coherentBatch(ids, batch)\n })\n )\n return { read, related: Relations.make(sql, read) }\n })\n\n/**\n * Provides the SQL observation port.\n *\n * @category layers\n * @since 1.0.0\n */\nexport const layer: Layer.Layer<ExecutionSnapshot, never, SqlClient.SqlClient> = Layer.effect(ExecutionSnapshot)(make())\n"]}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Receiver for detected engine inconsistencies.
3
+ *
4
+ * Modeled on Skyframe's `GraphInconsistencyReceiver`: the store layer detects
5
+ * an invariant violation — today, a content-addressed cache key that produced
6
+ * a different result than the recorded row — and this service decides whether
7
+ * the run fails or tolerates it. Either way the conflict is journaled, so the
8
+ * detector is never wired to /dev/null.
9
+ *
10
+ * The `note` signature deliberately matches the plugin spec's
11
+ * `cacheInconsistency` hook (`(event) => Effect<InconsistencyVerdict>`); the
12
+ * strict layer is the future default plugin.
13
+ *
14
+ * The core default is strict so an invariant violation cannot pass silently.
15
+ *
16
+ * Governing designs: `docs/concepts/attempts-and-replay.md` and
17
+ * `apps/site/src/content/docs/docs/concepts/flows-actions-plans.mdx`.
18
+ *
19
+ * @since 0.1.0
20
+ */
21
+ import { Journal } from "@smthrs/journal";
22
+ import type { Ownership } from "@smthrs/run-store";
23
+ import type { CacheStore } from "@smthrs/step-cache";
24
+ import * as Context from "effect/Context";
25
+ import * as Effect from "effect/Effect";
26
+ import * as Layer from "effect/Layer";
27
+ /**
28
+ * Decision returned by an inconsistency receiver.
29
+ *
30
+ * @category models
31
+ * @since 0.1.0
32
+ */
33
+ export type InconsistencyVerdict = "fail" | "tolerate";
34
+ /**
35
+ * A content-addressed cache key that produced a result different from the
36
+ * recorded row — a hermeticity/determinism violation.
37
+ *
38
+ * @category models
39
+ * @since 0.1.0
40
+ */
41
+ export interface CacheConflict {
42
+ readonly key: string;
43
+ readonly existing: CacheStore.CacheEntry | undefined;
44
+ readonly attempted: CacheStore.CacheEntry;
45
+ }
46
+ /**
47
+ * Recorded boundary evidence whose blob no longer hashes to its recorded
48
+ * digest — on-disk corruption of the content-addressed store, detected while
49
+ * replaying a verified cache hit or a succeeded attempt (issue #150).
50
+ * Distinct from a transient host failure, which merely refuses the replay
51
+ * and stays retryable.
52
+ *
53
+ * @category models
54
+ * @since 0.1.0
55
+ */
56
+ export interface BlobCorruption {
57
+ /** The run that observed the corruption; the journaling target. */
58
+ readonly runId: string;
59
+ readonly keyDigest: string;
60
+ readonly path: string;
61
+ readonly recordedDigest: string;
62
+ readonly measuredDigest: string;
63
+ /**
64
+ * Provenance of the corrupt evidence when it came from a shared cache row;
65
+ * absent when it came from this run's own succeeded attempt row.
66
+ */
67
+ readonly recordedRunId?: string | undefined;
68
+ readonly recordedEventSeq?: number | undefined;
69
+ }
70
+ /**
71
+ * Inconsistency receiver operations.
72
+ *
73
+ * @category models
74
+ * @since 0.1.0
75
+ */
76
+ export interface Service {
77
+ readonly note: (event: CacheConflict) => Effect.Effect<InconsistencyVerdict, Journal.JournalError>;
78
+ /**
79
+ * Observes on-disk corruption of recorded boundary evidence (issue #150).
80
+ * `"fail"` fails the dispatch; `"tolerate"` lets it fall back to a real
81
+ * execution (which re-captures and heals the corrupt address).
82
+ */
83
+ readonly noteCorruption: (event: BlobCorruption) => Effect.Effect<InconsistencyVerdict, Journal.JournalError>;
84
+ }
85
+ declare const Inconsistency_base: Context.ServiceClass<Inconsistency, "@smthrs/engine-store/Inconsistency", Service>;
86
+ /**
87
+ * Service tag for the engine inconsistency receiver.
88
+ *
89
+ * @category services
90
+ * @since 0.1.0
91
+ */
92
+ export declare class Inconsistency extends Inconsistency_base {
93
+ }
94
+ /**
95
+ * Options for constructing a journaling inconsistency receiver.
96
+ *
97
+ * @category models
98
+ * @since 0.1.0
99
+ */
100
+ export interface MakeOptions {
101
+ readonly journal: Journal.Service;
102
+ readonly verdict: InconsistencyVerdict;
103
+ /**
104
+ * The owner the conflict record is fenced to: a reclaimed run cannot append
105
+ * hermeticity evidence it no longer owns. Required — every composer of this
106
+ * receiver is a run's owner.
107
+ */
108
+ readonly owner: Ownership.OwnerId;
109
+ }
110
+ /**
111
+ * Builds a receiver that journals every conflict under the run that attempted
112
+ * the write and returns a fixed verdict.
113
+ *
114
+ * The record goes through the journal's durable channel: a cache conflict is
115
+ * hermeticity evidence, and a `tolerate` verdict that silently dropped its
116
+ * only record would wire the detector to /dev/null (issue #10).
117
+ *
118
+ * @category constructors
119
+ * @since 0.1.0
120
+ */
121
+ export declare const make: (options: MakeOptions) => Service;
122
+ /**
123
+ * Builds a receiver from overrides. The default notes nothing and tolerates.
124
+ *
125
+ * @category constructors
126
+ * @since 0.1.0
127
+ */
128
+ export declare const makeNoop: (overrides?: Partial<Service>) => Service;
129
+ /**
130
+ * Provides a receiver that never journals and always tolerates.
131
+ *
132
+ * @category layers
133
+ * @since 0.1.0
134
+ */
135
+ export declare const layerNoop: (overrides?: Partial<Service>) => Layer.Layer<Inconsistency>;
136
+ /**
137
+ * Journals every cache conflict and fails the run. This is the default
138
+ * receiver for engine wiring: a non-hermetic sealed hard-boundary action is
139
+ * a defect, not a condition to paper over.
140
+ *
141
+ * @category layers
142
+ * @since 0.1.0
143
+ */
144
+ export declare const layerStrict: (owner: Ownership.OwnerId) => Layer.Layer<Inconsistency, never, Journal.Journal>;
145
+ /**
146
+ * Journals every cache conflict and continues, preserving the first-recorded
147
+ * row (Skyframe's tolerant production configuration).
148
+ *
149
+ * @category layers
150
+ * @since 0.1.0
151
+ */
152
+ export declare const layerTolerant: (owner: Ownership.OwnerId) => Layer.Layer<Inconsistency, never, Journal.Journal>;
153
+ export {};
154
+ //# sourceMappingURL=Inconsistency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Inconsistency.d.ts","sourceRoot":"","sources":["../../src/Inconsistency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,CAAA;CAC1C;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAClG;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAC9G;;AAED;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,kBAA+E;CAAG;AAErH;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;IACtC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAA;CAClC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS,WAAW,KAAG,OAwE1C,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,YAAW,OAAO,CAAC,OAAO,CAAM,KAAG,OAI1D,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,YAAW,OAAO,CAAC,OAAO,CAAM,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CACnC,CAAA;AAEnD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,CAAC,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAMrG,CAAA;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,CAAC,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAMvG,CAAA"}