@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,888 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var Interpreter_exports = {};
30
+ __export(Interpreter_exports, {
31
+ InterpreterError: () => InterpreterError,
32
+ childExecutionId: () => childExecutionId,
33
+ interpret: () => interpret,
34
+ layer: () => layer,
35
+ layerWithImplementations: () => layerWithImplementations,
36
+ maximumDispatchDigests: () => maximumDispatchDigests,
37
+ maximumPageBytes: () => maximumPageBytes
38
+ });
39
+ module.exports = __toCommonJS(Interpreter_exports);
40
+ var import_Record = require("@smthrs/canonical/Record");
41
+ var CapabilitySet = __toESM(require("@smthrs/capability/CapabilitySet"), 1);
42
+ var import_keys = require("@smthrs/keys");
43
+ var import_GraphBuildError = require("@smthrs/plan/GraphBuildError");
44
+ var KeyMaterial = __toESM(require("@smthrs/plan/KeyMaterial"), 1);
45
+ var Node = __toESM(require("@smthrs/plan/Node"), 1);
46
+ var Planned = __toESM(require("@smthrs/plan/Planned"), 1);
47
+ var StepKey = __toESM(require("@smthrs/plan/StepKey"), 1);
48
+ var Cause = __toESM(require("effect/Cause"), 1);
49
+ var Context = __toESM(require("effect/Context"), 1);
50
+ var Deferred = __toESM(require("effect/Deferred"), 1);
51
+ var Effect = __toESM(require("effect/Effect"), 1);
52
+ var Exit = __toESM(require("effect/Exit"), 1);
53
+ var Layer = __toESM(require("effect/Layer"), 1);
54
+ var Option = __toESM(require("effect/Option"), 1);
55
+ var Predicate = __toESM(require("effect/Predicate"), 1);
56
+ var Schema = __toESM(require("effect/Schema"), 1);
57
+ var Scope = __toESM(require("effect/Scope"), 1);
58
+ var import_Implementations = require("./Action/Implementations.js");
59
+ var import_StepIdentity = require("./Action/StepIdentity.js");
60
+ var DurableDeferred = __toESM(require("./DurableDeferred.js"), 1);
61
+ var import_CapabilityCeiling = require("./Flow/CapabilityCeiling.js");
62
+ var Outcome = __toESM(require("./Flow/Outcome.js"), 1);
63
+ var import_Result = require("./Flow/Result.js");
64
+ var import_Runtime = require("./Flow/Runtime.js");
65
+ var import_TypeId = require("./Flow/TypeId.js");
66
+ var import_FlowInstance = require("./FlowRuntime/FlowInstance.js");
67
+ var import_FlowRuntime = require("./FlowRuntime/FlowRuntime.js");
68
+ var import_WaitingAnnotation = require("./FlowRuntime/WaitingAnnotation.js");
69
+ var Graph = __toESM(require("./Graph.js"), 1);
70
+ var BoundedJson = __toESM(require("./internal/BoundedJson.js"), 1);
71
+ var import_ExecutionMiddleware = require("./internal/ExecutionMiddleware.js");
72
+ var import_OutcomeMarker = require("./internal/OutcomeMarker.js");
73
+ class InterpreterError extends Schema.TaggedError()(
74
+ "@smthrs/flow/InterpreterError",
75
+ {
76
+ code: Schema.Literals([
77
+ "incomplete_graph",
78
+ "duplicate_node_id",
79
+ "unresolved_action",
80
+ "implementation_version_mismatch",
81
+ "missing_implementation_version",
82
+ "unresolved_reference",
83
+ "unsupported_call",
84
+ "missing_operation",
85
+ "node_record_too_large",
86
+ "join_mismatch"
87
+ ]),
88
+ flow: Schema.String,
89
+ node: Schema.String,
90
+ message: Schema.String
91
+ }
92
+ ) {
93
+ }
94
+ const ownDataProperty = (value, key) => {
95
+ if (Object(value) !== value) return void 0;
96
+ try {
97
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
98
+ return descriptor !== void 0 && "value" in descriptor ? descriptor.value : void 0;
99
+ } catch {
100
+ return void 0;
101
+ }
102
+ };
103
+ const childExecutionId = (parentExecutionId, nodeId, calleeTag, payload) => Effect.gen(function* () {
104
+ const payloadDigest = yield* Schema.decodeUnknownEffect(import_keys.DerivedKey)(payload).pipe(Effect.orDie);
105
+ const tupleDigest = yield* Schema.decodeUnknownEffect(import_keys.DerivedKey)([
106
+ parentExecutionId,
107
+ nodeId,
108
+ calleeTag,
109
+ payloadDigest
110
+ ]).pipe(Effect.orDie);
111
+ return (0, import_keys.digest)(tupleDigest);
112
+ });
113
+ const maximumPageBytes = 12e3;
114
+ const maximumDispatchDigests = 16;
115
+ const actionTag = (ast) => ast._tag === "ActionCall" ? ast.action : ast._tag === "FlowCall" ? ast.flow : void 0;
116
+ const summarize = (node) => {
117
+ const action = actionTag(node.ast);
118
+ return {
119
+ id: node.id,
120
+ kind: node.kind,
121
+ dependsOn: KeyMaterial.dependencies(node.draft.material),
122
+ tier: node.draft.material.kind,
123
+ effects: node.draft.effects,
124
+ ...action === void 0 ? {} : { action },
125
+ ...node.declaredAt === void 0 ? {} : { declaredAt: node.declaredAt }
126
+ };
127
+ };
128
+ const planPages = (flow, graph, measure) => Effect.gen(function* () {
129
+ const incoming = /* @__PURE__ */ new Map();
130
+ let edgeCount = 0;
131
+ for (const edge of Graph.edges(graph)) {
132
+ edgeCount += 1;
133
+ const summary = { from: edge.from, to: edge.to, reason: edge.reason };
134
+ const existing = incoming.get(edge.to);
135
+ if (existing === void 0) incoming.set(edge.to, [summary]);
136
+ else existing.push(summary);
137
+ }
138
+ const graphNodes = Graph.nodes(graph);
139
+ const pages = [];
140
+ let current = { nodes: [], edges: [] };
141
+ const record = (page, index, count) => ({
142
+ ...index === 0 ? { _tag: "PlanRecorded", nodeCount: graphNodes.length } : { _tag: "SubgraphAppended" },
143
+ sourceId: `plan/0/${index}`,
144
+ flow,
145
+ generation: 0,
146
+ page: index,
147
+ pages: count,
148
+ ...page
149
+ });
150
+ const reserved = graphNodes.reduce(
151
+ (total, node) => total + KeyMaterial.dependencies(node.draft.material).length,
152
+ graphNodes.length + edgeCount
153
+ );
154
+ const fits = (page) => Effect.map(measure(record(page, pages.length, reserved)), (bytes) => bytes <= maximumPageBytes);
155
+ const flush = () => {
156
+ pages.push(current);
157
+ current = { nodes: [], edges: [] };
158
+ };
159
+ const admits = (rest, grow) => Effect.gen(function* () {
160
+ if (yield* fits(grow(rest.length))) return rest.length;
161
+ let low = 0;
162
+ let high = rest.length - 1;
163
+ while (low < high) {
164
+ const mid = low + Math.ceil((high - low) / 2);
165
+ if (yield* fits(grow(mid))) low = mid;
166
+ else high = mid - 1;
167
+ }
168
+ return low;
169
+ });
170
+ const spread = (items, onto, resume, refusal) => Effect.gen(function* () {
171
+ let rest = items;
172
+ let started = false;
173
+ while (rest.length > 0) {
174
+ const take = yield* admits(rest, (count) => onto(current, rest.slice(0, count)));
175
+ if (take > 0) {
176
+ current = onto(current, rest.slice(0, take));
177
+ rest = rest.slice(take);
178
+ started = false;
179
+ continue;
180
+ }
181
+ if (started) return yield* refusal();
182
+ flush();
183
+ current = resume(current);
184
+ started = true;
185
+ }
186
+ });
187
+ for (const node of graphNodes) {
188
+ const summary = summarize(node);
189
+ const arriving = incoming.get(node.id) ?? [];
190
+ const bare = { ...summary, dependsOn: [] };
191
+ const seat = (page) => ({ nodes: [...page.nodes, bare], edges: page.edges });
192
+ const tooLarge = () => new InterpreterError({
193
+ code: "node_record_too_large",
194
+ flow,
195
+ node: node.id,
196
+ message: `Node "${node.id}" and its encoded envelope exceed ${maximumPageBytes} bytes with no dependencies on it`
197
+ });
198
+ if (!(yield* fits(seat(current)))) {
199
+ if (current.nodes.length > 0 || current.edges.length > 0) flush();
200
+ if (!(yield* fits(seat(current)))) return yield* tooLarge();
201
+ }
202
+ current = seat(current);
203
+ yield* spread(
204
+ summary.dependsOn,
205
+ (page, taken) => {
206
+ const seated = page.nodes[page.nodes.length - 1];
207
+ return {
208
+ nodes: [...page.nodes.slice(0, -1), { ...seated, dependsOn: [...seated.dependsOn, ...taken] }],
209
+ edges: page.edges
210
+ };
211
+ },
212
+ seat,
213
+ tooLarge
214
+ );
215
+ yield* spread(
216
+ arriving,
217
+ (page, taken) => ({ nodes: page.nodes, edges: [...page.edges, ...taken] }),
218
+ (page) => page,
219
+ tooLarge
220
+ );
221
+ }
222
+ pages.push(current);
223
+ return pages.map((page, index) => record(page, index, pages.length));
224
+ });
225
+ const interpret = (flowOrNode, payload, options = {}) => interpretWithPolicy(flowOrNode, payload, options, false);
226
+ const interpretWithPolicy = (flowOrNode, payload, options, requireReusableVersions, registerReachable) => Effect.gen(function* () {
227
+ const table = yield* import_Implementations.Implementations;
228
+ const name = "_tag" in flowOrNode ? flowOrNode._tag : "node";
229
+ const refuse = (code, node, message) => Effect.fail(new InterpreterError({ code, flow: name, node, message }));
230
+ const graph = yield* Effect.try({
231
+ try: () => Graph.build(flowOrNode, payload, options),
232
+ catch: (cause) => {
233
+ const refusalNode = ownDataProperty(cause, "node");
234
+ const refusalCode = ownDataProperty(cause, "code");
235
+ const refusalMessage = ownDataProperty(cause, "message");
236
+ const node = typeof refusalNode === "string" ? refusalNode : "";
237
+ const reported2 = typeof refusalMessage === "string" ? refusalMessage : "";
238
+ return new InterpreterError({
239
+ code: refusalCode === "duplicate_node" ? "duplicate_node_id" : "incomplete_graph",
240
+ flow: name,
241
+ node,
242
+ message: reported2 === "" ? `building the graph of flow ${name} threw ${typeof cause === "string" ? cause : BoundedJson.render(cause, 512)}` : reported2
243
+ });
244
+ }
245
+ });
246
+ const graphNodes = Graph.nodes(graph);
247
+ const byId = new Map(graphNodes.map((node) => [node.id, node]));
248
+ const fatal = graph.diagnostics.find(import_GraphBuildError.isFatalDiagnostic);
249
+ if (fatal !== void 0) {
250
+ return yield* refuse(
251
+ "incomplete_graph",
252
+ fatal.node,
253
+ `Graph of "${name}" is missing topology and cannot be driven: ${fatal.message}`
254
+ );
255
+ }
256
+ const runtime = yield* import_FlowRuntime.FlowRuntime;
257
+ const recordNode = runtime.recordNode;
258
+ const record = recordNode === void 0 ? (_) => Effect.void : (make) => recordNode(make());
259
+ if (recordNode !== void 0) {
260
+ const measure = runtime.nodeRecordBytes ?? ((record2) => Effect.succeed(new TextEncoder().encode(JSON.stringify(record2)).byteLength));
261
+ const pages = yield* planPages(name, graph, measure);
262
+ yield* Effect.forEach(pages, (page) => recordNode(page), { discard: true });
263
+ }
264
+ const implementations = /* @__PURE__ */ new Map();
265
+ const handoffDeclarations = /* @__PURE__ */ new Map();
266
+ const childDeclarations = /* @__PURE__ */ new Map();
267
+ for (const node of graphNodes) {
268
+ const ast = node.ast;
269
+ if (ast._tag === "Map" && Node.mapper(ast) === void 0) {
270
+ return yield* refuse("missing_operation", node.id, `Map at "${node.id}" lost its mapper.`);
271
+ }
272
+ if (ast._tag === "Branch" && Node.predicate(ast) === void 0) {
273
+ return yield* refuse("missing_operation", node.id, `Branch at "${node.id}" lost its predicate.`);
274
+ }
275
+ if (ast._tag === "Catch" && ast.filter !== void 0 && Node.catchFilter(ast) === void 0) {
276
+ return yield* refuse("missing_operation", node.id, `Catch at "${node.id}" lost its schema filter.`);
277
+ }
278
+ for (const dependency of KeyMaterial.dependencies(node.draft.material)) {
279
+ if (byId.has(dependency)) continue;
280
+ return yield* refuse(
281
+ "unresolved_reference",
282
+ node.id,
283
+ `Node "${node.id}" reads "${dependency}", which this graph does not hold.`
284
+ );
285
+ }
286
+ if (node.ast._tag === "FlowCall" && node.ast.mode === "handoff") {
287
+ const declaration2 = Node.declaration(node.ast);
288
+ if (!Predicate.hasProperty(declaration2, import_TypeId.TypeId)) {
289
+ return yield* refuse(
290
+ "unsupported_call",
291
+ node.id,
292
+ `Handoff to flow "${node.ast.flow}" at "${node.id}" lost its declaration. Build and interpret the authored node in the same process so its payload can be encoded.`
293
+ );
294
+ }
295
+ handoffDeclarations.set(node.id, declaration2);
296
+ if (registerReachable !== void 0) yield* registerReachable(declaration2);
297
+ continue;
298
+ }
299
+ if (node.ast._tag === "FlowCall" && node.ast.mode === "boundary") {
300
+ const declaration2 = Node.declaration(node.ast);
301
+ if (!Predicate.hasProperty(declaration2, import_TypeId.TypeId)) {
302
+ return yield* refuse(
303
+ "unsupported_call",
304
+ node.id,
305
+ `Child boundary to flow "${node.ast.flow}" at "${node.id}" lost its declaration. Build and interpret the authored node in the same process so the child can be executed.`
306
+ );
307
+ }
308
+ childDeclarations.set(node.id, declaration2);
309
+ if (registerReachable !== void 0) yield* registerReachable(declaration2);
310
+ continue;
311
+ }
312
+ if (node.ast._tag !== "ActionCall") continue;
313
+ const implementation = yield* table.get(node.ast.action);
314
+ if (Option.isNone(implementation)) {
315
+ return yield* refuse(
316
+ "unresolved_action",
317
+ node.id,
318
+ `Action "${node.ast.action}" has no implementation. Provide ONE Action.layerImplementations under both ${node.ast.action}.toLayer(execute) and this interpreter layer: an implementation files itself with the table that is in scope while IT is built, so a table merged beside it, or a second one built above it, is not the table this driver reads.`
319
+ );
320
+ }
321
+ const declaration = Node.declaration(node.ast);
322
+ const declaredVersion = ownDataProperty(declaration, "implementationVersion");
323
+ if (requireReusableVersions) {
324
+ const tier = ownDataProperty(declaration, "tier");
325
+ if (tier === void 0) {
326
+ return yield* refuse(
327
+ "incomplete_graph",
328
+ node.id,
329
+ `Action "${node.ast.action}" lost its declaration, so its implementation identity cannot be checked. Build the canonical composition from the authored action nodes.`
330
+ );
331
+ }
332
+ if (tier === "sealed" && ownDataProperty(declaration, "idempotencyKey") !== void 0 && declaredVersion === void 0) {
333
+ return yield* refuse(
334
+ "missing_implementation_version",
335
+ node.id,
336
+ `Sealed action "${node.ast.action}" declares an idempotency key and can reuse recorded content. Declare implementationVersion on Action.make and attest the same version in toLayer.`
337
+ );
338
+ }
339
+ }
340
+ if (declaredVersion !== implementation.value.implementationVersion) {
341
+ return yield* refuse(
342
+ "implementation_version_mismatch",
343
+ node.id,
344
+ `Action "${node.ast.action}" does not match its registered implementationVersion. Register the declared version and start a newly planned execution when its semantics change.`
345
+ );
346
+ }
347
+ implementations.set(node.ast.action, implementation.value);
348
+ }
349
+ const remaining = /* @__PURE__ */ new Map();
350
+ const dependents = /* @__PURE__ */ new Map();
351
+ const ready = [];
352
+ for (const node of graphNodes) {
353
+ const dependencies = KeyMaterial.dependencies(node.draft.material);
354
+ remaining.set(node.id, dependencies.length);
355
+ if (dependencies.length === 0) ready.push(node.id);
356
+ for (const dependency of dependencies) {
357
+ const consumers = dependents.get(dependency);
358
+ if (consumers === void 0) dependents.set(dependency, [node.id]);
359
+ else consumers.push(node.id);
360
+ }
361
+ }
362
+ for (let index = 0; index < ready.length; index++) {
363
+ for (const consumer of dependents.get(ready[index]) ?? []) {
364
+ const count = remaining.get(consumer) - 1;
365
+ remaining.set(consumer, count);
366
+ if (count === 0) ready.push(consumer);
367
+ }
368
+ }
369
+ if (ready.length !== graphNodes.length) {
370
+ const blocked = graphNodes.find((node) => remaining.get(node.id) > 0);
371
+ return yield* refuse(
372
+ "incomplete_graph",
373
+ blocked.id,
374
+ `Graph of "${name}" contains a dependency cycle blocking "${blocked.id}". Use an acyclic reference, a child boundary, or a trampoline handoff.`
375
+ );
376
+ }
377
+ const sources = /* @__PURE__ */ new Map();
378
+ for (const edge of Graph.edges(graph)) {
379
+ if (edge.reason !== "value") continue;
380
+ sources.set(edge.to, [...sources.get(edge.to) ?? [], edge.from]);
381
+ }
382
+ const settled = /* @__PURE__ */ new Map();
383
+ const failed = /* @__PURE__ */ new Map();
384
+ const project = StepKey.project;
385
+ const resolve = (value2) => {
386
+ const reference = Planned.reference(value2);
387
+ if (reference !== void 0) {
388
+ return project(
389
+ settled.has(reference.node) ? settled.get(reference.node) : failed.get(reference.node),
390
+ reference.path
391
+ );
392
+ }
393
+ if (Array.isArray(value2)) return value2.map((item) => resolve(item));
394
+ if (!(0, import_Record.isRecord)(value2)) return value2;
395
+ const output = /* @__PURE__ */ Object.create(null);
396
+ for (const key of Object.keys(value2)) {
397
+ Object.defineProperty(output, key, {
398
+ configurable: true,
399
+ enumerable: true,
400
+ value: resolve(value2[key]),
401
+ writable: true
402
+ });
403
+ }
404
+ const outcome = Object.getOwnPropertyDescriptor(value2, import_OutcomeMarker.OutcomeValueTypeId);
405
+ if (outcome !== void 0 && "value" in outcome) {
406
+ Object.defineProperty(output, import_OutcomeMarker.OutcomeValueTypeId, {
407
+ configurable: false,
408
+ enumerable: false,
409
+ value: outcome.value,
410
+ writable: false
411
+ });
412
+ }
413
+ return output;
414
+ };
415
+ const inFlight = /* @__PURE__ */ new Map();
416
+ const nodes = yield* Scope.make();
417
+ const executions = /* @__PURE__ */ new Map();
418
+ const childExecutions = /* @__PURE__ */ new Map();
419
+ const reported = /* @__PURE__ */ new Set();
420
+ const settleNode = (id) => Effect.suspend(() => {
421
+ if (settled.has(id)) return Effect.succeed(settled.get(id));
422
+ const waiting = inFlight.get(id);
423
+ if (waiting !== void 0) return Deferred.await(waiting);
424
+ const deferred = Deferred.makeUnsafe();
425
+ inFlight.set(id, deferred);
426
+ const node = byId.get(id);
427
+ const action = actionTag(node.ast);
428
+ const dispatches = { executed: 0, replayed: 0, attempts: 1, digests: /* @__PURE__ */ new Set() };
429
+ const settleRecord = (outcome, settlement) => () => ({
430
+ _tag: "NodeSettled",
431
+ sourceId: `node/${id}/1/settled`,
432
+ nodeId: id,
433
+ outcome,
434
+ attempts: dispatches.attempts,
435
+ stepKeyDigests: [...dispatches.digests],
436
+ value: settlement.value,
437
+ ...action === void 0 ? {} : { action }
438
+ });
439
+ const execution = record(() => ({
440
+ _tag: "NodeScheduled",
441
+ sourceId: `node/${id}/1`,
442
+ nodeId: id,
443
+ kind: node.kind,
444
+ attempt: 1,
445
+ ...action === void 0 ? {} : { action }
446
+ })).pipe(
447
+ Effect.andThen(
448
+ compute(node).pipe(
449
+ Effect.provideService(
450
+ import_StepIdentity.DispatchReport,
451
+ import_StepIdentity.DispatchReport.of({
452
+ dispatched: (dispatch) => Effect.sync(() => {
453
+ if (dispatch.outcome === "executed") dispatches.executed = dispatches.executed + 1;
454
+ else dispatches.replayed = dispatches.replayed + 1;
455
+ if (dispatch.stepKeyDigest !== void 0 && dispatches.digests.size < maximumDispatchDigests) {
456
+ dispatches.digests.add(dispatch.stepKeyDigest);
457
+ }
458
+ if (dispatch.attempt !== void 0 && dispatch.attempt > dispatches.attempts) {
459
+ dispatches.attempts = dispatch.attempt;
460
+ }
461
+ })
462
+ })
463
+ )
464
+ )
465
+ ),
466
+ Effect.tap(
467
+ (value2) => Effect.sync(() => {
468
+ settled.set(id, value2);
469
+ reported.add(id);
470
+ }).pipe(
471
+ Effect.andThen(record(
472
+ settleRecord(dispatches.executed === 0 && dispatches.replayed > 0 ? "clean" : "built", { value: value2 })
473
+ ))
474
+ )
475
+ ),
476
+ Effect.tapError(
477
+ (error) => Effect.sync(() => {
478
+ failed.set(id, error);
479
+ reported.add(id);
480
+ }).pipe(Effect.andThen(record(settleRecord("failed", { value: error }))))
481
+ ),
482
+ Effect.onExit((exit) => {
483
+ if (Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause)) inFlight.delete(id);
484
+ executions.delete(id);
485
+ return Deferred.done(deferred, exit);
486
+ })
487
+ );
488
+ return Effect.forkIn(
489
+ Effect.withFiber((fiber) => {
490
+ executions.set(id, fiber);
491
+ return execution;
492
+ }),
493
+ nodes,
494
+ { startImmediately: true }
495
+ ).pipe(Effect.andThen(Deferred.await(deferred)));
496
+ });
497
+ const readers = /* @__PURE__ */ new Map();
498
+ for (const node of graphNodes) {
499
+ for (const dependency of KeyMaterial.dependencies(node.draft.material)) {
500
+ readers.set(dependency, [...readers.get(dependency) ?? [], node.id]);
501
+ }
502
+ }
503
+ const losingWork = (joinId, roots) => {
504
+ const subtree = /* @__PURE__ */ new Set();
505
+ const pending = [...roots];
506
+ while (pending.length > 0) {
507
+ const id = pending.pop();
508
+ subtree.add(id);
509
+ pending.push(...sources.get(id) ?? []);
510
+ }
511
+ const kept = /* @__PURE__ */ new Set();
512
+ const shared = [...subtree].filter(
513
+ (id) => readers.get(id).some((reader) => reader !== joinId && !subtree.has(reader))
514
+ );
515
+ while (shared.length > 0) {
516
+ const id = shared.pop();
517
+ if (kept.has(id) || !subtree.has(id)) continue;
518
+ kept.add(id);
519
+ shared.push(...sources.get(id) ?? [], ...KeyMaterial.dependencies(byId.get(id).draft.material));
520
+ }
521
+ const fibers = [];
522
+ const childRuns = [];
523
+ for (const id of subtree) {
524
+ if (kept.has(id)) continue;
525
+ const fiber = executions.get(id);
526
+ if (fiber === void 0) continue;
527
+ fibers.push(fiber);
528
+ const executionId = childExecutions.get(id);
529
+ if (executionId !== void 0) childRuns.push({ node: id, executionId });
530
+ }
531
+ return { fibers, childRuns };
532
+ };
533
+ const cancelChildren = (childRuns) => Effect.forEach(
534
+ childRuns,
535
+ ({ executionId, node }) => Effect.orDie(runtime.interrupt(childDeclarations.get(node), executionId)),
536
+ { discard: true }
537
+ );
538
+ const join = (node, ast, children) => Effect.gen(function* () {
539
+ const members = Object.keys(ast.nodes);
540
+ const journal = DurableDeferred.make(`join/${node.id}`, { success: JoinDecision });
541
+ const instance = yield* import_FlowInstance.FlowInstance;
542
+ const waiting = instance.waiting;
543
+ const recorded = yield* runtime.deferredResult(journal);
544
+ instance.waiting = waiting;
545
+ if (Option.isSome(recorded) && Exit.isSuccess(recorded.value)) {
546
+ const record2 = recorded.value.value;
547
+ const decided = "members" in record2 ? record2.members : record2;
548
+ const opened = "members" in record2 ? record2.children : [];
549
+ const indices = decided.map((member) => members.indexOf(member));
550
+ if (indices.some((index) => index < 0) || new Set(indices).size !== indices.length) {
551
+ return yield* refuse(
552
+ "join_mismatch",
553
+ node.id,
554
+ `Join at "${node.id}" journaled members ${JSON.stringify(decided)}, which it no longer holds.`
555
+ );
556
+ }
557
+ const lost = opened.find((child) => !childDeclarations.has(child.node));
558
+ if (lost !== void 0) {
559
+ return yield* refuse(
560
+ "join_mismatch",
561
+ node.id,
562
+ `Join at "${node.id}" journaled a losing child at "${lost.node}", which the plan no longer holds.`
563
+ );
564
+ }
565
+ yield* cancelChildren(opened);
566
+ const exits = yield* Effect.forEach(indices, (index) => Effect.exit(settleNode(children[index])), {
567
+ concurrency: "unbounded"
568
+ });
569
+ const outcomes2 = [];
570
+ for (let position = 0; position < exits.length; position++) {
571
+ const exit = exits[position];
572
+ if (classify(exit) !== "decisive") return yield* exit;
573
+ outcomes2.push({ member: members[indices[position]], exit });
574
+ const verdict2 = decide(ast, members.length, outcomes2);
575
+ if (verdict2 !== void 0 && position === exits.length - 1) return yield* verdict2;
576
+ if (verdict2 !== void 0) break;
577
+ }
578
+ return yield* refuse(
579
+ "join_mismatch",
580
+ node.id,
581
+ `Join at "${node.id}" replayed members ${JSON.stringify(decided)} without reaching its verdict.`
582
+ );
583
+ }
584
+ const outcomes = [];
585
+ let verdict;
586
+ let journaled = false;
587
+ const over = Deferred.makeUnsafe();
588
+ const watch = (index) => Effect.exit(settleNode(children[index])).pipe(
589
+ Effect.flatMap(
590
+ (exit) => Effect.sync(() => {
591
+ if (verdict !== void 0) return;
592
+ const kind = classify(exit);
593
+ if (kind === "pending") return;
594
+ if (kind === "fatal") {
595
+ verdict = exit;
596
+ } else {
597
+ outcomes.push({ member: members[index], exit });
598
+ verdict = decide(ast, members.length, outcomes);
599
+ journaled = verdict !== void 0;
600
+ }
601
+ if (verdict !== void 0) Deferred.doneUnsafe(over, Exit.void);
602
+ })
603
+ )
604
+ );
605
+ yield* Effect.raceFirst(
606
+ Effect.forEach(children, (_, index) => watch(index), { concurrency: "unbounded", discard: true }),
607
+ Deferred.await(over)
608
+ );
609
+ if (verdict === void 0) return yield* Effect.interrupt;
610
+ const decidedMembers = outcomes.map((outcome) => outcome.member);
611
+ yield* Effect.uninterruptible(
612
+ Effect.gen(function* () {
613
+ const { childRuns, fibers } = losingWork(
614
+ node.id,
615
+ children.filter((_, index) => !decidedMembers.includes(members[index]))
616
+ );
617
+ if (journaled) {
618
+ yield* runtime.deferredDone(journal, {
619
+ flowName: instance.flow._tag,
620
+ executionId: instance.executionId,
621
+ deferredName: journal.name,
622
+ exit: Exit.succeed({ members: decidedMembers, children: childRuns })
623
+ });
624
+ }
625
+ yield* Effect.withFiber(
626
+ (current) => Effect.sync(() => {
627
+ for (const fiber of fibers) fiber.interruptUnsafe(current.id);
628
+ })
629
+ );
630
+ yield* cancelChildren(childRuns);
631
+ })
632
+ );
633
+ return yield* verdict;
634
+ });
635
+ const compute = Effect.fnUntraced(
636
+ function* (node) {
637
+ const children = sources.get(node.id) ?? [];
638
+ const ast = node.ast;
639
+ if (ast._tag === "AndThen" && ast.next !== void 0) {
640
+ yield* settleNode(children[0]);
641
+ return yield* settleNode(children[1]);
642
+ }
643
+ if (ast._tag === "Branch") {
644
+ const decide2 = Node.predicate(ast);
645
+ const subject = yield* settleNode(children[0]);
646
+ return yield* settleNode(decide2(subject) ? children[1] : children[2]);
647
+ }
648
+ if (ast._tag === "Catch") {
649
+ const protectedId = children[0];
650
+ return yield* Effect.matchEffect(settleNode(protectedId), {
651
+ onFailure: (error) => {
652
+ if (Schema.is(InterpreterError)(error)) return Effect.fail(error);
653
+ const filter = Node.catchFilter(ast);
654
+ if (filter !== void 0 && !Schema.is(filter)(error)) {
655
+ return Effect.fail(error);
656
+ }
657
+ failed.set(protectedId, error);
658
+ return settleNode(children[1]);
659
+ },
660
+ onSuccess: Effect.succeed
661
+ });
662
+ }
663
+ if (ast._tag === "Race") {
664
+ const members = new Set(children);
665
+ yield* Effect.forEach(
666
+ KeyMaterial.dependencies(node.draft.material).filter(
667
+ (dependency) => !members.has(dependency) && !failed.has(dependency)
668
+ ),
669
+ settleNode,
670
+ { concurrency: "unbounded", discard: true }
671
+ );
672
+ return yield* join(node, ast, children);
673
+ }
674
+ yield* Effect.forEach(
675
+ KeyMaterial.dependencies(node.draft.material).filter((dependency) => !failed.has(dependency)),
676
+ settleNode,
677
+ { concurrency: "unbounded", discard: true }
678
+ );
679
+ switch (ast._tag) {
680
+ case "ActionCall":
681
+ return yield* implementations.get(ast.action).action(resolve(node.payload)).pipe(
682
+ Effect.provideService(import_StepIdentity.DispatchSite, node.id),
683
+ (0, import_CapabilityCeiling.attenuateCapabilities)(node.capabilityCeilings)
684
+ );
685
+ case "Succeed":
686
+ return resolve(node.payload);
687
+ case "Fail":
688
+ return yield* Effect.fail(resolve(node.payload));
689
+ case "Map": {
690
+ const transform = Node.mapper(ast);
691
+ return transform(yield* settleNode(children[0]));
692
+ }
693
+ case "All": {
694
+ const members = Object.keys(ast.nodes);
695
+ const values = yield* Effect.forEach(members, (_, index) => settleNode(children[index]), {
696
+ concurrency: "unbounded"
697
+ });
698
+ const joined = /* @__PURE__ */ Object.create(null);
699
+ for (let index = 0; index < members.length; index++) {
700
+ Object.defineProperty(joined, members[index], {
701
+ configurable: true,
702
+ enumerable: true,
703
+ value: values[index],
704
+ writable: true
705
+ });
706
+ }
707
+ return joined;
708
+ }
709
+ case "AndThen":
710
+ return yield* settleNode(children[1]);
711
+ case "FlowCall": {
712
+ if (ast.mode === "handoff") {
713
+ const declaration = handoffDeclarations.get(node.id);
714
+ const payload2 = yield* Effect.flatMap(
715
+ Effect.orDie(declaration.payloadSchema.makeEffect(resolve(node.payload))),
716
+ (decoded) => Effect.orDie(
717
+ Schema.encodeEffect(Schema.toCodecJson(declaration.payloadSchema))(decoded)
718
+ )
719
+ );
720
+ const ceiling = (yield* (0, import_CapabilityCeiling.attenuateCapabilities)(node.capabilityCeilings)(CapabilitySet.current)).groups;
721
+ const outcome = {
722
+ _tag: "To",
723
+ flow: ast.flow,
724
+ payload: payload2,
725
+ ...ceiling.length === 0 ? {} : { capabilityCeilings: ceiling }
726
+ };
727
+ Object.defineProperty(outcome, import_OutcomeMarker.OutcomeValueTypeId, {
728
+ configurable: false,
729
+ enumerable: false,
730
+ value: "To",
731
+ writable: false
732
+ });
733
+ return outcome;
734
+ }
735
+ if (ast.mode === "boundary") {
736
+ const declaration = childDeclarations.get(node.id);
737
+ const instance = yield* import_FlowInstance.FlowInstance;
738
+ const childPayload = resolve(node.payload);
739
+ const executionId = yield* childExecutionId(
740
+ instance.executionId,
741
+ node.id,
742
+ declaration._tag,
743
+ childPayload
744
+ );
745
+ childExecutions.set(node.id, executionId);
746
+ return yield* declaration.execute(childPayload, {
747
+ executionId
748
+ }).pipe((0, import_CapabilityCeiling.attenuateCapabilities)(node.capabilityCeilings));
749
+ }
750
+ const spliced = children[0];
751
+ if (spliced === void 0) {
752
+ return yield* refuse(
753
+ "unsupported_call",
754
+ node.id,
755
+ `Flow "${ast.flow}" is called at "${node.id}" as a leaf, which this interpreter does not drive. An inline .call() is spliced into the graph with the callee's body and driven with it, and only a call that lost its declaration has no body to splice. Build and interpret the authored node in the same process, or call it as ${ast.flow}.child(payload) to run it as its own execution.`
756
+ );
757
+ }
758
+ return yield* settleNode(spliced);
759
+ }
760
+ }
761
+ }
762
+ );
763
+ const recordSkipped = (exit) => Exit.isFailure(exit) && Cause.hasInterruptsOnly(exit.cause) ? Effect.void : Effect.forEach(
764
+ graphNodes.filter((node) => !reported.has(node.id)),
765
+ (node) => {
766
+ const action = actionTag(node.ast);
767
+ return record(() => ({
768
+ _tag: "NodeSettled",
769
+ sourceId: `node/${node.id}/1/settled`,
770
+ nodeId: node.id,
771
+ outcome: "skipped",
772
+ attempts: 0,
773
+ // A node the walk never reached dispatched nothing, so it claims
774
+ // no step key and there is no value it settled with.
775
+ stepKeyDigests: [],
776
+ ...action === void 0 ? {} : { action }
777
+ }));
778
+ },
779
+ { discard: true }
780
+ );
781
+ const value = yield* settleNode(options.root ?? "root").pipe(
782
+ Effect.onExit((exit) => Scope.close(nodes, exit)),
783
+ Effect.onExit(recordSkipped)
784
+ );
785
+ return {
786
+ value,
787
+ settled,
788
+ failed,
789
+ skipped: Graph.nodes(graph).filter((node) => !settled.has(node.id) && !failed.has(node.id)).map((node) => node.id)
790
+ };
791
+ });
792
+ const JoinChild = Schema.Struct({ node: Schema.String, executionId: Schema.String });
793
+ const JoinDecision = Schema.Union([
794
+ Schema.Struct({ members: Schema.Array(Schema.String), children: Schema.Array(JoinChild) }),
795
+ Schema.Array(Schema.String)
796
+ ]);
797
+ const classify = (exit) => {
798
+ if (Exit.isSuccess(exit)) return "decisive";
799
+ if (Cause.hasInterruptsOnly(exit.cause)) return "pending";
800
+ const reasons = exit.cause.reasons;
801
+ const typed = reasons.every((reason) => reason._tag !== "Die") && reasons.some((reason) => reason._tag === "Fail") && !reasons.some((reason) => reason._tag === "Fail" && Schema.is(InterpreterError)(reason.error));
802
+ return typed ? "decisive" : "fatal";
803
+ };
804
+ const decide = (ast, width, outcomes) => {
805
+ if (ast.mode === "race") return outcomes[0]?.exit;
806
+ const successes = outcomes.filter((outcome) => Exit.isSuccess(outcome.exit));
807
+ if (successes.length >= ast.count) {
808
+ if (ast.mode === "any") return successes[0].exit;
809
+ const joined = /* @__PURE__ */ Object.create(null);
810
+ for (const success of successes) {
811
+ Object.defineProperty(joined, success.member, {
812
+ configurable: true,
813
+ enumerable: true,
814
+ value: success.exit.value,
815
+ writable: true
816
+ });
817
+ }
818
+ return Exit.succeed(joined);
819
+ }
820
+ if (outcomes.length - successes.length > width - ast.count) return outcomes[outcomes.length - 1].exit;
821
+ return void 0;
822
+ };
823
+ const settleOutcome = (value) => {
824
+ if (!Outcome.isOutcome(value)) return Effect.succeed(value);
825
+ switch (value._tag) {
826
+ case "Done":
827
+ return Effect.succeed(value.value);
828
+ case "To":
829
+ return Effect.gen(function* () {
830
+ const instance = yield* import_FlowInstance.FlowInstance;
831
+ const current = yield* CapabilitySet.current;
832
+ instance.handoff = new import_Result.Handoff({
833
+ flow: value.flow,
834
+ payload: value.payload,
835
+ capabilityCeilings: [...current.groups, ...value.capabilityCeilings ?? []]
836
+ });
837
+ });
838
+ case "Park":
839
+ return Effect.andThen(
840
+ (0, import_WaitingAnnotation.annotateWaiting)(value.reason),
841
+ Effect.flatMap(import_FlowInstance.FlowInstance, import_Runtime.suspend)
842
+ );
843
+ }
844
+ };
845
+ const layer = (flow, options = {}) => makeLayer(flow, options, false);
846
+ const makeLayer = (flow, options, requireReusableVersions, reachable, ifAbsent = false) => Layer.effectDiscard(Effect.gen(function* () {
847
+ const runtime = yield* import_FlowRuntime.FlowRuntime;
848
+ const registered = reachable ?? /* @__PURE__ */ new Set();
849
+ if (registered.has(flow)) return;
850
+ if (!ifAbsent) registered.add(flow);
851
+ const scope = yield* Effect.scope;
852
+ const context = yield* Effect.context();
853
+ const implementations = Context.get(context, import_Implementations.Implementations);
854
+ const registerReachable = (declaration) => Layer.buildWithScope(
855
+ makeLayer(
856
+ declaration,
857
+ options,
858
+ requireReusableVersions,
859
+ registered,
860
+ true
861
+ ),
862
+ scope
863
+ ).pipe(
864
+ Effect.provide(context),
865
+ Effect.asVoid
866
+ );
867
+ const middleware = Context.get(flow.annotations, import_ExecutionMiddleware.ExecutionMiddleware);
868
+ yield* runtime.register(
869
+ flow,
870
+ ((payload) => {
871
+ const body = Effect.flatMap(
872
+ interpretWithPolicy(flow, payload, options, requireReusableVersions, registerReachable),
873
+ (interpretation) => settleOutcome(interpretation.value)
874
+ );
875
+ return (middleware === void 0 ? body : middleware.wrap(payload, body)).pipe(
876
+ Effect.provideService(import_Implementations.Implementations, implementations)
877
+ );
878
+ }),
879
+ { ifAbsent }
880
+ );
881
+ }));
882
+ const layerWithImplementations = (flow, implementations, options = {}) => Layer.merge(
883
+ implementations,
884
+ makeLayer(flow, { ...options, callbackIdentity: options.callbackIdentity ?? "stable" }, true)
885
+ ).pipe(
886
+ Layer.provide(Layer.fresh(import_Implementations.layerImplementations))
887
+ );
888
+ //# sourceMappingURL=Interpreter.js.map