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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/LICENSE +21 -0
  3. package/README.md +210 -2
  4. package/THIRD_PARTY_NOTICES.md +52 -0
  5. package/dist/cjs/Action/Action.d.ts +250 -0
  6. package/dist/cjs/Action/Action.d.ts.map +1 -0
  7. package/dist/cjs/Action/Action.js +42 -0
  8. package/dist/cjs/Action/Action.js.map +7 -0
  9. package/dist/cjs/Action/AttemptTimedOut.d.ts +33 -0
  10. package/dist/cjs/Action/AttemptTimedOut.d.ts.map +1 -0
  11. package/dist/cjs/Action/AttemptTimedOut.js +51 -0
  12. package/dist/cjs/Action/AttemptTimedOut.js.map +7 -0
  13. package/dist/cjs/Action/BoundaryMode.d.ts +29 -0
  14. package/dist/cjs/Action/BoundaryMode.d.ts.map +1 -0
  15. package/dist/cjs/Action/BoundaryMode.js +36 -0
  16. package/dist/cjs/Action/BoundaryMode.js.map +7 -0
  17. package/dist/cjs/Action/CacheEnvironment.d.ts +158 -0
  18. package/dist/cjs/Action/CacheEnvironment.d.ts.map +1 -0
  19. package/dist/cjs/Action/CacheEnvironment.js +57 -0
  20. package/dist/cjs/Action/CacheEnvironment.js.map +7 -0
  21. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  22. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  23. package/dist/cjs/Action/ConcurrentKeylessDispatch.js +46 -0
  24. package/dist/cjs/Action/ConcurrentKeylessDispatch.js.map +7 -0
  25. package/dist/cjs/Action/Context.d.ts +131 -0
  26. package/dist/cjs/Action/Context.d.ts.map +1 -0
  27. package/dist/cjs/Action/Context.js +68 -0
  28. package/dist/cjs/Action/Context.js.map +7 -0
  29. package/dist/cjs/Action/DuplicateImplementation.d.ts +20 -0
  30. package/dist/cjs/Action/DuplicateImplementation.d.ts.map +1 -0
  31. package/dist/cjs/Action/DuplicateImplementation.js +46 -0
  32. package/dist/cjs/Action/DuplicateImplementation.js.map +7 -0
  33. package/dist/cjs/Action/FileBoundary.d.ts +59 -0
  34. package/dist/cjs/Action/FileBoundary.d.ts.map +1 -0
  35. package/dist/cjs/Action/FileBoundary.js +81 -0
  36. package/dist/cjs/Action/FileBoundary.js.map +7 -0
  37. package/dist/cjs/Action/FileInput.d.ts +28 -0
  38. package/dist/cjs/Action/FileInput.d.ts.map +1 -0
  39. package/dist/cjs/Action/FileInput.js +42 -0
  40. package/dist/cjs/Action/FileInput.js.map +7 -0
  41. package/dist/cjs/Action/Filegroup.d.ts +16 -0
  42. package/dist/cjs/Action/Filegroup.d.ts.map +1 -0
  43. package/dist/cjs/Action/Filegroup.js +27 -0
  44. package/dist/cjs/Action/Filegroup.js.map +7 -0
  45. package/dist/cjs/Action/Glob.d.ts +8 -0
  46. package/dist/cjs/Action/Glob.d.ts.map +1 -0
  47. package/dist/cjs/Action/Glob.js +28 -0
  48. package/dist/cjs/Action/Glob.js.map +7 -0
  49. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts +26 -0
  50. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  51. package/dist/cjs/Action/ImplementationVersionMismatch.js +45 -0
  52. package/dist/cjs/Action/ImplementationVersionMismatch.js.map +7 -0
  53. package/dist/cjs/Action/Implementations.d.ts +114 -0
  54. package/dist/cjs/Action/Implementations.d.ts.map +1 -0
  55. package/dist/cjs/Action/Implementations.js +65 -0
  56. package/dist/cjs/Action/Implementations.js.map +7 -0
  57. package/dist/cjs/Action/InfraInterrupt.d.ts +26 -0
  58. package/dist/cjs/Action/InfraInterrupt.d.ts.map +1 -0
  59. package/dist/cjs/Action/InfraInterrupt.js +46 -0
  60. package/dist/cjs/Action/InfraInterrupt.js.map +7 -0
  61. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  62. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  63. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js +54 -0
  64. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js.map +7 -0
  65. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  66. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  67. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js +47 -0
  68. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +7 -0
  69. package/dist/cjs/Action/StepIdentity.d.ts +153 -0
  70. package/dist/cjs/Action/StepIdentity.d.ts.map +1 -0
  71. package/dist/cjs/Action/StepIdentity.js +75 -0
  72. package/dist/cjs/Action/StepIdentity.js.map +7 -0
  73. package/dist/cjs/Action/TreeArtifact.d.ts +8 -0
  74. package/dist/cjs/Action/TreeArtifact.d.ts.map +1 -0
  75. package/dist/cjs/Action/TreeArtifact.js +25 -0
  76. package/dist/cjs/Action/TreeArtifact.js.map +7 -0
  77. package/dist/cjs/Action/TypeId.d.ts +8 -0
  78. package/dist/cjs/Action/TypeId.d.ts.map +1 -0
  79. package/dist/cjs/Action/TypeId.js +25 -0
  80. package/dist/cjs/Action/TypeId.js.map +7 -0
  81. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  82. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  83. package/dist/cjs/Action/UncanonicalIdempotencyKey.js +51 -0
  84. package/dist/cjs/Action/UncanonicalIdempotencyKey.js.map +7 -0
  85. package/dist/cjs/Action/idempotencyKey.d.ts +21 -0
  86. package/dist/cjs/Action/idempotencyKey.d.ts.map +1 -0
  87. package/dist/cjs/Action/idempotencyKey.js +59 -0
  88. package/dist/cjs/Action/idempotencyKey.js.map +7 -0
  89. package/dist/cjs/Action/index.d.ts +29 -0
  90. package/dist/cjs/Action/index.d.ts.map +1 -0
  91. package/dist/cjs/Action/index.js +60 -0
  92. package/dist/cjs/Action/index.js.map +7 -0
  93. package/dist/cjs/Action/make.d.ts +128 -0
  94. package/dist/cjs/Action/make.d.ts.map +1 -0
  95. package/dist/cjs/Action/make.js +373 -0
  96. package/dist/cjs/Action/make.js.map +7 -0
  97. package/dist/cjs/Action/raceAll.d.ts +21 -0
  98. package/dist/cjs/Action/raceAll.d.ts.map +1 -0
  99. package/dist/cjs/Action/raceAll.js +46 -0
  100. package/dist/cjs/Action/raceAll.js.map +7 -0
  101. package/dist/cjs/Action/retry.d.ts +19 -0
  102. package/dist/cjs/Action/retry.d.ts.map +1 -0
  103. package/dist/cjs/Action/retry.js +75 -0
  104. package/dist/cjs/Action/retry.js.map +7 -0
  105. package/dist/cjs/Deadline.d.ts +105 -0
  106. package/dist/cjs/Deadline.d.ts.map +1 -0
  107. package/dist/cjs/Deadline.js +104 -0
  108. package/dist/cjs/Deadline.js.map +7 -0
  109. package/dist/cjs/DurableClock.d.ts +61 -0
  110. package/dist/cjs/DurableClock.d.ts.map +1 -0
  111. package/dist/cjs/DurableClock.js +90 -0
  112. package/dist/cjs/DurableClock.js.map +7 -0
  113. package/dist/cjs/DurableDeferred.d.ts +311 -0
  114. package/dist/cjs/DurableDeferred.d.ts.map +1 -0
  115. package/dist/cjs/DurableDeferred.js +322 -0
  116. package/dist/cjs/DurableDeferred.js.map +7 -0
  117. package/dist/cjs/DurableQueue.d.ts +160 -0
  118. package/dist/cjs/DurableQueue.d.ts.map +1 -0
  119. package/dist/cjs/DurableQueue.js +229 -0
  120. package/dist/cjs/DurableQueue.js.map +7 -0
  121. package/dist/cjs/ExternalJob.d.ts +179 -0
  122. package/dist/cjs/ExternalJob.d.ts.map +1 -0
  123. package/dist/cjs/ExternalJob.js +338 -0
  124. package/dist/cjs/ExternalJob.js.map +7 -0
  125. package/dist/cjs/Fault.d.ts +131 -0
  126. package/dist/cjs/Fault.d.ts.map +1 -0
  127. package/dist/cjs/Fault.js +157 -0
  128. package/dist/cjs/Fault.js.map +7 -0
  129. package/dist/cjs/Flow/Annotations.d.ts +245 -0
  130. package/dist/cjs/Flow/Annotations.d.ts.map +1 -0
  131. package/dist/cjs/Flow/Annotations.js +72 -0
  132. package/dist/cjs/Flow/Annotations.js.map +7 -0
  133. package/dist/cjs/Flow/CapabilityCeiling.d.ts +21 -0
  134. package/dist/cjs/Flow/CapabilityCeiling.d.ts.map +1 -0
  135. package/dist/cjs/Flow/CapabilityCeiling.js +49 -0
  136. package/dist/cjs/Flow/CapabilityCeiling.js.map +7 -0
  137. package/dist/cjs/Flow/DeadlineExceeded.d.ts +33 -0
  138. package/dist/cjs/Flow/DeadlineExceeded.d.ts.map +1 -0
  139. package/dist/cjs/Flow/DeadlineExceeded.js +52 -0
  140. package/dist/cjs/Flow/DeadlineExceeded.js.map +7 -0
  141. package/dist/cjs/Flow/ExecutionIdRequired.d.ts +25 -0
  142. package/dist/cjs/Flow/ExecutionIdRequired.d.ts.map +1 -0
  143. package/dist/cjs/Flow/ExecutionIdRequired.js +46 -0
  144. package/dist/cjs/Flow/ExecutionIdRequired.js.map +7 -0
  145. package/dist/cjs/Flow/ExecutionIds.d.ts +80 -0
  146. package/dist/cjs/Flow/ExecutionIds.d.ts.map +1 -0
  147. package/dist/cjs/Flow/ExecutionIds.js +66 -0
  148. package/dist/cjs/Flow/ExecutionIds.js.map +7 -0
  149. package/dist/cjs/Flow/Flow.d.ts +422 -0
  150. package/dist/cjs/Flow/Flow.d.ts.map +1 -0
  151. package/dist/cjs/Flow/Flow.js +17 -0
  152. package/dist/cjs/Flow/Flow.js.map +7 -0
  153. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts +35 -0
  154. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  155. package/dist/cjs/Flow/MaxRoundsExceeded.js +50 -0
  156. package/dist/cjs/Flow/MaxRoundsExceeded.js.map +7 -0
  157. package/dist/cjs/Flow/Outcome.d.ts +162 -0
  158. package/dist/cjs/Flow/Outcome.d.ts.map +1 -0
  159. package/dist/cjs/Flow/Outcome.js +80 -0
  160. package/dist/cjs/Flow/Outcome.js.map +7 -0
  161. package/dist/cjs/Flow/Result.d.ts +186 -0
  162. package/dist/cjs/Flow/Result.d.ts.map +1 -0
  163. package/dist/cjs/Flow/Result.js +159 -0
  164. package/dist/cjs/Flow/Result.js.map +7 -0
  165. package/dist/cjs/Flow/Runtime.d.ts +98 -0
  166. package/dist/cjs/Flow/Runtime.d.ts.map +1 -0
  167. package/dist/cjs/Flow/Runtime.js +160 -0
  168. package/dist/cjs/Flow/Runtime.js.map +7 -0
  169. package/dist/cjs/Flow/TypeId.d.ts +8 -0
  170. package/dist/cjs/Flow/TypeId.d.ts.map +1 -0
  171. package/dist/cjs/Flow/TypeId.js +25 -0
  172. package/dist/cjs/Flow/TypeId.js.map +7 -0
  173. package/dist/cjs/Flow/index.d.ts +17 -0
  174. package/dist/cjs/Flow/index.d.ts.map +1 -0
  175. package/dist/cjs/Flow/index.js +29 -0
  176. package/dist/cjs/Flow/index.js.map +7 -0
  177. package/dist/cjs/Flow/internal.d.ts +34 -0
  178. package/dist/cjs/Flow/internal.d.ts.map +1 -0
  179. package/dist/cjs/Flow/internal.js +187 -0
  180. package/dist/cjs/Flow/internal.js.map +7 -0
  181. package/dist/cjs/Flow/make.d.ts +134 -0
  182. package/dist/cjs/Flow/make.d.ts.map +1 -0
  183. package/dist/cjs/Flow/make.js +104 -0
  184. package/dist/cjs/Flow/make.js.map +7 -0
  185. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  186. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  187. package/dist/cjs/FlowRuntime/CancelRequestFailed.js +51 -0
  188. package/dist/cjs/FlowRuntime/CancelRequestFailed.js.map +7 -0
  189. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  190. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  191. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js +55 -0
  192. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js.map +7 -0
  193. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  194. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  195. package/dist/cjs/FlowRuntime/FlowCycleDetected.js +49 -0
  196. package/dist/cjs/FlowRuntime/FlowCycleDetected.js.map +7 -0
  197. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  198. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  199. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js +53 -0
  200. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js.map +7 -0
  201. package/dist/cjs/FlowRuntime/FlowInstance.d.ts +115 -0
  202. package/dist/cjs/FlowRuntime/FlowInstance.d.ts.map +1 -0
  203. package/dist/cjs/FlowRuntime/FlowInstance.js +37 -0
  204. package/dist/cjs/FlowRuntime/FlowInstance.js.map +7 -0
  205. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts +198 -0
  206. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  207. package/dist/cjs/FlowRuntime/FlowRuntime.js +37 -0
  208. package/dist/cjs/FlowRuntime/FlowRuntime.js.map +7 -0
  209. package/dist/cjs/FlowRuntime/NodeRecord.d.ts +175 -0
  210. package/dist/cjs/FlowRuntime/NodeRecord.d.ts.map +1 -0
  211. package/dist/cjs/FlowRuntime/NodeRecord.js +17 -0
  212. package/dist/cjs/FlowRuntime/NodeRecord.js.map +7 -0
  213. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  214. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  215. package/dist/cjs/FlowRuntime/WaitingAnnotation.js +53 -0
  216. package/dist/cjs/FlowRuntime/WaitingAnnotation.js.map +7 -0
  217. package/dist/cjs/FlowRuntime/index.d.ts +14 -0
  218. package/dist/cjs/FlowRuntime/index.d.ts.map +1 -0
  219. package/dist/cjs/FlowRuntime/index.js +26 -0
  220. package/dist/cjs/FlowRuntime/index.js.map +7 -0
  221. package/dist/cjs/Graph.d.ts +325 -0
  222. package/dist/cjs/Graph.d.ts.map +1 -0
  223. package/dist/cjs/Graph.js +1021 -0
  224. package/dist/cjs/Graph.js.map +7 -0
  225. package/dist/cjs/HumanTask.d.ts +440 -0
  226. package/dist/cjs/HumanTask.d.ts.map +1 -0
  227. package/dist/cjs/HumanTask.js +413 -0
  228. package/dist/cjs/HumanTask.js.map +7 -0
  229. package/dist/cjs/Interpreter.d.ts +222 -0
  230. package/dist/cjs/Interpreter.d.ts.map +1 -0
  231. package/dist/cjs/Interpreter.js +888 -0
  232. package/dist/cjs/Interpreter.js.map +7 -0
  233. package/dist/cjs/Poll.d.ts +238 -0
  234. package/dist/cjs/Poll.d.ts.map +1 -0
  235. package/dist/cjs/Poll.js +150 -0
  236. package/dist/cjs/Poll.js.map +7 -0
  237. package/dist/cjs/RetryPolicy.d.ts +273 -0
  238. package/dist/cjs/RetryPolicy.d.ts.map +1 -0
  239. package/dist/cjs/RetryPolicy.js +251 -0
  240. package/dist/cjs/RetryPolicy.js.map +7 -0
  241. package/dist/cjs/Sleep.d.ts +98 -0
  242. package/dist/cjs/Sleep.d.ts.map +1 -0
  243. package/dist/cjs/Sleep.js +133 -0
  244. package/dist/cjs/Sleep.js.map +7 -0
  245. package/dist/cjs/Stall.d.ts +173 -0
  246. package/dist/cjs/Stall.d.ts.map +1 -0
  247. package/dist/cjs/Stall.js +92 -0
  248. package/dist/cjs/Stall.js.map +7 -0
  249. package/dist/cjs/WaitFor.d.ts +109 -0
  250. package/dist/cjs/WaitFor.d.ts.map +1 -0
  251. package/dist/cjs/WaitFor.js +117 -0
  252. package/dist/cjs/WaitFor.js.map +7 -0
  253. package/dist/cjs/index.d.ts +107 -0
  254. package/dist/cjs/index.d.ts.map +1 -0
  255. package/dist/cjs/index.js +69 -0
  256. package/dist/cjs/index.js.map +7 -0
  257. package/dist/cjs/internal/BoundedJson.d.ts +48 -0
  258. package/dist/cjs/internal/BoundedJson.d.ts.map +1 -0
  259. package/dist/cjs/internal/BoundedJson.js +96 -0
  260. package/dist/cjs/internal/BoundedJson.js.map +7 -0
  261. package/dist/cjs/internal/DeclarationSite.d.ts +135 -0
  262. package/dist/cjs/internal/DeclarationSite.d.ts.map +1 -0
  263. package/dist/cjs/internal/DeclarationSite.js +89 -0
  264. package/dist/cjs/internal/DeclarationSite.js.map +7 -0
  265. package/dist/cjs/internal/Declarations.d.ts +35 -0
  266. package/dist/cjs/internal/Declarations.d.ts.map +1 -0
  267. package/dist/cjs/internal/Declarations.js +50 -0
  268. package/dist/cjs/internal/Declarations.js.map +7 -0
  269. package/dist/cjs/internal/ExecutionMiddleware.d.ts +21 -0
  270. package/dist/cjs/internal/ExecutionMiddleware.d.ts.map +1 -0
  271. package/dist/cjs/internal/ExecutionMiddleware.js +39 -0
  272. package/dist/cjs/internal/ExecutionMiddleware.js.map +7 -0
  273. package/dist/cjs/internal/JsonSchemaSubset.d.ts +133 -0
  274. package/dist/cjs/internal/JsonSchemaSubset.d.ts.map +1 -0
  275. package/dist/cjs/internal/JsonSchemaSubset.js +229 -0
  276. package/dist/cjs/internal/JsonSchemaSubset.js.map +7 -0
  277. package/dist/cjs/internal/OutcomeMarker.d.ts +18 -0
  278. package/dist/cjs/internal/OutcomeMarker.d.ts.map +1 -0
  279. package/dist/cjs/internal/OutcomeMarker.js +27 -0
  280. package/dist/cjs/internal/OutcomeMarker.js.map +7 -0
  281. package/dist/cjs/package.json +1 -0
  282. package/dist/esm/Action/Action.d.ts +250 -0
  283. package/dist/esm/Action/Action.d.ts.map +1 -0
  284. package/dist/esm/Action/Action.js +30 -0
  285. package/dist/esm/Action/Action.js.map +1 -0
  286. package/dist/esm/Action/AttemptTimedOut.d.ts +33 -0
  287. package/dist/esm/Action/AttemptTimedOut.d.ts.map +1 -0
  288. package/dist/esm/Action/AttemptTimedOut.js +32 -0
  289. package/dist/esm/Action/AttemptTimedOut.js.map +1 -0
  290. package/dist/esm/Action/BoundaryMode.d.ts +29 -0
  291. package/dist/esm/Action/BoundaryMode.d.ts.map +1 -0
  292. package/dist/esm/Action/BoundaryMode.js +23 -0
  293. package/dist/esm/Action/BoundaryMode.js.map +1 -0
  294. package/dist/esm/Action/CacheEnvironment.d.ts +158 -0
  295. package/dist/esm/Action/CacheEnvironment.d.ts.map +1 -0
  296. package/dist/esm/Action/CacheEnvironment.js +130 -0
  297. package/dist/esm/Action/CacheEnvironment.js.map +1 -0
  298. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  299. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  300. package/dist/esm/Action/ConcurrentKeylessDispatch.js +33 -0
  301. package/dist/esm/Action/ConcurrentKeylessDispatch.js.map +1 -0
  302. package/dist/esm/Action/Context.d.ts +131 -0
  303. package/dist/esm/Action/Context.d.ts.map +1 -0
  304. package/dist/esm/Action/Context.js +99 -0
  305. package/dist/esm/Action/Context.js.map +1 -0
  306. package/dist/esm/Action/DuplicateImplementation.d.ts +20 -0
  307. package/dist/esm/Action/DuplicateImplementation.d.ts.map +1 -0
  308. package/dist/esm/Action/DuplicateImplementation.js +20 -0
  309. package/dist/esm/Action/DuplicateImplementation.js.map +1 -0
  310. package/dist/esm/Action/FileBoundary.d.ts +59 -0
  311. package/dist/esm/Action/FileBoundary.d.ts.map +1 -0
  312. package/dist/esm/Action/FileBoundary.js +60 -0
  313. package/dist/esm/Action/FileBoundary.js.map +1 -0
  314. package/dist/esm/Action/FileInput.d.ts +28 -0
  315. package/dist/esm/Action/FileInput.d.ts.map +1 -0
  316. package/dist/esm/Action/FileInput.js +32 -0
  317. package/dist/esm/Action/FileInput.js.map +1 -0
  318. package/dist/esm/Action/Filegroup.d.ts +16 -0
  319. package/dist/esm/Action/Filegroup.d.ts.map +1 -0
  320. package/dist/esm/Action/Filegroup.js +15 -0
  321. package/dist/esm/Action/Filegroup.js.map +1 -0
  322. package/dist/esm/Action/Glob.d.ts +8 -0
  323. package/dist/esm/Action/Glob.d.ts.map +1 -0
  324. package/dist/esm/Action/Glob.js +7 -0
  325. package/dist/esm/Action/Glob.js.map +1 -0
  326. package/dist/esm/Action/ImplementationVersionMismatch.d.ts +26 -0
  327. package/dist/esm/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  328. package/dist/esm/Action/ImplementationVersionMismatch.js +24 -0
  329. package/dist/esm/Action/ImplementationVersionMismatch.js.map +1 -0
  330. package/dist/esm/Action/Implementations.d.ts +114 -0
  331. package/dist/esm/Action/Implementations.d.ts.map +1 -0
  332. package/dist/esm/Action/Implementations.js +94 -0
  333. package/dist/esm/Action/Implementations.js.map +1 -0
  334. package/dist/esm/Action/InfraInterrupt.d.ts +26 -0
  335. package/dist/esm/Action/InfraInterrupt.d.ts.map +1 -0
  336. package/dist/esm/Action/InfraInterrupt.js +25 -0
  337. package/dist/esm/Action/InfraInterrupt.js.map +1 -0
  338. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  339. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  340. package/dist/esm/Action/InfraInterruptRetriesExhausted.js +32 -0
  341. package/dist/esm/Action/InfraInterruptRetriesExhausted.js.map +1 -0
  342. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  343. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  344. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js +25 -0
  345. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +1 -0
  346. package/dist/esm/Action/StepIdentity.d.ts +153 -0
  347. package/dist/esm/Action/StepIdentity.d.ts.map +1 -0
  348. package/dist/esm/Action/StepIdentity.js +139 -0
  349. package/dist/esm/Action/StepIdentity.js.map +1 -0
  350. package/dist/esm/Action/TreeArtifact.d.ts +8 -0
  351. package/dist/esm/Action/TreeArtifact.d.ts.map +1 -0
  352. package/dist/esm/Action/TreeArtifact.js +7 -0
  353. package/dist/esm/Action/TreeArtifact.js.map +1 -0
  354. package/dist/esm/Action/TypeId.d.ts +8 -0
  355. package/dist/esm/Action/TypeId.d.ts.map +1 -0
  356. package/dist/esm/Action/TypeId.js +9 -0
  357. package/dist/esm/Action/TypeId.js.map +1 -0
  358. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  359. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  360. package/dist/esm/Action/UncanonicalIdempotencyKey.js +31 -0
  361. package/dist/esm/Action/UncanonicalIdempotencyKey.js.map +1 -0
  362. package/dist/esm/Action/idempotencyKey.d.ts +21 -0
  363. package/dist/esm/Action/idempotencyKey.d.ts.map +1 -0
  364. package/dist/esm/Action/idempotencyKey.js +50 -0
  365. package/dist/esm/Action/idempotencyKey.js.map +1 -0
  366. package/dist/esm/Action/index.d.ts +29 -0
  367. package/dist/esm/Action/index.d.ts.map +1 -0
  368. package/dist/esm/Action/index.js +30 -0
  369. package/dist/esm/Action/index.js.map +1 -0
  370. package/dist/esm/Action/make.d.ts +128 -0
  371. package/dist/esm/Action/make.d.ts.map +1 -0
  372. package/dist/esm/Action/make.js +405 -0
  373. package/dist/esm/Action/make.js.map +1 -0
  374. package/dist/esm/Action/raceAll.d.ts +21 -0
  375. package/dist/esm/Action/raceAll.d.ts.map +1 -0
  376. package/dist/esm/Action/raceAll.js +20 -0
  377. package/dist/esm/Action/raceAll.js.map +1 -0
  378. package/dist/esm/Action/retry.d.ts +19 -0
  379. package/dist/esm/Action/retry.d.ts.map +1 -0
  380. package/dist/esm/Action/retry.js +72 -0
  381. package/dist/esm/Action/retry.js.map +1 -0
  382. package/dist/esm/Deadline.d.ts +105 -0
  383. package/dist/esm/Deadline.d.ts.map +1 -0
  384. package/dist/esm/Deadline.js +152 -0
  385. package/dist/esm/Deadline.js.map +1 -0
  386. package/dist/esm/DurableClock.d.ts +61 -0
  387. package/dist/esm/DurableClock.d.ts.map +1 -0
  388. package/dist/esm/DurableClock.js +75 -0
  389. package/dist/esm/DurableClock.js.map +1 -0
  390. package/dist/esm/DurableDeferred.d.ts +311 -0
  391. package/dist/esm/DurableDeferred.d.ts.map +1 -0
  392. package/dist/esm/DurableDeferred.js +357 -0
  393. package/dist/esm/DurableDeferred.js.map +1 -0
  394. package/dist/esm/DurableQueue.d.ts +160 -0
  395. package/dist/esm/DurableQueue.d.ts.map +1 -0
  396. package/dist/esm/DurableQueue.js +303 -0
  397. package/dist/esm/DurableQueue.js.map +1 -0
  398. package/dist/esm/ExternalJob.d.ts +179 -0
  399. package/dist/esm/ExternalJob.d.ts.map +1 -0
  400. package/dist/esm/ExternalJob.js +296 -0
  401. package/dist/esm/ExternalJob.js.map +1 -0
  402. package/dist/esm/Fault.d.ts +131 -0
  403. package/dist/esm/Fault.d.ts.map +1 -0
  404. package/dist/esm/Fault.js +198 -0
  405. package/dist/esm/Fault.js.map +1 -0
  406. package/dist/esm/Flow/Annotations.d.ts +245 -0
  407. package/dist/esm/Flow/Annotations.d.ts.map +1 -0
  408. package/dist/esm/Flow/Annotations.js +110 -0
  409. package/dist/esm/Flow/Annotations.js.map +1 -0
  410. package/dist/esm/Flow/CapabilityCeiling.d.ts +21 -0
  411. package/dist/esm/Flow/CapabilityCeiling.d.ts.map +1 -0
  412. package/dist/esm/Flow/CapabilityCeiling.js +27 -0
  413. package/dist/esm/Flow/CapabilityCeiling.js.map +1 -0
  414. package/dist/esm/Flow/DeadlineExceeded.d.ts +33 -0
  415. package/dist/esm/Flow/DeadlineExceeded.d.ts.map +1 -0
  416. package/dist/esm/Flow/DeadlineExceeded.js +34 -0
  417. package/dist/esm/Flow/DeadlineExceeded.js.map +1 -0
  418. package/dist/esm/Flow/ExecutionIdRequired.d.ts +25 -0
  419. package/dist/esm/Flow/ExecutionIdRequired.d.ts.map +1 -0
  420. package/dist/esm/Flow/ExecutionIdRequired.js +30 -0
  421. package/dist/esm/Flow/ExecutionIdRequired.js.map +1 -0
  422. package/dist/esm/Flow/ExecutionIds.d.ts +80 -0
  423. package/dist/esm/Flow/ExecutionIds.d.ts.map +1 -0
  424. package/dist/esm/Flow/ExecutionIds.js +91 -0
  425. package/dist/esm/Flow/ExecutionIds.js.map +1 -0
  426. package/dist/esm/Flow/Flow.d.ts +422 -0
  427. package/dist/esm/Flow/Flow.d.ts.map +1 -0
  428. package/dist/esm/Flow/Flow.js +3 -0
  429. package/dist/esm/Flow/Flow.js.map +1 -0
  430. package/dist/esm/Flow/MaxRoundsExceeded.d.ts +35 -0
  431. package/dist/esm/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  432. package/dist/esm/Flow/MaxRoundsExceeded.js +34 -0
  433. package/dist/esm/Flow/MaxRoundsExceeded.js.map +1 -0
  434. package/dist/esm/Flow/Outcome.d.ts +162 -0
  435. package/dist/esm/Flow/Outcome.d.ts.map +1 -0
  436. package/dist/esm/Flow/Outcome.js +115 -0
  437. package/dist/esm/Flow/Outcome.js.map +1 -0
  438. package/dist/esm/Flow/Result.d.ts +186 -0
  439. package/dist/esm/Flow/Result.d.ts.map +1 -0
  440. package/dist/esm/Flow/Result.js +171 -0
  441. package/dist/esm/Flow/Result.js.map +1 -0
  442. package/dist/esm/Flow/Runtime.d.ts +98 -0
  443. package/dist/esm/Flow/Runtime.d.ts.map +1 -0
  444. package/dist/esm/Flow/Runtime.js +231 -0
  445. package/dist/esm/Flow/Runtime.js.map +1 -0
  446. package/dist/esm/Flow/TypeId.d.ts +8 -0
  447. package/dist/esm/Flow/TypeId.d.ts.map +1 -0
  448. package/dist/esm/Flow/TypeId.js +9 -0
  449. package/dist/esm/Flow/TypeId.js.map +1 -0
  450. package/dist/esm/Flow/index.d.ts +17 -0
  451. package/dist/esm/Flow/index.d.ts.map +1 -0
  452. package/dist/esm/Flow/index.js +18 -0
  453. package/dist/esm/Flow/index.js.map +1 -0
  454. package/dist/esm/Flow/internal.d.ts +34 -0
  455. package/dist/esm/Flow/internal.d.ts.map +1 -0
  456. package/dist/esm/Flow/internal.js +149 -0
  457. package/dist/esm/Flow/internal.js.map +1 -0
  458. package/dist/esm/Flow/make.d.ts +134 -0
  459. package/dist/esm/Flow/make.d.ts.map +1 -0
  460. package/dist/esm/Flow/make.js +106 -0
  461. package/dist/esm/Flow/make.js.map +1 -0
  462. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  463. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  464. package/dist/esm/FlowRuntime/CancelRequestFailed.js +53 -0
  465. package/dist/esm/FlowRuntime/CancelRequestFailed.js.map +1 -0
  466. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  467. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  468. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js +24 -0
  469. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js.map +1 -0
  470. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  471. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  472. package/dist/esm/FlowRuntime/FlowCycleDetected.js +35 -0
  473. package/dist/esm/FlowRuntime/FlowCycleDetected.js.map +1 -0
  474. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  475. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  476. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js +40 -0
  477. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js.map +1 -0
  478. package/dist/esm/FlowRuntime/FlowInstance.d.ts +115 -0
  479. package/dist/esm/FlowRuntime/FlowInstance.d.ts.map +1 -0
  480. package/dist/esm/FlowRuntime/FlowInstance.js +24 -0
  481. package/dist/esm/FlowRuntime/FlowInstance.js.map +1 -0
  482. package/dist/esm/FlowRuntime/FlowRuntime.d.ts +198 -0
  483. package/dist/esm/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  484. package/dist/esm/FlowRuntime/FlowRuntime.js +34 -0
  485. package/dist/esm/FlowRuntime/FlowRuntime.js.map +1 -0
  486. package/dist/esm/FlowRuntime/NodeRecord.d.ts +175 -0
  487. package/dist/esm/FlowRuntime/NodeRecord.d.ts.map +1 -0
  488. package/dist/esm/FlowRuntime/NodeRecord.js +21 -0
  489. package/dist/esm/FlowRuntime/NodeRecord.js.map +1 -0
  490. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  491. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  492. package/dist/esm/FlowRuntime/WaitingAnnotation.js +53 -0
  493. package/dist/esm/FlowRuntime/WaitingAnnotation.js.map +1 -0
  494. package/dist/esm/FlowRuntime/index.d.ts +14 -0
  495. package/dist/esm/FlowRuntime/index.d.ts.map +1 -0
  496. package/dist/esm/FlowRuntime/index.js +15 -0
  497. package/dist/esm/FlowRuntime/index.js.map +1 -0
  498. package/dist/esm/Graph.d.ts +325 -0
  499. package/dist/esm/Graph.d.ts.map +1 -0
  500. package/dist/esm/Graph.js +1483 -0
  501. package/dist/esm/Graph.js.map +1 -0
  502. package/dist/esm/HumanTask.d.ts +440 -0
  503. package/dist/esm/HumanTask.d.ts.map +1 -0
  504. package/dist/esm/HumanTask.js +794 -0
  505. package/dist/esm/HumanTask.js.map +1 -0
  506. package/dist/esm/Interpreter.d.ts +222 -0
  507. package/dist/esm/Interpreter.d.ts.map +1 -0
  508. package/dist/esm/Interpreter.js +1269 -0
  509. package/dist/esm/Interpreter.js.map +1 -0
  510. package/dist/esm/Poll.d.ts +238 -0
  511. package/dist/esm/Poll.d.ts.map +1 -0
  512. package/dist/esm/Poll.js +282 -0
  513. package/dist/esm/Poll.js.map +1 -0
  514. package/dist/esm/RetryPolicy.d.ts +273 -0
  515. package/dist/esm/RetryPolicy.d.ts.map +1 -0
  516. package/dist/esm/RetryPolicy.js +429 -0
  517. package/dist/esm/RetryPolicy.js.map +1 -0
  518. package/dist/esm/Sleep.d.ts +98 -0
  519. package/dist/esm/Sleep.d.ts.map +1 -0
  520. package/dist/esm/Sleep.js +230 -0
  521. package/dist/esm/Sleep.js.map +1 -0
  522. package/dist/esm/Stall.d.ts +173 -0
  523. package/dist/esm/Stall.d.ts.map +1 -0
  524. package/dist/esm/Stall.js +138 -0
  525. package/dist/esm/Stall.js.map +1 -0
  526. package/dist/esm/WaitFor.d.ts +109 -0
  527. package/dist/esm/WaitFor.d.ts.map +1 -0
  528. package/dist/esm/WaitFor.js +184 -0
  529. package/dist/esm/WaitFor.js.map +1 -0
  530. package/dist/esm/index.d.ts +107 -0
  531. package/dist/esm/index.d.ts.map +1 -0
  532. package/dist/esm/index.js +108 -0
  533. package/dist/esm/index.js.map +1 -0
  534. package/dist/esm/internal/BoundedJson.d.ts +48 -0
  535. package/dist/esm/internal/BoundedJson.d.ts.map +1 -0
  536. package/dist/esm/internal/BoundedJson.js +107 -0
  537. package/dist/esm/internal/BoundedJson.js.map +1 -0
  538. package/dist/esm/internal/DeclarationSite.d.ts +135 -0
  539. package/dist/esm/internal/DeclarationSite.d.ts.map +1 -0
  540. package/dist/esm/internal/DeclarationSite.js +196 -0
  541. package/dist/esm/internal/DeclarationSite.js.map +1 -0
  542. package/dist/esm/internal/Declarations.d.ts +35 -0
  543. package/dist/esm/internal/Declarations.d.ts.map +1 -0
  544. package/dist/esm/internal/Declarations.js +43 -0
  545. package/dist/esm/internal/Declarations.js.map +1 -0
  546. package/dist/esm/internal/ExecutionMiddleware.d.ts +21 -0
  547. package/dist/esm/internal/ExecutionMiddleware.d.ts.map +1 -0
  548. package/dist/esm/internal/ExecutionMiddleware.js +13 -0
  549. package/dist/esm/internal/ExecutionMiddleware.js.map +1 -0
  550. package/dist/esm/internal/JsonSchemaSubset.d.ts +133 -0
  551. package/dist/esm/internal/JsonSchemaSubset.d.ts.map +1 -0
  552. package/dist/esm/internal/JsonSchemaSubset.js +363 -0
  553. package/dist/esm/internal/JsonSchemaSubset.js.map +1 -0
  554. package/dist/esm/internal/OutcomeMarker.d.ts +18 -0
  555. package/dist/esm/internal/OutcomeMarker.d.ts.map +1 -0
  556. package/dist/esm/internal/OutcomeMarker.js +18 -0
  557. package/dist/esm/internal/OutcomeMarker.js.map +1 -0
  558. package/docs/README.md +150 -0
  559. package/docs/api.md +436 -0
  560. package/docs/concepts/bodies-and-plans.md +157 -0
  561. package/docs/concepts/execution-identity.md +142 -0
  562. package/docs/concepts/flows-and-actions.md +129 -0
  563. package/docs/concepts/suspension-and-replay.md +130 -0
  564. package/docs/concepts/the-runtime-port.md +110 -0
  565. package/docs/concepts/trampoline-rounds.md +151 -0
  566. package/docs/guides/ask-a-person.md +184 -0
  567. package/docs/guides/build-a-body.md +161 -0
  568. package/docs/guides/cancel-and-roll-back.md +112 -0
  569. package/docs/guides/implement-an-action.md +147 -0
  570. package/docs/guides/inspect-the-plan.md +154 -0
  571. package/docs/guides/poll-until-ready.md +167 -0
  572. package/docs/guides/queue-work-to-a-worker.md +122 -0
  573. package/docs/guides/retry-a-failing-action.md +243 -0
  574. package/docs/guides/reuse-a-recorded-result.md +122 -0
  575. package/docs/guides/run-a-child-flow.md +108 -0
  576. package/docs/guides/run-an-external-job.md +86 -0
  577. package/docs/guides/use-a-prompt.md +38 -0
  578. package/docs/guides/wait-for-a-deadline.md +141 -0
  579. package/docs/guides/wait-for-an-external-signal.md +151 -0
  580. package/docs/installation.md +82 -0
  581. package/docs/quickstart.md +155 -0
  582. package/docs/reference/flow.md +1831 -0
  583. package/docs/testing.md +157 -0
  584. package/docs/troubleshooting.md +286 -0
  585. package/package.json +327 -3
  586. package/src/Action/Action.ts +333 -0
  587. package/src/Action/AttemptTimedOut.ts +37 -0
  588. package/src/Action/BoundaryMode.ts +33 -0
  589. package/src/Action/CacheEnvironment.ts +170 -0
  590. package/src/Action/ConcurrentKeylessDispatch.ts +38 -0
  591. package/src/Action/Context.ts +156 -0
  592. package/src/Action/DuplicateImplementation.ts +24 -0
  593. package/src/Action/FileBoundary.ts +77 -0
  594. package/src/Action/FileInput.ts +42 -0
  595. package/src/Action/Filegroup.ts +16 -0
  596. package/src/Action/Glob.ts +8 -0
  597. package/src/Action/ImplementationVersionMismatch.ts +27 -0
  598. package/src/Action/Implementations.ts +149 -0
  599. package/src/Action/InfraInterrupt.ts +30 -0
  600. package/src/Action/InfraInterruptRetriesExhausted.ts +37 -0
  601. package/src/Action/IrreversibleRetryRequiresIdempotencyKey.ts +32 -0
  602. package/src/Action/StepIdentity.ts +219 -0
  603. package/src/Action/TreeArtifact.ts +8 -0
  604. package/src/Action/TypeId.ts +9 -0
  605. package/src/Action/UncanonicalIdempotencyKey.ts +36 -0
  606. package/src/Action/idempotencyKey.ts +67 -0
  607. package/src/Action/index.ts +31 -0
  608. package/src/Action/make.ts +657 -0
  609. package/src/Action/raceAll.ts +48 -0
  610. package/src/Action/retry.ts +92 -0
  611. package/src/Deadline.ts +185 -0
  612. package/src/DurableClock.ts +133 -0
  613. package/src/DurableDeferred.ts +753 -0
  614. package/src/DurableQueue.ts +519 -0
  615. package/src/ExternalJob.ts +432 -0
  616. package/src/Fault.ts +279 -0
  617. package/src/Flow/Annotations.ts +151 -0
  618. package/src/Flow/CapabilityCeiling.ts +37 -0
  619. package/src/Flow/DeadlineExceeded.ts +40 -0
  620. package/src/Flow/ExecutionIdRequired.ts +36 -0
  621. package/src/Flow/ExecutionIds.ts +133 -0
  622. package/src/Flow/Flow.ts +576 -0
  623. package/src/Flow/MaxRoundsExceeded.ts +39 -0
  624. package/src/Flow/Outcome.ts +179 -0
  625. package/src/Flow/Result.ts +284 -0
  626. package/src/Flow/Runtime.ts +309 -0
  627. package/src/Flow/TypeId.ts +9 -0
  628. package/src/Flow/index.ts +19 -0
  629. package/src/Flow/internal.ts +237 -0
  630. package/src/Flow/make.ts +279 -0
  631. package/src/FlowRuntime/CancelRequestFailed.ts +56 -0
  632. package/src/FlowRuntime/ExecutionIdentityConflict.ts +32 -0
  633. package/src/FlowRuntime/FlowCycleDetected.ts +41 -0
  634. package/src/FlowRuntime/FlowExecutionNotFound.ts +46 -0
  635. package/src/FlowRuntime/FlowInstance.ts +128 -0
  636. package/src/FlowRuntime/FlowRuntime.ts +333 -0
  637. package/src/FlowRuntime/NodeRecord.ts +183 -0
  638. package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
  639. package/src/FlowRuntime/index.ts +17 -0
  640. package/src/Graph.ts +1862 -0
  641. package/src/HumanTask.ts +1003 -0
  642. package/src/Interpreter.ts +1593 -0
  643. package/src/Poll.ts +414 -0
  644. package/src/RetryPolicy.ts +550 -0
  645. package/src/Sleep.ts +267 -0
  646. package/src/Stall.ts +217 -0
  647. package/src/WaitFor.ts +228 -0
  648. package/src/index.ts +125 -0
  649. package/src/internal/BoundedJson.ts +109 -0
  650. package/src/internal/DeclarationSite.ts +214 -0
  651. package/src/internal/Declarations.ts +49 -0
  652. package/src/internal/ExecutionMiddleware.ts +29 -0
  653. package/src/internal/JsonSchemaSubset.ts +392 -0
  654. package/src/internal/OutcomeMarker.ts +19 -0
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Durable external work as ordinary actions, handoffs and parked timers.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import * as Node from "@smthrs/plan/Node";
7
+ import * as Cause from "effect/Cause";
8
+ import * as Duration from "effect/Duration";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Layer from "effect/Layer";
11
+ import * as Schema from "effect/Schema";
12
+ import * as Action from "./Action/index.ts";
13
+ import * as Flow from "./Flow/index.ts";
14
+ import { FlowInstance } from "./FlowRuntime/FlowInstance.ts";
15
+ import * as Sleep from "./Sleep.ts";
16
+ /**
17
+ * External process observation.
18
+ * @category schemas
19
+ * @since 1.0.0
20
+ */
21
+ export declare const Status: Schema.Union<readonly [Schema.Struct<{
22
+ readonly _tag: Schema.Literal<"Running">;
23
+ }>, Schema.Struct<{
24
+ readonly _tag: Schema.Literal<"Exited">;
25
+ readonly exitCode: Schema.Int;
26
+ }>, Schema.Struct<{
27
+ readonly _tag: Schema.Literal<"Lost">;
28
+ }>]>;
29
+ /**
30
+ * Decoded external process observation.
31
+ * @category models
32
+ * @since 1.0.0
33
+ */
34
+ export type Status = typeof Status.Type;
35
+ /**
36
+ * Decoded external process observation.
37
+ * @category models
38
+ * @since 1.0.0
39
+ */
40
+ export type Exited = Extract<Status, {
41
+ readonly _tag: "Exited";
42
+ }>;
43
+ declare const Again_base: Schema.Class<Again, Schema.TaggedStruct<"@smthrs/flow/ExternalJobAgain", {
44
+ readonly message: Schema.String;
45
+ }>, Cause.YieldableError>;
46
+ /**
47
+ * A collected exit that can be replaced.
48
+ *
49
+ * @category errors
50
+ * @since 1.0.0
51
+ */
52
+ export declare class Again extends Again_base {
53
+ }
54
+ declare const ExternalJobLost_base: Schema.Class<ExternalJobLost, Schema.TaggedStruct<"@smthrs/flow/ExternalJobLost", {
55
+ readonly key: Schema.String;
56
+ readonly message: Schema.String;
57
+ }>, Cause.YieldableError>;
58
+ /**
59
+ * No worker or exit receipt remains.
60
+ *
61
+ * @category errors
62
+ * @since 1.0.0
63
+ */
64
+ export declare class ExternalJobLost extends ExternalJobLost_base {
65
+ }
66
+ declare const ExternalJobTimedOut_base: Schema.Class<ExternalJobTimedOut, Schema.TaggedStruct<"@smthrs/flow/ExternalJobTimedOut", {
67
+ readonly key: Schema.String;
68
+ readonly message: Schema.String;
69
+ }>, Cause.YieldableError>;
70
+ /**
71
+ * The deadline anchored before initial start elapsed.
72
+ *
73
+ * @category errors
74
+ * @since 1.0.0
75
+ */
76
+ export declare class ExternalJobTimedOut extends ExternalJobTimedOut_base {
77
+ }
78
+ /**
79
+ * The adapter's full typed failure union belongs in make's error schema.
80
+ *
81
+ * @category models
82
+ * @since 1.0.0
83
+ */
84
+ export interface Operations<P, H, A, E, R> {
85
+ readonly start: (payload: P, key: string) => Effect.Effect<H, E, R>;
86
+ readonly status: (handle: H, key: string) => Effect.Effect<Status, E, R>;
87
+ readonly collect: (handle: H, key: string, exited: Exited) => Effect.Effect<A, E | Again, R>;
88
+ readonly cancel: (handle: H, key: string) => Effect.Effect<void, never, R>;
89
+ }
90
+ /**
91
+ * Create-or-get by execution id and generation. Private ordinary flows carry
92
+ * journaled state; initial callers cannot supply a key or continuation handle.
93
+ * `restarts` counts replacement generations; zero permits only g1.
94
+ * @category constructors
95
+ * @since 1.0.0
96
+ */
97
+ export declare const make: <const Tag extends string, P extends Schema.Struct.Fields | Flow.AnyStructSchema, H extends Schema.Top, A extends Schema.Top, E extends Schema.Top = typeof Schema.Never>(tag: Tag, options: {
98
+ readonly payload: P;
99
+ readonly handle: H;
100
+ readonly success: A;
101
+ readonly error?: E;
102
+ readonly probe: {
103
+ readonly every: Duration.Input;
104
+ readonly max: Duration.Input;
105
+ };
106
+ readonly timeout: Duration.Input;
107
+ readonly restarts?: number;
108
+ }) => {
109
+ readonly call: (payload: Action.PlannedPayload<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["~type.make.in"]>) => Node.Node<A["Type"], Sleep.SleepRequestInvalid | ExternalJobLost | ExternalJobTimedOut | E["Type"], never>;
110
+ readonly toLayer: <R>(operations: Operations<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Type"], H["Type"], A["Type"], E["Type"], R>) => Layer.Layer<Layer.Success<Layer.Layer<Action.Requirement<`${Tag}/initialize`> | Action.Requirement<`${Tag}/start`> | Action.Requirement<`${Tag}/status`> | Action.Requirement<`${Tag}/collect`> | Action.Requirement<`${Tag}/cancel`> | Action.Requirement<`${Tag}/fail`> | Action.Requirement<`${Tag}/ready`> | Action.Requirement<`${Tag}/launch-timeout`>, never, import("effect/Crypto").Crypto | import("./FlowRuntime/FlowRuntime.ts").FlowRuntime | Action.Implementations | {
111
+ executionId: string;
112
+ current: {
113
+ handle: H["Type"];
114
+ key: string;
115
+ } | undefined;
116
+ } | (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"] | (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"] | A["DecodingServices"] | A["EncodingServices"] | E["DecodingServices"] | E["EncodingServices"] | Schema.Struct.DecodingServices<{
117
+ readonly handle: Schema.Codec<H["Type"], H["Encoded"], H["DecodingServices"], H["EncodingServices"]>;
118
+ readonly input: Schema.Codec<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Type"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Encoded"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"]>;
119
+ readonly origin: Schema.String;
120
+ readonly startedAt: Schema.Number;
121
+ readonly generation: Schema.Int;
122
+ readonly probe: Schema.Int;
123
+ }> | Schema.Struct.EncodingServices<{
124
+ readonly handle: Schema.Codec<H["Type"], H["Encoded"], H["DecodingServices"], H["EncodingServices"]>;
125
+ readonly input: Schema.Codec<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Type"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Encoded"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"]>;
126
+ readonly origin: Schema.String;
127
+ readonly startedAt: Schema.Number;
128
+ readonly generation: Schema.Int;
129
+ readonly probe: Schema.Int;
130
+ }> | Exclude<R, FlowInstance | import("effect/Scope").Scope | import("./FlowRuntime/FlowRuntime.ts").FlowRuntime> | Exclude<R, import("effect/Scope").Scope>>>, Layer.Error<Layer.Layer<Action.Requirement<`${Tag}/initialize`> | Action.Requirement<`${Tag}/start`> | Action.Requirement<`${Tag}/status`> | Action.Requirement<`${Tag}/collect`> | Action.Requirement<`${Tag}/cancel`> | Action.Requirement<`${Tag}/fail`> | Action.Requirement<`${Tag}/ready`> | Action.Requirement<`${Tag}/launch-timeout`>, never, import("effect/Crypto").Crypto | import("./FlowRuntime/FlowRuntime.ts").FlowRuntime | Action.Implementations | {
131
+ executionId: string;
132
+ current: {
133
+ handle: H["Type"];
134
+ key: string;
135
+ } | undefined;
136
+ } | (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"] | (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"] | A["DecodingServices"] | A["EncodingServices"] | E["DecodingServices"] | E["EncodingServices"] | Schema.Struct.DecodingServices<{
137
+ readonly handle: Schema.Codec<H["Type"], H["Encoded"], H["DecodingServices"], H["EncodingServices"]>;
138
+ readonly input: Schema.Codec<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Type"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Encoded"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"]>;
139
+ readonly origin: Schema.String;
140
+ readonly startedAt: Schema.Number;
141
+ readonly generation: Schema.Int;
142
+ readonly probe: Schema.Int;
143
+ }> | Schema.Struct.EncodingServices<{
144
+ readonly handle: Schema.Codec<H["Type"], H["Encoded"], H["DecodingServices"], H["EncodingServices"]>;
145
+ readonly input: Schema.Codec<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Type"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Encoded"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"]>;
146
+ readonly origin: Schema.String;
147
+ readonly startedAt: Schema.Number;
148
+ readonly generation: Schema.Int;
149
+ readonly probe: Schema.Int;
150
+ }> | Exclude<R, FlowInstance | import("effect/Scope").Scope | import("./FlowRuntime/FlowRuntime.ts").FlowRuntime> | Exclude<R, import("effect/Scope").Scope>>>, Exclude<Layer.Services<Layer.Layer<Action.Requirement<`${Tag}/initialize`> | Action.Requirement<`${Tag}/start`> | Action.Requirement<`${Tag}/status`> | Action.Requirement<`${Tag}/collect`> | Action.Requirement<`${Tag}/cancel`> | Action.Requirement<`${Tag}/fail`> | Action.Requirement<`${Tag}/ready`> | Action.Requirement<`${Tag}/launch-timeout`>, never, import("effect/Crypto").Crypto | import("./FlowRuntime/FlowRuntime.ts").FlowRuntime | Action.Implementations | {
151
+ executionId: string;
152
+ current: {
153
+ handle: H["Type"];
154
+ key: string;
155
+ } | undefined;
156
+ } | (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"] | (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"] | A["DecodingServices"] | A["EncodingServices"] | E["DecodingServices"] | E["EncodingServices"] | Schema.Struct.DecodingServices<{
157
+ readonly handle: Schema.Codec<H["Type"], H["Encoded"], H["DecodingServices"], H["EncodingServices"]>;
158
+ readonly input: Schema.Codec<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Type"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Encoded"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"]>;
159
+ readonly origin: Schema.String;
160
+ readonly startedAt: Schema.Number;
161
+ readonly generation: Schema.Int;
162
+ readonly probe: Schema.Int;
163
+ }> | Schema.Struct.EncodingServices<{
164
+ readonly handle: Schema.Codec<H["Type"], H["Encoded"], H["DecodingServices"], H["EncodingServices"]>;
165
+ readonly input: Schema.Codec<(P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Type"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["Encoded"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["DecodingServices"], (P extends Schema.Struct.Fields ? Schema.Struct<P> : P)["EncodingServices"]>;
166
+ readonly origin: Schema.String;
167
+ readonly startedAt: Schema.Number;
168
+ readonly generation: Schema.Int;
169
+ readonly probe: Schema.Int;
170
+ }> | Exclude<R, FlowInstance | import("effect/Scope").Scope | import("./FlowRuntime/FlowRuntime.ts").FlowRuntime> | Exclude<R, import("effect/Scope").Scope>>>, {
171
+ executionId: string;
172
+ current: {
173
+ handle: H["Type"];
174
+ key: string;
175
+ } | undefined;
176
+ }>>;
177
+ } & Flow.Flow<Tag, P extends Schema.Struct.Fields ? Schema.Struct<P> : P, A, Schema.Union<readonly [E, typeof ExternalJobLost, typeof ExternalJobTimedOut, typeof Sleep.SleepRequestInvalid]>, Action.Requirement<string>>;
178
+ export {};
179
+ //# sourceMappingURL=ExternalJob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalJob.d.ts","sourceRoot":"","sources":["../../src/ExternalJob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var ExternalJob_exports = {};
30
+ __export(ExternalJob_exports, {
31
+ Again: () => Again,
32
+ ExternalJobLost: () => ExternalJobLost,
33
+ ExternalJobTimedOut: () => ExternalJobTimedOut,
34
+ Status: () => Status,
35
+ make: () => make
36
+ });
37
+ module.exports = __toCommonJS(ExternalJob_exports);
38
+ var Node = __toESM(require("@smthrs/plan/Node"), 1);
39
+ var Cause = __toESM(require("effect/Cause"), 1);
40
+ var Clock = __toESM(require("effect/Clock"), 1);
41
+ var Context = __toESM(require("effect/Context"), 1);
42
+ var Duration = __toESM(require("effect/Duration"), 1);
43
+ var Effect = __toESM(require("effect/Effect"), 1);
44
+ var Layer = __toESM(require("effect/Layer"), 1);
45
+ var Option = __toESM(require("effect/Option"), 1);
46
+ var Schema = __toESM(require("effect/Schema"), 1);
47
+ var Action = __toESM(require("./Action/index.js"), 1);
48
+ var Fault = __toESM(require("./Fault.js"), 1);
49
+ var Flow = __toESM(require("./Flow/index.js"), 1);
50
+ var import_FlowInstance = require("./FlowRuntime/FlowInstance.js");
51
+ var import_ExecutionMiddleware = require("./internal/ExecutionMiddleware.js");
52
+ var Interpreter = __toESM(require("./Interpreter.js"), 1);
53
+ var Sleep = __toESM(require("./Sleep.js"), 1);
54
+ const Status = Schema.Union([
55
+ Schema.Struct({ _tag: Schema.Literal("Running") }),
56
+ Schema.Struct({ _tag: Schema.Literal("Exited"), exitCode: Schema.Int }),
57
+ Schema.Struct({ _tag: Schema.Literal("Lost") })
58
+ ]);
59
+ class Again extends Schema.TaggedError()("@smthrs/flow/ExternalJobAgain", { message: Schema.String }) {
60
+ }
61
+ class ExternalJobLost extends Schema.TaggedError()("@smthrs/flow/ExternalJobLost", {
62
+ key: Schema.String,
63
+ message: Schema.String
64
+ }) {
65
+ }
66
+ class ExternalJobTimedOut extends Schema.TaggedError()("@smthrs/flow/ExternalJobTimedOut", {
67
+ key: Schema.String,
68
+ message: Schema.String
69
+ }) {
70
+ }
71
+ Fault.register("@smthrs/flow/ExternalJobLost", "infra");
72
+ Fault.register("@smthrs/flow/ExternalJobTimedOut", "dependency");
73
+ Fault.register("@smthrs/flow/ExternalJobAgain", "dependency");
74
+ const millis = (value, field) => {
75
+ const parsed = Duration.fromInput(value);
76
+ const result = Option.isSome(parsed) ? Duration.toMillis(parsed.value) : NaN;
77
+ if (!Number.isFinite(result) || result <= 0) {
78
+ throw new RangeError(`ExternalJob.make: ${field} must be a finite positive duration`);
79
+ }
80
+ return result;
81
+ };
82
+ const make = (tag, options) => {
83
+ const every = millis(options.probe.every, "probe.every");
84
+ const maximum = millis(options.probe.max, "probe.max");
85
+ const timeout = millis(options.timeout, "timeout");
86
+ const restarts = options.restarts ?? 0;
87
+ if (maximum < every) throw new RangeError("ExternalJob.make: probe.max must be at least probe.every");
88
+ if (!Number.isSafeInteger(restarts) || restarts < 0) {
89
+ throw new RangeError("ExternalJob.make: restarts must be a nonnegative safe integer");
90
+ }
91
+ const input = Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload);
92
+ const handle = options.handle;
93
+ const providerError = options.error ?? Schema.Never;
94
+ const failure = Schema.Union([providerError, ExternalJobLost, ExternalJobTimedOut, Sleep.SleepRequestInvalid]);
95
+ const state = Schema.Struct({
96
+ input,
97
+ origin: Schema.String,
98
+ startedAt: Schema.Number,
99
+ generation: Schema.Int,
100
+ probe: Schema.Int
101
+ });
102
+ const observed = Schema.Struct({ ...state.fields, handle });
103
+ const keyOf = (job) => `${job.origin}#g${job.generation}`;
104
+ const captures = { tag, every, maximum, timeout, restarts, version: "external-job/v1" };
105
+ const active = Context.Service(`${tag}/ExternalJobActive`);
106
+ const cancellations = /* @__PURE__ */ new WeakMap();
107
+ const annotations = Context.make(import_ExecutionMiddleware.ExecutionMiddleware, {
108
+ wrap: (payload, body) => Effect.gen(function* () {
109
+ const instance = yield* import_FlowInstance.FlowInstance;
110
+ const table = yield* Action.Implementations;
111
+ const cancel = cancellations.get(table.add);
112
+ if (cancel === void 0) {
113
+ return yield* Effect.die(
114
+ new Interpreter.InterpreterError({
115
+ code: "unresolved_action",
116
+ flow: tag,
117
+ node: `${tag}/cancel`,
118
+ message: `ExternalJob ${tag} has no cancellation implementation; provide its toLayer`
119
+ })
120
+ );
121
+ }
122
+ const current = {
123
+ executionId: instance.executionId,
124
+ current: instance.flow._tag === `${tag}/observe` ? { handle: payload.handle, key: keyOf(payload) } : void 0
125
+ };
126
+ yield* Flow.withRollback(Effect.succeed(current), (value, cause) => Cause.hasInterruptsOnly(cause) && !instance.interrupted && !instance.suspended || value.current === void 0 ? Effect.void : cancel(value.current.handle, value.current.key));
127
+ return yield* body.pipe(Effect.provideService(active, current));
128
+ })
129
+ });
130
+ const Initialize = Action.make(`${tag}/initialize`, { payload: { input }, success: state });
131
+ const Start = Action.make(`${tag}/start`, {
132
+ payload: state,
133
+ success: options.handle,
134
+ error: providerError,
135
+ tier: "irreversible",
136
+ idempotencyKey: keyOf
137
+ });
138
+ const Probe = Action.make(`${tag}/status`, {
139
+ payload: observed,
140
+ success: Schema.Struct({
141
+ status: Status,
142
+ timedOut: Schema.Boolean,
143
+ wakeAt: Schema.Number,
144
+ next: observed,
145
+ restart: state
146
+ }),
147
+ error: providerError,
148
+ implementationVersion: "external-job/status/v1",
149
+ effects: { reads: [], writes: [], mode: "expected", onConflict: "fail" },
150
+ tier: "sealed",
151
+ idempotencyKey: (job) => `${keyOf(job)}/probe/${job.probe}`
152
+ });
153
+ const Collect = Action.make(`${tag}/collect`, {
154
+ payload: { job: observed, exited: Schema.Struct({ _tag: Schema.Literal("Exited"), exitCode: Schema.Int }) },
155
+ success: options.success,
156
+ error: Schema.Union([providerError, Again]),
157
+ tier: "irreversible",
158
+ idempotencyKey: ({ job }) => `${keyOf(job)}/collect`
159
+ });
160
+ const Cancel = Action.make(`${tag}/cancel`, {
161
+ payload: observed,
162
+ success: Schema.Void,
163
+ tier: "irreversible",
164
+ idempotencyKey: (job) => `${keyOf(job)}/cancel`
165
+ });
166
+ const Fail = Action.make(`${tag}/fail`, {
167
+ payload: { job: observed, timedOut: Schema.Boolean },
168
+ success: Schema.Never,
169
+ error: Schema.Union([ExternalJobLost, ExternalJobTimedOut])
170
+ });
171
+ const Ready = Action.make(`${tag}/ready`, { payload: state, success: Schema.Boolean });
172
+ const LaunchFailure = Action.make(`${tag}/launch-timeout`, {
173
+ payload: state,
174
+ success: Schema.Never,
175
+ error: ExternalJobTimedOut
176
+ });
177
+ const launched = (job) => Start.call(job).pipe(
178
+ Node.bindPlanned(
179
+ (handle2) => observe.to({
180
+ input: job.input,
181
+ origin: job.origin,
182
+ startedAt: job.startedAt,
183
+ generation: job.generation,
184
+ probe: job.probe,
185
+ handle: handle2
186
+ })
187
+ )
188
+ );
189
+ const launch = Flow.make(
190
+ `${tag}/launch`,
191
+ {
192
+ payload: state,
193
+ success: options.success,
194
+ error: failure,
195
+ annotations,
196
+ body: Node.capture(
197
+ captures,
198
+ (job) => Ready.call(job).pipe(Node.branch({
199
+ if: Node.capture(captures, (ready) => ready),
200
+ then: () => launched(job),
201
+ else: () => LaunchFailure.call(job)
202
+ }))
203
+ )
204
+ }
205
+ );
206
+ const recover = (job, result) => Cancel.call(job).pipe(Node.andThen(
207
+ Node.succeed(job).pipe(Node.branch({
208
+ if: Node.capture(captures, (current) => current.generation <= restarts),
209
+ then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(launch.to(result.restart))),
210
+ else: () => Fail.call({ job, timedOut: false })
211
+ }))
212
+ ));
213
+ const observe = Flow.make(
214
+ `${tag}/observe`,
215
+ {
216
+ payload: observed,
217
+ success: options.success,
218
+ error: failure,
219
+ annotations,
220
+ body: Node.capture(
221
+ captures,
222
+ (job) => Probe.call(job).pipe(Node.bindPlanned(
223
+ (result) => Node.succeed(result).pipe(Node.branch({
224
+ if: Node.capture(captures, (value) => value.timedOut),
225
+ then: () => Cancel.call(job).pipe(Node.andThen(Fail.call({ job, timedOut: true }))),
226
+ else: () => Node.succeed(result.status).pipe(Node.branch({
227
+ if: Node.capture(captures, (status) => status._tag === "Running"),
228
+ then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(observe.to(result.next))),
229
+ else: (status) => Node.succeed(status).pipe(Node.branch({
230
+ if: Node.capture(captures, (value) => value._tag === "Lost"),
231
+ then: () => recover(job, result),
232
+ else: (exited) => Collect.call({ job, exited }).pipe(
233
+ Node.catch({ error: Again, onFailure: () => recover(job, result) })
234
+ )
235
+ }))
236
+ }))
237
+ }))
238
+ ))
239
+ )
240
+ }
241
+ );
242
+ const flow = Flow.make(tag, {
243
+ payload: options.payload,
244
+ success: options.success,
245
+ error: failure,
246
+ annotations,
247
+ body: Node.capture(captures, (payload) => Initialize.call({ input: payload }).pipe(Node.bindPlanned(launched)))
248
+ });
249
+ const toLayer = (operations) => {
250
+ const bindCancellation = Layer.effectDiscard(Effect.gen(function* () {
251
+ const table = yield* Action.Implementations;
252
+ const context = yield* Effect.context();
253
+ const cancel = (handle2, key) => operations.cancel(handle2, key).pipe(Effect.provideContext(context));
254
+ cancellations.set(table.add, cancel);
255
+ yield* Effect.addFinalizer(
256
+ () => Effect.sync(() => {
257
+ if (cancellations.get(table.add) === cancel) cancellations.delete(table.add);
258
+ })
259
+ );
260
+ }));
261
+ const interpreter = Layer.mergeAll(Interpreter.layer(flow), Interpreter.layer(launch), Interpreter.layer(observe));
262
+ const layer = Layer.mergeAll(
263
+ interpreter,
264
+ bindCancellation,
265
+ Sleep.layer,
266
+ Initialize.toLayer(
267
+ ({ input: input2 }) => Effect.gen(function* () {
268
+ const instance = yield* active;
269
+ return {
270
+ input: input2,
271
+ origin: instance.executionId,
272
+ startedAt: Math.floor(yield* Clock.currentTimeMillis),
273
+ generation: 1,
274
+ probe: 1
275
+ };
276
+ })
277
+ ),
278
+ Start.toLayer(
279
+ (job) => Effect.tap(operations.start(job.input, keyOf(job)), (handle2) => Effect.map(active, (value) => {
280
+ value.current = { handle: handle2, key: keyOf(job) };
281
+ }))
282
+ ),
283
+ Probe.toLayer((job) => Effect.gen(function* () {
284
+ let now = Math.floor(yield* Clock.currentTimeMillis);
285
+ const deadline = job.startedAt + timeout;
286
+ let timedOut = now >= deadline;
287
+ const status = timedOut ? { _tag: "Running" } : yield* Effect.raceFirst(
288
+ operations.status(job.handle, keyOf(job)),
289
+ Effect.sleep(deadline - now).pipe(Effect.as({ _tag: "Running" }))
290
+ );
291
+ now = Math.floor(yield* Clock.currentTimeMillis);
292
+ timedOut ||= now >= deadline;
293
+ const delay = Math.min(maximum, every * 2 ** Math.min(job.probe - 1, 1023));
294
+ return {
295
+ status,
296
+ timedOut,
297
+ wakeAt: Math.min(deadline, Math.ceil(now + delay)),
298
+ next: { ...job, probe: job.probe + 1 },
299
+ restart: {
300
+ input: job.input,
301
+ origin: job.origin,
302
+ startedAt: job.startedAt,
303
+ generation: job.generation + 1,
304
+ probe: 1
305
+ }
306
+ };
307
+ }), { implementationVersion: "external-job/status/v1" }),
308
+ Collect.toLayer(
309
+ ({ exited, job }) => Effect.tap(operations.collect(job.handle, keyOf(job), exited), () => Effect.map(active, (value) => {
310
+ value.current = void 0;
311
+ }))
312
+ ),
313
+ Cancel.toLayer(
314
+ (job) => Effect.tap(operations.cancel(job.handle, keyOf(job)), () => Effect.map(active, (value) => {
315
+ value.current = void 0;
316
+ }))
317
+ ),
318
+ Fail.toLayer(
319
+ ({ job, timedOut }) => Effect.fail(
320
+ timedOut ? new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out` }) : new ExternalJobLost({
321
+ key: keyOf(job),
322
+ message: `Job ${keyOf(job)} exhausted its replacement generations`
323
+ })
324
+ )
325
+ ),
326
+ Ready.toLayer((job) => Effect.map(Clock.currentTimeMillis, (now) => now < job.startedAt + timeout)),
327
+ LaunchFailure.toLayer(
328
+ (job) => Effect.fail(
329
+ new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out before replacement start` })
330
+ )
331
+ )
332
+ );
333
+ return layer;
334
+ };
335
+ const call = (payload) => flow.child(payload);
336
+ return Object.assign(flow, { call, toLayer });
337
+ };
338
+ //# sourceMappingURL=ExternalJob.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ExternalJob.ts"],
4
+ "sourcesContent": ["/**\n * Durable external work as ordinary actions, handoffs and parked timers.\n *\n * @since 1.0.0\n */\n\nimport * as Node from \"@smthrs/plan/Node\"\nimport * as Cause from \"effect/Cause\"\nimport * as Clock from \"effect/Clock\"\nimport * as Context from \"effect/Context\"\nimport * as Duration from \"effect/Duration\"\nimport * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\nimport * as Option from \"effect/Option\"\nimport * as Schema from \"effect/Schema\"\nimport * as Action from \"./Action/index.ts\"\nimport * as Fault from \"./Fault.ts\"\nimport * as Flow from \"./Flow/index.ts\"\nimport { FlowInstance } from \"./FlowRuntime/FlowInstance.ts\"\nimport { ExecutionMiddleware } from \"./internal/ExecutionMiddleware.ts\"\nimport * as Interpreter from \"./Interpreter.ts\"\nimport * as Sleep from \"./Sleep.ts\"\n\n/**\n * External process observation.\n * @category schemas\n * @since 1.0.0\n */\nexport const Status = Schema.Union([\n Schema.Struct({ _tag: Schema.Literal(\"Running\") }),\n Schema.Struct({ _tag: Schema.Literal(\"Exited\"), exitCode: Schema.Int }),\n Schema.Struct({ _tag: Schema.Literal(\"Lost\") })\n])\n/**\n * Decoded external process observation.\n * @category models\n * @since 1.0.0\n */\nexport type Status = typeof Status.Type\n/**\n * Decoded external process observation.\n * @category models\n * @since 1.0.0\n */\nexport type Exited = Extract<Status, { readonly _tag: \"Exited\" }>\n/**\n * A collected exit that can be replaced.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class Again extends Schema.TaggedError<Again>()(\"@smthrs/flow/ExternalJobAgain\", { message: Schema.String }) {}\n/**\n * No worker or exit receipt remains.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class ExternalJobLost extends Schema.TaggedError<ExternalJobLost>()(\"@smthrs/flow/ExternalJobLost\", {\n key: Schema.String,\n message: Schema.String\n}) {}\n/**\n * The deadline anchored before initial start elapsed.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class ExternalJobTimedOut extends Schema.TaggedError<ExternalJobTimedOut>()(\"@smthrs/flow/ExternalJobTimedOut\", {\n key: Schema.String,\n message: Schema.String\n}) {}\nFault.register(\"@smthrs/flow/ExternalJobLost\", \"infra\")\nFault.register(\"@smthrs/flow/ExternalJobTimedOut\", \"dependency\")\nFault.register(\"@smthrs/flow/ExternalJobAgain\", \"dependency\")\n\nconst millis = (value: Duration.Input, field: string): number => {\n const parsed = Duration.fromInput(value)\n const result = Option.isSome(parsed) ? Duration.toMillis(parsed.value) : NaN\n if (!Number.isFinite(result) || result <= 0) {\n throw new RangeError(`ExternalJob.make: ${field} must be a finite positive duration`)\n }\n return result\n}\n/**\n * The adapter's full typed failure union belongs in make's error schema.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Operations<P, H, A, E, R> {\n readonly start: (payload: P, key: string) => Effect.Effect<H, E, R>\n readonly status: (handle: H, key: string) => Effect.Effect<Status, E, R>\n readonly collect: (handle: H, key: string, exited: Exited) => Effect.Effect<A, E | Again, R>\n readonly cancel: (handle: H, key: string) => Effect.Effect<void, never, R>\n}\n\n/**\n * Create-or-get by execution id and generation. Private ordinary flows carry\n * journaled state; initial callers cannot supply a key or continuation handle.\n * `restarts` counts replacement generations; zero permits only g1.\n * @category constructors\n * @since 1.0.0\n */\nexport const make = <\n const Tag extends string,\n P extends Schema.Struct.Fields | Flow.AnyStructSchema,\n H extends Schema.Top,\n A extends Schema.Top,\n E extends Schema.Top = typeof Schema.Never\n>(tag: Tag, options: {\n readonly payload: P\n readonly handle: H\n readonly success: A\n readonly error?: E\n readonly probe: { readonly every: Duration.Input; readonly max: Duration.Input }\n readonly timeout: Duration.Input\n readonly restarts?: number\n}) => {\n const every = millis(options.probe.every, \"probe.every\")\n const maximum = millis(options.probe.max, \"probe.max\")\n const timeout = millis(options.timeout, \"timeout\")\n const restarts = options.restarts ?? 0\n if (maximum < every) throw new RangeError(\"ExternalJob.make: probe.max must be at least probe.every\")\n if (!Number.isSafeInteger(restarts) || restarts < 0) {\n throw new RangeError(\"ExternalJob.make: restarts must be a nonnegative safe integer\")\n }\n type Input = P extends Schema.Struct.Fields ? Schema.Struct<P> : P\n // Erase field modifiers at nesting boundaries: these are required values,\n // even when the author's schema contains optional fields internally.\n const input =\n (Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload)) as unknown as Schema.Codec<\n Input[\"Type\"],\n Input[\"Encoded\"],\n Input[\"DecodingServices\"],\n Input[\"EncodingServices\"]\n >\n const handle = options.handle as Schema.Codec<H[\"Type\"], H[\"Encoded\"], H[\"DecodingServices\"], H[\"EncodingServices\"]>\n const providerError = (options.error ?? Schema.Never) as E\n const failure = Schema.Union([providerError, ExternalJobLost, ExternalJobTimedOut, Sleep.SleepRequestInvalid])\n const state = Schema.Struct({\n input,\n origin: Schema.String,\n startedAt: Schema.Number,\n generation: Schema.Int,\n probe: Schema.Int\n })\n const observed = Schema.Struct({ ...state.fields, handle })\n type State = typeof state.Type\n type Observed = typeof observed.Type\n const keyOf = (job: { readonly origin: string; readonly generation: number }) => `${job.origin}#g${job.generation}`\n const captures = { tag, every, maximum, timeout, restarts, version: \"external-job/v1\" }\n type Active = { executionId: string; current: { handle: H[\"Type\"]; key: string } | undefined }\n const active = Context.Service<Active>(`${tag}/ExternalJobActive`)\n // Registry tables wrap get() for module isolation but retain add(), the\n // scoped registration owner. Anchor lifecycle bindings to that owner.\n const cancellations = new WeakMap<object, (handle: H[\"Type\"], key: string) => Effect.Effect<void>>()\n const annotations = Context.make(ExecutionMiddleware, {\n wrap: (payload, body) =>\n Effect.gen(function*() {\n const instance = yield* FlowInstance\n const table = yield* Action.Implementations\n const cancel = cancellations.get(table.add)\n if (cancel === undefined) {\n return yield* Effect.die(\n new Interpreter.InterpreterError({\n code: \"unresolved_action\",\n flow: tag,\n node: `${tag}/cancel`,\n message: `ExternalJob ${tag} has no cancellation implementation; provide its toLayer`\n })\n )\n }\n const current: Active = {\n executionId: instance.executionId,\n current: instance.flow._tag === `${tag}/observe`\n ? { handle: (payload as Observed).handle, key: keyOf(payload as Observed) } :\n undefined\n }\n yield* Flow.withRollback(Effect.succeed(current), (value, cause) =>\n Cause.hasInterruptsOnly(cause) && !instance.interrupted && !instance.suspended || value.current === undefined\n ? Effect.void :\n cancel(value.current.handle, value.current.key))\n return yield* body.pipe(Effect.provideService(active, current))\n })\n })\n const Initialize = Action.make(`${tag}/initialize`, { payload: { input }, success: state })\n const Start = Action.make(`${tag}/start`, {\n payload: state,\n success: options.handle,\n error: providerError,\n tier: \"irreversible\",\n idempotencyKey: keyOf\n })\n const Probe = Action.make(`${tag}/status`, {\n payload: observed,\n success: Schema.Struct({\n status: Status,\n timedOut: Schema.Boolean,\n wakeAt: Schema.Number,\n next: observed,\n restart: state\n }),\n error: providerError,\n implementationVersion: \"external-job/status/v1\",\n effects: { reads: [], writes: [], mode: \"expected\", onConflict: \"fail\" },\n tier: \"sealed\",\n idempotencyKey: (job) => `${keyOf(job)}/probe/${job.probe}`\n })\n const Collect = Action.make(`${tag}/collect`, {\n payload: { job: observed, exited: Schema.Struct({ _tag: Schema.Literal(\"Exited\"), exitCode: Schema.Int }) },\n success: options.success,\n error: Schema.Union([providerError, Again]),\n tier: \"irreversible\",\n idempotencyKey: ({ job }) => `${keyOf(job)}/collect`\n })\n const Cancel = Action.make(`${tag}/cancel`, {\n payload: observed,\n success: Schema.Void,\n tier: \"irreversible\",\n idempotencyKey: (job) => `${keyOf(job)}/cancel`\n })\n const Fail = Action.make(`${tag}/fail`, {\n payload: { job: observed, timedOut: Schema.Boolean },\n success: Schema.Never,\n error: Schema.Union([ExternalJobLost, ExternalJobTimedOut])\n })\n const Ready = Action.make(`${tag}/ready`, { payload: state, success: Schema.Boolean })\n const LaunchFailure = Action.make(`${tag}/launch-timeout`, {\n payload: state,\n success: Schema.Never,\n error: ExternalJobTimedOut\n })\n const launched = (job: State | Action.PlannedPayload<State>) =>\n Start.call(job as Action.PlannedPayload<State>).pipe(\n Node.bindPlanned((handle) =>\n observe.to({\n input: job.input,\n origin: job.origin,\n startedAt: job.startedAt,\n generation: job.generation,\n probe: job.probe,\n handle\n })\n )\n )\n // Pin the declared union through recursive bodies: cross-package inference\n // otherwise narrows the error schema to the provider-only generic E.\n const launch: Flow.Flow<string, typeof state, A, typeof failure, Action.Requirement<string>> = Flow.make<\n `${Tag}/launch`,\n typeof state,\n A,\n typeof failure,\n Action.Requirement<string>\n >(\n `${tag}/launch`,\n {\n payload: state,\n success: options.success,\n error: failure,\n annotations,\n body: Node.capture(\n captures,\n (job) =>\n Ready.call(job).pipe(Node.branch({\n if: Node.capture(captures, (ready) => ready),\n then: () => launched(job),\n else: () => LaunchFailure.call(job)\n }))\n )\n }\n )\n const recover = (job: Observed, result: Action.PlannedPayload<{ restart: State; wakeAt: number }>) =>\n Cancel.call(job).pipe(Node.andThen(\n Node.succeed(job).pipe(Node.branch({\n if: Node.capture(captures, (current) => current.generation <= restarts),\n then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(launch.to(result.restart))),\n else: () => Fail.call({ job, timedOut: false })\n }))\n ))\n const observe: Flow.Flow<string, typeof observed, A, typeof failure, Action.Requirement<string>> = Flow.make<\n `${Tag}/observe`,\n typeof observed,\n A,\n typeof failure,\n Action.Requirement<string>\n >(\n `${tag}/observe`,\n {\n payload: observed,\n success: options.success,\n error: failure,\n annotations,\n body: Node.capture(\n captures,\n (job) =>\n Probe.call(job).pipe(Node.bindPlanned((result) =>\n Node.succeed(result).pipe(Node.branch({\n if: Node.capture(captures, (value) => value.timedOut),\n then: () => Cancel.call(job).pipe(Node.andThen(Fail.call({ job, timedOut: true }))),\n else: () =>\n Node.succeed(result.status).pipe(Node.branch({\n if: Node.capture(captures, (status) => status._tag === \"Running\"),\n then: () => Sleep.action.call({ until: result.wakeAt }).pipe(Node.andThen(observe.to(result.next))),\n else: (status) =>\n Node.succeed(status).pipe(Node.branch({\n if: Node.capture(captures, (value) => value._tag === \"Lost\"),\n then: () => recover(job, result),\n else: (exited) =>\n Collect.call({ job, exited: exited as unknown as Exited }).pipe(\n Node.catch({ error: Again, onFailure: () => recover(job, result) })\n )\n }))\n }))\n }))\n ))\n )\n }\n )\n const flow = Flow.make<Tag, P, A, typeof failure, Action.Requirement<string>>(tag, {\n payload: options.payload,\n success: options.success,\n error: failure,\n annotations,\n body: Node.capture(captures, (payload) => Initialize.call({ input: payload }).pipe(Node.bindPlanned(launched)))\n })\n const toLayer = <R>(operations: Operations<typeof input.Type, H[\"Type\"], A[\"Type\"], E[\"Type\"], R>) => {\n const bindCancellation = Layer.effectDiscard(Effect.gen(function*() {\n const table = yield* Action.Implementations\n const context = yield* Effect.context<R>()\n const cancel = (handle: H[\"Type\"], key: string) =>\n operations.cancel(handle, key).pipe(Effect.provideContext(context))\n cancellations.set(table.add, cancel)\n yield* Effect.addFinalizer(() =>\n Effect.sync(() => {\n if (cancellations.get(table.add) === cancel) cancellations.delete(table.add)\n })\n )\n }))\n const interpreter = Layer.mergeAll(Interpreter.layer(flow), Interpreter.layer(launch), Interpreter.layer(observe))\n const layer = Layer.mergeAll(\n interpreter,\n bindCancellation,\n Sleep.layer,\n Initialize.toLayer(({ input }) =>\n Effect.gen(function*() {\n const instance = yield* active\n return {\n input,\n origin: instance.executionId,\n startedAt: Math.floor(yield* Clock.currentTimeMillis),\n generation: 1,\n probe: 1\n }\n })\n ),\n Start.toLayer((job) =>\n Effect.tap(operations.start(job.input, keyOf(job)), (handle) =>\n Effect.map(active, (value) => {\n value.current = { handle, key: keyOf(job) }\n }))\n ),\n Probe.toLayer((job) =>\n Effect.gen(function*() {\n let now = Math.floor(yield* Clock.currentTimeMillis)\n const deadline = job.startedAt + timeout\n let timedOut = now >= deadline\n const status = timedOut ? { _tag: \"Running\" as const } : yield* Effect.raceFirst(\n operations.status(job.handle, keyOf(job)),\n Effect.sleep(deadline - now).pipe(Effect.as({ _tag: \"Running\" as const }))\n )\n now = Math.floor(yield* Clock.currentTimeMillis)\n timedOut ||= now >= deadline\n const delay = Math.min(maximum, every * 2 ** Math.min(job.probe - 1, 1023))\n return {\n status,\n timedOut,\n wakeAt: Math.min(deadline, Math.ceil(now + delay)),\n next: { ...job, probe: job.probe + 1 },\n restart: {\n input: job.input,\n origin: job.origin,\n startedAt: job.startedAt,\n generation: job.generation + 1,\n probe: 1\n }\n }\n }), { implementationVersion: \"external-job/status/v1\" }),\n Collect.toLayer(({ exited, job }) =>\n Effect.tap(operations.collect(job.handle, keyOf(job), exited), () =>\n Effect.map(active, (value) => {\n value.current = undefined\n }))\n ),\n Cancel.toLayer((job) =>\n Effect.tap(operations.cancel(job.handle, keyOf(job)), () =>\n Effect.map(active, (value) => {\n value.current = undefined\n }))\n ),\n Fail.toLayer(({ job, timedOut }) =>\n Effect.fail(\n timedOut\n ? new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out` })\n : new ExternalJobLost({\n key: keyOf(job),\n message: `Job ${keyOf(job)} exhausted its replacement generations`\n })\n )\n ),\n Ready.toLayer((job) => Effect.map(Clock.currentTimeMillis, (now) => now < job.startedAt + timeout)),\n LaunchFailure.toLayer((job) =>\n Effect.fail(\n new ExternalJobTimedOut({ key: keyOf(job), message: `Job ${keyOf(job)} timed out before replacement start` })\n )\n )\n )\n // Active is supplied by the execution middleware, never by the host.\n return layer as Layer.Layer<\n Layer.Success<typeof layer>,\n Layer.Error<typeof layer>,\n Exclude<Layer.Services<typeof layer>, Active>\n >\n }\n // A job requires its own execution scope and identity even when composed\n // through call; reuse the existing child boundary rather than inline it.\n const call: typeof flow.child = (payload) => flow.child(payload)\n return Object.assign(flow, { call, toLayer }) as {\n readonly call: typeof call\n readonly toLayer: typeof toLayer\n } & typeof flow\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["handle", "input"]
7
+ }