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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (787) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/LICENSE +21 -0
  3. package/README.md +146 -2
  4. package/dist/cjs/ArtifactGc.d.ts +235 -0
  5. package/dist/cjs/ArtifactGc.d.ts.map +1 -0
  6. package/dist/cjs/ArtifactGc.js +183 -0
  7. package/dist/cjs/ArtifactGc.js.map +7 -0
  8. package/dist/cjs/ArtifactSync.d.ts +164 -0
  9. package/dist/cjs/ArtifactSync.d.ts.map +1 -0
  10. package/dist/cjs/ArtifactSync.js +144 -0
  11. package/dist/cjs/ArtifactSync.js.map +7 -0
  12. package/dist/cjs/CacheSync.d.ts +112 -0
  13. package/dist/cjs/CacheSync.d.ts.map +1 -0
  14. package/dist/cjs/CacheSync.js +64 -0
  15. package/dist/cjs/CacheSync.js.map +7 -0
  16. package/dist/cjs/DeferredClockFold.d.ts +354 -0
  17. package/dist/cjs/DeferredClockFold.d.ts.map +1 -0
  18. package/dist/cjs/DeferredClockFold.js +335 -0
  19. package/dist/cjs/DeferredClockFold.js.map +7 -0
  20. package/dist/cjs/DisasterRecovery.d.ts +431 -0
  21. package/dist/cjs/DisasterRecovery.d.ts.map +1 -0
  22. package/dist/cjs/DisasterRecovery.js +453 -0
  23. package/dist/cjs/DisasterRecovery.js.map +7 -0
  24. package/dist/cjs/DurableEngineState.d.ts +776 -0
  25. package/dist/cjs/DurableEngineState.d.ts.map +1 -0
  26. package/dist/cjs/DurableEngineState.js +1536 -0
  27. package/dist/cjs/DurableEngineState.js.map +7 -0
  28. package/dist/cjs/EngineStore.d.ts +158 -0
  29. package/dist/cjs/EngineStore.d.ts.map +1 -0
  30. package/dist/cjs/EngineStore.js +398 -0
  31. package/dist/cjs/EngineStore.js.map +7 -0
  32. package/dist/cjs/EngineStoreMetrics.d.ts +276 -0
  33. package/dist/cjs/EngineStoreMetrics.d.ts.map +1 -0
  34. package/dist/cjs/EngineStoreMetrics.js +135 -0
  35. package/dist/cjs/EngineStoreMetrics.js.map +7 -0
  36. package/dist/cjs/Errors.d.ts +22 -0
  37. package/dist/cjs/Errors.d.ts.map +1 -0
  38. package/dist/cjs/Errors.js +39 -0
  39. package/dist/cjs/Errors.js.map +7 -0
  40. package/dist/cjs/EventTypes.d.ts +27 -0
  41. package/dist/cjs/EventTypes.d.ts.map +1 -0
  42. package/dist/cjs/EventTypes.js +37 -0
  43. package/dist/cjs/EventTypes.js.map +7 -0
  44. package/dist/cjs/ExecutionFacts.d.ts +59 -0
  45. package/dist/cjs/ExecutionFacts.d.ts.map +1 -0
  46. package/dist/cjs/ExecutionFacts.js +123 -0
  47. package/dist/cjs/ExecutionFacts.js.map +7 -0
  48. package/dist/cjs/ExecutionSnapshot.d.ts +117 -0
  49. package/dist/cjs/ExecutionSnapshot.d.ts.map +1 -0
  50. package/dist/cjs/ExecutionSnapshot.js +111 -0
  51. package/dist/cjs/ExecutionSnapshot.js.map +7 -0
  52. package/dist/cjs/Inconsistency.d.ts +154 -0
  53. package/dist/cjs/Inconsistency.d.ts.map +1 -0
  54. package/dist/cjs/Inconsistency.js +135 -0
  55. package/dist/cjs/Inconsistency.js.map +7 -0
  56. package/dist/cjs/Migrations.d.ts +56 -0
  57. package/dist/cjs/Migrations.d.ts.map +1 -0
  58. package/dist/cjs/Migrations.js +78 -0
  59. package/dist/cjs/Migrations.js.map +7 -0
  60. package/dist/cjs/OwnerIdentity.d.ts +91 -0
  61. package/dist/cjs/OwnerIdentity.d.ts.map +1 -0
  62. package/dist/cjs/OwnerIdentity.js +65 -0
  63. package/dist/cjs/OwnerIdentity.js.map +7 -0
  64. package/dist/cjs/PlanInputStore.d.ts +110 -0
  65. package/dist/cjs/PlanInputStore.d.ts.map +1 -0
  66. package/dist/cjs/PlanInputStore.js +224 -0
  67. package/dist/cjs/PlanInputStore.js.map +7 -0
  68. package/dist/cjs/PlanMergeStore.d.ts +113 -0
  69. package/dist/cjs/PlanMergeStore.d.ts.map +1 -0
  70. package/dist/cjs/PlanMergeStore.js +255 -0
  71. package/dist/cjs/PlanMergeStore.js.map +7 -0
  72. package/dist/cjs/PlanScheduler.d.ts +363 -0
  73. package/dist/cjs/PlanScheduler.d.ts.map +1 -0
  74. package/dist/cjs/PlanScheduler.js +1090 -0
  75. package/dist/cjs/PlanScheduler.js.map +7 -0
  76. package/dist/cjs/Reconciliation.d.ts +175 -0
  77. package/dist/cjs/Reconciliation.d.ts.map +1 -0
  78. package/dist/cjs/Reconciliation.js +119 -0
  79. package/dist/cjs/Reconciliation.js.map +7 -0
  80. package/dist/cjs/ReplayOnly.d.ts +91 -0
  81. package/dist/cjs/ReplayOnly.d.ts.map +1 -0
  82. package/dist/cjs/ReplayOnly.js +52 -0
  83. package/dist/cjs/ReplayOnly.js.map +7 -0
  84. package/dist/cjs/Retention.d.ts +113 -0
  85. package/dist/cjs/Retention.d.ts.map +1 -0
  86. package/dist/cjs/Retention.js +99 -0
  87. package/dist/cjs/Retention.js.map +7 -0
  88. package/dist/cjs/RunCatalogRead.d.ts +17 -0
  89. package/dist/cjs/RunCatalogRead.d.ts.map +1 -0
  90. package/dist/cjs/RunCatalogRead.js +33 -0
  91. package/dist/cjs/RunCatalogRead.js.map +7 -0
  92. package/dist/cjs/RunChangeFeed.d.ts +75 -0
  93. package/dist/cjs/RunChangeFeed.d.ts.map +1 -0
  94. package/dist/cjs/RunChangeFeed.js +96 -0
  95. package/dist/cjs/RunChangeFeed.js.map +7 -0
  96. package/dist/cjs/RunState.d.ts +116 -0
  97. package/dist/cjs/RunState.d.ts.map +1 -0
  98. package/dist/cjs/RunState.js +76 -0
  99. package/dist/cjs/RunState.js.map +7 -0
  100. package/dist/cjs/Selection.d.ts +495 -0
  101. package/dist/cjs/Selection.d.ts.map +1 -0
  102. package/dist/cjs/Selection.js +288 -0
  103. package/dist/cjs/Selection.js.map +7 -0
  104. package/dist/cjs/SelectionStore.d.ts +141 -0
  105. package/dist/cjs/SelectionStore.d.ts.map +1 -0
  106. package/dist/cjs/SelectionStore.js +229 -0
  107. package/dist/cjs/SelectionStore.js.map +7 -0
  108. package/dist/cjs/StepBoundary.d.ts +501 -0
  109. package/dist/cjs/StepBoundary.d.ts.map +1 -0
  110. package/dist/cjs/StepBoundary.js +619 -0
  111. package/dist/cjs/StepBoundary.js.map +7 -0
  112. package/dist/cjs/StepCacheFold.d.ts +148 -0
  113. package/dist/cjs/StepCacheFold.d.ts.map +1 -0
  114. package/dist/cjs/StepCacheFold.js +131 -0
  115. package/dist/cjs/StepCacheFold.js.map +7 -0
  116. package/dist/cjs/StepSandbox.d.ts +78 -0
  117. package/dist/cjs/StepSandbox.d.ts.map +1 -0
  118. package/dist/cjs/StepSandbox.js +75 -0
  119. package/dist/cjs/StepSandbox.js.map +7 -0
  120. package/dist/cjs/WakeBus.d.ts +116 -0
  121. package/dist/cjs/WakeBus.d.ts.map +1 -0
  122. package/dist/cjs/WakeBus.js +89 -0
  123. package/dist/cjs/WakeBus.js.map +7 -0
  124. package/dist/cjs/WorkspaceSandbox.d.ts +619 -0
  125. package/dist/cjs/WorkspaceSandbox.d.ts.map +1 -0
  126. package/dist/cjs/WorkspaceSandbox.js +711 -0
  127. package/dist/cjs/WorkspaceSandbox.js.map +7 -0
  128. package/dist/cjs/index.d.ts +157 -0
  129. package/dist/cjs/index.d.ts.map +1 -0
  130. package/dist/cjs/index.js +95 -0
  131. package/dist/cjs/index.js.map +7 -0
  132. package/dist/cjs/internal/ActionPersistence.d.ts +276 -0
  133. package/dist/cjs/internal/ActionPersistence.d.ts.map +1 -0
  134. package/dist/cjs/internal/ActionPersistence.js +1395 -0
  135. package/dist/cjs/internal/ActionPersistence.js.map +7 -0
  136. package/dist/cjs/internal/ArtifactRoots.d.ts +38 -0
  137. package/dist/cjs/internal/ArtifactRoots.d.ts.map +1 -0
  138. package/dist/cjs/internal/ArtifactRoots.js +89 -0
  139. package/dist/cjs/internal/ArtifactRoots.js.map +7 -0
  140. package/dist/cjs/internal/AttemptAdmission.d.ts +53 -0
  141. package/dist/cjs/internal/AttemptAdmission.d.ts.map +1 -0
  142. package/dist/cjs/internal/AttemptAdmission.js +52 -0
  143. package/dist/cjs/internal/AttemptAdmission.js.map +7 -0
  144. package/dist/cjs/internal/AttemptLifecycle.d.ts +245 -0
  145. package/dist/cjs/internal/AttemptLifecycle.d.ts.map +1 -0
  146. package/dist/cjs/internal/AttemptLifecycle.js +112 -0
  147. package/dist/cjs/internal/AttemptLifecycle.js.map +7 -0
  148. package/dist/cjs/internal/AttemptProbe.d.ts +53 -0
  149. package/dist/cjs/internal/AttemptProbe.d.ts.map +1 -0
  150. package/dist/cjs/internal/AttemptProbe.js +66 -0
  151. package/dist/cjs/internal/AttemptProbe.js.map +7 -0
  152. package/dist/cjs/internal/CacheAdmission.d.ts +79 -0
  153. package/dist/cjs/internal/CacheAdmission.d.ts.map +1 -0
  154. package/dist/cjs/internal/CacheAdmission.js +71 -0
  155. package/dist/cjs/internal/CacheAdmission.js.map +7 -0
  156. package/dist/cjs/internal/CacheAgeHistory.d.ts +27 -0
  157. package/dist/cjs/internal/CacheAgeHistory.d.ts.map +1 -0
  158. package/dist/cjs/internal/CacheAgeHistory.js +61 -0
  159. package/dist/cjs/internal/CacheAgeHistory.js.map +7 -0
  160. package/dist/cjs/internal/CacheAgeVerdicts.d.ts +15 -0
  161. package/dist/cjs/internal/CacheAgeVerdicts.d.ts.map +1 -0
  162. package/dist/cjs/internal/CacheAgeVerdicts.js +73 -0
  163. package/dist/cjs/internal/CacheAgeVerdicts.js.map +7 -0
  164. package/dist/cjs/internal/CacheOutputPolicy.d.ts +24 -0
  165. package/dist/cjs/internal/CacheOutputPolicy.d.ts.map +1 -0
  166. package/dist/cjs/internal/CacheOutputPolicy.js +75 -0
  167. package/dist/cjs/internal/CacheOutputPolicy.js.map +7 -0
  168. package/dist/cjs/internal/CachePublication.d.ts +97 -0
  169. package/dist/cjs/internal/CachePublication.d.ts.map +1 -0
  170. package/dist/cjs/internal/CachePublication.js +80 -0
  171. package/dist/cjs/internal/CachePublication.js.map +7 -0
  172. package/dist/cjs/internal/CallFacts.d.ts +15 -0
  173. package/dist/cjs/internal/CallFacts.d.ts.map +1 -0
  174. package/dist/cjs/internal/CallFacts.js +97 -0
  175. package/dist/cjs/internal/CallFacts.js.map +7 -0
  176. package/dist/cjs/internal/CopiedRecord.d.ts +61 -0
  177. package/dist/cjs/internal/CopiedRecord.d.ts.map +1 -0
  178. package/dist/cjs/internal/CopiedRecord.js +134 -0
  179. package/dist/cjs/internal/CopiedRecord.js.map +7 -0
  180. package/dist/cjs/internal/DeferredPersistence.d.ts +108 -0
  181. package/dist/cjs/internal/DeferredPersistence.d.ts.map +1 -0
  182. package/dist/cjs/internal/DeferredPersistence.js +270 -0
  183. package/dist/cjs/internal/DeferredPersistence.js.map +7 -0
  184. package/dist/cjs/internal/EffectRecords.d.ts +92 -0
  185. package/dist/cjs/internal/EffectRecords.d.ts.map +1 -0
  186. package/dist/cjs/internal/EffectRecords.js +63 -0
  187. package/dist/cjs/internal/EffectRecords.js.map +7 -0
  188. package/dist/cjs/internal/EngineJj.d.ts +30 -0
  189. package/dist/cjs/internal/EngineJj.d.ts.map +1 -0
  190. package/dist/cjs/internal/EngineJj.js +42 -0
  191. package/dist/cjs/internal/EngineJj.js.map +7 -0
  192. package/dist/cjs/internal/EngineStateSchema.d.ts +68 -0
  193. package/dist/cjs/internal/EngineStateSchema.d.ts.map +1 -0
  194. package/dist/cjs/internal/EngineStateSchema.js +58 -0
  195. package/dist/cjs/internal/EngineStateSchema.js.map +7 -0
  196. package/dist/cjs/internal/ExecutionSnapshotRead.d.ts +162 -0
  197. package/dist/cjs/internal/ExecutionSnapshotRead.d.ts.map +1 -0
  198. package/dist/cjs/internal/ExecutionSnapshotRead.js +199 -0
  199. package/dist/cjs/internal/ExecutionSnapshotRead.js.map +7 -0
  200. package/dist/cjs/internal/ExecutionSnapshotRelations.d.ts +39 -0
  201. package/dist/cjs/internal/ExecutionSnapshotRelations.d.ts.map +1 -0
  202. package/dist/cjs/internal/ExecutionSnapshotRelations.js +105 -0
  203. package/dist/cjs/internal/ExecutionSnapshotRelations.js.map +7 -0
  204. package/dist/cjs/internal/ExitEncoding.d.ts +180 -0
  205. package/dist/cjs/internal/ExitEncoding.d.ts.map +1 -0
  206. package/dist/cjs/internal/ExitEncoding.js +236 -0
  207. package/dist/cjs/internal/ExitEncoding.js.map +7 -0
  208. package/dist/cjs/internal/FileBoundarySnapshot.d.ts +14 -0
  209. package/dist/cjs/internal/FileBoundarySnapshot.d.ts.map +1 -0
  210. package/dist/cjs/internal/FileBoundarySnapshot.js +51 -0
  211. package/dist/cjs/internal/FileBoundarySnapshot.js.map +7 -0
  212. package/dist/cjs/internal/FileEnumeration.d.ts +127 -0
  213. package/dist/cjs/internal/FileEnumeration.d.ts.map +1 -0
  214. package/dist/cjs/internal/FileEnumeration.js +194 -0
  215. package/dist/cjs/internal/FileEnumeration.js.map +7 -0
  216. package/dist/cjs/internal/HostReflection.d.ts +80 -0
  217. package/dist/cjs/internal/HostReflection.d.ts.map +1 -0
  218. package/dist/cjs/internal/HostReflection.js +43 -0
  219. package/dist/cjs/internal/HostReflection.js.map +7 -0
  220. package/dist/cjs/internal/JournalRecords.d.ts +325 -0
  221. package/dist/cjs/internal/JournalRecords.d.ts.map +1 -0
  222. package/dist/cjs/internal/JournalRecords.js +122 -0
  223. package/dist/cjs/internal/JournalRecords.js.map +7 -0
  224. package/dist/cjs/internal/NodeJournal.d.ts +157 -0
  225. package/dist/cjs/internal/NodeJournal.d.ts.map +1 -0
  226. package/dist/cjs/internal/NodeJournal.js +192 -0
  227. package/dist/cjs/internal/NodeJournal.js.map +7 -0
  228. package/dist/cjs/internal/Ordering.d.ts +14 -0
  229. package/dist/cjs/internal/Ordering.d.ts.map +1 -0
  230. package/dist/cjs/internal/Ordering.js +25 -0
  231. package/dist/cjs/internal/Ordering.js.map +7 -0
  232. package/dist/cjs/internal/PlanInputs.d.ts +14 -0
  233. package/dist/cjs/internal/PlanInputs.d.ts.map +1 -0
  234. package/dist/cjs/internal/PlanInputs.js +78 -0
  235. package/dist/cjs/internal/PlanInputs.js.map +7 -0
  236. package/dist/cjs/internal/PlanMerges.d.ts +178 -0
  237. package/dist/cjs/internal/PlanMerges.d.ts.map +1 -0
  238. package/dist/cjs/internal/PlanMerges.js +125 -0
  239. package/dist/cjs/internal/PlanMerges.js.map +7 -0
  240. package/dist/cjs/internal/ProvenanceSlot.d.ts +30 -0
  241. package/dist/cjs/internal/ProvenanceSlot.d.ts.map +1 -0
  242. package/dist/cjs/internal/ProvenanceSlot.js +53 -0
  243. package/dist/cjs/internal/ProvenanceSlot.js.map +7 -0
  244. package/dist/cjs/internal/ResultEnvelope.d.ts +88 -0
  245. package/dist/cjs/internal/ResultEnvelope.d.ts.map +1 -0
  246. package/dist/cjs/internal/ResultEnvelope.js +90 -0
  247. package/dist/cjs/internal/ResultEnvelope.js.map +7 -0
  248. package/dist/cjs/internal/RetentionOps.d.ts +414 -0
  249. package/dist/cjs/internal/RetentionOps.d.ts.map +1 -0
  250. package/dist/cjs/internal/RetentionOps.js +354 -0
  251. package/dist/cjs/internal/RetentionOps.js.map +7 -0
  252. package/dist/cjs/internal/RunCatalogOps.d.ts +118 -0
  253. package/dist/cjs/internal/RunCatalogOps.d.ts.map +1 -0
  254. package/dist/cjs/internal/RunCatalogOps.js +85 -0
  255. package/dist/cjs/internal/RunCatalogOps.js.map +7 -0
  256. package/dist/cjs/internal/RunCoordinator.d.ts +78 -0
  257. package/dist/cjs/internal/RunCoordinator.d.ts.map +1 -0
  258. package/dist/cjs/internal/RunCoordinator.js +123 -0
  259. package/dist/cjs/internal/RunCoordinator.js.map +7 -0
  260. package/dist/cjs/internal/RunDriver.d.ts +192 -0
  261. package/dist/cjs/internal/RunDriver.d.ts.map +1 -0
  262. package/dist/cjs/internal/RunDriver.js +1584 -0
  263. package/dist/cjs/internal/RunDriver.js.map +7 -0
  264. package/dist/cjs/internal/RunLifecycle.d.ts +22 -0
  265. package/dist/cjs/internal/RunLifecycle.d.ts.map +1 -0
  266. package/dist/cjs/internal/RunLifecycle.js +63 -0
  267. package/dist/cjs/internal/RunLifecycle.js.map +7 -0
  268. package/dist/cjs/internal/RunListing.d.ts +78 -0
  269. package/dist/cjs/internal/RunListing.d.ts.map +1 -0
  270. package/dist/cjs/internal/RunListing.js +171 -0
  271. package/dist/cjs/internal/RunListing.js.map +7 -0
  272. package/dist/cjs/internal/RunListingError.d.ts +35 -0
  273. package/dist/cjs/internal/RunListingError.d.ts.map +1 -0
  274. package/dist/cjs/internal/RunListingError.js +47 -0
  275. package/dist/cjs/internal/RunListingError.js.map +7 -0
  276. package/dist/cjs/internal/RuntimeGraph.d.ts +73 -0
  277. package/dist/cjs/internal/RuntimeGraph.d.ts.map +1 -0
  278. package/dist/cjs/internal/RuntimeGraph.js +180 -0
  279. package/dist/cjs/internal/RuntimeGraph.js.map +7 -0
  280. package/dist/cjs/internal/SandboxedExecution.d.ts +80 -0
  281. package/dist/cjs/internal/SandboxedExecution.d.ts.map +1 -0
  282. package/dist/cjs/internal/SandboxedExecution.js +104 -0
  283. package/dist/cjs/internal/SandboxedExecution.js.map +7 -0
  284. package/dist/cjs/internal/StateTransaction.d.ts +44 -0
  285. package/dist/cjs/internal/StateTransaction.d.ts.map +1 -0
  286. package/dist/cjs/internal/StateTransaction.js +52 -0
  287. package/dist/cjs/internal/StateTransaction.js.map +7 -0
  288. package/dist/cjs/internal/StepFacts.d.ts +14 -0
  289. package/dist/cjs/internal/StepFacts.d.ts.map +1 -0
  290. package/dist/cjs/internal/StepFacts.js +58 -0
  291. package/dist/cjs/internal/StepFacts.js.map +7 -0
  292. package/dist/cjs/internal/TypedEvents.d.ts +14 -0
  293. package/dist/cjs/internal/TypedEvents.d.ts.map +1 -0
  294. package/dist/cjs/internal/TypedEvents.js +37 -0
  295. package/dist/cjs/internal/TypedEvents.js.map +7 -0
  296. package/dist/cjs/migrations/0001_initial.d.ts +17 -0
  297. package/dist/cjs/migrations/0001_initial.d.ts.map +1 -0
  298. package/dist/cjs/migrations/0001_initial.js +61 -0
  299. package/dist/cjs/migrations/0001_initial.js.map +7 -0
  300. package/dist/cjs/migrations/0002_selection_store.d.ts +15 -0
  301. package/dist/cjs/migrations/0002_selection_store.d.ts.map +1 -0
  302. package/dist/cjs/migrations/0002_selection_store.js +56 -0
  303. package/dist/cjs/migrations/0002_selection_store.js.map +7 -0
  304. package/dist/cjs/migrations/0003_plan_inputs.d.ts +13 -0
  305. package/dist/cjs/migrations/0003_plan_inputs.d.ts.map +1 -0
  306. package/dist/cjs/migrations/0003_plan_inputs.js +90 -0
  307. package/dist/cjs/migrations/0003_plan_inputs.js.map +7 -0
  308. package/dist/cjs/migrations/0004_plan_environment.d.ts +14 -0
  309. package/dist/cjs/migrations/0004_plan_environment.d.ts.map +1 -0
  310. package/dist/cjs/migrations/0004_plan_environment.js +56 -0
  311. package/dist/cjs/migrations/0004_plan_environment.js.map +7 -0
  312. package/dist/cjs/migrations/0005_plan_merges.d.ts +14 -0
  313. package/dist/cjs/migrations/0005_plan_merges.d.ts.map +1 -0
  314. package/dist/cjs/migrations/0005_plan_merges.js +82 -0
  315. package/dist/cjs/migrations/0005_plan_merges.js.map +7 -0
  316. package/dist/cjs/migrations/0006_execution_listing.d.ts +15 -0
  317. package/dist/cjs/migrations/0006_execution_listing.d.ts.map +1 -0
  318. package/dist/cjs/migrations/0006_execution_listing.js +101 -0
  319. package/dist/cjs/migrations/0006_execution_listing.js.map +7 -0
  320. package/dist/cjs/migrations/0007_run_parent_sequence.d.ts +15 -0
  321. package/dist/cjs/migrations/0007_run_parent_sequence.d.ts.map +1 -0
  322. package/dist/cjs/migrations/0007_run_parent_sequence.js +40 -0
  323. package/dist/cjs/migrations/0007_run_parent_sequence.js.map +7 -0
  324. package/dist/cjs/migrations/0008_deferred_consumption.d.ts +16 -0
  325. package/dist/cjs/migrations/0008_deferred_consumption.d.ts.map +1 -0
  326. package/dist/cjs/migrations/0008_deferred_consumption.js +45 -0
  327. package/dist/cjs/migrations/0008_deferred_consumption.js.map +7 -0
  328. package/dist/cjs/migrations/0009_deferred_clock_facts.d.ts +24 -0
  329. package/dist/cjs/migrations/0009_deferred_clock_facts.d.ts.map +1 -0
  330. package/dist/cjs/migrations/0009_deferred_clock_facts.js +141 -0
  331. package/dist/cjs/migrations/0009_deferred_clock_facts.js.map +7 -0
  332. package/dist/cjs/migrations/0010_pending_cancellation.d.ts +15 -0
  333. package/dist/cjs/migrations/0010_pending_cancellation.d.ts.map +1 -0
  334. package/dist/cjs/migrations/0010_pending_cancellation.js +41 -0
  335. package/dist/cjs/migrations/0010_pending_cancellation.js.map +7 -0
  336. package/dist/cjs/package.json +1 -0
  337. package/dist/cjs/test/TestStores.d.ts +89 -0
  338. package/dist/cjs/test/TestStores.d.ts.map +1 -0
  339. package/dist/cjs/test/TestStores.js +98 -0
  340. package/dist/cjs/test/TestStores.js.map +7 -0
  341. package/dist/esm/ArtifactGc.d.ts +235 -0
  342. package/dist/esm/ArtifactGc.d.ts.map +1 -0
  343. package/dist/esm/ArtifactGc.js +268 -0
  344. package/dist/esm/ArtifactGc.js.map +1 -0
  345. package/dist/esm/ArtifactSync.d.ts +164 -0
  346. package/dist/esm/ArtifactSync.d.ts.map +1 -0
  347. package/dist/esm/ArtifactSync.js +176 -0
  348. package/dist/esm/ArtifactSync.js.map +1 -0
  349. package/dist/esm/CacheSync.d.ts +112 -0
  350. package/dist/esm/CacheSync.d.ts.map +1 -0
  351. package/dist/esm/CacheSync.js +94 -0
  352. package/dist/esm/CacheSync.js.map +1 -0
  353. package/dist/esm/DeferredClockFold.d.ts +354 -0
  354. package/dist/esm/DeferredClockFold.d.ts.map +1 -0
  355. package/dist/esm/DeferredClockFold.js +472 -0
  356. package/dist/esm/DeferredClockFold.js.map +1 -0
  357. package/dist/esm/DisasterRecovery.d.ts +431 -0
  358. package/dist/esm/DisasterRecovery.d.ts.map +1 -0
  359. package/dist/esm/DisasterRecovery.js +523 -0
  360. package/dist/esm/DisasterRecovery.js.map +1 -0
  361. package/dist/esm/DurableEngineState.d.ts +776 -0
  362. package/dist/esm/DurableEngineState.d.ts.map +1 -0
  363. package/dist/esm/DurableEngineState.js +1648 -0
  364. package/dist/esm/DurableEngineState.js.map +1 -0
  365. package/dist/esm/EngineStore.d.ts +158 -0
  366. package/dist/esm/EngineStore.d.ts.map +1 -0
  367. package/dist/esm/EngineStore.js +403 -0
  368. package/dist/esm/EngineStore.js.map +1 -0
  369. package/dist/esm/EngineStoreMetrics.d.ts +276 -0
  370. package/dist/esm/EngineStoreMetrics.d.ts.map +1 -0
  371. package/dist/esm/EngineStoreMetrics.js +260 -0
  372. package/dist/esm/EngineStoreMetrics.js.map +1 -0
  373. package/dist/esm/Errors.d.ts +22 -0
  374. package/dist/esm/Errors.d.ts.map +1 -0
  375. package/dist/esm/Errors.js +22 -0
  376. package/dist/esm/Errors.js.map +1 -0
  377. package/dist/esm/EventTypes.d.ts +27 -0
  378. package/dist/esm/EventTypes.d.ts.map +1 -0
  379. package/dist/esm/EventTypes.js +27 -0
  380. package/dist/esm/EventTypes.js.map +1 -0
  381. package/dist/esm/ExecutionFacts.d.ts +59 -0
  382. package/dist/esm/ExecutionFacts.d.ts.map +1 -0
  383. package/dist/esm/ExecutionFacts.js +96 -0
  384. package/dist/esm/ExecutionFacts.js.map +1 -0
  385. package/dist/esm/ExecutionSnapshot.d.ts +117 -0
  386. package/dist/esm/ExecutionSnapshot.d.ts.map +1 -0
  387. package/dist/esm/ExecutionSnapshot.js +95 -0
  388. package/dist/esm/ExecutionSnapshot.js.map +1 -0
  389. package/dist/esm/Inconsistency.d.ts +154 -0
  390. package/dist/esm/Inconsistency.d.ts.map +1 -0
  391. package/dist/esm/Inconsistency.js +133 -0
  392. package/dist/esm/Inconsistency.js.map +1 -0
  393. package/dist/esm/Migrations.d.ts +56 -0
  394. package/dist/esm/Migrations.d.ts.map +1 -0
  395. package/dist/esm/Migrations.js +91 -0
  396. package/dist/esm/Migrations.js.map +1 -0
  397. package/dist/esm/OwnerIdentity.d.ts +91 -0
  398. package/dist/esm/OwnerIdentity.d.ts.map +1 -0
  399. package/dist/esm/OwnerIdentity.js +99 -0
  400. package/dist/esm/OwnerIdentity.js.map +1 -0
  401. package/dist/esm/PlanInputStore.d.ts +110 -0
  402. package/dist/esm/PlanInputStore.d.ts.map +1 -0
  403. package/dist/esm/PlanInputStore.js +207 -0
  404. package/dist/esm/PlanInputStore.js.map +1 -0
  405. package/dist/esm/PlanMergeStore.d.ts +113 -0
  406. package/dist/esm/PlanMergeStore.d.ts.map +1 -0
  407. package/dist/esm/PlanMergeStore.js +244 -0
  408. package/dist/esm/PlanMergeStore.js.map +1 -0
  409. package/dist/esm/PlanScheduler.d.ts +363 -0
  410. package/dist/esm/PlanScheduler.d.ts.map +1 -0
  411. package/dist/esm/PlanScheduler.js +1321 -0
  412. package/dist/esm/PlanScheduler.js.map +1 -0
  413. package/dist/esm/Reconciliation.d.ts +175 -0
  414. package/dist/esm/Reconciliation.d.ts.map +1 -0
  415. package/dist/esm/Reconciliation.js +175 -0
  416. package/dist/esm/Reconciliation.js.map +1 -0
  417. package/dist/esm/ReplayOnly.d.ts +91 -0
  418. package/dist/esm/ReplayOnly.d.ts.map +1 -0
  419. package/dist/esm/ReplayOnly.js +59 -0
  420. package/dist/esm/ReplayOnly.js.map +1 -0
  421. package/dist/esm/Retention.d.ts +113 -0
  422. package/dist/esm/Retention.d.ts.map +1 -0
  423. package/dist/esm/Retention.js +139 -0
  424. package/dist/esm/Retention.js.map +1 -0
  425. package/dist/esm/RunCatalogRead.d.ts +17 -0
  426. package/dist/esm/RunCatalogRead.d.ts.map +1 -0
  427. package/dist/esm/RunCatalogRead.js +17 -0
  428. package/dist/esm/RunCatalogRead.js.map +1 -0
  429. package/dist/esm/RunChangeFeed.d.ts +75 -0
  430. package/dist/esm/RunChangeFeed.d.ts.map +1 -0
  431. package/dist/esm/RunChangeFeed.js +81 -0
  432. package/dist/esm/RunChangeFeed.js.map +1 -0
  433. package/dist/esm/RunState.d.ts +116 -0
  434. package/dist/esm/RunState.d.ts.map +1 -0
  435. package/dist/esm/RunState.js +109 -0
  436. package/dist/esm/RunState.js.map +1 -0
  437. package/dist/esm/Selection.d.ts +495 -0
  438. package/dist/esm/Selection.d.ts.map +1 -0
  439. package/dist/esm/Selection.js +482 -0
  440. package/dist/esm/Selection.js.map +1 -0
  441. package/dist/esm/SelectionStore.d.ts +141 -0
  442. package/dist/esm/SelectionStore.d.ts.map +1 -0
  443. package/dist/esm/SelectionStore.js +215 -0
  444. package/dist/esm/SelectionStore.js.map +1 -0
  445. package/dist/esm/StepBoundary.d.ts +501 -0
  446. package/dist/esm/StepBoundary.d.ts.map +1 -0
  447. package/dist/esm/StepBoundary.js +919 -0
  448. package/dist/esm/StepBoundary.js.map +1 -0
  449. package/dist/esm/StepCacheFold.d.ts +148 -0
  450. package/dist/esm/StepCacheFold.d.ts.map +1 -0
  451. package/dist/esm/StepCacheFold.js +201 -0
  452. package/dist/esm/StepCacheFold.js.map +1 -0
  453. package/dist/esm/StepSandbox.d.ts +78 -0
  454. package/dist/esm/StepSandbox.d.ts.map +1 -0
  455. package/dist/esm/StepSandbox.js +70 -0
  456. package/dist/esm/StepSandbox.js.map +1 -0
  457. package/dist/esm/WakeBus.d.ts +116 -0
  458. package/dist/esm/WakeBus.d.ts.map +1 -0
  459. package/dist/esm/WakeBus.js +121 -0
  460. package/dist/esm/WakeBus.js.map +1 -0
  461. package/dist/esm/WorkspaceSandbox.d.ts +619 -0
  462. package/dist/esm/WorkspaceSandbox.d.ts.map +1 -0
  463. package/dist/esm/WorkspaceSandbox.js +985 -0
  464. package/dist/esm/WorkspaceSandbox.js.map +1 -0
  465. package/dist/esm/index.d.ts +157 -0
  466. package/dist/esm/index.d.ts.map +1 -0
  467. package/dist/esm/index.js +157 -0
  468. package/dist/esm/index.js.map +1 -0
  469. package/dist/esm/internal/ActionPersistence.d.ts +276 -0
  470. package/dist/esm/internal/ActionPersistence.d.ts.map +1 -0
  471. package/dist/esm/internal/ActionPersistence.js +2306 -0
  472. package/dist/esm/internal/ActionPersistence.js.map +1 -0
  473. package/dist/esm/internal/ArtifactRoots.d.ts +38 -0
  474. package/dist/esm/internal/ArtifactRoots.d.ts.map +1 -0
  475. package/dist/esm/internal/ArtifactRoots.js +76 -0
  476. package/dist/esm/internal/ArtifactRoots.js.map +1 -0
  477. package/dist/esm/internal/AttemptAdmission.d.ts +53 -0
  478. package/dist/esm/internal/AttemptAdmission.d.ts.map +1 -0
  479. package/dist/esm/internal/AttemptAdmission.js +52 -0
  480. package/dist/esm/internal/AttemptAdmission.js.map +1 -0
  481. package/dist/esm/internal/AttemptLifecycle.d.ts +245 -0
  482. package/dist/esm/internal/AttemptLifecycle.d.ts.map +1 -0
  483. package/dist/esm/internal/AttemptLifecycle.js +104 -0
  484. package/dist/esm/internal/AttemptLifecycle.js.map +1 -0
  485. package/dist/esm/internal/AttemptProbe.d.ts +53 -0
  486. package/dist/esm/internal/AttemptProbe.d.ts.map +1 -0
  487. package/dist/esm/internal/AttemptProbe.js +83 -0
  488. package/dist/esm/internal/AttemptProbe.js.map +1 -0
  489. package/dist/esm/internal/CacheAdmission.d.ts +79 -0
  490. package/dist/esm/internal/CacheAdmission.d.ts.map +1 -0
  491. package/dist/esm/internal/CacheAdmission.js +72 -0
  492. package/dist/esm/internal/CacheAdmission.js.map +1 -0
  493. package/dist/esm/internal/CacheAgeHistory.d.ts +27 -0
  494. package/dist/esm/internal/CacheAgeHistory.d.ts.map +1 -0
  495. package/dist/esm/internal/CacheAgeHistory.js +49 -0
  496. package/dist/esm/internal/CacheAgeHistory.js.map +1 -0
  497. package/dist/esm/internal/CacheAgeVerdicts.d.ts +15 -0
  498. package/dist/esm/internal/CacheAgeVerdicts.d.ts.map +1 -0
  499. package/dist/esm/internal/CacheAgeVerdicts.js +54 -0
  500. package/dist/esm/internal/CacheAgeVerdicts.js.map +1 -0
  501. package/dist/esm/internal/CacheOutputPolicy.d.ts +24 -0
  502. package/dist/esm/internal/CacheOutputPolicy.d.ts.map +1 -0
  503. package/dist/esm/internal/CacheOutputPolicy.js +73 -0
  504. package/dist/esm/internal/CacheOutputPolicy.js.map +1 -0
  505. package/dist/esm/internal/CachePublication.d.ts +97 -0
  506. package/dist/esm/internal/CachePublication.d.ts.map +1 -0
  507. package/dist/esm/internal/CachePublication.js +116 -0
  508. package/dist/esm/internal/CachePublication.js.map +1 -0
  509. package/dist/esm/internal/CallFacts.d.ts +15 -0
  510. package/dist/esm/internal/CallFacts.d.ts.map +1 -0
  511. package/dist/esm/internal/CallFacts.js +83 -0
  512. package/dist/esm/internal/CallFacts.js.map +1 -0
  513. package/dist/esm/internal/CopiedRecord.d.ts +61 -0
  514. package/dist/esm/internal/CopiedRecord.d.ts.map +1 -0
  515. package/dist/esm/internal/CopiedRecord.js +165 -0
  516. package/dist/esm/internal/CopiedRecord.js.map +1 -0
  517. package/dist/esm/internal/DeferredPersistence.d.ts +108 -0
  518. package/dist/esm/internal/DeferredPersistence.d.ts.map +1 -0
  519. package/dist/esm/internal/DeferredPersistence.js +240 -0
  520. package/dist/esm/internal/DeferredPersistence.js.map +1 -0
  521. package/dist/esm/internal/EffectRecords.d.ts +92 -0
  522. package/dist/esm/internal/EffectRecords.d.ts.map +1 -0
  523. package/dist/esm/internal/EffectRecords.js +94 -0
  524. package/dist/esm/internal/EffectRecords.js.map +1 -0
  525. package/dist/esm/internal/EngineJj.d.ts +30 -0
  526. package/dist/esm/internal/EngineJj.d.ts.map +1 -0
  527. package/dist/esm/internal/EngineJj.js +29 -0
  528. package/dist/esm/internal/EngineJj.js.map +1 -0
  529. package/dist/esm/internal/EngineStateSchema.d.ts +68 -0
  530. package/dist/esm/internal/EngineStateSchema.d.ts.map +1 -0
  531. package/dist/esm/internal/EngineStateSchema.js +53 -0
  532. package/dist/esm/internal/EngineStateSchema.js.map +1 -0
  533. package/dist/esm/internal/ExecutionSnapshotRead.d.ts +162 -0
  534. package/dist/esm/internal/ExecutionSnapshotRead.d.ts.map +1 -0
  535. package/dist/esm/internal/ExecutionSnapshotRead.js +218 -0
  536. package/dist/esm/internal/ExecutionSnapshotRead.js.map +1 -0
  537. package/dist/esm/internal/ExecutionSnapshotRelations.d.ts +39 -0
  538. package/dist/esm/internal/ExecutionSnapshotRelations.d.ts.map +1 -0
  539. package/dist/esm/internal/ExecutionSnapshotRelations.js +81 -0
  540. package/dist/esm/internal/ExecutionSnapshotRelations.js.map +1 -0
  541. package/dist/esm/internal/ExitEncoding.d.ts +180 -0
  542. package/dist/esm/internal/ExitEncoding.d.ts.map +1 -0
  543. package/dist/esm/internal/ExitEncoding.js +361 -0
  544. package/dist/esm/internal/ExitEncoding.js.map +1 -0
  545. package/dist/esm/internal/FileBoundarySnapshot.d.ts +14 -0
  546. package/dist/esm/internal/FileBoundarySnapshot.d.ts.map +1 -0
  547. package/dist/esm/internal/FileBoundarySnapshot.js +29 -0
  548. package/dist/esm/internal/FileBoundarySnapshot.js.map +1 -0
  549. package/dist/esm/internal/FileEnumeration.d.ts +127 -0
  550. package/dist/esm/internal/FileEnumeration.d.ts.map +1 -0
  551. package/dist/esm/internal/FileEnumeration.js +236 -0
  552. package/dist/esm/internal/FileEnumeration.js.map +1 -0
  553. package/dist/esm/internal/HostReflection.d.ts +80 -0
  554. package/dist/esm/internal/HostReflection.d.ts.map +1 -0
  555. package/dist/esm/internal/HostReflection.js +98 -0
  556. package/dist/esm/internal/HostReflection.js.map +1 -0
  557. package/dist/esm/internal/JournalRecords.d.ts +325 -0
  558. package/dist/esm/internal/JournalRecords.d.ts.map +1 -0
  559. package/dist/esm/internal/JournalRecords.js +306 -0
  560. package/dist/esm/internal/JournalRecords.js.map +1 -0
  561. package/dist/esm/internal/NodeJournal.d.ts +157 -0
  562. package/dist/esm/internal/NodeJournal.d.ts.map +1 -0
  563. package/dist/esm/internal/NodeJournal.js +298 -0
  564. package/dist/esm/internal/NodeJournal.js.map +1 -0
  565. package/dist/esm/internal/Ordering.d.ts +14 -0
  566. package/dist/esm/internal/Ordering.d.ts.map +1 -0
  567. package/dist/esm/internal/Ordering.js +14 -0
  568. package/dist/esm/internal/Ordering.js.map +1 -0
  569. package/dist/esm/internal/PlanInputs.d.ts +14 -0
  570. package/dist/esm/internal/PlanInputs.d.ts.map +1 -0
  571. package/dist/esm/internal/PlanInputs.js +57 -0
  572. package/dist/esm/internal/PlanInputs.js.map +1 -0
  573. package/dist/esm/internal/PlanMerges.d.ts +178 -0
  574. package/dist/esm/internal/PlanMerges.d.ts.map +1 -0
  575. package/dist/esm/internal/PlanMerges.js +113 -0
  576. package/dist/esm/internal/PlanMerges.js.map +1 -0
  577. package/dist/esm/internal/ProvenanceSlot.d.ts +30 -0
  578. package/dist/esm/internal/ProvenanceSlot.d.ts.map +1 -0
  579. package/dist/esm/internal/ProvenanceSlot.js +39 -0
  580. package/dist/esm/internal/ProvenanceSlot.js.map +1 -0
  581. package/dist/esm/internal/ResultEnvelope.d.ts +88 -0
  582. package/dist/esm/internal/ResultEnvelope.d.ts.map +1 -0
  583. package/dist/esm/internal/ResultEnvelope.js +83 -0
  584. package/dist/esm/internal/ResultEnvelope.js.map +1 -0
  585. package/dist/esm/internal/RetentionOps.d.ts +414 -0
  586. package/dist/esm/internal/RetentionOps.d.ts.map +1 -0
  587. package/dist/esm/internal/RetentionOps.js +576 -0
  588. package/dist/esm/internal/RetentionOps.js.map +1 -0
  589. package/dist/esm/internal/RunCatalogOps.d.ts +118 -0
  590. package/dist/esm/internal/RunCatalogOps.d.ts.map +1 -0
  591. package/dist/esm/internal/RunCatalogOps.js +120 -0
  592. package/dist/esm/internal/RunCatalogOps.js.map +1 -0
  593. package/dist/esm/internal/RunCoordinator.d.ts +78 -0
  594. package/dist/esm/internal/RunCoordinator.d.ts.map +1 -0
  595. package/dist/esm/internal/RunCoordinator.js +115 -0
  596. package/dist/esm/internal/RunCoordinator.js.map +1 -0
  597. package/dist/esm/internal/RunDriver.d.ts +192 -0
  598. package/dist/esm/internal/RunDriver.d.ts.map +1 -0
  599. package/dist/esm/internal/RunDriver.js +2334 -0
  600. package/dist/esm/internal/RunDriver.js.map +1 -0
  601. package/dist/esm/internal/RunLifecycle.d.ts +22 -0
  602. package/dist/esm/internal/RunLifecycle.d.ts.map +1 -0
  603. package/dist/esm/internal/RunLifecycle.js +49 -0
  604. package/dist/esm/internal/RunLifecycle.js.map +1 -0
  605. package/dist/esm/internal/RunListing.d.ts +78 -0
  606. package/dist/esm/internal/RunListing.d.ts.map +1 -0
  607. package/dist/esm/internal/RunListing.js +146 -0
  608. package/dist/esm/internal/RunListing.js.map +1 -0
  609. package/dist/esm/internal/RunListingError.d.ts +35 -0
  610. package/dist/esm/internal/RunListingError.d.ts.map +1 -0
  611. package/dist/esm/internal/RunListingError.js +27 -0
  612. package/dist/esm/internal/RunListingError.js.map +1 -0
  613. package/dist/esm/internal/RuntimeGraph.d.ts +73 -0
  614. package/dist/esm/internal/RuntimeGraph.d.ts.map +1 -0
  615. package/dist/esm/internal/RuntimeGraph.js +182 -0
  616. package/dist/esm/internal/RuntimeGraph.js.map +1 -0
  617. package/dist/esm/internal/SandboxedExecution.d.ts +80 -0
  618. package/dist/esm/internal/SandboxedExecution.d.ts.map +1 -0
  619. package/dist/esm/internal/SandboxedExecution.js +107 -0
  620. package/dist/esm/internal/SandboxedExecution.js.map +1 -0
  621. package/dist/esm/internal/StateTransaction.d.ts +44 -0
  622. package/dist/esm/internal/StateTransaction.d.ts.map +1 -0
  623. package/dist/esm/internal/StateTransaction.js +54 -0
  624. package/dist/esm/internal/StateTransaction.js.map +1 -0
  625. package/dist/esm/internal/StepFacts.d.ts +14 -0
  626. package/dist/esm/internal/StepFacts.d.ts.map +1 -0
  627. package/dist/esm/internal/StepFacts.js +35 -0
  628. package/dist/esm/internal/StepFacts.js.map +1 -0
  629. package/dist/esm/internal/TypedEvents.d.ts +14 -0
  630. package/dist/esm/internal/TypedEvents.d.ts.map +1 -0
  631. package/dist/esm/internal/TypedEvents.js +14 -0
  632. package/dist/esm/internal/TypedEvents.js.map +1 -0
  633. package/dist/esm/migrations/0001_initial.d.ts +17 -0
  634. package/dist/esm/migrations/0001_initial.d.ts.map +1 -0
  635. package/dist/esm/migrations/0001_initial.js +41 -0
  636. package/dist/esm/migrations/0001_initial.js.map +1 -0
  637. package/dist/esm/migrations/0002_selection_store.d.ts +15 -0
  638. package/dist/esm/migrations/0002_selection_store.d.ts.map +1 -0
  639. package/dist/esm/migrations/0002_selection_store.js +34 -0
  640. package/dist/esm/migrations/0002_selection_store.js.map +1 -0
  641. package/dist/esm/migrations/0003_plan_inputs.d.ts +13 -0
  642. package/dist/esm/migrations/0003_plan_inputs.d.ts.map +1 -0
  643. package/dist/esm/migrations/0003_plan_inputs.js +70 -0
  644. package/dist/esm/migrations/0003_plan_inputs.js.map +1 -0
  645. package/dist/esm/migrations/0004_plan_environment.d.ts +14 -0
  646. package/dist/esm/migrations/0004_plan_environment.d.ts.map +1 -0
  647. package/dist/esm/migrations/0004_plan_environment.js +33 -0
  648. package/dist/esm/migrations/0004_plan_environment.js.map +1 -0
  649. package/dist/esm/migrations/0005_plan_merges.d.ts +14 -0
  650. package/dist/esm/migrations/0005_plan_merges.d.ts.map +1 -0
  651. package/dist/esm/migrations/0005_plan_merges.js +59 -0
  652. package/dist/esm/migrations/0005_plan_merges.js.map +1 -0
  653. package/dist/esm/migrations/0006_execution_listing.d.ts +15 -0
  654. package/dist/esm/migrations/0006_execution_listing.d.ts.map +1 -0
  655. package/dist/esm/migrations/0006_execution_listing.js +81 -0
  656. package/dist/esm/migrations/0006_execution_listing.js.map +1 -0
  657. package/dist/esm/migrations/0007_run_parent_sequence.d.ts +15 -0
  658. package/dist/esm/migrations/0007_run_parent_sequence.d.ts.map +1 -0
  659. package/dist/esm/migrations/0007_run_parent_sequence.js +18 -0
  660. package/dist/esm/migrations/0007_run_parent_sequence.js.map +1 -0
  661. package/dist/esm/migrations/0008_deferred_consumption.d.ts +16 -0
  662. package/dist/esm/migrations/0008_deferred_consumption.d.ts.map +1 -0
  663. package/dist/esm/migrations/0008_deferred_consumption.js +24 -0
  664. package/dist/esm/migrations/0008_deferred_consumption.js.map +1 -0
  665. package/dist/esm/migrations/0009_deferred_clock_facts.d.ts +24 -0
  666. package/dist/esm/migrations/0009_deferred_clock_facts.d.ts.map +1 -0
  667. package/dist/esm/migrations/0009_deferred_clock_facts.js +127 -0
  668. package/dist/esm/migrations/0009_deferred_clock_facts.js.map +1 -0
  669. package/dist/esm/migrations/0010_pending_cancellation.d.ts +15 -0
  670. package/dist/esm/migrations/0010_pending_cancellation.d.ts.map +1 -0
  671. package/dist/esm/migrations/0010_pending_cancellation.js +19 -0
  672. package/dist/esm/migrations/0010_pending_cancellation.js.map +1 -0
  673. package/dist/esm/test/TestStores.d.ts +89 -0
  674. package/dist/esm/test/TestStores.d.ts.map +1 -0
  675. package/dist/esm/test/TestStores.js +103 -0
  676. package/dist/esm/test/TestStores.js.map +1 -0
  677. package/docs/README.md +113 -0
  678. package/docs/api.md +1494 -0
  679. package/docs/concepts/attempts-and-replay.md +149 -0
  680. package/docs/concepts/cache-admission.md +265 -0
  681. package/docs/concepts/call-facts.md +86 -0
  682. package/docs/concepts/durable-waits.md +175 -0
  683. package/docs/concepts/execution-facts.md +90 -0
  684. package/docs/concepts/ownership-and-fencing.md +128 -0
  685. package/docs/concepts/step-boundaries.md +148 -0
  686. package/docs/concepts/workspace-transactions.md +199 -0
  687. package/docs/event-types.md +14 -0
  688. package/docs/guides/back-up-and-restore.md +164 -0
  689. package/docs/guides/collect-unreferenced-artifacts.md +128 -0
  690. package/docs/guides/compose-a-durable-engine.md +146 -0
  691. package/docs/guides/coordinate-two-processes.md +120 -0
  692. package/docs/guides/defer-work-with-selection.md +171 -0
  693. package/docs/guides/delete-old-run-history.md +154 -0
  694. package/docs/guides/drive-a-plan.md +314 -0
  695. package/docs/guides/observe-engine-metrics.md +98 -0
  696. package/docs/guides/observe-executions.md +187 -0
  697. package/docs/guides/reclaim-runs-from-a-dead-host.md +133 -0
  698. package/docs/guides/share-a-cache-across-machines.md +134 -0
  699. package/docs/guides/testing.md +123 -0
  700. package/docs/installation.md +102 -0
  701. package/docs/quickstart.md +215 -0
  702. package/docs/troubleshooting.md +347 -0
  703. package/package.json +438 -3
  704. package/src/ArtifactGc.ts +408 -0
  705. package/src/ArtifactSync.ts +278 -0
  706. package/src/CacheSync.ts +131 -0
  707. package/src/DeferredClockFold.ts +586 -0
  708. package/src/DisasterRecovery.ts +888 -0
  709. package/src/DurableEngineState.ts +2656 -0
  710. package/src/EngineStore.ts +656 -0
  711. package/src/EngineStoreMetrics.ts +331 -0
  712. package/src/Errors.ts +28 -0
  713. package/src/EventTypes.ts +27 -0
  714. package/src/ExecutionFacts.ts +125 -0
  715. package/src/ExecutionSnapshot.ts +186 -0
  716. package/src/Inconsistency.ts +253 -0
  717. package/src/Migrations.ts +95 -0
  718. package/src/OwnerIdentity.ts +125 -0
  719. package/src/PlanInputStore.ts +292 -0
  720. package/src/PlanMergeStore.ts +330 -0
  721. package/src/PlanScheduler.ts +1806 -0
  722. package/src/Reconciliation.ts +224 -0
  723. package/src/ReplayOnly.ts +95 -0
  724. package/src/Retention.ts +214 -0
  725. package/src/RunCatalogRead.ts +27 -0
  726. package/src/RunChangeFeed.ts +125 -0
  727. package/src/RunState.ts +137 -0
  728. package/src/Selection.ts +683 -0
  729. package/src/SelectionStore.ts +353 -0
  730. package/src/StepBoundary.ts +1165 -0
  731. package/src/StepCacheFold.ts +244 -0
  732. package/src/StepSandbox.ts +110 -0
  733. package/src/WakeBus.ts +167 -0
  734. package/src/WorkspaceSandbox.ts +1604 -0
  735. package/src/index.ts +185 -0
  736. package/src/internal/ActionPersistence.ts +2687 -0
  737. package/src/internal/ArtifactRoots.ts +92 -0
  738. package/src/internal/AttemptAdmission.ts +76 -0
  739. package/src/internal/AttemptLifecycle.ts +163 -0
  740. package/src/internal/AttemptProbe.ts +90 -0
  741. package/src/internal/CacheAdmission.ts +133 -0
  742. package/src/internal/CacheAgeHistory.ts +58 -0
  743. package/src/internal/CacheAgeVerdicts.ts +61 -0
  744. package/src/internal/CacheOutputPolicy.ts +82 -0
  745. package/src/internal/CachePublication.ts +153 -0
  746. package/src/internal/CallFacts.ts +87 -0
  747. package/src/internal/CopiedRecord.ts +201 -0
  748. package/src/internal/DeferredPersistence.ts +459 -0
  749. package/src/internal/EffectRecords.ts +136 -0
  750. package/src/internal/EngineJj.ts +30 -0
  751. package/src/internal/EngineStateSchema.ts +92 -0
  752. package/src/internal/ExecutionSnapshotRead.ts +298 -0
  753. package/src/internal/ExecutionSnapshotRelations.ts +121 -0
  754. package/src/internal/ExitEncoding.ts +453 -0
  755. package/src/internal/FileBoundarySnapshot.ts +39 -0
  756. package/src/internal/FileEnumeration.ts +334 -0
  757. package/src/internal/HostReflection.ts +128 -0
  758. package/src/internal/JournalRecords.ts +396 -0
  759. package/src/internal/NodeJournal.ts +340 -0
  760. package/src/internal/Ordering.ts +14 -0
  761. package/src/internal/PlanInputs.ts +62 -0
  762. package/src/internal/PlanMerges.ts +123 -0
  763. package/src/internal/ProvenanceSlot.ts +52 -0
  764. package/src/internal/ResultEnvelope.ts +118 -0
  765. package/src/internal/RetentionOps.ts +865 -0
  766. package/src/internal/RunCatalogOps.ts +174 -0
  767. package/src/internal/RunCoordinator.ts +215 -0
  768. package/src/internal/RunDriver.ts +3152 -0
  769. package/src/internal/RunLifecycle.ts +53 -0
  770. package/src/internal/RunListing.ts +210 -0
  771. package/src/internal/RunListingError.ts +37 -0
  772. package/src/internal/RuntimeGraph.ts +253 -0
  773. package/src/internal/SandboxedExecution.ts +165 -0
  774. package/src/internal/StateTransaction.ts +71 -0
  775. package/src/internal/StepFacts.ts +36 -0
  776. package/src/internal/TypedEvents.ts +29 -0
  777. package/src/migrations/0001_initial.ts +51 -0
  778. package/src/migrations/0002_selection_store.ts +38 -0
  779. package/src/migrations/0003_plan_inputs.ts +75 -0
  780. package/src/migrations/0004_plan_environment.ts +34 -0
  781. package/src/migrations/0005_plan_merges.ts +60 -0
  782. package/src/migrations/0006_execution_listing.ts +86 -0
  783. package/src/migrations/0007_run_parent_sequence.ts +19 -0
  784. package/src/migrations/0008_deferred_consumption.ts +27 -0
  785. package/src/migrations/0009_deferred_clock_facts.ts +163 -0
  786. package/src/migrations/0010_pending_cancellation.ts +20 -0
  787. package/src/test/TestStores.ts +145 -0
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Workspace-relative file enumeration for glob and tree-artifact expansion.
3
+ *
4
+ * The host `glob` is deliberately not consulted. Two divergences make it the
5
+ * wrong oracle for a declared pattern: the kernel `FileSystem` absolutizes
6
+ * patterns against the workspace root and returns absolute paths, so a
7
+ * workspace-relative matcher filters every result out; and Node's matcher
8
+ * skips dotfiles, which `FileSet.matchesPattern` — and Bazel's glob — cover.
9
+ * Walking `readDirectory` and filtering through `FileSet` keeps every
10
+ * expansion byte-identical to the matcher the plan's overlap passes use, in
11
+ * the one coordinate system declarations are written in.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ import * as KernelFileSystem from "@smthrs/kernel/FileSystem";
16
+ import * as FileSet from "@smthrs/plan/FileSet";
17
+ import * as Effect from "effect/Effect";
18
+ import * as Schema from "effect/Schema";
19
+ /** Bounded metadata reads, preserving the input order and typed failures. */
20
+ const metadata = (fs, paths, operation, fallback) => Effect.gen(function* () {
21
+ const batch = KernelFileSystem.batch(fs);
22
+ if (batch === undefined) {
23
+ return yield* Effect.forEach(paths, (path) => fallback(path), {
24
+ concurrency: KernelFileSystem.fallbackConcurrency
25
+ });
26
+ }
27
+ const values = [];
28
+ for (let offset = 0; offset < paths.length; offset += batch.maxSize) {
29
+ const response = yield* batch.execute(paths.slice(offset, offset + batch.maxSize).map((path) => ({ operation, path })));
30
+ for (const entry of [...response.entries].sort((a, b) => a.index - b.index)) {
31
+ const value = yield* Effect.fromResult(entry.result);
32
+ values.push((value.operation === "stat"
33
+ ? value.info
34
+ : value.paths));
35
+ }
36
+ }
37
+ return values;
38
+ });
39
+ /**
40
+ * The default maximum number of directory entries visited by one expansion.
41
+ *
42
+ * @since 1.0.0
43
+ * @category constants
44
+ */
45
+ export const defaultMaxEntries = 100_000;
46
+ /**
47
+ * The stable error code returned when enumeration exceeds its safety bound.
48
+ *
49
+ * @since 1.0.0
50
+ * @category errors
51
+ */
52
+ export const FileEnumerationErrorCode = Schema.Literal("entry_limit_exceeded");
53
+ /**
54
+ * A workspace enumeration exceeded its configured entry limit.
55
+ *
56
+ * @since 1.0.0
57
+ * @category errors
58
+ */
59
+ export class FileEnumerationError extends Schema.TaggedError()("@smthrs/engine-store/FileEnumerationError", {
60
+ code: FileEnumerationErrorCode,
61
+ message: Schema.String,
62
+ pattern: Schema.String,
63
+ limit: Schema.Number,
64
+ cause: Schema.Unknown
65
+ }) {
66
+ }
67
+ /** @internal */
68
+ const defaultResolve = (path) => path === "" ? "." : path;
69
+ const ignoredDirectoryNames = new Set([".git", ".jj", "node_modules"]);
70
+ const budgetFor = (pattern, options) => ({
71
+ limit: options.maxEntries ?? defaultMaxEntries,
72
+ count: 0,
73
+ pattern
74
+ });
75
+ const explicitIgnoredDirectories = (patterns) => {
76
+ const explicit = new Set();
77
+ for (const pattern of patterns) {
78
+ for (const part of pattern.replaceAll("\\", "/").split("/")) {
79
+ if (ignoredDirectoryNames.has(part))
80
+ explicit.add(part);
81
+ }
82
+ }
83
+ return explicit;
84
+ };
85
+ const visit = (budget) => {
86
+ budget.count += 1;
87
+ if (budget.count <= budget.limit)
88
+ return Effect.void;
89
+ const message = `enumerating pattern ${JSON.stringify(budget.pattern)} exceeded the ${budget.limit}-entry limit`;
90
+ return Effect.fail(new FileEnumerationError({
91
+ code: "entry_limit_exceeded",
92
+ pattern: budget.pattern,
93
+ limit: budget.limit,
94
+ message,
95
+ cause: new RangeError(message)
96
+ }));
97
+ };
98
+ const enumerateUnder = (fs, dir, resolve, budget, pruneIgnoredDirectories, explicit = new Set()) => Effect.gen(function* () {
99
+ // A directory that is not there enumerates to nothing, and its own
100
+ // listing reports that with `NotFound` — so no `exists` probe precedes
101
+ // it. The probe asked the question the very next call answers anyway, and
102
+ // on a confined host every host call is one CPython fork
103
+ // (`@smthrs/platform-node/AtomicFileSystem`), so it doubled the cost of
104
+ // reaching the walk root. Only the root is probed this way; a subtree
105
+ // discovered by `stat` inside the walk is read without a net, exactly as
106
+ // before, so a listing that refuses there still fails the expansion.
107
+ const root = yield* metadata(fs, [resolve(dir)], "readDirectory", fs.readDirectory).pipe(Effect.map((values) => values[0]), Effect.catchReason("PlatformError", "NotFound", () => Effect.succeed(undefined)));
108
+ // The absent root is the one case that reports no directories at all: a
109
+ // tree replay must not be told to prune scaffolding that never existed.
110
+ if (root === undefined)
111
+ return { files: [], directories: [] };
112
+ const files = [];
113
+ const directories = [dir];
114
+ const pending = [{ path: dir, entries: [...root].sort(), index: 0 }];
115
+ const size = KernelFileSystem.batch(fs)?.maxSize ?? KernelFileSystem.fallbackConcurrency;
116
+ while (pending.length > 0) {
117
+ const paths = [];
118
+ // Fill one batch from all queued listings. A tree with one file in each
119
+ // of many sibling directories must not start one helper per leaf.
120
+ while (paths.length < size && pending.length > 0) {
121
+ const current = pending[pending.length - 1];
122
+ if (current.index === current.entries.length) {
123
+ pending.pop();
124
+ continue;
125
+ }
126
+ yield* visit(budget);
127
+ const relative = current.entries[current.index++].replaceAll("\\", "/");
128
+ paths.push(current.path === "" ? relative : `${current.path}/${relative}`);
129
+ }
130
+ const infos = yield* metadata(fs, paths.map(resolve), "stat", fs.stat);
131
+ const children = [];
132
+ for (const [index, path] of paths.entries()) {
133
+ const info = infos[index];
134
+ if (info.type === "File") {
135
+ files.push(path);
136
+ continue;
137
+ }
138
+ if (info.type !== "Directory")
139
+ continue;
140
+ const name = path.slice(path.lastIndexOf("/") + 1);
141
+ if (pruneIgnoredDirectories && ignoredDirectoryNames.has(name) && !explicit.has(name))
142
+ continue;
143
+ directories.push(path);
144
+ children.push(path);
145
+ }
146
+ const listings = yield* metadata(fs, children.map(resolve), "readDirectory", fs.readDirectory);
147
+ for (const [index, path] of children.entries()) {
148
+ pending.push({ path, entries: [...listings[index]].sort(), index: 0 });
149
+ }
150
+ }
151
+ return { files: files.sort(), directories: directories.sort() };
152
+ });
153
+ /**
154
+ * Every file under `dir` (workspace-relative; `""` for the workspace root),
155
+ * as sorted workspace-relative paths. A missing directory enumerates to
156
+ * nothing — a zero-match expansion is legal, so absence is a fact rather than
157
+ * a failure. This declared-tree walk does not prune `.git`, `.jj`, or
158
+ * `node_modules`. Those names are part of the tree identity and must be
159
+ * captured and restored exactly.
160
+ *
161
+ * @since 0.1.0
162
+ * @category accessors
163
+ */
164
+ export const filesUnder = (fs, dir, options = {}) => Effect.gen(function* () {
165
+ const resolve = options.resolve ?? defaultResolve;
166
+ return (yield* enumerateUnder(fs, dir, resolve, budgetFor(dir === "" ? "**" : `${dir}/**`, options), false)).files;
167
+ });
168
+ /**
169
+ * Every file and every directory under `dir` (workspace-relative, non-empty),
170
+ * as sorted workspace-relative paths. The directory list includes `dir`
171
+ * itself, so a tree replay can audit exactly the scaffolding it may have to
172
+ * prune. A missing directory enumerates to nothing — a tree that matched
173
+ * nothing is legal, so absence is a fact rather than a failure. This
174
+ * declared-tree walk does not prune `.git`, `.jj`, or `node_modules` because
175
+ * replay needs every directory and file that contributes to the tree.
176
+ *
177
+ * @since 0.1.0
178
+ * @category accessors
179
+ */
180
+ export const entriesUnder = (fs, dir, options = {}) => Effect.gen(function* () {
181
+ const resolve = options.resolve ?? defaultResolve;
182
+ return yield* enumerateUnder(fs, dir, resolve, budgetFor(`${dir}/**`, options), false);
183
+ });
184
+ /**
185
+ * The longest directory prefix of a pattern that contains no wildcard — the
186
+ * subtree a walk has to visit. `src/**` walks `src`; `*.txt` walks the root.
187
+ *
188
+ * @since 0.1.0
189
+ * @category accessors
190
+ */
191
+ export const staticPrefix = (pattern) => {
192
+ const segments = pattern.replaceAll("\\", "/").split("/");
193
+ const fixed = [];
194
+ for (const segment of segments.slice(0, -1)) {
195
+ if (segment.includes("*"))
196
+ break;
197
+ fixed.push(segment);
198
+ }
199
+ return fixed.join("/");
200
+ };
201
+ /**
202
+ * Expands one glob against the workspace: walk each include's static prefix,
203
+ * keep the files `FileSet.matchesGlob` covers. Sorted and deduplicated, so
204
+ * expansion is deterministic. A glob walk prunes `.git`, `.jj`, and
205
+ * `node_modules` unless an include sharing that walk prefix names the
206
+ * directory as a path segment. This keeps a root glob from traversing
207
+ * repository metadata and dependency trees while preserving an explicitly
208
+ * declared match after either a fixed or wildcard segment.
209
+ *
210
+ * @since 0.1.0
211
+ * @category accessors
212
+ */
213
+ export const expandGlob = (fs, glob, options = {}) => Effect.gen(function* () {
214
+ const resolve = options.resolve ?? defaultResolve;
215
+ const matched = new Set();
216
+ const budget = budgetFor("", options);
217
+ const groups = new Map();
218
+ for (const include of glob.include) {
219
+ const prefix = staticPrefix(include);
220
+ const group = groups.get(prefix);
221
+ if (group === undefined)
222
+ groups.set(prefix, [include]);
223
+ else
224
+ group.push(include);
225
+ }
226
+ for (const [prefix, includes] of groups) {
227
+ budget.pattern = includes[0];
228
+ const explicit = explicitIgnoredDirectories(includes);
229
+ for (const path of (yield* enumerateUnder(fs, prefix, resolve, budget, true, explicit)).files) {
230
+ if (FileSet.matchesGlob(glob, path))
231
+ matched.add(path);
232
+ }
233
+ }
234
+ return [...matched].sort();
235
+ });
236
+ //# sourceMappingURL=FileEnumeration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileEnumeration.js","sourceRoot":"","sources":["../../../src/internal/FileEnumeration.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Workspace-relative file enumeration for glob and tree-artifact expansion.\n *\n * The host `glob` is deliberately not consulted. Two divergences make it the\n * wrong oracle for a declared pattern: the kernel `FileSystem` absolutizes\n * patterns against the workspace root and returns absolute paths, so a\n * workspace-relative matcher filters every result out; and Node's matcher\n * skips dotfiles, which `FileSet.matchesPattern` — and Bazel's glob — cover.\n * Walking `readDirectory` and filtering through `FileSet` keeps every\n * expansion byte-identical to the matcher the plan's overlap passes use, in\n * the one coordinate system declarations are written in.\n *\n * @since 0.1.0\n */\n\nimport * as KernelFileSystem from \"@smthrs/kernel/FileSystem\"\nimport * as FileSet from \"@smthrs/plan/FileSet\"\nimport * as Effect from \"effect/Effect\"\nimport type * as FileSystem from \"effect/FileSystem\"\nimport type * as PlatformError from \"effect/PlatformError\"\nimport * as Schema from \"effect/Schema\"\n\n/** Bounded metadata reads, preserving the input order and typed failures. */\nconst metadata = <A>(\n fs: FileSystem.FileSystem,\n paths: ReadonlyArray<string>,\n operation: \"stat\" | \"readDirectory\",\n fallback: (path: string) => Effect.Effect<A, PlatformError.PlatformError>\n): Effect.Effect<ReadonlyArray<A>, PlatformError.PlatformError> =>\n Effect.gen(function*() {\n const batch = KernelFileSystem.batch(fs)\n if (batch === undefined) {\n return yield* Effect.forEach(paths, (path) => fallback(path), {\n concurrency: KernelFileSystem.fallbackConcurrency\n })\n }\n const values: Array<A> = []\n for (let offset = 0; offset < paths.length; offset += batch.maxSize) {\n const response = yield* batch.execute(\n paths.slice(offset, offset + batch.maxSize).map((path) => ({ operation, path }))\n )\n for (const entry of [...response.entries].sort((a, b) => a.index - b.index)) {\n const value = yield* Effect.fromResult(entry.result)\n values.push(\n (value.operation === \"stat\"\n ? value.info\n : (value as Extract<KernelFileSystem.BatchValue, { readonly paths: unknown }>).paths) as A\n )\n }\n }\n return values\n })\n\n/**\n * The default maximum number of directory entries visited by one expansion.\n *\n * @since 1.0.0\n * @category constants\n */\nexport const defaultMaxEntries = 100_000\n\n/**\n * The stable error code returned when enumeration exceeds its safety bound.\n *\n * @since 1.0.0\n * @category errors\n */\nexport const FileEnumerationErrorCode = Schema.Literal(\"entry_limit_exceeded\")\n\n/**\n * The stable error code returned when enumeration exceeds its safety bound.\n *\n * @since 1.0.0\n * @category errors\n */\nexport type FileEnumerationErrorCode = typeof FileEnumerationErrorCode.Type\n\n/**\n * A workspace enumeration exceeded its configured entry limit.\n *\n * @since 1.0.0\n * @category errors\n */\nexport class FileEnumerationError extends Schema.TaggedError<FileEnumerationError>()(\n \"@smthrs/engine-store/FileEnumerationError\",\n {\n code: FileEnumerationErrorCode,\n message: Schema.String,\n pattern: Schema.String,\n limit: Schema.Number,\n cause: Schema.Unknown\n }\n) {}\n\n/**\n * How an enumeration talks to a FileSystem that does not speak\n * workspace-relative paths.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface EnumerationOptions {\n /**\n * Maps a workspace-relative path (`\"\"` names the workspace root) to the\n * coordinate the FileSystem expects. Defaults to the identity, with `\"\"`\n * spelled `\".\"`.\n */\n readonly resolve?: (path: string) => string\n /**\n * Maximum number of directory entries one expansion may visit. Defaults to\n * {@link defaultMaxEntries}. Enumeration fails instead of returning a\n * partial result when the walk exceeds this bound.\n */\n readonly maxEntries?: number | undefined\n}\n\n/** @internal */\nconst defaultResolve = (path: string): string => path === \"\" ? \".\" : path\n\nconst ignoredDirectoryNames = new Set([\".git\", \".jj\", \"node_modules\"])\n\ninterface EnumerationBudget {\n readonly limit: number\n count: number\n pattern: string\n}\n\nconst budgetFor = (pattern: string, options: EnumerationOptions): EnumerationBudget => ({\n limit: options.maxEntries ?? defaultMaxEntries,\n count: 0,\n pattern\n})\n\nconst explicitIgnoredDirectories = (patterns: Iterable<string>): ReadonlySet<string> => {\n const explicit = new Set<string>()\n for (const pattern of patterns) {\n for (const part of pattern.replaceAll(\"\\\\\", \"/\").split(\"/\")) {\n if (ignoredDirectoryNames.has(part)) explicit.add(part)\n }\n }\n return explicit\n}\n\nconst visit = (budget: EnumerationBudget): Effect.Effect<void, FileEnumerationError> => {\n budget.count += 1\n if (budget.count <= budget.limit) return Effect.void\n const message = `enumerating pattern ${JSON.stringify(budget.pattern)} exceeded the ${budget.limit}-entry limit`\n return Effect.fail(\n new FileEnumerationError({\n code: \"entry_limit_exceeded\",\n pattern: budget.pattern,\n limit: budget.limit,\n message,\n cause: new RangeError(message)\n })\n )\n}\n\ninterface EnumeratedEntries {\n readonly files: ReadonlyArray<string>\n readonly directories: ReadonlyArray<string>\n}\n\nconst enumerateUnder = (\n fs: FileSystem.FileSystem,\n dir: string,\n resolve: (path: string) => string,\n budget: EnumerationBudget,\n pruneIgnoredDirectories: boolean,\n explicit: ReadonlySet<string> = new Set()\n): Effect.Effect<EnumeratedEntries, PlatformError.PlatformError | FileEnumerationError> =>\n Effect.gen(function*() {\n // A directory that is not there enumerates to nothing, and its own\n // listing reports that with `NotFound` — so no `exists` probe precedes\n // it. The probe asked the question the very next call answers anyway, and\n // on a confined host every host call is one CPython fork\n // (`@smthrs/platform-node/AtomicFileSystem`), so it doubled the cost of\n // reaching the walk root. Only the root is probed this way; a subtree\n // discovered by `stat` inside the walk is read without a net, exactly as\n // before, so a listing that refuses there still fails the expansion.\n const root = yield* metadata(fs, [resolve(dir)], \"readDirectory\", fs.readDirectory).pipe(\n Effect.map((values) => values[0]!),\n Effect.catchReason(\"PlatformError\", \"NotFound\", () => Effect.succeed(undefined))\n )\n // The absent root is the one case that reports no directories at all: a\n // tree replay must not be told to prune scaffolding that never existed.\n if (root === undefined) return { files: [], directories: [] }\n\n const files: Array<string> = []\n const directories: Array<string> = [dir]\n const pending = [{ path: dir, entries: [...root].sort(), index: 0 }]\n const size = KernelFileSystem.batch(fs)?.maxSize ?? KernelFileSystem.fallbackConcurrency\n while (pending.length > 0) {\n const paths: Array<string> = []\n // Fill one batch from all queued listings. A tree with one file in each\n // of many sibling directories must not start one helper per leaf.\n while (paths.length < size && pending.length > 0) {\n const current = pending[pending.length - 1]!\n if (current.index === current.entries.length) {\n pending.pop()\n continue\n }\n yield* visit(budget)\n const relative = current.entries[current.index++]!.replaceAll(\"\\\\\", \"/\")\n paths.push(current.path === \"\" ? relative : `${current.path}/${relative}`)\n }\n const infos = yield* metadata(fs, paths.map(resolve), \"stat\", fs.stat)\n const children: Array<string> = []\n for (const [index, path] of paths.entries()) {\n const info = infos[index]!\n if (info.type === \"File\") {\n files.push(path)\n continue\n }\n if (info.type !== \"Directory\") continue\n const name = path.slice(path.lastIndexOf(\"/\") + 1)\n if (pruneIgnoredDirectories && ignoredDirectoryNames.has(name) && !explicit.has(name)) continue\n directories.push(path)\n children.push(path)\n }\n const listings = yield* metadata(fs, children.map(resolve), \"readDirectory\", fs.readDirectory)\n for (const [index, path] of children.entries()) {\n pending.push({ path, entries: [...listings[index]!].sort(), index: 0 })\n }\n }\n return { files: files.sort(), directories: directories.sort() }\n })\n\n/**\n * Every file under `dir` (workspace-relative; `\"\"` for the workspace root),\n * as sorted workspace-relative paths. A missing directory enumerates to\n * nothing — a zero-match expansion is legal, so absence is a fact rather than\n * a failure. This declared-tree walk does not prune `.git`, `.jj`, or\n * `node_modules`. Those names are part of the tree identity and must be\n * captured and restored exactly.\n *\n * @since 0.1.0\n * @category accessors\n */\nexport const filesUnder = (\n fs: FileSystem.FileSystem,\n dir: string,\n options: EnumerationOptions = {}\n): Effect.Effect<ReadonlyArray<string>, PlatformError.PlatformError | FileEnumerationError> =>\n Effect.gen(function*() {\n const resolve = options.resolve ?? defaultResolve\n return (yield* enumerateUnder(\n fs,\n dir,\n resolve,\n budgetFor(dir === \"\" ? \"**\" : `${dir}/**`, options),\n false\n )).files\n })\n\n/**\n * Every file and every directory under `dir` (workspace-relative, non-empty),\n * as sorted workspace-relative paths. The directory list includes `dir`\n * itself, so a tree replay can audit exactly the scaffolding it may have to\n * prune. A missing directory enumerates to nothing — a tree that matched\n * nothing is legal, so absence is a fact rather than a failure. This\n * declared-tree walk does not prune `.git`, `.jj`, or `node_modules` because\n * replay needs every directory and file that contributes to the tree.\n *\n * @since 0.1.0\n * @category accessors\n */\nexport const entriesUnder = (\n fs: FileSystem.FileSystem,\n dir: string,\n options: EnumerationOptions = {}\n): Effect.Effect<\n { readonly files: ReadonlyArray<string>; readonly directories: ReadonlyArray<string> },\n PlatformError.PlatformError | FileEnumerationError\n> =>\n Effect.gen(function*() {\n const resolve = options.resolve ?? defaultResolve\n return yield* enumerateUnder(fs, dir, resolve, budgetFor(`${dir}/**`, options), false)\n })\n\n/**\n * The longest directory prefix of a pattern that contains no wildcard — the\n * subtree a walk has to visit. `src/**` walks `src`; `*.txt` walks the root.\n *\n * @since 0.1.0\n * @category accessors\n */\nexport const staticPrefix = (pattern: string): string => {\n const segments = pattern.replaceAll(\"\\\\\", \"/\").split(\"/\")\n const fixed: Array<string> = []\n for (const segment of segments.slice(0, -1)) {\n if (segment.includes(\"*\")) break\n fixed.push(segment)\n }\n return fixed.join(\"/\")\n}\n\n/**\n * Expands one glob against the workspace: walk each include's static prefix,\n * keep the files `FileSet.matchesGlob` covers. Sorted and deduplicated, so\n * expansion is deterministic. A glob walk prunes `.git`, `.jj`, and\n * `node_modules` unless an include sharing that walk prefix names the\n * directory as a path segment. This keeps a root glob from traversing\n * repository metadata and dependency trees while preserving an explicitly\n * declared match after either a fixed or wildcard segment.\n *\n * @since 0.1.0\n * @category accessors\n */\nexport const expandGlob = (\n fs: FileSystem.FileSystem,\n glob: FileSet.Glob,\n options: EnumerationOptions = {}\n): Effect.Effect<ReadonlyArray<string>, PlatformError.PlatformError | FileEnumerationError> =>\n Effect.gen(function*() {\n const resolve = options.resolve ?? defaultResolve\n const matched = new Set<string>()\n const budget = budgetFor(\"\", options)\n const groups = new Map<string, Array<string>>()\n for (const include of glob.include) {\n const prefix = staticPrefix(include)\n const group = groups.get(prefix)\n if (group === undefined) groups.set(prefix, [include])\n else group.push(include)\n }\n for (const [prefix, includes] of groups) {\n budget.pattern = includes[0]!\n const explicit = explicitIgnoredDirectories(includes)\n for (const path of (yield* enumerateUnder(fs, prefix, resolve, budget, true, explicit)).files) {\n if (FileSet.matchesGlob(glob, path)) matched.add(path)\n }\n }\n return [...matched].sort()\n })\n"]}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Value predicates a host can answer without running the value's own code.
3
+ *
4
+ * Projecting a settlement the flow's codec rejected must not execute user
5
+ * code. A `Proxy` runs its handler on every reflective read, and the point of
6
+ * `./ExitEncoding.ts` is to describe the value a round is already failing on,
7
+ * not to hand that value another turn on the terminal-transition path. Node
8
+ * answers the question from an internal slot, through `node:util/types`. No
9
+ * ECMAScript operation does: virtualization is transparent by design, so a
10
+ * proxy and its target are indistinguishable to portable code.
11
+ *
12
+ * Binding `node:util/types` with a static import states that answer as a
13
+ * build-time dependency, and that is wrong twice. `@smthrs/engine-store` is a
14
+ * browser entry point in the release policy and in
15
+ * `scripts/browser-contract.mjs`, so the import fails `pnpm run browser`; and
16
+ * it claims a capability every host has, which is false. This module reads the
17
+ * predicates off the host instead, the way `../OwnerIdentity.ts` reads a
18
+ * process id: `process.getBuiltinModule` when the host offers it, portable
19
+ * fallbacks when it does not. Node and Bun both take the first path, so on the
20
+ * runtimes the durable engine supports the behavior is exactly what the static
21
+ * import gave. A browser takes the second, where proxy detection does not
22
+ * exist and this module says so rather than pretending.
23
+ *
24
+ * The lookup grants no authority, which is why it is resolved here rather than
25
+ * routed through a `HostServices` port. The whole surface of
26
+ * `node:util/types` is predicates over values already in hand: no filesystem,
27
+ * no process, no clock, no randomness. A port exists to keep nondeterminism
28
+ * and I/O out of a composition, and a pure type test is neither.
29
+ *
30
+ * @since 1.0.0
31
+ */
32
+ /**
33
+ * The part of a host this module reads.
34
+ *
35
+ * `process.getBuiltinModule` is the synchronous built-in accessor Node has
36
+ * exposed since 22.3 and Bun since 1.2. It is typed structurally rather than
37
+ * imported from `@types/node` so the module carries no Node binding at all.
38
+ *
39
+ * @since 1.0.0
40
+ * @category models
41
+ */
42
+ export interface BuiltinSource {
43
+ readonly getBuiltinModule?: ((id: string) => unknown) | undefined;
44
+ }
45
+ /**
46
+ * The predicates a projection needs.
47
+ *
48
+ * @since 1.0.0
49
+ * @category models
50
+ */
51
+ export interface Reflection {
52
+ /** Whether reading this object would run a proxy handler. */
53
+ readonly isProxy: (value: object) => boolean;
54
+ /** Whether this value carries the error internal slot, in any realm. */
55
+ readonly isNativeError: (value: unknown) => boolean;
56
+ }
57
+ /**
58
+ * Builds the reflection one host can supply.
59
+ *
60
+ * Each predicate is taken only when the host names it as a function, so a host
61
+ * that grows a partial `node:util/types` shim keeps the portable answer for
62
+ * whatever it left out. Both are read as plain functions of their argument,
63
+ * which is what Node and Bun export.
64
+ *
65
+ * @since 1.0.0
66
+ * @category constructors
67
+ */
68
+ export declare const make: (source: BuiltinSource | undefined) => Reflection;
69
+ /**
70
+ * The reflection this process runs with.
71
+ *
72
+ * Read off `globalThis` rather than through a bare `process` reference, so a
73
+ * browser bundle sees `undefined` here and falls through to the portable
74
+ * predicates.
75
+ *
76
+ * @since 1.0.0
77
+ * @category constants
78
+ */
79
+ export declare const host: Reflection;
80
+ //# sourceMappingURL=HostReflection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostReflection.d.ts","sourceRoot":"","sources":["../../../src/internal/HostReflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;CAClE;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CACpD;AAyCD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,GAAI,QAAQ,aAAa,GAAG,SAAS,KAAG,UAMxD,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,EAAE,UAA+E,CAAA"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Value predicates a host can answer without running the value's own code.
3
+ *
4
+ * Projecting a settlement the flow's codec rejected must not execute user
5
+ * code. A `Proxy` runs its handler on every reflective read, and the point of
6
+ * `./ExitEncoding.ts` is to describe the value a round is already failing on,
7
+ * not to hand that value another turn on the terminal-transition path. Node
8
+ * answers the question from an internal slot, through `node:util/types`. No
9
+ * ECMAScript operation does: virtualization is transparent by design, so a
10
+ * proxy and its target are indistinguishable to portable code.
11
+ *
12
+ * Binding `node:util/types` with a static import states that answer as a
13
+ * build-time dependency, and that is wrong twice. `@smthrs/engine-store` is a
14
+ * browser entry point in the release policy and in
15
+ * `scripts/browser-contract.mjs`, so the import fails `pnpm run browser`; and
16
+ * it claims a capability every host has, which is false. This module reads the
17
+ * predicates off the host instead, the way `../OwnerIdentity.ts` reads a
18
+ * process id: `process.getBuiltinModule` when the host offers it, portable
19
+ * fallbacks when it does not. Node and Bun both take the first path, so on the
20
+ * runtimes the durable engine supports the behavior is exactly what the static
21
+ * import gave. A browser takes the second, where proxy detection does not
22
+ * exist and this module says so rather than pretending.
23
+ *
24
+ * The lookup grants no authority, which is why it is resolved here rather than
25
+ * routed through a `HostServices` port. The whole surface of
26
+ * `node:util/types` is predicates over values already in hand: no filesystem,
27
+ * no process, no clock, no randomness. A port exists to keep nondeterminism
28
+ * and I/O out of a composition, and a pure type test is neither.
29
+ *
30
+ * @since 1.0.0
31
+ */
32
+ /**
33
+ * The stance of a host that cannot detect a proxy.
34
+ *
35
+ * Answering no leaves the projection on its ordinary defenses: own-data reads
36
+ * only, a `seen` set, a depth bound, and a `try` that turns any refusal into
37
+ * `[unrepresentable]`. A trap can still run there, which is the state every
38
+ * host was in before proxy detection existed. The alternative, answering yes
39
+ * for every object, would erase every diagnostic projection in a browser to
40
+ * buy protection against a case no browser has produced.
41
+ */
42
+ const undetectableProxy = () => false;
43
+ /**
44
+ * The portable native-error test.
45
+ *
46
+ * `Object.prototype.toString` reports `[object Error]` for a value carrying
47
+ * the error internal slot, including one built in another realm, which is the
48
+ * property this predicate is used for. It reads `Symbol.toStringTag`, so a
49
+ * value that defines that symbol as a getter can run code; every caller runs
50
+ * it inside the `try` that answers `[unrepresentable]`.
51
+ */
52
+ const taggedNativeError = (value) => Object.prototype.toString.call(value) === "[object Error]";
53
+ /**
54
+ * The predicate module a host offers, when it offers one.
55
+ *
56
+ * A host that implements the accessor but rejects the id must degrade rather
57
+ * than raise: this module is imported by the path that exists so a terminal
58
+ * write can never fail.
59
+ */
60
+ const builtinTypes = (source) => {
61
+ try {
62
+ const types = source?.getBuiltinModule?.("node:util/types");
63
+ return typeof types === "object" && types !== null ? types : undefined;
64
+ }
65
+ catch {
66
+ return undefined;
67
+ }
68
+ };
69
+ /**
70
+ * Builds the reflection one host can supply.
71
+ *
72
+ * Each predicate is taken only when the host names it as a function, so a host
73
+ * that grows a partial `node:util/types` shim keeps the portable answer for
74
+ * whatever it left out. Both are read as plain functions of their argument,
75
+ * which is what Node and Bun export.
76
+ *
77
+ * @since 1.0.0
78
+ * @category constructors
79
+ */
80
+ export const make = (source) => {
81
+ const types = builtinTypes(source);
82
+ return {
83
+ isProxy: typeof types?.isProxy === "function" ? types.isProxy : undetectableProxy,
84
+ isNativeError: typeof types?.isNativeError === "function" ? types.isNativeError : taggedNativeError
85
+ };
86
+ };
87
+ /**
88
+ * The reflection this process runs with.
89
+ *
90
+ * Read off `globalThis` rather than through a bare `process` reference, so a
91
+ * browser bundle sees `undefined` here and falls through to the portable
92
+ * predicates.
93
+ *
94
+ * @since 1.0.0
95
+ * @category constants
96
+ */
97
+ export const host = make(globalThis.process);
98
+ //# sourceMappingURL=HostReflection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostReflection.js","sourceRoot":"","sources":["../../../src/internal/HostReflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA6BH;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,GAAY,EAAE,CAAC,KAAK,CAAA;AAE9C;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAA;AAEjH;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,CAAC,MAAiC,EAAmC,EAAE;IAC1F,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,EAAE,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,CAAA;QAC3D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAiC,EAAc,EAAE;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAClC,OAAO;QACL,OAAO,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB;QACjF,aAAa,EAAE,OAAO,KAAK,EAAE,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB;KACpG,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAe,IAAI,CAAE,UAAmD,CAAC,OAAO,CAAC,CAAA","sourcesContent":["/**\n * Value predicates a host can answer without running the value's own code.\n *\n * Projecting a settlement the flow's codec rejected must not execute user\n * code. A `Proxy` runs its handler on every reflective read, and the point of\n * `./ExitEncoding.ts` is to describe the value a round is already failing on,\n * not to hand that value another turn on the terminal-transition path. Node\n * answers the question from an internal slot, through `node:util/types`. No\n * ECMAScript operation does: virtualization is transparent by design, so a\n * proxy and its target are indistinguishable to portable code.\n *\n * Binding `node:util/types` with a static import states that answer as a\n * build-time dependency, and that is wrong twice. `@smthrs/engine-store` is a\n * browser entry point in the release policy and in\n * `scripts/browser-contract.mjs`, so the import fails `pnpm run browser`; and\n * it claims a capability every host has, which is false. This module reads the\n * predicates off the host instead, the way `../OwnerIdentity.ts` reads a\n * process id: `process.getBuiltinModule` when the host offers it, portable\n * fallbacks when it does not. Node and Bun both take the first path, so on the\n * runtimes the durable engine supports the behavior is exactly what the static\n * import gave. A browser takes the second, where proxy detection does not\n * exist and this module says so rather than pretending.\n *\n * The lookup grants no authority, which is why it is resolved here rather than\n * routed through a `HostServices` port. The whole surface of\n * `node:util/types` is predicates over values already in hand: no filesystem,\n * no process, no clock, no randomness. A port exists to keep nondeterminism\n * and I/O out of a composition, and a pure type test is neither.\n *\n * @since 1.0.0\n */\n\n/**\n * The part of a host this module reads.\n *\n * `process.getBuiltinModule` is the synchronous built-in accessor Node has\n * exposed since 22.3 and Bun since 1.2. It is typed structurally rather than\n * imported from `@types/node` so the module carries no Node binding at all.\n *\n * @since 1.0.0\n * @category models\n */\nexport interface BuiltinSource {\n readonly getBuiltinModule?: ((id: string) => unknown) | undefined\n}\n\n/**\n * The predicates a projection needs.\n *\n * @since 1.0.0\n * @category models\n */\nexport interface Reflection {\n /** Whether reading this object would run a proxy handler. */\n readonly isProxy: (value: object) => boolean\n /** Whether this value carries the error internal slot, in any realm. */\n readonly isNativeError: (value: unknown) => boolean\n}\n\n/**\n * The stance of a host that cannot detect a proxy.\n *\n * Answering no leaves the projection on its ordinary defenses: own-data reads\n * only, a `seen` set, a depth bound, and a `try` that turns any refusal into\n * `[unrepresentable]`. A trap can still run there, which is the state every\n * host was in before proxy detection existed. The alternative, answering yes\n * for every object, would erase every diagnostic projection in a browser to\n * buy protection against a case no browser has produced.\n */\nconst undetectableProxy = (): boolean => false\n\n/**\n * The portable native-error test.\n *\n * `Object.prototype.toString` reports `[object Error]` for a value carrying\n * the error internal slot, including one built in another realm, which is the\n * property this predicate is used for. It reads `Symbol.toStringTag`, so a\n * value that defines that symbol as a getter can run code; every caller runs\n * it inside the `try` that answers `[unrepresentable]`.\n */\nconst taggedNativeError = (value: unknown): boolean => Object.prototype.toString.call(value) === \"[object Error]\"\n\n/**\n * The predicate module a host offers, when it offers one.\n *\n * A host that implements the accessor but rejects the id must degrade rather\n * than raise: this module is imported by the path that exists so a terminal\n * write can never fail.\n */\nconst builtinTypes = (source: BuiltinSource | undefined): Partial<Reflection> | undefined => {\n try {\n const types = source?.getBuiltinModule?.(\"node:util/types\")\n return typeof types === \"object\" && types !== null ? types : undefined\n } catch {\n return undefined\n }\n}\n\n/**\n * Builds the reflection one host can supply.\n *\n * Each predicate is taken only when the host names it as a function, so a host\n * that grows a partial `node:util/types` shim keeps the portable answer for\n * whatever it left out. Both are read as plain functions of their argument,\n * which is what Node and Bun export.\n *\n * @since 1.0.0\n * @category constructors\n */\nexport const make = (source: BuiltinSource | undefined): Reflection => {\n const types = builtinTypes(source)\n return {\n isProxy: typeof types?.isProxy === \"function\" ? types.isProxy : undetectableProxy,\n isNativeError: typeof types?.isNativeError === \"function\" ? types.isNativeError : taggedNativeError\n }\n}\n\n/**\n * The reflection this process runs with.\n *\n * Read off `globalThis` rather than through a bare `process` reference, so a\n * browser bundle sees `undefined` here and falls through to the portable\n * predicates.\n *\n * @since 1.0.0\n * @category constants\n */\nexport const host: Reflection = make((globalThis as { readonly process?: BuiltinSource }).process)\n"]}