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

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 +201 -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 +1586 -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 +300 -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 +3154 -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,192 @@
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 NodeJournal_exports = {};
30
+ __export(NodeJournal_exports, {
31
+ encodedBytes: () => encodedBytes,
32
+ entry: () => entry,
33
+ hostRoot: () => hostRoot,
34
+ maximumResultBytes: () => maximumResultBytes,
35
+ maximumSummarizedBytes: () => maximumSummarizedBytes,
36
+ relativePath: () => relativePath,
37
+ resultSummary: () => resultSummary
38
+ });
39
+ module.exports = __toCommonJS(NodeJournal_exports);
40
+ var import_journal = require("@smthrs/journal");
41
+ var JournalRecords = __toESM(require("./JournalRecords.js"), 1);
42
+ const relativePath = import_journal.EngineEvent.relativePath;
43
+ const asJson = (value) => JSON.parse(JSON.stringify(value));
44
+ const hostRoot = (explicit, host = globalThis) => {
45
+ if (explicit !== void 0) return explicit;
46
+ return typeof host.process?.cwd === "function" ? host.process.cwd() : void 0;
47
+ };
48
+ const summary = (scope, node) => {
49
+ const path = node.declaredAt === void 0 ? void 0 : relativePath(scope.root, node.declaredAt.path);
50
+ return {
51
+ id: node.id,
52
+ kind: node.kind,
53
+ dependsOn: node.dependsOn,
54
+ tier: node.tier,
55
+ ...node.action === void 0 ? {} : { action: node.action },
56
+ ...node.effects === void 0 ? {} : { effects: asJson(node.effects) },
57
+ ...path === void 0 ? {} : { declaredAt: { path, line: node.declaredAt.line } }
58
+ };
59
+ };
60
+ const graph = (scope, record) => ({
61
+ nodes: record.nodes.map((node) => summary(scope, node)),
62
+ edges: record.edges,
63
+ // On every page, because every page carries its own sites.
64
+ ...scope.sourceRevision === void 0 ? {} : { sourceRevision: scope.sourceRevision }
65
+ });
66
+ const maximumResultBytes = 2048;
67
+ const maximumSummarizedBytes = 65536;
68
+ const redactor = import_journal.Redaction.make({ onTooDeep: "name" });
69
+ const utf8Bytes = (text) => {
70
+ let bytes = 0;
71
+ for (let index = 0; index < text.length; index++) {
72
+ const code = text.charCodeAt(index);
73
+ if (code < 128) bytes += 1;
74
+ else if (code < 2048) bytes += 2;
75
+ else if (code >= 55296 && code <= 56319 && index + 1 < text.length) {
76
+ bytes += 4;
77
+ index++;
78
+ } else bytes += 3;
79
+ }
80
+ return bytes;
81
+ };
82
+ const clampToBytes = (text, limit) => {
83
+ let bytes = 0;
84
+ let index = 0;
85
+ while (index < text.length) {
86
+ const code = text.charCodeAt(index);
87
+ const pair = code >= 55296 && code <= 56319 && index + 1 < text.length;
88
+ const size = code < 128 ? 1 : code < 2048 ? 2 : pair ? 4 : 3;
89
+ if (bytes + size > limit) break;
90
+ bytes += size;
91
+ index += pair ? 2 : 1;
92
+ }
93
+ return text.slice(0, index);
94
+ };
95
+ const resultSummary = (value) => {
96
+ let raw;
97
+ try {
98
+ raw = JSON.stringify(value);
99
+ } catch {
100
+ raw = void 0;
101
+ }
102
+ if (raw !== void 0) {
103
+ const rawBytes = utf8Bytes(raw);
104
+ if (rawBytes > maximumSummarizedBytes) return { preview: "", bytes: rawBytes, truncated: true };
105
+ }
106
+ let encoded;
107
+ try {
108
+ encoded = JSON.stringify(redactor(value));
109
+ } catch {
110
+ return void 0;
111
+ }
112
+ if (encoded === void 0) return void 0;
113
+ const bytes = utf8Bytes(encoded);
114
+ if (bytes > maximumSummarizedBytes) return { preview: "", bytes, truncated: true };
115
+ if (bytes <= maximumResultBytes) return { preview: encoded, bytes, truncated: false };
116
+ return { preview: clampToBytes(encoded, maximumResultBytes), bytes, truncated: true };
117
+ };
118
+ const entry = (scope, record) => {
119
+ const options = {
120
+ runId: scope.runId,
121
+ sourceId: `${scope.sourceId}/${record.sourceId}`,
122
+ lineageId: scope.lineageId,
123
+ // Without an explicit sequence the journal ALLOCATES the next one for the
124
+ // source, so a resumed walk would write a second row for every node it
125
+ // re-derived. Pinning it to zero makes the re-emission an exact producer
126
+ // retry, which is the whole of the exactly-once contract.
127
+ sourceSeq: 0,
128
+ // The sequence is derived from the record's own identity, so a collision
129
+ // is the same node observed twice rather than two nodes wearing one
130
+ // address. What differs between the observations is metadata ABOUT the
131
+ // observation — a node the first walk BUILT settles CLEAN on the walk
132
+ // that replayed it — and the first row, the one that says what actually
133
+ // happened, stands.
134
+ dedupe: "identity"
135
+ };
136
+ switch (record._tag) {
137
+ case "PlanRecorded":
138
+ return JournalRecords.planRecorded(options, {
139
+ flow: record.flow,
140
+ generation: record.generation,
141
+ // The node COUNT of the whole graph, which is what this field has
142
+ // always meant; the node LIST rides beside it as `graph`.
143
+ nodes: record.nodeCount,
144
+ page: record.page,
145
+ pages: record.pages,
146
+ graph: graph(scope, record)
147
+ });
148
+ case "SubgraphAppended":
149
+ return JournalRecords.subgraphAppended(options, {
150
+ flow: record.flow,
151
+ generation: record.generation,
152
+ nodeIds: record.nodes.map((node) => node.id),
153
+ page: record.page,
154
+ pages: record.pages,
155
+ graph: graph(scope, record)
156
+ });
157
+ case "NodeScheduled":
158
+ return JournalRecords.nodeScheduled(options, {
159
+ nodeId: record.nodeId,
160
+ kind: record.kind,
161
+ attempt: record.attempt,
162
+ ...record.action === void 0 ? {} : { action: record.action }
163
+ });
164
+ case "NodeSettled": {
165
+ const result = record.value === void 0 ? void 0 : resultSummary(record.value);
166
+ return JournalRecords.nodeSettled(options, {
167
+ nodeId: record.nodeId,
168
+ outcome: record.outcome,
169
+ attempts: record.attempts,
170
+ stepKeyDigests: record.stepKeyDigests,
171
+ ...record.action === void 0 ? {} : { action: record.action },
172
+ ...result === void 0 ? {} : { result }
173
+ });
174
+ }
175
+ }
176
+ };
177
+ const encodedBytes = (scope, record) => {
178
+ const input = entry(scope, record);
179
+ const sourceSeq = import_journal.JournalEvent.SourceSeq.make(0);
180
+ return new TextEncoder().encode(JSON.stringify({
181
+ runId: input.runId,
182
+ seq: Number.MAX_SAFE_INTEGER - 1,
183
+ eventId: import_journal.JournalEvent.makeEventId(input.runId, input.sourceId, sourceSeq),
184
+ sourceId: input.sourceId,
185
+ sourceSeq,
186
+ emittedAtMs: Number.MAX_VALUE,
187
+ eventType: input.eventType,
188
+ payload: redactor(input.payload),
189
+ meta: redactor(input.meta)
190
+ })).byteLength;
191
+ };
192
+ //# sourceMappingURL=NodeJournal.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/NodeJournal.ts"],
4
+ "sourcesContent": ["/**\n * The interpreter's node records, as journal entries.\n *\n * `@smthrs/flow` builds a record for the graph it drove and for every node it\n * scheduled and settled, and says nothing about where they go. This module is\n * the durable store's answer: one journal entry per record, addressed by the\n * record's own `sourceId`, typed by the payload schemas `@smthrs/journal`\n * publishes, and carrying the same event types the plan scheduler writes so a\n * reader folds both executors with one decoder.\n *\n * Two facts live here rather than in the interpreter. The journal's producer\n * identity is `(runId, sourceId, sourceSeq)`, so a resumed walk that\n * re-derives the same `sourceId` collapses onto the row the first walk wrote:\n * that is the exactly-once contract, and it holds because the identity is the\n * record's, never a fresh one minted per observation. And a declaration site\n * is made repo-relative here, because only the writer knows the root: a\n * journal is read on machines that did not write it, and an absolute path is\n * at best noise and at worst an operator's home directory published into a\n * run's history.\n *\n * @since 0.1.0\n */\n\nimport type { FlowRuntime } from \"@smthrs/flow\"\nimport { EngineEvent, JournalEvent, Redaction } from \"@smthrs/journal\"\nimport type * as Schema from \"effect/Schema\"\nimport * as JournalRecords from \"./JournalRecords.ts\"\n\n/**\n * Where the records of one run are addressed from.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface Scope {\n readonly runId: string\n /** The host's journal source, which every record of this run hangs under. */\n readonly sourceId: string\n readonly lineageId: string\n /**\n * The directory a declaration path is made relative to, when one is known.\n *\n * `undefined` means no path is recorded at all. That is the honest answer\n * for a host that cannot say where its sources live, and it is better than\n * a path a reader would have to guess the meaning of.\n */\n readonly root?: string | undefined\n /**\n * The revision the sources those declaration paths point into were read\n * at, when the host can name one.\n *\n * It lives here for the reason `root` does: a journal is read on machines\n * that did not write it, and only the writer knows which tree it loaded.\n * A path alone says where a node was declared and never which bytes were\n * at that line, so a reader without this opens no code at all rather than\n * whatever the working tree holds when they look (D-068).\n */\n readonly sourceRevision?: string | undefined\n}\n\n/**\n * A declaration path as a journal may carry it: relative to the root, or\n * nothing.\n *\n * The rule lives with the schema that refuses an absolute path\n * (`@smthrs/journal`'s `EngineEvent.DeclaredAt`), so every writer of a\n * declaration site obeys it the same way. It is named here because this is\n * the module that applies it, and because the store's own tests are written\n * against it.\n *\n * @since 0.1.0\n * @category accessors\n */\nexport const relativePath = EngineEvent.relativePath\n\n/**\n * A value the journal will serialize, typed as what it will be.\n *\n * A node's effects are JSON by construction, but an optional member spelled\n * `undefined` is not assignable to `Json` under `exactOptionalPropertyTypes`,\n * and serialization is exactly what drops it. This is the journal's own\n * encoding performed one step early, so the type says what the stored value\n * is rather than asserting it. @private\n */\nconst asJson = (value: unknown): typeof Schema.Json.Type => JSON.parse(JSON.stringify(value))\n\n/**\n * The directory declaration paths are recorded relative to.\n *\n * `process` is absent in a worker and in a browser, and a host that cannot\n * name its own working directory records no declaration path at all rather\n * than one a reader would have to guess the meaning of. `host` is the global\n * object by default and is named here so both answers are reachable without\n * taking the real one away from the runtime.\n *\n * @since 0.1.0\n * @category accessors\n */\nexport const hostRoot = (\n explicit: string | undefined,\n host: { readonly process?: { readonly cwd?: () => string } | undefined } = globalThis\n): string | undefined => {\n if (explicit !== undefined) return explicit\n return typeof host.process?.cwd === \"function\" ? host.process.cwd() : undefined\n}\n\nconst summary = (scope: Scope, node: FlowRuntime.NodeSummary) => {\n const path = node.declaredAt === undefined ? undefined : relativePath(scope.root, node.declaredAt.path)\n return {\n id: node.id,\n kind: node.kind,\n dependsOn: node.dependsOn,\n tier: node.tier,\n ...(node.action === undefined ? {} : { action: node.action }),\n ...(node.effects === undefined ? {} : { effects: asJson(node.effects) }),\n ...(path === undefined ? {} : { declaredAt: { path, line: node.declaredAt!.line } })\n }\n}\n\nconst graph = (scope: Scope, record: FlowRuntime.PlanRecorded | FlowRuntime.SubgraphAppended) => ({\n nodes: record.nodes.map((node) => summary(scope, node)),\n edges: record.edges,\n // On every page, because every page carries its own sites.\n ...(scope.sourceRevision === undefined ? {} : { sourceRevision: scope.sourceRevision })\n})\n\n/**\n * How many bytes of a node's settled value a journal row keeps.\n *\n * A node record is a small row beside the plan record's 12,000-byte page\n * budget, and it is written once per node of every graph: a value kept whole\n * would put an agent transcript in a permanent row and a projection would\n * clip it without saying so. Two kibibytes is enough to read what a node\n * produced and small enough that the settlement stays a summary.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const maximumResultBytes = 2_048\n\n/**\n * How large a settled value may be before it is summarized at all.\n *\n * Redacting a value rebuilds every member of it and runs the textual rules\n * over every string, on the journal write path, for every node of every\n * graph. Past this ceiling the walk is the cost rather than the row, and the\n * honest answer is the size alone: the encoding is measured, `preview` is\n * empty, and `truncated` says the text was cut to nothing. Anything below it\n * is redacted whole and then cut.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const maximumSummarizedBytes = 65_536\n\n/** The redactor a node summary is scrubbed with, built once. @private */\nconst redactor = Redaction.make({ onTooDeep: \"name\" })\n\n/** UTF-8 bytes of a string, without allocating the encoding. @private */\nconst utf8Bytes = (text: string): number => {\n let bytes = 0\n for (let index = 0; index < text.length; index++) {\n const code = text.charCodeAt(index)\n if (code < 0x80) bytes += 1\n else if (code < 0x800) bytes += 2\n else if (code >= 0xd800 && code <= 0xdbff && index + 1 < text.length) {\n bytes += 4\n index++\n } else bytes += 3\n }\n return bytes\n}\n\n/**\n * The longest prefix of `text` within `limit` UTF-8 bytes, never splitting a\n * pair.\n *\n * One cut, taken where the walk stopped, because the walk stops for two\n * reasons and only one of them can happen: the caller asks only for text it\n * has already measured as over the limit, so a second exit for text that fits\n * whole would be a line no run reaches. @private\n */\nconst clampToBytes = (text: string, limit: number): string => {\n let bytes = 0\n let index = 0\n while (index < text.length) {\n const code = text.charCodeAt(index)\n const pair = code >= 0xd800 && code <= 0xdbff && index + 1 < text.length\n const size = code < 0x80 ? 1 : code < 0x800 ? 2 : pair ? 4 : 3\n if (bytes + size > limit) break\n bytes += size\n index += pair ? 2 : 1\n }\n return text.slice(0, index)\n}\n\n/**\n * What a node settled with, redacted and then bounded.\n *\n * REDACTION COMES FIRST. `Redaction.redact` is the journal's own write-path\n * scrubber, and it is the one that reads a field NAME: `{ apiKey: \"sk-...\" }`\n * is a credential because of the key, which no rule over encoded text can see\n * once the value is a string inside a larger string. Running it over the\n * decoded value also collapses cycles and names functions, so the encoding\n * that follows always succeeds. Cutting the text first would be worse than\n * useless: a credential split across the boundary is a credential the textual\n * rules no longer recognise, and half of it would be kept.\n *\n * A value that will not encode even after redaction \u2014 a bigint, a value whose\n * own `toJSON` throws \u2014 gets no summary at all rather than a fabricated one.\n *\n * `bytes` is the size of the encoding `preview` was cut from, which for a\n * value past {@link maximumSummarizedBytes} is the value's own encoding: that\n * branch keeps nothing, so there is no second number to disagree with.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const resultSummary = (value: unknown): {\n readonly preview: string\n readonly bytes: number\n readonly truncated: boolean\n} | undefined => {\n // The size first, from the value's own encoding, because it is the cheap\n // half: a value this row will not keep is named by its size and never\n // walked. A value that will not encode at all \u2014 a cycle, a bigint, a\n // throwing `toJSON` \u2014 says nothing here, and the redactor below is asked,\n // because it collapses cycles and names what it cannot rewrite.\n let raw: string | undefined\n try {\n raw = JSON.stringify(value)\n } catch {\n raw = undefined\n }\n if (raw !== undefined) {\n const rawBytes = utf8Bytes(raw)\n if (rawBytes > maximumSummarizedBytes) return { preview: \"\", bytes: rawBytes, truncated: true }\n }\n let encoded: string | undefined\n try {\n encoded = JSON.stringify(redactor(value))\n } catch {\n return undefined\n }\n if (encoded === undefined) return undefined\n const bytes = utf8Bytes(encoded)\n if (bytes > maximumSummarizedBytes) return { preview: \"\", bytes, truncated: true }\n if (bytes <= maximumResultBytes) return { preview: encoded, bytes, truncated: false }\n return { preview: clampToBytes(encoded, maximumResultBytes), bytes, truncated: true }\n}\n\n/**\n * The journal entry one node record is written as.\n *\n * @since 0.1.0\n * @category constructors\n */\nexport const entry = (scope: Scope, record: FlowRuntime.NodeRecord): JournalEvent.Input => {\n const options = {\n runId: scope.runId,\n sourceId: `${scope.sourceId}/${record.sourceId}`,\n lineageId: scope.lineageId,\n // Without an explicit sequence the journal ALLOCATES the next one for the\n // source, so a resumed walk would write a second row for every node it\n // re-derived. Pinning it to zero makes the re-emission an exact producer\n // retry, which is the whole of the exactly-once contract.\n sourceSeq: 0,\n // The sequence is derived from the record's own identity, so a collision\n // is the same node observed twice rather than two nodes wearing one\n // address. What differs between the observations is metadata ABOUT the\n // observation \u2014 a node the first walk BUILT settles CLEAN on the walk\n // that replayed it \u2014 and the first row, the one that says what actually\n // happened, stands.\n dedupe: \"identity\" as const\n }\n switch (record._tag) {\n case \"PlanRecorded\":\n return JournalRecords.planRecorded(options, {\n flow: record.flow,\n generation: record.generation,\n // The node COUNT of the whole graph, which is what this field has\n // always meant; the node LIST rides beside it as `graph`.\n nodes: record.nodeCount,\n page: record.page,\n pages: record.pages,\n graph: graph(scope, record)\n })\n case \"SubgraphAppended\":\n return JournalRecords.subgraphAppended(options, {\n flow: record.flow,\n generation: record.generation,\n nodeIds: record.nodes.map((node) => node.id),\n page: record.page,\n pages: record.pages,\n graph: graph(scope, record)\n })\n case \"NodeScheduled\":\n return JournalRecords.nodeScheduled(options, {\n nodeId: record.nodeId,\n kind: record.kind,\n attempt: record.attempt,\n ...(record.action === undefined ? {} : { action: record.action })\n })\n case \"NodeSettled\": {\n const result = record.value === undefined ? undefined : resultSummary(record.value)\n return JournalRecords.nodeSettled(options, {\n nodeId: record.nodeId,\n outcome: record.outcome,\n attempts: record.attempts,\n stepKeyDigests: record.stepKeyDigests,\n ...(record.action === undefined ? {} : { action: record.action }),\n ...(result === undefined ? {} : { result })\n })\n }\n }\n}\n\n/**\n * UTF-8 upper bound for the durable entry, including allocated envelope fields.\n *\n * Sequence/time reserve their largest JSON encodings so page boundaries never\n * depend on the current journal position or clock, including after a resume.\n * @since 1.0.0\n * @category accessors\n */\nexport const encodedBytes = (scope: Scope, record: FlowRuntime.NodeRecord): number => {\n const input = entry(scope, record)\n const sourceSeq = JournalEvent.SourceSeq.make(0)\n return new TextEncoder().encode(JSON.stringify({\n runId: input.runId,\n seq: Number.MAX_SAFE_INTEGER - 1,\n eventId: JournalEvent.makeEventId(input.runId, input.sourceId, sourceSeq),\n sourceId: input.sourceId,\n sourceSeq,\n emittedAtMs: Number.MAX_VALUE,\n eventType: input.eventType,\n payload: redactor(input.payload),\n meta: redactor(input.meta)\n })).byteLength\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Host-locale-independent UTF-16 code-unit ordering for durable material.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ /**
7
+ * Compares two strings by JavaScript's locale-independent UTF-16 relational
8
+ * order.
9
+ *
10
+ * @category ordering
11
+ * @since 1.0.0
12
+ */
13
+ export declare const compareText: (left: string, right: string) => number;
14
+ //# sourceMappingURL=Ordering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ordering.d.ts","sourceRoot":"","sources":["../../../src/internal/Ordering.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MAAkD,CAAA"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var Ordering_exports = {};
20
+ __export(Ordering_exports, {
21
+ compareText: () => compareText
22
+ });
23
+ module.exports = __toCommonJS(Ordering_exports);
24
+ const compareText = (left, right) => left < right ? -1 : left > right ? 1 : 0;
25
+ //# sourceMappingURL=Ordering.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/Ordering.ts"],
4
+ "sourcesContent": ["/**\n * Host-locale-independent UTF-16 code-unit ordering for durable material.\n *\n * @since 1.0.0\n */\n\n/**\n * Compares two strings by JavaScript's locale-independent UTF-16 relational\n * order.\n *\n * @category ordering\n * @since 1.0.0\n */\nexport const compareText = (left: string, right: string): number => left < right ? -1 : left > right ? 1 : 0\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,cAAc,CAAC,MAAc,UAA0B,OAAO,QAAQ,KAAK,OAAO,QAAQ,IAAI;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Cross-check stored or newly measured observations against a verified plan.
3
+ * @since 1.0.0
4
+ */
5
+ import { FileSet, type Plan } from "@smthrs/plan";
6
+ import { Effect } from "effect";
7
+ import * as PlanInputStore from "../PlanInputStore.ts";
8
+ /**
9
+ * Validates without publishing or mutating either the old pins or observations.
10
+ * @since 1.0.0
11
+ * @category validation
12
+ */
13
+ export declare const validate: (snapshot: PlanInputStore.Snapshot, nodes: ReadonlyArray<Plan.PlanNode>, pinned: ReadonlyMap<string, string>, writerScopesBefore: (node: Plan.PlanNode) => ReadonlyArray<FileSet.Entry>) => Effect.Effect<Map<string, string>, PlanInputStore.PlanInputError>;
14
+ //# sourceMappingURL=PlanInputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanInputs.d.ts","sourceRoot":"","sources":["../../../src/internal/PlanInputs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAA;AAEtD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,UAAU,cAAc,CAAC,QAAQ,EACjC,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EACnC,QAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,KAAK,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KACxE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,cAAc,CA0C/D,CAAA"}
@@ -0,0 +1,78 @@
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 PlanInputs_exports = {};
30
+ __export(PlanInputs_exports, {
31
+ validate: () => validate
32
+ });
33
+ module.exports = __toCommonJS(PlanInputs_exports);
34
+ var import_plan = require("@smthrs/plan");
35
+ var import_effect = require("effect");
36
+ var PlanInputStore = __toESM(require("../PlanInputStore.js"), 1);
37
+ const validate = (snapshot, nodes, pinned, writerScopesBefore) => import_effect.Effect.gen(function* () {
38
+ const corrupt = (message) => import_effect.Effect.fail(new PlanInputStore.PlanInputError({ code: "corrupt_state", message }));
39
+ if (snapshot.nodes.length !== nodes.length) return yield* corrupt("source observation node count changed");
40
+ const nextPins = new Map(pinned);
41
+ const newPins = /* @__PURE__ */ new Set();
42
+ for (const pin of snapshot.pins) {
43
+ if (nextPins.has(pin.path)) return yield* corrupt("a later generation replaced an existing source pin");
44
+ nextPins.set(pin.path, pin.digest);
45
+ newPins.add(pin.path);
46
+ }
47
+ for (let index = 0; index < nodes.length; index++) {
48
+ const node = nodes[index];
49
+ const recorded = snapshot.nodes[index];
50
+ const reads = import_plan.FileSet.expandReads(node.effects.reads);
51
+ const writerScopes = reads.length === 0 ? [] : writerScopesBefore(node);
52
+ if (recorded.id !== node.id || recorded.key !== node.key || recorded.reads.length !== reads.length) {
53
+ return yield* corrupt("source observation does not match its plan node");
54
+ }
55
+ for (let readIndex = 0; readIndex < reads.length; readIndex++) {
56
+ const expected = import_effect.Schema.decodeUnknownSync(import_plan.FileSet.ReadEntry)(reads[readIndex]);
57
+ const read = recorded.reads[readIndex];
58
+ if (JSON.stringify(read.entry) !== JSON.stringify(expected)) {
59
+ return yield* corrupt("source observation declaration changed");
60
+ }
61
+ if (typeof expected === "string") {
62
+ const source = !writerScopes.some((scope) => import_plan.FileSet.overlaps(scope, expected));
63
+ if (read.sourcePaths.length !== (source ? 1 : 0)) {
64
+ return yield* corrupt("source observation selects the wrong file version");
65
+ }
66
+ }
67
+ for (const path of read.sourcePaths) {
68
+ if (!nextPins.has(path) || writerScopes.some((scope) => import_plan.FileSet.overlaps(scope, path))) {
69
+ return yield* corrupt("source observation has a missing pin or preceding writer");
70
+ }
71
+ newPins.delete(path);
72
+ }
73
+ }
74
+ }
75
+ if (newPins.size > 0) return yield* corrupt("source observation contains unreferenced pins");
76
+ return nextPins;
77
+ });
78
+ //# sourceMappingURL=PlanInputs.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/PlanInputs.ts"],
4
+ "sourcesContent": ["/**\n * Cross-check stored or newly measured observations against a verified plan.\n * @since 1.0.0\n */\n\nimport { FileSet, type Plan } from \"@smthrs/plan\"\nimport { Effect, Schema } from \"effect\"\nimport * as PlanInputStore from \"../PlanInputStore.ts\"\n\n/**\n * Validates without publishing or mutating either the old pins or observations.\n * @since 1.0.0\n * @category validation\n */\nexport const validate = (\n snapshot: PlanInputStore.Snapshot,\n nodes: ReadonlyArray<Plan.PlanNode>,\n pinned: ReadonlyMap<string, string>,\n writerScopesBefore: (node: Plan.PlanNode) => ReadonlyArray<FileSet.Entry>\n): Effect.Effect<Map<string, string>, PlanInputStore.PlanInputError> =>\n Effect.gen(function*() {\n const corrupt = (message: string) =>\n Effect.fail(new PlanInputStore.PlanInputError({ code: \"corrupt_state\", message }))\n if (snapshot.nodes.length !== nodes.length) return yield* corrupt(\"source observation node count changed\")\n const nextPins = new Map(pinned)\n const newPins = new Set<string>()\n for (const pin of snapshot.pins) {\n if (nextPins.has(pin.path)) return yield* corrupt(\"a later generation replaced an existing source pin\")\n nextPins.set(pin.path, pin.digest)\n newPins.add(pin.path)\n }\n for (let index = 0; index < nodes.length; index++) {\n const node = nodes[index]!\n const recorded = snapshot.nodes[index]!\n const reads = FileSet.expandReads(node.effects.reads)\n const writerScopes = reads.length === 0 ? [] : writerScopesBefore(node)\n if (recorded.id !== node.id || recorded.key !== node.key || recorded.reads.length !== reads.length) {\n return yield* corrupt(\"source observation does not match its plan node\")\n }\n for (let readIndex = 0; readIndex < reads.length; readIndex++) {\n const expected = Schema.decodeUnknownSync(FileSet.ReadEntry)(reads[readIndex]!)\n const read = recorded.reads[readIndex]!\n if (JSON.stringify(read.entry) !== JSON.stringify(expected)) {\n return yield* corrupt(\"source observation declaration changed\")\n }\n if (typeof expected === \"string\") {\n const source = !writerScopes.some((scope) => FileSet.overlaps(scope, expected))\n if (read.sourcePaths.length !== (source ? 1 : 0)) {\n return yield* corrupt(\"source observation selects the wrong file version\")\n }\n }\n for (const path of read.sourcePaths) {\n if (!nextPins.has(path) || writerScopes.some((scope) => FileSet.overlaps(scope, path))) {\n return yield* corrupt(\"source observation has a missing pin or preceding writer\")\n }\n newPins.delete(path)\n }\n }\n }\n if (newPins.size > 0) return yield* corrupt(\"source observation contains unreferenced pins\")\n return nextPins\n })\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,kBAAmC;AACnC,oBAA+B;AAC/B,qBAAgC;AAOzB,MAAM,WAAW,CACtB,UACA,OACA,QACA,uBAEA,qBAAO,IAAI,aAAY;AACrB,QAAM,UAAU,CAAC,YACf,qBAAO,KAAK,IAAI,eAAe,eAAe,EAAE,MAAM,iBAAiB,QAAQ,CAAC,CAAC;AACnF,MAAI,SAAS,MAAM,WAAW,MAAM,OAAQ,QAAO,OAAO,QAAQ,uCAAuC;AACzG,QAAM,WAAW,IAAI,IAAI,MAAM;AAC/B,QAAM,UAAU,oBAAI,IAAY;AAChC,aAAW,OAAO,SAAS,MAAM;AAC/B,QAAI,SAAS,IAAI,IAAI,IAAI,EAAG,QAAO,OAAO,QAAQ,oDAAoD;AACtG,aAAS,IAAI,IAAI,MAAM,IAAI,MAAM;AACjC,YAAQ,IAAI,IAAI,IAAI;AAAA,EACtB;AACA,WAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS;AACjD,UAAM,OAAO,MAAM,KAAK;AACxB,UAAM,WAAW,SAAS,MAAM,KAAK;AACrC,UAAM,QAAQ,oBAAQ,YAAY,KAAK,QAAQ,KAAK;AACpD,UAAM,eAAe,MAAM,WAAW,IAAI,CAAC,IAAI,mBAAmB,IAAI;AACtE,QAAI,SAAS,OAAO,KAAK,MAAM,SAAS,QAAQ,KAAK,OAAO,SAAS,MAAM,WAAW,MAAM,QAAQ;AAClG,aAAO,OAAO,QAAQ,iDAAiD;AAAA,IACzE;AACA,aAAS,YAAY,GAAG,YAAY,MAAM,QAAQ,aAAa;AAC7D,YAAM,WAAW,qBAAO,kBAAkB,oBAAQ,SAAS,EAAE,MAAM,SAAS,CAAE;AAC9E,YAAM,OAAO,SAAS,MAAM,SAAS;AACrC,UAAI,KAAK,UAAU,KAAK,KAAK,MAAM,KAAK,UAAU,QAAQ,GAAG;AAC3D,eAAO,OAAO,QAAQ,wCAAwC;AAAA,MAChE;AACA,UAAI,OAAO,aAAa,UAAU;AAChC,cAAM,SAAS,CAAC,aAAa,KAAK,CAAC,UAAU,oBAAQ,SAAS,OAAO,QAAQ,CAAC;AAC9E,YAAI,KAAK,YAAY,YAAY,SAAS,IAAI,IAAI;AAChD,iBAAO,OAAO,QAAQ,mDAAmD;AAAA,QAC3E;AAAA,MACF;AACA,iBAAW,QAAQ,KAAK,aAAa;AACnC,YAAI,CAAC,SAAS,IAAI,IAAI,KAAK,aAAa,KAAK,CAAC,UAAU,oBAAQ,SAAS,OAAO,IAAI,CAAC,GAAG;AACtF,iBAAO,OAAO,QAAQ,0DAA0D;AAAA,QAClF;AACA,gBAAQ,OAAO,IAAI;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACA,MAAI,QAAQ,OAAO,EAAG,QAAO,OAAO,QAAQ,+CAA+C;AAC3F,SAAO;AACT,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,178 @@
1
+ /** Durable merge recovery and generated identity, independent of dispatch.
2
+ * @since 1.0.0
3
+ */
4
+ import { Plan } from "@smthrs/plan";
5
+ import { Effect } from "effect";
6
+ import * as PlanMergeStore from "../PlanMergeStore.ts";
7
+ /** Chooses a free display ID; ownership comes from the durable decision, not this spelling.
8
+ * @since 1.0.0
9
+ * @category identity
10
+ */
11
+ export declare const allocateId: (plan: Plan.Plan, nodeId: string) => string;
12
+ /** The single declaration used both when appending and when recovering an extension.
13
+ * @since 1.0.0
14
+ * @category constructors
15
+ */
16
+ export declare const draft: (node: Plan.PlanNode, mergeId: string, winners: ReadonlyArray<string>) => Plan.NodeDraft;
17
+ /** Checks that an intent names a permissible stopped node and its actual conflict peers.
18
+ * @since 1.0.0
19
+ * @category validation
20
+ */
21
+ export declare const validateIntent: (plan: Plan.Plan, intent: PlanMergeStore.Intent) => Effect.Effect<{
22
+ readonly id: string;
23
+ readonly kind: "step" | "agent" | "merge";
24
+ readonly key: string & import("effect/Brand").Brand<"@smthrs/keys/Key">;
25
+ readonly material: {
26
+ readonly kind: "sealed" | "compensable" | "irreversible";
27
+ readonly body: unknown;
28
+ readonly version: "flows/key-material/v2";
29
+ readonly layers: readonly string[];
30
+ readonly capabilities: readonly string[];
31
+ readonly inputs: readonly ({
32
+ readonly _tag: "Literal";
33
+ readonly value: unknown;
34
+ } | {
35
+ readonly _tag: "Ref";
36
+ readonly from: string;
37
+ readonly path: readonly string[];
38
+ } | {
39
+ readonly _tag: "Pending";
40
+ readonly from: string;
41
+ })[];
42
+ readonly effects?: unknown;
43
+ readonly nondeterministic?: true | undefined;
44
+ readonly placement?: unknown;
45
+ };
46
+ readonly effects: {
47
+ readonly boundaryMode: "expected" | "hard";
48
+ readonly reads: readonly (string | {
49
+ readonly _tag: "Glob";
50
+ readonly include: readonly [string, ...string[]];
51
+ readonly exclude?: readonly string[] | undefined;
52
+ } | {
53
+ readonly _tag: "Filegroup";
54
+ readonly name: string;
55
+ readonly entries: readonly (string | {
56
+ readonly _tag: "Glob";
57
+ readonly include: readonly [string, ...string[]];
58
+ readonly exclude?: readonly string[] | undefined;
59
+ })[];
60
+ })[];
61
+ readonly writes: readonly (string | {
62
+ readonly _tag: "Glob";
63
+ readonly include: readonly [string, ...string[]];
64
+ readonly exclude?: readonly string[] | undefined;
65
+ } | {
66
+ readonly _tag: "TreeArtifact";
67
+ readonly path: string;
68
+ } | {
69
+ readonly _tag: "Filegroup";
70
+ readonly name: string;
71
+ readonly entries: readonly (string | {
72
+ readonly _tag: "Glob";
73
+ readonly include: readonly [string, ...string[]];
74
+ readonly exclude?: readonly string[] | undefined;
75
+ } | {
76
+ readonly _tag: "TreeArtifact";
77
+ readonly path: string;
78
+ })[];
79
+ })[];
80
+ readonly removes?: readonly string[] | undefined;
81
+ };
82
+ readonly dependsOn: readonly string[];
83
+ readonly conflicts: readonly {
84
+ readonly with: string;
85
+ readonly paths: readonly string[];
86
+ readonly strategy: "serialize" | "lane" | "fail";
87
+ readonly runtime: "delay-rebase" | "stop-merge";
88
+ }[];
89
+ readonly strategy: "serialize" | "lane" | "fail";
90
+ readonly runtime: "delay-rebase" | "stop-merge";
91
+ readonly priority: number;
92
+ readonly generation: number;
93
+ }, PlanMergeStore.PlanMergeError, never>;
94
+ /** Recovers only recorded merge extensions, never unrelated/unapproved appended work.
95
+ * @since 1.0.0
96
+ * @category recovery
97
+ */
98
+ export declare const recover: (candidate: Plan.Plan, decisions: ReadonlyArray<PlanMergeStore.Decision>) => Effect.Effect<{
99
+ readonly planId: string;
100
+ readonly flow: string;
101
+ readonly generation: number;
102
+ readonly baseDigest: string & import("effect/Brand").Brand<"@smthrs/keys/Key">;
103
+ readonly digest: string & import("effect/Brand").Brand<"@smthrs/keys/Key">;
104
+ readonly nodes: readonly {
105
+ readonly id: string;
106
+ readonly kind: "step" | "agent" | "merge";
107
+ readonly key: string & import("effect/Brand").Brand<"@smthrs/keys/Key">;
108
+ readonly material: {
109
+ readonly kind: "sealed" | "compensable" | "irreversible";
110
+ readonly body: unknown;
111
+ readonly version: "flows/key-material/v2";
112
+ readonly layers: readonly string[];
113
+ readonly capabilities: readonly string[];
114
+ readonly inputs: readonly ({
115
+ readonly _tag: "Literal";
116
+ readonly value: unknown;
117
+ } | {
118
+ readonly _tag: "Ref";
119
+ readonly from: string;
120
+ readonly path: readonly string[];
121
+ } | {
122
+ readonly _tag: "Pending";
123
+ readonly from: string;
124
+ })[];
125
+ readonly effects?: unknown;
126
+ readonly nondeterministic?: true | undefined;
127
+ readonly placement?: unknown;
128
+ };
129
+ readonly effects: {
130
+ readonly boundaryMode: "expected" | "hard";
131
+ readonly reads: readonly (string | {
132
+ readonly _tag: "Glob";
133
+ readonly include: readonly [string, ...string[]];
134
+ readonly exclude?: readonly string[] | undefined;
135
+ } | {
136
+ readonly _tag: "Filegroup";
137
+ readonly name: string;
138
+ readonly entries: readonly (string | {
139
+ readonly _tag: "Glob";
140
+ readonly include: readonly [string, ...string[]];
141
+ readonly exclude?: readonly string[] | undefined;
142
+ })[];
143
+ })[];
144
+ readonly writes: readonly (string | {
145
+ readonly _tag: "Glob";
146
+ readonly include: readonly [string, ...string[]];
147
+ readonly exclude?: readonly string[] | undefined;
148
+ } | {
149
+ readonly _tag: "TreeArtifact";
150
+ readonly path: string;
151
+ } | {
152
+ readonly _tag: "Filegroup";
153
+ readonly name: string;
154
+ readonly entries: readonly (string | {
155
+ readonly _tag: "Glob";
156
+ readonly include: readonly [string, ...string[]];
157
+ readonly exclude?: readonly string[] | undefined;
158
+ } | {
159
+ readonly _tag: "TreeArtifact";
160
+ readonly path: string;
161
+ })[];
162
+ })[];
163
+ readonly removes?: readonly string[] | undefined;
164
+ };
165
+ readonly dependsOn: readonly string[];
166
+ readonly conflicts: readonly {
167
+ readonly with: string;
168
+ readonly paths: readonly string[];
169
+ readonly strategy: "serialize" | "lane" | "fail";
170
+ readonly runtime: "delay-rebase" | "stop-merge";
171
+ }[];
172
+ readonly strategy: "serialize" | "lane" | "fail";
173
+ readonly runtime: "delay-rebase" | "stop-merge";
174
+ readonly priority: number;
175
+ readonly generation: number;
176
+ }[];
177
+ }, PlanMergeStore.PlanMergeError, import("effect/Crypto").Crypto>;
178
+ //# sourceMappingURL=PlanMerges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlanMerges.d.ts","sourceRoot":"","sources":["../../../src/internal/PlanMerges.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAe,IAAI,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAA;AAQtD;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,MAAM,KAAG,MAM5D,CAAA;AACD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC,KAAG,IAAI,CAAC,SAYhG,CAAA;AACF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,CAAC,IAAI,EAAE,QAAQ,cAAc,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAWzE,CAAA;AACJ;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,WAAW,IAAI,CAAC,IAAI,EAAE,WAAW,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iEA4D3F,CAAA"}