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

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 +135 -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 +413 -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 +908 -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 +135 -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 +798 -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 +1289 -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 +285 -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 +1007 -0
  642. package/src/Interpreter.ts +1620 -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,1020 @@
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 Graph_exports = {};
30
+ __export(Graph_exports, {
31
+ build: () => build,
32
+ diagnostics: () => diagnostics,
33
+ drafts: () => drafts,
34
+ edges: () => edges,
35
+ evaluatedFrom: () => evaluatedFrom,
36
+ inspect: () => inspect,
37
+ maximumGraphDepth: () => maximumGraphDepth,
38
+ nodes: () => nodes
39
+ });
40
+ module.exports = __toCommonJS(Graph_exports);
41
+ var Capability = __toESM(require("@smthrs/capability/Capability"), 1);
42
+ var Effects = __toESM(require("@smthrs/plan/Effects"), 1);
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 Context = __toESM(require("effect/Context"), 1);
48
+ var Option = __toESM(require("effect/Option"), 1);
49
+ var Predicate = __toESM(require("effect/Predicate"), 1);
50
+ var import_TypeId = require("./Action/TypeId.js");
51
+ var Annotations = __toESM(require("./Flow/Annotations.js"), 1);
52
+ var import_CapabilityCeiling = require("./Flow/CapabilityCeiling.js");
53
+ var import_TypeId2 = require("./Flow/TypeId.js");
54
+ var DeclarationSite = __toESM(require("./internal/DeclarationSite.js"), 1);
55
+ var import_OutcomeMarker = require("./internal/OutcomeMarker.js");
56
+ const emptyEffects = { reads: [], writes: [], boundaryMode: "expected" };
57
+ const sorted = (values) => [...new Set(values)].sort();
58
+ const flowDeclaration = (value) => Predicate.hasProperty(value, import_TypeId2.TypeId) ? value : void 0;
59
+ const actionDeclaration = (value) => Predicate.hasProperty(value, import_TypeId.TypeId) ? value : void 0;
60
+ const declaredEffects = (annotations) => Option.getOrUndefined(Context.getOption(annotations, Annotations.EffectsDeclaration));
61
+ const declaredPlacement = (annotations) => Option.getOrUndefined(Context.getOption(annotations, Annotations.Placement));
62
+ const declaredEnvelope = (annotations) => Option.getOrUndefined(Context.getOption(annotations, Annotations.EffectEnvelope));
63
+ const refusalMessage = (narrowed, site) => {
64
+ const at = `"${site.flow}" at "${site.id}"`;
65
+ switch (narrowed.code) {
66
+ case "effect_outside_envelope":
67
+ return `Flow ${at} declares ${narrowed.paths.length === 1 ? "a path" : "paths"} its caller's effect envelope does not cover: ${narrowed.paths.join(", ")}. Widen the caller's declared effects to cover them, or narrow this declaration to what the envelope already allows.`;
68
+ case "effect_mode_widening":
69
+ return `Flow ${at} declares an expected effect mode inside a hermetic envelope. A hermetic envelope is the claim that every effect beneath it is declared, so the callee has to declare a hermetic mode too.`;
70
+ case "effect_tier_widening":
71
+ return `Flow ${at} declares an effect tier its caller's envelope does not permit. A tier may only narrow from irreversible to compensable to sealed, so raise the caller's tier or lower this one.`;
72
+ }
73
+ };
74
+ const schemaIdentity = (schema) => {
75
+ const cached = schemaDocuments.get(schema);
76
+ if (cached !== void 0) return cached;
77
+ const document = Node.schemaIdentity(schema, { onExcessProperty: "error" });
78
+ schemaDocuments.set(schema, document);
79
+ return document;
80
+ };
81
+ const schemaDocuments = /* @__PURE__ */ new WeakMap();
82
+ const isPlainObject = (value) => typeof value === "object" && value !== null && (Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null);
83
+ const referenceOf = (value) => {
84
+ const live = Planned.reference(value);
85
+ if (live !== void 0) return live;
86
+ return Node.plannedReference(value);
87
+ };
88
+ const outcomeTagOf = (ast) => {
89
+ const descriptor = Object.getOwnPropertyDescriptor(ast, import_OutcomeMarker.OutcomeNodeTypeId);
90
+ if (descriptor === void 0 || !("value" in descriptor)) return void 0;
91
+ const value = descriptor.value;
92
+ return value === "Done" || value === "To" || value === "Park" ? value : void 0;
93
+ };
94
+ const placeholder = (reference, node) => reference.path.reduce(
95
+ (value, key) => value[key],
96
+ Planned.make(node)
97
+ );
98
+ const maximumGraphDepth = 1e3;
99
+ const maximumPayloadDepth = 1e3;
100
+ const container = (value, at) => {
101
+ if (Array.isArray(value)) return value;
102
+ if (typeof value !== "object" || value === null) return void 0;
103
+ try {
104
+ return isPlainObject(value) ? value : void 0;
105
+ } catch {
106
+ throw new import_GraphBuildError.GraphBuildError({
107
+ code: "invalid_payload",
108
+ node: at,
109
+ path: [],
110
+ message: `Payload at "${at}" does not expose an inert object prototype.`
111
+ });
112
+ }
113
+ };
114
+ const walkPayload = (root, walk) => {
115
+ const resolvedRoot = walk.resolve(root);
116
+ if (resolvedRoot !== void 0) return resolvedRoot.value;
117
+ const rootContainer = container(root, walk.at);
118
+ if (rootContainer === void 0) return root;
119
+ const open = (source) => {
120
+ const descriptors = (() => {
121
+ try {
122
+ return Object.getOwnPropertyDescriptors(source);
123
+ } catch {
124
+ throw new import_GraphBuildError.GraphBuildError({
125
+ code: "invalid_payload",
126
+ node: walk.at,
127
+ path: [],
128
+ message: `Payload at "${walk.at}" does not expose inert own properties.`
129
+ });
130
+ }
131
+ })();
132
+ if (Array.isArray(source)) {
133
+ const members2 = Array.from({ length: source.length }, (_, index) => {
134
+ const descriptor = descriptors[String(index)];
135
+ if (descriptor === void 0) return void 0;
136
+ if (!("value" in descriptor)) {
137
+ throw new import_GraphBuildError.GraphBuildError({
138
+ code: "invalid_payload",
139
+ node: walk.at,
140
+ path: [String(index)],
141
+ message: `Payload at "${walk.at}" contains an accessor at index ${index}. Pass inert data.`
142
+ });
143
+ }
144
+ return descriptor.value;
145
+ });
146
+ return { source, keys: void 0, members: members2, output: [], index: 0 };
147
+ }
148
+ const keys = walk.keysOf(
149
+ Object.keys(descriptors).filter((key) => descriptors[key]?.enumerable === true)
150
+ );
151
+ const members = keys.map((key) => {
152
+ const descriptor = descriptors[key];
153
+ if (!("value" in descriptor)) {
154
+ throw new import_GraphBuildError.GraphBuildError({
155
+ code: "invalid_payload",
156
+ node: walk.at,
157
+ path: [key],
158
+ message: `Payload at "${walk.at}" contains accessor property "${key}". Pass inert data.`
159
+ });
160
+ }
161
+ return descriptor.value;
162
+ });
163
+ return {
164
+ source,
165
+ keys,
166
+ members,
167
+ output: /* @__PURE__ */ Object.create(null),
168
+ index: 0
169
+ };
170
+ };
171
+ const rootFrame = open(rootContainer);
172
+ const frames = [rootFrame];
173
+ const ancestors = /* @__PURE__ */ new Set([rootContainer]);
174
+ while (frames.length > 0) {
175
+ const frame = frames[frames.length - 1];
176
+ if (frame.index >= frame.members.length) {
177
+ frames.pop();
178
+ ancestors.delete(frame.source);
179
+ continue;
180
+ }
181
+ const position = frame.index;
182
+ frame.index = position + 1;
183
+ const key = frame.keys?.[position];
184
+ const member = frame.members[position];
185
+ const place = (produced) => {
186
+ if (key === void 0) {
187
+ const members = frame.output;
188
+ members.push(produced);
189
+ return;
190
+ }
191
+ Object.defineProperty(frame.output, key, {
192
+ configurable: true,
193
+ enumerable: true,
194
+ value: produced,
195
+ writable: true
196
+ });
197
+ };
198
+ const resolved = walk.resolve(member);
199
+ if (resolved !== void 0) {
200
+ place(resolved.value);
201
+ continue;
202
+ }
203
+ const nested = container(member, walk.at);
204
+ if (nested === void 0) {
205
+ place(member);
206
+ continue;
207
+ }
208
+ if (ancestors.has(nested)) {
209
+ throw new import_GraphBuildError.GraphBuildError({
210
+ code: "cyclic_payload",
211
+ node: walk.at,
212
+ path: [],
213
+ message: `Payload at "${walk.at}" contains itself, so no plan can hash or serialize it. Pass acyclic data.`
214
+ });
215
+ }
216
+ if (frames.length >= maximumPayloadDepth) {
217
+ throw new import_GraphBuildError.GraphBuildError({
218
+ code: "payload_too_deep",
219
+ node: walk.at,
220
+ path: [],
221
+ message: `Payload at "${walk.at}" nests more than ${maximumPayloadDepth} levels deep. Flatten the payload: a plan hashes and stores every level of it.`
222
+ });
223
+ }
224
+ const opened = open(nested);
225
+ place(opened.output);
226
+ ancestors.add(nested);
227
+ frames.push(opened);
228
+ }
229
+ return rootFrame.output;
230
+ };
231
+ const hydrate = (value, substitutions, at) => walkPayload(value, {
232
+ at,
233
+ keysOf: (keys) => keys,
234
+ resolve: (member) => {
235
+ const reference = referenceOf(member);
236
+ return reference === void 0 ? void 0 : { value: placeholder(reference, substitutions.get(reference.node) ?? reference.node) };
237
+ }
238
+ });
239
+ const literal = (value, found, at) => walkPayload(value, {
240
+ at,
241
+ keysOf: (keys) => [...keys].sort(),
242
+ resolve: (member) => {
243
+ const reference = Planned.reference(member);
244
+ if (reference === void 0) return void 0;
245
+ found.push(reference);
246
+ return { value: { _tag: "PlannedInput", path: [...reference.path] } };
247
+ }
248
+ });
249
+ const structuralIdentity = (left, right) => {
250
+ const pending = [[left, right]];
251
+ const visited = /* @__PURE__ */ new WeakMap();
252
+ let examined = 0;
253
+ try {
254
+ while (pending.length > 0) {
255
+ const [left2, right2] = pending.pop();
256
+ if (++examined > maxComparisonPairs) return false;
257
+ if (Object.is(left2, right2)) continue;
258
+ if (left2 !== Object(left2)) return false;
259
+ if (right2 !== Object(right2)) return false;
260
+ const leftObject = left2;
261
+ const rightObject = right2;
262
+ const leftIsArray = Array.isArray(leftObject);
263
+ if (leftIsArray !== Array.isArray(rightObject)) return false;
264
+ if (leftIsArray && leftObject.length !== rightObject.length) {
265
+ return false;
266
+ }
267
+ const seen = visited.get(leftObject) ?? /* @__PURE__ */ new WeakSet();
268
+ if (seen.has(rightObject)) continue;
269
+ seen.add(rightObject);
270
+ visited.set(leftObject, seen);
271
+ if (!leftIsArray && !(isPlainObject(leftObject) && isPlainObject(rightObject))) return false;
272
+ const leftKeys = Reflect.ownKeys(leftObject).filter(
273
+ (key) => Object.prototype.propertyIsEnumerable.call(leftObject, key)
274
+ );
275
+ const rightKeys = Reflect.ownKeys(rightObject).filter(
276
+ (key) => Object.prototype.propertyIsEnumerable.call(rightObject, key)
277
+ );
278
+ if (leftKeys.length !== rightKeys.length) return false;
279
+ for (const key of leftKeys) {
280
+ if (!Object.prototype.propertyIsEnumerable.call(rightObject, key)) return false;
281
+ const leftMember = Object.getOwnPropertyDescriptor(leftObject, key);
282
+ const rightMember = Object.getOwnPropertyDescriptor(rightObject, key);
283
+ if (!("value" in leftMember) || !("value" in rightMember)) return false;
284
+ pending.push([leftMember.value, rightMember.value]);
285
+ }
286
+ }
287
+ } catch {
288
+ return false;
289
+ }
290
+ return true;
291
+ };
292
+ const maxComparisonPairs = 1e5;
293
+ const placementConflicts = (enclosing, callee) => enclosing !== void 0 && callee !== void 0 && !structuralIdentity(enclosing, callee);
294
+ const maxPlacementChars = 240;
295
+ const maxPlacementDepth = 4;
296
+ const maxPlacementMembers = 32;
297
+ const renderPlacement = (value) => {
298
+ const render = (value2, depth, seen) => {
299
+ if (typeof value2 === "string") return JSON.stringify(value2);
300
+ if (typeof value2 === "bigint") return `${value2}n`;
301
+ if (Object(value2) !== value2) return String(value2);
302
+ const object = value2;
303
+ if (seen.includes(object)) return "<cycle>";
304
+ if (depth === maxPlacementDepth) return "<elided>";
305
+ const nested = [...seen, object];
306
+ if (Array.isArray(object)) {
307
+ const length = object.length;
308
+ const shown2 = Math.min(length, maxPlacementMembers);
309
+ const members2 = [];
310
+ for (let index = 0; index < shown2; index++) {
311
+ const member = Object.getOwnPropertyDescriptor(object, String(index));
312
+ members2.push(
313
+ member === void 0 ? "<hole>" : "value" in member ? render(member.value, depth + 1, nested) : "<accessor>"
314
+ );
315
+ }
316
+ if (length > shown2) members2.push("<more>");
317
+ return `[${members2.join(",")}]`;
318
+ }
319
+ if (!isPlainObject(object)) return Object.prototype.toString.call(object);
320
+ const keys = Reflect.ownKeys(object).filter((key) => Object.prototype.propertyIsEnumerable.call(object, key)).sort((left, right) => String(left).localeCompare(String(right)));
321
+ const members = keys.slice(0, maxPlacementMembers).map((key) => {
322
+ const member = Object.getOwnPropertyDescriptor(object, key);
323
+ const rendered = "value" in member ? render(member.value, depth + 1, nested) : "<accessor>";
324
+ return `${String(key)}:${rendered}`;
325
+ }).sort();
326
+ const shown = keys.length > maxPlacementMembers ? [...members, "<more>"] : members;
327
+ return `{${shown.join(",")}}`;
328
+ };
329
+ try {
330
+ const rendered = render(value, 0, []);
331
+ return rendered.length <= maxPlacementChars ? rendered : `${rendered.slice(0, maxPlacementChars)} [${rendered.length - maxPlacementChars} characters dropped]`;
332
+ } catch {
333
+ return "<unrenderable>";
334
+ }
335
+ };
336
+ const payloadInputs = (payload, at) => {
337
+ const found = [];
338
+ const inputs = [{ _tag: "Literal", value: literal(payload, found, at) }];
339
+ const seen = /* @__PURE__ */ new Set();
340
+ for (const reference of found) {
341
+ const identity = JSON.stringify([reference.node, ...reference.path]);
342
+ if (seen.has(identity)) continue;
343
+ seen.add(identity);
344
+ inputs.push({ _tag: "Ref", from: reference.node, path: [...reference.path] });
345
+ }
346
+ return inputs;
347
+ };
348
+ const build = (flowOrNode, payload, options = {}) => {
349
+ const observed = [];
350
+ const observedIds = /* @__PURE__ */ new Set();
351
+ const observedEdges = [];
352
+ const observedDiagnostics = [];
353
+ const observeIdentity = (node, field, identity) => {
354
+ if (options.callbackIdentity !== "stable" || identity !== void 0 && identity.algorithm !== "sha256-source-ephemeral/v4") return;
355
+ observedDiagnostics.push(
356
+ new import_GraphBuildError.GraphBuildError({
357
+ code: "unstable_callback",
358
+ node,
359
+ path: [field],
360
+ message: `Callback ${field} at "${node}" has ${identity === void 0 ? "unavailable" : "process-local"} identity and cannot enter a stable graph. Use Node.capture with every semantic capture, including the version of imported implementation behavior.`
361
+ })
362
+ );
363
+ };
364
+ const operations = [];
365
+ const sequence = (steps) => {
366
+ for (let index = steps.length - 1; index >= 0; index--) operations.push(steps[index]);
367
+ };
368
+ const record = (entry) => {
369
+ if (observedIds.has(entry.id)) {
370
+ throw new import_GraphBuildError.GraphBuildError({
371
+ code: "duplicate_node",
372
+ node: entry.id,
373
+ path: [],
374
+ message: `Node id "${entry.id}" is durable dispatch identity, so two nodes may not share one. Two structural addresses in this graph collided, most often because a Node.all member name contains the separator a nested address also produces. Rename one of them.`
375
+ });
376
+ }
377
+ observedIds.add(entry.id);
378
+ const material = {
379
+ version: KeyMaterial.version,
380
+ kind: entry.tier,
381
+ body: entry.capabilityCeilings?.length ? { ...entry.body, capabilityCeilings: entry.capabilityCeilings } : entry.body,
382
+ inputs: entry.inputs,
383
+ layers: sorted(
384
+ options.resolveLayers?.({
385
+ nodeId: entry.id,
386
+ kind: entry.kind,
387
+ capabilities: entry.capabilities,
388
+ effects: entry.effects,
389
+ placement: entry.placement
390
+ }) ?? []
391
+ ),
392
+ capabilities: entry.capabilities,
393
+ ...entry.nondeterministic === void 0 ? {} : { nondeterministic: entry.nondeterministic },
394
+ ...entry.effects === void 0 ? {} : { effects: entry.effects },
395
+ ...entry.placement === void 0 ? {} : { placement: entry.placement }
396
+ };
397
+ observed.push({
398
+ id: entry.id,
399
+ kind: entry.kind,
400
+ dependencies: entry.dependencies,
401
+ capabilities: entry.capabilities,
402
+ capabilityCeilings: entry.capabilityCeilings ?? [],
403
+ placement: entry.placement,
404
+ // Priority reaches the compiled plan through the draft and stays OUT of
405
+ // `material`: it orders ready work without changing what the work
406
+ // produces, so raising it must not re-key a step.
407
+ draft: {
408
+ id: entry.id,
409
+ material,
410
+ effects: entry.effects ?? emptyEffects,
411
+ ...entry.priority === void 0 ? {} : { priority: entry.priority }
412
+ },
413
+ ast: entry.ast,
414
+ payload: entry.payload,
415
+ ...entry.declaredAt === void 0 ? {} : { declaredAt: entry.declaredAt }
416
+ });
417
+ };
418
+ const preparedEnvelopes = /* @__PURE__ */ new Map();
419
+ const admitEnvelope = (enclosing, declared, site) => {
420
+ if (declared === void 0) return enclosing;
421
+ if (enclosing === void 0) return declared;
422
+ let prepared = preparedEnvelopes.get(enclosing);
423
+ if (prepared === void 0) {
424
+ prepared = Effects.prepareEnvelope(enclosing);
425
+ preparedEnvelopes.set(enclosing, prepared);
426
+ }
427
+ const narrowed = Effects.narrowPrepared(prepared, declared);
428
+ if (narrowed.ok) return declared;
429
+ observedDiagnostics.push(
430
+ new import_GraphBuildError.GraphBuildError({
431
+ code: narrowed.code,
432
+ node: site.id,
433
+ path: [...narrowed.paths],
434
+ message: refusalMessage(narrowed, site)
435
+ })
436
+ );
437
+ return enclosing;
438
+ };
439
+ const coveredCapability = (stack, text) => {
440
+ const groups = stack.flatMap((flow) => (0, import_CapabilityCeiling.capabilityCeilings)(flow.annotations));
441
+ if (groups.length === 0) return true;
442
+ const candidate = Capability.parsePattern(text);
443
+ if (Option.isNone(candidate)) return false;
444
+ return groups.every(
445
+ (group) => group.some((text2) => {
446
+ const grant = Capability.parsePattern(text2);
447
+ return Option.isSome(grant) && Capability.subsumes(grant.value, candidate.value);
448
+ })
449
+ );
450
+ };
451
+ const expandFlowCall = (call) => {
452
+ const annotations = call.declaration?.annotations ?? Context.empty();
453
+ const dependencies = call.dependencies;
454
+ const inputs = [...payloadInputs(call.payload, call.id), ...call.inputs];
455
+ const target = call.mode === "inline" ? call.declaration : void 0;
456
+ const ceiling = sorted((0, import_CapabilityCeiling.capabilityCeilings)(annotations)[0] ?? call.capabilities);
457
+ const placement = declaredPlacement(annotations);
458
+ const envelope = declaredEnvelope(annotations);
459
+ const calleeEnvelope = admitEnvelope(call.envelope, envelope, { id: call.id, flow: call.flow });
460
+ const dropped = ceiling.filter((capability) => !coveredCapability(call.stack, capability));
461
+ if (dropped.length > 0) {
462
+ observedDiagnostics.push(
463
+ new import_GraphBuildError.GraphBuildError({
464
+ code: "capability_outside_grant",
465
+ node: call.id,
466
+ path: dropped,
467
+ message: `Flow "${call.flow}" at "${call.id}" requires ${dropped.join(", ")}, which the calling flow does not provably grant. Execution intersects this declaration with every caller ceiling.`
468
+ })
469
+ );
470
+ }
471
+ if (call.mode === "inline" && placementConflicts(call.placement, placement)) {
472
+ throw new import_GraphBuildError.GraphBuildError({
473
+ code: "placement_requires_boundary",
474
+ node: call.id,
475
+ path: [],
476
+ message: `Flow "${call.flow}" is called inline at "${call.id}", but its declared placement ${renderPlacement(placement)} is not structurally identical to the enclosing flow's ${renderPlacement(call.placement)}. An inline .call() runs in the caller's execution, so use ${call.flow}.child(payload) to give it its own.`
477
+ });
478
+ }
479
+ const recordCall = () => {
480
+ const bodyIdentity = call.declaration === void 0 ? void 0 : Node.functionIdentity(call.declaration.body);
481
+ observeIdentity(call.id, "body", bodyIdentity);
482
+ record({
483
+ id: call.id,
484
+ kind: "FlowCall",
485
+ dependencies,
486
+ capabilities: call.capabilities,
487
+ capabilityCeilings: [
488
+ ...call.stack.flatMap((flow) => (0, import_CapabilityCeiling.capabilityCeilings)(flow.annotations)),
489
+ ...(0, import_CapabilityCeiling.capabilityCeilings)(annotations)
490
+ ],
491
+ effects: declaredEffects(annotations),
492
+ placement,
493
+ priority: call.priority,
494
+ // A declared envelope states how reversible the flow beneath it is, so
495
+ // it is the call's tier. A flow that declared none keeps the sealed
496
+ // default every call has always carried, which is what keeps every
497
+ // existing flow's key exactly where it was.
498
+ tier: envelope?.tier ?? "sealed",
499
+ body: {
500
+ _tag: "FlowCall",
501
+ flow: call.flow,
502
+ mode: call.mode,
503
+ declaration: call.declaration === void 0 ? void 0 : {
504
+ payload: schemaIdentity(call.declaration.payloadSchema),
505
+ success: schemaIdentity(call.declaration.successSchema),
506
+ error: schemaIdentity(call.declaration.errorSchema),
507
+ capabilities: ceiling,
508
+ // A spliced body re-keys this call through the `Ref` on the node it
509
+ // produced. A call the graph keeps as a LEAF — an explicit boundary,
510
+ // a handoff — has no such node, and its own digest is the only thing
511
+ // an edited body can move.
512
+ body: bodyIdentity
513
+ }
514
+ },
515
+ inputs,
516
+ ast: call.ast,
517
+ payload: call.payload,
518
+ declaredAt: DeclarationSite.declaredAt(call.declaration)
519
+ });
520
+ };
521
+ if (target === void 0) {
522
+ recordCall();
523
+ return;
524
+ }
525
+ if (call.stack.includes(target)) {
526
+ throw new import_GraphBuildError.GraphBuildError({
527
+ code: "recursion_requires_boundary",
528
+ node: call.id,
529
+ path: [],
530
+ message: `Flow "${call.flow}" cannot call itself inline at "${call.id}". Use ${call.flow}.to(payload) to hand off to the next round, or .child(payload) for an explicit boundary.`
531
+ });
532
+ }
533
+ const built = target.body(call.payload);
534
+ const spliced = `${call.id}.flow`;
535
+ sequence([
536
+ () => expand({
537
+ ast: built.ast,
538
+ id: spliced,
539
+ depth: call.depth + 1,
540
+ capabilities: ceiling.filter((capability) => coveredCapability(call.stack, capability)),
541
+ // Inside the spliced body the callee's own placement is the one to
542
+ // satisfy; a callee that declared none keeps running under the
543
+ // caller's.
544
+ placement: placement ?? call.placement,
545
+ envelope: calleeEnvelope,
546
+ priority: call.priority,
547
+ substitutions: call.substitutions,
548
+ stack: [...call.stack, target],
549
+ prerequisite: void 0,
550
+ barriers: call.barriers
551
+ }),
552
+ () => {
553
+ dependencies.push(spliced);
554
+ observedEdges.push({ from: spliced, to: call.id, reason: "value" });
555
+ inputs.push({ _tag: "Ref", from: spliced, path: [] });
556
+ },
557
+ recordCall
558
+ ]);
559
+ };
560
+ const continuation = (ast, id, subject) => {
561
+ const builder = Node.continuation(ast);
562
+ if (builder === void 0) {
563
+ observedDiagnostics.push(
564
+ new import_GraphBuildError.GraphBuildError({
565
+ code: "invalid_continuation",
566
+ node: id,
567
+ path: [],
568
+ message: `Node.bindPlanned at "${id}" no longer holds its continuation builder, so its continuation is missing from the graph. An AST that crossed a serialization boundary left that side table behind.`
569
+ })
570
+ );
571
+ return void 0;
572
+ }
573
+ const built = builder(Planned.make(subject));
574
+ if (Node.isNode(built)) return built.ast;
575
+ observedDiagnostics.push(
576
+ new import_GraphBuildError.GraphBuildError({
577
+ code: "invalid_continuation",
578
+ node: id,
579
+ path: [],
580
+ message: `Node.bindPlanned at "${id}" did not produce a Node, so its continuation is missing from the graph.`
581
+ })
582
+ );
583
+ return void 0;
584
+ };
585
+ const expand = (request) => {
586
+ if (request.depth > maximumGraphDepth) {
587
+ throw new import_GraphBuildError.GraphBuildError({
588
+ code: "graph_too_deep",
589
+ node: request.id,
590
+ path: [],
591
+ message: `The graph nests more than ${maximumGraphDepth} levels deep. Split the flow with .child() boundaries or trampoline handoffs so one execution plans a bounded graph.`
592
+ });
593
+ }
594
+ const { ast, capabilities, depth, envelope, id, placement, stack, substitutions } = request;
595
+ const priority = ast.priority ?? request.priority;
596
+ const dependencies = [];
597
+ const inputs = [];
598
+ const depend = (from, reason) => {
599
+ dependencies.push(from);
600
+ observedEdges.push({ from, to: id, reason });
601
+ inputs.push(reason === "continuation" ? { _tag: "Pending", from } : { _tag: "Ref", from, path: [] });
602
+ };
603
+ const child = (childAst, childId, options2 = {}) => ({
604
+ ast: childAst,
605
+ id: childId,
606
+ depth: depth + 1,
607
+ capabilities,
608
+ placement,
609
+ envelope,
610
+ priority,
611
+ substitutions: options2.substitutions ?? substitutions,
612
+ stack,
613
+ prerequisite: options2.prerequisite,
614
+ barriers: options2.barriers ?? request.barriers
615
+ });
616
+ if (request.prerequisite !== void 0) depend(request.prerequisite, "continuation");
617
+ for (const barrier of request.barriers) {
618
+ if (barrier !== request.prerequisite) depend(barrier, "continuation");
619
+ }
620
+ switch (ast._tag) {
621
+ case "FlowCall": {
622
+ expandFlowCall({
623
+ id,
624
+ depth,
625
+ ast,
626
+ flow: ast.flow,
627
+ mode: ast.mode,
628
+ declaration: flowDeclaration(Node.declaration(ast)),
629
+ payload: hydrate(ast.payload, substitutions, id),
630
+ capabilities,
631
+ placement,
632
+ envelope,
633
+ priority,
634
+ substitutions,
635
+ stack,
636
+ barriers: request.barriers,
637
+ dependencies,
638
+ inputs
639
+ });
640
+ return;
641
+ }
642
+ case "ActionCall": {
643
+ const declared = actionDeclaration(Node.declaration(ast));
644
+ const annotations = declared?.annotations ?? Context.empty();
645
+ const payload2 = hydrate(ast.payload, substitutions, id);
646
+ admitEnvelope(envelope, declaredEnvelope(annotations), { id, flow: ast.action });
647
+ const ceiling = sorted(Context.get(annotations, Annotations.Capabilities));
648
+ const dropped = ceiling.filter((capability) => !coveredCapability(stack, capability));
649
+ if (dropped.length > 0) {
650
+ observedDiagnostics.push(
651
+ new import_GraphBuildError.GraphBuildError({
652
+ code: "capability_outside_grant",
653
+ node: id,
654
+ path: dropped,
655
+ message: `Action "${ast.action}" at "${id}" requires ${dropped.join(", ")}, which the calling flow does not provably grant. Execution intersects this declaration with every caller ceiling.`
656
+ })
657
+ );
658
+ }
659
+ record({
660
+ id,
661
+ kind: ast._tag,
662
+ dependencies,
663
+ capabilities,
664
+ capabilityCeilings: [
665
+ ...stack.flatMap((flow) => (0, import_CapabilityCeiling.capabilityCeilings)(flow.annotations)),
666
+ ...(0, import_CapabilityCeiling.capabilityCeilings)(annotations)
667
+ ],
668
+ effects: declaredEffects(annotations),
669
+ placement: declaredPlacement(annotations),
670
+ priority,
671
+ tier: declared?.tier ?? "sealed",
672
+ nondeterministic: declared?.nondeterministic,
673
+ body: {
674
+ _tag: "ActionCall",
675
+ action: ast.action,
676
+ tier: declared?.tier ?? "sealed",
677
+ declaration: declared === void 0 ? void 0 : {
678
+ payload: schemaIdentity(declared.payloadSchema),
679
+ success: schemaIdentity(declared.successSchema),
680
+ error: schemaIdentity(declared.errorSchema),
681
+ ...ceiling.length === 0 ? {} : { capabilities: ceiling },
682
+ ...declared.implementationVersion === void 0 ? {} : { implementationVersion: declared.implementationVersion }
683
+ }
684
+ },
685
+ inputs: [...payloadInputs(payload2, id), ...inputs],
686
+ ast,
687
+ payload: payload2,
688
+ declaredAt: DeclarationSite.declaredAt(declared)
689
+ });
690
+ return;
691
+ }
692
+ case "Succeed": {
693
+ const value = hydrate(ast.value, substitutions, id);
694
+ const outcome = outcomeTagOf(ast);
695
+ if (outcome !== void 0) {
696
+ const tag = typeof value === "object" && value !== null ? Object.getOwnPropertyDescriptor(value, "_tag") : void 0;
697
+ if (tag === void 0 || !("value" in tag) || tag.value !== outcome) {
698
+ throw new import_GraphBuildError.GraphBuildError({
699
+ code: "invalid_payload",
700
+ node: id,
701
+ path: [],
702
+ message: `Flow outcome node at "${id}" lost its ${outcome} payload.`
703
+ });
704
+ }
705
+ Object.defineProperty(value, import_OutcomeMarker.OutcomeValueTypeId, {
706
+ configurable: false,
707
+ enumerable: false,
708
+ value: outcome,
709
+ writable: false
710
+ });
711
+ }
712
+ record({
713
+ id,
714
+ kind: ast._tag,
715
+ dependencies,
716
+ capabilities,
717
+ effects: void 0,
718
+ placement: void 0,
719
+ priority,
720
+ tier: "sealed",
721
+ body: outcome === void 0 ? { _tag: ast._tag } : { _tag: ast._tag, outcome },
722
+ inputs: [...payloadInputs(value, id), ...inputs],
723
+ ast,
724
+ payload: value
725
+ });
726
+ return;
727
+ }
728
+ case "Fail": {
729
+ const error = hydrate(ast.error, substitutions, id);
730
+ record({
731
+ id,
732
+ kind: ast._tag,
733
+ dependencies,
734
+ capabilities,
735
+ effects: void 0,
736
+ placement: void 0,
737
+ priority,
738
+ tier: "sealed",
739
+ body: { _tag: ast._tag },
740
+ inputs: [...payloadInputs(error, id), ...inputs],
741
+ ast,
742
+ payload: error
743
+ });
744
+ return;
745
+ }
746
+ case "All": {
747
+ const members = Object.keys(ast.nodes);
748
+ const steps = [];
749
+ for (const member of members) {
750
+ const memberId = `${id}.all.${member}`;
751
+ steps.push(() => expand(child(ast.nodes[member], memberId)));
752
+ steps.push(() => depend(memberId, "value"));
753
+ }
754
+ steps.push(
755
+ () => record({
756
+ id,
757
+ kind: ast._tag,
758
+ dependencies,
759
+ capabilities,
760
+ effects: void 0,
761
+ placement: void 0,
762
+ priority,
763
+ tier: "sealed",
764
+ body: { _tag: ast._tag, members },
765
+ inputs,
766
+ ast,
767
+ payload: void 0
768
+ })
769
+ );
770
+ sequence(steps);
771
+ return;
772
+ }
773
+ case "Race": {
774
+ const members = Object.keys(ast.nodes);
775
+ const steps = [];
776
+ for (const member of members) {
777
+ const memberId = `${id}.race.${member}`;
778
+ steps.push(() => expand(child(ast.nodes[member], memberId)));
779
+ steps.push(() => depend(memberId, "value"));
780
+ }
781
+ steps.push(
782
+ () => record({
783
+ id,
784
+ kind: ast._tag,
785
+ dependencies,
786
+ capabilities,
787
+ effects: void 0,
788
+ placement: void 0,
789
+ priority,
790
+ tier: "sealed",
791
+ body: { _tag: ast._tag, mode: ast.mode, count: ast.count, members },
792
+ inputs,
793
+ ast,
794
+ payload: void 0
795
+ })
796
+ );
797
+ sequence(steps);
798
+ return;
799
+ }
800
+ case "Map": {
801
+ observeIdentity(id, "mapper", ast.mapper);
802
+ const first = `${id}.map`;
803
+ sequence([
804
+ () => expand(child(ast.first, first)),
805
+ () => depend(first, "value"),
806
+ () => record({
807
+ id,
808
+ kind: ast._tag,
809
+ dependencies,
810
+ capabilities,
811
+ effects: void 0,
812
+ placement: void 0,
813
+ priority,
814
+ tier: "sealed",
815
+ body: { _tag: ast._tag, mapper: ast.mapper },
816
+ inputs,
817
+ ast,
818
+ payload: void 0
819
+ })
820
+ ]);
821
+ return;
822
+ }
823
+ case "AndThen": {
824
+ observeIdentity(id, "continuation", ast.continuation);
825
+ const first = `${id}.andThen`;
826
+ sequence([
827
+ () => expand(child(ast.first, first)),
828
+ () => depend(first, "value"),
829
+ () => {
830
+ const next = ast.next ?? continuation(ast, id, first);
831
+ if (next === void 0) return;
832
+ const thenId = `${id}.then`;
833
+ sequence([
834
+ () => expand(child(next, thenId, {
835
+ prerequisite: first,
836
+ // Explicit andThen sequences every descendant, not only the
837
+ // result/join node. bindPlanned remains a dependency builder:
838
+ // independent members can run while a referenced producer runs.
839
+ // The first subtree already carries the outer barriers, so
840
+ // its success transitively gates every nested descendant.
841
+ barriers: ast.next === void 0 ? request.barriers : [first]
842
+ })),
843
+ () => depend(thenId, "value")
844
+ ]);
845
+ },
846
+ () => record({
847
+ id,
848
+ kind: ast._tag,
849
+ dependencies,
850
+ capabilities,
851
+ effects: void 0,
852
+ placement: void 0,
853
+ priority,
854
+ tier: "sealed",
855
+ body: { _tag: ast._tag, continuation: ast.continuation, static: ast.next !== void 0 },
856
+ inputs,
857
+ ast,
858
+ payload: void 0
859
+ })
860
+ ]);
861
+ return;
862
+ }
863
+ case "Branch": {
864
+ observeIdentity(id, "predicate", ast.predicate);
865
+ const first = `${id}.branch`;
866
+ const arms = new Map([...substitutions, [ast.subject, first]]);
867
+ sequence([
868
+ () => expand(child(ast.first, first)),
869
+ () => depend(first, "value"),
870
+ () => expand(child(ast.then, `${id}.then`, { substitutions: arms, prerequisite: first })),
871
+ () => depend(`${id}.then`, "value"),
872
+ () => expand(child(ast.else, `${id}.else`, { substitutions: arms, prerequisite: first })),
873
+ () => depend(`${id}.else`, "value"),
874
+ () => record({
875
+ id,
876
+ kind: ast._tag,
877
+ dependencies,
878
+ capabilities,
879
+ effects: void 0,
880
+ placement: void 0,
881
+ priority,
882
+ tier: "sealed",
883
+ body: { _tag: ast._tag, predicate: ast.predicate },
884
+ inputs,
885
+ ast,
886
+ payload: void 0
887
+ })
888
+ ]);
889
+ return;
890
+ }
891
+ case "Catch": {
892
+ if (ast.filter !== void 0) observeIdentity(id, "filter", ast.filterIdentity);
893
+ const protectedId = `${id}.protected`;
894
+ const failureId = `${id}.failure`;
895
+ const recovery = new Map([...substitutions, [ast.subject, protectedId]]);
896
+ sequence([
897
+ () => expand(child(ast.protected, protectedId)),
898
+ () => depend(protectedId, "value"),
899
+ () => expand(child(ast.failure, failureId, { substitutions: recovery, prerequisite: protectedId })),
900
+ () => {
901
+ dependencies.push(failureId);
902
+ observedEdges.push({ from: protectedId, to: failureId, reason: "failure" });
903
+ observedEdges.push({ from: failureId, to: id, reason: "value" });
904
+ inputs.push({ _tag: "Ref", from: failureId, path: [] });
905
+ },
906
+ () => record({
907
+ id,
908
+ kind: ast._tag,
909
+ dependencies,
910
+ capabilities,
911
+ effects: void 0,
912
+ placement: void 0,
913
+ priority,
914
+ tier: "sealed",
915
+ body: { _tag: ast._tag, filter: ast.filter, filterIdentity: ast.filterIdentity },
916
+ inputs,
917
+ ast,
918
+ payload: void 0
919
+ })
920
+ ]);
921
+ return;
922
+ }
923
+ }
924
+ };
925
+ const declaration = flowDeclaration(flowOrNode);
926
+ const root = options.root ?? "root";
927
+ if (declaration === void 0) {
928
+ expand({
929
+ ast: flowOrNode.ast,
930
+ id: root,
931
+ depth: 0,
932
+ capabilities: [],
933
+ placement: void 0,
934
+ envelope: void 0,
935
+ priority: void 0,
936
+ substitutions: /* @__PURE__ */ new Map(),
937
+ stack: [],
938
+ prerequisite: void 0,
939
+ barriers: []
940
+ });
941
+ } else {
942
+ const entry = hydrate(payload, /* @__PURE__ */ new Map(), root);
943
+ expandFlowCall({
944
+ id: root,
945
+ depth: 0,
946
+ // The entry is a call to the flow itself that no author wrote, so its
947
+ // AST is synthesized here rather than recorded by `Node.flowCall`, which
948
+ // would replace a payload's non-JSON values with their plain-object
949
+ // copies. What a body was planned with stays what the entry node shows.
950
+ ast: { _tag: "FlowCall", flow: declaration._tag, mode: "inline", payload: entry },
951
+ flow: declaration._tag,
952
+ mode: "inline",
953
+ declaration,
954
+ payload: entry,
955
+ capabilities: sorted(Context.get(declaration.annotations, Annotations.Capabilities)),
956
+ // Nothing encloses the entry, so its own declared placement is what the
957
+ // body it splices has to be satisfiable under, not a constraint on it.
958
+ // Its declared envelope reads the same way: the entry is the top of the
959
+ // authority chain, so it grants rather than narrows.
960
+ placement: void 0,
961
+ envelope: void 0,
962
+ priority: void 0,
963
+ substitutions: /* @__PURE__ */ new Map(),
964
+ stack: [],
965
+ barriers: [],
966
+ dependencies: [],
967
+ inputs: []
968
+ });
969
+ }
970
+ while (operations.length > 0) operations.pop()();
971
+ return {
972
+ nodes: observed,
973
+ edges: observedEdges,
974
+ diagnostics: observedDiagnostics
975
+ };
976
+ };
977
+ const nodes = (graph) => graph.nodes;
978
+ const edges = (graph) => graph.edges;
979
+ const evaluatedFrom = (evaluated, entry) => DeclarationSite.evaluatedFrom(evaluated, entry);
980
+ const drafts = (graph) => {
981
+ const refusal = graph.diagnostics.find(import_GraphBuildError.isFatalDiagnostic);
982
+ if (refusal !== void 0) throw refusal;
983
+ return graph.nodes.map((node) => node.draft);
984
+ };
985
+ const diagnostics = (graph) => graph.diagnostics;
986
+ const inspect = (flow) => {
987
+ const prompt = "prompt" in flow && typeof flow.prompt === "function" ? Function.prototype.toString.call(flow.prompt) : void 0;
988
+ const withPrompt = (inspection) => prompt === void 0 ? inspection : { ...inspection, prompt };
989
+ try {
990
+ const graph = build(flow, Planned.make("input"));
991
+ const nodes2 = graph.nodes.map((node) => ({
992
+ id: node.id,
993
+ kind: node.kind,
994
+ ...node.ast._tag === "FlowCall" ? { label: node.ast.flow } : node.ast._tag === "ActionCall" ? { label: node.ast.action } : {},
995
+ dependencies: node.dependencies
996
+ }));
997
+ const steps = graph.nodes.flatMap(
998
+ (node) => node.ast._tag === "ActionCall" ? [{ id: node.id, label: node.ast.action }] : node.ast._tag === "FlowCall" && node.ast.mode !== "inline" ? [{ id: node.id, label: node.ast.flow }] : []
999
+ );
1000
+ return withPrompt({
1001
+ nodes: nodes2,
1002
+ edges: graph.edges,
1003
+ steps,
1004
+ diagnostics: graph.diagnostics.map(({ code, message }) => ({ code, message }))
1005
+ });
1006
+ } catch (error) {
1007
+ return withPrompt({
1008
+ // The declaration itself is a known boundary even when its internals
1009
+ // require real input. Do not publish a fictitious empty execution.
1010
+ nodes: [{ id: "root", kind: "FlowCall", label: flow._tag, dependencies: [] }],
1011
+ edges: [],
1012
+ steps: [{ id: "root", label: flow._tag }],
1013
+ diagnostics: [{
1014
+ code: error instanceof import_GraphBuildError.GraphBuildError ? error.code === "planned_value_computed" ? "declaration_requires_input" : error.code : "declaration_inspection_failed",
1015
+ message: error instanceof Error ? error.message : String(error)
1016
+ }]
1017
+ });
1018
+ }
1019
+ };
1020
+ //# sourceMappingURL=Graph.js.map