@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,97 @@
1
+ /**
2
+ * The two-tier step-cache protocol, extracted out of `ActionPersistence`.
3
+ *
4
+ * `CacheAdmission` classifies the evidence that permits publication;
5
+ * `ActionPersistence` supplies the measured facts and durable ordering. This module owns *how* it becomes
6
+ * shareable and how a shared hit is made replayable, which is the half a
7
+ * two-tier composition has to be able to inject into:
8
+ *
9
+ * - {@link publishArtifacts} runs before the cache entry is written, so an
10
+ * entry is never observable while an artifact it references is missing
11
+ * (`reference/bazel/.../remote/UploadManifest.java:630-633`).
12
+ * - {@link publishEntry} runs after the transaction that made the local row
13
+ * durable, so the shared entry lands last of all — and outside the write
14
+ * transaction.
15
+ * - {@link hydrateArtifacts} runs after a replay refused for a *missing*
16
+ * artifact — the one refusal a shared tier can repair — so the replay is
17
+ * retried once against fetched bytes instead of falling straight through to
18
+ * a real execution.
19
+ *
20
+ * The seams are `ArtifactSync` and `CacheSync`, both resolved optionally: a
21
+ * composition with no shared tier gets the `makeLocal()` implementations, whose
22
+ * publish steps are no-ops and whose `hydrate` reports nothing was fetched.
23
+ * That is why a purely local engine pays nothing for this file.
24
+ *
25
+ * Every host call here stays OUTSIDE the `DurableWriter` transaction, like the
26
+ * Jj snapshot and the boundary prepare/settle: a host call must never be held
27
+ * across a write transaction.
28
+ *
29
+ * Neither publication step can fail a run. A shared cache is an accelerator,
30
+ * and by the time these run the result is already durably recorded on this
31
+ * host — failing a completed run because an optional tier is unreachable trades
32
+ * a real result for an unavailable one. Both report the refusal instead, and
33
+ * the caller journals it, exactly as an unverified read set is journaled rather
34
+ * than swallowed.
35
+ *
36
+ * @since 0.1.0
37
+ */
38
+ import type { CacheStore } from "@smthrs/step-cache";
39
+ import * as Cause from "effect/Cause";
40
+ import type * as Crypto from "effect/Crypto";
41
+ import * as Effect from "effect/Effect";
42
+ import * as StepBoundary from "../StepBoundary.ts";
43
+ /**
44
+ * Why a recorded result could not be shared, when it could not be.
45
+ *
46
+ * @since 0.1.0
47
+ * @category models
48
+ */
49
+ export interface Unshareable {
50
+ /** Which half of the two-tier publication refused. */
51
+ readonly stage: "artifacts" | "entry";
52
+ readonly message: string;
53
+ }
54
+ /**
55
+ * Makes every artifact the evidence references durable in the shared tier,
56
+ * reporting a refusal rather than failing.
57
+ *
58
+ * Called immediately before the transaction that records the cache entry, and
59
+ * never inside it. A refusal means the entry must not be published to the
60
+ * shared tier — the whole point of the ordering constraint — but says nothing
61
+ * about the *local* row, which stays as valid as it ever was.
62
+ *
63
+ * @since 0.1.0
64
+ * @category protocol
65
+ */
66
+ export declare const publishArtifacts: (evidence: StepBoundary.BoundaryEvidence | undefined) => Effect.Effect<Unshareable | undefined, never, Crypto.Crypto>;
67
+ /**
68
+ * Publishes the recorded entry to the shared step-result tier, reporting a
69
+ * refusal rather than failing.
70
+ *
71
+ * Called only after {@link publishArtifacts} reported success and only after
72
+ * the transaction that made the local row durable has committed: blobs first,
73
+ * entry last, and no network round trip held across a write transaction.
74
+ *
75
+ * @since 0.1.0
76
+ * @category protocol
77
+ */
78
+ export declare const publishEntry: (entry: CacheStore.CacheEntry) => Effect.Effect<Unshareable | undefined>;
79
+ /**
80
+ * Fetches the artifacts a replay could not resolve locally, reporting whether
81
+ * the replay is now worth retrying.
82
+ *
83
+ * @since 0.1.0
84
+ * @category protocol
85
+ */
86
+ export declare const hydrateArtifacts: (evidence: StepBoundary.BoundaryEvidence) => Effect.Effect<boolean, never, Crypto.Crypto>;
87
+ /**
88
+ * The classification a `replayOutputs` failure needs before it can be
89
+ * repaired: a {@link StepBoundary.MissingArtifact} means the bytes are simply
90
+ * not on this host, which a shared tier may fix. Anything else — a corrupt
91
+ * address, a host refusal — is not a fetchable condition.
92
+ *
93
+ * @since 0.1.0
94
+ * @category protocol
95
+ */
96
+ export declare const replayMissingArtifact: (cause: Cause.Cause<unknown>) => StepBoundary.MissingArtifact | undefined;
97
+ //# sourceMappingURL=CachePublication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CachePublication.d.ts","sourceRoot":"","sources":["../../../src/internal/CachePublication.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAA;AAclD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,YAAY,CAAC,gBAAgB,GAAG,SAAS,KAClD,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAU1D,CAAA;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,UAAU,CAAC,UAAU,KAC3B,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,CAKpC,CAAA;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,YAAY,CAAC,gBAAgB,KACtC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAM1C,CAAA;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAC1B,YAAY,CAAC,eAAe,GAAG,SAOjC,CAAA"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var CachePublication_exports = {};
30
+ __export(CachePublication_exports, {
31
+ hydrateArtifacts: () => hydrateArtifacts,
32
+ publishArtifacts: () => publishArtifacts,
33
+ publishEntry: () => publishEntry,
34
+ replayMissingArtifact: () => replayMissingArtifact
35
+ });
36
+ module.exports = __toCommonJS(CachePublication_exports);
37
+ var Cause = __toESM(require("effect/Cause"), 1);
38
+ var Effect = __toESM(require("effect/Effect"), 1);
39
+ var Option = __toESM(require("effect/Option"), 1);
40
+ var ArtifactSync = __toESM(require("../ArtifactSync.js"), 1);
41
+ var CacheSync = __toESM(require("../CacheSync.js"), 1);
42
+ var StepBoundary = __toESM(require("../StepBoundary.js"), 1);
43
+ const sync = Effect.map(
44
+ Effect.serviceOption(ArtifactSync.ArtifactSync),
45
+ (configured) => Option.isSome(configured) ? configured.value : ArtifactSync.makeLocal()
46
+ );
47
+ const entrySync = Effect.map(
48
+ Effect.serviceOption(CacheSync.CacheSync),
49
+ (configured) => Option.isSome(configured) ? configured.value : CacheSync.makeLocal()
50
+ );
51
+ const publishArtifacts = (evidence) => Effect.gen(function* () {
52
+ if (evidence === void 0) return void 0;
53
+ const digests = StepBoundary.referencedDigests(evidence);
54
+ if (digests.length === 0) return void 0;
55
+ const protocol = yield* sync;
56
+ return yield* protocol.publish(digests).pipe(
57
+ Effect.as(void 0),
58
+ Effect.catch((failure) => Effect.succeed({ stage: "artifacts", message: failure.message }))
59
+ );
60
+ });
61
+ const publishEntry = (entry) => Effect.gen(function* () {
62
+ const protocol = yield* entrySync;
63
+ const refused = yield* protocol.publishEntry(entry);
64
+ return Option.isSome(refused) ? { stage: "entry", message: refused.value.message } : void 0;
65
+ });
66
+ const hydrateArtifacts = (evidence) => Effect.gen(function* () {
67
+ const digests = StepBoundary.referencedDigests(evidence);
68
+ if (digests.length === 0) return false;
69
+ const protocol = yield* sync;
70
+ return yield* protocol.hydrate(digests);
71
+ });
72
+ const replayMissingArtifact = (cause) => {
73
+ for (const reason of cause.reasons) {
74
+ if (Cause.isFailReason(reason) && reason.error instanceof StepBoundary.MissingArtifact) {
75
+ return reason.error;
76
+ }
77
+ }
78
+ return void 0;
79
+ };
80
+ //# sourceMappingURL=CachePublication.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/CachePublication.ts"],
4
+ "sourcesContent": ["/**\n * The two-tier step-cache protocol, extracted out of `ActionPersistence`.\n *\n * `CacheAdmission` classifies the evidence that permits publication;\n * `ActionPersistence` supplies the measured facts and durable ordering. This module owns *how* it becomes\n * shareable and how a shared hit is made replayable, which is the half a\n * two-tier composition has to be able to inject into:\n *\n * - {@link publishArtifacts} runs before the cache entry is written, so an\n * entry is never observable while an artifact it references is missing\n * (`reference/bazel/.../remote/UploadManifest.java:630-633`).\n * - {@link publishEntry} runs after the transaction that made the local row\n * durable, so the shared entry lands last of all \u2014 and outside the write\n * transaction.\n * - {@link hydrateArtifacts} runs after a replay refused for a *missing*\n * artifact \u2014 the one refusal a shared tier can repair \u2014 so the replay is\n * retried once against fetched bytes instead of falling straight through to\n * a real execution.\n *\n * The seams are `ArtifactSync` and `CacheSync`, both resolved optionally: a\n * composition with no shared tier gets the `makeLocal()` implementations, whose\n * publish steps are no-ops and whose `hydrate` reports nothing was fetched.\n * That is why a purely local engine pays nothing for this file.\n *\n * Every host call here stays OUTSIDE the `DurableWriter` transaction, like the\n * Jj snapshot and the boundary prepare/settle: a host call must never be held\n * across a write transaction.\n *\n * Neither publication step can fail a run. A shared cache is an accelerator,\n * and by the time these run the result is already durably recorded on this\n * host \u2014 failing a completed run because an optional tier is unreachable trades\n * a real result for an unavailable one. Both report the refusal instead, and\n * the caller journals it, exactly as an unverified read set is journaled rather\n * than swallowed.\n *\n * @since 0.1.0\n */\n\nimport type { CacheStore } from \"@smthrs/step-cache\"\nimport * as Cause from \"effect/Cause\"\nimport type * as Crypto from \"effect/Crypto\"\nimport * as Effect from \"effect/Effect\"\nimport * as Option from \"effect/Option\"\nimport * as ArtifactSync from \"../ArtifactSync.ts\"\nimport * as CacheSync from \"../CacheSync.ts\"\nimport * as StepBoundary from \"../StepBoundary.ts\"\n\n/** Resolves the configured protocol, defaulting to the single-tier one. */\nconst sync: Effect.Effect<ArtifactSync.Service> = Effect.map(\n Effect.serviceOption(ArtifactSync.ArtifactSync),\n (configured) => Option.isSome(configured) ? configured.value : ArtifactSync.makeLocal()\n)\n\n/** Resolves the configured entry publisher, defaulting to the single-tier one. */\nconst entrySync: Effect.Effect<CacheSync.Service> = Effect.map(\n Effect.serviceOption(CacheSync.CacheSync),\n (configured) => Option.isSome(configured) ? configured.value : CacheSync.makeLocal()\n)\n\n/**\n * Why a recorded result could not be shared, when it could not be.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Unshareable {\n /** Which half of the two-tier publication refused. */\n readonly stage: \"artifacts\" | \"entry\"\n readonly message: string\n}\n\n/**\n * Makes every artifact the evidence references durable in the shared tier,\n * reporting a refusal rather than failing.\n *\n * Called immediately before the transaction that records the cache entry, and\n * never inside it. A refusal means the entry must not be published to the\n * shared tier \u2014 the whole point of the ordering constraint \u2014 but says nothing\n * about the *local* row, which stays as valid as it ever was.\n *\n * @since 0.1.0\n * @category protocol\n */\nexport const publishArtifacts = (\n evidence: StepBoundary.BoundaryEvidence | undefined\n): Effect.Effect<Unshareable | undefined, never, Crypto.Crypto> =>\n Effect.gen(function*() {\n if (evidence === undefined) return undefined\n const digests = StepBoundary.referencedDigests(evidence)\n if (digests.length === 0) return undefined\n const protocol = yield* sync\n return yield* protocol.publish(digests).pipe(\n Effect.as(undefined),\n Effect.catch((failure) => Effect.succeed<Unshareable>({ stage: \"artifacts\", message: failure.message }))\n )\n })\n\n/**\n * Publishes the recorded entry to the shared step-result tier, reporting a\n * refusal rather than failing.\n *\n * Called only after {@link publishArtifacts} reported success and only after\n * the transaction that made the local row durable has committed: blobs first,\n * entry last, and no network round trip held across a write transaction.\n *\n * @since 0.1.0\n * @category protocol\n */\nexport const publishEntry = (\n entry: CacheStore.CacheEntry\n): Effect.Effect<Unshareable | undefined> =>\n Effect.gen(function*() {\n const protocol = yield* entrySync\n const refused = yield* protocol.publishEntry(entry)\n return Option.isSome(refused) ? { stage: \"entry\" as const, message: refused.value.message } : undefined\n })\n\n/**\n * Fetches the artifacts a replay could not resolve locally, reporting whether\n * the replay is now worth retrying.\n *\n * @since 0.1.0\n * @category protocol\n */\nexport const hydrateArtifacts = (\n evidence: StepBoundary.BoundaryEvidence\n): Effect.Effect<boolean, never, Crypto.Crypto> =>\n Effect.gen(function*() {\n const digests = StepBoundary.referencedDigests(evidence)\n if (digests.length === 0) return false\n const protocol = yield* sync\n return yield* protocol.hydrate(digests)\n })\n\n/**\n * The classification a `replayOutputs` failure needs before it can be\n * repaired: a {@link StepBoundary.MissingArtifact} means the bytes are simply\n * not on this host, which a shared tier may fix. Anything else \u2014 a corrupt\n * address, a host refusal \u2014 is not a fetchable condition.\n *\n * @since 0.1.0\n * @category protocol\n */\nexport const replayMissingArtifact = (\n cause: Cause.Cause<unknown>\n): StepBoundary.MissingArtifact | undefined => {\n for (const reason of cause.reasons) {\n if (Cause.isFailReason(reason) && reason.error instanceof StepBoundary.MissingArtifact) {\n return reason.error\n }\n }\n return undefined\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAuCA,YAAuB;AAEvB,aAAwB;AACxB,aAAwB;AACxB,mBAA8B;AAC9B,gBAA2B;AAC3B,mBAA8B;AAG9B,MAAM,OAA4C,OAAO;AAAA,EACvD,OAAO,cAAc,aAAa,YAAY;AAAA,EAC9C,CAAC,eAAe,OAAO,OAAO,UAAU,IAAI,WAAW,QAAQ,aAAa,UAAU;AACxF;AAGA,MAAM,YAA8C,OAAO;AAAA,EACzD,OAAO,cAAc,UAAU,SAAS;AAAA,EACxC,CAAC,eAAe,OAAO,OAAO,UAAU,IAAI,WAAW,QAAQ,UAAU,UAAU;AACrF;AA0BO,MAAM,mBAAmB,CAC9B,aAEA,OAAO,IAAI,aAAY;AACrB,MAAI,aAAa,OAAW,QAAO;AACnC,QAAM,UAAU,aAAa,kBAAkB,QAAQ;AACvD,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QAAM,WAAW,OAAO;AACxB,SAAO,OAAO,SAAS,QAAQ,OAAO,EAAE;AAAA,IACtC,OAAO,GAAG,MAAS;AAAA,IACnB,OAAO,MAAM,CAAC,YAAY,OAAO,QAAqB,EAAE,OAAO,aAAa,SAAS,QAAQ,QAAQ,CAAC,CAAC;AAAA,EACzG;AACF,CAAC;AAaI,MAAM,eAAe,CAC1B,UAEA,OAAO,IAAI,aAAY;AACrB,QAAM,WAAW,OAAO;AACxB,QAAM,UAAU,OAAO,SAAS,aAAa,KAAK;AAClD,SAAO,OAAO,OAAO,OAAO,IAAI,EAAE,OAAO,SAAkB,SAAS,QAAQ,MAAM,QAAQ,IAAI;AAChG,CAAC;AASI,MAAM,mBAAmB,CAC9B,aAEA,OAAO,IAAI,aAAY;AACrB,QAAM,UAAU,aAAa,kBAAkB,QAAQ;AACvD,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,QAAM,WAAW,OAAO;AACxB,SAAO,OAAO,SAAS,QAAQ,OAAO;AACxC,CAAC;AAWI,MAAM,wBAAwB,CACnC,UAC6C;AAC7C,aAAW,UAAU,MAAM,SAAS;AAClC,QAAI,MAAM,aAAa,MAAM,KAAK,OAAO,iBAAiB,aAAa,iBAAiB;AACtF,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ /** Native call facts written by the action owner, never a harness stream consumer.
2
+ * @since 1.0.0
3
+ */
4
+ import { JournalEvent } from "@smthrs/journal";
5
+ import * as Effect from "effect/Effect";
6
+ /** No new action identity, callback, table or delivery queue is introduced.
7
+ * @category constructors
8
+ * @since 1.0.0
9
+ */
10
+ export declare const make: (action: unknown, runId: string) => {
11
+ settles: boolean;
12
+ invoked: Effect.Effect<JournalEvent.Input | undefined, never, import("effect/Crypto").Crypto>;
13
+ settled: (outcome: unknown) => Effect.Effect<JournalEvent.Input | undefined, never, import("effect/Crypto").Crypto>;
14
+ };
15
+ //# sourceMappingURL=CallFacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallFacts.d.ts","sourceRoot":"","sources":["../../../src/internal/CallFacts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAY,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGxD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAgBvC;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,QAAQ,OAAO,EAAE,OAAO,MAAM;;;uBAyD5B,OAAO;CAE7B,CAAA"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var CallFacts_exports = {};
30
+ __export(CallFacts_exports, {
31
+ make: () => make
32
+ });
33
+ module.exports = __toCommonJS(CallFacts_exports);
34
+ var import_journal = require("@smthrs/journal");
35
+ var import_keys = require("@smthrs/keys");
36
+ var Context = __toESM(require("effect/Context"), 1);
37
+ var Effect = __toESM(require("effect/Effect"), 1);
38
+ var Option = __toESM(require("effect/Option"), 1);
39
+ var Schema = __toESM(require("effect/Schema"), 1);
40
+ const maxBytes = 65536;
41
+ const encoder = new TextEncoder();
42
+ const bounded = (value) => Effect.gen(function* () {
43
+ const bytes = encoder.encode(typeof value === "string" ? value : JSON.stringify(value)).byteLength;
44
+ return bytes <= maxBytes ? value : {
45
+ truncated: true,
46
+ bytes,
47
+ digest: (0, import_keys.digest)(yield* Schema.decodeUnknownEffect(import_keys.DerivedKey)(value).pipe(Effect.orDie))
48
+ };
49
+ });
50
+ const make = (action, runId) => {
51
+ const annotations = typeof action === "object" && action !== null && "annotations" in action ? action.annotations : void 0;
52
+ const annotation = annotations === void 0 ? Option.none() : Context.getOption(annotations, import_journal.CallFact.Annotation);
53
+ const resultSchema = typeof action === "object" && action !== null && "successSchema" in action && Schema.isSchema(action.successSchema) ? action.successSchema : void 0;
54
+ const record = (phase, outcome) => Effect.gen(function* () {
55
+ if (Option.isNone(annotation) || annotation.value.phase !== phase) return void 0;
56
+ const call = yield* Schema.decodeUnknownEffect(import_journal.CallFact.Call)(annotation.value.call).pipe(Effect.orDie);
57
+ if (phase === "settled" && resultSchema !== void 0) {
58
+ yield* Schema.decodeUnknownEffect(Schema.toCodecJson(resultSchema))(outcome).pipe(Effect.orDie);
59
+ }
60
+ const result = phase === "settled" ? yield* Schema.decodeUnknownEffect(import_journal.CallFact.Result)(outcome).pipe(Effect.orDie) : void 0;
61
+ const coordinates = {
62
+ version: 1,
63
+ callId: call.callId,
64
+ identity: call.identity,
65
+ flowName: call.flowName
66
+ };
67
+ const payload = result === void 0 ? {
68
+ ...coordinates,
69
+ phase: "invoked",
70
+ input: yield* bounded(call.input),
71
+ // Never bounded: the display projection is four short fields its
72
+ // owner already validated, and a truncation marker in its place
73
+ // would read as a declaration that claimed something unreadable.
74
+ ...call.descriptor === void 0 ? {} : { descriptor: call.descriptor }
75
+ } : {
76
+ ...coordinates,
77
+ phase: "settled",
78
+ outcome: result.outcome,
79
+ value: yield* bounded(result.value),
80
+ ...result.message === void 0 ? {} : { message: yield* bounded(result.message) },
81
+ ...result.code === void 0 ? {} : { code: result.code }
82
+ };
83
+ return new import_journal.JournalEvent.Input({
84
+ runId: import_journal.JournalEvent.RunId.make(runId),
85
+ sourceId: import_journal.JournalEvent.SourceId.make(`call-fact-v1:${call.callId}:${phase}`),
86
+ sourceSeq: import_journal.JournalEvent.SourceSeq.make(0),
87
+ eventType: import_journal.CallFact.eventType,
88
+ payload
89
+ });
90
+ });
91
+ return {
92
+ settles: Option.isSome(annotation) && annotation.value.phase === "settled",
93
+ invoked: record("invoked"),
94
+ settled: (outcome) => record("settled", outcome)
95
+ };
96
+ };
97
+ //# sourceMappingURL=CallFacts.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/CallFacts.ts"],
4
+ "sourcesContent": ["/** Native call facts written by the action owner, never a harness stream consumer.\n * @since 1.0.0\n */\n\nimport { CallFact, JournalEvent } from \"@smthrs/journal\"\nimport { DerivedKey, digest } from \"@smthrs/keys\"\nimport * as Context from \"effect/Context\"\nimport * as Effect from \"effect/Effect\"\nimport * as Option from \"effect/Option\"\nimport * as Schema from \"effect/Schema\"\n\nconst maxBytes = 65_536\nconst encoder = new TextEncoder()\nconst bounded = (value: Schema.Json) =>\n Effect.gen(function*() {\n const bytes = encoder.encode(typeof value === \"string\" ? value : JSON.stringify(value)).byteLength\n return bytes <= maxBytes ? value : {\n truncated: true,\n bytes,\n digest: digest(yield* Schema.decodeUnknownEffect(DerivedKey)(value).pipe(Effect.orDie))\n }\n })\n\n/** No new action identity, callback, table or delivery queue is introduced.\n * @category constructors\n * @since 1.0.0\n */\nexport const make = (action: unknown, runId: string) => {\n const annotations = typeof action === \"object\" && action !== null && \"annotations\" in action\n ? action.annotations as Context.Context<never>\n : undefined\n const annotation = annotations === undefined ? Option.none() : Context.getOption(annotations, CallFact.Annotation)\n const resultSchema =\n typeof action === \"object\" && action !== null && \"successSchema\" in action && Schema.isSchema(action.successSchema)\n ? action.successSchema as Schema.Codec<unknown, unknown>\n : undefined\n const record = (phase: \"invoked\" | \"settled\", outcome?: unknown) =>\n Effect.gen(function*() {\n if (Option.isNone(annotation) || annotation.value.phase !== phase) return undefined\n const call = yield* Schema.decodeUnknownEffect(CallFact.Call)(annotation.value.call).pipe(Effect.orDie)\n // Production record boundaries carry a service-free success codec. Check\n // it before publishing an older encoded row as a deliverable result: the\n // reader would refuse a corrupt row even when its broad JSON shape fits.\n if (phase === \"settled\" && resultSchema !== undefined) {\n yield* Schema.decodeUnknownEffect(Schema.toCodecJson(resultSchema))(outcome).pipe(Effect.orDie)\n }\n const result = phase === \"settled\"\n ? yield* Schema.decodeUnknownEffect(CallFact.Result)(outcome).pipe(Effect.orDie)\n : undefined\n const coordinates = {\n version: 1 as const,\n callId: call.callId,\n identity: call.identity,\n flowName: call.flowName\n }\n const payload: CallFact.Fact = result === undefined\n ? {\n ...coordinates,\n phase: \"invoked\",\n input: yield* bounded(call.input),\n // Never bounded: the display projection is four short fields its\n // owner already validated, and a truncation marker in its place\n // would read as a declaration that claimed something unreadable.\n ...(call.descriptor === undefined ? {} : { descriptor: call.descriptor })\n }\n : {\n ...coordinates,\n phase: \"settled\",\n outcome: result.outcome,\n value: yield* bounded(result.value),\n ...(result.message === undefined ? {} : { message: yield* bounded(result.message) }),\n ...(result.code === undefined ? {} : { code: result.code })\n }\n return new JournalEvent.Input({\n runId: JournalEvent.RunId.make(runId),\n sourceId: JournalEvent.SourceId.make(`call-fact-v1:${call.callId}:${phase}`),\n sourceSeq: JournalEvent.SourceSeq.make(0),\n eventType: CallFact.eventType,\n payload\n })\n })\n return {\n settles: Option.isSome(annotation) && annotation.value.phase === \"settled\",\n invoked: record(\"invoked\"),\n settled: (outcome: unknown) => record(\"settled\", outcome)\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,qBAAuC;AACvC,kBAAmC;AACnC,cAAyB;AACzB,aAAwB;AACxB,aAAwB;AACxB,aAAwB;AAExB,MAAM,WAAW;AACjB,MAAM,UAAU,IAAI,YAAY;AAChC,MAAM,UAAU,CAAC,UACf,OAAO,IAAI,aAAY;AACrB,QAAM,QAAQ,QAAQ,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAK,UAAU,KAAK,CAAC,EAAE;AACxF,SAAO,SAAS,WAAW,QAAQ;AAAA,IACjC,WAAW;AAAA,IACX;AAAA,IACA,YAAQ,oBAAO,OAAO,OAAO,oBAAoB,sBAAU,EAAE,KAAK,EAAE,KAAK,OAAO,KAAK,CAAC;AAAA,EACxF;AACF,CAAC;AAMI,MAAM,OAAO,CAAC,QAAiB,UAAkB;AACtD,QAAM,cAAc,OAAO,WAAW,YAAY,WAAW,QAAQ,iBAAiB,SAClF,OAAO,cACP;AACJ,QAAM,aAAa,gBAAgB,SAAY,OAAO,KAAK,IAAI,QAAQ,UAAU,aAAa,wBAAS,UAAU;AACjH,QAAM,eACJ,OAAO,WAAW,YAAY,WAAW,QAAQ,mBAAmB,UAAU,OAAO,SAAS,OAAO,aAAa,IAC9G,OAAO,gBACP;AACN,QAAM,SAAS,CAAC,OAA8B,YAC5C,OAAO,IAAI,aAAY;AACrB,QAAI,OAAO,OAAO,UAAU,KAAK,WAAW,MAAM,UAAU,MAAO,QAAO;AAC1E,UAAM,OAAO,OAAO,OAAO,oBAAoB,wBAAS,IAAI,EAAE,WAAW,MAAM,IAAI,EAAE,KAAK,OAAO,KAAK;AAItG,QAAI,UAAU,aAAa,iBAAiB,QAAW;AACrD,aAAO,OAAO,oBAAoB,OAAO,YAAY,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,KAAK;AAAA,IAChG;AACA,UAAM,SAAS,UAAU,YACrB,OAAO,OAAO,oBAAoB,wBAAS,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,KAAK,IAC7E;AACJ,UAAM,cAAc;AAAA,MAClB,SAAS;AAAA,MACT,QAAQ,KAAK;AAAA,MACb,UAAU,KAAK;AAAA,MACf,UAAU,KAAK;AAAA,IACjB;AACA,UAAM,UAAyB,WAAW,SACtC;AAAA,MACA,GAAG;AAAA,MACH,OAAO;AAAA,MACP,OAAO,OAAO,QAAQ,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA,MAIhC,GAAI,KAAK,eAAe,SAAY,CAAC,IAAI,EAAE,YAAY,KAAK,WAAW;AAAA,IACzE,IACE;AAAA,MACA,GAAG;AAAA,MACH,OAAO;AAAA,MACP,SAAS,OAAO;AAAA,MAChB,OAAO,OAAO,QAAQ,OAAO,KAAK;AAAA,MAClC,GAAI,OAAO,YAAY,SAAY,CAAC,IAAI,EAAE,SAAS,OAAO,QAAQ,OAAO,OAAO,EAAE;AAAA,MAClF,GAAI,OAAO,SAAS,SAAY,CAAC,IAAI,EAAE,MAAM,OAAO,KAAK;AAAA,IAC3D;AACF,WAAO,IAAI,4BAAa,MAAM;AAAA,MAC5B,OAAO,4BAAa,MAAM,KAAK,KAAK;AAAA,MACpC,UAAU,4BAAa,SAAS,KAAK,gBAAgB,KAAK,MAAM,IAAI,KAAK,EAAE;AAAA,MAC3E,WAAW,4BAAa,UAAU,KAAK,CAAC;AAAA,MACxC,WAAW,wBAAS;AAAA,MACpB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,SAAO;AAAA,IACL,SAAS,OAAO,OAAO,UAAU,KAAK,WAAW,MAAM,UAAU;AAAA,IACjE,SAAS,OAAO,SAAS;AAAA,IACzB,SAAS,CAAC,YAAqB,OAAO,WAAW,OAAO;AAAA,EAC1D;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Read-only validation of a journal record another lineage recorded under
3
+ * this run's producer identity.
4
+ *
5
+ * A time-travel fork copies the parent's journal rows verbatim: the copied
6
+ * record keeps the producer identity, but its payload names the parent run and
7
+ * its `meta.lineageId` is the parent's lineage, so this run's re-emission of
8
+ * the same record raises `idempotency_conflict` instead of collapsing into a
9
+ * `Duplicate`. That conflict is benign ONLY when the occupying record is the
10
+ * record being emitted, recorded by a validated ancestor. Anything else in the
11
+ * slot — an unrelated event type, another attempt's coordinates, the opposite
12
+ * terminal state, a record with no retained fork ancestry — is the conflict
13
+ * the journal reported, and it fails closed.
14
+ * @since 1.0.0-rc.0
15
+ */
16
+ import { Journal, JournalEvent } from "@smthrs/journal";
17
+ import type { RunStore } from "@smthrs/run-store";
18
+ import * as Effect from "effect/Effect";
19
+ /** Paged lookup retains only the matching record, including unexpected event types.
20
+ * @category accessors
21
+ * @since 1.0.0-rc.0
22
+ */
23
+ export declare const find: (journal: Journal.Service, runId: string, predicate: (entry: JournalEvent.Entry) => boolean) => Effect.Effect<JournalEvent.Entry | undefined, Journal.JournalError>;
24
+ /**
25
+ * Proves every retained fork prefix between a copied entry and its original.
26
+ * Callers retain their payload and metadata equality rules.
27
+ * @category accessors
28
+ * @since 1.0.0
29
+ */
30
+ export declare const prove: (options: {
31
+ readonly journal: Journal.Service;
32
+ readonly runs: RunStore.Service;
33
+ readonly runId: string;
34
+ readonly entry: JournalEvent.Entry;
35
+ readonly conflict: Journal.JournalError;
36
+ readonly same?: (left: unknown, right: unknown) => boolean;
37
+ }) => Effect.Effect<{
38
+ ancestor: string;
39
+ record: JournalEvent.Entry;
40
+ }, Journal.JournalError, never>;
41
+ /**
42
+ * Accepts the occupying record only when it is `record` as a validated
43
+ * copied-lineage ancestor emitted it; otherwise fails with `conflict`.
44
+ *
45
+ * The shared ancestry proof requires, at each hop, the child's fork marker above the copied prefix, the parent row the
46
+ * marker was cut at, and the parent's own copy of the record at the same
47
+ * `seq`, identical in content. The walk ends at the run whose lineage the
48
+ * record carries, and that run's original must be the record being emitted
49
+ * under that run's identity: same event type, same payload with the ancestor
50
+ * in place of this run, same meta.
51
+ * @category accessors
52
+ * @since 1.0.0-rc.0
53
+ */
54
+ export declare const accept: (options: {
55
+ readonly journal: Journal.Service;
56
+ readonly runs: RunStore.Service;
57
+ readonly runId: string;
58
+ readonly record: JournalEvent.Input;
59
+ readonly conflict: Journal.JournalError;
60
+ }) => Effect.Effect<void, Journal.JournalError>;
61
+ //# sourceMappingURL=CopiedRecord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopiedRecord.d.ts","sourceRoot":"","sources":["../../../src/internal/CopiedRecord.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,OAAO,CAAC,OAAO,EACxB,OAAO,MAAM,EACb,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,KAAK,OAAO,KAChD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,YAAY,CAoBjE,CAAA;AAgBJ;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAC3D;;;+BAqFG,CAAA;AAEJ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,GAAI,SAAS;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAA;CACxC,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAaxC,CAAA"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var CopiedRecord_exports = {};
30
+ __export(CopiedRecord_exports, {
31
+ accept: () => accept,
32
+ find: () => find,
33
+ prove: () => prove
34
+ });
35
+ module.exports = __toCommonJS(CopiedRecord_exports);
36
+ var import_canonical = require("@smthrs/canonical");
37
+ var import_engine = require("@smthrs/engine");
38
+ var import_journal = require("@smthrs/journal");
39
+ var Effect = __toESM(require("effect/Effect"), 1);
40
+ var Schema = __toESM(require("effect/Schema"), 1);
41
+ var import_RunState = require("../RunState.js");
42
+ const find = (journal, runId, predicate) => Effect.gen(function* () {
43
+ let after;
44
+ while (true) {
45
+ const page = yield* journal.entries({
46
+ runId: import_journal.JournalEvent.RunId.make(runId),
47
+ limit: 128,
48
+ ...after === void 0 ? {} : { after }
49
+ });
50
+ const entry = page.entries.find(predicate);
51
+ if (entry !== void 0) return entry;
52
+ if (!page.hasMore) return void 0;
53
+ const next = page.entries.at(-1)?.seq;
54
+ if (next === void 0 || after !== void 0 && next <= after) {
55
+ return yield* Effect.fail(
56
+ new import_journal.Journal.JournalError({ code: "read_failed", message: "cache history cursor did not advance" })
57
+ );
58
+ }
59
+ after = next;
60
+ }
61
+ });
62
+ const sameJson = (left, right) => left === void 0 || right === void 0 ? left === right : (0, import_canonical.canonicalize)(left, { loneSurrogates: "escape" }) === (0, import_canonical.canonicalize)(right, { loneSurrogates: "escape" });
63
+ const asEmittedBy = (record, runId, ancestor) => ({
64
+ payload: (0, import_canonical.isRecord)(record.payload) && record.payload["runId"] === runId ? { ...record.payload, runId: ancestor } : record.payload,
65
+ meta: (0, import_canonical.isRecord)(record.meta) ? { ...record.meta, lineageId: import_engine.FlowEngine.Lineage.root(ancestor) } : record.meta
66
+ });
67
+ const prove = (options) => Effect.gen(function* () {
68
+ const { conflict, journal, runs, same = sameJson } = options;
69
+ let entry = options.entry;
70
+ const source = (candidate) => candidate.sourceId === options.entry.sourceId && candidate.sourceSeq === options.entry.sourceSeq;
71
+ let child = options.runId;
72
+ const visited = /* @__PURE__ */ new Set();
73
+ while (!visited.has(child)) {
74
+ visited.add(child);
75
+ const run = yield* runs.get(child).pipe(Effect.mapError(
76
+ (cause) => new import_journal.Journal.JournalError({
77
+ code: "idempotency_conflict",
78
+ message: conflict.message,
79
+ cause
80
+ })
81
+ ));
82
+ const parent = run.parentRunId;
83
+ if (parent === null) return yield* Effect.fail(conflict);
84
+ const copied = entry;
85
+ const marker = yield* find(journal, child, (candidate) => {
86
+ const value = candidate.payload;
87
+ return candidate.eventType === "flows.time-travel.fork-created" && candidate.sourceId === "flows/time-travel/fork" && Number(candidate.sourceSeq) === candidate.seq && value?.childRunId === child && value.parentRunId === parent && typeof value.forkJournalOffset === "number" && Number.isSafeInteger(value.forkJournalOffset) && value.forkJournalOffset >= copied.seq && candidate.seq === value.forkJournalOffset + 1 && (value.copiedFromRunId === void 0 || typeof value.copiedFromRunId === "string") && same(value, {
88
+ childRunId: child,
89
+ parentRunId: parent,
90
+ forkJournalOffset: value.forkJournalOffset,
91
+ ...value.copiedFromRunId === void 0 ? {} : { copiedFromRunId: value.copiedFromRunId }
92
+ });
93
+ });
94
+ if (marker === void 0) return yield* Effect.fail(conflict);
95
+ const copiedFrom = marker.payload.copiedFromRunId;
96
+ const sourceRunId = copiedFrom ?? parent;
97
+ if (copiedFrom !== void 0) {
98
+ const decodeState = Schema.decodeUnknownEffect(Schema.fromJsonString(import_RunState.RunState));
99
+ const state = yield* decodeState(run.stateJson).pipe(Effect.mapError(() => conflict));
100
+ const sourceRun = yield* runs.get(copiedFrom).pipe(Effect.mapError(() => conflict));
101
+ const sourceState = yield* decodeState(sourceRun.stateJson).pipe(Effect.mapError(() => conflict));
102
+ const parentRun = yield* runs.get(parent).pipe(Effect.mapError(() => conflict));
103
+ if (!state.forkKeyRunIds?.includes(copiedFrom) || state.parentExecutionId !== parent || sourceState.parentExecutionId === void 0 || parentRun.parentRunId !== sourceState.parentExecutionId) return yield* Effect.fail(conflict);
104
+ const parentFork = yield* find(journal, parent, (candidate) => {
105
+ const value = candidate.payload;
106
+ return candidate.eventType === "flows.time-travel.fork-created" && candidate.sourceId === "flows/time-travel/fork" && Number(candidate.sourceSeq) === candidate.seq && value?.childRunId === parent && value.parentRunId === sourceState.parentExecutionId;
107
+ });
108
+ if (parentFork === void 0) return yield* Effect.fail(conflict);
109
+ }
110
+ const cutoff = yield* find(journal, sourceRunId, (candidate) => candidate.seq === marker.seq - 1);
111
+ if (cutoff === void 0 || !same(marker.meta, { lineageId: cutoff.meta?.lineageId })) {
112
+ return yield* Effect.fail(conflict);
113
+ }
114
+ const original = yield* find(journal, sourceRunId, source);
115
+ if (original === void 0 || original.seq !== copied.seq || original.emittedAtMs !== copied.emittedAtMs || original.eventType !== copied.eventType || !same(original.payload, copied.payload) || !same(original.meta, copied.meta)) return yield* Effect.fail(conflict);
116
+ if ((0, import_canonical.isRecord)(original.meta) && original.meta["lineageId"] === import_engine.FlowEngine.Lineage.root(sourceRunId)) {
117
+ return { ancestor: sourceRunId, record: original };
118
+ }
119
+ child = sourceRunId;
120
+ entry = original;
121
+ }
122
+ return yield* Effect.fail(conflict);
123
+ });
124
+ const accept = (options) => Effect.gen(function* () {
125
+ const { conflict, journal, record } = options;
126
+ const sourceSeq = record.sourceSeq ?? 0;
127
+ const source = (entry2) => entry2.sourceId === record.sourceId && Number(entry2.sourceSeq) === Number(sourceSeq);
128
+ const entry = yield* find(journal, options.runId, source);
129
+ if (entry === void 0 || entry.eventType !== record.eventType) return yield* Effect.fail(conflict);
130
+ const original = yield* prove({ ...options, entry });
131
+ const expected = asEmittedBy(record, options.runId, original.ancestor);
132
+ return sameJson(original.record.payload, expected.payload) && sameJson(original.record.meta, expected.meta) ? void 0 : yield* Effect.fail(conflict);
133
+ });
134
+ //# sourceMappingURL=CopiedRecord.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/CopiedRecord.ts"],
4
+ "sourcesContent": ["/**\n * Read-only validation of a journal record another lineage recorded under\n * this run's producer identity.\n *\n * A time-travel fork copies the parent's journal rows verbatim: the copied\n * record keeps the producer identity, but its payload names the parent run and\n * its `meta.lineageId` is the parent's lineage, so this run's re-emission of\n * the same record raises `idempotency_conflict` instead of collapsing into a\n * `Duplicate`. That conflict is benign ONLY when the occupying record is the\n * record being emitted, recorded by a validated ancestor. Anything else in the\n * slot \u2014 an unrelated event type, another attempt's coordinates, the opposite\n * terminal state, a record with no retained fork ancestry \u2014 is the conflict\n * the journal reported, and it fails closed.\n * @since 1.0.0-rc.0\n */\n\nimport { canonicalize, isRecord } from \"@smthrs/canonical\"\nimport { FlowEngine } from \"@smthrs/engine\"\nimport { Journal, JournalEvent } from \"@smthrs/journal\"\nimport type { RunStore } from \"@smthrs/run-store\"\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\nimport { RunState } from \"../RunState.ts\"\n\n/** Paged lookup retains only the matching record, including unexpected event types.\n * @category accessors\n * @since 1.0.0-rc.0\n */\nexport const find = (\n journal: Journal.Service,\n runId: string,\n predicate: (entry: JournalEvent.Entry) => boolean\n): Effect.Effect<JournalEvent.Entry | undefined, Journal.JournalError> =>\n Effect.gen(function*() {\n let after: JournalEvent.Seq | undefined\n while (true) {\n const page = yield* journal.entries({\n runId: JournalEvent.RunId.make(runId),\n limit: 128,\n ...after === undefined ? {} : { after }\n })\n const entry = page.entries.find(predicate)\n if (entry !== undefined) return entry\n if (!page.hasMore) return undefined\n const next = page.entries.at(-1)?.seq\n if (next === undefined || (after !== undefined && next <= after)) {\n return yield* Effect.fail(\n new Journal.JournalError({ code: \"read_failed\", message: \"cache history cursor did not advance\" })\n )\n }\n after = next\n }\n })\n\nconst sameJson = (left: unknown, right: unknown): boolean =>\n left === undefined || right === undefined\n ? left === right\n : canonicalize(left, { loneSurrogates: \"escape\" }) === canonicalize(right, { loneSurrogates: \"escape\" })\n\n/** The record as the named ancestor would have emitted it: the payload's own\n * `runId` and the lineage in `meta` name that run instead of this one. */\nconst asEmittedBy = (record: JournalEvent.Input, runId: string, ancestor: string) => ({\n payload: isRecord(record.payload) && record.payload[\"runId\"] === runId\n ? { ...record.payload, runId: ancestor }\n : record.payload,\n meta: isRecord(record.meta) ? { ...record.meta, lineageId: FlowEngine.Lineage.root(ancestor) } : record.meta\n})\n\n/**\n * Proves every retained fork prefix between a copied entry and its original.\n * Callers retain their payload and metadata equality rules.\n * @category accessors\n * @since 1.0.0\n */\nexport const prove = (options: {\n readonly journal: Journal.Service\n readonly runs: RunStore.Service\n readonly runId: string\n readonly entry: JournalEvent.Entry\n readonly conflict: Journal.JournalError\n readonly same?: (left: unknown, right: unknown) => boolean\n}) =>\n Effect.gen(function*() {\n const { conflict, journal, runs, same = sameJson } = options\n let entry = options.entry\n const source = (candidate: JournalEvent.Entry) =>\n candidate.sourceId === options.entry.sourceId && candidate.sourceSeq === options.entry.sourceSeq\n let child = options.runId\n const visited = new Set<string>()\n while (!visited.has(child)) {\n visited.add(child)\n const run = yield* runs.get(child).pipe(Effect.mapError((cause) =>\n new Journal.JournalError({\n code: \"idempotency_conflict\",\n message: conflict.message,\n cause\n })\n ))\n const parent = run.parentRunId\n if (parent === null) return yield* Effect.fail(conflict)\n const copied = entry\n const marker = yield* find(journal, child, (candidate) => {\n const value = candidate.payload as {\n readonly childRunId?: unknown\n readonly parentRunId?: unknown\n readonly forkJournalOffset?: unknown\n readonly copiedFromRunId?: unknown\n } | null\n return candidate.eventType === \"flows.time-travel.fork-created\" &&\n candidate.sourceId === \"flows/time-travel/fork\" && Number(candidate.sourceSeq) === candidate.seq &&\n value?.childRunId === child &&\n value.parentRunId === parent && typeof value.forkJournalOffset === \"number\" &&\n Number.isSafeInteger(value.forkJournalOffset) && value.forkJournalOffset >= copied.seq &&\n candidate.seq === value.forkJournalOffset + 1 &&\n (value.copiedFromRunId === undefined || typeof value.copiedFromRunId === \"string\") &&\n same(value, {\n childRunId: child,\n parentRunId: parent,\n forkJournalOffset: value.forkJournalOffset,\n ...(value.copiedFromRunId === undefined ? {} : { copiedFromRunId: value.copiedFromRunId })\n })\n })\n if (marker === undefined) return yield* Effect.fail(conflict)\n const copiedFrom = (marker.payload as { copiedFromRunId?: string }).copiedFromRunId\n const sourceRunId = copiedFrom ?? parent\n if (copiedFrom !== undefined) {\n const decodeState = Schema.decodeUnknownEffect(Schema.fromJsonString(RunState))\n const state = yield* decodeState(run.stateJson).pipe(Effect.mapError(() => conflict))\n const sourceRun = yield* runs.get(copiedFrom).pipe(Effect.mapError(() => conflict))\n const sourceState = yield* decodeState(sourceRun.stateJson).pipe(Effect.mapError(() => conflict))\n const parentRun = yield* runs.get(parent).pipe(Effect.mapError(() => conflict))\n if (\n !state.forkKeyRunIds?.includes(copiedFrom) || state.parentExecutionId !== parent ||\n sourceState.parentExecutionId === undefined || parentRun.parentRunId !== sourceState.parentExecutionId\n ) return yield* Effect.fail(conflict)\n // A carried origin must belong to the run the new parent forked.\n // Its receipt alone never grants reuse of an unrelated run's records.\n const parentFork = yield* find(journal, parent, (candidate) => {\n const value = candidate.payload as { childRunId?: unknown; parentRunId?: unknown } | null\n return candidate.eventType === \"flows.time-travel.fork-created\" &&\n candidate.sourceId === \"flows/time-travel/fork\" &&\n Number(candidate.sourceSeq) === candidate.seq &&\n value?.childRunId === parent && value.parentRunId === sourceState.parentExecutionId\n })\n if (parentFork === undefined) return yield* Effect.fail(conflict)\n }\n const cutoff = yield* find(journal, sourceRunId, (candidate) => candidate.seq === marker.seq - 1)\n if (\n cutoff === undefined ||\n !same(marker.meta, { lineageId: (cutoff.meta as { lineageId?: unknown } | null)?.lineageId })\n ) {\n return yield* Effect.fail(conflict)\n }\n const original = yield* find(journal, sourceRunId, source)\n if (\n original === undefined || original.seq !== copied.seq || original.emittedAtMs !== copied.emittedAtMs ||\n original.eventType !== copied.eventType || !same(original.payload, copied.payload) ||\n !same(original.meta, copied.meta)\n ) return yield* Effect.fail(conflict)\n if (isRecord(original.meta) && original.meta[\"lineageId\"] === FlowEngine.Lineage.root(sourceRunId)) {\n return { ancestor: sourceRunId, record: original }\n }\n child = sourceRunId\n entry = original\n }\n return yield* Effect.fail(conflict)\n })\n\n/**\n * Accepts the occupying record only when it is `record` as a validated\n * copied-lineage ancestor emitted it; otherwise fails with `conflict`.\n *\n * The shared ancestry proof requires, at each hop, the child's fork marker above the copied prefix, the parent row the\n * marker was cut at, and the parent's own copy of the record at the same\n * `seq`, identical in content. The walk ends at the run whose lineage the\n * record carries, and that run's original must be the record being emitted\n * under that run's identity: same event type, same payload with the ancestor\n * in place of this run, same meta.\n * @category accessors\n * @since 1.0.0-rc.0\n */\nexport const accept = (options: {\n readonly journal: Journal.Service\n readonly runs: RunStore.Service\n readonly runId: string\n readonly record: JournalEvent.Input\n readonly conflict: Journal.JournalError\n}): Effect.Effect<void, Journal.JournalError> =>\n Effect.gen(function*() {\n const { conflict, journal, record } = options\n const sourceSeq = record.sourceSeq ?? 0\n const source = (entry: JournalEvent.Entry) =>\n entry.sourceId === record.sourceId && Number(entry.sourceSeq) === Number(sourceSeq)\n const entry = yield* find(journal, options.runId, source)\n if (entry === undefined || entry.eventType !== record.eventType) return yield* Effect.fail(conflict)\n const original = yield* prove({ ...options, entry })\n const expected = asEmittedBy(record, options.runId, original.ancestor)\n return sameJson(original.record.payload, expected.payload) && sameJson(original.record.meta, expected.meta)\n ? undefined\n : yield* Effect.fail(conflict)\n })\n"],
5
+ "mappings": "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",
6
+ "names": ["entry"]
7
+ }