@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,139 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * Derives allocation scopes and run-local invocation keys.
4
+ *
5
+ * Ordinal step identity has four components: the kind of durable operation
6
+ * (an action dispatch or an internal engine operation), the stable
7
+ * declaration identity (the action name, or a fixed internal label), an
8
+ * optional explicit idempotency component — a caller-declared string or
9
+ * object — and an optional structural dispatch site. Every ordinal counter
10
+ * in the engine is keyed by the scope this module derives, and the scope is
11
+ * also folded into the persisted key as `parentScope`, so two dispatches with
12
+ * distinct declarations or structural sites can never swap ordinals under a
13
+ * permuted fiber interleaving (issues #73, #85, #98, #101).
14
+ *
15
+ * The derivation is injective: distinct `(kind, name, idempotency, site)`
16
+ * inputs always produce distinct scopes. The name and site are
17
+ * length-prefixed so their contents cannot splice across component
18
+ * separators, and both idempotency forms are canonicalized to a fixed-width
19
+ * digest under distinct tags so a string can never alias the object identity
20
+ * whose digest it happens to spell.
21
+ *
22
+ * Governing contract: `docs/concepts/execution-identity.md`.
23
+ *
24
+ * @since 0.1.0
25
+ */
26
+ import { Sha256 } from "@smthrs/crypto";
27
+ import { DerivedKey } from "@smthrs/keys";
28
+ import * as Context from "effect/Context";
29
+ import * as Effect from "effect/Effect";
30
+ import * as Option from "effect/Option";
31
+ import * as Schema from "effect/Schema";
32
+ /**
33
+ * Validates the engine-owned coordinates of a run-local invocation.
34
+ *
35
+ * @private
36
+ * @since 0.1.0
37
+ */
38
+ const Invocation = Schema.Struct({
39
+ runId: Schema.NonEmptyString,
40
+ parentScope: Schema.optionalKey(Schema.NonEmptyString),
41
+ ordinal: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
42
+ tier: Schema.Literals(["compensable", "irreversible", "unsealed"])
43
+ });
44
+ /**
45
+ * The interpreter graph site currently dispatching an action.
46
+ *
47
+ * A site is a replay-stable structural address of an `ActionCall` node. It is
48
+ * never derived from fiber arrival order and is never a diagnostic label. It
49
+ * is durable key material: changing it deliberately changes ordinal scopes
50
+ * and invocation keys. Handler-driven dispatches leave the service absent.
51
+ *
52
+ * @since 0.1.0
53
+ * @category services
54
+ */
55
+ export class DispatchSite extends Context.Service()("@smthrs/flow/Action/DispatchSite") {
56
+ }
57
+ /**
58
+ * Where the dispatches of one interpreter node report what happened to them.
59
+ *
60
+ * An engine knows facts the walk above it cannot see: whether a dispatch ran
61
+ * its body or was served from a durable record, which step key it ran under,
62
+ * and which durable attempt it was. Without the first a node that replayed
63
+ * every one of its dispatches is indistinguishable from one that did the work
64
+ * again. Without the other two a node's evidence cannot be joined to the
65
+ * attempt records the engine wrote, because an attempt record carries a step
66
+ * key digest and no node id while a node record carried no digest at all. The
67
+ * interpreter installs one of these per node and reads the report back when
68
+ * the node settles.
69
+ *
70
+ * Absent by default. A dispatch outside an interpreted graph — a handler
71
+ * calling an action directly — reports to nobody, and reporting stays a
72
+ * side channel rather than a change to what `actionExecute` returns.
73
+ *
74
+ * @since 1.0.0
75
+ * @category services
76
+ */
77
+ export class DispatchReport extends Context.Service()("@smthrs/flow/Action/DispatchReport") {
78
+ }
79
+ /**
80
+ * Reports one dispatch to the node that drove it, when a node drove it.
81
+ *
82
+ * @since 1.0.0
83
+ * @category constructors
84
+ */
85
+ export const reportDispatch = (dispatch) => Effect.flatMap(Effect.serviceOption(DispatchReport), (report) => Option.isNone(report) ? Effect.void : report.value.dispatched(dispatch));
86
+ /**
87
+ * Derives the ordinal allocation scope of a durable operation.
88
+ *
89
+ * The scope keys the operation's ordinal counter and is folded into its
90
+ * persisted invocation key as `parentScope`, so identity is stable
91
+ * under any interleaving of distinct declarations.
92
+ *
93
+ * Injectivity: the name is length-prefixed (`<kind>/<length>:<name>`), so a
94
+ * name containing `/s:` or `/c:` material cannot collide with a keyed form
95
+ * of a shorter name, and the idempotency component is a fixed-shape tagged
96
+ * digest appended after the name. Both idempotency forms canonicalize under
97
+ * distinct one-character tags so a string can never alias the object identity
98
+ * whose digest it happens to spell. A present site is appended as
99
+ * `/g:<length>:<site>`; its length prefix prevents site contents from
100
+ * aliasing another component or splicing across a future suffix. An absent
101
+ * site appends nothing, preserving the prior encoding exactly.
102
+ *
103
+ * The object form is caller-owned material, so it can carry values canonical
104
+ * serialization rejects (`Date`, `undefined`, class instances, `Redacted`);
105
+ * the failure surfaces as the typed `SchemaError` (issue #151), never
106
+ * as a thrown defect. The string and absent forms
107
+ * are total — the first overload keeps their error channel `never`.
108
+ *
109
+ * @since 0.1.0
110
+ * @category derivations
111
+ */
112
+ export const allocationScope = (identity) => Effect.gen(function* () {
113
+ let scope = `${identity.kind}/${identity.name.length}:${identity.name}`;
114
+ if (typeof identity.idempotency === "string") {
115
+ const digest = yield* Schema.decodeUnknownEffect(Sha256)(identity.idempotency);
116
+ scope = `${scope}/s:${digest}`;
117
+ }
118
+ else if (identity.idempotency !== undefined) {
119
+ const key = yield* Schema.decodeUnknownEffect(DerivedKey)({ kind: "declaration", input: identity.idempotency });
120
+ scope = `${scope}/c:${key}`;
121
+ }
122
+ if (identity.site === undefined)
123
+ return scope;
124
+ return `${scope}/g:${identity.site.length}:${identity.site}`;
125
+ });
126
+ /**
127
+ * Derives an invocation key from engine-generated input.
128
+ *
129
+ * The input is engine-generated by construction — a finite counter
130
+ * ordinal, a literal tier, and plain string scopes — so canonical
131
+ * serialization cannot reject it. A failure here is an engine defect, and it
132
+ * surfaces as the typed `SchemaError` itself (issue #151) rather than
133
+ * being discarded through `Result.getOrThrow`.
134
+ *
135
+ * @since 0.1.0
136
+ * @category derivations
137
+ */
138
+ export const invocationKey = (input) => Schema.decodeUnknownEffect(Invocation)(input).pipe(Effect.flatMap((validated) => Schema.decodeUnknownEffect(DerivedKey)({ kind: "invocation", ...validated })));
139
+ //# sourceMappingURL=StepIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepIdentity.js","sourceRoot":"","sources":["../../../src/Action/StepIdentity.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,UAAU,EAAkB,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,cAAc;IAC5B,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;CACnE,CAAC,CAAA;AAEF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,OAAO,EAAwB,CACvE,kCAAkC,CACnC;CAAG;AAsBJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,OAAO,EAE/C,CAAC,oCAAoC,CAAC;CAAG;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAyB,EAAuB,EAAE,CAC/E,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EACpC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CACpF,CAAA;AAuCH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAA4B,EAC8B,EAAE,CAC5D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,KAAK,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAA;IACvE,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAC9E,KAAK,GAAG,GAAG,KAAK,MAAM,MAAM,EAAE,CAAA;IAChC,CAAC;SAAM,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/G,KAAK,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,CAAA;IAC7B,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAC7C,OAAO,GAAG,KAAK,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAA;AAC9D,CAAC,CAAC,CAAA;AAEJ;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAK7B,EAA+D,EAAE,CAChE,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAC5G,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Derives allocation scopes and run-local invocation keys.\n *\n * Ordinal step identity has four components: the kind of durable operation\n * (an action dispatch or an internal engine operation), the stable\n * declaration identity (the action name, or a fixed internal label), an\n * optional explicit idempotency component — a caller-declared string or\n * object — and an optional structural dispatch site. Every ordinal counter\n * in the engine is keyed by the scope this module derives, and the scope is\n * also folded into the persisted key as `parentScope`, so two dispatches with\n * distinct declarations or structural sites can never swap ordinals under a\n * permuted fiber interleaving (issues #73, #85, #98, #101).\n *\n * The derivation is injective: distinct `(kind, name, idempotency, site)`\n * inputs always produce distinct scopes. The name and site are\n * length-prefixed so their contents cannot splice across component\n * separators, and both idempotency forms are canonicalized to a fixed-width\n * digest under distinct tags so a string can never alias the object identity\n * whose digest it happens to spell.\n *\n * Governing contract: `docs/concepts/execution-identity.md`.\n *\n * @since 0.1.0\n */\n\nimport { Sha256 } from \"@smthrs/crypto\"\nimport { DerivedKey, type StoredKey } from \"@smthrs/keys\"\nimport * as Context from \"effect/Context\"\nimport type * as Crypto from \"effect/Crypto\"\nimport * as Effect from \"effect/Effect\"\nimport * as Option from \"effect/Option\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * Validates the engine-owned coordinates of a run-local invocation.\n *\n * @private\n * @since 0.1.0\n */\nconst Invocation = Schema.Struct({\n runId: Schema.NonEmptyString,\n parentScope: Schema.optionalKey(Schema.NonEmptyString),\n ordinal: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),\n tier: Schema.Literals([\"compensable\", \"irreversible\", \"unsealed\"])\n})\n\n/**\n * The interpreter graph site currently dispatching an action.\n *\n * A site is a replay-stable structural address of an `ActionCall` node. It is\n * never derived from fiber arrival order and is never a diagnostic label. It\n * is durable key material: changing it deliberately changes ordinal scopes\n * and invocation keys. Handler-driven dispatches leave the service absent.\n *\n * @since 0.1.0\n * @category services\n */\nexport class DispatchSite extends Context.Service<DispatchSite, string>()(\n \"@smthrs/flow/Action/DispatchSite\"\n) {}\n\n/**\n * What one dispatch tells the node that drove it.\n *\n * `outcome` is the fact the walk above cannot see on its own: whether the\n * dispatch ran its body or was served from a durable record. `stepKeyDigest`\n * is the identity the rest of the engine addresses that dispatch by — the\n * digest `flows.engine.attempt-started` carries and `flows_attempts` is keyed\n * on — and `attempt` is the durable attempt it ran as. Both are optional\n * because a runtime that keeps no attempt rows has neither, and a node with\n * no digest says so rather than inventing one.\n *\n * @since 1.0.0\n * @category models\n */\nexport interface DispatchOutcome {\n readonly outcome: \"executed\" | \"replayed\"\n readonly stepKeyDigest?: string | undefined\n readonly attempt?: number | undefined\n}\n\n/**\n * Where the dispatches of one interpreter node report what happened to them.\n *\n * An engine knows facts the walk above it cannot see: whether a dispatch ran\n * its body or was served from a durable record, which step key it ran under,\n * and which durable attempt it was. Without the first a node that replayed\n * every one of its dispatches is indistinguishable from one that did the work\n * again. Without the other two a node's evidence cannot be joined to the\n * attempt records the engine wrote, because an attempt record carries a step\n * key digest and no node id while a node record carried no digest at all. The\n * interpreter installs one of these per node and reads the report back when\n * the node settles.\n *\n * Absent by default. A dispatch outside an interpreted graph — a handler\n * calling an action directly — reports to nobody, and reporting stays a\n * side channel rather than a change to what `actionExecute` returns.\n *\n * @since 1.0.0\n * @category services\n */\nexport class DispatchReport extends Context.Service<DispatchReport, {\n readonly dispatched: (dispatch: DispatchOutcome) => Effect.Effect<void>\n}>()(\"@smthrs/flow/Action/DispatchReport\") {}\n\n/**\n * Reports one dispatch to the node that drove it, when a node drove it.\n *\n * @since 1.0.0\n * @category constructors\n */\nexport const reportDispatch = (dispatch: DispatchOutcome): Effect.Effect<void> =>\n Effect.flatMap(\n Effect.serviceOption(DispatchReport),\n (report) => Option.isNone(report) ? Effect.void : report.value.dispatched(dispatch)\n )\n\n/**\n * The declaration material an allocation scope is derived from.\n *\n * @since 0.1.0\n * @category models\n */\nexport interface AllocationIdentity {\n /**\n * `\"action\"` for user-declared action dispatches, `\"internal\"` for\n * engine-owned durable operations (queue offers, deferred tokens). The two\n * kinds own disjoint counter namespaces.\n */\n readonly kind: \"action\" | \"internal\"\n /**\n * The stable declaration identity: an action's declared name, or a fixed\n * label for an internal operation family. Diagnostic names must not be\n * passed here unless they are part of identity.\n */\n readonly name: string\n /**\n * The explicit idempotency component. A declared string and a declared\n * cache key input both refine the scope — two concurrent invocations of\n * one name with distinguishable inputs each own their own counter, so a\n * replay that reverses fiber-arrival order can never hand one invocation\n * the other's recorded outcome. Absent, invocations of one name share a\n * counter and remain allocation-ordered — indistinguishable declarations\n * have no material to order them by.\n */\n readonly idempotency?: string | Schema.JsonObject | undefined\n /**\n * The replay-stable structural address of the interpreter graph node that\n * drives this dispatch. Absent for handler-driven dispatches, preserving\n * their existing allocation scopes byte for byte.\n */\n readonly site?: string | undefined\n}\n\n/**\n * Derives the ordinal allocation scope of a durable operation.\n *\n * The scope keys the operation's ordinal counter and is folded into its\n * persisted invocation key as `parentScope`, so identity is stable\n * under any interleaving of distinct declarations.\n *\n * Injectivity: the name is length-prefixed (`<kind>/<length>:<name>`), so a\n * name containing `/s:` or `/c:` material cannot collide with a keyed form\n * of a shorter name, and the idempotency component is a fixed-shape tagged\n * digest appended after the name. Both idempotency forms canonicalize under\n * distinct one-character tags so a string can never alias the object identity\n * whose digest it happens to spell. A present site is appended as\n * `/g:<length>:<site>`; its length prefix prevents site contents from\n * aliasing another component or splicing across a future suffix. An absent\n * site appends nothing, preserving the prior encoding exactly.\n *\n * The object form is caller-owned material, so it can carry values canonical\n * serialization rejects (`Date`, `undefined`, class instances, `Redacted`);\n * the failure surfaces as the typed `SchemaError` (issue #151), never\n * as a thrown defect. The string and absent forms\n * are total — the first overload keeps their error channel `never`.\n *\n * @since 0.1.0\n * @category derivations\n */\nexport const allocationScope = (\n identity: AllocationIdentity\n): Effect.Effect<string, Schema.SchemaError, Crypto.Crypto> =>\n Effect.gen(function*() {\n let scope = `${identity.kind}/${identity.name.length}:${identity.name}`\n if (typeof identity.idempotency === \"string\") {\n const digest = yield* Schema.decodeUnknownEffect(Sha256)(identity.idempotency)\n scope = `${scope}/s:${digest}`\n } else if (identity.idempotency !== undefined) {\n const key = yield* Schema.decodeUnknownEffect(DerivedKey)({ kind: \"declaration\", input: identity.idempotency })\n scope = `${scope}/c:${key}`\n }\n if (identity.site === undefined) return scope\n return `${scope}/g:${identity.site.length}:${identity.site}`\n })\n\n/**\n * Derives an invocation key from engine-generated input.\n *\n * The input is engine-generated by construction — a finite counter\n * ordinal, a literal tier, and plain string scopes — so canonical\n * serialization cannot reject it. A failure here is an engine defect, and it\n * surfaces as the typed `SchemaError` itself (issue #151) rather than\n * being discarded through `Result.getOrThrow`.\n *\n * @since 0.1.0\n * @category derivations\n */\nexport const invocationKey = (input: {\n readonly runId: string\n readonly parentScope?: string | undefined\n readonly ordinal: number\n readonly tier: \"unsealed\" | \"compensable\" | \"irreversible\"\n}): Effect.Effect<StoredKey, Schema.SchemaError, Crypto.Crypto> =>\n Schema.decodeUnknownEffect(Invocation)(input).pipe(\n Effect.flatMap((validated) => Schema.decodeUnknownEffect(DerivedKey)({ kind: \"invocation\", ...validated }))\n )\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Directory outputs captured and replayed as tree artifacts.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ export { TreeArtifact } from "@smthrs/plan/FileSet";
7
+ export type { TreeArtifact as Type } from "@smthrs/plan/FileSet";
8
+ //# sourceMappingURL=TreeArtifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeArtifact.d.ts","sourceRoot":"","sources":["../../../src/Action/TreeArtifact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,YAAY,IAAI,IAAI,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Directory outputs captured and replayed as tree artifacts.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ export { TreeArtifact } from "@smthrs/plan/FileSet";
7
+ //# sourceMappingURL=TreeArtifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeArtifact.js","sourceRoot":"","sources":["../../../src/Action/TreeArtifact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA","sourcesContent":["/**\n * Directory outputs captured and replayed as tree artifacts.\n *\n * @since 0.1.0\n */\n\nexport { TreeArtifact } from \"@smthrs/plan/FileSet\"\nexport type { TreeArtifact as Type } from \"@smthrs/plan/FileSet\"\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Runtime identity shared by action interfaces and constructors.
3
+ *
4
+ * @private
5
+ * @since 0.1.0
6
+ */
7
+ export declare const TypeId = "@smthrs/flow/Action";
8
+ //# sourceMappingURL=TypeId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeId.d.ts","sourceRoot":"","sources":["../../../src/Action/TypeId.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,9 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * Runtime identity shared by action interfaces and constructors.
4
+ *
5
+ * @private
6
+ * @since 0.1.0
7
+ */
8
+ export const TypeId = "@smthrs/flow/Action";
9
+ //# sourceMappingURL=TypeId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeId.js","sourceRoot":"","sources":["../../../src/Action/TypeId.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,qBAAqB,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Runtime identity shared by action interfaces and constructors.\n *\n * @private\n * @since 0.1.0\n */\nexport const TypeId = \"@smthrs/flow/Action\"\n"]}
@@ -0,0 +1,32 @@
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
+ import * as Schema from "effect/Schema";
11
+ declare const UncanonicalIdempotencyKey_base: Schema.Class<UncanonicalIdempotencyKey, Schema.TaggedStruct<"@smthrs/flow/UncanonicalIdempotencyKey", {
12
+ readonly code: Schema.withConstructorDefault<Schema.Literal<"uncanonical_idempotency_key">>;
13
+ readonly actionName: Schema.String;
14
+ /** Stable reason identifying an RFC 8785 canonicalization failure. */
15
+ readonly reason: Schema.String;
16
+ /** The path of the offending value inside the declared identity. */
17
+ readonly path: Schema.String;
18
+ readonly message: Schema.String;
19
+ }>, import("effect/Cause").YieldableError>;
20
+ /**
21
+ * A caller-declared object-form `idempotencyKey` carried material canonical
22
+ * serialization rejects. The declaration can be fixed, and the error is
23
+ * non-retryable: the same declaration
24
+ * derives the same rejection on every attempt, so the body never runs.
25
+ *
26
+ * @category errors
27
+ * @since 0.1.0
28
+ */
29
+ export declare class UncanonicalIdempotencyKey extends UncanonicalIdempotencyKey_base {
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=UncanonicalIdempotencyKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UncanonicalIdempotencyKey.d.ts","sourceRoot":"","sources":["../../../src/Action/UncanonicalIdempotencyKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;IAkBnC,sEAAsE;;IAEtE,oEAAoE;;;;AAlBxE;;;;;;;;GAQG;AACH,qBAAa,yBAA0B,SAAQ,8BAa9C;CAAG"}
@@ -0,0 +1,31 @@
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
+ import * as Effect from "effect/Effect";
11
+ import * as Schema from "effect/Schema";
12
+ /**
13
+ * A caller-declared object-form `idempotencyKey` carried material canonical
14
+ * serialization rejects. The declaration can be fixed, and the error is
15
+ * non-retryable: the same declaration
16
+ * derives the same rejection on every attempt, so the body never runs.
17
+ *
18
+ * @category errors
19
+ * @since 0.1.0
20
+ */
21
+ export class UncanonicalIdempotencyKey extends Schema.TaggedError()("@smthrs/flow/UncanonicalIdempotencyKey", {
22
+ code: Schema.Literal("uncanonical_idempotency_key").pipe(Schema.withConstructorDefault(Effect.succeed("uncanonical_idempotency_key"))),
23
+ actionName: Schema.String,
24
+ /** Stable reason identifying an RFC 8785 canonicalization failure. */
25
+ reason: Schema.String,
26
+ /** The path of the offending value inside the declared identity. */
27
+ path: Schema.String,
28
+ message: Schema.String
29
+ }) {
30
+ }
31
+ //# sourceMappingURL=UncanonicalIdempotencyKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UncanonicalIdempotencyKey.js","sourceRoot":"","sources":["../../../src/Action/UncanonicalIdempotencyKey.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,WAAW,EAA6B,CAC5F,wCAAwC,EACxC;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAC7E;IACD,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG","sourcesContent":["/**\n * Defines the `UncanonicalIdempotencyKey` action failure.\n *\n * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC\n * makes no compatibility promise to 0.x journals, and the tag freezes when\n * the RC ships.\n *\n * @since 0.1.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * A caller-declared object-form `idempotencyKey` carried material canonical\n * serialization rejects. The declaration can be fixed, and the error is\n * non-retryable: the same declaration\n * derives the same rejection on every attempt, so the body never runs.\n *\n * @category errors\n * @since 0.1.0\n */\nexport class UncanonicalIdempotencyKey extends Schema.TaggedError<UncanonicalIdempotencyKey>()(\n \"@smthrs/flow/UncanonicalIdempotencyKey\",\n {\n code: Schema.Literal(\"uncanonical_idempotency_key\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"uncanonical_idempotency_key\"))\n ),\n actionName: Schema.String,\n /** Stable reason identifying an RFC 8785 canonicalization failure. */\n reason: Schema.String,\n /** The path of the offending value inside the declared identity. */\n path: Schema.String,\n message: Schema.String\n }\n) {}\n"]}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Derives run-local keys for internal durable operations.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import type * as Crypto from "effect/Crypto";
7
+ import * as Effect from "effect/Effect";
8
+ import { FlowInstance } from "../FlowRuntime/FlowInstance.ts";
9
+ /**
10
+ * Computes a run-local invocation key for an internal durable operation.
11
+ *
12
+ * The caller name separates durable declarations that share a parent scope.
13
+ *
14
+ * @category idempotency
15
+ * @since 0.1.0
16
+ */
17
+ export declare const idempotencyKey: (name: string, options?: {
18
+ readonly includeAttempt?: boolean | undefined;
19
+ readonly parentScope?: string | undefined;
20
+ } | undefined) => Effect.Effect<string, never, FlowInstance | Crypto.Crypto>;
21
+ //# sourceMappingURL=idempotencyKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idempotencyKey.d.ts","sourceRoot":"","sources":["../../../src/Action/idempotencyKey.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAI7D;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C,GAAG,SAAS,KACV,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,CAsC1D,CAAA"}
@@ -0,0 +1,50 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ import * as Effect from "effect/Effect";
3
+ import { FlowInstance } from "../FlowRuntime/FlowInstance.js";
4
+ import { CurrentAttempt } from "./Context.js";
5
+ import * as StepIdentity from "./StepIdentity.js";
6
+ /**
7
+ * Computes a run-local invocation key for an internal durable operation.
8
+ *
9
+ * The caller name separates durable declarations that share a parent scope.
10
+ *
11
+ * @category idempotency
12
+ * @since 0.1.0
13
+ */
14
+ export const idempotencyKey =
15
+ // Untraced because action-key allocation is on every action attempt.
16
+ Effect.fnUntraced(function* (name, options) {
17
+ const instance = yield* FlowInstance;
18
+ const attempt = yield* CurrentAttempt;
19
+ // Internal durable operations are scoped by the caller's declaration name
20
+ // and declared `parentScope` through the canonical `StepIdentity` derivation (issue
21
+ // #98): a run-global counter numbered concurrent offers in fiber-arrival
22
+ // order, so a replay with a permuted interleaving handed one payload's
23
+ // ordinal to another and its await watched a deferred nothing resolves.
24
+ // With the counter scoped per declared parent, each scope numbers its
25
+ // own allocations deterministically; only allocations *within* one
26
+ // scope remain arrival-ordered — they carry no input that orders them
27
+ // by.
28
+ const parentScope = options?.parentScope !== undefined
29
+ ? options.parentScope
30
+ : options?.includeAttempt
31
+ ? `attempt:${attempt}`
32
+ : undefined;
33
+ // String (or absent) idempotency input keeps the derivation total
34
+ // (issue #151): schema decoding preserves typed identity failures while
35
+ // injected cryptography keeps key construction platform-independent.
36
+ const scope = yield* StepIdentity.allocationScope({
37
+ kind: "internal",
38
+ name,
39
+ idempotency: parentScope
40
+ }).pipe(Effect.orDie);
41
+ const ordinal = instance.actionState.nextOrdinal(scope);
42
+ const identityScope = JSON.stringify([name, parentScope ?? null]);
43
+ return yield* StepIdentity.invocationKey({
44
+ runId: instance.executionId,
45
+ ordinal,
46
+ tier: "unsealed",
47
+ parentScope: identityScope
48
+ }).pipe(Effect.orDie);
49
+ });
50
+ //# sourceMappingURL=idempotencyKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idempotencyKey.js","sourceRoot":"","sources":["../../../src/Action/idempotencyKey.ts"],"names":[],"mappings":"AAAA,uDAAuD;AASvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc;AAOzB,qEAAqE;AACrE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,IAAY,EAAE,OAGzC;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAA;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,cAAc,CAAA;IACrC,0EAA0E;IAC1E,oFAAoF;IACpF,yEAAyE;IACzE,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,sEAAsE;IACtE,MAAM;IACN,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,KAAK,SAAS;QACpD,CAAC,CAAC,OAAO,CAAC,WAAW;QACrB,CAAC,CAAC,OAAO,EAAE,cAAc;YACzB,CAAC,CAAC,WAAW,OAAO,EAAE;YACtB,CAAC,CAAC,SAAS,CAAA;IACb,kEAAkE;IAClE,wEAAwE;IACxE,qEAAqE;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;QAChD,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACrB,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAA;IACjE,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC;QACvC,KAAK,EAAE,QAAQ,CAAC,WAAW;QAC3B,OAAO;QACP,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,aAAa;KAC3B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Derives run-local keys for internal durable operations.\n *\n * @since 0.1.0\n */\n\nimport type * as Crypto from \"effect/Crypto\"\nimport * as Effect from \"effect/Effect\"\nimport { FlowInstance } from \"../FlowRuntime/FlowInstance.ts\"\nimport { CurrentAttempt } from \"./Context.ts\"\nimport * as StepIdentity from \"./StepIdentity.ts\"\n\n/**\n * Computes a run-local invocation key for an internal durable operation.\n *\n * The caller name separates durable declarations that share a parent scope.\n *\n * @category idempotency\n * @since 0.1.0\n */\nexport const idempotencyKey: (\n name: string,\n options?: {\n readonly includeAttempt?: boolean | undefined\n readonly parentScope?: string | undefined\n } | undefined\n) => Effect.Effect<string, never, FlowInstance | Crypto.Crypto> =\n // Untraced because action-key allocation is on every action attempt.\n Effect.fnUntraced(function*(name: string, options?: {\n readonly includeAttempt?: boolean | undefined\n readonly parentScope?: string | undefined\n }) {\n const instance = yield* FlowInstance\n const attempt = yield* CurrentAttempt\n // Internal durable operations are scoped by the caller's declaration name\n // and declared `parentScope` through the canonical `StepIdentity` derivation (issue\n // #98): a run-global counter numbered concurrent offers in fiber-arrival\n // order, so a replay with a permuted interleaving handed one payload's\n // ordinal to another and its await watched a deferred nothing resolves.\n // With the counter scoped per declared parent, each scope numbers its\n // own allocations deterministically; only allocations *within* one\n // scope remain arrival-ordered — they carry no input that orders them\n // by.\n const parentScope = options?.parentScope !== undefined\n ? options.parentScope\n : options?.includeAttempt\n ? `attempt:${attempt}`\n : undefined\n // String (or absent) idempotency input keeps the derivation total\n // (issue #151): schema decoding preserves typed identity failures while\n // injected cryptography keeps key construction platform-independent.\n const scope = yield* StepIdentity.allocationScope({\n kind: \"internal\",\n name,\n idempotency: parentScope\n }).pipe(Effect.orDie)\n const ordinal = instance.actionState.nextOrdinal(scope)\n const identityScope = JSON.stringify([name, parentScope ?? null])\n return yield* StepIdentity.invocationKey({\n runId: instance.executionId,\n ordinal,\n tier: \"unsealed\",\n parentScope: identityScope\n }).pipe(Effect.orDie)\n })\n"]}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Durable actions, identity, boundaries, retries, and runtime context.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ export * from "./Action.ts";
7
+ export * from "./AttemptTimedOut.ts";
8
+ export * from "./BoundaryMode.ts";
9
+ export * from "./CacheEnvironment.ts";
10
+ export * from "./ConcurrentKeylessDispatch.ts";
11
+ export * from "./Context.ts";
12
+ export * from "./DuplicateImplementation.ts";
13
+ export * from "./FileBoundary.ts";
14
+ export * as Filegroup from "./Filegroup.ts";
15
+ export * from "./FileInput.ts";
16
+ export * as Glob from "./Glob.ts";
17
+ export * from "./idempotencyKey.ts";
18
+ export * from "./Implementations.ts";
19
+ export * from "./ImplementationVersionMismatch.ts";
20
+ export * from "./InfraInterrupt.ts";
21
+ export * from "./InfraInterruptRetriesExhausted.ts";
22
+ export * from "./IrreversibleRetryRequiresIdempotencyKey.ts";
23
+ export * from "./make.ts";
24
+ export * from "./raceAll.ts";
25
+ export * from "./retry.ts";
26
+ export * from "./StepIdentity.ts";
27
+ export * as TreeArtifact from "./TreeArtifact.ts";
28
+ export * from "./UncanonicalIdempotencyKey.ts";
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Action/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oCAAoC,CAAA;AAClD,cAAc,qBAAqB,CAAA;AACnC,cAAc,qCAAqC,CAAA;AACnD,cAAc,8CAA8C,CAAA;AAC5D,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,cAAc,gCAAgC,CAAA"}
@@ -0,0 +1,30 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * Durable actions, identity, boundaries, retries, and runtime context.
4
+ *
5
+ * @since 0.1.0
6
+ */
7
+ export * from "./Action.js";
8
+ export * from "./AttemptTimedOut.js";
9
+ export * from "./BoundaryMode.js";
10
+ export * from "./CacheEnvironment.js";
11
+ export * from "./ConcurrentKeylessDispatch.js";
12
+ export * from "./Context.js";
13
+ export * from "./DuplicateImplementation.js";
14
+ export * from "./FileBoundary.js";
15
+ export * as Filegroup from "./Filegroup.js";
16
+ export * from "./FileInput.js";
17
+ export * as Glob from "./Glob.js";
18
+ export * from "./idempotencyKey.js";
19
+ export * from "./Implementations.js";
20
+ export * from "./ImplementationVersionMismatch.js";
21
+ export * from "./InfraInterrupt.js";
22
+ export * from "./InfraInterruptRetriesExhausted.js";
23
+ export * from "./IrreversibleRetryRequiresIdempotencyKey.js";
24
+ export * from "./make.js";
25
+ export * from "./raceAll.js";
26
+ export * from "./retry.js";
27
+ export * from "./StepIdentity.js";
28
+ export * as TreeArtifact from "./TreeArtifact.js";
29
+ export * from "./UncanonicalIdempotencyKey.js";
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Action/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;GAIG;AAEH,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,cAAc,CAAA;AAC5B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oCAAoC,CAAA;AAClD,cAAc,qBAAqB,CAAA;AACnC,cAAc,qCAAqC,CAAA;AACnD,cAAc,8CAA8C,CAAA;AAC5D,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,cAAc,gCAAgC,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Durable actions, identity, boundaries, retries, and runtime context.\n *\n * @since 0.1.0\n */\n\nexport * from \"./Action.ts\"\nexport * from \"./AttemptTimedOut.ts\"\nexport * from \"./BoundaryMode.ts\"\nexport * from \"./CacheEnvironment.ts\"\nexport * from \"./ConcurrentKeylessDispatch.ts\"\nexport * from \"./Context.ts\"\nexport * from \"./DuplicateImplementation.ts\"\nexport * from \"./FileBoundary.ts\"\nexport * as Filegroup from \"./Filegroup.ts\"\nexport * from \"./FileInput.ts\"\nexport * as Glob from \"./Glob.ts\"\nexport * from \"./idempotencyKey.ts\"\nexport * from \"./Implementations.ts\"\nexport * from \"./ImplementationVersionMismatch.ts\"\nexport * from \"./InfraInterrupt.ts\"\nexport * from \"./InfraInterruptRetriesExhausted.ts\"\nexport * from \"./IrreversibleRetryRequiresIdempotencyKey.ts\"\nexport * from \"./make.ts\"\nexport * from \"./raceAll.ts\"\nexport * from \"./retry.ts\"\nexport * from \"./StepIdentity.ts\"\nexport * as TreeArtifact from \"./TreeArtifact.ts\"\nexport * from \"./UncanonicalIdempotencyKey.ts\"\n"]}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Constructs executable durable action values.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import type * as Effects from "@smthrs/plan/Effects";
7
+ import * as Context from "effect/Context";
8
+ import * as Effect from "effect/Effect";
9
+ import type * as Schedule from "effect/Schedule";
10
+ import * as Schema from "effect/Schema";
11
+ import type { Scope } from "effect/Scope";
12
+ import type * as Flow from "../Flow/Flow.ts";
13
+ import { FlowInstance } from "../FlowRuntime/FlowInstance.ts";
14
+ import { FlowRuntime } from "../FlowRuntime/FlowRuntime.ts";
15
+ import type * as RetryPolicy from "../RetryPolicy.ts";
16
+ import type { Action, Declared, IdempotencyKey, Tier } from "./Action.ts";
17
+ import { FileBoundary } from "./FileBoundary.ts";
18
+ /**
19
+ * The options of a declared action, shared by {@link make}'s declared form and
20
+ * {@link makeSystem}.
21
+ */
22
+ interface DeclaredOptions<Payload extends Schema.Struct.Fields | Flow.AnyStructSchema, Success extends Schema.Top, Error extends Schema.Top> {
23
+ readonly payload: Payload;
24
+ /**
25
+ * Native declaration whose source location this reconstructed action retains.
26
+ * A source with no recorded location preserves that absence. This affects
27
+ * diagnostics only, never identity; calls still refer to the new declaration.
28
+ */
29
+ readonly declaredFrom?: object | undefined;
30
+ readonly implementationVersion?: string | undefined;
31
+ readonly success?: Success | undefined;
32
+ readonly error?: Error | undefined;
33
+ /**
34
+ * The capability ceiling this action dispatches under, as string literals.
35
+ *
36
+ * It is the same ceiling {@link module:Flow/Annotations.Capabilities}
37
+ * carries, and declaring it here is what makes it READABLE without importing
38
+ * the module, exactly as `Flow.make`'s option is: a catalog projects a
39
+ * discovered declaration's authority from the source text of this literal,
40
+ * and an annotation built at run time is invisible to that projection.
41
+ *
42
+ * {@link module:Graph.build} records a `capability_outside_grant` refusal for
43
+ * every capability named here that the calling flow does not hold. The
44
+ * refusal is advisory: execution intersects this ceiling with every caller ceiling.
45
+ */
46
+ readonly capabilities?: ReadonlyArray<string> | undefined;
47
+ /**
48
+ * The effect envelope this action dispatches under, as a literal.
49
+ *
50
+ * It is the same declaration {@link module:Flow/Annotations.EffectEnvelope}
51
+ * carries, declared here for the same reason `capabilities` is.
52
+ *
53
+ * An action is a leaf, so this envelope encloses nothing; it is checked
54
+ * against the envelope the calling flow granted, and
55
+ * {@link module:Graph.build} refuses a dispatch that reads or writes outside
56
+ * that grant, loosens `hermetic` to `expected`, or raises the tier. `reads`
57
+ * and `writes` are normalized to sorted, duplicate-free arrays.
58
+ */
59
+ readonly effects?: Effects.MakeOptions | undefined;
60
+ readonly tier?: Tier | undefined;
61
+ readonly idempotencyKey?: IdempotencyKey | ((payload: (Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload)["Type"]) => IdempotencyKey) | undefined;
62
+ readonly nondeterministic?: true | undefined;
63
+ readonly retryPolicy?: RetryPolicy.RetryPolicy | undefined;
64
+ /**
65
+ * Milliseconds one attempt may run. A longer attempt is interrupted and
66
+ * fails with {@link module:AttemptTimedOut.AttemptTimedOut}, which
67
+ * `retryPolicy` retries like any other attempt failure.
68
+ */
69
+ readonly attemptTimeoutMs?: number | undefined;
70
+ /**
71
+ * Milliseconds one attempt may go without calling
72
+ * {@link module:Context.heartbeat}, measured from the attempt's start and
73
+ * then from each heartbeat. A missed heartbeat fails the attempt like
74
+ * `attemptTimeoutMs`.
75
+ */
76
+ readonly heartbeatTimeoutMs?: number | undefined;
77
+ readonly interruptRetryPolicy?: Schedule.Schedule<any, unknown> | undefined;
78
+ readonly fileBoundary?: FileBoundary | ((payload: (Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload)["Type"]) => FileBoundary) | undefined;
79
+ readonly annotations?: Context.Context<never> | undefined;
80
+ }
81
+ /**
82
+ * Creates either an inline executable action or a named action
83
+ * declaration, selected by whether the first argument is a string.
84
+ *
85
+ * @category constructors
86
+ * @since 0.1.0
87
+ */
88
+ export declare const make: {
89
+ <const Tag extends string, Payload extends Schema.Struct.Fields | Flow.AnyStructSchema, Success extends Schema.Top = Schema.Void, Error extends Schema.Top = Schema.Never>(tag: Tag, options: DeclaredOptions<Payload, Success, Error>): Declared<Tag, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Success, Error>;
90
+ <R, Success extends Schema.Constraint = Schema.Void, Error extends Schema.Constraint = Schema.Never>(options: {
91
+ readonly name: string;
92
+ readonly implementationVersion?: string | undefined;
93
+ readonly success?: Success | undefined;
94
+ readonly error?: Error | undefined;
95
+ readonly execute: Effect.Effect<Success["Type"], Error["Type"], R>;
96
+ readonly tier?: Tier | undefined;
97
+ readonly idempotencyKey?: IdempotencyKey | undefined;
98
+ readonly nondeterministic?: true | undefined;
99
+ readonly metadata?: unknown;
100
+ readonly fileBoundary?: FileBoundary | undefined;
101
+ readonly interruptRetryPolicy?: Schedule.Schedule<any, unknown> | undefined;
102
+ readonly retryPolicy?: RetryPolicy.RetryPolicy | undefined;
103
+ readonly attemptTimeoutMs?: number | undefined;
104
+ readonly heartbeatTimeoutMs?: number | undefined;
105
+ readonly annotations?: Context.Context<never> | undefined;
106
+ }): Action<Success, Error, Exclude<R, FlowInstance | FlowRuntime | Scope>>;
107
+ };
108
+ /**
109
+ * Declares a SYSTEM action: one whose implementation ships with the engine
110
+ * rather than with the composition that calls it.
111
+ *
112
+ * It is {@link make}'s declared form in every respect except the requirement.
113
+ * A system declaration mints none, so `.call()` records a node that demands
114
+ * nothing and a body using {@link module:Sleep} or {@link module:WaitFor} does
115
+ * not push a layer obligation onto its callers. That is the whole difference,
116
+ * and it is a deliberate hole in the compile-time enforcement: the engine owns
117
+ * these implementations, so an author cannot be the one who forgot them.
118
+ *
119
+ * Everything else is unchanged — the layer still registers with the runtime and
120
+ * still files itself in {@link module:Implementations.Implementations}, so a
121
+ * driver resolves a system action by tag exactly like any other.
122
+ *
123
+ * @category constructors
124
+ * @since 0.1.0
125
+ */
126
+ export declare const makeSystem: <const Tag extends string, Payload extends Schema.Struct.Fields | Flow.AnyStructSchema, Success extends Schema.Top = Schema.Void, Error extends Schema.Top = Schema.Never>(tag: Tag, options: DeclaredOptions<Payload, Success, Error>) => Declared<Tag, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Success, Error, never>;
127
+ export {};
128
+ //# sourceMappingURL=make.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make.d.ts","sourceRoot":"","sources":["../../../src/Action/make.ts"],"names":[],"mappings":"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"}