@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,38 @@
1
+ ---
2
+ title: "Prompt-backed flows"
3
+ description: "Declare a typed prompt with Flow.make and attach its host implementation to the ordinary action it lowers to."
4
+ ---
5
+
6
+ Declare exactly one of `body` or `prompt` with the same tagged constructor:
7
+
8
+ ```ts
9
+ import { Flow } from "@smthrs/flow"
10
+ import * as Schema from "effect/Schema"
11
+
12
+ export const Draft = Flow.make("draft", {
13
+ description: "Drafts a response.",
14
+ payload: { message: Schema.String },
15
+ success: Schema.String,
16
+ prompt: ({ message }) => `Respond to: ${message}`
17
+ })
18
+ ```
19
+
20
+ `Draft` is an ordinary flow. Its body calls `Draft.action`, an ordinary action
21
+ named `draft/prompt`. Constructing the declaration and building its graph never
22
+ render the prompt or call a model. The host renders `Draft.prompt(payload)`
23
+ inside the implementation it attaches with `Draft.action.toLayer(...)`.
24
+
25
+ The prompt receives the decoded payload. Missing or incorrectly typed props
26
+ are TypeScript errors. A host may render an imported typed MDX component from
27
+ that callback; see [MDX prompts](/pkg/registry/guides/mdx-prompts).
28
+
29
+ `model` may name a seat or an ordered nonempty fallback list. When omitted,
30
+ the host supplies its resolved seat. `effort`, `flows`, `system`, and `chat`
31
+ retain host metadata. They do not start a model or widen authority. Declare
32
+ `capabilities` and `effects` for the same ceiling a body-backed flow uses.
33
+
34
+ Supply the model implementation's failure schema as `error`. For the existing
35
+ agent host, use `AgentAction.AgentFailure` from `@smthrs/agent/AgentAction`.
36
+ A prompt action defaults to the irreversible tier and has no content cache key.
37
+ Register `Interpreter.layer(Draft)` and the action implementation under the
38
+ host's ordinary runtime and `Action.layerImplementations`.
@@ -0,0 +1,141 @@
1
+ ---
2
+ title: "Wait for a deadline"
3
+ description: "Park a round on a durable timer with Sleep.action, sleep inside an implementation with DurableClock, and read the refusals an unarmable deadline earns."
4
+ sidebar:
5
+ order: 4
6
+ ---
7
+
8
+ There are two ways to wait for time to pass, and which one you reach for depends
9
+ on where you are standing.
10
+
11
+ - In a **body**, call `Sleep.action`. The wait becomes a keyed plan node: visible
12
+ in the graph, skippable by a branch, and replayed like any other step.
13
+ - In an **implementation**, call `DurableClock.sleep`. A body cannot see it, but
14
+ a handler can reach it.
15
+
16
+ Both park the execution rather than holding a fiber, so the wait outlives the
17
+ process.
18
+
19
+ ## Wait inside a body
20
+
21
+ ```ts
22
+ import { Action, Flow, Interpreter, Sleep } from "@smthrs/flow"
23
+ import { Node } from "@smthrs/plan"
24
+ import * as Layer from "effect/Layer"
25
+ import * as Schema from "effect/Schema"
26
+
27
+ const Notify = Action.make("release/Notify", {
28
+ payload: { build: Schema.String },
29
+ success: Schema.String
30
+ })
31
+
32
+ export const Cooldown = Flow.make("release/Cooldown", {
33
+ payload: { build: Schema.String },
34
+ success: Schema.String,
35
+ error: Sleep.SleepRequestInvalid,
36
+ body: ({ build }) =>
37
+ Sleep.action.call({ millis: 60_000 }).pipe(
38
+ Node.andThen(Notify.call({ build }))
39
+ )
40
+ })
41
+
42
+ export const layer = Layer.mergeAll(
43
+ Sleep.layer,
44
+ Notify.toLayer(({ build }) => notifyRelease(build)),
45
+ Interpreter.layer(Cooldown)
46
+ ).pipe(Layer.provideMerge(Action.layerImplementations))
47
+ ```
48
+
49
+ `Sleep.layer` is not optional. `Sleep.action` is declared with
50
+ `Action.makeSystem`, so it pushes no compile-time obligation onto callers, but a
51
+ composition without the layer has a plan node no implementation answers.
52
+
53
+ The implementation arms a durable clock, declares its park as `timer` with the
54
+ deadline as `wakeAt`, and awaits the clock's deferred. Once the clock has fired,
55
+ its result is persisted, so a re-driven round reads it and runs straight through
56
+ instead of parking a second time.
57
+
58
+ ## Name exactly one deadline
59
+
60
+ A payload carries a relative `millis` or an absolute `until` in epoch
61
+ milliseconds, and exactly one of them. `Sleep.SleepRequestInvalid` is the typed
62
+ refusal, so a body can recover from it with `Node.catch` like any other declared
63
+ failure:
64
+
65
+ | Code | What was wrong |
66
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
67
+ | `missing_deadline` | The payload named neither `millis` nor `until`. |
68
+ | `ambiguous_deadline` | It named both, which are the same fact stated twice. |
69
+ | `invalid_deadline` | It named a number that is not a length of time: a non-finite or negative `millis`, a non-finite `until`, or an addition that overflows. |
70
+
71
+ Two behaviors are worth knowing before you write the body:
72
+
73
+ - **Two waits of the same length are two waits.** Each call is its own node with
74
+ its own identity, so a sleep followed by a sleep waits twice.
75
+ - **A deadline that has already passed settles the node instead of parking it.**
76
+ A run that resumes after its own deadline has to make progress.
77
+
78
+ ## Wait inside an implementation
79
+
80
+ `DurableClock.sleep` is the handler-side wait:
81
+
82
+ ```ts
83
+ import { DurableClock } from "@smthrs/flow"
84
+
85
+ const wait = DurableClock.sleep({
86
+ name: "cooldown",
87
+ duration: "2 days",
88
+ inMemoryThreshold: "30 seconds"
89
+ })
90
+ ```
91
+
92
+ The threshold decides the mechanism. A duration at or below
93
+ `inMemoryThreshold`, 60 seconds by default, runs as an in-memory sealed action.
94
+ A longer one schedules a durable clock and suspends the execution. A zero
95
+ duration returns immediately. Both the duration and the threshold must be finite
96
+ and not negative.
97
+
98
+ `DurableClock.make({ name, duration })` builds the clock value on its own, which
99
+ is what you want when you need the clock's deferred rather than the wait, for
100
+ example to race it against real work.
101
+
102
+ ## Bound work with a clock
103
+
104
+ Racing a durable clock against the work is how you put a durable time limit on
105
+ something that can hang. The race records its winner, so a re-driven round reads
106
+ the recorded outcome instead of racing again:
107
+
108
+ ```ts
109
+ import { DurableDeferred } from "@smthrs/flow"
110
+ import * as Duration from "effect/Duration"
111
+ import * as Effect from "effect/Effect"
112
+
113
+ const bounded = DurableDeferred.raceAll({
114
+ name: "deploy/status",
115
+ success: Schema.String,
116
+ error: Schema.Never,
117
+ effects: [
118
+ readDeployment("web"),
119
+ Effect.as(
120
+ DurableClock.sleep({
121
+ name: "deploy/status",
122
+ duration: Duration.seconds(30),
123
+ inMemoryThreshold: Duration.zero
124
+ }),
125
+ "unknown"
126
+ )
127
+ ]
128
+ })
129
+ ```
130
+
131
+ `inMemoryThreshold: Duration.zero` forces the durable path, so the bound outlives
132
+ the process waiting on it rather than living in a fiber.
133
+
134
+ ## Related pages
135
+
136
+ - [Wait for an external signal](./wait-for-an-external-signal.md): the other
137
+ system wait, and the tokens that resolve it.
138
+ - [Poll until something is ready](./poll-until-ready.md): a timer and a check,
139
+ packaged as a lineage of rounds.
140
+ - [Suspension and replay](../concepts/suspension-and-replay.md): what parking
141
+ does to the run.
@@ -0,0 +1,151 @@
1
+ ---
2
+ title: "Wait for an external signal"
3
+ description: "Park a round on a named wait point, resolve it from another process with a completion token, and use durable deferreds directly."
4
+ sidebar:
5
+ order: 5
6
+ ---
7
+
8
+ A run often has to wait for something that is not time and not a step: an
9
+ approval, a webhook, a human closing a ticket. `WaitFor.action` is that wait as an
10
+ ordinary plan node, and a `DurableDeferred` token is how the outside world
11
+ resolves it.
12
+
13
+ ## Park the body on a named wait point
14
+
15
+ ```ts
16
+ import { Action, Flow, Interpreter, WaitFor } from "@smthrs/flow"
17
+ import { Node } from "@smthrs/plan"
18
+ import * as Layer from "effect/Layer"
19
+ import * as Schema from "effect/Schema"
20
+
21
+ const Deploy = Action.make("release/Deploy", {
22
+ payload: { build: Schema.String },
23
+ success: Schema.String
24
+ })
25
+
26
+ export const Ship = Flow.make("release/Ship", {
27
+ payload: { build: Schema.String },
28
+ success: Schema.String,
29
+ error: WaitFor.WaitForRequestInvalid,
30
+ body: ({ build }) =>
31
+ WaitFor.action.call({ name: "ship" }).pipe(
32
+ Node.andThen(Deploy.call({ build }))
33
+ )
34
+ })
35
+
36
+ export const layer = Layer.mergeAll(
37
+ WaitFor.layer,
38
+ Deploy.toLayer(({ build }) => deployBuild(build)),
39
+ Interpreter.layer(Ship)
40
+ ).pipe(Layer.provideMerge(Action.layerImplementations))
41
+ ```
42
+
43
+ The implementation parks the execution under the `event` waiting reason, carrying
44
+ the wake token a completion is matched against, and settles with whatever value
45
+ resolved the wait. `WaitFor.action` succeeds with `Schema.Json`, so decode the
46
+ answer with a schema when you need a typed value.
47
+
48
+ `WaitFor.layer` is required in the composition for the same reason `Sleep.layer`
49
+ is: the node is a system declaration, so the compiler does not ask for it, but
50
+ the run does.
51
+
52
+ ## Resolve it from outside
53
+
54
+ `WaitFor.deferred(name)` is the resolver's half of the same wait point. Derive
55
+ the token from the flow and the execution id, then complete it:
56
+
57
+ ```ts
58
+ import { DurableDeferred } from "@smthrs/flow"
59
+ import * as Effect from "effect/Effect"
60
+
61
+ const gate = WaitFor.deferred("ship")
62
+
63
+ export const approve = (executionId: string) =>
64
+ Effect.gen(function*() {
65
+ const token = DurableDeferred.tokenFromExecutionId(gate, { flow: Ship, executionId })
66
+ yield* DurableDeferred.succeed(gate, { token, value: { approved: true } })
67
+ })
68
+ ```
69
+
70
+ The resolver needs the `FlowRuntime` the run was started on, because a completion
71
+ is recorded against the flow and execution that own the wait point. In practice
72
+ that means the resolver and the engine share a store.
73
+
74
+ `DurableDeferred.tokenFromPayload(gate, { flow, payload })` derives the same token
75
+ from a payload, for a resolver that knows what was asked for but not which id it
76
+ was admitted under. This requires the flow to declare `idempotencyKey`; use
77
+ `tokenFromExecutionId` when the caller supplied an execution id explicitly.
78
+
79
+ A token is an address, not a credential. Anyone who knows the flow and the
80
+ execution id, or the payload, can rebuild it, so a resolver that accepts
81
+ completions from other parties must authorize the caller before it calls
82
+ `DurableDeferred.succeed`.
83
+
84
+ ## Name exactly one target
85
+
86
+ A `WaitFor` payload names the wait point by `name`, relative to the running
87
+ execution, or by an absolute `token`. `WaitFor.WaitForRequestInvalid` is the
88
+ typed refusal:
89
+
90
+ | Code | What was wrong |
91
+ | ------------------- | ------------------------------------------------------------------------------------------------- |
92
+ | `missing_target` | The payload named neither `name` nor `token`. |
93
+ | `ambiguous_target` | It named both. |
94
+ | `malformed_token` | The token does not parse. |
95
+ | `foreign_execution` | The token is addressed to another flow or another execution, which this execution cannot observe. |
96
+
97
+ `foreign_execution` is a refusal rather than a silent park because a foreign
98
+ token would park forever while the value it names was recorded somewhere else.
99
+
100
+ ## Durable deferreds on their own
101
+
102
+ `WaitFor` is a thin declaration over `DurableDeferred`, and you can use the
103
+ primitive directly inside an implementation:
104
+
105
+ ```ts
106
+ const Approval = DurableDeferred.make("Approval", {
107
+ success: Schema.Boolean,
108
+ error: Schema.String
109
+ })
110
+
111
+ // Inside a flow: park until it is completed.
112
+ const awaited = DurableDeferred.await(Approval)
113
+
114
+ // Or run an effect and record its exit into the deferred.
115
+ const computed = DurableDeferred.into(Effect.succeed(true), Approval)
116
+
117
+ // Race several, persisting the first exit under `raceAll/first-answer`.
118
+ const winner = DurableDeferred.raceAll({
119
+ name: "first-answer",
120
+ success: Schema.Boolean,
121
+ error: Schema.String,
122
+ effects: [awaited, computed]
123
+ })
124
+ ```
125
+
126
+ Four surfaces complete a deferred from outside, and all four take a token:
127
+ `DurableDeferred.succeed`, `fail`, `failCause`, and `done` with a full `Exit`.
128
+ Inside a running flow, `DurableDeferred.token(self)` mints the token for the
129
+ current execution.
130
+
131
+ Two rules govern every completion:
132
+
133
+ - **First writer wins.** The first recorded exit is the one every later read
134
+ replays. A second completion does not overwrite it.
135
+ - **A token names one deferred.** A token whose `deferredName` is not this
136
+ deferred's fails with `DurableDeferred.TokenInvalid` carrying
137
+ `deferred_mismatch`, and a token that does not parse fails with
138
+ `malformed_token`.
139
+
140
+ A token encodes the flow name, the execution id, and the deferred name, which is
141
+ exactly what another process needs to write to the right durable address.
142
+ `DurableDeferred.TokenParsed` is the decoded form.
143
+
144
+ ## Related pages
145
+
146
+ - [Ask a person for a decision](./ask-a-person.md): the same wait point machinery
147
+ with validation, re-asking, and a deadline on top.
148
+ - [Wait for a deadline](./wait-for-a-deadline.md): the timer half of the same
149
+ vocabulary.
150
+ - [Hand work to a durable worker](./queue-work-to-a-worker.md): a deferred used
151
+ as a request and response channel.
@@ -0,0 +1,82 @@
1
+ ---
2
+ title: "Installation"
3
+ description: "Install @smthrs/flow, its runtime requirements and pinned effect version, its import forms, and the packages a runnable composition adds."
4
+ sidebar:
5
+ order: 1
6
+ ---
7
+
8
+ ## Install the package
9
+
10
+ `@smthrs/flow` is not on npm yet. Link the source packages as described in [Use the libraries](#use-the-libraries).
11
+
12
+ `effect` is a runtime dependency of this package and installs with it. Add it to
13
+ your own dependencies at the same version anyway: your declarations import
14
+ `effect/Schema` and your implementations import `effect/Effect` directly, and two
15
+ copies of `effect` in one program are two sets of service tags.
16
+
17
+ The package requires Node.js 26.4.0 or later. It ships as both ESM and
18
+ CommonJS with TypeScript declarations, and it pulls in
19
+ [`@smthrs/plan`](/api/plan), [`@smthrs/crypto`](/api/crypto),
20
+ [`@smthrs/keys`](/api/keys), and [`@smthrs/canonical`](/api/canonical), which
21
+ supply the node vocabulary a body is written in, the digests identity is built
22
+ from, and the canonical JSON checks applied to values.
23
+
24
+ ## Use the libraries
25
+
26
+ First [install the source checkout](https://github.com/smithersai/smithers/blob/main/packages/smithers/docs/installation.md#install-the-cli). The checkout's `examples` workspace carries the packages used by the flow tutorials and their pinned `effect@4.0.0-rc.115`.
27
+
28
+ Create a project beside the checkout:
29
+
30
+ ```bash
31
+ mkdir my-flows && cd my-flows
32
+ echo '{ "type": "module" }' > package.json
33
+ ln -s /path/to/smithers/examples/node_modules node_modules
34
+ ```
35
+
36
+ Replace `/path/to/smithers` with the absolute path to your installed checkout. Run programs with `node <file>.ts`. Packages absent from the examples workspace, such as `@smthrs/artifacts`, resolve only inside the checkout; use the owning package's workspace for those examples. This linking recipe uses source exports and requires no package build.
37
+
38
+ ## Import forms
39
+
40
+ The root entry point re-exports every module as a namespace:
41
+
42
+ ```ts
43
+ import { Action, DurableDeferred, Flow, Interpreter, RetryPolicy } from "@smthrs/flow"
44
+ ```
45
+
46
+ Several modules are also importable from their own subpath, which is the form the
47
+ reference uses:
48
+
49
+ ```ts
50
+ import * as CacheEnvironment from "@smthrs/flow/CacheEnvironment"
51
+ import * as Flow from "@smthrs/flow/Flow"
52
+ ```
53
+
54
+ The `exports` map publishes `@smthrs/flow/Action`, `/CacheEnvironment`,
55
+ `/FileBoundary`, `/FileInput`, `/Flow`, `/FlowRuntime`, `/StepIdentity`, and one
56
+ subpath per top-level module (`DurableClock`, `DurableDeferred`, `DurableQueue`,
57
+ `Graph`, `HumanTask`, `Interpreter`, `Poll`, `RetryPolicy`, `Sleep`, `WaitFor`).
58
+ Four subpath shapes resolve to nothing on purpose: `@smthrs/flow/internal/*`,
59
+ `@smthrs/flow/*/index`, and the per-file paths under `Action/`, `Flow/`, and
60
+ `FlowRuntime/`. Reach those namespaces through their directory subpath instead.
61
+ `@smthrs/flow/package.json` is exported.
62
+
63
+ ## What a runnable composition adds
64
+
65
+ This package declares the `FlowRuntime` port and implements none of it, so a
66
+ composition that runs a flow adds an engine and a platform crypto service.
67
+
68
+ - [`@smthrs/engine`](/api/engine) implements `FlowRuntime`. Its
69
+ `FlowEngine.layerMemory` keeps every recorded step in the process, which is
70
+ what the [Quickstart](./quickstart.md) and most tests use.
71
+ - `@effect/platform-node` supplies `NodeCrypto.layer`. An action dispatch is
72
+ recorded under a derived step identity, so the engine needs a `Crypto` service
73
+ even in memory. A browser host supplies its own, such as `BrowserCrypto` from
74
+ `@effect/platform-browser`; nothing in this package imports a Node built-in.
75
+
76
+ Add [`@smthrs/engine-store`](/api/engine-store) when the recorded steps have to
77
+ outlive the process. It backs the same port with SQLite, which is what turns a
78
+ suspended run into one a later process resumes.
79
+
80
+ ## Next step
81
+
82
+ Run a flow end to end in the [Quickstart](./quickstart.md).
@@ -0,0 +1,155 @@
1
+ ---
2
+ title: "Quickstart"
3
+ description: "Declare an action and a flow, compose the layers, run the flow on the in-memory engine, and read a typed result."
4
+ sidebar:
5
+ order: 2
6
+ ---
7
+
8
+ This quickstart runs one flow end to end on the in-memory engine. Nothing here
9
+ touches a database or the network, and the result arrives as a typed value
10
+ decoded by the schema you declared.
11
+
12
+ A runnable copy of this program is published in the Smithers examples,
13
+ [`01-define-and-run.ts`](https://github.com/smithersai/smithers/blob/main/examples/src/01-define-and-run.ts).
14
+
15
+ ## Prerequisites
16
+
17
+ - Node.js 26.4.0 or later.
18
+ - A package with the dependencies installed. Not on npm yet; see [Installation](./installation.md#use-the-libraries).
19
+
20
+ ## Declare the action and the flow
21
+
22
+ Create `quickstart.ts`. `Action.make` with a string tag is the declared form:
23
+ schemas and a stable name, no code.
24
+
25
+ ```ts
26
+ import { Action, Flow } from "@smthrs/flow"
27
+ import { Node } from "@smthrs/plan"
28
+ import * as Schema from "effect/Schema"
29
+
30
+ export const Greet = Action.make("examples/Greet", {
31
+ payload: { name: Schema.String },
32
+ success: Schema.String
33
+ })
34
+
35
+ export const Greeting = Flow.make("examples/Greeting", {
36
+ payload: { name: Schema.String },
37
+ success: Schema.String,
38
+ body: Node.capture(
39
+ { action: Greet.name, implementationVersion: "greeting/v1" },
40
+ (payload) => Greet.call(payload)
41
+ )
42
+ })
43
+ ```
44
+
45
+ `Greet.call(payload)` records one node and runs nothing. It also puts a
46
+ requirement in the node's type, which `Flow.make` reads off the body: the flow
47
+ now says in its own type that it names an implementation it does not carry.
48
+
49
+ ## Attach the implementation and compose the layers
50
+
51
+ `Node.capture` declares every semantic value outside the callback source. Here
52
+ it names the action and versions the imported behavior. Change that version when
53
+ that behavior changes. JavaScript cannot verify capture completeness.
54
+
55
+ `toLayer` is where the code lives. `Interpreter.layerWithImplementations`
56
+ registers the flow and its implementations with stable callback admission. It
57
+ refuses uncaptured callbacks before dispatch. The lower-level `Graph.build` and
58
+ `Interpreter.layer` default to `process-local`, which makes no cross-process
59
+ callback identity guarantee.
60
+
61
+ Compose the layers:
62
+
63
+ ```ts
64
+ import * as NodeCrypto from "@effect/platform-node/NodeCrypto"
65
+ import { FlowEngine } from "@smthrs/engine"
66
+ import { Interpreter } from "@smthrs/flow"
67
+ import * as Effect from "effect/Effect"
68
+ import * as Layer from "effect/Layer"
69
+
70
+ const GreetingLayer = Interpreter.layerWithImplementations(
71
+ Greeting,
72
+ Greet.toLayer(({ name }) => Effect.succeed(`Hello, ${name}.`))
73
+ ).pipe(
74
+ Layer.provideMerge(FlowEngine.layerMemory),
75
+ Layer.provideMerge(NodeCrypto.layer)
76
+ )
77
+ ```
78
+
79
+ `layerWithImplementations` supplies the action registry while building the
80
+ implementation layers. The remaining providers supply the runtime and digest:
81
+
82
+ - `FlowEngine.layerMemory` supplies the `FlowRuntime` port. Swap it for the
83
+ durable engine from [`@smthrs/engine-store`](/api/engine-store) and nothing
84
+ above changes.
85
+ - `NodeCrypto.layer` supplies `Crypto`. Every dispatch is recorded under a
86
+ derived step identity, so the engine needs a digest even in memory.
87
+
88
+ ## Run it
89
+
90
+ `execute` takes the payload and an execution id:
91
+
92
+ ```ts
93
+ export const main: Effect.Effect<string> = Greeting.execute(
94
+ { name: "Ada" },
95
+ { executionId: "greeting-ada-1" }
96
+ ).pipe(
97
+ // A payload that misses the flow's schema is a typed failure, not a defect.
98
+ // This payload is statically valid, so a refusal here would be a bug.
99
+ Effect.orDie,
100
+ Effect.provide(GreetingLayer)
101
+ )
102
+
103
+ console.log(await Effect.runPromise(main))
104
+ ```
105
+
106
+ Run the file with your TypeScript runner. The output is the decoded success
107
+ value:
108
+
109
+ ```text
110
+ Hello, Ada.
111
+ ```
112
+
113
+ ## Run it twice
114
+
115
+ Execute the same flow again under the same execution id. The action does not run
116
+ a second time:
117
+
118
+ ```ts
119
+ export const twice: Effect.Effect<string> = Effect.gen(function*() {
120
+ const run = Effect.orDie(
121
+ Greeting.execute({ name: "Ada" }, { executionId: "greeting-ada-1" })
122
+ )
123
+ yield* run
124
+ return yield* run
125
+ }).pipe(Effect.provide(GreetingLayer))
126
+ ```
127
+
128
+ An execution id names one run. The second call finds the run that already
129
+ settled and answers with its result instead of starting another, and a durable
130
+ engine behaves the same way across a restart: it rebuilds the plan, derives the
131
+ same key for the same node, reads the recorded result, and reaches only the
132
+ steps that never settled. That is what separating the plan from the code buys.
133
+ Identity is a function of the declaration, so a repeat is a read.
134
+
135
+ An execution id is also a claim about what the run is. Reusing one for a
136
+ different flow, or for a different payload, is refused rather than silently
137
+ joined.
138
+
139
+ ## What just happened
140
+
141
+ `Greeting.execute` asked the runtime for an execution under
142
+ `greeting-ada-1`. The interpreter built the graph of the body, walked it, and
143
+ dispatched `examples/Greet` through the engine, which recorded the attempt and
144
+ its result. With a pure body, complete captures, and stable callback admission,
145
+ unchanged source, captures, declarations, and payload reproduce the same plan
146
+ keys across processes. Changed source, captures, or implementation versions
147
+ require a newly planned run.
148
+
149
+ ## Next steps
150
+
151
+ - [Flows and actions](./concepts/flows-and-actions.md): why the implementation
152
+ attaches separately, and what the requirement channel buys you.
153
+ - [Build a body](./guides/build-a-body.md): sequencing, fan-out, branches, and
154
+ recovering from a typed failure.
155
+ - [Testing](./testing.md): the same in-memory composition as a test habit.