@smthrs/flow 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 (654) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/LICENSE +21 -0
  3. package/README.md +210 -2
  4. package/THIRD_PARTY_NOTICES.md +52 -0
  5. package/dist/cjs/Action/Action.d.ts +250 -0
  6. package/dist/cjs/Action/Action.d.ts.map +1 -0
  7. package/dist/cjs/Action/Action.js +42 -0
  8. package/dist/cjs/Action/Action.js.map +7 -0
  9. package/dist/cjs/Action/AttemptTimedOut.d.ts +33 -0
  10. package/dist/cjs/Action/AttemptTimedOut.d.ts.map +1 -0
  11. package/dist/cjs/Action/AttemptTimedOut.js +51 -0
  12. package/dist/cjs/Action/AttemptTimedOut.js.map +7 -0
  13. package/dist/cjs/Action/BoundaryMode.d.ts +29 -0
  14. package/dist/cjs/Action/BoundaryMode.d.ts.map +1 -0
  15. package/dist/cjs/Action/BoundaryMode.js +36 -0
  16. package/dist/cjs/Action/BoundaryMode.js.map +7 -0
  17. package/dist/cjs/Action/CacheEnvironment.d.ts +158 -0
  18. package/dist/cjs/Action/CacheEnvironment.d.ts.map +1 -0
  19. package/dist/cjs/Action/CacheEnvironment.js +57 -0
  20. package/dist/cjs/Action/CacheEnvironment.js.map +7 -0
  21. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  22. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  23. package/dist/cjs/Action/ConcurrentKeylessDispatch.js +46 -0
  24. package/dist/cjs/Action/ConcurrentKeylessDispatch.js.map +7 -0
  25. package/dist/cjs/Action/Context.d.ts +131 -0
  26. package/dist/cjs/Action/Context.d.ts.map +1 -0
  27. package/dist/cjs/Action/Context.js +68 -0
  28. package/dist/cjs/Action/Context.js.map +7 -0
  29. package/dist/cjs/Action/DuplicateImplementation.d.ts +20 -0
  30. package/dist/cjs/Action/DuplicateImplementation.d.ts.map +1 -0
  31. package/dist/cjs/Action/DuplicateImplementation.js +46 -0
  32. package/dist/cjs/Action/DuplicateImplementation.js.map +7 -0
  33. package/dist/cjs/Action/FileBoundary.d.ts +59 -0
  34. package/dist/cjs/Action/FileBoundary.d.ts.map +1 -0
  35. package/dist/cjs/Action/FileBoundary.js +81 -0
  36. package/dist/cjs/Action/FileBoundary.js.map +7 -0
  37. package/dist/cjs/Action/FileInput.d.ts +28 -0
  38. package/dist/cjs/Action/FileInput.d.ts.map +1 -0
  39. package/dist/cjs/Action/FileInput.js +42 -0
  40. package/dist/cjs/Action/FileInput.js.map +7 -0
  41. package/dist/cjs/Action/Filegroup.d.ts +16 -0
  42. package/dist/cjs/Action/Filegroup.d.ts.map +1 -0
  43. package/dist/cjs/Action/Filegroup.js +27 -0
  44. package/dist/cjs/Action/Filegroup.js.map +7 -0
  45. package/dist/cjs/Action/Glob.d.ts +8 -0
  46. package/dist/cjs/Action/Glob.d.ts.map +1 -0
  47. package/dist/cjs/Action/Glob.js +28 -0
  48. package/dist/cjs/Action/Glob.js.map +7 -0
  49. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts +26 -0
  50. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  51. package/dist/cjs/Action/ImplementationVersionMismatch.js +45 -0
  52. package/dist/cjs/Action/ImplementationVersionMismatch.js.map +7 -0
  53. package/dist/cjs/Action/Implementations.d.ts +114 -0
  54. package/dist/cjs/Action/Implementations.d.ts.map +1 -0
  55. package/dist/cjs/Action/Implementations.js +65 -0
  56. package/dist/cjs/Action/Implementations.js.map +7 -0
  57. package/dist/cjs/Action/InfraInterrupt.d.ts +26 -0
  58. package/dist/cjs/Action/InfraInterrupt.d.ts.map +1 -0
  59. package/dist/cjs/Action/InfraInterrupt.js +46 -0
  60. package/dist/cjs/Action/InfraInterrupt.js.map +7 -0
  61. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  62. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  63. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js +54 -0
  64. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js.map +7 -0
  65. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  66. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  67. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js +47 -0
  68. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +7 -0
  69. package/dist/cjs/Action/StepIdentity.d.ts +153 -0
  70. package/dist/cjs/Action/StepIdentity.d.ts.map +1 -0
  71. package/dist/cjs/Action/StepIdentity.js +75 -0
  72. package/dist/cjs/Action/StepIdentity.js.map +7 -0
  73. package/dist/cjs/Action/TreeArtifact.d.ts +8 -0
  74. package/dist/cjs/Action/TreeArtifact.d.ts.map +1 -0
  75. package/dist/cjs/Action/TreeArtifact.js +25 -0
  76. package/dist/cjs/Action/TreeArtifact.js.map +7 -0
  77. package/dist/cjs/Action/TypeId.d.ts +8 -0
  78. package/dist/cjs/Action/TypeId.d.ts.map +1 -0
  79. package/dist/cjs/Action/TypeId.js +25 -0
  80. package/dist/cjs/Action/TypeId.js.map +7 -0
  81. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  82. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  83. package/dist/cjs/Action/UncanonicalIdempotencyKey.js +51 -0
  84. package/dist/cjs/Action/UncanonicalIdempotencyKey.js.map +7 -0
  85. package/dist/cjs/Action/idempotencyKey.d.ts +21 -0
  86. package/dist/cjs/Action/idempotencyKey.d.ts.map +1 -0
  87. package/dist/cjs/Action/idempotencyKey.js +59 -0
  88. package/dist/cjs/Action/idempotencyKey.js.map +7 -0
  89. package/dist/cjs/Action/index.d.ts +29 -0
  90. package/dist/cjs/Action/index.d.ts.map +1 -0
  91. package/dist/cjs/Action/index.js +60 -0
  92. package/dist/cjs/Action/index.js.map +7 -0
  93. package/dist/cjs/Action/make.d.ts +128 -0
  94. package/dist/cjs/Action/make.d.ts.map +1 -0
  95. package/dist/cjs/Action/make.js +373 -0
  96. package/dist/cjs/Action/make.js.map +7 -0
  97. package/dist/cjs/Action/raceAll.d.ts +21 -0
  98. package/dist/cjs/Action/raceAll.d.ts.map +1 -0
  99. package/dist/cjs/Action/raceAll.js +46 -0
  100. package/dist/cjs/Action/raceAll.js.map +7 -0
  101. package/dist/cjs/Action/retry.d.ts +19 -0
  102. package/dist/cjs/Action/retry.d.ts.map +1 -0
  103. package/dist/cjs/Action/retry.js +75 -0
  104. package/dist/cjs/Action/retry.js.map +7 -0
  105. package/dist/cjs/Deadline.d.ts +105 -0
  106. package/dist/cjs/Deadline.d.ts.map +1 -0
  107. package/dist/cjs/Deadline.js +104 -0
  108. package/dist/cjs/Deadline.js.map +7 -0
  109. package/dist/cjs/DurableClock.d.ts +61 -0
  110. package/dist/cjs/DurableClock.d.ts.map +1 -0
  111. package/dist/cjs/DurableClock.js +90 -0
  112. package/dist/cjs/DurableClock.js.map +7 -0
  113. package/dist/cjs/DurableDeferred.d.ts +311 -0
  114. package/dist/cjs/DurableDeferred.d.ts.map +1 -0
  115. package/dist/cjs/DurableDeferred.js +322 -0
  116. package/dist/cjs/DurableDeferred.js.map +7 -0
  117. package/dist/cjs/DurableQueue.d.ts +160 -0
  118. package/dist/cjs/DurableQueue.d.ts.map +1 -0
  119. package/dist/cjs/DurableQueue.js +229 -0
  120. package/dist/cjs/DurableQueue.js.map +7 -0
  121. package/dist/cjs/ExternalJob.d.ts +179 -0
  122. package/dist/cjs/ExternalJob.d.ts.map +1 -0
  123. package/dist/cjs/ExternalJob.js +338 -0
  124. package/dist/cjs/ExternalJob.js.map +7 -0
  125. package/dist/cjs/Fault.d.ts +131 -0
  126. package/dist/cjs/Fault.d.ts.map +1 -0
  127. package/dist/cjs/Fault.js +157 -0
  128. package/dist/cjs/Fault.js.map +7 -0
  129. package/dist/cjs/Flow/Annotations.d.ts +245 -0
  130. package/dist/cjs/Flow/Annotations.d.ts.map +1 -0
  131. package/dist/cjs/Flow/Annotations.js +72 -0
  132. package/dist/cjs/Flow/Annotations.js.map +7 -0
  133. package/dist/cjs/Flow/CapabilityCeiling.d.ts +21 -0
  134. package/dist/cjs/Flow/CapabilityCeiling.d.ts.map +1 -0
  135. package/dist/cjs/Flow/CapabilityCeiling.js +49 -0
  136. package/dist/cjs/Flow/CapabilityCeiling.js.map +7 -0
  137. package/dist/cjs/Flow/DeadlineExceeded.d.ts +33 -0
  138. package/dist/cjs/Flow/DeadlineExceeded.d.ts.map +1 -0
  139. package/dist/cjs/Flow/DeadlineExceeded.js +52 -0
  140. package/dist/cjs/Flow/DeadlineExceeded.js.map +7 -0
  141. package/dist/cjs/Flow/ExecutionIdRequired.d.ts +25 -0
  142. package/dist/cjs/Flow/ExecutionIdRequired.d.ts.map +1 -0
  143. package/dist/cjs/Flow/ExecutionIdRequired.js +46 -0
  144. package/dist/cjs/Flow/ExecutionIdRequired.js.map +7 -0
  145. package/dist/cjs/Flow/ExecutionIds.d.ts +80 -0
  146. package/dist/cjs/Flow/ExecutionIds.d.ts.map +1 -0
  147. package/dist/cjs/Flow/ExecutionIds.js +66 -0
  148. package/dist/cjs/Flow/ExecutionIds.js.map +7 -0
  149. package/dist/cjs/Flow/Flow.d.ts +422 -0
  150. package/dist/cjs/Flow/Flow.d.ts.map +1 -0
  151. package/dist/cjs/Flow/Flow.js +17 -0
  152. package/dist/cjs/Flow/Flow.js.map +7 -0
  153. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts +35 -0
  154. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  155. package/dist/cjs/Flow/MaxRoundsExceeded.js +50 -0
  156. package/dist/cjs/Flow/MaxRoundsExceeded.js.map +7 -0
  157. package/dist/cjs/Flow/Outcome.d.ts +162 -0
  158. package/dist/cjs/Flow/Outcome.d.ts.map +1 -0
  159. package/dist/cjs/Flow/Outcome.js +80 -0
  160. package/dist/cjs/Flow/Outcome.js.map +7 -0
  161. package/dist/cjs/Flow/Result.d.ts +186 -0
  162. package/dist/cjs/Flow/Result.d.ts.map +1 -0
  163. package/dist/cjs/Flow/Result.js +159 -0
  164. package/dist/cjs/Flow/Result.js.map +7 -0
  165. package/dist/cjs/Flow/Runtime.d.ts +98 -0
  166. package/dist/cjs/Flow/Runtime.d.ts.map +1 -0
  167. package/dist/cjs/Flow/Runtime.js +160 -0
  168. package/dist/cjs/Flow/Runtime.js.map +7 -0
  169. package/dist/cjs/Flow/TypeId.d.ts +8 -0
  170. package/dist/cjs/Flow/TypeId.d.ts.map +1 -0
  171. package/dist/cjs/Flow/TypeId.js +25 -0
  172. package/dist/cjs/Flow/TypeId.js.map +7 -0
  173. package/dist/cjs/Flow/index.d.ts +17 -0
  174. package/dist/cjs/Flow/index.d.ts.map +1 -0
  175. package/dist/cjs/Flow/index.js +29 -0
  176. package/dist/cjs/Flow/index.js.map +7 -0
  177. package/dist/cjs/Flow/internal.d.ts +34 -0
  178. package/dist/cjs/Flow/internal.d.ts.map +1 -0
  179. package/dist/cjs/Flow/internal.js +187 -0
  180. package/dist/cjs/Flow/internal.js.map +7 -0
  181. package/dist/cjs/Flow/make.d.ts +134 -0
  182. package/dist/cjs/Flow/make.d.ts.map +1 -0
  183. package/dist/cjs/Flow/make.js +104 -0
  184. package/dist/cjs/Flow/make.js.map +7 -0
  185. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  186. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  187. package/dist/cjs/FlowRuntime/CancelRequestFailed.js +51 -0
  188. package/dist/cjs/FlowRuntime/CancelRequestFailed.js.map +7 -0
  189. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  190. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  191. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js +55 -0
  192. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js.map +7 -0
  193. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  194. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  195. package/dist/cjs/FlowRuntime/FlowCycleDetected.js +49 -0
  196. package/dist/cjs/FlowRuntime/FlowCycleDetected.js.map +7 -0
  197. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  198. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  199. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js +53 -0
  200. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js.map +7 -0
  201. package/dist/cjs/FlowRuntime/FlowInstance.d.ts +115 -0
  202. package/dist/cjs/FlowRuntime/FlowInstance.d.ts.map +1 -0
  203. package/dist/cjs/FlowRuntime/FlowInstance.js +37 -0
  204. package/dist/cjs/FlowRuntime/FlowInstance.js.map +7 -0
  205. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts +198 -0
  206. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  207. package/dist/cjs/FlowRuntime/FlowRuntime.js +37 -0
  208. package/dist/cjs/FlowRuntime/FlowRuntime.js.map +7 -0
  209. package/dist/cjs/FlowRuntime/NodeRecord.d.ts +175 -0
  210. package/dist/cjs/FlowRuntime/NodeRecord.d.ts.map +1 -0
  211. package/dist/cjs/FlowRuntime/NodeRecord.js +17 -0
  212. package/dist/cjs/FlowRuntime/NodeRecord.js.map +7 -0
  213. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  214. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  215. package/dist/cjs/FlowRuntime/WaitingAnnotation.js +53 -0
  216. package/dist/cjs/FlowRuntime/WaitingAnnotation.js.map +7 -0
  217. package/dist/cjs/FlowRuntime/index.d.ts +14 -0
  218. package/dist/cjs/FlowRuntime/index.d.ts.map +1 -0
  219. package/dist/cjs/FlowRuntime/index.js +26 -0
  220. package/dist/cjs/FlowRuntime/index.js.map +7 -0
  221. package/dist/cjs/Graph.d.ts +325 -0
  222. package/dist/cjs/Graph.d.ts.map +1 -0
  223. package/dist/cjs/Graph.js +1021 -0
  224. package/dist/cjs/Graph.js.map +7 -0
  225. package/dist/cjs/HumanTask.d.ts +440 -0
  226. package/dist/cjs/HumanTask.d.ts.map +1 -0
  227. package/dist/cjs/HumanTask.js +413 -0
  228. package/dist/cjs/HumanTask.js.map +7 -0
  229. package/dist/cjs/Interpreter.d.ts +222 -0
  230. package/dist/cjs/Interpreter.d.ts.map +1 -0
  231. package/dist/cjs/Interpreter.js +888 -0
  232. package/dist/cjs/Interpreter.js.map +7 -0
  233. package/dist/cjs/Poll.d.ts +238 -0
  234. package/dist/cjs/Poll.d.ts.map +1 -0
  235. package/dist/cjs/Poll.js +150 -0
  236. package/dist/cjs/Poll.js.map +7 -0
  237. package/dist/cjs/RetryPolicy.d.ts +273 -0
  238. package/dist/cjs/RetryPolicy.d.ts.map +1 -0
  239. package/dist/cjs/RetryPolicy.js +251 -0
  240. package/dist/cjs/RetryPolicy.js.map +7 -0
  241. package/dist/cjs/Sleep.d.ts +98 -0
  242. package/dist/cjs/Sleep.d.ts.map +1 -0
  243. package/dist/cjs/Sleep.js +133 -0
  244. package/dist/cjs/Sleep.js.map +7 -0
  245. package/dist/cjs/Stall.d.ts +173 -0
  246. package/dist/cjs/Stall.d.ts.map +1 -0
  247. package/dist/cjs/Stall.js +92 -0
  248. package/dist/cjs/Stall.js.map +7 -0
  249. package/dist/cjs/WaitFor.d.ts +109 -0
  250. package/dist/cjs/WaitFor.d.ts.map +1 -0
  251. package/dist/cjs/WaitFor.js +117 -0
  252. package/dist/cjs/WaitFor.js.map +7 -0
  253. package/dist/cjs/index.d.ts +107 -0
  254. package/dist/cjs/index.d.ts.map +1 -0
  255. package/dist/cjs/index.js +69 -0
  256. package/dist/cjs/index.js.map +7 -0
  257. package/dist/cjs/internal/BoundedJson.d.ts +48 -0
  258. package/dist/cjs/internal/BoundedJson.d.ts.map +1 -0
  259. package/dist/cjs/internal/BoundedJson.js +96 -0
  260. package/dist/cjs/internal/BoundedJson.js.map +7 -0
  261. package/dist/cjs/internal/DeclarationSite.d.ts +135 -0
  262. package/dist/cjs/internal/DeclarationSite.d.ts.map +1 -0
  263. package/dist/cjs/internal/DeclarationSite.js +89 -0
  264. package/dist/cjs/internal/DeclarationSite.js.map +7 -0
  265. package/dist/cjs/internal/Declarations.d.ts +35 -0
  266. package/dist/cjs/internal/Declarations.d.ts.map +1 -0
  267. package/dist/cjs/internal/Declarations.js +50 -0
  268. package/dist/cjs/internal/Declarations.js.map +7 -0
  269. package/dist/cjs/internal/ExecutionMiddleware.d.ts +21 -0
  270. package/dist/cjs/internal/ExecutionMiddleware.d.ts.map +1 -0
  271. package/dist/cjs/internal/ExecutionMiddleware.js +39 -0
  272. package/dist/cjs/internal/ExecutionMiddleware.js.map +7 -0
  273. package/dist/cjs/internal/JsonSchemaSubset.d.ts +133 -0
  274. package/dist/cjs/internal/JsonSchemaSubset.d.ts.map +1 -0
  275. package/dist/cjs/internal/JsonSchemaSubset.js +229 -0
  276. package/dist/cjs/internal/JsonSchemaSubset.js.map +7 -0
  277. package/dist/cjs/internal/OutcomeMarker.d.ts +18 -0
  278. package/dist/cjs/internal/OutcomeMarker.d.ts.map +1 -0
  279. package/dist/cjs/internal/OutcomeMarker.js +27 -0
  280. package/dist/cjs/internal/OutcomeMarker.js.map +7 -0
  281. package/dist/cjs/package.json +1 -0
  282. package/dist/esm/Action/Action.d.ts +250 -0
  283. package/dist/esm/Action/Action.d.ts.map +1 -0
  284. package/dist/esm/Action/Action.js +30 -0
  285. package/dist/esm/Action/Action.js.map +1 -0
  286. package/dist/esm/Action/AttemptTimedOut.d.ts +33 -0
  287. package/dist/esm/Action/AttemptTimedOut.d.ts.map +1 -0
  288. package/dist/esm/Action/AttemptTimedOut.js +32 -0
  289. package/dist/esm/Action/AttemptTimedOut.js.map +1 -0
  290. package/dist/esm/Action/BoundaryMode.d.ts +29 -0
  291. package/dist/esm/Action/BoundaryMode.d.ts.map +1 -0
  292. package/dist/esm/Action/BoundaryMode.js +23 -0
  293. package/dist/esm/Action/BoundaryMode.js.map +1 -0
  294. package/dist/esm/Action/CacheEnvironment.d.ts +158 -0
  295. package/dist/esm/Action/CacheEnvironment.d.ts.map +1 -0
  296. package/dist/esm/Action/CacheEnvironment.js +130 -0
  297. package/dist/esm/Action/CacheEnvironment.js.map +1 -0
  298. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  299. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  300. package/dist/esm/Action/ConcurrentKeylessDispatch.js +33 -0
  301. package/dist/esm/Action/ConcurrentKeylessDispatch.js.map +1 -0
  302. package/dist/esm/Action/Context.d.ts +131 -0
  303. package/dist/esm/Action/Context.d.ts.map +1 -0
  304. package/dist/esm/Action/Context.js +99 -0
  305. package/dist/esm/Action/Context.js.map +1 -0
  306. package/dist/esm/Action/DuplicateImplementation.d.ts +20 -0
  307. package/dist/esm/Action/DuplicateImplementation.d.ts.map +1 -0
  308. package/dist/esm/Action/DuplicateImplementation.js +20 -0
  309. package/dist/esm/Action/DuplicateImplementation.js.map +1 -0
  310. package/dist/esm/Action/FileBoundary.d.ts +59 -0
  311. package/dist/esm/Action/FileBoundary.d.ts.map +1 -0
  312. package/dist/esm/Action/FileBoundary.js +60 -0
  313. package/dist/esm/Action/FileBoundary.js.map +1 -0
  314. package/dist/esm/Action/FileInput.d.ts +28 -0
  315. package/dist/esm/Action/FileInput.d.ts.map +1 -0
  316. package/dist/esm/Action/FileInput.js +32 -0
  317. package/dist/esm/Action/FileInput.js.map +1 -0
  318. package/dist/esm/Action/Filegroup.d.ts +16 -0
  319. package/dist/esm/Action/Filegroup.d.ts.map +1 -0
  320. package/dist/esm/Action/Filegroup.js +15 -0
  321. package/dist/esm/Action/Filegroup.js.map +1 -0
  322. package/dist/esm/Action/Glob.d.ts +8 -0
  323. package/dist/esm/Action/Glob.d.ts.map +1 -0
  324. package/dist/esm/Action/Glob.js +7 -0
  325. package/dist/esm/Action/Glob.js.map +1 -0
  326. package/dist/esm/Action/ImplementationVersionMismatch.d.ts +26 -0
  327. package/dist/esm/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  328. package/dist/esm/Action/ImplementationVersionMismatch.js +24 -0
  329. package/dist/esm/Action/ImplementationVersionMismatch.js.map +1 -0
  330. package/dist/esm/Action/Implementations.d.ts +114 -0
  331. package/dist/esm/Action/Implementations.d.ts.map +1 -0
  332. package/dist/esm/Action/Implementations.js +94 -0
  333. package/dist/esm/Action/Implementations.js.map +1 -0
  334. package/dist/esm/Action/InfraInterrupt.d.ts +26 -0
  335. package/dist/esm/Action/InfraInterrupt.d.ts.map +1 -0
  336. package/dist/esm/Action/InfraInterrupt.js +25 -0
  337. package/dist/esm/Action/InfraInterrupt.js.map +1 -0
  338. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  339. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  340. package/dist/esm/Action/InfraInterruptRetriesExhausted.js +32 -0
  341. package/dist/esm/Action/InfraInterruptRetriesExhausted.js.map +1 -0
  342. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  343. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  344. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js +25 -0
  345. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +1 -0
  346. package/dist/esm/Action/StepIdentity.d.ts +153 -0
  347. package/dist/esm/Action/StepIdentity.d.ts.map +1 -0
  348. package/dist/esm/Action/StepIdentity.js +139 -0
  349. package/dist/esm/Action/StepIdentity.js.map +1 -0
  350. package/dist/esm/Action/TreeArtifact.d.ts +8 -0
  351. package/dist/esm/Action/TreeArtifact.d.ts.map +1 -0
  352. package/dist/esm/Action/TreeArtifact.js +7 -0
  353. package/dist/esm/Action/TreeArtifact.js.map +1 -0
  354. package/dist/esm/Action/TypeId.d.ts +8 -0
  355. package/dist/esm/Action/TypeId.d.ts.map +1 -0
  356. package/dist/esm/Action/TypeId.js +9 -0
  357. package/dist/esm/Action/TypeId.js.map +1 -0
  358. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  359. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  360. package/dist/esm/Action/UncanonicalIdempotencyKey.js +31 -0
  361. package/dist/esm/Action/UncanonicalIdempotencyKey.js.map +1 -0
  362. package/dist/esm/Action/idempotencyKey.d.ts +21 -0
  363. package/dist/esm/Action/idempotencyKey.d.ts.map +1 -0
  364. package/dist/esm/Action/idempotencyKey.js +50 -0
  365. package/dist/esm/Action/idempotencyKey.js.map +1 -0
  366. package/dist/esm/Action/index.d.ts +29 -0
  367. package/dist/esm/Action/index.d.ts.map +1 -0
  368. package/dist/esm/Action/index.js +30 -0
  369. package/dist/esm/Action/index.js.map +1 -0
  370. package/dist/esm/Action/make.d.ts +128 -0
  371. package/dist/esm/Action/make.d.ts.map +1 -0
  372. package/dist/esm/Action/make.js +405 -0
  373. package/dist/esm/Action/make.js.map +1 -0
  374. package/dist/esm/Action/raceAll.d.ts +21 -0
  375. package/dist/esm/Action/raceAll.d.ts.map +1 -0
  376. package/dist/esm/Action/raceAll.js +20 -0
  377. package/dist/esm/Action/raceAll.js.map +1 -0
  378. package/dist/esm/Action/retry.d.ts +19 -0
  379. package/dist/esm/Action/retry.d.ts.map +1 -0
  380. package/dist/esm/Action/retry.js +72 -0
  381. package/dist/esm/Action/retry.js.map +1 -0
  382. package/dist/esm/Deadline.d.ts +105 -0
  383. package/dist/esm/Deadline.d.ts.map +1 -0
  384. package/dist/esm/Deadline.js +152 -0
  385. package/dist/esm/Deadline.js.map +1 -0
  386. package/dist/esm/DurableClock.d.ts +61 -0
  387. package/dist/esm/DurableClock.d.ts.map +1 -0
  388. package/dist/esm/DurableClock.js +75 -0
  389. package/dist/esm/DurableClock.js.map +1 -0
  390. package/dist/esm/DurableDeferred.d.ts +311 -0
  391. package/dist/esm/DurableDeferred.d.ts.map +1 -0
  392. package/dist/esm/DurableDeferred.js +357 -0
  393. package/dist/esm/DurableDeferred.js.map +1 -0
  394. package/dist/esm/DurableQueue.d.ts +160 -0
  395. package/dist/esm/DurableQueue.d.ts.map +1 -0
  396. package/dist/esm/DurableQueue.js +303 -0
  397. package/dist/esm/DurableQueue.js.map +1 -0
  398. package/dist/esm/ExternalJob.d.ts +179 -0
  399. package/dist/esm/ExternalJob.d.ts.map +1 -0
  400. package/dist/esm/ExternalJob.js +296 -0
  401. package/dist/esm/ExternalJob.js.map +1 -0
  402. package/dist/esm/Fault.d.ts +131 -0
  403. package/dist/esm/Fault.d.ts.map +1 -0
  404. package/dist/esm/Fault.js +198 -0
  405. package/dist/esm/Fault.js.map +1 -0
  406. package/dist/esm/Flow/Annotations.d.ts +245 -0
  407. package/dist/esm/Flow/Annotations.d.ts.map +1 -0
  408. package/dist/esm/Flow/Annotations.js +110 -0
  409. package/dist/esm/Flow/Annotations.js.map +1 -0
  410. package/dist/esm/Flow/CapabilityCeiling.d.ts +21 -0
  411. package/dist/esm/Flow/CapabilityCeiling.d.ts.map +1 -0
  412. package/dist/esm/Flow/CapabilityCeiling.js +27 -0
  413. package/dist/esm/Flow/CapabilityCeiling.js.map +1 -0
  414. package/dist/esm/Flow/DeadlineExceeded.d.ts +33 -0
  415. package/dist/esm/Flow/DeadlineExceeded.d.ts.map +1 -0
  416. package/dist/esm/Flow/DeadlineExceeded.js +34 -0
  417. package/dist/esm/Flow/DeadlineExceeded.js.map +1 -0
  418. package/dist/esm/Flow/ExecutionIdRequired.d.ts +25 -0
  419. package/dist/esm/Flow/ExecutionIdRequired.d.ts.map +1 -0
  420. package/dist/esm/Flow/ExecutionIdRequired.js +30 -0
  421. package/dist/esm/Flow/ExecutionIdRequired.js.map +1 -0
  422. package/dist/esm/Flow/ExecutionIds.d.ts +80 -0
  423. package/dist/esm/Flow/ExecutionIds.d.ts.map +1 -0
  424. package/dist/esm/Flow/ExecutionIds.js +91 -0
  425. package/dist/esm/Flow/ExecutionIds.js.map +1 -0
  426. package/dist/esm/Flow/Flow.d.ts +422 -0
  427. package/dist/esm/Flow/Flow.d.ts.map +1 -0
  428. package/dist/esm/Flow/Flow.js +3 -0
  429. package/dist/esm/Flow/Flow.js.map +1 -0
  430. package/dist/esm/Flow/MaxRoundsExceeded.d.ts +35 -0
  431. package/dist/esm/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  432. package/dist/esm/Flow/MaxRoundsExceeded.js +34 -0
  433. package/dist/esm/Flow/MaxRoundsExceeded.js.map +1 -0
  434. package/dist/esm/Flow/Outcome.d.ts +162 -0
  435. package/dist/esm/Flow/Outcome.d.ts.map +1 -0
  436. package/dist/esm/Flow/Outcome.js +115 -0
  437. package/dist/esm/Flow/Outcome.js.map +1 -0
  438. package/dist/esm/Flow/Result.d.ts +186 -0
  439. package/dist/esm/Flow/Result.d.ts.map +1 -0
  440. package/dist/esm/Flow/Result.js +171 -0
  441. package/dist/esm/Flow/Result.js.map +1 -0
  442. package/dist/esm/Flow/Runtime.d.ts +98 -0
  443. package/dist/esm/Flow/Runtime.d.ts.map +1 -0
  444. package/dist/esm/Flow/Runtime.js +231 -0
  445. package/dist/esm/Flow/Runtime.js.map +1 -0
  446. package/dist/esm/Flow/TypeId.d.ts +8 -0
  447. package/dist/esm/Flow/TypeId.d.ts.map +1 -0
  448. package/dist/esm/Flow/TypeId.js +9 -0
  449. package/dist/esm/Flow/TypeId.js.map +1 -0
  450. package/dist/esm/Flow/index.d.ts +17 -0
  451. package/dist/esm/Flow/index.d.ts.map +1 -0
  452. package/dist/esm/Flow/index.js +18 -0
  453. package/dist/esm/Flow/index.js.map +1 -0
  454. package/dist/esm/Flow/internal.d.ts +34 -0
  455. package/dist/esm/Flow/internal.d.ts.map +1 -0
  456. package/dist/esm/Flow/internal.js +149 -0
  457. package/dist/esm/Flow/internal.js.map +1 -0
  458. package/dist/esm/Flow/make.d.ts +134 -0
  459. package/dist/esm/Flow/make.d.ts.map +1 -0
  460. package/dist/esm/Flow/make.js +106 -0
  461. package/dist/esm/Flow/make.js.map +1 -0
  462. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  463. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  464. package/dist/esm/FlowRuntime/CancelRequestFailed.js +53 -0
  465. package/dist/esm/FlowRuntime/CancelRequestFailed.js.map +1 -0
  466. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  467. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  468. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js +24 -0
  469. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js.map +1 -0
  470. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  471. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  472. package/dist/esm/FlowRuntime/FlowCycleDetected.js +35 -0
  473. package/dist/esm/FlowRuntime/FlowCycleDetected.js.map +1 -0
  474. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  475. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  476. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js +40 -0
  477. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js.map +1 -0
  478. package/dist/esm/FlowRuntime/FlowInstance.d.ts +115 -0
  479. package/dist/esm/FlowRuntime/FlowInstance.d.ts.map +1 -0
  480. package/dist/esm/FlowRuntime/FlowInstance.js +24 -0
  481. package/dist/esm/FlowRuntime/FlowInstance.js.map +1 -0
  482. package/dist/esm/FlowRuntime/FlowRuntime.d.ts +198 -0
  483. package/dist/esm/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  484. package/dist/esm/FlowRuntime/FlowRuntime.js +34 -0
  485. package/dist/esm/FlowRuntime/FlowRuntime.js.map +1 -0
  486. package/dist/esm/FlowRuntime/NodeRecord.d.ts +175 -0
  487. package/dist/esm/FlowRuntime/NodeRecord.d.ts.map +1 -0
  488. package/dist/esm/FlowRuntime/NodeRecord.js +21 -0
  489. package/dist/esm/FlowRuntime/NodeRecord.js.map +1 -0
  490. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  491. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  492. package/dist/esm/FlowRuntime/WaitingAnnotation.js +53 -0
  493. package/dist/esm/FlowRuntime/WaitingAnnotation.js.map +1 -0
  494. package/dist/esm/FlowRuntime/index.d.ts +14 -0
  495. package/dist/esm/FlowRuntime/index.d.ts.map +1 -0
  496. package/dist/esm/FlowRuntime/index.js +15 -0
  497. package/dist/esm/FlowRuntime/index.js.map +1 -0
  498. package/dist/esm/Graph.d.ts +325 -0
  499. package/dist/esm/Graph.d.ts.map +1 -0
  500. package/dist/esm/Graph.js +1483 -0
  501. package/dist/esm/Graph.js.map +1 -0
  502. package/dist/esm/HumanTask.d.ts +440 -0
  503. package/dist/esm/HumanTask.d.ts.map +1 -0
  504. package/dist/esm/HumanTask.js +794 -0
  505. package/dist/esm/HumanTask.js.map +1 -0
  506. package/dist/esm/Interpreter.d.ts +222 -0
  507. package/dist/esm/Interpreter.d.ts.map +1 -0
  508. package/dist/esm/Interpreter.js +1269 -0
  509. package/dist/esm/Interpreter.js.map +1 -0
  510. package/dist/esm/Poll.d.ts +238 -0
  511. package/dist/esm/Poll.d.ts.map +1 -0
  512. package/dist/esm/Poll.js +282 -0
  513. package/dist/esm/Poll.js.map +1 -0
  514. package/dist/esm/RetryPolicy.d.ts +273 -0
  515. package/dist/esm/RetryPolicy.d.ts.map +1 -0
  516. package/dist/esm/RetryPolicy.js +429 -0
  517. package/dist/esm/RetryPolicy.js.map +1 -0
  518. package/dist/esm/Sleep.d.ts +98 -0
  519. package/dist/esm/Sleep.d.ts.map +1 -0
  520. package/dist/esm/Sleep.js +230 -0
  521. package/dist/esm/Sleep.js.map +1 -0
  522. package/dist/esm/Stall.d.ts +173 -0
  523. package/dist/esm/Stall.d.ts.map +1 -0
  524. package/dist/esm/Stall.js +138 -0
  525. package/dist/esm/Stall.js.map +1 -0
  526. package/dist/esm/WaitFor.d.ts +109 -0
  527. package/dist/esm/WaitFor.d.ts.map +1 -0
  528. package/dist/esm/WaitFor.js +184 -0
  529. package/dist/esm/WaitFor.js.map +1 -0
  530. package/dist/esm/index.d.ts +107 -0
  531. package/dist/esm/index.d.ts.map +1 -0
  532. package/dist/esm/index.js +108 -0
  533. package/dist/esm/index.js.map +1 -0
  534. package/dist/esm/internal/BoundedJson.d.ts +48 -0
  535. package/dist/esm/internal/BoundedJson.d.ts.map +1 -0
  536. package/dist/esm/internal/BoundedJson.js +107 -0
  537. package/dist/esm/internal/BoundedJson.js.map +1 -0
  538. package/dist/esm/internal/DeclarationSite.d.ts +135 -0
  539. package/dist/esm/internal/DeclarationSite.d.ts.map +1 -0
  540. package/dist/esm/internal/DeclarationSite.js +196 -0
  541. package/dist/esm/internal/DeclarationSite.js.map +1 -0
  542. package/dist/esm/internal/Declarations.d.ts +35 -0
  543. package/dist/esm/internal/Declarations.d.ts.map +1 -0
  544. package/dist/esm/internal/Declarations.js +43 -0
  545. package/dist/esm/internal/Declarations.js.map +1 -0
  546. package/dist/esm/internal/ExecutionMiddleware.d.ts +21 -0
  547. package/dist/esm/internal/ExecutionMiddleware.d.ts.map +1 -0
  548. package/dist/esm/internal/ExecutionMiddleware.js +13 -0
  549. package/dist/esm/internal/ExecutionMiddleware.js.map +1 -0
  550. package/dist/esm/internal/JsonSchemaSubset.d.ts +133 -0
  551. package/dist/esm/internal/JsonSchemaSubset.d.ts.map +1 -0
  552. package/dist/esm/internal/JsonSchemaSubset.js +363 -0
  553. package/dist/esm/internal/JsonSchemaSubset.js.map +1 -0
  554. package/dist/esm/internal/OutcomeMarker.d.ts +18 -0
  555. package/dist/esm/internal/OutcomeMarker.d.ts.map +1 -0
  556. package/dist/esm/internal/OutcomeMarker.js +18 -0
  557. package/dist/esm/internal/OutcomeMarker.js.map +1 -0
  558. package/docs/README.md +150 -0
  559. package/docs/api.md +436 -0
  560. package/docs/concepts/bodies-and-plans.md +157 -0
  561. package/docs/concepts/execution-identity.md +142 -0
  562. package/docs/concepts/flows-and-actions.md +129 -0
  563. package/docs/concepts/suspension-and-replay.md +130 -0
  564. package/docs/concepts/the-runtime-port.md +110 -0
  565. package/docs/concepts/trampoline-rounds.md +151 -0
  566. package/docs/guides/ask-a-person.md +184 -0
  567. package/docs/guides/build-a-body.md +161 -0
  568. package/docs/guides/cancel-and-roll-back.md +112 -0
  569. package/docs/guides/implement-an-action.md +147 -0
  570. package/docs/guides/inspect-the-plan.md +154 -0
  571. package/docs/guides/poll-until-ready.md +167 -0
  572. package/docs/guides/queue-work-to-a-worker.md +122 -0
  573. package/docs/guides/retry-a-failing-action.md +243 -0
  574. package/docs/guides/reuse-a-recorded-result.md +122 -0
  575. package/docs/guides/run-a-child-flow.md +108 -0
  576. package/docs/guides/run-an-external-job.md +86 -0
  577. package/docs/guides/use-a-prompt.md +38 -0
  578. package/docs/guides/wait-for-a-deadline.md +141 -0
  579. package/docs/guides/wait-for-an-external-signal.md +151 -0
  580. package/docs/installation.md +82 -0
  581. package/docs/quickstart.md +155 -0
  582. package/docs/reference/flow.md +1831 -0
  583. package/docs/testing.md +157 -0
  584. package/docs/troubleshooting.md +286 -0
  585. package/package.json +327 -3
  586. package/src/Action/Action.ts +333 -0
  587. package/src/Action/AttemptTimedOut.ts +37 -0
  588. package/src/Action/BoundaryMode.ts +33 -0
  589. package/src/Action/CacheEnvironment.ts +170 -0
  590. package/src/Action/ConcurrentKeylessDispatch.ts +38 -0
  591. package/src/Action/Context.ts +156 -0
  592. package/src/Action/DuplicateImplementation.ts +24 -0
  593. package/src/Action/FileBoundary.ts +77 -0
  594. package/src/Action/FileInput.ts +42 -0
  595. package/src/Action/Filegroup.ts +16 -0
  596. package/src/Action/Glob.ts +8 -0
  597. package/src/Action/ImplementationVersionMismatch.ts +27 -0
  598. package/src/Action/Implementations.ts +149 -0
  599. package/src/Action/InfraInterrupt.ts +30 -0
  600. package/src/Action/InfraInterruptRetriesExhausted.ts +37 -0
  601. package/src/Action/IrreversibleRetryRequiresIdempotencyKey.ts +32 -0
  602. package/src/Action/StepIdentity.ts +219 -0
  603. package/src/Action/TreeArtifact.ts +8 -0
  604. package/src/Action/TypeId.ts +9 -0
  605. package/src/Action/UncanonicalIdempotencyKey.ts +36 -0
  606. package/src/Action/idempotencyKey.ts +67 -0
  607. package/src/Action/index.ts +31 -0
  608. package/src/Action/make.ts +657 -0
  609. package/src/Action/raceAll.ts +48 -0
  610. package/src/Action/retry.ts +92 -0
  611. package/src/Deadline.ts +185 -0
  612. package/src/DurableClock.ts +133 -0
  613. package/src/DurableDeferred.ts +753 -0
  614. package/src/DurableQueue.ts +519 -0
  615. package/src/ExternalJob.ts +432 -0
  616. package/src/Fault.ts +279 -0
  617. package/src/Flow/Annotations.ts +151 -0
  618. package/src/Flow/CapabilityCeiling.ts +37 -0
  619. package/src/Flow/DeadlineExceeded.ts +40 -0
  620. package/src/Flow/ExecutionIdRequired.ts +36 -0
  621. package/src/Flow/ExecutionIds.ts +133 -0
  622. package/src/Flow/Flow.ts +576 -0
  623. package/src/Flow/MaxRoundsExceeded.ts +39 -0
  624. package/src/Flow/Outcome.ts +179 -0
  625. package/src/Flow/Result.ts +284 -0
  626. package/src/Flow/Runtime.ts +309 -0
  627. package/src/Flow/TypeId.ts +9 -0
  628. package/src/Flow/index.ts +19 -0
  629. package/src/Flow/internal.ts +237 -0
  630. package/src/Flow/make.ts +279 -0
  631. package/src/FlowRuntime/CancelRequestFailed.ts +56 -0
  632. package/src/FlowRuntime/ExecutionIdentityConflict.ts +32 -0
  633. package/src/FlowRuntime/FlowCycleDetected.ts +41 -0
  634. package/src/FlowRuntime/FlowExecutionNotFound.ts +46 -0
  635. package/src/FlowRuntime/FlowInstance.ts +128 -0
  636. package/src/FlowRuntime/FlowRuntime.ts +333 -0
  637. package/src/FlowRuntime/NodeRecord.ts +183 -0
  638. package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
  639. package/src/FlowRuntime/index.ts +17 -0
  640. package/src/Graph.ts +1862 -0
  641. package/src/HumanTask.ts +1003 -0
  642. package/src/Interpreter.ts +1593 -0
  643. package/src/Poll.ts +414 -0
  644. package/src/RetryPolicy.ts +550 -0
  645. package/src/Sleep.ts +267 -0
  646. package/src/Stall.ts +217 -0
  647. package/src/WaitFor.ts +228 -0
  648. package/src/index.ts +125 -0
  649. package/src/internal/BoundedJson.ts +109 -0
  650. package/src/internal/DeclarationSite.ts +214 -0
  651. package/src/internal/Declarations.ts +49 -0
  652. package/src/internal/ExecutionMiddleware.ts +29 -0
  653. package/src/internal/JsonSchemaSubset.ts +392 -0
  654. package/src/internal/OutcomeMarker.ts +19 -0
