@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,110 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * Execution policies attached to flow definitions through Effect context.
4
+ *
5
+ * @since 0.1.0
6
+ */
7
+ import * as PlanEffects from "@smthrs/plan/Effects";
8
+ import * as PlanPlacement from "@smthrs/plan/Placement";
9
+ import * as Plan from "@smthrs/plan/Plan";
10
+ import * as Context from "effect/Context";
11
+ import { constFalse, constTrue } from "effect/Function";
12
+ /**
13
+ * Declared filesystem effects: the plan node effect contract itself.
14
+ *
15
+ * This is `@smthrs/plan`'s `Plan.NodeEffects`, not a copy of it. The two were
16
+ * field-for-field identical structs in two packages, which meant a change to
17
+ * one silently stopped `Plan.compile` decoding what this package wrote.
18
+ *
19
+ * @category schemas
20
+ * @since 0.1.0
21
+ */
22
+ export const Effects = Plan.NodeEffects;
23
+ /**
24
+ * Capability ceiling. An omitted annotation inherits; an explicit empty array denies.
25
+ * The reference default remains an empty metadata projection for catalog readers;
26
+ * execution distinguishes an absent annotation from an explicitly stored one.
27
+ *
28
+ * @category annotations
29
+ * @since 0.1.0
30
+ */
31
+ export const Capabilities = Context.Reference("@smthrs/flow/Flow/Capabilities", { defaultValue: () => [] });
32
+ /**
33
+ * Required annotation key for a flow's declared filesystem effects.
34
+ *
35
+ * @category annotations
36
+ * @since 0.1.0
37
+ */
38
+ export const EffectsDeclaration = Context.Service("@smthrs/flow/Flow/EffectsDeclaration");
39
+ /**
40
+ * The effect AUTHORITY a flow declares: the ceiling every step spliced beneath
41
+ * it must stay inside.
42
+ *
43
+ * This is the one envelope model, `@smthrs/plan/Effects`, which `@smthrs/core`
44
+ * re-exports and `@smthrs/patterns` intersects against. It answers a different
45
+ * question from {@link EffectsDeclaration}: that one says which FILES a node
46
+ * touches, so a plan can order writers and a sandbox can enforce a boundary at
47
+ * run time, while this one says how much a flow is ALLOWED to touch, so
48
+ * {@link module:Graph.build} can refuse a composition that claims more than its
49
+ * caller granted.
50
+ *
51
+ * `Flow.make`'s `effects` option writes it, which is what makes it readable by
52
+ * a catalog that projects a declaration without importing this module.
53
+ *
54
+ * @category annotations
55
+ * @since 0.1.0
56
+ */
57
+ export const EffectEnvelope = PlanEffects.Envelope;
58
+ /**
59
+ * Required annotation key for a flow's schema-encodable placement directive.
60
+ *
61
+ * @category annotations
62
+ * @since 0.1.0
63
+ */
64
+ export const Placement = PlanPlacement.Annotation;
65
+ /**
66
+ * Captures defects for a flow and includes them in the result of the flow or its actions.
67
+ *
68
+ * **Details**
69
+ *
70
+ * By default, this annotation is set to `true`, meaning defects are captured.
71
+ *
72
+ * @category annotations
73
+ * @since 0.1.0
74
+ */
75
+ export const CaptureDefects = Context.Reference("@smthrs/flow/Flow/CaptureDefects", {
76
+ defaultValue: constTrue
77
+ });
78
+ /**
79
+ * Whether a catalog may offer this flow to a model, defaulting to yes.
80
+ *
81
+ * It answers a different question from {@link Capabilities}: that one says how
82
+ * much a flow is allowed to touch, this one says whether a model is shown the
83
+ * flow at all. A flow whose actions only one host implements is discoverable
84
+ * everywhere its file is, and teaching it to an agent running somewhere else
85
+ * offers a call that has no implementation to reach.
86
+ *
87
+ * `Flow.make`'s `modelInvocable` option writes it, which is what makes it
88
+ * readable by a catalog that projects a declaration from source text without
89
+ * importing this module, exactly as `capabilities` and `effects` are.
90
+ *
91
+ * @category annotations
92
+ * @since 0.1.0
93
+ */
94
+ export const ModelInvocable = Context.Reference("@smthrs/flow/Flow/ModelInvocable", {
95
+ defaultValue: constTrue
96
+ });
97
+ /**
98
+ * Marks a flow to suspend when it encounters any error.
99
+ *
100
+ * **Details**
101
+ *
102
+ * The suspended execution can later be resumed with the flow's `resume` method, for example `MyFlow.resume(executionId)`.
103
+ *
104
+ * @category annotations
105
+ * @since 0.1.0
106
+ */
107
+ export const SuspendOnFailure = Context.Reference("@smthrs/flow/Flow/SuspendOnFailure", {
108
+ defaultValue: constFalse
109
+ });
110
+ //# sourceMappingURL=Annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Annotations.js","sourceRoot":"","sources":["../../../src/Flow/Annotations.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;GAIG;AAEH,OAAO,KAAK,WAAW,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,aAAa,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEvD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAA;AAsBvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAC3C,gCAAgC,EAChC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAC3B,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAU,sCAAsC,CAAC,CAAA;AAElG;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAA;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAA;AAEjD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAC7C,kCAAkC,EAClC;IACE,YAAY,EAAE,SAAS;CACxB,CACF,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAC7C,kCAAkC,EAClC;IACE,YAAY,EAAE,SAAS;CACxB,CACF,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAC/C,oCAAoC,EACpC;IACE,YAAY,EAAE,UAAU;CACzB,CACF,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Execution policies attached to flow definitions through Effect context.\n *\n * @since 0.1.0\n */\n\nimport * as PlanEffects from \"@smthrs/plan/Effects\"\nimport * as PlanPlacement from \"@smthrs/plan/Placement\"\nimport * as Plan from \"@smthrs/plan/Plan\"\nimport * as Context from \"effect/Context\"\nimport { constFalse, constTrue } from \"effect/Function\"\n\n/**\n * Declared filesystem effects: the plan node effect contract itself.\n *\n * This is `@smthrs/plan`'s `Plan.NodeEffects`, not a copy of it. The two were\n * field-for-field identical structs in two packages, which meant a change to\n * one silently stopped `Plan.compile` decoding what this package wrote.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport const Effects = Plan.NodeEffects\n\n/**\n * The value form of {@link Effects}.\n *\n * @category models\n * @since 0.1.0\n */\nexport type Effects = Plan.NodeEffects\n\n/**\n * A directive naming where a node runs, carried unchanged until planning.\n *\n * This is `@smthrs/plan`'s `Placement.Placement`, the one typed model. It was\n * `Schema.Unknown` here while `@smthrs/core` held a four-variant enum of the\n * same thing, which made every crossing a cast.\n *\n * @category models\n * @since 0.1.0\n */\nexport type PlacementDirective = PlanPlacement.Placement\n\n/**\n * Capability ceiling. An omitted annotation inherits; an explicit empty array denies.\n * The reference default remains an empty metadata projection for catalog readers;\n * execution distinguishes an absent annotation from an explicitly stored one.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const Capabilities = Context.Reference<ReadonlyArray<string>>(\n \"@smthrs/flow/Flow/Capabilities\",\n { defaultValue: () => [] }\n)\n\n/**\n * Required annotation key for a flow's declared filesystem effects.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const EffectsDeclaration = Context.Service<Effects>(\"@smthrs/flow/Flow/EffectsDeclaration\")\n\n/**\n * The effect AUTHORITY a flow declares: the ceiling every step spliced beneath\n * it must stay inside.\n *\n * This is the one envelope model, `@smthrs/plan/Effects`, which `@smthrs/core`\n * re-exports and `@smthrs/patterns` intersects against. It answers a different\n * question from {@link EffectsDeclaration}: that one says which FILES a node\n * touches, so a plan can order writers and a sandbox can enforce a boundary at\n * run time, while this one says how much a flow is ALLOWED to touch, so\n * {@link module:Graph.build} can refuse a composition that claims more than its\n * caller granted.\n *\n * `Flow.make`'s `effects` option writes it, which is what makes it readable by\n * a catalog that projects a declaration without importing this module.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const EffectEnvelope = PlanEffects.Envelope\n\n/**\n * Required annotation key for a flow's schema-encodable placement directive.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const Placement = PlanPlacement.Annotation\n\n/**\n * Captures defects for a flow and includes them in the result of the flow or its actions.\n *\n * **Details**\n *\n * By default, this annotation is set to `true`, meaning defects are captured.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const CaptureDefects = Context.Reference<boolean>(\n \"@smthrs/flow/Flow/CaptureDefects\",\n {\n defaultValue: constTrue\n }\n)\n\n/**\n * Whether a catalog may offer this flow to a model, defaulting to yes.\n *\n * It answers a different question from {@link Capabilities}: that one says how\n * much a flow is allowed to touch, this one says whether a model is shown the\n * flow at all. A flow whose actions only one host implements is discoverable\n * everywhere its file is, and teaching it to an agent running somewhere else\n * offers a call that has no implementation to reach.\n *\n * `Flow.make`'s `modelInvocable` option writes it, which is what makes it\n * readable by a catalog that projects a declaration from source text without\n * importing this module, exactly as `capabilities` and `effects` are.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const ModelInvocable = Context.Reference<boolean>(\n \"@smthrs/flow/Flow/ModelInvocable\",\n {\n defaultValue: constTrue\n }\n)\n\n/**\n * Marks a flow to suspend when it encounters any error.\n *\n * **Details**\n *\n * The suspended execution can later be resumed with the flow's `resume` method, for example `MyFlow.resume(executionId)`.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const SuspendOnFailure = Context.Reference<boolean>(\n \"@smthrs/flow/Flow/SuspendOnFailure\",\n {\n defaultValue: constFalse\n }\n)\n"]}
@@ -0,0 +1,21 @@
1
+ /** Declared capability ceilings shared by planning and execution.
2
+ * @since 1.0.0
3
+ */
4
+ import * as Capability from "@smthrs/capability/Capability";
5
+ import * as Context from "effect/Context";
6
+ /** Returns only explicitly declared ceilings; omission inherits.
7
+ * @category accessors
8
+ * @since 1.0.0
9
+ */
10
+ export declare const capabilityCeilings: (annotations: Context.Context<never>) => ReadonlyArray<ReadonlyArray<string>>;
11
+ /** Parses declaration patterns into ceiling groups. Invalid patterns are dropped, so they deny.
12
+ * @category constructors
13
+ * @since 1.0.0
14
+ */
15
+ export declare const parseCapabilityCeilings: (groups: ReadonlyArray<ReadonlyArray<string>>) => ReadonlyArray<ReadonlyArray<Capability.CapabilityPattern>>;
16
+ /** Applies declaration patterns as an exact conjunction. Invalid patterns deny.
17
+ * @category combinators
18
+ * @since 1.0.0
19
+ */
20
+ export declare const attenuateCapabilities: (groups: ReadonlyArray<ReadonlyArray<string>>) => <A, E, R>(effect: import("effect/Effect").Effect<A, E, R>) => import("effect/Effect").Effect<A, E, R>;
21
+ //# sourceMappingURL=CapabilityCeiling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CapabilityCeiling.d.ts","sourceRoot":"","sources":["../../../src/Flow/CapabilityCeiling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAA;AAE3D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAIzC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,aAAa,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CACf,CAAA;AAE7F;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,QAAQ,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAC3C,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAMzD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,0GAClB,CAAA"}
@@ -0,0 +1,27 @@
1
+ /** Declared capability ceilings shared by planning and execution.
2
+ * @since 1.0.0
3
+ */
4
+ import * as Capability from "@smthrs/capability/Capability";
5
+ import * as CapabilitySet from "@smthrs/capability/CapabilitySet";
6
+ import * as Context from "effect/Context";
7
+ import * as Option from "effect/Option";
8
+ import { Capabilities } from "./Annotations.js";
9
+ /** Returns only explicitly declared ceilings; omission inherits.
10
+ * @category accessors
11
+ * @since 1.0.0
12
+ */
13
+ export const capabilityCeilings = (annotations) => annotations.mapUnsafe.has(Capabilities.key) ? [Context.get(annotations, Capabilities)] : [];
14
+ /** Parses declaration patterns into ceiling groups. Invalid patterns are dropped, so they deny.
15
+ * @category constructors
16
+ * @since 1.0.0
17
+ */
18
+ export const parseCapabilityCeilings = (groups) => groups.map((group) => group.flatMap((text) => {
19
+ const parsed = Capability.parsePattern(text);
20
+ return Option.isSome(parsed) ? [parsed.value] : [];
21
+ }));
22
+ /** Applies declaration patterns as an exact conjunction. Invalid patterns deny.
23
+ * @category combinators
24
+ * @since 1.0.0
25
+ */
26
+ export const attenuateCapabilities = (groups) => CapabilitySet.attenuateGroups(parseCapabilityCeilings(groups));
27
+ //# sourceMappingURL=CapabilityCeiling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CapabilityCeiling.js","sourceRoot":"","sources":["../../../src/Flow/CapabilityCeiling.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,aAAa,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,WAAmC,EAAwC,EAAE,CAC9G,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAE7F;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAA4C,EACgB,EAAE,CAC9D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACpD,CAAC,CAAC,CACH,CAAA;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAA4C,EAAE,EAAE,CACpF,aAAa,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAA","sourcesContent":["/** Declared capability ceilings shared by planning and execution.\n * @since 1.0.0\n */\n\nimport * as Capability from \"@smthrs/capability/Capability\"\nimport * as CapabilitySet from \"@smthrs/capability/CapabilitySet\"\nimport * as Context from \"effect/Context\"\nimport * as Option from \"effect/Option\"\nimport { Capabilities } from \"./Annotations.ts\"\n\n/** Returns only explicitly declared ceilings; omission inherits.\n * @category accessors\n * @since 1.0.0\n */\nexport const capabilityCeilings = (annotations: Context.Context<never>): ReadonlyArray<ReadonlyArray<string>> =>\n annotations.mapUnsafe.has(Capabilities.key) ? [Context.get(annotations, Capabilities)] : []\n\n/** Parses declaration patterns into ceiling groups. Invalid patterns are dropped, so they deny.\n * @category constructors\n * @since 1.0.0\n */\nexport const parseCapabilityCeilings = (\n groups: ReadonlyArray<ReadonlyArray<string>>\n): ReadonlyArray<ReadonlyArray<Capability.CapabilityPattern>> =>\n groups.map((group) =>\n group.flatMap((text) => {\n const parsed = Capability.parsePattern(text)\n return Option.isSome(parsed) ? [parsed.value] : []\n })\n )\n\n/** Applies declaration patterns as an exact conjunction. Invalid patterns deny.\n * @category combinators\n * @since 1.0.0\n */\nexport const attenuateCapabilities = (groups: ReadonlyArray<ReadonlyArray<string>>) =>\n CapabilitySet.attenuateGroups(parseCapabilityCeilings(groups))\n"]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Defect recorded when an execution runs past its flow's declared deadline.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import * as Schema from "effect/Schema";
7
+ declare const DeadlineExceeded_base: Schema.Class<DeadlineExceeded, Schema.TaggedStruct<"@smthrs/flow/DeadlineExceeded", {
8
+ readonly code: Schema.withConstructorDefault<Schema.Literal<"deadline_exceeded">>;
9
+ readonly flowName: Schema.String;
10
+ readonly executionId: Schema.String;
11
+ readonly deadlineMs: Schema.Number;
12
+ readonly startedAtMs: Schema.Number;
13
+ readonly message: Schema.String;
14
+ }>, import("effect/Cause").YieldableError>;
15
+ /**
16
+ * An execution was still unsettled when its flow's `deadline` elapsed.
17
+ *
18
+ * The deadline counts from the execution's first start, which the engine
19
+ * journals, so a resume after a restart honors the original deadline rather
20
+ * than starting a new one. Expiry is terminal: the execution settles with this
21
+ * defect whether it was running or parked, and its attached children are
22
+ * cancelled with it. It is not a typed `execute` failure.
23
+ *
24
+ * `startedAtMs` is the journaled start and `deadlineMs` the declared bound, so
25
+ * `startedAtMs + deadlineMs` is when the execution expired.
26
+ *
27
+ * @category errors
28
+ * @since 1.0.0
29
+ */
30
+ export declare class DeadlineExceeded extends DeadlineExceeded_base {
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=DeadlineExceeded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeadlineExceeded.d.ts","sourceRoot":"","sources":["../../../src/Flow/DeadlineExceeded.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;;;;;AAGvC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAiB,SAAQ,qBAYrC;CAAG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Defect recorded when an execution runs past its flow's declared deadline.
3
+ *
4
+ * @since 1.0.0
5
+ */
6
+ import * as Effect from "effect/Effect";
7
+ import * as Schema from "effect/Schema";
8
+ import * as Fault from "../Fault.js";
9
+ /**
10
+ * An execution was still unsettled when its flow's `deadline` elapsed.
11
+ *
12
+ * The deadline counts from the execution's first start, which the engine
13
+ * journals, so a resume after a restart honors the original deadline rather
14
+ * than starting a new one. Expiry is terminal: the execution settles with this
15
+ * defect whether it was running or parked, and its attached children are
16
+ * cancelled with it. It is not a typed `execute` failure.
17
+ *
18
+ * `startedAtMs` is the journaled start and `deadlineMs` the declared bound, so
19
+ * `startedAtMs + deadlineMs` is when the execution expired.
20
+ *
21
+ * @category errors
22
+ * @since 1.0.0
23
+ */
24
+ export class DeadlineExceeded extends Schema.TaggedError()("@smthrs/flow/DeadlineExceeded", {
25
+ code: Schema.Literal("deadline_exceeded").pipe(Schema.withConstructorDefault(Effect.succeed("deadline_exceeded"))),
26
+ flowName: Schema.String,
27
+ executionId: Schema.String,
28
+ deadlineMs: Schema.Number,
29
+ startedAtMs: Schema.Number,
30
+ message: Schema.String
31
+ }) {
32
+ }
33
+ Fault.register("@smthrs/flow/DeadlineExceeded", "policy");
34
+ //# sourceMappingURL=DeadlineExceeded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeadlineExceeded.js","sourceRoot":"","sources":["../../../src/Flow/DeadlineExceeded.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,WAAW,EAAoB,CAC1E,+BAA+B,EAC/B;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAC5C,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CACnE;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM;IAC1B,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG;AAEJ,KAAK,CAAC,QAAQ,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["/**\n * Defect recorded when an execution runs past its flow's declared deadline.\n *\n * @since 1.0.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\nimport * as Fault from \"../Fault.ts\"\n\n/**\n * An execution was still unsettled when its flow's `deadline` elapsed.\n *\n * The deadline counts from the execution's first start, which the engine\n * journals, so a resume after a restart honors the original deadline rather\n * than starting a new one. Expiry is terminal: the execution settles with this\n * defect whether it was running or parked, and its attached children are\n * cancelled with it. It is not a typed `execute` failure.\n *\n * `startedAtMs` is the journaled start and `deadlineMs` the declared bound, so\n * `startedAtMs + deadlineMs` is when the execution expired.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class DeadlineExceeded extends Schema.TaggedError<DeadlineExceeded>()(\n \"@smthrs/flow/DeadlineExceeded\",\n {\n code: Schema.Literal(\"deadline_exceeded\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"deadline_exceeded\"))\n ),\n flowName: Schema.String,\n executionId: Schema.String,\n deadlineMs: Schema.Number,\n startedAtMs: Schema.Number,\n message: Schema.String\n }\n) {}\n\nFault.register(\"@smthrs/flow/DeadlineExceeded\", \"policy\")\n"]}
@@ -0,0 +1,25 @@
1
+ import * as Schema from "effect/Schema";
2
+ declare const ExecutionIdRequired_base: Schema.Class<ExecutionIdRequired, Schema.TaggedStruct<"@smthrs/flow/ExecutionIdRequired", {
3
+ readonly code: Schema.withConstructorDefault<Schema.Literal<"execution_id_required">>;
4
+ readonly flowName: Schema.String;
5
+ }>, import("effect/Cause").YieldableError>;
6
+ /**
7
+ * A flow execution has no selected identity.
8
+ *
9
+ * The opt-in `derived` execution-id source raises this when the payload
10
+ * cannot be canonicalized, for example a non-finite number, a lone surrogate,
11
+ * or a cycle. It dies with it before starting a run, so this is a defect and
12
+ * not a typed failure a body catches. The default `fresh` source instead
13
+ * mints a cryptographic UUID for every unkeyed invocation.
14
+ *
15
+ * A served resume raises it too: `FlowProxyServer` dies with it when the
16
+ * `ExecutionIdScope` configured on a layer returns `undefined` for a resume
17
+ * request, because the client value is not a fallback there.
18
+ *
19
+ * @category errors
20
+ * @since 0.1.0
21
+ */
22
+ export declare class ExecutionIdRequired extends ExecutionIdRequired_base {
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=ExecutionIdRequired.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionIdRequired.d.ts","sourceRoot":"","sources":["../../../src/Flow/ExecutionIdRequired.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,mBAAoB,SAAQ,wBAQxC;CAAG"}
@@ -0,0 +1,30 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * Failure raised when a flow execution has no explicit or derived identity.
4
+ *
5
+ * @since 0.1.0
6
+ */
7
+ import * as Effect from "effect/Effect";
8
+ import * as Schema from "effect/Schema";
9
+ /**
10
+ * A flow execution has no selected identity.
11
+ *
12
+ * The opt-in `derived` execution-id source raises this when the payload
13
+ * cannot be canonicalized, for example a non-finite number, a lone surrogate,
14
+ * or a cycle. It dies with it before starting a run, so this is a defect and
15
+ * not a typed failure a body catches. The default `fresh` source instead
16
+ * mints a cryptographic UUID for every unkeyed invocation.
17
+ *
18
+ * A served resume raises it too: `FlowProxyServer` dies with it when the
19
+ * `ExecutionIdScope` configured on a layer returns `undefined` for a resume
20
+ * request, because the client value is not a fallback there.
21
+ *
22
+ * @category errors
23
+ * @since 0.1.0
24
+ */
25
+ export class ExecutionIdRequired extends Schema.TaggedError()("@smthrs/flow/ExecutionIdRequired", {
26
+ code: Schema.Literal("execution_id_required").pipe(Schema.withConstructorDefault(Effect.succeed("execution_id_required"))),
27
+ flowName: Schema.String
28
+ }) {
29
+ }
30
+ //# sourceMappingURL=ExecutionIdRequired.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionIdRequired.js","sourceRoot":"","sources":["../../../src/Flow/ExecutionIdRequired.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,WAAW,EAAuB,CAChF,kCAAkC,EAClC;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAChD,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CACvE;IACD,QAAQ,EAAE,MAAM,CAAC,MAAM;CACxB,CACF;CAAG","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Failure raised when a flow execution has no explicit or derived identity.\n *\n * @since 0.1.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * A flow execution has no selected identity.\n *\n * The opt-in `derived` execution-id source raises this when the payload\n * cannot be canonicalized, for example a non-finite number, a lone surrogate,\n * or a cycle. It dies with it before starting a run, so this is a defect and\n * not a typed failure a body catches. The default `fresh` source instead\n * mints a cryptographic UUID for every unkeyed invocation.\n *\n * A served resume raises it too: `FlowProxyServer` dies with it when the\n * `ExecutionIdScope` configured on a layer returns `undefined` for a resume\n * request, because the client value is not a fallback there.\n *\n * @category errors\n * @since 0.1.0\n */\nexport class ExecutionIdRequired extends Schema.TaggedError<ExecutionIdRequired>()(\n \"@smthrs/flow/ExecutionIdRequired\",\n {\n code: Schema.Literal(\"execution_id_required\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"execution_id_required\"))\n ),\n flowName: Schema.String\n }\n) {}\n"]}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The ambient source of execution identity, for a flow executed without one.
3
+ *
4
+ * Identity has three sources, in this order: the `executionId` the caller
5
+ * named, the `idempotencyKey` the flow declared, and — when neither exists —
6
+ * the source in this module. The first two are decisions an author made at the
7
+ * call site or the declaration site; the third is a decision the *host* makes
8
+ * once, for every flow it drives, which is why it is a context reference and
9
+ * not another option on `execute`.
10
+ *
11
+ * The default mints a fresh cryptographic UUID for every unkeyed invocation.
12
+ * Equal payloads are independent requests. To reattach after a crash, retain
13
+ * the returned execution id, declare an idempotency key, or explicitly install
14
+ * the `derived` source. Changing this default does not rewrite stored ids.
15
+ *
16
+ * @since 0.1.0
17
+ */
18
+ import * as Context from "effect/Context";
19
+ import * as Crypto from "effect/Crypto";
20
+ import * as Effect from "effect/Effect";
21
+ import * as Layer from "effect/Layer";
22
+ import type { Any } from "./Flow.ts";
23
+ /**
24
+ * Mints the execution id of an invocation that named none.
25
+ *
26
+ * It is consulted only after the two explicit sources are absent, and it runs
27
+ * before the runtime is read, so a source that cannot name the invocation
28
+ * fails the execution rather than starting one under a guessed identity.
29
+ *
30
+ * @category models
31
+ * @since 0.1.0
32
+ */
33
+ export interface ExecutionIdSource {
34
+ readonly mint: <W extends Any>(flow: W, payload: unknown) => Effect.Effect<string, never, Crypto.Crypto | W["payloadSchema"]["EncodingServices"]>;
35
+ }
36
+ /**
37
+ * An opt-in deterministic source over the flow tag and the payload's
38
+ * canonical form.
39
+ *
40
+ * Same tag and same encoded payload derive the same id, which is exactly the
41
+ * pair the durable driver already treats as one invocation, so a re-drive of a
42
+ * crashed program re-attaches to the run it left behind instead of opening a
43
+ * second one.
44
+ *
45
+ * The tag and canonical payload key are JSON-tuple framed before hashing.
46
+ * Their strings are used exactly as given and encoded as UTF-8, with no Unicode
47
+ * normalization. This preimage encoding freezes at rc.0.
48
+ *
49
+ * @category constructors
50
+ * @since 0.1.0
51
+ */
52
+ export declare const derived: ExecutionIdSource;
53
+ /**
54
+ * Mints independent execution ids for unkeyed requests using host cryptography.
55
+ * @category constructors
56
+ * @since 0.1.0
57
+ */
58
+ export declare const fresh: ExecutionIdSource;
59
+ /**
60
+ * Context reference carrying the host's execution-id source, defaulting to
61
+ * {@link fresh}.
62
+ *
63
+ * @category idempotency
64
+ * @since 0.1.0
65
+ */
66
+ export declare const CurrentExecutionIds: Context.Reference<ExecutionIdSource>;
67
+ /**
68
+ * Declares the host's execution-id source as a layer.
69
+ *
70
+ * **When to use**
71
+ *
72
+ * Install `derived` when equal payloads deliberately identify the same work,
73
+ * or provide a host-specific identity source. Explicit caller execution ids
74
+ * and declared idempotency keys take precedence over this source.
75
+ *
76
+ * @category idempotency
77
+ * @since 0.1.0
78
+ */
79
+ export declare const layerExecutionIds: (source: ExecutionIdSource) => Layer.Layer<never>;
80
+ //# sourceMappingURL=ExecutionIds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionIds.d.ts","sourceRoot":"","sources":["../../../src/Flow/ExecutionIds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAEpC;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,GAAG,EAC3B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;CAC1F;AA2BD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,EAAE,iBAOrB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,iBAEnB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,sCAK/B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,iBAAiB,KACxB,KAAK,CAAC,KAAK,CAAC,KAAK,CAA+C,CAAA"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * The ambient source of execution identity, for a flow executed without one.
3
+ *
4
+ * Identity has three sources, in this order: the `executionId` the caller
5
+ * named, the `idempotencyKey` the flow declared, and — when neither exists —
6
+ * the source in this module. The first two are decisions an author made at the
7
+ * call site or the declaration site; the third is a decision the *host* makes
8
+ * once, for every flow it drives, which is why it is a context reference and
9
+ * not another option on `execute`.
10
+ *
11
+ * The default mints a fresh cryptographic UUID for every unkeyed invocation.
12
+ * Equal payloads are independent requests. To reattach after a crash, retain
13
+ * the returned execution id, declare an idempotency key, or explicitly install
14
+ * the `derived` source. Changing this default does not rewrite stored ids.
15
+ *
16
+ * @since 0.1.0
17
+ */
18
+ import { Sha256 } from "@smthrs/crypto";
19
+ import { DerivedKey } from "@smthrs/keys";
20
+ import * as Context from "effect/Context";
21
+ import * as Crypto from "effect/Crypto";
22
+ import * as Effect from "effect/Effect";
23
+ import * as Layer from "effect/Layer";
24
+ import * as Schema from "effect/Schema";
25
+ import { ExecutionIdRequired } from "./ExecutionIdRequired.js";
26
+ /**
27
+ * The canonical key of an invocation: the flow's own payload codec, then RFC
28
+ * 8785, then SHA-256.
29
+ *
30
+ * Encoding first is what makes the key agree with the durable driver, which
31
+ * compares the ENCODED payload when it decides whether an existing run row is
32
+ * the same invocation. A payload with no canonical form — a non-finite number,
33
+ * a lone surrogate, a cycle — has no derivable identity at all, so it fails
34
+ * here instead of hashing something approximate.
35
+ *
36
+ * @private
37
+ */
38
+ const canonicalKey = (flow, payload) => Schema.encodeEffect(Schema.toCodecJson(flow.payloadSchema))(payload).pipe(Effect.flatMap((encoded) => Schema.decodeUnknownEffect(DerivedKey)(encoded)), Effect.mapError(() => new ExecutionIdRequired({ flowName: flow._tag })));
39
+ /**
40
+ * An opt-in deterministic source over the flow tag and the payload's
41
+ * canonical form.
42
+ *
43
+ * Same tag and same encoded payload derive the same id, which is exactly the
44
+ * pair the durable driver already treats as one invocation, so a re-drive of a
45
+ * crashed program re-attaches to the run it left behind instead of opening a
46
+ * second one.
47
+ *
48
+ * The tag and canonical payload key are JSON-tuple framed before hashing.
49
+ * Their strings are used exactly as given and encoded as UTF-8, with no Unicode
50
+ * normalization. This preimage encoding freezes at rc.0.
51
+ *
52
+ * @category constructors
53
+ * @since 0.1.0
54
+ */
55
+ export const derived = {
56
+ mint: (flow, payload) => canonicalKey(flow, payload).pipe(
57
+ // The JSON tuple prevents delimiter splicing. This exact framing freezes at rc.0.
58
+ Effect.flatMap((key) => Effect.orDie(Schema.decodeUnknownEffect(Sha256)(JSON.stringify([flow._tag, key])))), Effect.orDie)
59
+ };
60
+ /**
61
+ * Mints independent execution ids for unkeyed requests using host cryptography.
62
+ * @category constructors
63
+ * @since 0.1.0
64
+ */
65
+ export const fresh = {
66
+ mint: () => Effect.flatMap(Crypto.Crypto, (crypto) => Effect.orDie(crypto.randomUUIDv4))
67
+ };
68
+ /**
69
+ * Context reference carrying the host's execution-id source, defaulting to
70
+ * {@link fresh}.
71
+ *
72
+ * @category idempotency
73
+ * @since 0.1.0
74
+ */
75
+ export const CurrentExecutionIds = Context.Reference("@smthrs/flow/Flow/CurrentExecutionIds", {
76
+ defaultValue: () => fresh
77
+ });
78
+ /**
79
+ * Declares the host's execution-id source as a layer.
80
+ *
81
+ * **When to use**
82
+ *
83
+ * Install `derived` when equal payloads deliberately identify the same work,
84
+ * or provide a host-specific identity source. Explicit caller execution ids
85
+ * and declared idempotency keys take precedence over this source.
86
+ *
87
+ * @category idempotency
88
+ * @since 0.1.0
89
+ */
90
+ export const layerExecutionIds = (source) => Layer.succeed(CurrentExecutionIds)(source);
91
+ //# sourceMappingURL=ExecutionIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionIds.js","sourceRoot":"","sources":["../../../src/Flow/ExecutionIds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAoB9D;;;;;;;;;;;GAWG;AACH,MAAM,YAAY,GAAG,CACnB,IAAO,EACP,OAAgB,EACoF,EAAE,CACrG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAIlE,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,EAC5E,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACxE,CAAA;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,OAAO,GAAsB;IACxC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CACtB,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI;IAC9B,kFAAkF;IAClF,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3G,MAAM,CAAC,KAAK,CACb;CACJ,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAsB;IACtC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;CACzF,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,CAClD,uCAAuC,EACvC;IACE,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK;CAC1B,CACF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,MAAyB,EACL,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA","sourcesContent":["/**\n * The ambient source of execution identity, for a flow executed without one.\n *\n * Identity has three sources, in this order: the `executionId` the caller\n * named, the `idempotencyKey` the flow declared, and — when neither exists —\n * the source in this module. The first two are decisions an author made at the\n * call site or the declaration site; the third is a decision the *host* makes\n * once, for every flow it drives, which is why it is a context reference and\n * not another option on `execute`.\n *\n * The default mints a fresh cryptographic UUID for every unkeyed invocation.\n * Equal payloads are independent requests. To reattach after a crash, retain\n * the returned execution id, declare an idempotency key, or explicitly install\n * the `derived` source. Changing this default does not rewrite stored ids.\n *\n * @since 0.1.0\n */\n\nimport { Sha256 } from \"@smthrs/crypto\"\nimport { DerivedKey } from \"@smthrs/keys\"\nimport * as Context from \"effect/Context\"\nimport * as Crypto from \"effect/Crypto\"\nimport * as Effect from \"effect/Effect\"\nimport * as Layer from \"effect/Layer\"\nimport * as Schema from \"effect/Schema\"\nimport { ExecutionIdRequired } from \"./ExecutionIdRequired.ts\"\nimport type { Any } from \"./Flow.ts\"\n\n/**\n * Mints the execution id of an invocation that named none.\n *\n * It is consulted only after the two explicit sources are absent, and it runs\n * before the runtime is read, so a source that cannot name the invocation\n * fails the execution rather than starting one under a guessed identity.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface ExecutionIdSource {\n readonly mint: <W extends Any>(\n flow: W,\n payload: unknown\n ) => Effect.Effect<string, never, Crypto.Crypto | W[\"payloadSchema\"][\"EncodingServices\"]>\n}\n\n/**\n * The canonical key of an invocation: the flow's own payload codec, then RFC\n * 8785, then SHA-256.\n *\n * Encoding first is what makes the key agree with the durable driver, which\n * compares the ENCODED payload when it decides whether an existing run row is\n * the same invocation. A payload with no canonical form — a non-finite number,\n * a lone surrogate, a cycle — has no derivable identity at all, so it fails\n * here instead of hashing something approximate.\n *\n * @private\n */\nconst canonicalKey = <W extends Any>(\n flow: W,\n payload: unknown\n): Effect.Effect<string, ExecutionIdRequired, Crypto.Crypto | W[\"payloadSchema\"][\"EncodingServices\"]> =>\n (Schema.encodeEffect(Schema.toCodecJson(flow.payloadSchema))(payload) as Effect.Effect<\n unknown,\n unknown,\n W[\"payloadSchema\"][\"EncodingServices\"]\n >).pipe(\n Effect.flatMap((encoded) => Schema.decodeUnknownEffect(DerivedKey)(encoded)),\n Effect.mapError(() => new ExecutionIdRequired({ flowName: flow._tag }))\n )\n\n/**\n * An opt-in deterministic source over the flow tag and the payload's\n * canonical form.\n *\n * Same tag and same encoded payload derive the same id, which is exactly the\n * pair the durable driver already treats as one invocation, so a re-drive of a\n * crashed program re-attaches to the run it left behind instead of opening a\n * second one.\n *\n * The tag and canonical payload key are JSON-tuple framed before hashing.\n * Their strings are used exactly as given and encoded as UTF-8, with no Unicode\n * normalization. This preimage encoding freezes at rc.0.\n *\n * @category constructors\n * @since 0.1.0\n */\nexport const derived: ExecutionIdSource = {\n mint: (flow, payload) =>\n canonicalKey(flow, payload).pipe(\n // The JSON tuple prevents delimiter splicing. This exact framing freezes at rc.0.\n Effect.flatMap((key) => Effect.orDie(Schema.decodeUnknownEffect(Sha256)(JSON.stringify([flow._tag, key])))),\n Effect.orDie\n )\n}\n\n/**\n * Mints independent execution ids for unkeyed requests using host cryptography.\n * @category constructors\n * @since 0.1.0\n */\nexport const fresh: ExecutionIdSource = {\n mint: () => Effect.flatMap(Crypto.Crypto, (crypto) => Effect.orDie(crypto.randomUUIDv4))\n}\n\n/**\n * Context reference carrying the host's execution-id source, defaulting to\n * {@link fresh}.\n *\n * @category idempotency\n * @since 0.1.0\n */\nexport const CurrentExecutionIds = Context.Reference<ExecutionIdSource>(\n \"@smthrs/flow/Flow/CurrentExecutionIds\",\n {\n defaultValue: () => fresh\n }\n)\n\n/**\n * Declares the host's execution-id source as a layer.\n *\n * **When to use**\n *\n * Install `derived` when equal payloads deliberately identify the same work,\n * or provide a host-specific identity source. Explicit caller execution ids\n * and declared idempotency keys take precedence over this source.\n *\n * @category idempotency\n * @since 0.1.0\n */\nexport const layerExecutionIds = (\n source: ExecutionIdSource\n): Layer.Layer<never> => Layer.succeed(CurrentExecutionIds)(source)\n"]}