@smthrs/flow 0.0.0-stage → 1.0.0-rc.13

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 +161 -0
  2. package/LICENSE +21 -0
  3. package/README.md +212 -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 +387 -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 +110 -0
  106. package/dist/cjs/Deadline.d.ts.map +1 -0
  107. package/dist/cjs/Deadline.js +112 -0
  108. package/dist/cjs/Deadline.js.map +7 -0
  109. package/dist/cjs/DurableClock.d.ts +60 -0
  110. package/dist/cjs/DurableClock.d.ts.map +1 -0
  111. package/dist/cjs/DurableClock.js +107 -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 +339 -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 +186 -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 +149 -0
  182. package/dist/cjs/Flow/make.d.ts.map +1 -0
  183. package/dist/cjs/Flow/make.js +107 -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 +204 -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 +177 -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 +1020 -0
  224. package/dist/cjs/Graph.js.map +7 -0
  225. package/dist/cjs/HumanTask.d.ts +442 -0
  226. package/dist/cjs/HumanTask.d.ts.map +1 -0
  227. package/dist/cjs/HumanTask.js +422 -0
  228. package/dist/cjs/HumanTask.js.map +7 -0
  229. package/dist/cjs/Interpreter.d.ts +223 -0
  230. package/dist/cjs/Interpreter.d.ts.map +1 -0
  231. package/dist/cjs/Interpreter.js +919 -0
  232. package/dist/cjs/Interpreter.js.map +7 -0
  233. package/dist/cjs/Poll.d.ts +240 -0
  234. package/dist/cjs/Poll.d.ts.map +1 -0
  235. package/dist/cjs/Poll.js +154 -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 +141 -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 +413 -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 +110 -0
  383. package/dist/esm/Deadline.d.ts.map +1 -0
  384. package/dist/esm/Deadline.js +164 -0
  385. package/dist/esm/Deadline.js.map +1 -0
  386. package/dist/esm/DurableClock.d.ts +60 -0
  387. package/dist/esm/DurableClock.d.ts.map +1 -0
  388. package/dist/esm/DurableClock.js +122 -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 +252 -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 +149 -0
  459. package/dist/esm/Flow/make.d.ts.map +1 -0
  460. package/dist/esm/Flow/make.js +111 -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 +204 -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 +177 -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 +1485 -0
  501. package/dist/esm/Graph.js.map +1 -0
  502. package/dist/esm/HumanTask.d.ts +442 -0
  503. package/dist/esm/HumanTask.d.ts.map +1 -0
  504. package/dist/esm/HumanTask.js +810 -0
  505. package/dist/esm/HumanTask.js.map +1 -0
  506. package/dist/esm/Interpreter.d.ts +223 -0
  507. package/dist/esm/Interpreter.d.ts.map +1 -0
  508. package/dist/esm/Interpreter.js +1301 -0
  509. package/dist/esm/Interpreter.js.map +1 -0
  510. package/dist/esm/Poll.d.ts +240 -0
  511. package/dist/esm/Poll.d.ts.map +1 -0
  512. package/dist/esm/Poll.js +289 -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 +256 -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 +152 -0
  559. package/docs/api.md +440 -0
  560. package/docs/concepts/bodies-and-plans.md +167 -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 +164 -0
  568. package/docs/guides/cancel-and-roll-back.md +112 -0
  569. package/docs/guides/implement-an-action.md +155 -0
  570. package/docs/guides/inspect-the-plan.md +235 -0
  571. package/docs/guides/poll-until-ready.md +169 -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 +129 -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 +87 -0
  581. package/docs/quickstart.md +164 -0
  582. package/docs/reference/flow.md +1835 -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 +671 -0
  609. package/src/Action/raceAll.ts +48 -0
  610. package/src/Action/retry.ts +92 -0
  611. package/src/Deadline.ts +201 -0
  612. package/src/DurableClock.ts +176 -0
  613. package/src/DurableDeferred.ts +753 -0
  614. package/src/DurableQueue.ts +519 -0
  615. package/src/ExternalJob.ts +437 -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 +339 -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 +299 -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 +339 -0
  637. package/src/FlowRuntime/NodeRecord.ts +185 -0
  638. package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
  639. package/src/FlowRuntime/index.ts +17 -0
  640. package/src/Graph.ts +1865 -0
  641. package/src/HumanTask.ts +1021 -0
  642. package/src/Interpreter.ts +1635 -0
  643. package/src/Poll.ts +420 -0
  644. package/src/RetryPolicy.ts +550 -0
  645. package/src/Sleep.ts +296 -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 @@
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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"}
@@ -0,0 +1,413 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ import * as Node from "@smthrs/plan/Node";
3
+ import * as Cause from "effect/Cause";
4
+ import * as Context from "effect/Context";
5
+ import * as Deferred from "effect/Deferred";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Effectable from "effect/Effectable";
8
+ import * as Exit from "effect/Exit";
9
+ import * as Fiber from "effect/Fiber";
10
+ import * as Layer from "effect/Layer";
11
+ import * as Option from "effect/Option";
12
+ import * as Predicate from "effect/Predicate";
13
+ import * as Schema from "effect/Schema";
14
+ import { makeProto } from "../Flow/internal.js";
15
+ import * as FlowHelpers from "../Flow/Runtime.js";
16
+ import { FlowInstance } from "../FlowRuntime/FlowInstance.js";
17
+ import { FlowRuntime } from "../FlowRuntime/FlowRuntime.js";
18
+ import { lowerDeclarations } from "../internal/Declarations.js";
19
+ import * as DeclarationSite from "../internal/DeclarationSite.js";
20
+ import { AttemptTimedOut } from "./AttemptTimedOut.js";
21
+ import { CurrentAttempt, CurrentHeartbeat } from "./Context.js";
22
+ import { FileBoundary } from "./FileBoundary.js";
23
+ import { Implementations } from "./Implementations.js";
24
+ import { ImplementationVersionMismatch } from "./ImplementationVersionMismatch.js";
25
+ import { InfraInterruptRetriesExhausted } from "./InfraInterruptRetriesExhausted.js";
26
+ import { TypeId } from "./TypeId.js";
27
+ // A declared action mints a fresh inline action per dispatch. Effect caches
28
+ // compiled parsers by AST identity, so the exit schemas are shared per
29
+ // (success, error) pair rather than rebuilt on every dispatch.
30
+ const exitSchemaCache = new WeakMap();
31
+ const exitSchemasFor = (success, error, successJson, errorJson) => {
32
+ let byError = exitSchemaCache.get(success);
33
+ if (byError === undefined) {
34
+ byError = new WeakMap();
35
+ exitSchemaCache.set(success, byError);
36
+ }
37
+ let cached = byError.get(error);
38
+ if (cached === undefined) {
39
+ cached = {
40
+ exitSchema: Schema.Exit(successJson, errorJson, Schema.Defect()),
41
+ exitSchemaPartial: Schema.Exit(successJson, errorJson, Schema.Unknown)
42
+ };
43
+ byError.set(error, cached);
44
+ }
45
+ return cached;
46
+ };
47
+ /**
48
+ * Creates a flow action from an effect, using the provided schemas to
49
+ * encode successes and failures for durable execution.
50
+ *
51
+ * @category constructors
52
+ * @since 0.1.0
53
+ */
54
+ const makeInline = (options) => {
55
+ const implementationVersion = options.implementationVersion === undefined
56
+ ? undefined
57
+ : Schema.decodeUnknownSync(Schema.NonEmptyString)(options.implementationVersion);
58
+ const successSchema = options.success ?? Schema.Void;
59
+ const errorSchema = options.error ?? Schema.Never;
60
+ const successSchemaJson = Schema.toCodecJson(successSchema);
61
+ const errorSchemaJson = Schema.toCodecJson(errorSchema);
62
+ const exitSchemas = exitSchemasFor(successSchema, errorSchema, successSchemaJson, errorSchemaJson);
63
+ let execute;
64
+ const attemptTimeoutMs = timeoutMs(options.name, "attemptTimeoutMs", options.attemptTimeoutMs);
65
+ const heartbeatTimeoutMs = timeoutMs(options.name, "heartbeatTimeoutMs", options.heartbeatTimeoutMs);
66
+ const executeWithInfraRetry = boundAttempt(options.name, attemptTimeoutMs, heartbeatTimeoutMs)(retryInfraInterrupt(options.name, options.interruptRetryPolicy)(options.execute));
67
+ const self = {
68
+ ...Effectable.Prototype({
69
+ label: "Action",
70
+ evaluate(_) {
71
+ return execute;
72
+ }
73
+ }),
74
+ [TypeId]: TypeId,
75
+ name: options.name,
76
+ implementationVersion,
77
+ successSchema,
78
+ errorSchema,
79
+ exitSchema: exitSchemas.exitSchema,
80
+ exitSchemaPartial: exitSchemas.exitSchemaPartial,
81
+ annotations: options.annotations ?? Context.empty(),
82
+ tier: options.tier ?? "sealed",
83
+ idempotencyKey: options.idempotencyKey,
84
+ nondeterministic: options.nondeterministic,
85
+ metadata: options.fileBoundary === undefined ? options.metadata : FileBoundary.make(options.fileBoundary),
86
+ fileBoundary: options.fileBoundary === undefined ? undefined : FileBoundary.make(options.fileBoundary),
87
+ retryPolicy: options.retryPolicy,
88
+ attemptTimeoutMs,
89
+ heartbeatTimeoutMs,
90
+ annotate(tag, value) {
91
+ return makeInline({
92
+ ...options,
93
+ annotations: Context.add(self.annotations, tag, value)
94
+ });
95
+ },
96
+ annotateMerge(context) {
97
+ return makeInline({
98
+ ...options,
99
+ annotations: Context.merge(self.annotations, context)
100
+ });
101
+ },
102
+ execute: executeWithInfraRetry,
103
+ executeEncoded: Effect.matchEffect(
104
+ // Recovery handlers in Effect discard typed reasons during interruption.
105
+ // Preserve failed cleanup as defects before entering the encoder.
106
+ Effect.onExit(executeWithInfraRetry, (exit) => {
107
+ if (Exit.isSuccess(exit) || !Cause.hasInterrupts(exit.cause))
108
+ return Effect.void;
109
+ const failures = exit.cause.reasons.filter(Cause.isFailReason);
110
+ return failures.length === 0 ? Effect.void : Effect.failCause(Cause.fromReasons(failures.map((reason) => Cause.makeDieReason(reason.error))));
111
+ }), {
112
+ onFailure: (error) => Effect.flatMap(Effect.orDie(Schema.encodeEffect(errorSchemaJson)(error)), Effect.fail),
113
+ onSuccess: (value) => Effect.orDie(Schema.encodeEffect(successSchemaJson)(value))
114
+ })
115
+ };
116
+ execute = makeExecute(self);
117
+ return self;
118
+ };
119
+ const makeDeclared = (tag, options, site) => {
120
+ const payloadSchema = (Schema.isSchema(options.payload)
121
+ ? options.payload
122
+ : Schema.Struct(options.payload));
123
+ const implementationVersion = options.implementationVersion === undefined
124
+ ? undefined
125
+ : Schema.decodeUnknownSync(Schema.NonEmptyString)(options.implementationVersion);
126
+ const successSchema = options.success ?? Schema.Void;
127
+ const errorSchema = options.error ?? Schema.Never;
128
+ const attemptTimeoutMs = timeoutMs(tag, "attemptTimeoutMs", options.attemptTimeoutMs);
129
+ const heartbeatTimeoutMs = timeoutMs(tag, "heartbeatTimeoutMs", options.heartbeatTimeoutMs);
130
+ const annotations = lowerDeclarations(options);
131
+ // The literals are already in the bag above, so an annotated copy rebuilds
132
+ // from options WITHOUT them: re-lowering would overwrite a `Capabilities` or
133
+ // `EffectEnvelope` the caller annotated on top of the declared one.
134
+ const lowered = {
135
+ ...options,
136
+ capabilities: undefined,
137
+ effects: undefined
138
+ };
139
+ // The requirement this declaration mints for itself. Context keys are
140
+ // compared by their string key, so re-minting one for an annotated copy of
141
+ // this declaration names the same slot the original does.
142
+ const requirement = Context.Service(`@smthrs/flow/Action/Requirement/${tag}`);
143
+ const self = {
144
+ [TypeId]: TypeId,
145
+ name: tag,
146
+ implementationVersion,
147
+ payloadSchema,
148
+ successSchema,
149
+ errorSchema,
150
+ tier: options.tier ?? "sealed",
151
+ idempotencyKey: options.idempotencyKey,
152
+ nondeterministic: options.nondeterministic,
153
+ retryPolicy: options.retryPolicy,
154
+ attemptTimeoutMs,
155
+ heartbeatTimeoutMs,
156
+ fileBoundary: options.fileBoundary,
157
+ annotations,
158
+ requirement,
159
+ annotate(key, value) {
160
+ return makeDeclared(tag, {
161
+ ...lowered,
162
+ annotations: Context.add(annotations, key, value)
163
+ }, site);
164
+ },
165
+ annotateMerge(context) {
166
+ return makeDeclared(tag, {
167
+ ...lowered,
168
+ annotations: Context.merge(annotations, context)
169
+ }, site);
170
+ },
171
+ call(payload) {
172
+ return Node.actionCall(self, tag, payload);
173
+ },
174
+ toLayer(execute, registrationOptions) {
175
+ if (registrationOptions?.implementationVersion !== implementationVersion) {
176
+ throw new ImplementationVersionMismatch({
177
+ actionName: tag,
178
+ declaredVersion: implementationVersion ?? null,
179
+ registeredVersion: registrationOptions?.implementationVersion ?? null,
180
+ message: `Action "${tag}" requires its declared implementationVersion at registration.`
181
+ });
182
+ }
183
+ // The flow form of this action: same tag, same schemas, and a body that
184
+ // is the one call to it. Registering that flow is what lets a caller
185
+ // `execute` the action as a durable execution of its own, and the body
186
+ // says truthfully what such an execution does. It stays INTERNAL — a flow
187
+ // carries a body and never a handler, so `Flow` has no `toLayer` for an
188
+ // author to reach this seam with.
189
+ //
190
+ // The private constructor preserves the ordinary flow representation
191
+ // without importing the public constructor back through this action.
192
+ const registration = DeclarationSite.annotate(makeProto({
193
+ _tag: tag,
194
+ payloadSchema,
195
+ successSchema,
196
+ errorSchema,
197
+ annotations,
198
+ body: (payload) => Node.actionCall(self, tag, payload)
199
+ }), DeclarationSite.capture());
200
+ const action = (payload) => makeInline({
201
+ name: tag,
202
+ implementationVersion,
203
+ success: successSchema,
204
+ error: errorSchema,
205
+ tier: self.tier,
206
+ idempotencyKey: typeof self.idempotencyKey === "function"
207
+ ? self.idempotencyKey(payload)
208
+ : self.idempotencyKey,
209
+ nondeterministic: self.nondeterministic,
210
+ retryPolicy: options.retryPolicy,
211
+ attemptTimeoutMs,
212
+ heartbeatTimeoutMs,
213
+ interruptRetryPolicy: options.interruptRetryPolicy,
214
+ fileBoundary: typeof options.fileBoundary === "function"
215
+ ? options.fileBoundary(payload)
216
+ : options.fileBoundary,
217
+ annotations,
218
+ execute: execute(payload)
219
+ });
220
+ // The implementation, provided under the requirement this declaration
221
+ // minted. That is the compile-time half: a body that called this action
222
+ // produced a node requiring the tag, and this layer is the only thing
223
+ // that answers it, so a plan cannot reach `execute` without its code.
224
+ //
225
+ // The name-keyed table is the run-time half and stays exactly as it was.
226
+ // A driver expanding a persisted plan has no types left to consult and
227
+ // resolves by tag, so the same implementation is filed there when a
228
+ // composition wired a table up. The table is optional on purpose: a
229
+ // composition that only executes handlers registered directly with the
230
+ // runtime has no use for it, and requiring it would change what every
231
+ // existing `toLayer` call site must provide.
232
+ const implement = Layer.effect(requirement)(Effect.gen(function* () {
233
+ const services = yield* Effect.context();
234
+ // The captured context is what the runtime's own `register` captures
235
+ // for the handler path: the services the implementation was wired with,
236
+ // overridable by whatever the run provides on top of them.
237
+ const provided = (payload) => Effect.flatMap(
238
+ // A driver assembles this payload from plan values rather than from
239
+ // a typed call site, so the declaration validates it exactly as
240
+ // `Flow.execute` validates a caller's. The cast is the erasure that
241
+ // hands an unknown to the constructor; `makeEffect` is what decides
242
+ // whether it was one.
243
+ Effect.orDie(payloadSchema.makeEffect(payload)), (decoded) => action(decoded)).pipe(Effect.updateContext((input) => Context.merge(services, input)));
244
+ const implementation = {
245
+ name: tag,
246
+ ...(implementationVersion === undefined ? {} : { implementationVersion }),
247
+ action: provided
248
+ };
249
+ const table = yield* Effect.serviceOption(Implementations);
250
+ if (Option.isSome(table))
251
+ yield* table.value.add(implementation, registrationOptions);
252
+ return implementation;
253
+ }));
254
+ return Layer.merge(Layer.effectDiscard(Effect.flatMap(FlowRuntime, (engine) => engine.register(registration, action))), implement);
255
+ }
256
+ };
257
+ return DeclarationSite.annotate(self, site);
258
+ };
259
+ /**
260
+ * Creates either an inline executable action or a named action
261
+ * declaration, selected by whether the first argument is a string.
262
+ *
263
+ * @category constructors
264
+ * @since 0.1.0
265
+ */
266
+ export const make = ((first, second) => {
267
+ if (typeof first !== "string")
268
+ return makeInline(first);
269
+ const options = second;
270
+ return makeDeclared(first, options, options.declaredFrom === undefined ? DeclarationSite.capture() : DeclarationSite.declaredAt(options.declaredFrom));
271
+ });
272
+ /**
273
+ * Declares a SYSTEM action: one whose implementation ships with the engine
274
+ * rather than with the composition that calls it.
275
+ *
276
+ * It is {@link make}'s declared form in every respect except the requirement.
277
+ * A system declaration mints none, so `.call()` records a node that demands
278
+ * nothing and a body using {@link module:Sleep} or {@link module:WaitFor} does
279
+ * not push a layer obligation onto its callers. That is the whole difference,
280
+ * and it is a deliberate hole in the compile-time enforcement: the engine owns
281
+ * these implementations, so an author cannot be the one who forgot them.
282
+ *
283
+ * Everything else is unchanged — the layer still registers with the runtime and
284
+ * still files itself in {@link module:Implementations.Implementations}, so a
285
+ * driver resolves a system action by tag exactly like any other.
286
+ *
287
+ * @category constructors
288
+ * @since 0.1.0
289
+ */
290
+ export const makeSystem = (tag, options) =>
291
+ // The erasure IS the declaration: the value still provides its requirement
292
+ // from `toLayer`, and dropping it from `call` only means nothing asks for it.
293
+ // Providing a service no one requires is always sound; the reverse would not
294
+ // be, which is why this is the one place the channel is written off.
295
+ makeDeclared(tag, options, options.declaredFrom === undefined ? DeclarationSite.capture() : DeclarationSite.declaredAt(options.declaredFrom));
296
+ /**
297
+ * Validates one declared attempt bound. An invalid bound is a programmer
298
+ * error thrown at declaration, like `Flow.make`'s `maxRounds`.
299
+ */
300
+ const timeoutMs = (name, field, value) => {
301
+ if (value === undefined)
302
+ return undefined;
303
+ if (!Number.isSafeInteger(value) || value < 1) {
304
+ throw new RangeError(`Action.make: "${name}" ${field} must be a positive safe integer`);
305
+ }
306
+ return value;
307
+ };
308
+ /**
309
+ * Bounds one attempt by its declared timeouts. An expired bound interrupts the
310
+ * body and dies with {@link AttemptTimedOut}, which the engine's retry
311
+ * decision point counts as a retryable attempt failure. A defect the body
312
+ * raises while it is being interrupted is kept beside the timeout, so the
313
+ * attempt is not mistaken for a clean timeout and retried past it.
314
+ *
315
+ * Every attempt gets its own heartbeat, a no-op without `heartbeatTimeoutMs`,
316
+ * so a nested action never feeds the watchdog of the action that called it.
317
+ */
318
+ const boundAttempt = (name, attemptTimeoutMs, heartbeatTimeoutMs) => (effect) => heartbeatTimeoutMs === undefined && attemptTimeoutMs === undefined
319
+ ? Effect.provideService(effect, CurrentHeartbeat, Effect.void)
320
+ : Effect.gen(function* () {
321
+ const attempt = yield* CurrentAttempt;
322
+ // Each heartbeat completes the signal the watchdog is waiting on and
323
+ // installs a fresh one. Waiting on sleeps rather than reading the clock
324
+ // keeps the gap immune to wall-clock adjustments.
325
+ let signal = Deferred.makeUnsafe();
326
+ const beat = Effect.sync(() => {
327
+ const done = signal;
328
+ signal = Deferred.makeUnsafe();
329
+ Deferred.doneUnsafe(done, Exit.void);
330
+ });
331
+ const expiries = [];
332
+ if (attemptTimeoutMs !== undefined) {
333
+ expiries.push(Effect.as(Effect.sleep(attemptTimeoutMs), "attempt"));
334
+ }
335
+ if (heartbeatTimeoutMs !== undefined) {
336
+ expiries.push(Effect.gen(function* () {
337
+ while (true) {
338
+ const beaten = yield* Effect.raceFirst(Effect.as(Deferred.await(signal), true), Effect.as(Effect.sleep(heartbeatTimeoutMs), false));
339
+ if (!beaten)
340
+ return "heartbeat";
341
+ }
342
+ }));
343
+ }
344
+ const body = yield* Effect.forkChild(Effect.provideService(effect, CurrentHeartbeat, heartbeatTimeoutMs === undefined ? Effect.void : beat), { startImmediately: true });
345
+ const outcome = yield* Effect.raceFirst(Fiber.await(body), Effect.raceAll(expiries));
346
+ if (typeof outcome !== "string")
347
+ return yield* outcome;
348
+ yield* Fiber.interrupt(body);
349
+ // The interruption was requested, so the body cannot settle with an
350
+ // answer: an uninterruptible region it was in ends in the interrupt.
351
+ // What remains beside the interrupt is a defect its cleanup raised.
352
+ const cleanup = yield* Fiber.join(body).pipe(Effect.as([]), Effect.catchCause((cause) => Effect.succeed(cause.reasons.filter((reason) => !Cause.isInterruptReason(reason)))));
353
+ const timeoutMs = outcome === "attempt" ? attemptTimeoutMs : heartbeatTimeoutMs;
354
+ const timedOut = new AttemptTimedOut({
355
+ actionName: name,
356
+ attempt,
357
+ bound: outcome,
358
+ timeoutMs,
359
+ message: `Action "${name}" attempt ${attempt} ` +
360
+ (outcome === "attempt" ? `ran past ${timeoutMs}ms` : `sent no heartbeat for ${timeoutMs}ms`)
361
+ });
362
+ return yield* Effect.failCause(Cause.fromReasons([Cause.makeDieReason(timedOut), ...cleanup]));
363
+ });
364
+ const isInfraInterrupt = (value) => Predicate.isTagged("@smthrs/flow/InfraInterrupt")(value);
365
+ const retryInfraInterrupt = (name, policy) => (effect) => policy === undefined
366
+ ? effect
367
+ : Effect.suspend(() => {
368
+ let attempts = 0;
369
+ return effect.pipe(
370
+ // Each failed execution reaches this tap once, including the final
371
+ // failure the schedule declines to retry, so this is the real attempt
372
+ // count rather than an estimate derived from schedule shape.
373
+ Effect.tapError((error) => isInfraInterrupt(error)
374
+ ? Effect.sync(() => void attempts++)
375
+ : Effect.void), Effect.retry({
376
+ schedule: policy,
377
+ while: isInfraInterrupt
378
+ }), Effect.catch((error) => isInfraInterrupt(error)
379
+ ? Effect.die(new InfraInterruptRetriesExhausted({
380
+ actionName: name,
381
+ attempts,
382
+ interrupt: error,
383
+ message: `Action "${name}" infrastructure interrupt retry attempts exhausted after ` +
384
+ `${attempts} attempts.`
385
+ }))
386
+ : Effect.fail(error)));
387
+ });
388
+ // Untraced because action execution is retried in the flow hot path.
389
+ const makeExecute = Effect.fnUntraced(function* (action) {
390
+ const engine = yield* FlowRuntime;
391
+ const instance = yield* FlowInstance;
392
+ const attempt = yield* CurrentAttempt;
393
+ yield* Effect.annotateCurrentSpan({
394
+ executionId: instance.executionId,
395
+ action: action.name,
396
+ attempt,
397
+ tier: action.tier
398
+ });
399
+ const result = yield* FlowHelpers.wrapActionResult(engine.actionExecute(action, attempt), (_) => _._tag === "Suspended");
400
+ // An action settles with an exit or with a suspension; a handoff is a
401
+ // FLOW settlement, and the engine's action path never produces one. The
402
+ // narrowing is written as "not complete" so the third result variant needs
403
+ // no unreachable arm of its own.
404
+ if (result._tag !== "Complete") {
405
+ yield* Effect.annotateCurrentSpan({ outcome: "suspended" });
406
+ return yield* FlowHelpers.suspend(instance);
407
+ }
408
+ yield* Effect.annotateCurrentSpan({ outcome: result.exit._tag === "Success" ? "success" : "failure" });
409
+ return yield* result.exit;
410
+ }, (effect) => Effect.withSpan(effect, "Action.execute", {
411
+ captureStackTrace: false
412
+ }));
413
+ //# sourceMappingURL=make.js.map