@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,105 @@
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 ExecutionSnapshotRelations_exports = {};
30
+ __export(ExecutionSnapshotRelations_exports, {
31
+ make: () => make
32
+ });
33
+ module.exports = __toCommonJS(ExecutionSnapshotRelations_exports);
34
+ var Dialect = __toESM(require("@smthrs/database/Dialect"), 1);
35
+ var import_RunStore = require("@smthrs/run-store/RunStore");
36
+ var import_effect = require("effect");
37
+ var Read = __toESM(require("./ExecutionSnapshotRead.js"), 1);
38
+ const Kind = import_effect.Schema.Literals(["children", "rounds"]);
39
+ const Options = import_effect.Schema.Struct({
40
+ runId: Read.Identifier,
41
+ kind: Kind,
42
+ cursor: import_effect.Schema.optionalKey(import_effect.Schema.String.check(import_effect.Schema.isMaxLength(32768))),
43
+ limit: import_effect.Schema.optionalKey(import_effect.Schema.Int.check(import_effect.Schema.isBetween({ minimum: 1, maximum: 200 })))
44
+ });
45
+ const Cursor = import_effect.Schema.fromJsonString(import_effect.Schema.Struct({
46
+ version: import_effect.Schema.Literal(1),
47
+ source: Read.Source,
48
+ runId: Read.Identifier,
49
+ kind: Kind,
50
+ ordinal: Read.Natural,
51
+ lastRunId: Read.Identifier
52
+ }));
53
+ const Relation = import_effect.Schema.Struct({ run_id: Read.Identifier, ordinal: Read.Natural });
54
+ const make = (sql, read) => (options) => Read.boundary(
55
+ "ExecutionSnapshot.related",
56
+ import_effect.Effect.gen(function* () {
57
+ const input = yield* Read.decode(Options, options);
58
+ const cursor = input.cursor === void 0 ? null : yield* Read.decode(Cursor, input.cursor);
59
+ return yield* Read.transaction(
60
+ sql,
61
+ import_effect.Effect.gen(function* () {
62
+ const at = yield* Read.position(sql);
63
+ if (cursor !== null && (cursor.source !== at.source || cursor.runId !== input.runId || cursor.kind !== input.kind)) {
64
+ return yield* import_effect.Effect.fail(
65
+ new import_RunStore.RunStoreError({
66
+ method: "ExecutionSnapshot.related",
67
+ code: "invalid_run",
68
+ message: "relation cursor belongs to another query or source",
69
+ cause: cursor
70
+ })
71
+ );
72
+ }
73
+ const anchor = (yield* read([input.runId])).snapshots[0];
74
+ const limit = input.limit ?? 100;
75
+ const values = [input.runId];
76
+ const columns = input.kind === "children" ? ["seq", "child_id"] : ["COALESCE(round_ordinal, 0)", "run_id"];
77
+ const after = cursor === null ? "" : `AND (${columns.join(", ")}) > (?, ?)`;
78
+ if (cursor !== null) values.push(cursor.ordinal, cursor.lastRunId);
79
+ values.push(limit + 1);
80
+ const query = input.kind === "children" ? `SELECT child_id AS run_id, seq AS ordinal FROM flows_run_parents
81
+ WHERE parent_id = ? ${after} ORDER BY seq, child_id LIMIT ?` : `SELECT run_id, COALESCE(round_ordinal, 0) AS ordinal FROM flows_runs
82
+ WHERE execution_lineage = (SELECT execution_lineage FROM flows_runs WHERE run_id = ?)
83
+ ${after} ORDER BY COALESCE(round_ordinal, 0), run_id LIMIT ?`;
84
+ const rows = yield* Dialect.query(sql, query, values);
85
+ const decoded = yield* import_effect.Effect.forEach(rows, (row) => Read.decode(Relation, row));
86
+ const selected = decoded.slice(0, limit);
87
+ const batch = yield* read(selected.map((row) => row.run_id));
88
+ const last = selected[selected.length - 1];
89
+ return {
90
+ ...batch,
91
+ anchor,
92
+ cursor: decoded.length > limit ? JSON.stringify({
93
+ version: 1,
94
+ source: at.source,
95
+ runId: input.runId,
96
+ kind: input.kind,
97
+ ordinal: last.ordinal,
98
+ lastRunId: last.run_id
99
+ }) : null
100
+ };
101
+ })
102
+ );
103
+ })
104
+ );
105
+ //# sourceMappingURL=ExecutionSnapshotRelations.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/ExecutionSnapshotRelations.ts"],
4
+ "sourcesContent": ["/**\n * Page-scoped durable child and round enumeration.\n *\n * @since 1.0.0\n */\n\nimport * as Dialect from \"@smthrs/database/Dialect\"\nimport { RunStoreError } from \"@smthrs/run-store/RunStore\"\nimport { Effect, Schema } from \"effect\"\nimport type * as SqlClient from \"effect/unstable/sql/SqlClient\"\nimport type { Batch, Snapshot } from \"../ExecutionSnapshot.ts\"\nimport * as Read from \"./ExecutionSnapshotRead.ts\"\n\n/**\n * Child edges and trampoline rounds are different relations.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface RelatedOptions {\n readonly runId: string\n readonly kind: \"children\" | \"rounds\"\n readonly cursor?: string\n readonly limit?: number\n}\n/**\n * A requested anchor and its page, observed in one transaction.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface RelatedPage extends Batch {\n readonly anchor: Snapshot\n readonly cursor: string | null\n}\nconst Kind = Schema.Literals([\"children\", \"rounds\"])\nconst Options = Schema.Struct({\n runId: Read.Identifier,\n kind: Kind,\n cursor: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(32768))),\n limit: Schema.optionalKey(Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 200 })))\n})\nconst Cursor = Schema.fromJsonString(Schema.Struct({\n version: Schema.Literal(1),\n source: Read.Source,\n runId: Read.Identifier,\n kind: Kind,\n ordinal: Read.Natural,\n lastRunId: Read.Identifier\n}))\nconst Relation = Schema.Struct({ run_id: Read.Identifier, ordinal: Read.Natural })\n\n/**\n * Builds a bounded relation reader over the shared snapshot port.\n *\n * @private\n * @since 1.0.0\n */\nexport const make = (\n sql: SqlClient.SqlClient,\n read: (ids: ReadonlyArray<string>) => Effect.Effect<Batch, RunStoreError>\n) =>\n(options: RelatedOptions): Effect.Effect<RelatedPage, RunStoreError> =>\n Read.boundary(\n \"ExecutionSnapshot.related\",\n Effect.gen(function*() {\n const input = yield* Read.decode(Options, options)\n const cursor = input.cursor === undefined ? null : yield* Read.decode(Cursor, input.cursor)\n return yield* Read.transaction(\n sql,\n Effect.gen(function*() {\n const at = yield* Read.position(sql)\n if (\n cursor !== null &&\n (cursor.source !== at.source || cursor.runId !== input.runId || cursor.kind !== input.kind)\n ) {\n return yield* Effect.fail(\n new RunStoreError({\n method: \"ExecutionSnapshot.related\",\n code: \"invalid_run\",\n message: \"relation cursor belongs to another query or source\",\n cause: cursor\n })\n )\n }\n const anchor = (yield* read([input.runId])).snapshots[0]!\n const limit = input.limit ?? 100\n const values: Array<string | number | null> = [input.runId]\n const columns = input.kind === \"children\" ? [\"seq\", \"child_id\"] : [\"COALESCE(round_ordinal, 0)\", \"run_id\"]\n const after = cursor === null ? \"\" : `AND (${columns.join(\", \")}) > (?, ?)`\n if (cursor !== null) values.push(cursor.ordinal, cursor.lastRunId)\n values.push(limit + 1)\n const query = input.kind === \"children\"\n ? `SELECT child_id AS run_id, seq AS ordinal FROM flows_run_parents\n WHERE parent_id = ? ${after} ORDER BY seq, child_id LIMIT ?`\n : `SELECT run_id, COALESCE(round_ordinal, 0) AS ordinal FROM flows_runs\n WHERE execution_lineage = (SELECT execution_lineage FROM flows_runs WHERE run_id = ?)\n ${after} ORDER BY COALESCE(round_ordinal, 0), run_id LIMIT ?`\n const rows = yield* Dialect.query(sql, query, values)\n const decoded = yield* Effect.forEach(rows, (row) => Read.decode(Relation, row))\n const selected = decoded.slice(0, limit)\n const batch = yield* read(selected.map((row) => row.run_id))\n const last = selected[selected.length - 1]\n return {\n ...batch,\n anchor,\n cursor: decoded.length > limit ?\n JSON.stringify({\n version: 1,\n source: at.source,\n runId: input.runId,\n kind: input.kind,\n ordinal: last!.ordinal,\n lastRunId: last!.run_id\n }) :\n null\n }\n })\n )\n })\n )\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Encoding a round's settlement so a terminal transition can never be lost.
3
+ *
4
+ * A run row leaves `running` only when the driver has bytes to write into
5
+ * `state_json`, and those bytes come from the flow's OWN codec:
6
+ * `Flow.Result({ success: flow.successSchema, error: flow.errorSchema })`.
7
+ * A flow that declares `Schema.Unknown` for either channel — which is what
8
+ * `@smthrs/agent`'s `agent/run` declares, because an agent run carries
9
+ * whatever its body failed with — encodes that channel through `Schema.Json`,
10
+ * and `Schema.Json` rejects every class instance: `SchemaAST.isJson` walks the
11
+ * prototype chain and refuses anything that is not a plain object or an array.
12
+ * Every `Data.TaggedError` in this repository is therefore unencodable through
13
+ * such a flow, `HarnessError` and `ModelError` included.
14
+ *
15
+ * Guarding the terminal transition with `Effect.orDie` around that encode made
16
+ * an unencodable failure fatal for the drain instead of terminal for the run.
17
+ * The release validation caught the whole chain: `engine-store: coordinated
18
+ * drain failed for run-1 SchemaError: Expected JSON value at
19
+ * ["exit"]["cause"][0]["error"]`, `engine.db` `flows_runs` left at `running`
20
+ * with a dead owner pid while `control.db` said `failed`, and 86 seconds later
21
+ * the next process's stale-running sweep stole the row, opened a second turn,
22
+ * and billed the provider seat again for a run the control plane had closed.
23
+ *
24
+ * So the encode fails CLOSED here rather than open. The ordinary path is the
25
+ * flow's own codec, unchanged. When that codec rejects the value, the result
26
+ * is still written — as a JSON projection of what could not be encoded (tag,
27
+ * code, message, a stack summary, and nested causes) inside a `Die` reason —
28
+ * and the caller is told, through {@link EncodedResult.note}, that it must
29
+ * settle the run `failed`. A settled run is never re-executed, which is the
30
+ * durability promise the release policy states as one terminal write.
31
+ *
32
+ * The projection is built as plain JSON rather than re-encoded through a
33
+ * schema, so nothing in this module can raise. Its top-level object carries no
34
+ * `message` key on purpose: `Schema.Defect` revives any JSON object that has a
35
+ * string `message` as an `Error`, and a projection has to come back out of the
36
+ * row as the structured record it went in as.
37
+ *
38
+ * @since 0.1.0
39
+ */
40
+ import { Flow } from "@smthrs/flow";
41
+ import type * as Cause from "effect/Cause";
42
+ import * as Effect from "effect/Effect";
43
+ /**
44
+ * The `_tag` every projection carries, so a reader of `state_json` can tell a
45
+ * projected settlement from an encoded one without guessing.
46
+ *
47
+ * @since 0.1.0
48
+ * @category constants
49
+ */
50
+ export declare const projectionTag = "flows/engine-store/UnencodableResult";
51
+ /**
52
+ * How many `cause` links a value projection follows before it stops.
53
+ *
54
+ * A provider failure nests two or three deep (`HarnessError` over
55
+ * `ModelError` over the transport error); the bound exists so a self-linking
56
+ * cause chain cannot make the projection unbounded.
57
+ *
58
+ * @since 0.1.0
59
+ * @category constants
60
+ */
61
+ export declare const maxCauseDepth = 4;
62
+ /**
63
+ * How many leading stack lines a value projection keeps.
64
+ *
65
+ * @since 0.1.0
66
+ * @category constants
67
+ */
68
+ export declare const maxStackLines = 4;
69
+ /**
70
+ * How many characters any single projected string keeps.
71
+ *
72
+ * @since 0.1.0
73
+ * @category constants
74
+ */
75
+ export declare const maxTextLength = 1024;
76
+ /**
77
+ * Maximum cause reasons retained by the terminal fallback.
78
+ *
79
+ * @category constants
80
+ * @since 1.0.0
81
+ */
82
+ export declare const maxReasonCount = 32;
83
+ /**
84
+ * Maximum serialized bytes retained by one fallback projection.
85
+ *
86
+ * @category constants
87
+ * @since 1.0.0
88
+ */
89
+ export declare const maxProjectionBytes: number;
90
+ /**
91
+ * A JSON-safe summary of one unencodable value.
92
+ *
93
+ * `type` is the constructor name for an object and the `typeof` for anything
94
+ * else, so `ModelError` and `"boom"` are distinguishable in the row.
95
+ *
96
+ * @since 0.1.0
97
+ * @category models
98
+ */
99
+ export interface ValueProjection {
100
+ readonly type: string;
101
+ readonly message: string;
102
+ readonly tag?: string;
103
+ readonly code?: string;
104
+ readonly stack?: string;
105
+ readonly cause?: ValueProjection;
106
+ }
107
+ /**
108
+ * A JSON-safe summary of one `Cause` reason.
109
+ *
110
+ * @since 0.1.0
111
+ * @category models
112
+ */
113
+ export interface ReasonProjection {
114
+ readonly _tag: "Fail" | "Die" | "Interrupt";
115
+ readonly error?: ValueProjection;
116
+ readonly fiberId?: number;
117
+ }
118
+ /**
119
+ * The record written in place of a settlement the flow's codec rejected.
120
+ *
121
+ * @since 0.1.0
122
+ * @category models
123
+ */
124
+ export interface ResultProjection {
125
+ readonly _tag: typeof projectionTag;
126
+ readonly result: "Complete" | "Suspended" | "Handoff";
127
+ readonly note: string;
128
+ readonly reasons: ReadonlyArray<ReasonProjection>;
129
+ readonly value: ValueProjection | null;
130
+ }
131
+ /**
132
+ * What {@link encode} produces: the bytes to persist, and — only when the
133
+ * flow's codec rejected the settlement — the note describing why.
134
+ *
135
+ * A present `note` is an instruction to the caller, not decoration: the run
136
+ * must reach a terminal `failed` row, because the alternative is the row this
137
+ * lane exists to abolish, a `running` row whose owner is gone.
138
+ *
139
+ * @since 0.1.0
140
+ * @category models
141
+ */
142
+ export interface EncodedResult {
143
+ readonly encoded: unknown;
144
+ readonly note: string | undefined;
145
+ }
146
+ /**
147
+ * Projects one value — a typed error, a defect, a success value, a handoff
148
+ * payload — into JSON.
149
+ *
150
+ * @since 0.1.0
151
+ * @category conversions
152
+ */
153
+ export declare const projectValue: (value: unknown, depth?: number, seen?: WeakSet<object>) => ValueProjection;
154
+ /**
155
+ * Projects every reason of a cause, in order. An absent cause — a
156
+ * `Flow.Suspended` that carries none — projects to no reasons.
157
+ *
158
+ * @since 0.1.0
159
+ * @category conversions
160
+ */
161
+ export declare const projectCause: (cause: Cause.Cause<unknown> | undefined) => ReadonlyArray<ReasonProjection>;
162
+ /**
163
+ * Projects a settlement the flow's codec rejected.
164
+ *
165
+ * @since 0.1.0
166
+ * @category conversions
167
+ */
168
+ export declare const projectResult: (result: Flow.Result<unknown, unknown>, note: string) => ResultProjection;
169
+ /**
170
+ * Encodes a round's settlement through the flow's own codec, and — when that
171
+ * codec rejects it — through a JSON projection instead.
172
+ *
173
+ * The returned effect has no error channel and dies for nothing: a caller on
174
+ * the terminal-transition path can always write the row it holds.
175
+ *
176
+ * @since 0.1.0
177
+ * @category conversions
178
+ */
179
+ export declare const encode: (flow: Flow.Any, result: Flow.Result<unknown, unknown>) => Effect.Effect<EncodedResult>;
180
+ //# sourceMappingURL=ExitEncoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExitEncoding.d.ts","sourceRoot":"","sources":["../../../src/internal/ExitEncoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAEnC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAcvC;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,yCAAyC,CAAA;AAEnE;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,aAAa,OAAO,CAAA;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,KAAK,CAAA;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAE3C;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,WAAW,CAAA;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,aAAa,CAAA;IACnC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IACjD,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAA;CACvC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAwDD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,EAAE,cAAS,EAAE,sBAA4B,KAAG,eAgDtF,CAAA;AAeD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,KACtC,aAAa,CAAC,gBAAgB,CAmBhC,CAAA;AAoBD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EACrC,MAAM,MAAM,KACX,gBAgDF,CAAA;AAuBD;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GACjB,MAAM,IAAI,CAAC,GAAG,EACd,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAiBK,CAAA"}
@@ -0,0 +1,236 @@
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 ExitEncoding_exports = {};
30
+ __export(ExitEncoding_exports, {
31
+ encode: () => encode,
32
+ maxCauseDepth: () => maxCauseDepth,
33
+ maxProjectionBytes: () => maxProjectionBytes,
34
+ maxReasonCount: () => maxReasonCount,
35
+ maxStackLines: () => maxStackLines,
36
+ maxTextLength: () => maxTextLength,
37
+ projectCause: () => projectCause,
38
+ projectResult: () => projectResult,
39
+ projectValue: () => projectValue,
40
+ projectionTag: () => projectionTag
41
+ });
42
+ module.exports = __toCommonJS(ExitEncoding_exports);
43
+ var import_flow = require("@smthrs/flow");
44
+ var import_journal = require("@smthrs/journal");
45
+ var Effect = __toESM(require("effect/Effect"), 1);
46
+ var Exit = __toESM(require("effect/Exit"), 1);
47
+ var Schema = __toESM(require("effect/Schema"), 1);
48
+ var HostReflection = __toESM(require("./HostReflection.js"), 1);
49
+ const { isNativeError, isProxy } = HostReflection.host;
50
+ const projectionTag = "flows/engine-store/UnencodableResult";
51
+ const maxCauseDepth = 4;
52
+ const maxStackLines = 4;
53
+ const maxTextLength = 1024;
54
+ const maxReasonCount = 32;
55
+ const maxProjectionBytes = 64 * 1024;
56
+ const truncate = (value, limit) => value.length <= limit ? value : `${value.slice(0, limit)}\u2026`;
57
+ const redactedText = (value) => truncate(import_journal.Redaction.redact(value), maxTextLength);
58
+ const text = (value) => {
59
+ switch (typeof value) {
60
+ case "string":
61
+ return JSON.stringify(value);
62
+ case "number":
63
+ return Number.isFinite(value) ? `${value}` : `[number]`;
64
+ case "boolean":
65
+ return value ? "true" : "false";
66
+ case "bigint":
67
+ return `[bigint]`;
68
+ case "undefined":
69
+ case "symbol":
70
+ case "function":
71
+ return `[${typeof value}]`;
72
+ case "object":
73
+ return value === null ? "null" : Array.isArray(value) ? "[array]" : "[object]";
74
+ }
75
+ };
76
+ const minimalValue = () => ({ type: "object", message: "[unrepresentable]" });
77
+ const ownData = (value, name) => {
78
+ const descriptor = Object.getOwnPropertyDescriptor(value, name);
79
+ return descriptor !== void 0 && "value" in descriptor ? descriptor.value : void 0;
80
+ };
81
+ const successExitPrototype = Object.getPrototypeOf(Exit.succeed(void 0));
82
+ const failureExitPrototype = Object.getPrototypeOf(Exit.fail(void 0));
83
+ const exitArguments = "~effect/Effect/args";
84
+ const projectValue = (value, depth = 0, seen = /* @__PURE__ */ new WeakSet()) => {
85
+ if (value === null || typeof value !== "object") {
86
+ return {
87
+ type: value === null ? "null" : typeof value,
88
+ message: redactedText(text(value))
89
+ };
90
+ }
91
+ if (isProxy(value) || seen.has(value)) return minimalValue();
92
+ seen.add(value);
93
+ try {
94
+ const message = ownData(value, "message");
95
+ const tag = ownData(value, "_tag");
96
+ const code = ownData(value, "code");
97
+ const stack = ownData(value, "stack");
98
+ const cause = ownData(value, "cause");
99
+ const projection = {
100
+ type: typeof tag === "string" && tag.length > 0 ? truncate(tag, maxTextLength) : isNativeError(value) ? "Error" : Array.isArray(value) ? "Array" : "object",
101
+ message: redactedText(typeof message === "string" ? message : text(value))
102
+ };
103
+ if (typeof tag === "string") projection.tag = truncate(tag, maxTextLength);
104
+ if (typeof code === "string") projection.code = truncate(code, maxTextLength);
105
+ if (typeof stack === "string") {
106
+ projection.stack = redactedText(stack.split("\n").slice(0, maxStackLines).join("\n"));
107
+ }
108
+ if (cause !== void 0 && depth < maxCauseDepth) {
109
+ projection.cause = projectValue(cause, depth + 1, seen);
110
+ }
111
+ return projection;
112
+ } catch {
113
+ return minimalValue();
114
+ }
115
+ };
116
+ const projectReason = (reason) => {
117
+ if (isProxy(reason)) return { _tag: "Die", error: minimalValue() };
118
+ try {
119
+ const tag = ownData(reason, "_tag");
120
+ if (tag === "Fail") return { _tag: "Fail", error: projectValue(ownData(reason, "error")) };
121
+ if (tag === "Die") return { _tag: "Die", error: projectValue(ownData(reason, "defect")) };
122
+ const fiberId = ownData(reason, "fiberId");
123
+ return typeof fiberId === "number" ? { _tag: "Interrupt", fiberId } : { _tag: "Interrupt" };
124
+ } catch {
125
+ return { _tag: "Die", error: minimalValue() };
126
+ }
127
+ };
128
+ const projectCause = (cause) => {
129
+ if (cause === void 0) return [];
130
+ if (isProxy(cause)) return [{ _tag: "Die", error: minimalValue() }];
131
+ try {
132
+ const reasons = ownData(cause, "reasons");
133
+ if (!Array.isArray(reasons) || isProxy(reasons)) {
134
+ return [{ _tag: "Die", error: minimalValue() }];
135
+ }
136
+ const projected = reasons.slice(0, maxReasonCount).map(projectReason);
137
+ if (reasons.length > maxReasonCount) {
138
+ projected.push({
139
+ _tag: "Die",
140
+ error: { type: "truncated", message: `[${reasons.length - maxReasonCount} reasons omitted]` }
141
+ });
142
+ }
143
+ return projected;
144
+ } catch {
145
+ return [{ _tag: "Die", error: minimalValue() }];
146
+ }
147
+ };
148
+ const minimalResult = (note) => ({
149
+ _tag: projectionTag,
150
+ result: "Complete",
151
+ note,
152
+ reasons: [{ _tag: "Die", error: minimalValue() }],
153
+ value: null
154
+ });
155
+ const withinBudget = (projection) => {
156
+ try {
157
+ return new TextEncoder().encode(JSON.stringify(projection)).length <= maxProjectionBytes ? projection : minimalResult("the rejected settlement exceeded the diagnostic projection bound");
158
+ } catch {
159
+ return minimalResult("the rejected settlement could not be projected");
160
+ }
161
+ };
162
+ const projectResult = (result, note) => {
163
+ note = truncate(note, maxTextLength);
164
+ if (isProxy(result)) return minimalResult(note);
165
+ try {
166
+ const tag = ownData(result, "_tag");
167
+ if (tag === "Suspended") {
168
+ return withinBudget({
169
+ _tag: projectionTag,
170
+ result: "Suspended",
171
+ note,
172
+ reasons: projectCause(ownData(result, "cause")),
173
+ value: null
174
+ });
175
+ }
176
+ if (tag === "Handoff") {
177
+ return withinBudget({
178
+ _tag: projectionTag,
179
+ result: "Handoff",
180
+ note,
181
+ reasons: [],
182
+ value: projectValue(ownData(result, "payload"))
183
+ });
184
+ }
185
+ const exit = ownData(result, "exit");
186
+ if (typeof exit !== "object" || exit === null || isProxy(exit)) return minimalResult(note);
187
+ const prototype = Object.getPrototypeOf(exit);
188
+ const argument = ownData(exit, exitArguments);
189
+ if (prototype !== successExitPrototype && prototype !== failureExitPrototype) return minimalResult(note);
190
+ return withinBudget(
191
+ prototype === successExitPrototype ? {
192
+ _tag: projectionTag,
193
+ result: "Complete",
194
+ note,
195
+ reasons: [],
196
+ value: projectValue(argument)
197
+ } : {
198
+ _tag: projectionTag,
199
+ result: "Complete",
200
+ note,
201
+ reasons: projectCause(argument),
202
+ value: null
203
+ }
204
+ );
205
+ } catch {
206
+ return minimalResult(note);
207
+ }
208
+ };
209
+ const degrade = (result, projection) => {
210
+ try {
211
+ if (!isProxy(result) && ownData(result, "_tag") === "Handoff") {
212
+ const flow = ownData(result, "flow");
213
+ if (typeof flow === "string") return { _tag: "Handoff", flow, payload: projection, capabilityCeilings: [[]] };
214
+ }
215
+ } catch {
216
+ }
217
+ return { _tag: "Complete", exit: { _tag: "Failure", cause: [{ _tag: "Die", defect: projection }] } };
218
+ };
219
+ const encode = (flow, result) => Schema.encodeEffect(
220
+ Schema.toCodecJson(import_flow.Flow.Result({
221
+ success: flow.successSchema,
222
+ error: flow.errorSchema
223
+ }))
224
+ )(result).pipe(
225
+ Effect.map((encoded) => ({ encoded, note: void 0 })),
226
+ Effect.catchCause((_cause) => {
227
+ const note = "the flow result codec rejected the settlement";
228
+ return Effect.as(
229
+ Effect.logWarning(
230
+ `engine-store: the settlement of ${flow._tag} could not be encoded through its own codec; persisting a JSON projection so the run still settles`
231
+ ),
232
+ { encoded: degrade(result, projectResult(result, note)), note }
233
+ );
234
+ })
235
+ );
236
+ //# sourceMappingURL=ExitEncoding.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/ExitEncoding.ts"],
4
+ "sourcesContent": ["/**\n * Encoding a round's settlement so a terminal transition can never be lost.\n *\n * A run row leaves `running` only when the driver has bytes to write into\n * `state_json`, and those bytes come from the flow's OWN codec:\n * `Flow.Result({ success: flow.successSchema, error: flow.errorSchema })`.\n * A flow that declares `Schema.Unknown` for either channel \u2014 which is what\n * `@smthrs/agent`'s `agent/run` declares, because an agent run carries\n * whatever its body failed with \u2014 encodes that channel through `Schema.Json`,\n * and `Schema.Json` rejects every class instance: `SchemaAST.isJson` walks the\n * prototype chain and refuses anything that is not a plain object or an array.\n * Every `Data.TaggedError` in this repository is therefore unencodable through\n * such a flow, `HarnessError` and `ModelError` included.\n *\n * Guarding the terminal transition with `Effect.orDie` around that encode made\n * an unencodable failure fatal for the drain instead of terminal for the run.\n * The release validation caught the whole chain: `engine-store: coordinated\n * drain failed for run-1 SchemaError: Expected JSON value at\n * [\"exit\"][\"cause\"][0][\"error\"]`, `engine.db` `flows_runs` left at `running`\n * with a dead owner pid while `control.db` said `failed`, and 86 seconds later\n * the next process's stale-running sweep stole the row, opened a second turn,\n * and billed the provider seat again for a run the control plane had closed.\n *\n * So the encode fails CLOSED here rather than open. The ordinary path is the\n * flow's own codec, unchanged. When that codec rejects the value, the result\n * is still written \u2014 as a JSON projection of what could not be encoded (tag,\n * code, message, a stack summary, and nested causes) inside a `Die` reason \u2014\n * and the caller is told, through {@link EncodedResult.note}, that it must\n * settle the run `failed`. A settled run is never re-executed, which is the\n * durability promise the release policy states as one terminal write.\n *\n * The projection is built as plain JSON rather than re-encoded through a\n * schema, so nothing in this module can raise. Its top-level object carries no\n * `message` key on purpose: `Schema.Defect` revives any JSON object that has a\n * string `message` as an `Error`, and a projection has to come back out of the\n * row as the structured record it went in as.\n *\n * @since 0.1.0\n */\n\nimport { Flow } from \"@smthrs/flow\"\nimport { Redaction } from \"@smthrs/journal\"\nimport type * as Cause from \"effect/Cause\"\nimport * as Effect from \"effect/Effect\"\nimport * as Exit from \"effect/Exit\"\nimport * as Schema from \"effect/Schema\"\nimport * as HostReflection from \"./HostReflection.ts\"\n\n/**\n * Proxy and native-error detection, taken from the host that can answer them.\n *\n * `./HostReflection.ts` states why these are host predicates rather than a\n * `node:util/types` import: the module has to bundle for a browser, and only\n * some hosts can name a proxy at all.\n */\nconst { isNativeError, isProxy } = HostReflection.host\n\n/**\n * The `_tag` every projection carries, so a reader of `state_json` can tell a\n * projected settlement from an encoded one without guessing.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const projectionTag = \"flows/engine-store/UnencodableResult\"\n\n/**\n * How many `cause` links a value projection follows before it stops.\n *\n * A provider failure nests two or three deep (`HarnessError` over\n * `ModelError` over the transport error); the bound exists so a self-linking\n * cause chain cannot make the projection unbounded.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const maxCauseDepth = 4\n\n/**\n * How many leading stack lines a value projection keeps.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const maxStackLines = 4\n\n/**\n * How many characters any single projected string keeps.\n *\n * @since 0.1.0\n * @category constants\n */\nexport const maxTextLength = 1024\n\n/**\n * Maximum cause reasons retained by the terminal fallback.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const maxReasonCount = 32\n\n/**\n * Maximum serialized bytes retained by one fallback projection.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const maxProjectionBytes = 64 * 1024\n\n/**\n * A JSON-safe summary of one unencodable value.\n *\n * `type` is the constructor name for an object and the `typeof` for anything\n * else, so `ModelError` and `\"boom\"` are distinguishable in the row.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ValueProjection {\n readonly type: string\n readonly message: string\n readonly tag?: string\n readonly code?: string\n readonly stack?: string\n readonly cause?: ValueProjection\n}\n\n/**\n * A JSON-safe summary of one `Cause` reason.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ReasonProjection {\n readonly _tag: \"Fail\" | \"Die\" | \"Interrupt\"\n readonly error?: ValueProjection\n readonly fiberId?: number\n}\n\n/**\n * The record written in place of a settlement the flow's codec rejected.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface ResultProjection {\n readonly _tag: typeof projectionTag\n readonly result: \"Complete\" | \"Suspended\" | \"Handoff\"\n readonly note: string\n readonly reasons: ReadonlyArray<ReasonProjection>\n readonly value: ValueProjection | null\n}\n\n/**\n * What {@link encode} produces: the bytes to persist, and \u2014 only when the\n * flow's codec rejected the settlement \u2014 the note describing why.\n *\n * A present `note` is an instruction to the caller, not decoration: the run\n * must reach a terminal `failed` row, because the alternative is the row this\n * lane exists to abolish, a `running` row whose owner is gone.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface EncodedResult {\n readonly encoded: unknown\n readonly note: string | undefined\n}\n\nconst truncate = (value: string, limit: number): string => value.length <= limit ? value : `${value.slice(0, limit)}\u2026`\n\n/**\n * Bounds one projected message or stack after the journal's redaction rules.\n *\n * The projection is observability text in `flows_runs.state_json`, and a git or\n * HTTP failure message embeds its remote URL, credentials included. Redaction\n * runs before truncation so a cut cannot leave half a credential the rules no\n * longer match.\n */\nconst redactedText = (value: string): string => truncate(Redaction.redact(value) as string, maxTextLength)\n\n/**\n * Renders any value as a bounded string without raising.\n *\n * `JSON.stringify` answers `undefined` for a function, a symbol, and\n * `undefined` itself, and throws on a circular structure; both are answered\n * with a shape marker rather than propagated, because this module runs on the\n * path that must never fail.\n */\nconst text = (value: unknown): string => {\n switch (typeof value) {\n case \"string\":\n return JSON.stringify(value)\n case \"number\":\n return Number.isFinite(value) ? `${value}` : `[number]`\n case \"boolean\":\n return value ? \"true\" : \"false\"\n case \"bigint\":\n return `[bigint]`\n case \"undefined\":\n case \"symbol\":\n case \"function\":\n return `[${typeof value}]`\n case \"object\":\n return value === null ? \"null\" : Array.isArray(value) ? \"[array]\" : \"[object]\"\n }\n}\n\nconst minimalValue = (): ValueProjection => ({ type: \"object\", message: \"[unrepresentable]\" })\n\n/** Reads only an own data property; accessors are deliberately inert. */\nconst ownData = (value: object, name: PropertyKey): unknown => {\n const descriptor = Object.getOwnPropertyDescriptor(value, name)\n return descriptor !== undefined && \"value\" in descriptor ? descriptor.value : undefined\n}\n\n// Effect exits store their value/cause in one own data slot. Pinning the two\n// library prototypes lets projection read that slot without invoking the\n// public `value` / `cause` accessors or trusting a lookalike object.\nconst successExitPrototype = Object.getPrototypeOf(Exit.succeed(undefined))\nconst failureExitPrototype = Object.getPrototypeOf(Exit.fail(undefined))\nconst exitArguments = \"~effect/Effect/args\"\n\n/**\n * Projects one value \u2014 a typed error, a defect, a success value, a handoff\n * payload \u2014 into JSON.\n *\n * @since 0.1.0\n * @category conversions\n */\nexport const projectValue = (value: unknown, depth = 0, seen = new WeakSet<object>()): ValueProjection => {\n if (value === null || typeof value !== \"object\") {\n return {\n type: value === null ? \"null\" : typeof value,\n message: redactedText(text(value))\n }\n }\n // Generic Proxy introspection is observable user code. A host that can name\n // a proxy from its internal slot rejects it without invoking a trap.\n if (isProxy(value) || seen.has(value)) return minimalValue()\n seen.add(value)\n try {\n const message = ownData(value, \"message\")\n const tag = ownData(value, \"_tag\")\n const code = ownData(value, \"code\")\n const stack = ownData(value, \"stack\")\n const cause = ownData(value, \"cause\")\n const projection: {\n type: string\n message: string\n tag?: string\n code?: string\n stack?: string\n cause?: ValueProjection\n } = {\n type: typeof tag === \"string\" && tag.length > 0\n ? truncate(tag, maxTextLength)\n : isNativeError(value)\n ? \"Error\"\n : Array.isArray(value)\n ? \"Array\"\n : \"object\",\n message: redactedText(typeof message === \"string\" ? message : text(value))\n }\n if (typeof tag === \"string\") projection.tag = truncate(tag, maxTextLength)\n if (typeof code === \"string\") projection.code = truncate(code, maxTextLength)\n // Native Error stacks are commonly accessors. They remain deliberately\n // unread; only an already-materialized own data string is retained.\n if (typeof stack === \"string\") {\n projection.stack = redactedText(stack.split(\"\\n\").slice(0, maxStackLines).join(\"\\n\"))\n }\n if (cause !== undefined && depth < maxCauseDepth) {\n projection.cause = projectValue(cause, depth + 1, seen)\n }\n return projection\n } catch {\n return minimalValue()\n }\n}\n\nconst projectReason = (reason: Cause.Reason<unknown>): ReasonProjection => {\n if (isProxy(reason)) return { _tag: \"Die\", error: minimalValue() }\n try {\n const tag = ownData(reason, \"_tag\")\n if (tag === \"Fail\") return { _tag: \"Fail\", error: projectValue(ownData(reason, \"error\")) }\n if (tag === \"Die\") return { _tag: \"Die\", error: projectValue(ownData(reason, \"defect\")) }\n const fiberId = ownData(reason, \"fiberId\")\n return typeof fiberId === \"number\" ? { _tag: \"Interrupt\", fiberId } : { _tag: \"Interrupt\" }\n } catch {\n return { _tag: \"Die\", error: minimalValue() }\n }\n}\n\n/**\n * Projects every reason of a cause, in order. An absent cause \u2014 a\n * `Flow.Suspended` that carries none \u2014 projects to no reasons.\n *\n * @since 0.1.0\n * @category conversions\n */\nexport const projectCause = (\n cause: Cause.Cause<unknown> | undefined\n): ReadonlyArray<ReasonProjection> => {\n if (cause === undefined) return []\n if (isProxy(cause)) return [{ _tag: \"Die\", error: minimalValue() }]\n try {\n const reasons = ownData(cause, \"reasons\")\n if (!Array.isArray(reasons) || isProxy(reasons)) {\n return [{ _tag: \"Die\", error: minimalValue() }]\n }\n const projected = reasons.slice(0, maxReasonCount).map(projectReason)\n if (reasons.length > maxReasonCount) {\n projected.push({\n _tag: \"Die\",\n error: { type: \"truncated\", message: `[${reasons.length - maxReasonCount} reasons omitted]` }\n })\n }\n return projected\n } catch {\n return [{ _tag: \"Die\", error: minimalValue() }]\n }\n}\n\nconst minimalResult = (note: string): ResultProjection => ({\n _tag: projectionTag,\n result: \"Complete\",\n note,\n reasons: [{ _tag: \"Die\", error: minimalValue() }],\n value: null\n})\n\nconst withinBudget = (projection: ResultProjection): ResultProjection => {\n try {\n return new TextEncoder().encode(JSON.stringify(projection)).length <= maxProjectionBytes\n ? projection\n : minimalResult(\"the rejected settlement exceeded the diagnostic projection bound\")\n } catch {\n return minimalResult(\"the rejected settlement could not be projected\")\n }\n}\n\n/**\n * Projects a settlement the flow's codec rejected.\n *\n * @since 0.1.0\n * @category conversions\n */\nexport const projectResult = (\n result: Flow.Result<unknown, unknown>,\n note: string\n): ResultProjection => {\n note = truncate(note, maxTextLength)\n if (isProxy(result)) return minimalResult(note)\n try {\n const tag = ownData(result, \"_tag\")\n if (tag === \"Suspended\") {\n return withinBudget({\n _tag: projectionTag,\n result: \"Suspended\",\n note,\n reasons: projectCause(ownData(result, \"cause\") as Cause.Cause<unknown> | undefined),\n value: null\n })\n }\n if (tag === \"Handoff\") {\n return withinBudget({\n _tag: projectionTag,\n result: \"Handoff\",\n note,\n reasons: [],\n value: projectValue(ownData(result, \"payload\"))\n })\n }\n const exit = ownData(result, \"exit\")\n if (typeof exit !== \"object\" || exit === null || isProxy(exit)) return minimalResult(note)\n const prototype = Object.getPrototypeOf(exit)\n const argument = ownData(exit, exitArguments)\n if (prototype !== successExitPrototype && prototype !== failureExitPrototype) return minimalResult(note)\n return withinBudget(\n prototype === successExitPrototype\n ? {\n _tag: projectionTag,\n result: \"Complete\",\n note,\n reasons: [],\n value: projectValue(argument)\n }\n : {\n _tag: projectionTag,\n result: \"Complete\",\n note,\n reasons: projectCause(argument as Cause.Cause<unknown> | undefined),\n value: null\n }\n )\n } catch {\n return minimalResult(note)\n }\n}\n\n/**\n * The encoded settlement written in place of one the codec rejected.\n *\n * A `Handoff` keeps its own shape, because its round settles `completed` with\n * a successor already created and the lineage has to stay readable. Everything\n * else becomes a failed `Complete`: a settlement whose bytes the codec refuses\n * is not resumable and not answerable, so the only honest durable record is\n * that the round failed, with the projection as its defect.\n */\nconst degrade = (result: Flow.Result<unknown, unknown>, projection: ResultProjection): unknown => {\n try {\n if (!isProxy(result) && ownData(result, \"_tag\") === \"Handoff\") {\n const flow = ownData(result, \"flow\")\n if (typeof flow === \"string\") return { _tag: \"Handoff\", flow, payload: projection, capabilityCeilings: [[]] }\n }\n } catch {\n // The terminal Complete below is the fail-closed representation.\n }\n return { _tag: \"Complete\", exit: { _tag: \"Failure\", cause: [{ _tag: \"Die\", defect: projection }] } }\n}\n\n/**\n * Encodes a round's settlement through the flow's own codec, and \u2014 when that\n * codec rejects it \u2014 through a JSON projection instead.\n *\n * The returned effect has no error channel and dies for nothing: a caller on\n * the terminal-transition path can always write the row it holds.\n *\n * @since 0.1.0\n * @category conversions\n */\nexport const encode = (\n flow: Flow.Any,\n result: Flow.Result<unknown, unknown>\n): Effect.Effect<EncodedResult> =>\n Schema.encodeEffect(\n Schema.toCodecJson(Flow.Result({\n success: flow.successSchema,\n error: flow.errorSchema\n }))\n )(result).pipe(\n Effect.map((encoded): EncodedResult => ({ encoded, note: undefined })),\n Effect.catchCause((_cause) => {\n const note = \"the flow result codec rejected the settlement\"\n return Effect.as(\n Effect.logWarning(\n `engine-store: the settlement of ${flow._tag} could not be encoded through its own codec; persisting a JSON projection so the run still settles`\n ),\n { encoded: degrade(result, projectResult(result, note)), note } satisfies EncodedResult\n )\n })\n ) as Effect.Effect<EncodedResult>\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Immutable snapshots of filesystem declarations crossing an async boundary.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import type { FileBoundary } from "@smthrs/flow/FileBoundary";
7
+ /**
8
+ * Copies and freezes every mutable member of a boundary declaration.
9
+ *
10
+ * @category constructors
11
+ * @since 1.0.0
12
+ */
13
+ export declare const make: (boundary: FileBoundary) => FileBoundary;
14
+ //# sourceMappingURL=FileBoundarySnapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileBoundarySnapshot.d.ts","sourceRoot":"","sources":["../../../src/internal/FileBoundarySnapshot.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAY7D;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,UAAU,YAAY,KAAG,YAc1C,CAAA"}