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

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 +1022 -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 +1482 -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 +1860 -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,279 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+
3
+ /**
4
+ * Constructs executable flow declarations from schema and policy data.
5
+ *
6
+ * @since 0.1.0
7
+ */
8
+
9
+ import type * as Effects from "@smthrs/plan/Effects"
10
+ import * as Node from "@smthrs/plan/Node"
11
+ import type * as Context from "effect/Context"
12
+ import * as Duration from "effect/Duration"
13
+ import * as Option from "effect/Option"
14
+ import * as Predicate from "effect/Predicate"
15
+ import * as Schema from "effect/Schema"
16
+ import type { Declared } from "../Action/Action.ts"
17
+ import * as Action from "../Action/make.ts"
18
+ import { lowerDeclarations } from "../internal/Declarations.ts"
19
+ import * as DeclarationSite from "../internal/DeclarationSite.ts"
20
+ import type * as RetryPolicy from "../RetryPolicy.ts"
21
+ import type { Any, AnyStructSchema, BodySuccess, DeclarationMetadata, Flow, PromptFlow } from "./Flow.ts"
22
+ import { makeProto } from "./internal.ts"
23
+ import { TypeId } from "./TypeId.ts"
24
+
25
+ /**
26
+ * The declaration data every flow takes beside its body.
27
+ *
28
+ * @private
29
+ */
30
+ interface MakeOptions<
31
+ Payload extends Schema.Struct.Fields | AnyStructSchema,
32
+ Success extends Schema.Top,
33
+ Error extends Schema.Top
34
+ > extends DeclarationMetadata {
35
+ readonly payload: Payload
36
+ /**
37
+ * Native declaration whose source location this reconstructed flow retains.
38
+ * A source with no recorded location preserves that absence. This affects
39
+ * diagnostics only, never identity; the new flow keeps its own body and calls.
40
+ */
41
+ readonly declaredFrom?: object | undefined
42
+ /**
43
+ * One sentence saying what this flow does, read by a catalog that lists it.
44
+ */
45
+ readonly description?: string | undefined
46
+ /**
47
+ * The capability ceiling this flow's body runs under, as string literals.
48
+ *
49
+ * It is the same ceiling {@link Annotations.Capabilities} carries, and
50
+ * declaring it here is what makes it READABLE without importing the module:
51
+ * a catalog projects a discovered flow's authority from the declaration, and
52
+ * an annotation built at run time is invisible to that projection.
53
+ */
54
+ readonly capabilities?: ReadonlyArray<string> | undefined
55
+ /**
56
+ * The effect envelope this flow's body runs under, as a literal.
57
+ *
58
+ * It is the same declaration {@link Annotations.EffectEnvelope} carries, and
59
+ * declaring it here is what makes it READABLE without importing the module,
60
+ * exactly as `capabilities` is: a catalog projects a discovered flow's
61
+ * authority from the source text of this literal, and an annotation built at
62
+ * run time is invisible to that projection.
63
+ *
64
+ * {@link module:Graph.build} refuses a composition beneath this flow that
65
+ * reads or writes outside the envelope, loosens `hermetic` to `expected`, or
66
+ * raises the tier. `reads` and `writes` are normalized to sorted,
67
+ * duplicate-free arrays, so two spellings of one envelope are one envelope.
68
+ */
69
+ readonly effects?: Effects.MakeOptions | undefined
70
+ /**
71
+ * Whether a catalog may offer this flow to a model, as a literal. Defaults
72
+ * to `true`.
73
+ *
74
+ * It is the same statement {@link Annotations.ModelInvocable} carries, and
75
+ * declaring it here is what makes it READABLE without importing the module,
76
+ * exactly as `capabilities` and `effects` are: a registry projects a
77
+ * discovered flow's visibility from the source text of this literal onto the
78
+ * descriptor it lists, and an annotation built at run time is invisible to
79
+ * that projection.
80
+ *
81
+ * Declare `false` when the actions this flow's body calls are implemented by
82
+ * one host only. The file is discoverable wherever it sits, so a catalog
83
+ * elsewhere would otherwise teach an agent a call with no implementation to
84
+ * reach.
85
+ */
86
+ readonly modelInvocable?: boolean | undefined
87
+ readonly idempotencyKey?:
88
+ | ((
89
+ payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload>
90
+ : Payload["Type"]
91
+ ) => string)
92
+ | undefined
93
+ readonly success?: Success
94
+ readonly error?: Error
95
+ readonly suspendedRetryPolicy?: RetryPolicy.RetryPolicy | undefined
96
+ /**
97
+ * The round budget a trampoline lineage started from this flow runs under.
98
+ */
99
+ readonly maxRounds?: number | undefined
100
+ /**
101
+ * How long one execution may take, counted from its journaled first start.
102
+ * A positive finite duration; see {@link Flow.deadline}.
103
+ */
104
+ readonly deadline?: Duration.Input | undefined
105
+ readonly annotations?: Context.Context<never>
106
+ }
107
+
108
+ /**
109
+ * The pure plan-time body, typed with the decoded payload.
110
+ *
111
+ * @private
112
+ */
113
+ type Body<
114
+ Payload extends Schema.Struct.Fields | AnyStructSchema,
115
+ Success extends Schema.Top,
116
+ Error extends Schema.Top,
117
+ Requires
118
+ > = (
119
+ payload: Payload extends Schema.Struct.Fields ? Schema.Struct.Type<Payload> : Payload["Type"]
120
+ ) => Node.Node<BodySuccess<Success["Type"]>, Error["Type"], Requires>
121
+
122
+ /**
123
+ * The payload schema a declaration's `payload` field stands for.
124
+ *
125
+ * @private
126
+ */
127
+ type PayloadSchemaOf<Payload extends Schema.Struct.Fields | AnyStructSchema> = Payload extends Schema.Struct.Fields
128
+ ? Schema.Struct<Payload>
129
+ : Payload
130
+
131
+ /**
132
+ * Whether a value is a flow this package made.
133
+ *
134
+ * The check is the runtime type id, not the shape: a host that loads a module
135
+ * and finds a default export has to decide whether it holds a flow before it
136
+ * reads anything off it, and a structural guess would accept a look-alike from
137
+ * another flow model.
138
+ *
139
+ * @category predicates
140
+ * @since 0.1.0
141
+ */
142
+ export const isFlow = (value: unknown): value is Any => Predicate.hasProperty(value, TypeId)
143
+
144
+ /**
145
+ * Creates a durable flow with one plan-time body or a typed prompt renderer.
146
+ * A prompt lowers to one ordinary action implemented by the host; neither
147
+ * construction nor planning renders it. Model metadata is interpreted by the
148
+ * host and adds no execution model to this package.
149
+ *
150
+ * Invocation IDs are caller-selected or opt-in deterministic IDs derived
151
+ * from the flow tag and idempotency key.
152
+ *
153
+ * @category constructors
154
+ * @since 0.1.0
155
+ */
156
+ export const make: {
157
+ <
158
+ const Tag extends string,
159
+ Payload extends Schema.Struct.Fields | AnyStructSchema,
160
+ Success extends Schema.Top = Schema.Void,
161
+ Error extends Schema.Top = Schema.Never,
162
+ Requires = never
163
+ >(
164
+ tag: Tag,
165
+ options: MakeOptions<Payload, Success, Error> & {
166
+ readonly body: Body<Payload, Success, Error, Requires>
167
+ readonly prompt?: never
168
+ }
169
+ ): Flow<Tag, PayloadSchemaOf<Payload>, Success, Error, Requires>
170
+ <
171
+ const Tag extends string,
172
+ Payload extends Schema.Struct.Fields | AnyStructSchema,
173
+ Success extends Schema.Top = Schema.Void,
174
+ Error extends Schema.Top = Schema.Never
175
+ >(
176
+ tag: Tag,
177
+ options: MakeOptions<Payload, Success, Error> & {
178
+ readonly prompt: (payload: PayloadSchemaOf<Payload>["Type"]) => string
179
+ readonly body?: never
180
+ readonly implementationVersion?: string | undefined
181
+ }
182
+ ): PromptFlow<Tag, PayloadSchemaOf<Payload>, Success, Error>
183
+ } = <
184
+ const Tag extends string,
185
+ Payload extends Schema.Struct.Fields | AnyStructSchema,
186
+ Success extends Schema.Top = Schema.Void,
187
+ Error extends Schema.Top = Schema.Never,
188
+ Requires = never
189
+ >(
190
+ tag: Tag,
191
+ options: MakeOptions<Payload, Success, Error> & {
192
+ readonly body?: Body<Payload, Success, Error, Requires> | undefined
193
+ readonly prompt?: ((payload: PayloadSchemaOf<Payload>["Type"]) => string) | undefined
194
+ readonly implementationVersion?: string | undefined
195
+ }
196
+ ): any => {
197
+ if (typeof tag !== "string" || tag.trim().length === 0) {
198
+ throw new TypeError("Flow.make: tag must be a non-empty string")
199
+ }
200
+ if (
201
+ (options.body === undefined && typeof options.prompt !== "function") ||
202
+ (options.prompt === undefined && typeof options.body !== "function") ||
203
+ (options.body !== undefined && options.prompt !== undefined)
204
+ ) {
205
+ throw new TypeError(`Flow.make: "${tag}" must declare exactly one function: body or prompt`)
206
+ }
207
+ // Invalid static configuration is a programmer error thrown at construction,
208
+ // the same contract as effect's own `ExecutionPlan.make` (which throws on
209
+ // `attempts <= 0`); `RangeError` matches effect's range-violation throws.
210
+ if (
211
+ options.maxRounds !== undefined &&
212
+ (!Number.isSafeInteger(options.maxRounds) || options.maxRounds < 1)
213
+ ) {
214
+ throw new RangeError(`Flow.make: "${tag}" maxRounds must be a positive safe integer`)
215
+ }
216
+ const deadline = options.deadline === undefined
217
+ ? undefined
218
+ : Option.getOrUndefined(Duration.fromInput(options.deadline))
219
+ if (
220
+ options.deadline !== undefined &&
221
+ (deadline === undefined || !Duration.isFinite(deadline) || Duration.toMillis(deadline) <= 0)
222
+ ) {
223
+ throw new RangeError(`Flow.make: "${tag}" deadline must be a positive finite duration`)
224
+ }
225
+ // Captured here, where the stack still names the author's file, and carried
226
+ // as a non-enumerable property so no digest can see it
227
+ // (`internal/DeclarationSite.ts`).
228
+ const site = options.declaredFrom === undefined
229
+ ? DeclarationSite.capture()
230
+ : DeclarationSite.declaredAt(options.declaredFrom)
231
+ const payloadSchema = (Schema.isSchema(options.payload)
232
+ ? options.payload
233
+ : Schema.Struct(options.payload as any)) as PayloadSchemaOf<Payload>
234
+ const successSchema = options.success ?? (Schema.Void as unknown as Success)
235
+ const errorSchema = options.error ?? (Schema.Never as unknown as Error)
236
+ const annotations = lowerDeclarations(options)
237
+ const action = options.prompt === undefined ? undefined : Action.make(`${tag}/prompt`, {
238
+ payload: payloadSchema,
239
+ success: successSchema,
240
+ error: errorSchema,
241
+ capabilities: options.capabilities,
242
+ effects: options.effects,
243
+ annotations,
244
+ tier: options.effects?.tier ?? "irreversible",
245
+ implementationVersion: options.implementationVersion,
246
+ declaredFrom: options.declaredFrom
247
+ }) as unknown as Declared<`${Tag}/prompt`, PayloadSchemaOf<Payload>, Success, Error>
248
+ // The adapter only describes one dispatch. Prompt rendering belongs to the
249
+ // host implementation and its reviewed source/implementation identity.
250
+ const body = action === undefined ? options.body : Node.capture(
251
+ { action: action.name, implementationVersion: action.implementationVersion ?? null },
252
+ (payload: PayloadSchemaOf<Payload>["Type"]) => action.call(payload as never)
253
+ )
254
+ return DeclarationSite.annotate(
255
+ makeProto<Tag, PayloadSchemaOf<Payload>, Success, Error, Requires>({
256
+ _tag: tag,
257
+ description: options.description,
258
+ payloadSchema,
259
+ successSchema,
260
+ errorSchema,
261
+ annotations,
262
+ model: options.model,
263
+ effort: options.effort,
264
+ system: options.system,
265
+ chat: options.chat,
266
+ flows: options.flows,
267
+ prompt: options.prompt,
268
+ action,
269
+ body: body as (
270
+ payload: PayloadSchemaOf<Payload>["Type"]
271
+ ) => Node.Node<BodySuccess<Success["Type"]>, Error["Type"], Requires>,
272
+ idempotencyKey: options.idempotencyKey as any,
273
+ suspendedRetryPolicy: options.suspendedRetryPolicy,
274
+ maxRounds: options.maxRounds,
275
+ deadline
276
+ }),
277
+ site
278
+ )
279
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Failure raised when a cancellation request could not be made durable.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+
7
+ import * as Schema from "effect/Schema"
8
+
9
+ /**
10
+ * Raised when `interrupt` could not durably record its cancellation request.
11
+ *
12
+ * This is a **typed failure**, never a defect, and never swallowed. A durable
13
+ * runtime records operator intent before it interrupts anything: the record is
14
+ * what tells the interruption handler that a cancellation happened rather than
15
+ * a shutdown (issue #26), what survives the requesting process dying, and what
16
+ * a parked or cross-process run is eventually cancelled by. A durable runtime
17
+ * records the run and all linked descendants in one transaction. A storage
18
+ * failure on any write leaves every request unchanged: the run is still
19
+ * running and still cancellable, so the caller sees this typed failure and can
20
+ * retry instead of receiving false success.
21
+ *
22
+ * A runtime that keeps no durable cancellation record — the in-memory engine —
23
+ * never raises it, so its `Effect<void>` remains assignable to the widened
24
+ * contract and no in-memory caller has to handle anything.
25
+ *
26
+ * The same error carries the durable engine's refusal of `interruptUnsafe`.
27
+ * That port promises forced cancellation without cleanup, and the durable
28
+ * engine has no such path — it has one cancellation path, `interrupt`, which
29
+ * is durable and cascades to linked children. Answering the unsafe request
30
+ * with the safe one silently reinterpreted it, so 1.0.0-rc.0 refuses it with
31
+ * code `unsafe_interrupt_unsupported`. It is the same failure type because it
32
+ * is the same question — "your cancellation request was not carried out" —
33
+ * and the code says which of the two reasons applies.
34
+ *
35
+ * The error is declared here because it is part of the `interrupt` contract
36
+ * this package owns; the durable implementation lives in
37
+ * `@smthrs/engine-store`'s `RunDriver`.
38
+ *
39
+ * @category errors
40
+ * @since 0.1.0
41
+ */
42
+ export class CancelRequestFailed extends Schema.TaggedError<CancelRequestFailed>()(
43
+ "@smthrs/flow/CancelRequestFailed",
44
+ {
45
+ /**
46
+ * Stable public error code. `cancel_request_failed` is a storage failure
47
+ * on a supported request; `unsafe_interrupt_unsupported` is the durable
48
+ * engine refusing `interruptUnsafe`, which it does not implement.
49
+ */
50
+ code: Schema.Literals(["cancel_request_failed", "unsafe_interrupt_unsupported"]),
51
+ /** The execution whose cancellation could not be recorded. */
52
+ executionId: Schema.String,
53
+ /** The storage failure, rendered for an operator. */
54
+ reason: Schema.String
55
+ }
56
+ ) {}
@@ -0,0 +1,32 @@
1
+ /** Execution identity refusals shared by authoring and engine layers.
2
+ * @since 1.0.0
3
+ */
4
+
5
+ import * as Effect from "effect/Effect"
6
+ import * as Schema from "effect/Schema"
7
+ import * as Fault from "../Fault.ts"
8
+
9
+ /**
10
+ * A caller reused an execution id for different persisted run identity.
11
+ *
12
+ * @category errors
13
+ * @since 1.0.0
14
+ */
15
+ export class ExecutionIdentityConflict extends Schema.TaggedError<ExecutionIdentityConflict>()(
16
+ "@smthrs/engine/ExecutionIdentityConflict",
17
+ {
18
+ code: Schema.Literal("execution_identity_conflict").pipe(
19
+ Schema.withConstructorDefault(Effect.succeed("execution_identity_conflict"))
20
+ ),
21
+ executionId: Schema.String,
22
+ field: Schema.Literals(["flow", "payload", "capabilities", "lineage", "round", "parent"]),
23
+ expected: Schema.String,
24
+ actual: Schema.String,
25
+ status: Schema.Literals(["pending", "running", "suspended", "completed", "failed", "cancelled", "unknown"]).pipe(
26
+ Schema.withConstructorDefault(Effect.succeed("unknown"))
27
+ ),
28
+ message: Schema.String
29
+ }
30
+ ) {}
31
+
32
+ Fault.register("@smthrs/engine/ExecutionIdentityConflict", "bug")
@@ -0,0 +1,41 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+
3
+ /**
4
+ * Failure raised when executing a flow would close a cycle in the persisted
5
+ * parent-execution chain.
6
+ *
7
+ * @since 0.1.0
8
+ */
9
+
10
+ import * as Effect from "effect/Effect"
11
+ import * as Schema from "effect/Schema"
12
+
13
+ /**
14
+ * Raised when executing a flow would close a cycle in the persisted
15
+ * parent-execution chain, which is a child asking to execute an execution id
16
+ * that already appears among its own ancestors.
17
+ *
18
+ * This is a **typed failure**, never a defect: the caller is expected to be
19
+ * able to recover from it (see `docs/troubleshooting.md`,
20
+ * "FlowRuntime.FlowCycleDetected"). Detection itself lives in
21
+ * `@smthrs/engine-store`'s `DurableEngineState.recordRunParent`, which
22
+ * inserts the durable parent edge and walks the parent chain in O(depth)
23
+ * inside one storage transaction, rolling back on a hit; the error is
24
+ * declared here because it is part of the `execute` contract this package
25
+ * owns.
26
+ *
27
+ * @category errors
28
+ * @since 0.1.0
29
+ */
30
+ export class FlowCycleDetected extends Schema.TaggedError<FlowCycleDetected>()(
31
+ "@smthrs/flow/FlowCycleDetected",
32
+ {
33
+ /** Stable public error code. */
34
+ // This wire shape freezes at 1.0.0-rc.0.
35
+ code: Schema.Literal("flow_cycle_detected").pipe(
36
+ Schema.withConstructorDefault(Effect.succeed("flow_cycle_detected"))
37
+ ),
38
+ /** Ordered execution ids from the cycle's target back to itself. */
39
+ path: Schema.Array(Schema.String)
40
+ }
41
+ ) {}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Failure raised when `poll` addresses an execution the runtime has no record
3
+ * of.
4
+ *
5
+ * @since 0.1.0
6
+ */
7
+
8
+ import * as Effect from "effect/Effect"
9
+ import * as Schema from "effect/Schema"
10
+
11
+ /**
12
+ * Raised when `poll` is asked about an execution id the runtime never
13
+ * recorded.
14
+ *
15
+ * This is a **typed failure**, never a defect, and never folded into the
16
+ * success channel: `poll` answers `Option.none` for a known execution that has
17
+ * not settled yet, so answering it for an unknown id as well would leave the
18
+ * caller unable to distinguish "still running" from "no such execution". A
19
+ * caller holding a stored execution id needs that distinction — a run that is
20
+ * still in flight is waited on, one the runtime has no record of is a wiring
21
+ * or retention problem to surface.
22
+ *
23
+ * The error is declared here because it is part of the `poll` contract this
24
+ * package owns; every runtime — the in-memory engine and the durable
25
+ * `@smthrs/engine-store` driver alike — raises it for an unknown id.
26
+ *
27
+ * @category errors
28
+ * @since 0.1.0
29
+ */
30
+ export class FlowExecutionNotFound extends Schema.TaggedError<FlowExecutionNotFound>()(
31
+ "@smthrs/flow/FlowExecutionNotFound",
32
+ {
33
+ /** Stable public error code. */
34
+ // This wire shape freezes at 1.0.0-rc.0.
35
+ code: Schema.Literal("execution_not_found").pipe(
36
+ Schema.withConstructorDefault(Effect.succeed("execution_not_found"))
37
+ ),
38
+ /** The execution id the runtime has no record of. */
39
+ executionId: Schema.String
40
+ }
41
+ ) {
42
+ /** @since 0.1.0 */
43
+ override get message(): string {
44
+ return `No flow execution is recorded under id "${this.executionId}"`
45
+ }
46
+ }
@@ -0,0 +1,128 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+
3
+ /**
4
+ * The per-execution state contract flow authoring APIs read and update.
5
+ *
6
+ * @since 0.1.0
7
+ */
8
+
9
+ import type * as Cause from "effect/Cause"
10
+ import * as Context from "effect/Context"
11
+ import type * as Latch from "effect/Latch"
12
+ import type * as Scope from "effect/Scope"
13
+ import type * as Flow from "../Flow/index.ts"
14
+ import type { WaitingAnnotation } from "./WaitingAnnotation.ts"
15
+
16
+ /**
17
+ * Service that contains flow runtime state for one execution.
18
+ *
19
+ * **When to use**
20
+ *
21
+ * Use to read or update flow execution, suspension, interruption,
22
+ * lifetime, failure, and action coordination state inside flow authoring
23
+ * combinators and runtime implementations.
24
+ *
25
+ * **Details**
26
+ *
27
+ * The service stores the execution ID, flow definition, long-lived scope,
28
+ * suspension and interruption flags, the stored failure cause, and action
29
+ * coordination state for a single flow run. `@smthrs/flow` declares the
30
+ * contract; a runtime — `@smthrs/engine` — constructs the value.
31
+ *
32
+ * @category services
33
+ * @since 0.1.0
34
+ */
35
+ export class FlowInstance extends Context.Service<
36
+ FlowInstance,
37
+ {
38
+ /**
39
+ * The flow execution ID.
40
+ */
41
+ readonly executionId: string
42
+
43
+ /**
44
+ * The journal lineage this execution's records address themselves to.
45
+ *
46
+ * `docs/concepts/the-runtime-port.md` makes a frame the journal position
47
+ * `(lineageId, seq)`, and `docs/guides/run-a-child-flow.md` defines the
48
+ * lineage id as the run id followed by the node-id path from the run root.
49
+ * A runtime mints it; every durable record this execution writes carries it
50
+ * as `meta.lineageId`, which is what lets `TimeTravel.inspect` fold an
51
+ * ordinary engine journal at all.
52
+ */
53
+ readonly lineageId: string
54
+
55
+ /**
56
+ * The flow definition.
57
+ */
58
+ readonly flow: Flow.Any
59
+
60
+ /**
61
+ * A scope that represents the lifetime of the flow.
62
+ *
63
+ * It is only closed when the flow is completed.
64
+ */
65
+ readonly scope: Scope.Closeable
66
+
67
+ /**
68
+ * Whether the flow has requested to be suspended.
69
+ */
70
+ suspended: boolean
71
+
72
+ /**
73
+ * Whether the flow has requested to be interrupted.
74
+ */
75
+ interrupted: boolean
76
+
77
+ /**
78
+ * The waiting classification the flow declared for its next suspension
79
+ * via `annotateWaiting`. Durable drivers read it when parking the
80
+ * run so approval and quota waits (and their wake token) are
81
+ * representable; when absent the driver derives `timer`/`event` from
82
+ * durable state.
83
+ */
84
+ waiting: WaitingAnnotation | undefined
85
+
86
+ /**
87
+ * The next-round invocation this round settled with, when its body's root
88
+ * value was a `to` rather than a `done`.
89
+ *
90
+ * A handoff is a settlement, not a failure and not a suspension, so it
91
+ * cannot travel out through the effect's exit; `Flow.intoResult` reads the
92
+ * slot and answers `Flow.Handoff` instead of `Flow.Complete`. The engine
93
+ * then opens the next round under the same lineage
94
+ * (`docs/concepts/trampoline-rounds.md`).
95
+ */
96
+ handoff: Flow.Handoff | undefined
97
+
98
+ /**
99
+ * The lineage deadline this round inherited from the round that handed
100
+ * off to it, when its lineage is bounded. `Deadline.bound` runs the round
101
+ * under it instead of starting a deadline of its own.
102
+ */
103
+ readonly lineageDeadline?: Flow.LineageDeadline | undefined
104
+
105
+ /**
106
+ * When SuspendOnFailure is triggered, the cause of the failure is stored
107
+ * here.
108
+ */
109
+ cause: Cause.Cause<never> | undefined
110
+
111
+ readonly actionState: {
112
+ count: number
113
+ readonly latch: Latch.Latch
114
+ readonly nextOrdinal: (scope: string) => number
115
+ readonly snapshots: Map<string, unknown>
116
+ /**
117
+ * Allocation scopes with a keyless dispatch currently in flight
118
+ * (issue #111). Indistinguishable invocations of one declaration are
119
+ * allocation-ordered, so two in flight at once would take their
120
+ * ordinals from the fiber schedule and a replay could swap their
121
+ * recorded outcomes undetected; the engine refuses the second dispatch
122
+ * instead. Distinct interpreter graph sites refine the scope and do not
123
+ * contend here.
124
+ */
125
+ readonly keylessInFlight: Set<string>
126
+ }
127
+ }
128
+ >()("@smthrs/flow/FlowRuntime/FlowInstance") {}