@@ -0,0 +1,149 @@
1
+ /**
2
+ * The table a driver resolves a declared action's implementation through.
3
+ *
4
+ * `docs/concepts/flows-and-actions.md` splits an Action in two: a
5
+ * declaration that is pure data and travels everywhere, and an implementation
6
+ * attached separately as a layer, on the hosts that can run it. A body names
7
+ * the declaration — `Increment.call({ path })` records a node and executes
8
+ * nothing — so whatever later drives that node has to find the implementation
9
+ * by name, from context, at execution time. That is this service: `toLayer`
10
+ * files the implementation here when the table is present, and a driver asks
11
+ * for it by the tag the node carries.
12
+ *
13
+ * "When the table is present" means present while the implementation layer
14
+ * ITSELF is built, so ONE table goes under the implementations AND under
15
+ * whatever drives them:
16
+ *
17
+ * ```ts
18
+ * Layer.mergeAll(Read.toLayer(read), Write.toLayer(write), Interpreter.layer(Pipeline)).pipe(
19
+ * Layer.provideMerge(Action.layerImplementations)
20
+ * )
21
+ * ```
22
+ *
23
+ * Filing is a build-time effect, not a declared output, so the type checker
24
+ * cannot catch a composition that builds one table for the implementations and
25
+ * a second for the driver. That composition files into the first and reads the
26
+ * second, and the driver refuses the call at run time naming the action.
27
+ *
28
+ * The table is deliberately not part of `FlowRuntime`. The runtime port is what
29
+ * a flow, an action, or a durable wait is EXECUTED against, and an
30
+ * implementation table is not an execution capability: it is authoring data,
31
+ * assembled by the same layers that assemble the declarations, and every
32
+ * runtime implementation can serve one identically.
33
+ *
34
+ * @since 0.1.0
35
+ */
36
+
37
+ import * as Context from "effect/Context"
38
+ import type * as Crypto from "effect/Crypto"
39
+ import * as Effect from "effect/Effect"
40
+ import * as Layer from "effect/Layer"
41
+ import * as Option from "effect/Option"
42
+ import type { Scope } from "effect/Scope"
43
+ import type { FlowInstance } from "../FlowRuntime/FlowInstance.ts"
44
+ import type { FlowRuntime } from "../FlowRuntime/FlowRuntime.ts"
45
+ import { DuplicateImplementation } from "./DuplicateImplementation.ts"
46
+
47
+ /**
48
+ * One declared action's implementation, as a driver consumes it: a name to
49
+ * resolve it by, and the durable action a payload produces.
50
+ *
51
+ * `action` returns the same `Action.make` value `toLayer` registers with
52
+ * the runtime, so a node driven through it takes the ordinary action path —
53
+ * invocation key, attempt journal, tier, retry policy — rather than a second
54
+ * execution mechanism that would have to keep up with the first.
55
+ *
56
+ * @category models
57
+ * @since 0.1.0
58
+ */
59
+ export interface Implementation {
60
+ readonly name: string
61
+ /** Semantic version attested by the implementation registration. */
62
+ readonly implementationVersion?: string | undefined
63
+ readonly action: (
64
+ payload: unknown
65
+ ) => Effect.Effect<unknown, unknown, Crypto.Crypto | FlowRuntime | FlowInstance>
66
+ }
67
+
68
+ /**
69
+ * Service holding the declared action implementations a composition wired
70
+ * up, keyed by action tag.
71
+ *
72
+ * **When to use**
73
+ *
74
+ * Use when driving a flow body, whose action calls name declarations rather
75
+ * than carry code. A composition that only drives behavior registered directly
76
+ * with the runtime never needs it, which is why `Action.toLayer` files an
77
+ * implementation here when the service is present and skips it otherwise.
78
+ *
79
+ * @category services
80
+ * @since 0.1.0
81
+ */
82
+ export class Implementations extends Context.Service<
83
+ Implementations,
84
+ {
85
+ /**
86
+ * Files an implementation under its action tag for the lifetime of the
87
+ * registering scope. A conflicting registration dies unless `override: true` explicitly replaces the
88
+ * earlier one, and closing the registering scope exposes the newest
89
+ * registration whose scope is still open. Which of two merged layers is later is not a guarantee Effect
90
+ * makes, so a substitution replaces the implementation layer in the
91
+ * composition rather than stacking a second one on top of it — and a
92
+ * NESTED provision that reaches this same table through layer
93
+ * memoization shadows the enclosing entry only while it lives, instead
94
+ * of leaking its replacement into the enclosing composition.
95
+ */
96
+ readonly add: (
97
+ implementation: Implementation,
98
+ options?: { readonly override?: boolean }
99
+ ) => Effect.Effect<void, never, Scope>
100
+
101
+ /**
102
+ * The implementation registered for an action tag, if a layer supplied
103
+ * one.
104
+ */
105
+ readonly get: (name: string) => Effect.Effect<Option.Option<Implementation>>
106
+ }
107
+ >()("@smthrs/flow/Action/Implementations") {}
108
+
109
+ /**
110
+ * Layer providing an implementation table scoped to the composition that
111
+ * builds it.
112
+ *
113
+ * The table is mutable and lives for the layer's lifetime, exactly like the
114
+ * flow registry a runtime keeps: registration happens while layers are built,
115
+ * and every lookup happens later, when a run drives a node. Because filing is
116
+ * a build-time effect, provide this UNDER the implementation layers — see the
117
+ * wiring at the top of this module — rather than merging it beside them.
118
+ *
119
+ * @category layers
120
+ * @since 0.1.0
121
+ */
122
+ export const layerImplementations: Layer.Layer<Implementations> = Layer.effect(Implementations)(
123
+ Effect.sync(() => {
124
+ const registered = new Map<string, Array<{ readonly implementation: Implementation }>>()
125
+ return Implementations.of({
126
+ add: (implementation, options) =>
127
+ Effect.suspend(() => {
128
+ const entries = registered.get(implementation.name) ?? []
129
+ if (entries.length > 0 && options?.override !== true && entries.at(-1)?.implementation !== implementation) {
130
+ return Effect.die(new DuplicateImplementation({ name: implementation.name }))
131
+ }
132
+ // Ownership belongs to this registration, not the implementation
133
+ // object: two scopes may file the very same implementation. Sibling
134
+ // scopes can close in either order, so a captured predecessor is not
135
+ // proof that its resources are still alive when an override closes.
136
+ const entry = { implementation }
137
+ entries.push(entry)
138
+ registered.set(implementation.name, entries)
139
+ return Effect.addFinalizer(() =>
140
+ Effect.sync(() => {
141
+ entries.splice(entries.indexOf(entry), 1)
142
+ if (entries.length === 0) registered.delete(implementation.name)
143
+ })
144
+ )
145
+ }),
146
+ get: (name) => Effect.sync(() => Option.fromNullishOr(registered.get(name)?.at(-1)?.implementation))
147
+ })
148
+ })
149
+ )
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Defines the `InfraInterrupt` action failure.
3
+ *
4
+ * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
5
+ * makes no compatibility promise to 0.x journals, and the tag freezes when
6
+ * the RC ships.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+
11
+ import * as Effect from "effect/Effect"
12
+ import * as Schema from "effect/Schema"
13
+
14
+ /**
15
+ * Marker an action implementation or adapter raises for an infrastructure
16
+ * event it wants the action's `interruptRetryPolicy` to retry. Shipped engines
17
+ * do not synthesize it from ordinary fiber interruption.
18
+ *
19
+ * @category errors
20
+ * @since 0.1.0
21
+ */
22
+ export class InfraInterrupt extends Schema.TaggedError<InfraInterrupt>()(
23
+ "@smthrs/flow/InfraInterrupt",
24
+ {
25
+ code: Schema.Literal("infra_interrupt").pipe(
26
+ Schema.withConstructorDefault(Effect.succeed("infra_interrupt"))
27
+ ),
28
+ reason: Schema.optional(Schema.Unknown)
29
+ }
30
+ ) {}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Defines the `InfraInterruptRetriesExhausted` action failure.
3
+ *
4
+ * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
5
+ * makes no compatibility promise to 0.x journals, and the tag freezes when
6
+ * the RC ships.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+
11
+ import * as Effect from "effect/Effect"
12
+ import * as Schema from "effect/Schema"
13
+ import { InfraInterrupt } from "./InfraInterrupt.ts"
14
+
15
+ /**
16
+ * An action spent its infrastructure-interrupt retry policy without reaching
17
+ * an ordinary success or failure.
18
+ *
19
+ * @category errors
20
+ * @since 0.1.0
21
+ */
22
+ export class InfraInterruptRetriesExhausted extends Schema.TaggedError<InfraInterruptRetriesExhausted>()(
23
+ "@smthrs/flow/InfraInterruptRetriesExhausted",
24
+ {
25
+ code: Schema.Literal("infra_interrupt_retries_exhausted").pipe(
26
+ Schema.withConstructorDefault(Effect.succeed("infra_interrupt_retries_exhausted"))
27
+ ),
28
+ actionName: Schema.String,
29
+ attempts: Schema.Number,
30
+ interrupt: InfraInterrupt,
31
+ /**
32
+ * The sentence an operator reads out of a rendered cause. The typed fields
33
+ * beside it are what a log pipeline keys on.
34
+ */
35
+ message: Schema.String
36
+ }
37
+ ) {}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Defines the `IrreversibleRetryRequiresIdempotencyKey` action failure.
3
+ *
4
+ * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
5
+ * makes no compatibility promise to 0.x journals, and the tag freezes when
6
+ * the RC ships.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+
11
+ import * as Effect from "effect/Effect"
12
+ import * as Schema from "effect/Schema"
13
+
14
+ /**
15
+ * An irreversible action attempted a retry without declaring an
16
+ * idempotency key.
17
+ *
18
+ * @category errors
19
+ * @since 0.1.0
20
+ */
21
+ export class IrreversibleRetryRequiresIdempotencyKey
22
+ extends Schema.TaggedError<IrreversibleRetryRequiresIdempotencyKey>()(
23
+ "@smthrs/flow/IrreversibleRetryRequiresIdempotencyKey",
24
+ {
25
+ code: Schema.Literal("irreversible_retry_requires_idempotency_key").pipe(
26
+ Schema.withConstructorDefault(Effect.succeed("irreversible_retry_requires_idempotency_key"))
27
+ ),
28
+ actionName: Schema.String,
29
+ attempt: Schema.Number
30
+ }
31
+ )
32
+ {}
@@ -0,0 +1,219 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+
3
+ /**
4
+ * Derives allocation scopes and run-local invocation keys.
5
+ *
6
+ * Ordinal step identity has four components: the kind of durable operation
7
+ * (an action dispatch or an internal engine operation), the stable
8
+ * declaration identity (the action name, or a fixed internal label), an
9
+ * optional explicit idempotency component — a caller-declared string or
10
+ * object — and an optional structural dispatch site. Every ordinal counter
11
+ * in the engine is keyed by the scope this module derives, and the scope is
12
+ * also folded into the persisted key as `parentScope`, so two dispatches with
13
+ * distinct declarations or structural sites can never swap ordinals under a
14
+ * permuted fiber interleaving (issues #73, #85, #98, #101).
15
+ *
16
+ * The derivation is injective: distinct `(kind, name, idempotency, site)`
17
+ * inputs always produce distinct scopes. The name and site are
18
+ * length-prefixed so their contents cannot splice across component
19
+ * separators, and both idempotency forms are canonicalized to a fixed-width
20
+ * digest under distinct tags so a string can never alias the object identity
21
+ * whose digest it happens to spell.
22
+ *
23
+ * Governing contract: `docs/concepts/execution-identity.md`.
24
+ *
25
+ * @since 0.1.0
26
+ */
27
+
28
+ import { Sha256 } from "@smthrs/crypto"
29
+ import { DerivedKey, type StoredKey } from "@smthrs/keys"
30
+ import * as Context from "effect/Context"
31
+ import type * as Crypto from "effect/Crypto"
32
+ import * as Effect from "effect/Effect"
33
+ import * as Option from "effect/Option"
34
+ import * as Schema from "effect/Schema"
35
+
36
+ /**
37
+ * Validates the engine-owned coordinates of a run-local invocation.
38
+ *
39
+ * @private
40
+ * @since 0.1.0
41
+ */
42
+ const Invocation = Schema.Struct({
43
+ runId: Schema.NonEmptyString,
44
+ parentScope: Schema.optionalKey(Schema.NonEmptyString),
45
+ ordinal: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
46
+ tier: Schema.Literals(["compensable", "irreversible", "unsealed"])
47
+ })
48
+
49
+ /**
50
+ * The interpreter graph site currently dispatching an action.
51
+ *
52
+ * A site is a replay-stable structural address of an `ActionCall` node. It is
53
+ * never derived from fiber arrival order and is never a diagnostic label. It
54
+ * is durable key material: changing it deliberately changes ordinal scopes
55
+ * and invocation keys. Handler-driven dispatches leave the service absent.
56
+ *
57
+ * @since 0.1.0
58
+ * @category services
59
+ */
60
+ export class DispatchSite extends Context.Service<DispatchSite, string>()(
61
+ "@smthrs/flow/Action/DispatchSite"
62
+ ) {}
63
+
64
+ /**
65
+ * What one dispatch tells the node that drove it.
66
+ *
67
+ * `outcome` is the fact the walk above cannot see on its own: whether the
68
+ * dispatch ran its body or was served from a durable record. `stepKeyDigest`
69
+ * is the identity the rest of the engine addresses that dispatch by — the
70
+ * digest `flows.engine.attempt-started` carries and `flows_attempts` is keyed
71
+ * on — and `attempt` is the durable attempt it ran as. Both are optional
72
+ * because a runtime that keeps no attempt rows has neither, and a node with
73
+ * no digest says so rather than inventing one.
74
+ *
75
+ * @since 1.0.0
76
+ * @category models
77
+ */
78
+ export interface DispatchOutcome {
79
+ readonly outcome: "executed" | "replayed"
80
+ readonly stepKeyDigest?: string | undefined
81
+ readonly attempt?: number | undefined
82
+ }
83
+
84
+ /**
85
+ * Where the dispatches of one interpreter node report what happened to them.
86
+ *
87
+ * An engine knows facts the walk above it cannot see: whether a dispatch ran
88
+ * its body or was served from a durable record, which step key it ran under,
89
+ * and which durable attempt it was. Without the first a node that replayed
90
+ * every one of its dispatches is indistinguishable from one that did the work
91
+ * again. Without the other two a node's evidence cannot be joined to the
92
+ * attempt records the engine wrote, because an attempt record carries a step
93
+ * key digest and no node id while a node record carried no digest at all. The
94
+ * interpreter installs one of these per node and reads the report back when
95
+ * the node settles.
96
+ *
97
+ * Absent by default. A dispatch outside an interpreted graph — a handler
98
+ * calling an action directly — reports to nobody, and reporting stays a
99
+ * side channel rather than a change to what `actionExecute` returns.
100
+ *
101
+ * @since 1.0.0
102
+ * @category services
103
+ */
104
+ export class DispatchReport extends Context.Service<DispatchReport, {
105
+ readonly dispatched: (dispatch: DispatchOutcome) => Effect.Effect<void>
106
+ }>()("@smthrs/flow/Action/DispatchReport") {}
107
+
108
+ /**
109
+ * Reports one dispatch to the node that drove it, when a node drove it.
110
+ *
111
+ * @since 1.0.0
112
+ * @category constructors
113
+ */
114
+ export const reportDispatch = (dispatch: DispatchOutcome): Effect.Effect<void> =>
115
+ Effect.flatMap(
116
+ Effect.serviceOption(DispatchReport),
117
+ (report) => Option.isNone(report) ? Effect.void : report.value.dispatched(dispatch)
118
+ )
119
+
120
+ /**
121
+ * The declaration material an allocation scope is derived from.
122
+ *
123
+ * @since 0.1.0
124
+ * @category models
125
+ */
126
+ export interface AllocationIdentity {
127
+ /**
128
+ * `"action"` for user-declared action dispatches, `"internal"` for
129
+ * engine-owned durable operations (queue offers, deferred tokens). The two
130
+ * kinds own disjoint counter namespaces.
131
+ */
132
+ readonly kind: "action" | "internal"
133
+ /**
134
+ * The stable declaration identity: an action's declared name, or a fixed
135
+ * label for an internal operation family. Diagnostic names must not be
136
+ * passed here unless they are part of identity.
137
+ */
138
+ readonly name: string
139
+ /**
140
+ * The explicit idempotency component. A declared string and a declared
141
+ * cache key input both refine the scope — two concurrent invocations of
142
+ * one name with distinguishable inputs each own their own counter, so a
143
+ * replay that reverses fiber-arrival order can never hand one invocation
144
+ * the other's recorded outcome. Absent, invocations of one name share a
145
+ * counter and remain allocation-ordered — indistinguishable declarations
146
+ * have no material to order them by.
147
+ */
148
+ readonly idempotency?: string | Schema.JsonObject | undefined
149
+ /**
150
+ * The replay-stable structural address of the interpreter graph node that
151
+ * drives this dispatch. Absent for handler-driven dispatches, preserving
152
+ * their existing allocation scopes byte for byte.
153
+ */
154
+ readonly site?: string | undefined
155
+ }
156
+
157
+ /**
158
+ * Derives the ordinal allocation scope of a durable operation.
159
+ *
160
+ * The scope keys the operation's ordinal counter and is folded into its
161
+ * persisted invocation key as `parentScope`, so identity is stable
162
+ * under any interleaving of distinct declarations.
163
+ *
164
+ * Injectivity: the name is length-prefixed (`<kind>/<length>:<name>`), so a
165
+ * name containing `/s:` or `/c:` material cannot collide with a keyed form
166
+ * of a shorter name, and the idempotency component is a fixed-shape tagged
167
+ * digest appended after the name. Both idempotency forms canonicalize under
168
+ * distinct one-character tags so a string can never alias the object identity
169
+ * whose digest it happens to spell. A present site is appended as
170
+ * `/g:<length>:<site>`; its length prefix prevents site contents from
171
+ * aliasing another component or splicing across a future suffix. An absent
172
+ * site appends nothing, preserving the prior encoding exactly.
173
+ *
174
+ * The object form is caller-owned material, so it can carry values canonical
175
+ * serialization rejects (`Date`, `undefined`, class instances, `Redacted`);
176
+ * the failure surfaces as the typed `SchemaError` (issue #151), never
177
+ * as a thrown defect. The string and absent forms
178
+ * are total — the first overload keeps their error channel `never`.
179
+ *
180
+ * @since 0.1.0
181
+ * @category derivations
182
+ */
183
+ export const allocationScope = (
184
+ identity: AllocationIdentity
185
+ ): Effect.Effect<string, Schema.SchemaError, Crypto.Crypto> =>
186
+ Effect.gen(function*() {
187
+ let scope = `${identity.kind}/${identity.name.length}:${identity.name}`
188
+ if (typeof identity.idempotency === "string") {
189
+ const digest = yield* Schema.decodeUnknownEffect(Sha256)(identity.idempotency)
190
+ scope = `${scope}/s:${digest}`
191
+ } else if (identity.idempotency !== undefined) {
192
+ const key = yield* Schema.decodeUnknownEffect(DerivedKey)({ kind: "declaration", input: identity.idempotency })
193
+ scope = `${scope}/c:${key}`
194
+ }
195
+ if (identity.site === undefined) return scope
196
+ return `${scope}/g:${identity.site.length}:${identity.site}`
197
+ })
198
+
199
+ /**
200
+ * Derives an invocation key from engine-generated input.
201
+ *
202
+ * The input is engine-generated by construction — a finite counter
203
+ * ordinal, a literal tier, and plain string scopes — so canonical
204
+ * serialization cannot reject it. A failure here is an engine defect, and it
205
+ * surfaces as the typed `SchemaError` itself (issue #151) rather than
206
+ * being discarded through `Result.getOrThrow`.
207
+ *
208
+ * @since 0.1.0
209
+ * @category derivations
210
+ */
211
+ export const invocationKey = (input: {
212
+ readonly runId: string
213
+ readonly parentScope?: string | undefined
214
+ readonly ordinal: number
215
+ readonly tier: "unsealed" | "compensable" | "irreversible"
216
+ }): Effect.Effect<StoredKey, Schema.SchemaError, Crypto.Crypto> =>
217
+ Schema.decodeUnknownEffect(Invocation)(input).pipe(
218
+ Effect.flatMap((validated) => Schema.decodeUnknownEffect(DerivedKey)({ kind: "invocation", ...validated }))
219
+ )
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Directory outputs captured and replayed as tree artifacts.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+
7
+ export { TreeArtifact } from "@smthrs/plan/FileSet"
8
+ export type { TreeArtifact as Type } from "@smthrs/plan/FileSet"
@@ -0,0 +1,9 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+
3
+ /**
4
+ * Runtime identity shared by action interfaces and constructors.
5
+ *
6
+ * @private
7
+ * @since 0.1.0
8
+ */
9
+ export const TypeId = "@smthrs/flow/Action"
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Defines the `UncanonicalIdempotencyKey` action failure.
3
+ *
4
+ * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
5
+ * makes no compatibility promise to 0.x journals, and the tag freezes when
6
+ * the RC ships.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+
11
+ import * as Effect from "effect/Effect"
12
+ import * as Schema from "effect/Schema"
13
+
14
+ /**
15
+ * A caller-declared object-form `idempotencyKey` carried material canonical
16
+ * serialization rejects. The declaration can be fixed, and the error is
17
+ * non-retryable: the same declaration
18
+ * derives the same rejection on every attempt, so the body never runs.
19
+ *
20
+ * @category errors
21
+ * @since 0.1.0
22
+ */
23
+ export class UncanonicalIdempotencyKey extends Schema.TaggedError<UncanonicalIdempotencyKey>()(
24
+ "@smthrs/flow/UncanonicalIdempotencyKey",
25
+ {
26
+ code: Schema.Literal("uncanonical_idempotency_key").pipe(
27
+ Schema.withConstructorDefault(Effect.succeed("uncanonical_idempotency_key"))
28
+ ),
29
+ actionName: Schema.String,
30
+ /** Stable reason identifying an RFC 8785 canonicalization failure. */
31
+ reason: Schema.String,
32
+ /** The path of the offending value inside the declared identity. */
33
+ path: Schema.String,
34
+ message: Schema.String
35
+ }
36
+ ) {}
@@ -0,0 +1,67 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+
3
+ /**
4
+ * Derives run-local keys for internal durable operations.
5
+ *
6
+ * @since 0.1.0
7
+ */
8
+
9
+ import type * as Crypto from "effect/Crypto"
10
+ import * as Effect from "effect/Effect"
11
+ import { FlowInstance } from "../FlowRuntime/FlowInstance.ts"
12
+ import { CurrentAttempt } from "./Context.ts"
13
+ import * as StepIdentity from "./StepIdentity.ts"
14
+
15
+ /**
16
+ * Computes a run-local invocation key for an internal durable operation.
17
+ *
18
+ * The caller name separates durable declarations that share a parent scope.
19
+ *
20
+ * @category idempotency
21
+ * @since 0.1.0
22
+ */
23
+ export const idempotencyKey: (
24
+ name: string,
25
+ options?: {
26
+ readonly includeAttempt?: boolean | undefined
27
+ readonly parentScope?: string | undefined
28
+ } | undefined
29
+ ) => Effect.Effect<string, never, FlowInstance | Crypto.Crypto> =
30
+ // Untraced because action-key allocation is on every action attempt.
31
+ Effect.fnUntraced(function*(name: string, options?: {
32
+ readonly includeAttempt?: boolean | undefined
33
+ readonly parentScope?: string | undefined
34
+ }) {
35
+ const instance = yield* FlowInstance
36
+ const attempt = yield* CurrentAttempt
37
+ // Internal durable operations are scoped by the caller's declaration name
38
+ // and declared `parentScope` through the canonical `StepIdentity` derivation (issue
39
+ // #98): a run-global counter numbered concurrent offers in fiber-arrival
40
+ // order, so a replay with a permuted interleaving handed one payload's
41
+ // ordinal to another and its await watched a deferred nothing resolves.
42
+ // With the counter scoped per declared parent, each scope numbers its
43
+ // own allocations deterministically; only allocations *within* one
44
+ // scope remain arrival-ordered — they carry no input that orders them
45
+ // by.
46
+ const parentScope = options?.parentScope !== undefined
47
+ ? options.parentScope
48
+ : options?.includeAttempt
49
+ ? `attempt:${attempt}`
50
+ : undefined
51
+ // String (or absent) idempotency input keeps the derivation total
52
+ // (issue #151): schema decoding preserves typed identity failures while
53
+ // injected cryptography keeps key construction platform-independent.
54
+ const scope = yield* StepIdentity.allocationScope({
55
+ kind: "internal",
56
+ name,
57
+ idempotency: parentScope
58
+ }).pipe(Effect.orDie)
59
+ const ordinal = instance.actionState.nextOrdinal(scope)
60
+ const identityScope = JSON.stringify([name, parentScope ?? null])
61
+ return yield* StepIdentity.invocationKey({
62
+ runId: instance.executionId,
63
+ ordinal,
64
+ tier: "unsealed",
65
+ parentScope: identityScope
66
+ }).pipe(Effect.orDie)
67
+ })
@@ -0,0 +1,31 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+
3
+ /**
4
+ * Durable actions, identity, boundaries, retries, and runtime context.
5
+ *
6
+ * @since 0.1.0
7
+ */
8
+
9
+ export * from "./Action.ts"
10
+ export * from "./AttemptTimedOut.ts"
11
+ export * from "./BoundaryMode.ts"
12
+ export * from "./CacheEnvironment.ts"
13
+ export * from "./ConcurrentKeylessDispatch.ts"
14
+ export * from "./Context.ts"
15
+ export * from "./DuplicateImplementation.ts"
16
+ export * from "./FileBoundary.ts"
17
+ export * as Filegroup from "./Filegroup.ts"
18
+ export * from "./FileInput.ts"
19
+ export * as Glob from "./Glob.ts"
20
+ export * from "./idempotencyKey.ts"
21
+ export * from "./Implementations.ts"
22
+ export * from "./ImplementationVersionMismatch.ts"
23
+ export * from "./InfraInterrupt.ts"
24
+ export * from "./InfraInterruptRetriesExhausted.ts"
25
+ export * from "./IrreversibleRetryRequiresIdempotencyKey.ts"
26
+ export * from "./make.ts"
27
+ export * from "./raceAll.ts"
28
+ export * from "./retry.ts"
29
+ export * from "./StepIdentity.ts"
30
+ export * as TreeArtifact from "./TreeArtifact.ts"
31
+ export * from "./UncanonicalIdempotencyKey.ts"