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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/LICENSE +21 -0
  3. package/README.md +212 -2
  4. package/THIRD_PARTY_NOTICES.md +52 -0
  5. package/dist/cjs/Action/Action.d.ts +250 -0
  6. package/dist/cjs/Action/Action.d.ts.map +1 -0
  7. package/dist/cjs/Action/Action.js +42 -0
  8. package/dist/cjs/Action/Action.js.map +7 -0
  9. package/dist/cjs/Action/AttemptTimedOut.d.ts +33 -0
  10. package/dist/cjs/Action/AttemptTimedOut.d.ts.map +1 -0
  11. package/dist/cjs/Action/AttemptTimedOut.js +51 -0
  12. package/dist/cjs/Action/AttemptTimedOut.js.map +7 -0
  13. package/dist/cjs/Action/BoundaryMode.d.ts +29 -0
  14. package/dist/cjs/Action/BoundaryMode.d.ts.map +1 -0
  15. package/dist/cjs/Action/BoundaryMode.js +36 -0
  16. package/dist/cjs/Action/BoundaryMode.js.map +7 -0
  17. package/dist/cjs/Action/CacheEnvironment.d.ts +158 -0
  18. package/dist/cjs/Action/CacheEnvironment.d.ts.map +1 -0
  19. package/dist/cjs/Action/CacheEnvironment.js +57 -0
  20. package/dist/cjs/Action/CacheEnvironment.js.map +7 -0
  21. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  22. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  23. package/dist/cjs/Action/ConcurrentKeylessDispatch.js +46 -0
  24. package/dist/cjs/Action/ConcurrentKeylessDispatch.js.map +7 -0
  25. package/dist/cjs/Action/Context.d.ts +131 -0
  26. package/dist/cjs/Action/Context.d.ts.map +1 -0
  27. package/dist/cjs/Action/Context.js +68 -0
  28. package/dist/cjs/Action/Context.js.map +7 -0
  29. package/dist/cjs/Action/DuplicateImplementation.d.ts +20 -0
  30. package/dist/cjs/Action/DuplicateImplementation.d.ts.map +1 -0
  31. package/dist/cjs/Action/DuplicateImplementation.js +46 -0
  32. package/dist/cjs/Action/DuplicateImplementation.js.map +7 -0
  33. package/dist/cjs/Action/FileBoundary.d.ts +59 -0
  34. package/dist/cjs/Action/FileBoundary.d.ts.map +1 -0
  35. package/dist/cjs/Action/FileBoundary.js +81 -0
  36. package/dist/cjs/Action/FileBoundary.js.map +7 -0
  37. package/dist/cjs/Action/FileInput.d.ts +28 -0
  38. package/dist/cjs/Action/FileInput.d.ts.map +1 -0
  39. package/dist/cjs/Action/FileInput.js +42 -0
  40. package/dist/cjs/Action/FileInput.js.map +7 -0
  41. package/dist/cjs/Action/Filegroup.d.ts +16 -0
  42. package/dist/cjs/Action/Filegroup.d.ts.map +1 -0
  43. package/dist/cjs/Action/Filegroup.js +27 -0
  44. package/dist/cjs/Action/Filegroup.js.map +7 -0
  45. package/dist/cjs/Action/Glob.d.ts +8 -0
  46. package/dist/cjs/Action/Glob.d.ts.map +1 -0
  47. package/dist/cjs/Action/Glob.js +28 -0
  48. package/dist/cjs/Action/Glob.js.map +7 -0
  49. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts +26 -0
  50. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  51. package/dist/cjs/Action/ImplementationVersionMismatch.js +45 -0
  52. package/dist/cjs/Action/ImplementationVersionMismatch.js.map +7 -0
  53. package/dist/cjs/Action/Implementations.d.ts +114 -0
  54. package/dist/cjs/Action/Implementations.d.ts.map +1 -0
  55. package/dist/cjs/Action/Implementations.js +65 -0
  56. package/dist/cjs/Action/Implementations.js.map +7 -0
  57. package/dist/cjs/Action/InfraInterrupt.d.ts +26 -0
  58. package/dist/cjs/Action/InfraInterrupt.d.ts.map +1 -0
  59. package/dist/cjs/Action/InfraInterrupt.js +46 -0
  60. package/dist/cjs/Action/InfraInterrupt.js.map +7 -0
  61. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  62. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  63. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js +54 -0
  64. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js.map +7 -0
  65. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  66. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  67. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js +47 -0
  68. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +7 -0
  69. package/dist/cjs/Action/StepIdentity.d.ts +153 -0
  70. package/dist/cjs/Action/StepIdentity.d.ts.map +1 -0
  71. package/dist/cjs/Action/StepIdentity.js +75 -0
  72. package/dist/cjs/Action/StepIdentity.js.map +7 -0
  73. package/dist/cjs/Action/TreeArtifact.d.ts +8 -0
  74. package/dist/cjs/Action/TreeArtifact.d.ts.map +1 -0
  75. package/dist/cjs/Action/TreeArtifact.js +25 -0
  76. package/dist/cjs/Action/TreeArtifact.js.map +7 -0
  77. package/dist/cjs/Action/TypeId.d.ts +8 -0
  78. package/dist/cjs/Action/TypeId.d.ts.map +1 -0
  79. package/dist/cjs/Action/TypeId.js +25 -0
  80. package/dist/cjs/Action/TypeId.js.map +7 -0
  81. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  82. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  83. package/dist/cjs/Action/UncanonicalIdempotencyKey.js +51 -0
  84. package/dist/cjs/Action/UncanonicalIdempotencyKey.js.map +7 -0
  85. package/dist/cjs/Action/idempotencyKey.d.ts +21 -0
  86. package/dist/cjs/Action/idempotencyKey.d.ts.map +1 -0
  87. package/dist/cjs/Action/idempotencyKey.js +59 -0
  88. package/dist/cjs/Action/idempotencyKey.js.map +7 -0
  89. package/dist/cjs/Action/index.d.ts +29 -0
  90. package/dist/cjs/Action/index.d.ts.map +1 -0
  91. package/dist/cjs/Action/index.js +60 -0
  92. package/dist/cjs/Action/index.js.map +7 -0
  93. package/dist/cjs/Action/make.d.ts +128 -0
  94. package/dist/cjs/Action/make.d.ts.map +1 -0
  95. package/dist/cjs/Action/make.js +387 -0
  96. package/dist/cjs/Action/make.js.map +7 -0
  97. package/dist/cjs/Action/raceAll.d.ts +21 -0
  98. package/dist/cjs/Action/raceAll.d.ts.map +1 -0
  99. package/dist/cjs/Action/raceAll.js +46 -0
  100. package/dist/cjs/Action/raceAll.js.map +7 -0
  101. package/dist/cjs/Action/retry.d.ts +19 -0
  102. package/dist/cjs/Action/retry.d.ts.map +1 -0
  103. package/dist/cjs/Action/retry.js +75 -0
  104. package/dist/cjs/Action/retry.js.map +7 -0
  105. package/dist/cjs/Deadline.d.ts +110 -0
  106. package/dist/cjs/Deadline.d.ts.map +1 -0
  107. package/dist/cjs/Deadline.js +112 -0
  108. package/dist/cjs/Deadline.js.map +7 -0
  109. package/dist/cjs/DurableClock.d.ts +60 -0
  110. package/dist/cjs/DurableClock.d.ts.map +1 -0
  111. package/dist/cjs/DurableClock.js +107 -0
  112. package/dist/cjs/DurableClock.js.map +7 -0
  113. package/dist/cjs/DurableDeferred.d.ts +311 -0
  114. package/dist/cjs/DurableDeferred.d.ts.map +1 -0
  115. package/dist/cjs/DurableDeferred.js +322 -0
  116. package/dist/cjs/DurableDeferred.js.map +7 -0
  117. package/dist/cjs/DurableQueue.d.ts +160 -0
  118. package/dist/cjs/DurableQueue.d.ts.map +1 -0
  119. package/dist/cjs/DurableQueue.js +229 -0
  120. package/dist/cjs/DurableQueue.js.map +7 -0
  121. package/dist/cjs/ExternalJob.d.ts +179 -0
  122. package/dist/cjs/ExternalJob.d.ts.map +1 -0
  123. package/dist/cjs/ExternalJob.js +339 -0
  124. package/dist/cjs/ExternalJob.js.map +7 -0
  125. package/dist/cjs/Fault.d.ts +131 -0
  126. package/dist/cjs/Fault.d.ts.map +1 -0
  127. package/dist/cjs/Fault.js +157 -0
  128. package/dist/cjs/Fault.js.map +7 -0
  129. package/dist/cjs/Flow/Annotations.d.ts +245 -0
  130. package/dist/cjs/Flow/Annotations.d.ts.map +1 -0
  131. package/dist/cjs/Flow/Annotations.js +72 -0
  132. package/dist/cjs/Flow/Annotations.js.map +7 -0
  133. package/dist/cjs/Flow/CapabilityCeiling.d.ts +21 -0
  134. package/dist/cjs/Flow/CapabilityCeiling.d.ts.map +1 -0
  135. package/dist/cjs/Flow/CapabilityCeiling.js +49 -0
  136. package/dist/cjs/Flow/CapabilityCeiling.js.map +7 -0
  137. package/dist/cjs/Flow/DeadlineExceeded.d.ts +33 -0
  138. package/dist/cjs/Flow/DeadlineExceeded.d.ts.map +1 -0
  139. package/dist/cjs/Flow/DeadlineExceeded.js +52 -0
  140. package/dist/cjs/Flow/DeadlineExceeded.js.map +7 -0
  141. package/dist/cjs/Flow/ExecutionIdRequired.d.ts +25 -0
  142. package/dist/cjs/Flow/ExecutionIdRequired.d.ts.map +1 -0
  143. package/dist/cjs/Flow/ExecutionIdRequired.js +46 -0
  144. package/dist/cjs/Flow/ExecutionIdRequired.js.map +7 -0
  145. package/dist/cjs/Flow/ExecutionIds.d.ts +80 -0
  146. package/dist/cjs/Flow/ExecutionIds.d.ts.map +1 -0
  147. package/dist/cjs/Flow/ExecutionIds.js +66 -0
  148. package/dist/cjs/Flow/ExecutionIds.js.map +7 -0
  149. package/dist/cjs/Flow/Flow.d.ts +422 -0
  150. package/dist/cjs/Flow/Flow.d.ts.map +1 -0
  151. package/dist/cjs/Flow/Flow.js +17 -0
  152. package/dist/cjs/Flow/Flow.js.map +7 -0
  153. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts +35 -0
  154. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  155. package/dist/cjs/Flow/MaxRoundsExceeded.js +50 -0
  156. package/dist/cjs/Flow/MaxRoundsExceeded.js.map +7 -0
  157. package/dist/cjs/Flow/Outcome.d.ts +162 -0
  158. package/dist/cjs/Flow/Outcome.d.ts.map +1 -0
  159. package/dist/cjs/Flow/Outcome.js +80 -0
  160. package/dist/cjs/Flow/Outcome.js.map +7 -0
  161. package/dist/cjs/Flow/Result.d.ts +186 -0
  162. package/dist/cjs/Flow/Result.d.ts.map +1 -0
  163. package/dist/cjs/Flow/Result.js +159 -0
  164. package/dist/cjs/Flow/Result.js.map +7 -0
  165. package/dist/cjs/Flow/Runtime.d.ts +98 -0
  166. package/dist/cjs/Flow/Runtime.d.ts.map +1 -0
  167. package/dist/cjs/Flow/Runtime.js +186 -0
  168. package/dist/cjs/Flow/Runtime.js.map +7 -0
  169. package/dist/cjs/Flow/TypeId.d.ts +8 -0
  170. package/dist/cjs/Flow/TypeId.d.ts.map +1 -0
  171. package/dist/cjs/Flow/TypeId.js +25 -0
  172. package/dist/cjs/Flow/TypeId.js.map +7 -0
  173. package/dist/cjs/Flow/index.d.ts +17 -0
  174. package/dist/cjs/Flow/index.d.ts.map +1 -0
  175. package/dist/cjs/Flow/index.js +29 -0
  176. package/dist/cjs/Flow/index.js.map +7 -0
  177. package/dist/cjs/Flow/internal.d.ts +34 -0
  178. package/dist/cjs/Flow/internal.d.ts.map +1 -0
  179. package/dist/cjs/Flow/internal.js +187 -0
  180. package/dist/cjs/Flow/internal.js.map +7 -0
  181. package/dist/cjs/Flow/make.d.ts +149 -0
  182. package/dist/cjs/Flow/make.d.ts.map +1 -0
  183. package/dist/cjs/Flow/make.js +107 -0
  184. package/dist/cjs/Flow/make.js.map +7 -0
  185. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  186. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  187. package/dist/cjs/FlowRuntime/CancelRequestFailed.js +51 -0
  188. package/dist/cjs/FlowRuntime/CancelRequestFailed.js.map +7 -0
  189. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  190. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  191. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js +55 -0
  192. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js.map +7 -0
  193. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  194. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  195. package/dist/cjs/FlowRuntime/FlowCycleDetected.js +49 -0
  196. package/dist/cjs/FlowRuntime/FlowCycleDetected.js.map +7 -0
  197. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  198. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  199. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js +53 -0
  200. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js.map +7 -0
  201. package/dist/cjs/FlowRuntime/FlowInstance.d.ts +115 -0
  202. package/dist/cjs/FlowRuntime/FlowInstance.d.ts.map +1 -0
  203. package/dist/cjs/FlowRuntime/FlowInstance.js +37 -0
  204. package/dist/cjs/FlowRuntime/FlowInstance.js.map +7 -0
  205. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts +204 -0
  206. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  207. package/dist/cjs/FlowRuntime/FlowRuntime.js +37 -0
  208. package/dist/cjs/FlowRuntime/FlowRuntime.js.map +7 -0
  209. package/dist/cjs/FlowRuntime/NodeRecord.d.ts +177 -0
  210. package/dist/cjs/FlowRuntime/NodeRecord.d.ts.map +1 -0
  211. package/dist/cjs/FlowRuntime/NodeRecord.js +17 -0
  212. package/dist/cjs/FlowRuntime/NodeRecord.js.map +7 -0
  213. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  214. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  215. package/dist/cjs/FlowRuntime/WaitingAnnotation.js +53 -0
  216. package/dist/cjs/FlowRuntime/WaitingAnnotation.js.map +7 -0
  217. package/dist/cjs/FlowRuntime/index.d.ts +14 -0
  218. package/dist/cjs/FlowRuntime/index.d.ts.map +1 -0
  219. package/dist/cjs/FlowRuntime/index.js +26 -0
  220. package/dist/cjs/FlowRuntime/index.js.map +7 -0
  221. package/dist/cjs/Graph.d.ts +325 -0
  222. package/dist/cjs/Graph.d.ts.map +1 -0
  223. package/dist/cjs/Graph.js +1020 -0
  224. package/dist/cjs/Graph.js.map +7 -0
  225. package/dist/cjs/HumanTask.d.ts +442 -0
  226. package/dist/cjs/HumanTask.d.ts.map +1 -0
  227. package/dist/cjs/HumanTask.js +422 -0
  228. package/dist/cjs/HumanTask.js.map +7 -0
  229. package/dist/cjs/Interpreter.d.ts +223 -0
  230. package/dist/cjs/Interpreter.d.ts.map +1 -0
  231. package/dist/cjs/Interpreter.js +919 -0
  232. package/dist/cjs/Interpreter.js.map +7 -0
  233. package/dist/cjs/Poll.d.ts +240 -0
  234. package/dist/cjs/Poll.d.ts.map +1 -0
  235. package/dist/cjs/Poll.js +154 -0
  236. package/dist/cjs/Poll.js.map +7 -0
  237. package/dist/cjs/RetryPolicy.d.ts +273 -0
  238. package/dist/cjs/RetryPolicy.d.ts.map +1 -0
  239. package/dist/cjs/RetryPolicy.js +251 -0
  240. package/dist/cjs/RetryPolicy.js.map +7 -0
  241. package/dist/cjs/Sleep.d.ts +98 -0
  242. package/dist/cjs/Sleep.d.ts.map +1 -0
  243. package/dist/cjs/Sleep.js +141 -0
  244. package/dist/cjs/Sleep.js.map +7 -0
  245. package/dist/cjs/Stall.d.ts +173 -0
  246. package/dist/cjs/Stall.d.ts.map +1 -0
  247. package/dist/cjs/Stall.js +92 -0
  248. package/dist/cjs/Stall.js.map +7 -0
  249. package/dist/cjs/WaitFor.d.ts +109 -0
  250. package/dist/cjs/WaitFor.d.ts.map +1 -0
  251. package/dist/cjs/WaitFor.js +117 -0
  252. package/dist/cjs/WaitFor.js.map +7 -0
  253. package/dist/cjs/index.d.ts +107 -0
  254. package/dist/cjs/index.d.ts.map +1 -0
  255. package/dist/cjs/index.js +69 -0
  256. package/dist/cjs/index.js.map +7 -0
  257. package/dist/cjs/internal/BoundedJson.d.ts +48 -0
  258. package/dist/cjs/internal/BoundedJson.d.ts.map +1 -0
  259. package/dist/cjs/internal/BoundedJson.js +96 -0
  260. package/dist/cjs/internal/BoundedJson.js.map +7 -0
  261. package/dist/cjs/internal/DeclarationSite.d.ts +135 -0
  262. package/dist/cjs/internal/DeclarationSite.d.ts.map +1 -0
  263. package/dist/cjs/internal/DeclarationSite.js +89 -0
  264. package/dist/cjs/internal/DeclarationSite.js.map +7 -0
  265. package/dist/cjs/internal/Declarations.d.ts +35 -0
  266. package/dist/cjs/internal/Declarations.d.ts.map +1 -0
  267. package/dist/cjs/internal/Declarations.js +50 -0
  268. package/dist/cjs/internal/Declarations.js.map +7 -0
  269. package/dist/cjs/internal/ExecutionMiddleware.d.ts +21 -0
  270. package/dist/cjs/internal/ExecutionMiddleware.d.ts.map +1 -0
  271. package/dist/cjs/internal/ExecutionMiddleware.js +39 -0
  272. package/dist/cjs/internal/ExecutionMiddleware.js.map +7 -0
  273. package/dist/cjs/internal/JsonSchemaSubset.d.ts +133 -0
  274. package/dist/cjs/internal/JsonSchemaSubset.d.ts.map +1 -0
  275. package/dist/cjs/internal/JsonSchemaSubset.js +229 -0
  276. package/dist/cjs/internal/JsonSchemaSubset.js.map +7 -0
  277. package/dist/cjs/internal/OutcomeMarker.d.ts +18 -0
  278. package/dist/cjs/internal/OutcomeMarker.d.ts.map +1 -0
  279. package/dist/cjs/internal/OutcomeMarker.js +27 -0
  280. package/dist/cjs/internal/OutcomeMarker.js.map +7 -0
  281. package/dist/cjs/package.json +1 -0
  282. package/dist/esm/Action/Action.d.ts +250 -0
  283. package/dist/esm/Action/Action.d.ts.map +1 -0
  284. package/dist/esm/Action/Action.js +30 -0
  285. package/dist/esm/Action/Action.js.map +1 -0
  286. package/dist/esm/Action/AttemptTimedOut.d.ts +33 -0
  287. package/dist/esm/Action/AttemptTimedOut.d.ts.map +1 -0
  288. package/dist/esm/Action/AttemptTimedOut.js +32 -0
  289. package/dist/esm/Action/AttemptTimedOut.js.map +1 -0
  290. package/dist/esm/Action/BoundaryMode.d.ts +29 -0
  291. package/dist/esm/Action/BoundaryMode.d.ts.map +1 -0
  292. package/dist/esm/Action/BoundaryMode.js +23 -0
  293. package/dist/esm/Action/BoundaryMode.js.map +1 -0
  294. package/dist/esm/Action/CacheEnvironment.d.ts +158 -0
  295. package/dist/esm/Action/CacheEnvironment.d.ts.map +1 -0
  296. package/dist/esm/Action/CacheEnvironment.js +130 -0
  297. package/dist/esm/Action/CacheEnvironment.js.map +1 -0
  298. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  299. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  300. package/dist/esm/Action/ConcurrentKeylessDispatch.js +33 -0
  301. package/dist/esm/Action/ConcurrentKeylessDispatch.js.map +1 -0
  302. package/dist/esm/Action/Context.d.ts +131 -0
  303. package/dist/esm/Action/Context.d.ts.map +1 -0
  304. package/dist/esm/Action/Context.js +99 -0
  305. package/dist/esm/Action/Context.js.map +1 -0
  306. package/dist/esm/Action/DuplicateImplementation.d.ts +20 -0
  307. package/dist/esm/Action/DuplicateImplementation.d.ts.map +1 -0
  308. package/dist/esm/Action/DuplicateImplementation.js +20 -0
  309. package/dist/esm/Action/DuplicateImplementation.js.map +1 -0
  310. package/dist/esm/Action/FileBoundary.d.ts +59 -0
  311. package/dist/esm/Action/FileBoundary.d.ts.map +1 -0
  312. package/dist/esm/Action/FileBoundary.js +60 -0
  313. package/dist/esm/Action/FileBoundary.js.map +1 -0
  314. package/dist/esm/Action/FileInput.d.ts +28 -0
  315. package/dist/esm/Action/FileInput.d.ts.map +1 -0
  316. package/dist/esm/Action/FileInput.js +32 -0
  317. package/dist/esm/Action/FileInput.js.map +1 -0
  318. package/dist/esm/Action/Filegroup.d.ts +16 -0
  319. package/dist/esm/Action/Filegroup.d.ts.map +1 -0
  320. package/dist/esm/Action/Filegroup.js +15 -0
  321. package/dist/esm/Action/Filegroup.js.map +1 -0
  322. package/dist/esm/Action/Glob.d.ts +8 -0
  323. package/dist/esm/Action/Glob.d.ts.map +1 -0
  324. package/dist/esm/Action/Glob.js +7 -0
  325. package/dist/esm/Action/Glob.js.map +1 -0
  326. package/dist/esm/Action/ImplementationVersionMismatch.d.ts +26 -0
  327. package/dist/esm/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  328. package/dist/esm/Action/ImplementationVersionMismatch.js +24 -0
  329. package/dist/esm/Action/ImplementationVersionMismatch.js.map +1 -0
  330. package/dist/esm/Action/Implementations.d.ts +114 -0
  331. package/dist/esm/Action/Implementations.d.ts.map +1 -0
  332. package/dist/esm/Action/Implementations.js +94 -0
  333. package/dist/esm/Action/Implementations.js.map +1 -0
  334. package/dist/esm/Action/InfraInterrupt.d.ts +26 -0
  335. package/dist/esm/Action/InfraInterrupt.d.ts.map +1 -0
  336. package/dist/esm/Action/InfraInterrupt.js +25 -0
  337. package/dist/esm/Action/InfraInterrupt.js.map +1 -0
  338. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  339. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  340. package/dist/esm/Action/InfraInterruptRetriesExhausted.js +32 -0
  341. package/dist/esm/Action/InfraInterruptRetriesExhausted.js.map +1 -0
  342. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  343. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  344. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js +25 -0
  345. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +1 -0
  346. package/dist/esm/Action/StepIdentity.d.ts +153 -0
  347. package/dist/esm/Action/StepIdentity.d.ts.map +1 -0
  348. package/dist/esm/Action/StepIdentity.js +139 -0
  349. package/dist/esm/Action/StepIdentity.js.map +1 -0
  350. package/dist/esm/Action/TreeArtifact.d.ts +8 -0
  351. package/dist/esm/Action/TreeArtifact.d.ts.map +1 -0
  352. package/dist/esm/Action/TreeArtifact.js +7 -0
  353. package/dist/esm/Action/TreeArtifact.js.map +1 -0
  354. package/dist/esm/Action/TypeId.d.ts +8 -0
  355. package/dist/esm/Action/TypeId.d.ts.map +1 -0
  356. package/dist/esm/Action/TypeId.js +9 -0
  357. package/dist/esm/Action/TypeId.js.map +1 -0
  358. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  359. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  360. package/dist/esm/Action/UncanonicalIdempotencyKey.js +31 -0
  361. package/dist/esm/Action/UncanonicalIdempotencyKey.js.map +1 -0
  362. package/dist/esm/Action/idempotencyKey.d.ts +21 -0
  363. package/dist/esm/Action/idempotencyKey.d.ts.map +1 -0
  364. package/dist/esm/Action/idempotencyKey.js +50 -0
  365. package/dist/esm/Action/idempotencyKey.js.map +1 -0
  366. package/dist/esm/Action/index.d.ts +29 -0
  367. package/dist/esm/Action/index.d.ts.map +1 -0
  368. package/dist/esm/Action/index.js +30 -0
  369. package/dist/esm/Action/index.js.map +1 -0
  370. package/dist/esm/Action/make.d.ts +128 -0
  371. package/dist/esm/Action/make.d.ts.map +1 -0
  372. package/dist/esm/Action/make.js +413 -0
  373. package/dist/esm/Action/make.js.map +1 -0
  374. package/dist/esm/Action/raceAll.d.ts +21 -0
  375. package/dist/esm/Action/raceAll.d.ts.map +1 -0
  376. package/dist/esm/Action/raceAll.js +20 -0
  377. package/dist/esm/Action/raceAll.js.map +1 -0
  378. package/dist/esm/Action/retry.d.ts +19 -0
  379. package/dist/esm/Action/retry.d.ts.map +1 -0
  380. package/dist/esm/Action/retry.js +72 -0
  381. package/dist/esm/Action/retry.js.map +1 -0
  382. package/dist/esm/Deadline.d.ts +110 -0
  383. package/dist/esm/Deadline.d.ts.map +1 -0
  384. package/dist/esm/Deadline.js +164 -0
  385. package/dist/esm/Deadline.js.map +1 -0
  386. package/dist/esm/DurableClock.d.ts +60 -0
  387. package/dist/esm/DurableClock.d.ts.map +1 -0
  388. package/dist/esm/DurableClock.js +122 -0
  389. package/dist/esm/DurableClock.js.map +1 -0
  390. package/dist/esm/DurableDeferred.d.ts +311 -0
  391. package/dist/esm/DurableDeferred.d.ts.map +1 -0
  392. package/dist/esm/DurableDeferred.js +357 -0
  393. package/dist/esm/DurableDeferred.js.map +1 -0
  394. package/dist/esm/DurableQueue.d.ts +160 -0
  395. package/dist/esm/DurableQueue.d.ts.map +1 -0
  396. package/dist/esm/DurableQueue.js +303 -0
  397. package/dist/esm/DurableQueue.js.map +1 -0
  398. package/dist/esm/ExternalJob.d.ts +179 -0
  399. package/dist/esm/ExternalJob.d.ts.map +1 -0
  400. package/dist/esm/ExternalJob.js +296 -0
  401. package/dist/esm/ExternalJob.js.map +1 -0
  402. package/dist/esm/Fault.d.ts +131 -0
  403. package/dist/esm/Fault.d.ts.map +1 -0
  404. package/dist/esm/Fault.js +198 -0
  405. package/dist/esm/Fault.js.map +1 -0
  406. package/dist/esm/Flow/Annotations.d.ts +245 -0
  407. package/dist/esm/Flow/Annotations.d.ts.map +1 -0
  408. package/dist/esm/Flow/Annotations.js +110 -0
  409. package/dist/esm/Flow/Annotations.js.map +1 -0
  410. package/dist/esm/Flow/CapabilityCeiling.d.ts +21 -0
  411. package/dist/esm/Flow/CapabilityCeiling.d.ts.map +1 -0
  412. package/dist/esm/Flow/CapabilityCeiling.js +27 -0
  413. package/dist/esm/Flow/CapabilityCeiling.js.map +1 -0
  414. package/dist/esm/Flow/DeadlineExceeded.d.ts +33 -0
  415. package/dist/esm/Flow/DeadlineExceeded.d.ts.map +1 -0
  416. package/dist/esm/Flow/DeadlineExceeded.js +34 -0
  417. package/dist/esm/Flow/DeadlineExceeded.js.map +1 -0
  418. package/dist/esm/Flow/ExecutionIdRequired.d.ts +25 -0
  419. package/dist/esm/Flow/ExecutionIdRequired.d.ts.map +1 -0
  420. package/dist/esm/Flow/ExecutionIdRequired.js +30 -0
  421. package/dist/esm/Flow/ExecutionIdRequired.js.map +1 -0
  422. package/dist/esm/Flow/ExecutionIds.d.ts +80 -0
  423. package/dist/esm/Flow/ExecutionIds.d.ts.map +1 -0
  424. package/dist/esm/Flow/ExecutionIds.js +91 -0
  425. package/dist/esm/Flow/ExecutionIds.js.map +1 -0
  426. package/dist/esm/Flow/Flow.d.ts +422 -0
  427. package/dist/esm/Flow/Flow.d.ts.map +1 -0
  428. package/dist/esm/Flow/Flow.js +3 -0
  429. package/dist/esm/Flow/Flow.js.map +1 -0
  430. package/dist/esm/Flow/MaxRoundsExceeded.d.ts +35 -0
  431. package/dist/esm/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  432. package/dist/esm/Flow/MaxRoundsExceeded.js +34 -0
  433. package/dist/esm/Flow/MaxRoundsExceeded.js.map +1 -0
  434. package/dist/esm/Flow/Outcome.d.ts +162 -0
  435. package/dist/esm/Flow/Outcome.d.ts.map +1 -0
  436. package/dist/esm/Flow/Outcome.js +115 -0
  437. package/dist/esm/Flow/Outcome.js.map +1 -0
  438. package/dist/esm/Flow/Result.d.ts +186 -0
  439. package/dist/esm/Flow/Result.d.ts.map +1 -0
  440. package/dist/esm/Flow/Result.js +171 -0
  441. package/dist/esm/Flow/Result.js.map +1 -0
  442. package/dist/esm/Flow/Runtime.d.ts +98 -0
  443. package/dist/esm/Flow/Runtime.d.ts.map +1 -0
  444. package/dist/esm/Flow/Runtime.js +252 -0
  445. package/dist/esm/Flow/Runtime.js.map +1 -0
  446. package/dist/esm/Flow/TypeId.d.ts +8 -0
  447. package/dist/esm/Flow/TypeId.d.ts.map +1 -0
  448. package/dist/esm/Flow/TypeId.js +9 -0
  449. package/dist/esm/Flow/TypeId.js.map +1 -0
  450. package/dist/esm/Flow/index.d.ts +17 -0
  451. package/dist/esm/Flow/index.d.ts.map +1 -0
  452. package/dist/esm/Flow/index.js +18 -0
  453. package/dist/esm/Flow/index.js.map +1 -0
  454. package/dist/esm/Flow/internal.d.ts +34 -0
  455. package/dist/esm/Flow/internal.d.ts.map +1 -0
  456. package/dist/esm/Flow/internal.js +149 -0
  457. package/dist/esm/Flow/internal.js.map +1 -0
  458. package/dist/esm/Flow/make.d.ts +149 -0
  459. package/dist/esm/Flow/make.d.ts.map +1 -0
  460. package/dist/esm/Flow/make.js +111 -0
  461. package/dist/esm/Flow/make.js.map +1 -0
  462. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  463. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  464. package/dist/esm/FlowRuntime/CancelRequestFailed.js +53 -0
  465. package/dist/esm/FlowRuntime/CancelRequestFailed.js.map +1 -0
  466. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  467. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  468. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js +24 -0
  469. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js.map +1 -0
  470. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  471. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  472. package/dist/esm/FlowRuntime/FlowCycleDetected.js +35 -0
  473. package/dist/esm/FlowRuntime/FlowCycleDetected.js.map +1 -0
  474. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  475. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  476. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js +40 -0
  477. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js.map +1 -0
  478. package/dist/esm/FlowRuntime/FlowInstance.d.ts +115 -0
  479. package/dist/esm/FlowRuntime/FlowInstance.d.ts.map +1 -0
  480. package/dist/esm/FlowRuntime/FlowInstance.js +24 -0
  481. package/dist/esm/FlowRuntime/FlowInstance.js.map +1 -0
  482. package/dist/esm/FlowRuntime/FlowRuntime.d.ts +204 -0
  483. package/dist/esm/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  484. package/dist/esm/FlowRuntime/FlowRuntime.js +34 -0
  485. package/dist/esm/FlowRuntime/FlowRuntime.js.map +1 -0
  486. package/dist/esm/FlowRuntime/NodeRecord.d.ts +177 -0
  487. package/dist/esm/FlowRuntime/NodeRecord.d.ts.map +1 -0
  488. package/dist/esm/FlowRuntime/NodeRecord.js +21 -0
  489. package/dist/esm/FlowRuntime/NodeRecord.js.map +1 -0
  490. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  491. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  492. package/dist/esm/FlowRuntime/WaitingAnnotation.js +53 -0
  493. package/dist/esm/FlowRuntime/WaitingAnnotation.js.map +1 -0
  494. package/dist/esm/FlowRuntime/index.d.ts +14 -0
  495. package/dist/esm/FlowRuntime/index.d.ts.map +1 -0
  496. package/dist/esm/FlowRuntime/index.js +15 -0
  497. package/dist/esm/FlowRuntime/index.js.map +1 -0
  498. package/dist/esm/Graph.d.ts +325 -0
  499. package/dist/esm/Graph.d.ts.map +1 -0
  500. package/dist/esm/Graph.js +1485 -0
  501. package/dist/esm/Graph.js.map +1 -0
  502. package/dist/esm/HumanTask.d.ts +442 -0
  503. package/dist/esm/HumanTask.d.ts.map +1 -0
  504. package/dist/esm/HumanTask.js +810 -0
  505. package/dist/esm/HumanTask.js.map +1 -0
  506. package/dist/esm/Interpreter.d.ts +223 -0
  507. package/dist/esm/Interpreter.d.ts.map +1 -0
  508. package/dist/esm/Interpreter.js +1301 -0
  509. package/dist/esm/Interpreter.js.map +1 -0
  510. package/dist/esm/Poll.d.ts +240 -0
  511. package/dist/esm/Poll.d.ts.map +1 -0
  512. package/dist/esm/Poll.js +289 -0
  513. package/dist/esm/Poll.js.map +1 -0
  514. package/dist/esm/RetryPolicy.d.ts +273 -0
  515. package/dist/esm/RetryPolicy.d.ts.map +1 -0
  516. package/dist/esm/RetryPolicy.js +429 -0
  517. package/dist/esm/RetryPolicy.js.map +1 -0
  518. package/dist/esm/Sleep.d.ts +98 -0
  519. package/dist/esm/Sleep.d.ts.map +1 -0
  520. package/dist/esm/Sleep.js +256 -0
  521. package/dist/esm/Sleep.js.map +1 -0
  522. package/dist/esm/Stall.d.ts +173 -0
  523. package/dist/esm/Stall.d.ts.map +1 -0
  524. package/dist/esm/Stall.js +138 -0
  525. package/dist/esm/Stall.js.map +1 -0
  526. package/dist/esm/WaitFor.d.ts +109 -0
  527. package/dist/esm/WaitFor.d.ts.map +1 -0
  528. package/dist/esm/WaitFor.js +184 -0
  529. package/dist/esm/WaitFor.js.map +1 -0
  530. package/dist/esm/index.d.ts +107 -0
  531. package/dist/esm/index.d.ts.map +1 -0
  532. package/dist/esm/index.js +108 -0
  533. package/dist/esm/index.js.map +1 -0
  534. package/dist/esm/internal/BoundedJson.d.ts +48 -0
  535. package/dist/esm/internal/BoundedJson.d.ts.map +1 -0
  536. package/dist/esm/internal/BoundedJson.js +107 -0
  537. package/dist/esm/internal/BoundedJson.js.map +1 -0
  538. package/dist/esm/internal/DeclarationSite.d.ts +135 -0
  539. package/dist/esm/internal/DeclarationSite.d.ts.map +1 -0
  540. package/dist/esm/internal/DeclarationSite.js +196 -0
  541. package/dist/esm/internal/DeclarationSite.js.map +1 -0
  542. package/dist/esm/internal/Declarations.d.ts +35 -0
  543. package/dist/esm/internal/Declarations.d.ts.map +1 -0
  544. package/dist/esm/internal/Declarations.js +43 -0
  545. package/dist/esm/internal/Declarations.js.map +1 -0
  546. package/dist/esm/internal/ExecutionMiddleware.d.ts +21 -0
  547. package/dist/esm/internal/ExecutionMiddleware.d.ts.map +1 -0
  548. package/dist/esm/internal/ExecutionMiddleware.js +13 -0
  549. package/dist/esm/internal/ExecutionMiddleware.js.map +1 -0
  550. package/dist/esm/internal/JsonSchemaSubset.d.ts +133 -0
  551. package/dist/esm/internal/JsonSchemaSubset.d.ts.map +1 -0
  552. package/dist/esm/internal/JsonSchemaSubset.js +363 -0
  553. package/dist/esm/internal/JsonSchemaSubset.js.map +1 -0
  554. package/dist/esm/internal/OutcomeMarker.d.ts +18 -0
  555. package/dist/esm/internal/OutcomeMarker.d.ts.map +1 -0
  556. package/dist/esm/internal/OutcomeMarker.js +18 -0
  557. package/dist/esm/internal/OutcomeMarker.js.map +1 -0
  558. package/docs/README.md +152 -0
  559. package/docs/api.md +440 -0
  560. package/docs/concepts/bodies-and-plans.md +167 -0
  561. package/docs/concepts/execution-identity.md +142 -0
  562. package/docs/concepts/flows-and-actions.md +129 -0
  563. package/docs/concepts/suspension-and-replay.md +130 -0
  564. package/docs/concepts/the-runtime-port.md +110 -0
  565. package/docs/concepts/trampoline-rounds.md +151 -0
  566. package/docs/guides/ask-a-person.md +184 -0
  567. package/docs/guides/build-a-body.md +164 -0
  568. package/docs/guides/cancel-and-roll-back.md +112 -0
  569. package/docs/guides/implement-an-action.md +155 -0
  570. package/docs/guides/inspect-the-plan.md +235 -0
  571. package/docs/guides/poll-until-ready.md +169 -0
  572. package/docs/guides/queue-work-to-a-worker.md +122 -0
  573. package/docs/guides/retry-a-failing-action.md +243 -0
  574. package/docs/guides/reuse-a-recorded-result.md +129 -0
  575. package/docs/guides/run-a-child-flow.md +108 -0
  576. package/docs/guides/run-an-external-job.md +86 -0
  577. package/docs/guides/use-a-prompt.md +38 -0
  578. package/docs/guides/wait-for-a-deadline.md +141 -0
  579. package/docs/guides/wait-for-an-external-signal.md +151 -0
  580. package/docs/installation.md +87 -0
  581. package/docs/quickstart.md +164 -0
  582. package/docs/reference/flow.md +1835 -0
  583. package/docs/testing.md +157 -0
  584. package/docs/troubleshooting.md +286 -0
  585. package/package.json +327 -3
  586. package/src/Action/Action.ts +333 -0
  587. package/src/Action/AttemptTimedOut.ts +37 -0
  588. package/src/Action/BoundaryMode.ts +33 -0
  589. package/src/Action/CacheEnvironment.ts +170 -0
  590. package/src/Action/ConcurrentKeylessDispatch.ts +38 -0
  591. package/src/Action/Context.ts +156 -0
  592. package/src/Action/DuplicateImplementation.ts +24 -0
  593. package/src/Action/FileBoundary.ts +77 -0
  594. package/src/Action/FileInput.ts +42 -0
  595. package/src/Action/Filegroup.ts +16 -0
  596. package/src/Action/Glob.ts +8 -0
  597. package/src/Action/ImplementationVersionMismatch.ts +27 -0
  598. package/src/Action/Implementations.ts +149 -0
  599. package/src/Action/InfraInterrupt.ts +30 -0
  600. package/src/Action/InfraInterruptRetriesExhausted.ts +37 -0
  601. package/src/Action/IrreversibleRetryRequiresIdempotencyKey.ts +32 -0
  602. package/src/Action/StepIdentity.ts +219 -0
  603. package/src/Action/TreeArtifact.ts +8 -0
  604. package/src/Action/TypeId.ts +9 -0
  605. package/src/Action/UncanonicalIdempotencyKey.ts +36 -0
  606. package/src/Action/idempotencyKey.ts +67 -0
  607. package/src/Action/index.ts +31 -0
  608. package/src/Action/make.ts +671 -0
  609. package/src/Action/raceAll.ts +48 -0
  610. package/src/Action/retry.ts +92 -0
  611. package/src/Deadline.ts +201 -0
  612. package/src/DurableClock.ts +176 -0
  613. package/src/DurableDeferred.ts +753 -0
  614. package/src/DurableQueue.ts +519 -0
  615. package/src/ExternalJob.ts +437 -0
  616. package/src/Fault.ts +279 -0
  617. package/src/Flow/Annotations.ts +151 -0
  618. package/src/Flow/CapabilityCeiling.ts +37 -0
  619. package/src/Flow/DeadlineExceeded.ts +40 -0
  620. package/src/Flow/ExecutionIdRequired.ts +36 -0
  621. package/src/Flow/ExecutionIds.ts +133 -0
  622. package/src/Flow/Flow.ts +576 -0
  623. package/src/Flow/MaxRoundsExceeded.ts +39 -0
  624. package/src/Flow/Outcome.ts +179 -0
  625. package/src/Flow/Result.ts +284 -0
  626. package/src/Flow/Runtime.ts +339 -0
  627. package/src/Flow/TypeId.ts +9 -0
  628. package/src/Flow/index.ts +19 -0
  629. package/src/Flow/internal.ts +237 -0
  630. package/src/Flow/make.ts +299 -0
  631. package/src/FlowRuntime/CancelRequestFailed.ts +56 -0
  632. package/src/FlowRuntime/ExecutionIdentityConflict.ts +32 -0
  633. package/src/FlowRuntime/FlowCycleDetected.ts +41 -0
  634. package/src/FlowRuntime/FlowExecutionNotFound.ts +46 -0
  635. package/src/FlowRuntime/FlowInstance.ts +128 -0
  636. package/src/FlowRuntime/FlowRuntime.ts +339 -0
  637. package/src/FlowRuntime/NodeRecord.ts +185 -0
  638. package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
  639. package/src/FlowRuntime/index.ts +17 -0
  640. package/src/Graph.ts +1865 -0
  641. package/src/HumanTask.ts +1021 -0
  642. package/src/Interpreter.ts +1635 -0
  643. package/src/Poll.ts +420 -0
  644. package/src/RetryPolicy.ts +550 -0
  645. package/src/Sleep.ts +296 -0
  646. package/src/Stall.ts +217 -0
  647. package/src/WaitFor.ts +228 -0
  648. package/src/index.ts +125 -0
  649. package/src/internal/BoundedJson.ts +109 -0
  650. package/src/internal/DeclarationSite.ts +214 -0
  651. package/src/internal/Declarations.ts +49 -0
  652. package/src/internal/ExecutionMiddleware.ts +29 -0
  653. package/src/internal/JsonSchemaSubset.ts +392 -0
  654. package/src/internal/OutcomeMarker.ts +19 -0
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Defines the schemas and interfaces of a durable action.
3
+ *
4
+ * @since 0.1.0
5
+ */
6
+ import * as Effects from "@smthrs/plan/Effects";
7
+ import type * as Node from "@smthrs/plan/Node";
8
+ import type * as Planned from "@smthrs/plan/Planned";
9
+ import type * as Context from "effect/Context";
10
+ import type * as Crypto from "effect/Crypto";
11
+ import type * as Effect from "effect/Effect";
12
+ import type * as Layer from "effect/Layer";
13
+ import * as Schema from "effect/Schema";
14
+ import type { Scope } from "effect/Scope";
15
+ import type { AnyStructSchema } from "../Flow/Flow.ts";
16
+ import type { FlowInstance, FlowRuntime } from "../FlowRuntime/index.ts";
17
+ import type * as RetryPolicy from "../RetryPolicy.ts";
18
+ import type { FileBoundary } from "./FileBoundary.ts";
19
+ import type { Implementation } from "./Implementations.ts";
20
+ import type { TypeId } from "./TypeId.ts";
21
+ /**
22
+ * The durability and retry semantics of an action.
23
+ *
24
+ * The schema is `@smthrs/plan`'s `Effects.Tier`: an action's durability, a
25
+ * declared envelope's ceiling and `KeyMaterial.kind` are the same three words,
26
+ * and they are declared once.
27
+ *
28
+ * @category models
29
+ * @since 0.1.0
30
+ */
31
+ export declare const Tier: Schema.Literals<readonly ["sealed", "compensable", "irreversible"]>;
32
+ /**
33
+ * The durability and retry semantics of an action.
34
+ *
35
+ * @category models
36
+ * @since 0.1.0
37
+ */
38
+ export type Tier = Effects.Tier;
39
+ /**
40
+ * Schema for caller-declared sealed action identity.
41
+ *
42
+ * @category models
43
+ * @since 0.1.0
44
+ */
45
+ export declare const IdempotencyKey: Schema.Union<readonly [Schema.String, Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>]>;
46
+ /**
47
+ * Caller-declared sealed action identity.
48
+ *
49
+ * A string is namespaced by the action declaration. A JSON object is
50
+ * caller-owned and remains stable across action renames. Runtime
51
+ * environment and filesystem facts are always added by the engine. An explicit
52
+ * implementation version is also separate engine key material; a caller-owned
53
+ * object cannot mask it with a field of the same name.
54
+ *
55
+ * @category models
56
+ * @since 0.1.0
57
+ */
58
+ export type IdempotencyKey = typeof IdempotencyKey.Type;
59
+ /**
60
+ * Recursively permits planned references wherever a declared action payload
61
+ * accepts a concrete value.
62
+ *
63
+ * @category models
64
+ * @since 0.1.0
65
+ */
66
+ export type PlannedPayload<T> = Planned.Planned<T> | ([T] extends [ReadonlyArray<infer Value>] ? ReadonlyArray<PlannedPayload<Value>> : [T] extends [object] ? {
67
+ readonly [Key in keyof T]: PlannedPayload<T[Key]>;
68
+ } : T);
69
+ /**
70
+ * The requirement one declared action mints for itself, identified by its
71
+ * tag.
72
+ *
73
+ * A declaration is data that travels everywhere and carries no code, so a body
74
+ * that calls it names an implementation it does not hold. This type is that
75
+ * "does not hold", stated to the compiler: `Charge.call(...)` produces a node
76
+ * requiring `Requirement<"payments/Charge">`, `Charge.toLayer(...)` produces a
77
+ * layer providing it, and `Flow.execute` is where the two have to meet. It is
78
+ * phantom — nothing reads it, and nothing about planning, keying, or replay
79
+ * changes with it.
80
+ *
81
+ * @category models
82
+ * @since 0.1.0
83
+ */
84
+ export interface Requirement<Tag extends string> {
85
+ readonly _: unique symbol;
86
+ readonly _tag: Tag;
87
+ }
88
+ /**
89
+ * A named action declaration whose implementation is supplied separately
90
+ * through a layer and whose calls only add nodes to a plan.
91
+ *
92
+ * `Requires` is what `.call()` puts in the requirement channel of the node it
93
+ * records. It is this action's own {@link Requirement} for an ordinary
94
+ * declaration, and `never` for a system declaration the engine itself
95
+ * implements ({@link module:make.makeSystem}).
96
+ *
97
+ * @category models
98
+ * @since 0.1.0
99
+ */
100
+ export interface Declared<Tag extends string, Payload extends AnyStructSchema, Success extends Schema.Top, Error extends Schema.Top, Requires = Requirement<Tag>> {
101
+ readonly [TypeId]: typeof TypeId;
102
+ readonly name: Tag;
103
+ /**
104
+ * Semantic implementation identity. Changing it requires a newly planned
105
+ * execution; it is not an in-place upgrade of a persisted run. Canonical
106
+ * composition requires it for sealed actions with an idempotency key.
107
+ * Invocation-scoped actions may omit it; low-level keyed legacy callers
108
+ * retain their old handler-reuse contract when it is absent.
109
+ */
110
+ readonly implementationVersion: string | undefined;
111
+ readonly payloadSchema: Payload;
112
+ readonly successSchema: Success;
113
+ readonly errorSchema: Error;
114
+ readonly tier: Tier;
115
+ readonly idempotencyKey: IdempotencyKey | ((payload: Payload["Type"]) => IdempotencyKey) | undefined;
116
+ /** Allows multiple legitimate sealed results to race under one cache key. */
117
+ readonly nondeterministic: true | undefined;
118
+ /** Durable retry policy applied to every implementation invocation. */
119
+ readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
120
+ /** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */
121
+ readonly attemptTimeoutMs: number | undefined;
122
+ /** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */
123
+ readonly heartbeatTimeoutMs: number | undefined;
124
+ /** Filesystem declaration, optionally derived from the decoded payload. */
125
+ readonly fileBoundary: FileBoundary | ((payload: Payload["Type"]) => FileBoundary) | undefined;
126
+ readonly annotations: Context.Context<never>;
127
+ /**
128
+ * The context key this declaration's implementation is provided under, and
129
+ * the identity behind {@link Requirement}.
130
+ *
131
+ * `toLayer` provides it; a composition that would rather hand the runtime an
132
+ * implementation directly can provide it itself with `Layer.succeed`. Its
133
+ * string key is derived from the action tag, so two declarations of one tag
134
+ * name one slot.
135
+ */
136
+ readonly requirement: Context.Service<Requirement<Tag>, Implementation>;
137
+ annotate<I, S>(key: Context.Key<I, S>, value: S): Declared<Tag, Payload, Success, Error, Requires>;
138
+ annotateMerge<I>(annotations: Context.Context<I>): Declared<Tag, Payload, Success, Error, Requires>;
139
+ readonly call: (payload: PlannedPayload<Payload["~type.make.in"]>) => Node.Node<Success["Type"], Error["Type"], Requires>;
140
+ /**
141
+ * Attaches the implementation and yields the layer that provides this
142
+ * declaration's {@link Requirement}. A versioned declaration requires the
143
+ * same `implementationVersion` here; a mismatch throws
144
+ * `ImplementationVersionMismatch` before registration. The version must cover
145
+ * handler semantics and semantic service/configuration changes, not merely a
146
+ * package publication label. Source text is never inferred as that identity.
147
+ *
148
+ * Let inference name the returned layer's requirements. The requirement
149
+ * channel is what a composition trusts: a layer type that under-declares it
150
+ * still typechecks at `Effect.provide` and dies at runtime as a missing
151
+ * service. A concrete hand annotation cannot lie — dropping a service from
152
+ * it is a compile error — but a GENERIC one can: when the annotated
153
+ * requirement union keeps a deferred member such as
154
+ * `Output["DecodingServices"]` (constrained only as `unknown` through
155
+ * `Schema.Top`), TypeScript lets that member absorb every concrete service
156
+ * the annotation dropped, and the drop compiles. A wrapper that must
157
+ * annotate — a public interface naming its layer's type, say — therefore
158
+ * pins the set at a concrete instantiation, where the check works again:
159
+ *
160
+ * ```ts
161
+ * // Wrapped.layer is the wrapper's hand-annotated toLayer result, held
162
+ * // here with every schema argument concrete.
163
+ * type Needed = Layer.Services<typeof Wrapped.layer>
164
+ * expectTypeOf<Meter extends Needed ? true : false>().toEqualTypeOf<true>()
165
+ * ```
166
+ */
167
+ readonly toLayer: <R>(execute: (payload: Payload["Type"]) => Effect.Effect<Success["Type"], Error["Type"], R>, options?: {
168
+ readonly override?: boolean;
169
+ /** Must exactly match the declaration, including absence on legacy declarations. */
170
+ readonly implementationVersion?: string | undefined;
171
+ }) => Layer.Layer<Requires, never, FlowRuntime | Exclude<R, FlowRuntime | FlowInstance | Scope> | Payload["DecodingServices"] | Payload["EncodingServices"] | Success["DecodingServices"] | Success["EncodingServices"] | Error["DecodingServices"] | Error["EncodingServices"]>;
172
+ }
173
+ /**
174
+ * Durable flow action that behaves as an `Effect` and records its name,
175
+ * result schemas, annotations, and encoded execution form for the flow
176
+ * engine.
177
+ *
178
+ * @category models
179
+ * @since 0.1.0
180
+ */
181
+ export interface Action<Success extends Schema.Constraint = Schema.Void, Error extends Schema.Constraint = Schema.Never, R = never> extends Effect.Effect<Success["Type"], Error["Type"], Success["DecodingServices"] | Error["DecodingServices"] | R | Crypto.Crypto | FlowRuntime | FlowInstance> {
182
+ readonly [TypeId]: typeof TypeId;
183
+ readonly name: string;
184
+ readonly implementationVersion?: string | undefined;
185
+ readonly successSchema: Success;
186
+ readonly errorSchema: Error;
187
+ readonly exitSchema: Schema.Exit<Success, Error, Schema.Defect>;
188
+ readonly exitSchemaPartial: Schema.Exit<Success, Error, Schema.Unknown>;
189
+ readonly annotations: Context.Context<never>;
190
+ readonly tier: Tier;
191
+ readonly idempotencyKey: IdempotencyKey | undefined;
192
+ /** Allows multiple legitimate sealed results to race under one cache key. */
193
+ readonly nondeterministic: true | undefined;
194
+ readonly metadata: unknown;
195
+ /** Typed filesystem boundary used by the durable engine. */
196
+ readonly fileBoundary: FileBoundary | undefined;
197
+ readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
198
+ /** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */
199
+ readonly attemptTimeoutMs: number | undefined;
200
+ /** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */
201
+ readonly heartbeatTimeoutMs: number | undefined;
202
+ annotate<I, S>(key: Context.Key<I, S>, value: S): Action<Success, Error, R>;
203
+ annotateMerge<I>(annotations: Context.Context<I>): Action<Success, Error, R>;
204
+ readonly execute: Effect.Effect<Success["Type"], Error["Type"], Success["DecodingServices"] | Success["EncodingServices"] | Error["DecodingServices"] | Error["EncodingServices"] | R | Crypto.Crypto | Scope | FlowRuntime | FlowInstance>;
205
+ readonly executeEncoded: Effect.Effect<unknown, unknown, Success["DecodingServices"] | Success["EncodingServices"] | Error["DecodingServices"] | Error["EncodingServices"] | R | Crypto.Crypto | Scope | FlowRuntime | FlowInstance>;
206
+ }
207
+ /**
208
+ * Type-erased action shape for APIs that only need the action identity,
209
+ * name, annotations, and encoded execution.
210
+ *
211
+ * @category models
212
+ * @since 0.1.0
213
+ */
214
+ export interface Any {
215
+ readonly [TypeId]: typeof TypeId;
216
+ readonly name: string;
217
+ readonly implementationVersion?: string | undefined;
218
+ readonly executeEncoded: Effect.Effect<any, any, any>;
219
+ readonly annotations: Context.Context<never>;
220
+ readonly tier: Tier;
221
+ readonly idempotencyKey: IdempotencyKey | undefined;
222
+ readonly nondeterministic: true | undefined;
223
+ readonly metadata: unknown;
224
+ /** Typed filesystem boundary used by the durable engine. */
225
+ readonly fileBoundary: FileBoundary | undefined;
226
+ readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
227
+ }
228
+ /**
229
+ * Type-erased action shape that also exposes success and error schemas for
230
+ * derived flow APIs.
231
+ *
232
+ * @category models
233
+ * @since 0.1.0
234
+ */
235
+ export interface AnyWithProps {
236
+ readonly [TypeId]: typeof TypeId;
237
+ readonly name: string;
238
+ readonly implementationVersion?: string | undefined;
239
+ readonly successSchema: Schema.Top;
240
+ readonly errorSchema: Schema.Top;
241
+ readonly executeEncoded: Effect.Effect<any, any, any>;
242
+ readonly tier: Tier;
243
+ readonly idempotencyKey: IdempotencyKey | undefined;
244
+ readonly nondeterministic: true | undefined;
245
+ readonly metadata: unknown;
246
+ /** Typed filesystem boundary used by the durable engine. */
247
+ readonly fileBoundary: FileBoundary | undefined;
248
+ readonly retryPolicy: RetryPolicy.RetryPolicy | undefined;
249
+ }
250
+ //# sourceMappingURL=Action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../../src/Action/Action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * Defines the schemas and interfaces of a durable action.
4
+ *
5
+ * @since 0.1.0
6
+ */
7
+ import * as Effects from "@smthrs/plan/Effects";
8
+ import * as Schema from "effect/Schema";
9
+ /**
10
+ * The durability and retry semantics of an action.
11
+ *
12
+ * The schema is `@smthrs/plan`'s `Effects.Tier`: an action's durability, a
13
+ * declared envelope's ceiling and `KeyMaterial.kind` are the same three words,
14
+ * and they are declared once.
15
+ *
16
+ * @category models
17
+ * @since 0.1.0
18
+ */
19
+ export const Tier = Effects.Tier;
20
+ /**
21
+ * Schema for caller-declared sealed action identity.
22
+ *
23
+ * @category models
24
+ * @since 0.1.0
25
+ */
26
+ export const IdempotencyKey = Schema.Union([
27
+ Schema.String,
28
+ Schema.Record(Schema.String, Schema.Json)
29
+ ]);
30
+ //# sourceMappingURL=Action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../src/Action/Action.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;GAIG;AAEH,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAO/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AASvC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;AAUhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC;IACzC,MAAM,CAAC,MAAM;IACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;CAC1C,CAAC,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Defines the schemas and interfaces of a durable action.\n *\n * @since 0.1.0\n */\n\nimport * as Effects from \"@smthrs/plan/Effects\"\nimport type * as Node from \"@smthrs/plan/Node\"\nimport type * as Planned from \"@smthrs/plan/Planned\"\nimport type * as Context from \"effect/Context\"\nimport type * as Crypto from \"effect/Crypto\"\nimport type * as Effect from \"effect/Effect\"\nimport type * as Layer from \"effect/Layer\"\nimport * as Schema from \"effect/Schema\"\nimport type { Scope } from \"effect/Scope\"\nimport type { AnyStructSchema } from \"../Flow/Flow.ts\"\nimport type { FlowInstance, FlowRuntime } from \"../FlowRuntime/index.ts\"\nimport type * as RetryPolicy from \"../RetryPolicy.ts\"\nimport type { FileBoundary } from \"./FileBoundary.ts\"\nimport type { Implementation } from \"./Implementations.ts\"\nimport type { TypeId } from \"./TypeId.ts\"\n\n/**\n * The durability and retry semantics of an action.\n *\n * The schema is `@smthrs/plan`'s `Effects.Tier`: an action's durability, a\n * declared envelope's ceiling and `KeyMaterial.kind` are the same three words,\n * and they are declared once.\n *\n * @category models\n * @since 0.1.0\n */\nexport const Tier = Effects.Tier\n\n/**\n * The durability and retry semantics of an action.\n *\n * @category models\n * @since 0.1.0\n */\nexport type Tier = Effects.Tier\n\n/**\n * Schema for caller-declared sealed action identity.\n *\n * @category models\n * @since 0.1.0\n */\nexport const IdempotencyKey = Schema.Union([\n Schema.String,\n Schema.Record(Schema.String, Schema.Json)\n])\n\n/**\n * Caller-declared sealed action identity.\n *\n * A string is namespaced by the action declaration. A JSON object is\n * caller-owned and remains stable across action renames. Runtime\n * environment and filesystem facts are always added by the engine. An explicit\n * implementation version is also separate engine key material; a caller-owned\n * object cannot mask it with a field of the same name.\n *\n * @category models\n * @since 0.1.0\n */\nexport type IdempotencyKey = typeof IdempotencyKey.Type\n\n/**\n * Recursively permits planned references wherever a declared action payload\n * accepts a concrete value.\n *\n * @category models\n * @since 0.1.0\n */\nexport type PlannedPayload<T> =\n | Planned.Planned<T>\n | ([T] extends [ReadonlyArray<infer Value>] ? ReadonlyArray<PlannedPayload<Value>>\n : [T] extends [object] ? { readonly [Key in keyof T]: PlannedPayload<T[Key]> }\n : T)\n\n/**\n * The requirement one declared action mints for itself, identified by its\n * tag.\n *\n * A declaration is data that travels everywhere and carries no code, so a body\n * that calls it names an implementation it does not hold. This type is that\n * \"does not hold\", stated to the compiler: `Charge.call(...)` produces a node\n * requiring `Requirement<\"payments/Charge\">`, `Charge.toLayer(...)` produces a\n * layer providing it, and `Flow.execute` is where the two have to meet. It is\n * phantom — nothing reads it, and nothing about planning, keying, or replay\n * changes with it.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Requirement<Tag extends string> {\n readonly _: unique symbol\n readonly _tag: Tag\n}\n\n/**\n * A named action declaration whose implementation is supplied separately\n * through a layer and whose calls only add nodes to a plan.\n *\n * `Requires` is what `.call()` puts in the requirement channel of the node it\n * records. It is this action's own {@link Requirement} for an ordinary\n * declaration, and `never` for a system declaration the engine itself\n * implements ({@link module:make.makeSystem}).\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Declared<\n Tag extends string,\n Payload extends AnyStructSchema,\n Success extends Schema.Top,\n Error extends Schema.Top,\n Requires = Requirement<Tag>\n> {\n readonly [TypeId]: typeof TypeId\n readonly name: Tag\n /**\n * Semantic implementation identity. Changing it requires a newly planned\n * execution; it is not an in-place upgrade of a persisted run. Canonical\n * composition requires it for sealed actions with an idempotency key.\n * Invocation-scoped actions may omit it; low-level keyed legacy callers\n * retain their old handler-reuse contract when it is absent.\n */\n readonly implementationVersion: string | undefined\n readonly payloadSchema: Payload\n readonly successSchema: Success\n readonly errorSchema: Error\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | ((payload: Payload[\"Type\"]) => IdempotencyKey) | undefined\n /** Allows multiple legitimate sealed results to race under one cache key. */\n readonly nondeterministic: true | undefined\n /** Durable retry policy applied to every implementation invocation. */\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n /** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */\n readonly attemptTimeoutMs: number | undefined\n /** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */\n readonly heartbeatTimeoutMs: number | undefined\n /** Filesystem declaration, optionally derived from the decoded payload. */\n readonly fileBoundary: FileBoundary | ((payload: Payload[\"Type\"]) => FileBoundary) | undefined\n readonly annotations: Context.Context<never>\n /**\n * The context key this declaration's implementation is provided under, and\n * the identity behind {@link Requirement}.\n *\n * `toLayer` provides it; a composition that would rather hand the runtime an\n * implementation directly can provide it itself with `Layer.succeed`. Its\n * string key is derived from the action tag, so two declarations of one tag\n * name one slot.\n */\n readonly requirement: Context.Service<Requirement<Tag>, Implementation>\n annotate<I, S>(key: Context.Key<I, S>, value: S): Declared<Tag, Payload, Success, Error, Requires>\n annotateMerge<I>(annotations: Context.Context<I>): Declared<Tag, Payload, Success, Error, Requires>\n readonly call: (\n payload: PlannedPayload<Payload[\"~type.make.in\"]>\n ) => Node.Node<Success[\"Type\"], Error[\"Type\"], Requires>\n /**\n * Attaches the implementation and yields the layer that provides this\n * declaration's {@link Requirement}. A versioned declaration requires the\n * same `implementationVersion` here; a mismatch throws\n * `ImplementationVersionMismatch` before registration. The version must cover\n * handler semantics and semantic service/configuration changes, not merely a\n * package publication label. Source text is never inferred as that identity.\n *\n * Let inference name the returned layer's requirements. The requirement\n * channel is what a composition trusts: a layer type that under-declares it\n * still typechecks at `Effect.provide` and dies at runtime as a missing\n * service. A concrete hand annotation cannot lie — dropping a service from\n * it is a compile error — but a GENERIC one can: when the annotated\n * requirement union keeps a deferred member such as\n * `Output[\"DecodingServices\"]` (constrained only as `unknown` through\n * `Schema.Top`), TypeScript lets that member absorb every concrete service\n * the annotation dropped, and the drop compiles. A wrapper that must\n * annotate — a public interface naming its layer's type, say — therefore\n * pins the set at a concrete instantiation, where the check works again:\n *\n * ```ts\n * // Wrapped.layer is the wrapper's hand-annotated toLayer result, held\n * // here with every schema argument concrete.\n * type Needed = Layer.Services<typeof Wrapped.layer>\n * expectTypeOf<Meter extends Needed ? true : false>().toEqualTypeOf<true>()\n * ```\n */\n readonly toLayer: <R>(\n execute: (payload: Payload[\"Type\"]) => Effect.Effect<Success[\"Type\"], Error[\"Type\"], R>,\n options?: {\n readonly override?: boolean\n /** Must exactly match the declaration, including absence on legacy declarations. */\n readonly implementationVersion?: string | undefined\n }\n ) => Layer.Layer<\n Requires,\n never,\n | FlowRuntime\n | Exclude<R, FlowRuntime | FlowInstance | Scope>\n | Payload[\"DecodingServices\"]\n | Payload[\"EncodingServices\"]\n | Success[\"DecodingServices\"]\n | Success[\"EncodingServices\"]\n | Error[\"DecodingServices\"]\n | Error[\"EncodingServices\"]\n >\n}\n\n/**\n * Durable flow action that behaves as an `Effect` and records its name,\n * result schemas, annotations, and encoded execution form for the flow\n * engine.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Action<\n Success extends Schema.Constraint = Schema.Void,\n Error extends Schema.Constraint = Schema.Never,\n R = never\n> extends\n Effect.Effect<\n Success[\"Type\"],\n Error[\"Type\"],\n | Success[\"DecodingServices\"]\n | Error[\"DecodingServices\"]\n | R\n | Crypto.Crypto\n | FlowRuntime\n | FlowInstance\n >\n{\n readonly [TypeId]: typeof TypeId\n readonly name: string\n readonly implementationVersion?: string | undefined\n readonly successSchema: Success\n readonly errorSchema: Error\n readonly exitSchema: Schema.Exit<Success, Error, Schema.Defect>\n readonly exitSchemaPartial: Schema.Exit<Success, Error, Schema.Unknown>\n readonly annotations: Context.Context<never>\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | undefined\n /** Allows multiple legitimate sealed results to race under one cache key. */\n readonly nondeterministic: true | undefined\n readonly metadata: unknown\n /** Typed filesystem boundary used by the durable engine. */\n readonly fileBoundary: FileBoundary | undefined\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n /** Milliseconds one attempt may run before it fails with `AttemptTimedOut`. */\n readonly attemptTimeoutMs: number | undefined\n /** Milliseconds one attempt may go without `Action.heartbeat` before it fails. */\n readonly heartbeatTimeoutMs: number | undefined\n annotate<I, S>(\n key: Context.Key<I, S>,\n value: S\n ): Action<Success, Error, R>\n annotateMerge<I>(\n annotations: Context.Context<I>\n ): Action<Success, Error, R>\n readonly execute: Effect.Effect<\n Success[\"Type\"],\n Error[\"Type\"],\n | Success[\"DecodingServices\"]\n | Success[\"EncodingServices\"]\n | Error[\"DecodingServices\"]\n | Error[\"EncodingServices\"]\n | R\n | Crypto.Crypto\n | Scope\n | FlowRuntime\n | FlowInstance\n >\n readonly executeEncoded: Effect.Effect<\n unknown,\n unknown,\n | Success[\"DecodingServices\"]\n | Success[\"EncodingServices\"]\n | Error[\"DecodingServices\"]\n | Error[\"EncodingServices\"]\n | R\n | Crypto.Crypto\n | Scope\n | FlowRuntime\n | FlowInstance\n >\n}\n\n/**\n * Type-erased action shape for APIs that only need the action identity,\n * name, annotations, and encoded execution.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface Any {\n readonly [TypeId]: typeof TypeId\n readonly name: string\n readonly implementationVersion?: string | undefined\n readonly executeEncoded: Effect.Effect<any, any, any>\n readonly annotations: Context.Context<never>\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | undefined\n readonly nondeterministic: true | undefined\n readonly metadata: unknown\n /** Typed filesystem boundary used by the durable engine. */\n readonly fileBoundary: FileBoundary | undefined\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n}\n\n/**\n * Type-erased action shape that also exposes success and error schemas for\n * derived flow APIs.\n *\n * @category models\n * @since 0.1.0\n */\nexport interface AnyWithProps {\n readonly [TypeId]: typeof TypeId\n readonly name: string\n readonly implementationVersion?: string | undefined\n readonly successSchema: Schema.Top\n readonly errorSchema: Schema.Top\n readonly executeEncoded: Effect.Effect<any, any, any>\n readonly tier: Tier\n readonly idempotencyKey: IdempotencyKey | undefined\n readonly nondeterministic: true | undefined\n readonly metadata: unknown\n /** Typed filesystem boundary used by the durable engine. */\n readonly fileBoundary: FileBoundary | undefined\n readonly retryPolicy: RetryPolicy.RetryPolicy | undefined\n}\n"]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Defines the defect an action attempt settles with when it outlives its
3
+ * declared `attemptTimeoutMs` or misses its `heartbeatTimeoutMs`.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+ import * as Schema from "effect/Schema";
8
+ declare const AttemptTimedOut_base: Schema.Class<AttemptTimedOut, Schema.TaggedStruct<"@smthrs/flow/AttemptTimedOut", {
9
+ readonly code: Schema.withConstructorDefault<Schema.Literal<"attempt_timed_out">>;
10
+ readonly actionName: Schema.String;
11
+ readonly attempt: Schema.Number;
12
+ /** Which bound expired: the whole attempt, or the gap between heartbeats. */
13
+ readonly bound: Schema.Literals<readonly ["attempt", "heartbeat"]>;
14
+ readonly timeoutMs: Schema.Number;
15
+ readonly message: Schema.String;
16
+ }>, import("effect/Cause").YieldableError>;
17
+ /**
18
+ * One attempt of an action ran past a declared time bound and was
19
+ * interrupted.
20
+ *
21
+ * It is a defect rather than a typed failure because the bound belongs to the
22
+ * dispatch, not to the action's declared error channel. The engine's retry
23
+ * decision point still counts it as a retryable attempt failure under the
24
+ * action's `retryPolicy`, and a policy can refuse it by listing this tag in
25
+ * `nonRetryable`.
26
+ *
27
+ * @category errors
28
+ * @since 1.0.0
29
+ */
30
+ export declare class AttemptTimedOut extends AttemptTimedOut_base {
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=AttemptTimedOut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttemptTimedOut.d.ts","sourceRoot":"","sources":["../../../src/Action/AttemptTimedOut.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;IAuBnC,6EAA6E;;;;;AArBjF;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAgB,SAAQ,oBAapC;CAAG"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Defines the defect an action attempt settles with when it outlives its
3
+ * declared `attemptTimeoutMs` or misses its `heartbeatTimeoutMs`.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+ import * as Effect from "effect/Effect";
8
+ import * as Schema from "effect/Schema";
9
+ /**
10
+ * One attempt of an action ran past a declared time bound and was
11
+ * interrupted.
12
+ *
13
+ * It is a defect rather than a typed failure because the bound belongs to the
14
+ * dispatch, not to the action's declared error channel. The engine's retry
15
+ * decision point still counts it as a retryable attempt failure under the
16
+ * action's `retryPolicy`, and a policy can refuse it by listing this tag in
17
+ * `nonRetryable`.
18
+ *
19
+ * @category errors
20
+ * @since 1.0.0
21
+ */
22
+ export class AttemptTimedOut extends Schema.TaggedError()("@smthrs/flow/AttemptTimedOut", {
23
+ code: Schema.Literal("attempt_timed_out").pipe(Schema.withConstructorDefault(Effect.succeed("attempt_timed_out"))),
24
+ actionName: Schema.String,
25
+ attempt: Schema.Number,
26
+ /** Which bound expired: the whole attempt, or the gap between heartbeats. */
27
+ bound: Schema.Literals(["attempt", "heartbeat"]),
28
+ timeoutMs: Schema.Number,
29
+ message: Schema.String
30
+ }) {
31
+ }
32
+ //# sourceMappingURL=AttemptTimedOut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttemptTimedOut.js","sourceRoot":"","sources":["../../../src/Action/AttemptTimedOut.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CACxE,8BAA8B,EAC9B;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,UAAU,EAAE,MAAM,CAAC,MAAM;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM;CACvB,CACF;CAAG","sourcesContent":["/**\n * Defines the defect an action attempt settles with when it outlives its\n * declared `attemptTimeoutMs` or misses its `heartbeatTimeoutMs`.\n *\n * @since 1.0.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * One attempt of an action ran past a declared time bound and was\n * interrupted.\n *\n * It is a defect rather than a typed failure because the bound belongs to the\n * dispatch, not to the action's declared error channel. The engine's retry\n * decision point still counts it as a retryable attempt failure under the\n * action's `retryPolicy`, and a policy can refuse it by listing this tag in\n * `nonRetryable`.\n *\n * @category errors\n * @since 1.0.0\n */\nexport class AttemptTimedOut extends Schema.TaggedError<AttemptTimedOut>()(\n \"@smthrs/flow/AttemptTimedOut\",\n {\n code: Schema.Literal(\"attempt_timed_out\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"attempt_timed_out\"))\n ),\n actionName: Schema.String,\n attempt: Schema.Number,\n /** Which bound expired: the whole attempt, or the gap between heartbeats. */\n bound: Schema.Literals([\"attempt\", \"heartbeat\"]),\n timeoutMs: Schema.Number,\n message: Schema.String\n }\n) {}\n"]}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Defines filesystem boundary enforcement modes.
3
+ *
4
+ * The schema itself is `@smthrs/plan`'s `FileSet.BoundaryMode`, because the
5
+ * same two words are what a plan node's `effects.boundaryMode` carries. This
6
+ * module is the name an action reaches for; there is one declaration behind
7
+ * both.
8
+ *
9
+ * @since 0.1.0
10
+ */
11
+ import * as FileSet from "@smthrs/plan/FileSet";
12
+ /**
13
+ * Schema for how strictly an action's filesystem boundary is enforced.
14
+ *
15
+ * `hard` rejects undeclared access. `expected` records access for validation
16
+ * after execution without requiring the sandbox to reject it immediately.
17
+ *
18
+ * @category models
19
+ * @since 0.1.0
20
+ */
21
+ export declare const BoundaryMode: import("effect/Schema").Literals<readonly ["hard", "expected"]>;
22
+ /**
23
+ * How strictly an action's filesystem boundary is enforced.
24
+ *
25
+ * @category models
26
+ * @since 0.1.0
27
+ */
28
+ export type BoundaryMode = FileSet.BoundaryMode;
29
+ //# sourceMappingURL=BoundaryMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoundaryMode.d.ts","sourceRoot":"","sources":["../../../src/Action/BoundaryMode.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,iEAAuB,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA"}
@@ -0,0 +1,23 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * Defines filesystem boundary enforcement modes.
4
+ *
5
+ * The schema itself is `@smthrs/plan`'s `FileSet.BoundaryMode`, because the
6
+ * same two words are what a plan node's `effects.boundaryMode` carries. This
7
+ * module is the name an action reaches for; there is one declaration behind
8
+ * both.
9
+ *
10
+ * @since 0.1.0
11
+ */
12
+ import * as FileSet from "@smthrs/plan/FileSet";
13
+ /**
14
+ * Schema for how strictly an action's filesystem boundary is enforced.
15
+ *
16
+ * `hard` rejects undeclared access. `expected` records access for validation
17
+ * after execution without requiring the sandbox to reject it immediately.
18
+ *
19
+ * @category models
20
+ * @since 0.1.0
21
+ */
22
+ export const BoundaryMode = FileSet.BoundaryMode;
23
+ //# sourceMappingURL=BoundaryMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoundaryMode.js","sourceRoot":"","sources":["../../../src/Action/BoundaryMode.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;;;;;GASG;AAEH,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAE/C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * Defines filesystem boundary enforcement modes.\n *\n * The schema itself is `@smthrs/plan`'s `FileSet.BoundaryMode`, because the\n * same two words are what a plan node's `effects.boundaryMode` carries. This\n * module is the name an action reaches for; there is one declaration behind\n * both.\n *\n * @since 0.1.0\n */\n\nimport * as FileSet from \"@smthrs/plan/FileSet\"\n\n/**\n * Schema for how strictly an action's filesystem boundary is enforced.\n *\n * `hard` rejects undeclared access. `expected` records access for validation\n * after execution without requiring the sandbox to reject it immediately.\n *\n * @category models\n * @since 0.1.0\n */\nexport const BoundaryMode = FileSet.BoundaryMode\n\n/**\n * How strictly an action's filesystem boundary is enforced.\n *\n * @category models\n * @since 0.1.0\n */\nexport type BoundaryMode = FileSet.BoundaryMode\n"]}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * The environment description folded into every cross-run cache key.
3
+ *
4
+ * A cached result is only reusable on a host that would have produced the same
5
+ * bytes, so the key has to name the environment as well as the inputs — the
6
+ * platform, the toolchain, and the capability groups in force. Bazel's action
7
+ * key does the same thing for the same reason.
8
+ *
9
+ * It is a *complete* value on purpose: an environment a composition cannot
10
+ * fully describe is one whose cache hits cannot be justified, and the engine
11
+ * executes rather than guessing at the missing part.
12
+ *
13
+ * @since 0.1.0
14
+ */
15
+ import * as PlanCachePolicy from "@smthrs/plan/CachePolicy";
16
+ import * as Schema from "effect/Schema";
17
+ /**
18
+ * Complete runtime environment included in every cross-run cache key.
19
+ *
20
+ * If a composition cannot provide this complete value, the engine executes
21
+ * normally but does not derive a cross-run cache key.
22
+ *
23
+ * @category models
24
+ * @since 0.1.0
25
+ */
26
+ export type CacheEnvironment = typeof CacheEnvironment.Type;
27
+ /**
28
+ * Schema for the complete runtime environment included in cache keys.
29
+ *
30
+ * @category models
31
+ * @since 0.1.0
32
+ */
33
+ export declare const CacheEnvironment: Schema.Struct<{
34
+ /** Ordered semantic runtime layers, including versions and configuration. */
35
+ readonly layers: Schema.$Array<Schema.NonEmptyString>;
36
+ /** Complete effective capability groups. */
37
+ readonly capabilities: Schema.$Record<Schema.String, Schema.$Array<Schema.NonEmptyString>>;
38
+ }>;
39
+ /**
40
+ * How far a recorded sealed result may travel.
41
+ *
42
+ * `shared` is the content-addressed default: the key names the inputs and the
43
+ * environment, so any run on any host that would have produced the same bytes
44
+ * may reuse the row. `run` and `flow` narrow that on purpose — a step whose
45
+ * result is only meaningful inside one execution, or inside one flow, folds
46
+ * that identity into its key so a sibling never reads it.
47
+ *
48
+ * This is `@smthrs/plan`'s `CachePolicy.CacheScope`, the one scope vocabulary
49
+ * `@smthrs/patterns` also declares its policy with.
50
+ *
51
+ * @category models
52
+ * @since 0.1.0
53
+ */
54
+ export declare const CacheScope: Schema.Literals<readonly ["run", "flow", "shared"]>;
55
+ /**
56
+ * How far a recorded sealed result may travel.
57
+ *
58
+ * @category models
59
+ * @since 0.1.0
60
+ */
61
+ export type CacheScope = PlanCachePolicy.CacheScope;
62
+ /**
63
+ * The caller's declaration about the decay and the reach of a sealed action's
64
+ * recorded result.
65
+ *
66
+ * `ttlMs` bounds the age of a row the engine may serve: past it the dispatch
67
+ * executes again and journals `cache-expired`, so the refusal is durable
68
+ * evidence a replay reads rather than a fresh clock reading. `scope` decides
69
+ * what the key names besides the inputs.
70
+ *
71
+ * This is `@smthrs/plan`'s `CachePolicy.CachePolicy`, the one policy schema.
72
+ *
73
+ * @category schemas
74
+ * @since 0.1.0
75
+ */
76
+ export declare const CachePolicy: Schema.Struct<{
77
+ readonly ttlMs: Schema.optionalKey<Schema.Int>;
78
+ readonly scope: Schema.optionalKey<Schema.Literals<readonly ["run", "flow", "shared"]>>;
79
+ }>;
80
+ /**
81
+ * The caller's declaration about the decay and the reach of a sealed action's
82
+ * recorded result.
83
+ *
84
+ * @category models
85
+ * @since 0.1.0
86
+ */
87
+ export type CachePolicy = PlanCachePolicy.CachePolicy;
88
+ /**
89
+ * Annotation key carrying a declaration's {@link CachePolicy}.
90
+ *
91
+ * It is an annotation, not a field on the action, for the same reason
92
+ * placement and effects are: the policy is data that travels with the
93
+ * declaration and is read by whoever executes it, and adding it changes no
94
+ * existing call site.
95
+ *
96
+ * It is `@smthrs/plan`'s `CachePolicy.CachePolicyAnnotation` itself, the same
97
+ * object `@smthrs/patterns` annotates a flow with, identified by
98
+ * `"@smthrs/flow/Action/CachePolicy"`.
99
+ *
100
+ * @category annotations
101
+ * @since 0.1.0
102
+ */
103
+ export declare const CachePolicyAnnotation: import("effect/Context").Service<{
104
+ readonly ttlMs?: number;
105
+ readonly scope?: "run" | "flow" | "shared";
106
+ }, {
107
+ readonly ttlMs?: number;
108
+ readonly scope?: "run" | "flow" | "shared";
109
+ }>;
110
+ /**
111
+ * Reads the cache policy an annotation bag carries, or `undefined` when it
112
+ * carries none.
113
+ *
114
+ * @category getters
115
+ * @since 0.1.0
116
+ */
117
+ export declare const cachePolicyOf: (annotations: import("effect/Context").Context<never>) => PlanCachePolicy.CachePolicy | undefined;
118
+ /**
119
+ * Declares a cache policy on an action.
120
+ *
121
+ * This is the form the engine honors today: `@smthrs/engine-store` reads
122
+ * {@link CachePolicyAnnotation} off the dispatched action, bounds the age of
123
+ * the row it may serve by `ttlMs`, and narrows the address that row is stored
124
+ * under from `scope`. `@smthrs/patterns`' `WithCache` declares the same policy
125
+ * over a `@smthrs/core` flow under the same annotation key, for the
126
+ * declaration surface, so a policy written by either is read by the engine.
127
+ *
128
+ * The action is not mutated. `annotate` returns a new declaration carrying the
129
+ * policy, which is what a plan captures.
130
+ *
131
+ * It is `@smthrs/plan`'s `CachePolicy.annotate` under this package's name for
132
+ * it.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * import { Action } from "@smthrs/flow"
137
+ * import * as CacheEnvironment from "@smthrs/flow/CacheEnvironment"
138
+ * import * as Effect from "effect/Effect"
139
+ * import * as Schema from "effect/Schema"
140
+ *
141
+ * const compile = CacheEnvironment.withCache(
142
+ * Action.make({
143
+ * name: "build/compile",
144
+ * success: Schema.String,
145
+ * tier: "sealed",
146
+ * execute: Effect.succeed("dist/server.js")
147
+ * }),
148
+ * { ttlMs: 60_000, scope: "shared" }
149
+ * )
150
+ * ```
151
+ *
152
+ * @category combinators
153
+ * @since 0.1.0
154
+ */
155
+ export declare const withCache: <A extends {
156
+ annotate: (key: typeof PlanCachePolicy.CachePolicyAnnotation, value: PlanCachePolicy.CachePolicy) => A;
157
+ }>(declaration: A, policy: PlanCachePolicy.CachePolicy) => A;
158
+ //# sourceMappingURL=CacheEnvironment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheEnvironment.d.ts","sourceRoot":"","sources":["../../../src/Action/CacheEnvironment.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAcvC;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;IAC3B,6EAA6E;;IAE7E,4CAA4C;;EAE5C,CAAA;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,qDAA6B,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;AAEnD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW;;;EAA8B,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAA;AAErD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB;;;;;;EAAwC,CAAA;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,mGAAgC,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,SAAS;;4DAA2B,CAAA"}