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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/LICENSE +21 -0
  3. package/README.md +210 -2
  4. package/THIRD_PARTY_NOTICES.md +52 -0
  5. package/dist/cjs/Action/Action.d.ts +250 -0
  6. package/dist/cjs/Action/Action.d.ts.map +1 -0
  7. package/dist/cjs/Action/Action.js +42 -0
  8. package/dist/cjs/Action/Action.js.map +7 -0
  9. package/dist/cjs/Action/AttemptTimedOut.d.ts +33 -0
  10. package/dist/cjs/Action/AttemptTimedOut.d.ts.map +1 -0
  11. package/dist/cjs/Action/AttemptTimedOut.js +51 -0
  12. package/dist/cjs/Action/AttemptTimedOut.js.map +7 -0
  13. package/dist/cjs/Action/BoundaryMode.d.ts +29 -0
  14. package/dist/cjs/Action/BoundaryMode.d.ts.map +1 -0
  15. package/dist/cjs/Action/BoundaryMode.js +36 -0
  16. package/dist/cjs/Action/BoundaryMode.js.map +7 -0
  17. package/dist/cjs/Action/CacheEnvironment.d.ts +158 -0
  18. package/dist/cjs/Action/CacheEnvironment.d.ts.map +1 -0
  19. package/dist/cjs/Action/CacheEnvironment.js +57 -0
  20. package/dist/cjs/Action/CacheEnvironment.js.map +7 -0
  21. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  22. package/dist/cjs/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  23. package/dist/cjs/Action/ConcurrentKeylessDispatch.js +46 -0
  24. package/dist/cjs/Action/ConcurrentKeylessDispatch.js.map +7 -0
  25. package/dist/cjs/Action/Context.d.ts +131 -0
  26. package/dist/cjs/Action/Context.d.ts.map +1 -0
  27. package/dist/cjs/Action/Context.js +68 -0
  28. package/dist/cjs/Action/Context.js.map +7 -0
  29. package/dist/cjs/Action/DuplicateImplementation.d.ts +20 -0
  30. package/dist/cjs/Action/DuplicateImplementation.d.ts.map +1 -0
  31. package/dist/cjs/Action/DuplicateImplementation.js +46 -0
  32. package/dist/cjs/Action/DuplicateImplementation.js.map +7 -0
  33. package/dist/cjs/Action/FileBoundary.d.ts +59 -0
  34. package/dist/cjs/Action/FileBoundary.d.ts.map +1 -0
  35. package/dist/cjs/Action/FileBoundary.js +81 -0
  36. package/dist/cjs/Action/FileBoundary.js.map +7 -0
  37. package/dist/cjs/Action/FileInput.d.ts +28 -0
  38. package/dist/cjs/Action/FileInput.d.ts.map +1 -0
  39. package/dist/cjs/Action/FileInput.js +42 -0
  40. package/dist/cjs/Action/FileInput.js.map +7 -0
  41. package/dist/cjs/Action/Filegroup.d.ts +16 -0
  42. package/dist/cjs/Action/Filegroup.d.ts.map +1 -0
  43. package/dist/cjs/Action/Filegroup.js +27 -0
  44. package/dist/cjs/Action/Filegroup.js.map +7 -0
  45. package/dist/cjs/Action/Glob.d.ts +8 -0
  46. package/dist/cjs/Action/Glob.d.ts.map +1 -0
  47. package/dist/cjs/Action/Glob.js +28 -0
  48. package/dist/cjs/Action/Glob.js.map +7 -0
  49. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts +26 -0
  50. package/dist/cjs/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  51. package/dist/cjs/Action/ImplementationVersionMismatch.js +45 -0
  52. package/dist/cjs/Action/ImplementationVersionMismatch.js.map +7 -0
  53. package/dist/cjs/Action/Implementations.d.ts +114 -0
  54. package/dist/cjs/Action/Implementations.d.ts.map +1 -0
  55. package/dist/cjs/Action/Implementations.js +65 -0
  56. package/dist/cjs/Action/Implementations.js.map +7 -0
  57. package/dist/cjs/Action/InfraInterrupt.d.ts +26 -0
  58. package/dist/cjs/Action/InfraInterrupt.d.ts.map +1 -0
  59. package/dist/cjs/Action/InfraInterrupt.js +46 -0
  60. package/dist/cjs/Action/InfraInterrupt.js.map +7 -0
  61. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  62. package/dist/cjs/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  63. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js +54 -0
  64. package/dist/cjs/Action/InfraInterruptRetriesExhausted.js.map +7 -0
  65. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  66. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  67. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js +47 -0
  68. package/dist/cjs/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +7 -0
  69. package/dist/cjs/Action/StepIdentity.d.ts +153 -0
  70. package/dist/cjs/Action/StepIdentity.d.ts.map +1 -0
  71. package/dist/cjs/Action/StepIdentity.js +75 -0
  72. package/dist/cjs/Action/StepIdentity.js.map +7 -0
  73. package/dist/cjs/Action/TreeArtifact.d.ts +8 -0
  74. package/dist/cjs/Action/TreeArtifact.d.ts.map +1 -0
  75. package/dist/cjs/Action/TreeArtifact.js +25 -0
  76. package/dist/cjs/Action/TreeArtifact.js.map +7 -0
  77. package/dist/cjs/Action/TypeId.d.ts +8 -0
  78. package/dist/cjs/Action/TypeId.d.ts.map +1 -0
  79. package/dist/cjs/Action/TypeId.js +25 -0
  80. package/dist/cjs/Action/TypeId.js.map +7 -0
  81. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  82. package/dist/cjs/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  83. package/dist/cjs/Action/UncanonicalIdempotencyKey.js +51 -0
  84. package/dist/cjs/Action/UncanonicalIdempotencyKey.js.map +7 -0
  85. package/dist/cjs/Action/idempotencyKey.d.ts +21 -0
  86. package/dist/cjs/Action/idempotencyKey.d.ts.map +1 -0
  87. package/dist/cjs/Action/idempotencyKey.js +59 -0
  88. package/dist/cjs/Action/idempotencyKey.js.map +7 -0
  89. package/dist/cjs/Action/index.d.ts +29 -0
  90. package/dist/cjs/Action/index.d.ts.map +1 -0
  91. package/dist/cjs/Action/index.js +60 -0
  92. package/dist/cjs/Action/index.js.map +7 -0
  93. package/dist/cjs/Action/make.d.ts +128 -0
  94. package/dist/cjs/Action/make.d.ts.map +1 -0
  95. package/dist/cjs/Action/make.js +373 -0
  96. package/dist/cjs/Action/make.js.map +7 -0
  97. package/dist/cjs/Action/raceAll.d.ts +21 -0
  98. package/dist/cjs/Action/raceAll.d.ts.map +1 -0
  99. package/dist/cjs/Action/raceAll.js +46 -0
  100. package/dist/cjs/Action/raceAll.js.map +7 -0
  101. package/dist/cjs/Action/retry.d.ts +19 -0
  102. package/dist/cjs/Action/retry.d.ts.map +1 -0
  103. package/dist/cjs/Action/retry.js +75 -0
  104. package/dist/cjs/Action/retry.js.map +7 -0
  105. package/dist/cjs/Deadline.d.ts +105 -0
  106. package/dist/cjs/Deadline.d.ts.map +1 -0
  107. package/dist/cjs/Deadline.js +104 -0
  108. package/dist/cjs/Deadline.js.map +7 -0
  109. package/dist/cjs/DurableClock.d.ts +61 -0
  110. package/dist/cjs/DurableClock.d.ts.map +1 -0
  111. package/dist/cjs/DurableClock.js +90 -0
  112. package/dist/cjs/DurableClock.js.map +7 -0
  113. package/dist/cjs/DurableDeferred.d.ts +311 -0
  114. package/dist/cjs/DurableDeferred.d.ts.map +1 -0
  115. package/dist/cjs/DurableDeferred.js +322 -0
  116. package/dist/cjs/DurableDeferred.js.map +7 -0
  117. package/dist/cjs/DurableQueue.d.ts +160 -0
  118. package/dist/cjs/DurableQueue.d.ts.map +1 -0
  119. package/dist/cjs/DurableQueue.js +229 -0
  120. package/dist/cjs/DurableQueue.js.map +7 -0
  121. package/dist/cjs/ExternalJob.d.ts +179 -0
  122. package/dist/cjs/ExternalJob.d.ts.map +1 -0
  123. package/dist/cjs/ExternalJob.js +338 -0
  124. package/dist/cjs/ExternalJob.js.map +7 -0
  125. package/dist/cjs/Fault.d.ts +131 -0
  126. package/dist/cjs/Fault.d.ts.map +1 -0
  127. package/dist/cjs/Fault.js +157 -0
  128. package/dist/cjs/Fault.js.map +7 -0
  129. package/dist/cjs/Flow/Annotations.d.ts +245 -0
  130. package/dist/cjs/Flow/Annotations.d.ts.map +1 -0
  131. package/dist/cjs/Flow/Annotations.js +72 -0
  132. package/dist/cjs/Flow/Annotations.js.map +7 -0
  133. package/dist/cjs/Flow/CapabilityCeiling.d.ts +21 -0
  134. package/dist/cjs/Flow/CapabilityCeiling.d.ts.map +1 -0
  135. package/dist/cjs/Flow/CapabilityCeiling.js +49 -0
  136. package/dist/cjs/Flow/CapabilityCeiling.js.map +7 -0
  137. package/dist/cjs/Flow/DeadlineExceeded.d.ts +33 -0
  138. package/dist/cjs/Flow/DeadlineExceeded.d.ts.map +1 -0
  139. package/dist/cjs/Flow/DeadlineExceeded.js +52 -0
  140. package/dist/cjs/Flow/DeadlineExceeded.js.map +7 -0
  141. package/dist/cjs/Flow/ExecutionIdRequired.d.ts +25 -0
  142. package/dist/cjs/Flow/ExecutionIdRequired.d.ts.map +1 -0
  143. package/dist/cjs/Flow/ExecutionIdRequired.js +46 -0
  144. package/dist/cjs/Flow/ExecutionIdRequired.js.map +7 -0
  145. package/dist/cjs/Flow/ExecutionIds.d.ts +80 -0
  146. package/dist/cjs/Flow/ExecutionIds.d.ts.map +1 -0
  147. package/dist/cjs/Flow/ExecutionIds.js +66 -0
  148. package/dist/cjs/Flow/ExecutionIds.js.map +7 -0
  149. package/dist/cjs/Flow/Flow.d.ts +422 -0
  150. package/dist/cjs/Flow/Flow.d.ts.map +1 -0
  151. package/dist/cjs/Flow/Flow.js +17 -0
  152. package/dist/cjs/Flow/Flow.js.map +7 -0
  153. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts +35 -0
  154. package/dist/cjs/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  155. package/dist/cjs/Flow/MaxRoundsExceeded.js +50 -0
  156. package/dist/cjs/Flow/MaxRoundsExceeded.js.map +7 -0
  157. package/dist/cjs/Flow/Outcome.d.ts +162 -0
  158. package/dist/cjs/Flow/Outcome.d.ts.map +1 -0
  159. package/dist/cjs/Flow/Outcome.js +80 -0
  160. package/dist/cjs/Flow/Outcome.js.map +7 -0
  161. package/dist/cjs/Flow/Result.d.ts +186 -0
  162. package/dist/cjs/Flow/Result.d.ts.map +1 -0
  163. package/dist/cjs/Flow/Result.js +159 -0
  164. package/dist/cjs/Flow/Result.js.map +7 -0
  165. package/dist/cjs/Flow/Runtime.d.ts +98 -0
  166. package/dist/cjs/Flow/Runtime.d.ts.map +1 -0
  167. package/dist/cjs/Flow/Runtime.js +160 -0
  168. package/dist/cjs/Flow/Runtime.js.map +7 -0
  169. package/dist/cjs/Flow/TypeId.d.ts +8 -0
  170. package/dist/cjs/Flow/TypeId.d.ts.map +1 -0
  171. package/dist/cjs/Flow/TypeId.js +25 -0
  172. package/dist/cjs/Flow/TypeId.js.map +7 -0
  173. package/dist/cjs/Flow/index.d.ts +17 -0
  174. package/dist/cjs/Flow/index.d.ts.map +1 -0
  175. package/dist/cjs/Flow/index.js +29 -0
  176. package/dist/cjs/Flow/index.js.map +7 -0
  177. package/dist/cjs/Flow/internal.d.ts +34 -0
  178. package/dist/cjs/Flow/internal.d.ts.map +1 -0
  179. package/dist/cjs/Flow/internal.js +187 -0
  180. package/dist/cjs/Flow/internal.js.map +7 -0
  181. package/dist/cjs/Flow/make.d.ts +134 -0
  182. package/dist/cjs/Flow/make.d.ts.map +1 -0
  183. package/dist/cjs/Flow/make.js +104 -0
  184. package/dist/cjs/Flow/make.js.map +7 -0
  185. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  186. package/dist/cjs/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  187. package/dist/cjs/FlowRuntime/CancelRequestFailed.js +51 -0
  188. package/dist/cjs/FlowRuntime/CancelRequestFailed.js.map +7 -0
  189. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  190. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  191. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js +55 -0
  192. package/dist/cjs/FlowRuntime/ExecutionIdentityConflict.js.map +7 -0
  193. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  194. package/dist/cjs/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  195. package/dist/cjs/FlowRuntime/FlowCycleDetected.js +49 -0
  196. package/dist/cjs/FlowRuntime/FlowCycleDetected.js.map +7 -0
  197. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  198. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  199. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js +53 -0
  200. package/dist/cjs/FlowRuntime/FlowExecutionNotFound.js.map +7 -0
  201. package/dist/cjs/FlowRuntime/FlowInstance.d.ts +115 -0
  202. package/dist/cjs/FlowRuntime/FlowInstance.d.ts.map +1 -0
  203. package/dist/cjs/FlowRuntime/FlowInstance.js +37 -0
  204. package/dist/cjs/FlowRuntime/FlowInstance.js.map +7 -0
  205. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts +198 -0
  206. package/dist/cjs/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  207. package/dist/cjs/FlowRuntime/FlowRuntime.js +37 -0
  208. package/dist/cjs/FlowRuntime/FlowRuntime.js.map +7 -0
  209. package/dist/cjs/FlowRuntime/NodeRecord.d.ts +175 -0
  210. package/dist/cjs/FlowRuntime/NodeRecord.d.ts.map +1 -0
  211. package/dist/cjs/FlowRuntime/NodeRecord.js +17 -0
  212. package/dist/cjs/FlowRuntime/NodeRecord.js.map +7 -0
  213. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  214. package/dist/cjs/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  215. package/dist/cjs/FlowRuntime/WaitingAnnotation.js +53 -0
  216. package/dist/cjs/FlowRuntime/WaitingAnnotation.js.map +7 -0
  217. package/dist/cjs/FlowRuntime/index.d.ts +14 -0
  218. package/dist/cjs/FlowRuntime/index.d.ts.map +1 -0
  219. package/dist/cjs/FlowRuntime/index.js +26 -0
  220. package/dist/cjs/FlowRuntime/index.js.map +7 -0
  221. package/dist/cjs/Graph.d.ts +325 -0
  222. package/dist/cjs/Graph.d.ts.map +1 -0
  223. package/dist/cjs/Graph.js +1021 -0
  224. package/dist/cjs/Graph.js.map +7 -0
  225. package/dist/cjs/HumanTask.d.ts +440 -0
  226. package/dist/cjs/HumanTask.d.ts.map +1 -0
  227. package/dist/cjs/HumanTask.js +413 -0
  228. package/dist/cjs/HumanTask.js.map +7 -0
  229. package/dist/cjs/Interpreter.d.ts +222 -0
  230. package/dist/cjs/Interpreter.d.ts.map +1 -0
  231. package/dist/cjs/Interpreter.js +888 -0
  232. package/dist/cjs/Interpreter.js.map +7 -0
  233. package/dist/cjs/Poll.d.ts +238 -0
  234. package/dist/cjs/Poll.d.ts.map +1 -0
  235. package/dist/cjs/Poll.js +150 -0
  236. package/dist/cjs/Poll.js.map +7 -0
  237. package/dist/cjs/RetryPolicy.d.ts +273 -0
  238. package/dist/cjs/RetryPolicy.d.ts.map +1 -0
  239. package/dist/cjs/RetryPolicy.js +251 -0
  240. package/dist/cjs/RetryPolicy.js.map +7 -0
  241. package/dist/cjs/Sleep.d.ts +98 -0
  242. package/dist/cjs/Sleep.d.ts.map +1 -0
  243. package/dist/cjs/Sleep.js +133 -0
  244. package/dist/cjs/Sleep.js.map +7 -0
  245. package/dist/cjs/Stall.d.ts +173 -0
  246. package/dist/cjs/Stall.d.ts.map +1 -0
  247. package/dist/cjs/Stall.js +92 -0
  248. package/dist/cjs/Stall.js.map +7 -0
  249. package/dist/cjs/WaitFor.d.ts +109 -0
  250. package/dist/cjs/WaitFor.d.ts.map +1 -0
  251. package/dist/cjs/WaitFor.js +117 -0
  252. package/dist/cjs/WaitFor.js.map +7 -0
  253. package/dist/cjs/index.d.ts +107 -0
  254. package/dist/cjs/index.d.ts.map +1 -0
  255. package/dist/cjs/index.js +69 -0
  256. package/dist/cjs/index.js.map +7 -0
  257. package/dist/cjs/internal/BoundedJson.d.ts +48 -0
  258. package/dist/cjs/internal/BoundedJson.d.ts.map +1 -0
  259. package/dist/cjs/internal/BoundedJson.js +96 -0
  260. package/dist/cjs/internal/BoundedJson.js.map +7 -0
  261. package/dist/cjs/internal/DeclarationSite.d.ts +135 -0
  262. package/dist/cjs/internal/DeclarationSite.d.ts.map +1 -0
  263. package/dist/cjs/internal/DeclarationSite.js +89 -0
  264. package/dist/cjs/internal/DeclarationSite.js.map +7 -0
  265. package/dist/cjs/internal/Declarations.d.ts +35 -0
  266. package/dist/cjs/internal/Declarations.d.ts.map +1 -0
  267. package/dist/cjs/internal/Declarations.js +50 -0
  268. package/dist/cjs/internal/Declarations.js.map +7 -0
  269. package/dist/cjs/internal/ExecutionMiddleware.d.ts +21 -0
  270. package/dist/cjs/internal/ExecutionMiddleware.d.ts.map +1 -0
  271. package/dist/cjs/internal/ExecutionMiddleware.js +39 -0
  272. package/dist/cjs/internal/ExecutionMiddleware.js.map +7 -0
  273. package/dist/cjs/internal/JsonSchemaSubset.d.ts +133 -0
  274. package/dist/cjs/internal/JsonSchemaSubset.d.ts.map +1 -0
  275. package/dist/cjs/internal/JsonSchemaSubset.js +229 -0
  276. package/dist/cjs/internal/JsonSchemaSubset.js.map +7 -0
  277. package/dist/cjs/internal/OutcomeMarker.d.ts +18 -0
  278. package/dist/cjs/internal/OutcomeMarker.d.ts.map +1 -0
  279. package/dist/cjs/internal/OutcomeMarker.js +27 -0
  280. package/dist/cjs/internal/OutcomeMarker.js.map +7 -0
  281. package/dist/cjs/package.json +1 -0
  282. package/dist/esm/Action/Action.d.ts +250 -0
  283. package/dist/esm/Action/Action.d.ts.map +1 -0
  284. package/dist/esm/Action/Action.js +30 -0
  285. package/dist/esm/Action/Action.js.map +1 -0
  286. package/dist/esm/Action/AttemptTimedOut.d.ts +33 -0
  287. package/dist/esm/Action/AttemptTimedOut.d.ts.map +1 -0
  288. package/dist/esm/Action/AttemptTimedOut.js +32 -0
  289. package/dist/esm/Action/AttemptTimedOut.js.map +1 -0
  290. package/dist/esm/Action/BoundaryMode.d.ts +29 -0
  291. package/dist/esm/Action/BoundaryMode.d.ts.map +1 -0
  292. package/dist/esm/Action/BoundaryMode.js +23 -0
  293. package/dist/esm/Action/BoundaryMode.js.map +1 -0
  294. package/dist/esm/Action/CacheEnvironment.d.ts +158 -0
  295. package/dist/esm/Action/CacheEnvironment.d.ts.map +1 -0
  296. package/dist/esm/Action/CacheEnvironment.js +130 -0
  297. package/dist/esm/Action/CacheEnvironment.js.map +1 -0
  298. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts +34 -0
  299. package/dist/esm/Action/ConcurrentKeylessDispatch.d.ts.map +1 -0
  300. package/dist/esm/Action/ConcurrentKeylessDispatch.js +33 -0
  301. package/dist/esm/Action/ConcurrentKeylessDispatch.js.map +1 -0
  302. package/dist/esm/Action/Context.d.ts +131 -0
  303. package/dist/esm/Action/Context.d.ts.map +1 -0
  304. package/dist/esm/Action/Context.js +99 -0
  305. package/dist/esm/Action/Context.js.map +1 -0
  306. package/dist/esm/Action/DuplicateImplementation.d.ts +20 -0
  307. package/dist/esm/Action/DuplicateImplementation.d.ts.map +1 -0
  308. package/dist/esm/Action/DuplicateImplementation.js +20 -0
  309. package/dist/esm/Action/DuplicateImplementation.js.map +1 -0
  310. package/dist/esm/Action/FileBoundary.d.ts +59 -0
  311. package/dist/esm/Action/FileBoundary.d.ts.map +1 -0
  312. package/dist/esm/Action/FileBoundary.js +60 -0
  313. package/dist/esm/Action/FileBoundary.js.map +1 -0
  314. package/dist/esm/Action/FileInput.d.ts +28 -0
  315. package/dist/esm/Action/FileInput.d.ts.map +1 -0
  316. package/dist/esm/Action/FileInput.js +32 -0
  317. package/dist/esm/Action/FileInput.js.map +1 -0
  318. package/dist/esm/Action/Filegroup.d.ts +16 -0
  319. package/dist/esm/Action/Filegroup.d.ts.map +1 -0
  320. package/dist/esm/Action/Filegroup.js +15 -0
  321. package/dist/esm/Action/Filegroup.js.map +1 -0
  322. package/dist/esm/Action/Glob.d.ts +8 -0
  323. package/dist/esm/Action/Glob.d.ts.map +1 -0
  324. package/dist/esm/Action/Glob.js +7 -0
  325. package/dist/esm/Action/Glob.js.map +1 -0
  326. package/dist/esm/Action/ImplementationVersionMismatch.d.ts +26 -0
  327. package/dist/esm/Action/ImplementationVersionMismatch.d.ts.map +1 -0
  328. package/dist/esm/Action/ImplementationVersionMismatch.js +24 -0
  329. package/dist/esm/Action/ImplementationVersionMismatch.js.map +1 -0
  330. package/dist/esm/Action/Implementations.d.ts +114 -0
  331. package/dist/esm/Action/Implementations.d.ts.map +1 -0
  332. package/dist/esm/Action/Implementations.js +94 -0
  333. package/dist/esm/Action/Implementations.js.map +1 -0
  334. package/dist/esm/Action/InfraInterrupt.d.ts +26 -0
  335. package/dist/esm/Action/InfraInterrupt.d.ts.map +1 -0
  336. package/dist/esm/Action/InfraInterrupt.js +25 -0
  337. package/dist/esm/Action/InfraInterrupt.js.map +1 -0
  338. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts +33 -0
  339. package/dist/esm/Action/InfraInterruptRetriesExhausted.d.ts.map +1 -0
  340. package/dist/esm/Action/InfraInterruptRetriesExhausted.js +32 -0
  341. package/dist/esm/Action/InfraInterruptRetriesExhausted.js.map +1 -0
  342. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts +26 -0
  343. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.d.ts.map +1 -0
  344. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js +25 -0
  345. package/dist/esm/Action/IrreversibleRetryRequiresIdempotencyKey.js.map +1 -0
  346. package/dist/esm/Action/StepIdentity.d.ts +153 -0
  347. package/dist/esm/Action/StepIdentity.d.ts.map +1 -0
  348. package/dist/esm/Action/StepIdentity.js +139 -0
  349. package/dist/esm/Action/StepIdentity.js.map +1 -0
  350. package/dist/esm/Action/TreeArtifact.d.ts +8 -0
  351. package/dist/esm/Action/TreeArtifact.d.ts.map +1 -0
  352. package/dist/esm/Action/TreeArtifact.js +7 -0
  353. package/dist/esm/Action/TreeArtifact.js.map +1 -0
  354. package/dist/esm/Action/TypeId.d.ts +8 -0
  355. package/dist/esm/Action/TypeId.d.ts.map +1 -0
  356. package/dist/esm/Action/TypeId.js +9 -0
  357. package/dist/esm/Action/TypeId.js.map +1 -0
  358. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts +32 -0
  359. package/dist/esm/Action/UncanonicalIdempotencyKey.d.ts.map +1 -0
  360. package/dist/esm/Action/UncanonicalIdempotencyKey.js +31 -0
  361. package/dist/esm/Action/UncanonicalIdempotencyKey.js.map +1 -0
  362. package/dist/esm/Action/idempotencyKey.d.ts +21 -0
  363. package/dist/esm/Action/idempotencyKey.d.ts.map +1 -0
  364. package/dist/esm/Action/idempotencyKey.js +50 -0
  365. package/dist/esm/Action/idempotencyKey.js.map +1 -0
  366. package/dist/esm/Action/index.d.ts +29 -0
  367. package/dist/esm/Action/index.d.ts.map +1 -0
  368. package/dist/esm/Action/index.js +30 -0
  369. package/dist/esm/Action/index.js.map +1 -0
  370. package/dist/esm/Action/make.d.ts +128 -0
  371. package/dist/esm/Action/make.d.ts.map +1 -0
  372. package/dist/esm/Action/make.js +405 -0
  373. package/dist/esm/Action/make.js.map +1 -0
  374. package/dist/esm/Action/raceAll.d.ts +21 -0
  375. package/dist/esm/Action/raceAll.d.ts.map +1 -0
  376. package/dist/esm/Action/raceAll.js +20 -0
  377. package/dist/esm/Action/raceAll.js.map +1 -0
  378. package/dist/esm/Action/retry.d.ts +19 -0
  379. package/dist/esm/Action/retry.d.ts.map +1 -0
  380. package/dist/esm/Action/retry.js +72 -0
  381. package/dist/esm/Action/retry.js.map +1 -0
  382. package/dist/esm/Deadline.d.ts +105 -0
  383. package/dist/esm/Deadline.d.ts.map +1 -0
  384. package/dist/esm/Deadline.js +152 -0
  385. package/dist/esm/Deadline.js.map +1 -0
  386. package/dist/esm/DurableClock.d.ts +61 -0
  387. package/dist/esm/DurableClock.d.ts.map +1 -0
  388. package/dist/esm/DurableClock.js +75 -0
  389. package/dist/esm/DurableClock.js.map +1 -0
  390. package/dist/esm/DurableDeferred.d.ts +311 -0
  391. package/dist/esm/DurableDeferred.d.ts.map +1 -0
  392. package/dist/esm/DurableDeferred.js +357 -0
  393. package/dist/esm/DurableDeferred.js.map +1 -0
  394. package/dist/esm/DurableQueue.d.ts +160 -0
  395. package/dist/esm/DurableQueue.d.ts.map +1 -0
  396. package/dist/esm/DurableQueue.js +303 -0
  397. package/dist/esm/DurableQueue.js.map +1 -0
  398. package/dist/esm/ExternalJob.d.ts +179 -0
  399. package/dist/esm/ExternalJob.d.ts.map +1 -0
  400. package/dist/esm/ExternalJob.js +296 -0
  401. package/dist/esm/ExternalJob.js.map +1 -0
  402. package/dist/esm/Fault.d.ts +131 -0
  403. package/dist/esm/Fault.d.ts.map +1 -0
  404. package/dist/esm/Fault.js +198 -0
  405. package/dist/esm/Fault.js.map +1 -0
  406. package/dist/esm/Flow/Annotations.d.ts +245 -0
  407. package/dist/esm/Flow/Annotations.d.ts.map +1 -0
  408. package/dist/esm/Flow/Annotations.js +110 -0
  409. package/dist/esm/Flow/Annotations.js.map +1 -0
  410. package/dist/esm/Flow/CapabilityCeiling.d.ts +21 -0
  411. package/dist/esm/Flow/CapabilityCeiling.d.ts.map +1 -0
  412. package/dist/esm/Flow/CapabilityCeiling.js +27 -0
  413. package/dist/esm/Flow/CapabilityCeiling.js.map +1 -0
  414. package/dist/esm/Flow/DeadlineExceeded.d.ts +33 -0
  415. package/dist/esm/Flow/DeadlineExceeded.d.ts.map +1 -0
  416. package/dist/esm/Flow/DeadlineExceeded.js +34 -0
  417. package/dist/esm/Flow/DeadlineExceeded.js.map +1 -0
  418. package/dist/esm/Flow/ExecutionIdRequired.d.ts +25 -0
  419. package/dist/esm/Flow/ExecutionIdRequired.d.ts.map +1 -0
  420. package/dist/esm/Flow/ExecutionIdRequired.js +30 -0
  421. package/dist/esm/Flow/ExecutionIdRequired.js.map +1 -0
  422. package/dist/esm/Flow/ExecutionIds.d.ts +80 -0
  423. package/dist/esm/Flow/ExecutionIds.d.ts.map +1 -0
  424. package/dist/esm/Flow/ExecutionIds.js +91 -0
  425. package/dist/esm/Flow/ExecutionIds.js.map +1 -0
  426. package/dist/esm/Flow/Flow.d.ts +422 -0
  427. package/dist/esm/Flow/Flow.d.ts.map +1 -0
  428. package/dist/esm/Flow/Flow.js +3 -0
  429. package/dist/esm/Flow/Flow.js.map +1 -0
  430. package/dist/esm/Flow/MaxRoundsExceeded.d.ts +35 -0
  431. package/dist/esm/Flow/MaxRoundsExceeded.d.ts.map +1 -0
  432. package/dist/esm/Flow/MaxRoundsExceeded.js +34 -0
  433. package/dist/esm/Flow/MaxRoundsExceeded.js.map +1 -0
  434. package/dist/esm/Flow/Outcome.d.ts +162 -0
  435. package/dist/esm/Flow/Outcome.d.ts.map +1 -0
  436. package/dist/esm/Flow/Outcome.js +115 -0
  437. package/dist/esm/Flow/Outcome.js.map +1 -0
  438. package/dist/esm/Flow/Result.d.ts +186 -0
  439. package/dist/esm/Flow/Result.d.ts.map +1 -0
  440. package/dist/esm/Flow/Result.js +171 -0
  441. package/dist/esm/Flow/Result.js.map +1 -0
  442. package/dist/esm/Flow/Runtime.d.ts +98 -0
  443. package/dist/esm/Flow/Runtime.d.ts.map +1 -0
  444. package/dist/esm/Flow/Runtime.js +231 -0
  445. package/dist/esm/Flow/Runtime.js.map +1 -0
  446. package/dist/esm/Flow/TypeId.d.ts +8 -0
  447. package/dist/esm/Flow/TypeId.d.ts.map +1 -0
  448. package/dist/esm/Flow/TypeId.js +9 -0
  449. package/dist/esm/Flow/TypeId.js.map +1 -0
  450. package/dist/esm/Flow/index.d.ts +17 -0
  451. package/dist/esm/Flow/index.d.ts.map +1 -0
  452. package/dist/esm/Flow/index.js +18 -0
  453. package/dist/esm/Flow/index.js.map +1 -0
  454. package/dist/esm/Flow/internal.d.ts +34 -0
  455. package/dist/esm/Flow/internal.d.ts.map +1 -0
  456. package/dist/esm/Flow/internal.js +149 -0
  457. package/dist/esm/Flow/internal.js.map +1 -0
  458. package/dist/esm/Flow/make.d.ts +134 -0
  459. package/dist/esm/Flow/make.d.ts.map +1 -0
  460. package/dist/esm/Flow/make.js +106 -0
  461. package/dist/esm/Flow/make.js.map +1 -0
  462. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts +55 -0
  463. package/dist/esm/FlowRuntime/CancelRequestFailed.d.ts.map +1 -0
  464. package/dist/esm/FlowRuntime/CancelRequestFailed.js +53 -0
  465. package/dist/esm/FlowRuntime/CancelRequestFailed.js.map +1 -0
  466. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts +23 -0
  467. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.d.ts.map +1 -0
  468. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js +24 -0
  469. package/dist/esm/FlowRuntime/ExecutionIdentityConflict.js.map +1 -0
  470. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts +28 -0
  471. package/dist/esm/FlowRuntime/FlowCycleDetected.d.ts.map +1 -0
  472. package/dist/esm/FlowRuntime/FlowCycleDetected.js +35 -0
  473. package/dist/esm/FlowRuntime/FlowCycleDetected.js.map +1 -0
  474. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts +38 -0
  475. package/dist/esm/FlowRuntime/FlowExecutionNotFound.d.ts.map +1 -0
  476. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js +40 -0
  477. package/dist/esm/FlowRuntime/FlowExecutionNotFound.js.map +1 -0
  478. package/dist/esm/FlowRuntime/FlowInstance.d.ts +115 -0
  479. package/dist/esm/FlowRuntime/FlowInstance.d.ts.map +1 -0
  480. package/dist/esm/FlowRuntime/FlowInstance.js +24 -0
  481. package/dist/esm/FlowRuntime/FlowInstance.js.map +1 -0
  482. package/dist/esm/FlowRuntime/FlowRuntime.d.ts +198 -0
  483. package/dist/esm/FlowRuntime/FlowRuntime.d.ts.map +1 -0
  484. package/dist/esm/FlowRuntime/FlowRuntime.js +34 -0
  485. package/dist/esm/FlowRuntime/FlowRuntime.js.map +1 -0
  486. package/dist/esm/FlowRuntime/NodeRecord.d.ts +175 -0
  487. package/dist/esm/FlowRuntime/NodeRecord.d.ts.map +1 -0
  488. package/dist/esm/FlowRuntime/NodeRecord.js +21 -0
  489. package/dist/esm/FlowRuntime/NodeRecord.js.map +1 -0
  490. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts +69 -0
  491. package/dist/esm/FlowRuntime/WaitingAnnotation.d.ts.map +1 -0
  492. package/dist/esm/FlowRuntime/WaitingAnnotation.js +53 -0
  493. package/dist/esm/FlowRuntime/WaitingAnnotation.js.map +1 -0
  494. package/dist/esm/FlowRuntime/index.d.ts +14 -0
  495. package/dist/esm/FlowRuntime/index.d.ts.map +1 -0
  496. package/dist/esm/FlowRuntime/index.js +15 -0
  497. package/dist/esm/FlowRuntime/index.js.map +1 -0
  498. package/dist/esm/Graph.d.ts +325 -0
  499. package/dist/esm/Graph.d.ts.map +1 -0
  500. package/dist/esm/Graph.js +1483 -0
  501. package/dist/esm/Graph.js.map +1 -0
  502. package/dist/esm/HumanTask.d.ts +440 -0
  503. package/dist/esm/HumanTask.d.ts.map +1 -0
  504. package/dist/esm/HumanTask.js +794 -0
  505. package/dist/esm/HumanTask.js.map +1 -0
  506. package/dist/esm/Interpreter.d.ts +222 -0
  507. package/dist/esm/Interpreter.d.ts.map +1 -0
  508. package/dist/esm/Interpreter.js +1269 -0
  509. package/dist/esm/Interpreter.js.map +1 -0
  510. package/dist/esm/Poll.d.ts +238 -0
  511. package/dist/esm/Poll.d.ts.map +1 -0
  512. package/dist/esm/Poll.js +282 -0
  513. package/dist/esm/Poll.js.map +1 -0
  514. package/dist/esm/RetryPolicy.d.ts +273 -0
  515. package/dist/esm/RetryPolicy.d.ts.map +1 -0
  516. package/dist/esm/RetryPolicy.js +429 -0
  517. package/dist/esm/RetryPolicy.js.map +1 -0
  518. package/dist/esm/Sleep.d.ts +98 -0
  519. package/dist/esm/Sleep.d.ts.map +1 -0
  520. package/dist/esm/Sleep.js +230 -0
  521. package/dist/esm/Sleep.js.map +1 -0
  522. package/dist/esm/Stall.d.ts +173 -0
  523. package/dist/esm/Stall.d.ts.map +1 -0
  524. package/dist/esm/Stall.js +138 -0
  525. package/dist/esm/Stall.js.map +1 -0
  526. package/dist/esm/WaitFor.d.ts +109 -0
  527. package/dist/esm/WaitFor.d.ts.map +1 -0
  528. package/dist/esm/WaitFor.js +184 -0
  529. package/dist/esm/WaitFor.js.map +1 -0
  530. package/dist/esm/index.d.ts +107 -0
  531. package/dist/esm/index.d.ts.map +1 -0
  532. package/dist/esm/index.js +108 -0
  533. package/dist/esm/index.js.map +1 -0
  534. package/dist/esm/internal/BoundedJson.d.ts +48 -0
  535. package/dist/esm/internal/BoundedJson.d.ts.map +1 -0
  536. package/dist/esm/internal/BoundedJson.js +107 -0
  537. package/dist/esm/internal/BoundedJson.js.map +1 -0
  538. package/dist/esm/internal/DeclarationSite.d.ts +135 -0
  539. package/dist/esm/internal/DeclarationSite.d.ts.map +1 -0
  540. package/dist/esm/internal/DeclarationSite.js +196 -0
  541. package/dist/esm/internal/DeclarationSite.js.map +1 -0
  542. package/dist/esm/internal/Declarations.d.ts +35 -0
  543. package/dist/esm/internal/Declarations.d.ts.map +1 -0
  544. package/dist/esm/internal/Declarations.js +43 -0
  545. package/dist/esm/internal/Declarations.js.map +1 -0
  546. package/dist/esm/internal/ExecutionMiddleware.d.ts +21 -0
  547. package/dist/esm/internal/ExecutionMiddleware.d.ts.map +1 -0
  548. package/dist/esm/internal/ExecutionMiddleware.js +13 -0
  549. package/dist/esm/internal/ExecutionMiddleware.js.map +1 -0
  550. package/dist/esm/internal/JsonSchemaSubset.d.ts +133 -0
  551. package/dist/esm/internal/JsonSchemaSubset.d.ts.map +1 -0
  552. package/dist/esm/internal/JsonSchemaSubset.js +363 -0
  553. package/dist/esm/internal/JsonSchemaSubset.js.map +1 -0
  554. package/dist/esm/internal/OutcomeMarker.d.ts +18 -0
  555. package/dist/esm/internal/OutcomeMarker.d.ts.map +1 -0
  556. package/dist/esm/internal/OutcomeMarker.js +18 -0
  557. package/dist/esm/internal/OutcomeMarker.js.map +1 -0
  558. package/docs/README.md +150 -0
  559. package/docs/api.md +436 -0
  560. package/docs/concepts/bodies-and-plans.md +157 -0
  561. package/docs/concepts/execution-identity.md +142 -0
  562. package/docs/concepts/flows-and-actions.md +129 -0
  563. package/docs/concepts/suspension-and-replay.md +130 -0
  564. package/docs/concepts/the-runtime-port.md +110 -0
  565. package/docs/concepts/trampoline-rounds.md +151 -0
  566. package/docs/guides/ask-a-person.md +184 -0
  567. package/docs/guides/build-a-body.md +161 -0
  568. package/docs/guides/cancel-and-roll-back.md +112 -0
  569. package/docs/guides/implement-an-action.md +147 -0
  570. package/docs/guides/inspect-the-plan.md +154 -0
  571. package/docs/guides/poll-until-ready.md +167 -0
  572. package/docs/guides/queue-work-to-a-worker.md +122 -0
  573. package/docs/guides/retry-a-failing-action.md +243 -0
  574. package/docs/guides/reuse-a-recorded-result.md +122 -0
  575. package/docs/guides/run-a-child-flow.md +108 -0
  576. package/docs/guides/run-an-external-job.md +86 -0
  577. package/docs/guides/use-a-prompt.md +38 -0
  578. package/docs/guides/wait-for-a-deadline.md +141 -0
  579. package/docs/guides/wait-for-an-external-signal.md +151 -0
  580. package/docs/installation.md +82 -0
  581. package/docs/quickstart.md +155 -0
  582. package/docs/reference/flow.md +1831 -0
  583. package/docs/testing.md +157 -0
  584. package/docs/troubleshooting.md +286 -0
  585. package/package.json +327 -3
  586. package/src/Action/Action.ts +333 -0
  587. package/src/Action/AttemptTimedOut.ts +37 -0
  588. package/src/Action/BoundaryMode.ts +33 -0
  589. package/src/Action/CacheEnvironment.ts +170 -0
  590. package/src/Action/ConcurrentKeylessDispatch.ts +38 -0
  591. package/src/Action/Context.ts +156 -0
  592. package/src/Action/DuplicateImplementation.ts +24 -0
  593. package/src/Action/FileBoundary.ts +77 -0
  594. package/src/Action/FileInput.ts +42 -0
  595. package/src/Action/Filegroup.ts +16 -0
  596. package/src/Action/Glob.ts +8 -0
  597. package/src/Action/ImplementationVersionMismatch.ts +27 -0
  598. package/src/Action/Implementations.ts +149 -0
  599. package/src/Action/InfraInterrupt.ts +30 -0
  600. package/src/Action/InfraInterruptRetriesExhausted.ts +37 -0
  601. package/src/Action/IrreversibleRetryRequiresIdempotencyKey.ts +32 -0
  602. package/src/Action/StepIdentity.ts +219 -0
  603. package/src/Action/TreeArtifact.ts +8 -0
  604. package/src/Action/TypeId.ts +9 -0
  605. package/src/Action/UncanonicalIdempotencyKey.ts +36 -0
  606. package/src/Action/idempotencyKey.ts +67 -0
  607. package/src/Action/index.ts +31 -0
  608. package/src/Action/make.ts +657 -0
  609. package/src/Action/raceAll.ts +48 -0
  610. package/src/Action/retry.ts +92 -0
  611. package/src/Deadline.ts +185 -0
  612. package/src/DurableClock.ts +133 -0
  613. package/src/DurableDeferred.ts +753 -0
  614. package/src/DurableQueue.ts +519 -0
  615. package/src/ExternalJob.ts +432 -0
  616. package/src/Fault.ts +279 -0
  617. package/src/Flow/Annotations.ts +151 -0
  618. package/src/Flow/CapabilityCeiling.ts +37 -0
  619. package/src/Flow/DeadlineExceeded.ts +40 -0
  620. package/src/Flow/ExecutionIdRequired.ts +36 -0
  621. package/src/Flow/ExecutionIds.ts +133 -0
  622. package/src/Flow/Flow.ts +576 -0
  623. package/src/Flow/MaxRoundsExceeded.ts +39 -0
  624. package/src/Flow/Outcome.ts +179 -0
  625. package/src/Flow/Result.ts +284 -0
  626. package/src/Flow/Runtime.ts +309 -0
  627. package/src/Flow/TypeId.ts +9 -0
  628. package/src/Flow/index.ts +19 -0
  629. package/src/Flow/internal.ts +237 -0
  630. package/src/Flow/make.ts +279 -0
  631. package/src/FlowRuntime/CancelRequestFailed.ts +56 -0
  632. package/src/FlowRuntime/ExecutionIdentityConflict.ts +32 -0
  633. package/src/FlowRuntime/FlowCycleDetected.ts +41 -0
  634. package/src/FlowRuntime/FlowExecutionNotFound.ts +46 -0
  635. package/src/FlowRuntime/FlowInstance.ts +128 -0
  636. package/src/FlowRuntime/FlowRuntime.ts +333 -0
  637. package/src/FlowRuntime/NodeRecord.ts +183 -0
  638. package/src/FlowRuntime/WaitingAnnotation.ts +85 -0
  639. package/src/FlowRuntime/index.ts +17 -0
  640. package/src/Graph.ts +1862 -0
  641. package/src/HumanTask.ts +1003 -0
  642. package/src/Interpreter.ts +1593 -0
  643. package/src/Poll.ts +414 -0
  644. package/src/RetryPolicy.ts +550 -0
  645. package/src/Sleep.ts +267 -0
  646. package/src/Stall.ts +217 -0
  647. package/src/WaitFor.ts +228 -0
  648. package/src/index.ts +125 -0
  649. package/src/internal/BoundedJson.ts +109 -0
  650. package/src/internal/DeclarationSite.ts +214 -0
  651. package/src/internal/Declarations.ts +49 -0
  652. package/src/internal/ExecutionMiddleware.ts +29 -0
  653. package/src/internal/JsonSchemaSubset.ts +392 -0
  654. package/src/internal/OutcomeMarker.ts +19 -0
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,130 @@
1
+ // Deep reviewed and polished by a human on 2026-08-10.
2
+ /**
3
+ * The environment description folded into every cross-run cache key.
4
+ *
5
+ * A cached result is only reusable on a host that would have produced the same
6
+ * bytes, so the key has to name the environment as well as the inputs — the
7
+ * platform, the toolchain, and the capability groups in force. Bazel's action
8
+ * key does the same thing for the same reason.
9
+ *
10
+ * It is a *complete* value on purpose: an environment a composition cannot
11
+ * fully describe is one whose cache hits cannot be justified, and the engine
12
+ * executes rather than guessing at the missing part.
13
+ *
14
+ * @since 0.1.0
15
+ */
16
+ import * as PlanCachePolicy from "@smthrs/plan/CachePolicy";
17
+ import * as Schema from "effect/Schema";
18
+ /**
19
+ * Validates named capability groups.
20
+ *
21
+ * @private
22
+ * @since 0.1.0
23
+ */
24
+ const Capabilities = Schema.Record(Schema.String, Schema.Array(Schema.NonEmptyString)).check(Schema.makeFilter((capabilities) => Object.keys(capabilities).every((name) => name.length > 0) || "Capability names must not be empty"));
25
+ /**
26
+ * Schema for the complete runtime environment included in cache keys.
27
+ *
28
+ * @category models
29
+ * @since 0.1.0
30
+ */
31
+ export const CacheEnvironment = Schema.Struct({
32
+ /** Ordered semantic runtime layers, including versions and configuration. */
33
+ layers: Schema.Array(Schema.NonEmptyString),
34
+ /** Complete effective capability groups. */
35
+ capabilities: Capabilities
36
+ });
37
+ /**
38
+ * How far a recorded sealed result may travel.
39
+ *
40
+ * `shared` is the content-addressed default: the key names the inputs and the
41
+ * environment, so any run on any host that would have produced the same bytes
42
+ * may reuse the row. `run` and `flow` narrow that on purpose — a step whose
43
+ * result is only meaningful inside one execution, or inside one flow, folds
44
+ * that identity into its key so a sibling never reads it.
45
+ *
46
+ * This is `@smthrs/plan`'s `CachePolicy.CacheScope`, the one scope vocabulary
47
+ * `@smthrs/patterns` also declares its policy with.
48
+ *
49
+ * @category models
50
+ * @since 0.1.0
51
+ */
52
+ export const CacheScope = PlanCachePolicy.CacheScope;
53
+ /**
54
+ * The caller's declaration about the decay and the reach of a sealed action's
55
+ * recorded result.
56
+ *
57
+ * `ttlMs` bounds the age of a row the engine may serve: past it the dispatch
58
+ * executes again and journals `cache-expired`, so the refusal is durable
59
+ * evidence a replay reads rather than a fresh clock reading. `scope` decides
60
+ * what the key names besides the inputs.
61
+ *
62
+ * This is `@smthrs/plan`'s `CachePolicy.CachePolicy`, the one policy schema.
63
+ *
64
+ * @category schemas
65
+ * @since 0.1.0
66
+ */
67
+ export const CachePolicy = PlanCachePolicy.CachePolicy;
68
+ /**
69
+ * Annotation key carrying a declaration's {@link CachePolicy}.
70
+ *
71
+ * It is an annotation, not a field on the action, for the same reason
72
+ * placement and effects are: the policy is data that travels with the
73
+ * declaration and is read by whoever executes it, and adding it changes no
74
+ * existing call site.
75
+ *
76
+ * It is `@smthrs/plan`'s `CachePolicy.CachePolicyAnnotation` itself, the same
77
+ * object `@smthrs/patterns` annotates a flow with, identified by
78
+ * `"@smthrs/flow/Action/CachePolicy"`.
79
+ *
80
+ * @category annotations
81
+ * @since 0.1.0
82
+ */
83
+ export const CachePolicyAnnotation = PlanCachePolicy.CachePolicyAnnotation;
84
+ /**
85
+ * Reads the cache policy an annotation bag carries, or `undefined` when it
86
+ * carries none.
87
+ *
88
+ * @category getters
89
+ * @since 0.1.0
90
+ */
91
+ export const cachePolicyOf = PlanCachePolicy.cachePolicyOf;
92
+ /**
93
+ * Declares a cache policy on an action.
94
+ *
95
+ * This is the form the engine honors today: `@smthrs/engine-store` reads
96
+ * {@link CachePolicyAnnotation} off the dispatched action, bounds the age of
97
+ * the row it may serve by `ttlMs`, and narrows the address that row is stored
98
+ * under from `scope`. `@smthrs/patterns`' `WithCache` declares the same policy
99
+ * over a `@smthrs/core` flow under the same annotation key, for the
100
+ * declaration surface, so a policy written by either is read by the engine.
101
+ *
102
+ * The action is not mutated. `annotate` returns a new declaration carrying the
103
+ * policy, which is what a plan captures.
104
+ *
105
+ * It is `@smthrs/plan`'s `CachePolicy.annotate` under this package's name for
106
+ * it.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * import { Action } from "@smthrs/flow"
111
+ * import * as CacheEnvironment from "@smthrs/flow/CacheEnvironment"
112
+ * import * as Effect from "effect/Effect"
113
+ * import * as Schema from "effect/Schema"
114
+ *
115
+ * const compile = CacheEnvironment.withCache(
116
+ * Action.make({
117
+ * name: "build/compile",
118
+ * success: Schema.String,
119
+ * tier: "sealed",
120
+ * execute: Effect.succeed("dist/server.js")
121
+ * }),
122
+ * { ttlMs: 60_000, scope: "shared" }
123
+ * )
124
+ * ```
125
+ *
126
+ * @category combinators
127
+ * @since 0.1.0
128
+ */
129
+ export const withCache = PlanCachePolicy.annotate;
130
+ //# sourceMappingURL=CacheEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheEnvironment.js","sourceRoot":"","sources":["../../../src/Action/CacheEnvironment.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAC1F,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,EAAE,CACjC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,oCAAoC,CACnG,CACF,CAAA;AAaD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;IAC3C,4CAA4C;IAC5C,YAAY,EAAE,YAAY;CAC3B,CAAC,CAAA;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;AAUpD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAA;AAWtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC,qBAAqB,CAAA;AAE1E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAA;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAA","sourcesContent":["// Deep reviewed and polished by a human on 2026-08-10.\n\n/**\n * The environment description folded into every cross-run cache key.\n *\n * A cached result is only reusable on a host that would have produced the same\n * bytes, so the key has to name the environment as well as the inputs — the\n * platform, the toolchain, and the capability groups in force. Bazel's action\n * key does the same thing for the same reason.\n *\n * It is a *complete* value on purpose: an environment a composition cannot\n * fully describe is one whose cache hits cannot be justified, and the engine\n * executes rather than guessing at the missing part.\n *\n * @since 0.1.0\n */\n\nimport * as PlanCachePolicy from \"@smthrs/plan/CachePolicy\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * Validates named capability groups.\n *\n * @private\n * @since 0.1.0\n */\nconst Capabilities = Schema.Record(Schema.String, Schema.Array(Schema.NonEmptyString)).check(\n Schema.makeFilter((capabilities) =>\n Object.keys(capabilities).every((name) => name.length > 0) || \"Capability names must not be empty\"\n )\n)\n\n/**\n * Complete runtime environment included in every cross-run cache key.\n *\n * If a composition cannot provide this complete value, the engine executes\n * normally but does not derive a cross-run cache key.\n *\n * @category models\n * @since 0.1.0\n */\nexport type CacheEnvironment = typeof CacheEnvironment.Type\n\n/**\n * Schema for the complete runtime environment included in cache keys.\n *\n * @category models\n * @since 0.1.0\n */\nexport const CacheEnvironment = Schema.Struct({\n /** Ordered semantic runtime layers, including versions and configuration. */\n layers: Schema.Array(Schema.NonEmptyString),\n /** Complete effective capability groups. */\n capabilities: Capabilities\n})\n\n/**\n * How far a recorded sealed result may travel.\n *\n * `shared` is the content-addressed default: the key names the inputs and the\n * environment, so any run on any host that would have produced the same bytes\n * may reuse the row. `run` and `flow` narrow that on purpose — a step whose\n * result is only meaningful inside one execution, or inside one flow, folds\n * that identity into its key so a sibling never reads it.\n *\n * This is `@smthrs/plan`'s `CachePolicy.CacheScope`, the one scope vocabulary\n * `@smthrs/patterns` also declares its policy with.\n *\n * @category models\n * @since 0.1.0\n */\nexport const CacheScope = PlanCachePolicy.CacheScope\n\n/**\n * How far a recorded sealed result may travel.\n *\n * @category models\n * @since 0.1.0\n */\nexport type CacheScope = PlanCachePolicy.CacheScope\n\n/**\n * The caller's declaration about the decay and the reach of a sealed action's\n * recorded result.\n *\n * `ttlMs` bounds the age of a row the engine may serve: past it the dispatch\n * executes again and journals `cache-expired`, so the refusal is durable\n * evidence a replay reads rather than a fresh clock reading. `scope` decides\n * what the key names besides the inputs.\n *\n * This is `@smthrs/plan`'s `CachePolicy.CachePolicy`, the one policy schema.\n *\n * @category schemas\n * @since 0.1.0\n */\nexport const CachePolicy = PlanCachePolicy.CachePolicy\n\n/**\n * The caller's declaration about the decay and the reach of a sealed action's\n * recorded result.\n *\n * @category models\n * @since 0.1.0\n */\nexport type CachePolicy = PlanCachePolicy.CachePolicy\n\n/**\n * Annotation key carrying a declaration's {@link CachePolicy}.\n *\n * It is an annotation, not a field on the action, for the same reason\n * placement and effects are: the policy is data that travels with the\n * declaration and is read by whoever executes it, and adding it changes no\n * existing call site.\n *\n * It is `@smthrs/plan`'s `CachePolicy.CachePolicyAnnotation` itself, the same\n * object `@smthrs/patterns` annotates a flow with, identified by\n * `\"@smthrs/flow/Action/CachePolicy\"`.\n *\n * @category annotations\n * @since 0.1.0\n */\nexport const CachePolicyAnnotation = PlanCachePolicy.CachePolicyAnnotation\n\n/**\n * Reads the cache policy an annotation bag carries, or `undefined` when it\n * carries none.\n *\n * @category getters\n * @since 0.1.0\n */\nexport const cachePolicyOf = PlanCachePolicy.cachePolicyOf\n\n/**\n * Declares a cache policy on an action.\n *\n * This is the form the engine honors today: `@smthrs/engine-store` reads\n * {@link CachePolicyAnnotation} off the dispatched action, bounds the age of\n * the row it may serve by `ttlMs`, and narrows the address that row is stored\n * under from `scope`. `@smthrs/patterns`' `WithCache` declares the same policy\n * over a `@smthrs/core` flow under the same annotation key, for the\n * declaration surface, so a policy written by either is read by the engine.\n *\n * The action is not mutated. `annotate` returns a new declaration carrying the\n * policy, which is what a plan captures.\n *\n * It is `@smthrs/plan`'s `CachePolicy.annotate` under this package's name for\n * it.\n *\n * @example\n * ```ts\n * import { Action } from \"@smthrs/flow\"\n * import * as CacheEnvironment from \"@smthrs/flow/CacheEnvironment\"\n * import * as Effect from \"effect/Effect\"\n * import * as Schema from \"effect/Schema\"\n *\n * const compile = CacheEnvironment.withCache(\n * Action.make({\n * name: \"build/compile\",\n * success: Schema.String,\n * tier: \"sealed\",\n * execute: Effect.succeed(\"dist/server.js\")\n * }),\n * { ttlMs: 60_000, scope: \"shared\" }\n * )\n * ```\n *\n * @category combinators\n * @since 0.1.0\n */\nexport const withCache = PlanCachePolicy.annotate\n"]}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Defines the `ConcurrentKeylessDispatch` action failure.
3
+ *
4
+ * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
5
+ * makes no compatibility promise to 0.x journals, and the tag freezes when
6
+ * the RC ships.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+ import * as Schema from "effect/Schema";
11
+ declare const ConcurrentKeylessDispatch_base: Schema.Class<ConcurrentKeylessDispatch, Schema.TaggedStruct<"@smthrs/flow/ConcurrentKeylessDispatch", {
12
+ readonly code: Schema.withConstructorDefault<Schema.Literal<"concurrent_keyless_dispatch">>;
13
+ readonly actionName: Schema.String;
14
+ }>, import("effect/Cause").YieldableError>;
15
+ /**
16
+ * Two ordinal-keyed invocations of one allocation scope were in flight
17
+ * concurrently, either keyless invocations of one declaration or same-key
18
+ * invocations at a non-sealed tier (issue #130), so their ordinals, and with
19
+ * them their step keys, attempt rows, and recorded outcomes, would be
20
+ * assigned by fiber arrival order. A crash-resume that replays the fibers in
21
+ * the opposite order would silently hand one invocation the other's recorded
22
+ * outcome (issue #111); Temporal fails such replays with a nondeterminism
23
+ * error, and the engine refuses the hazard up front instead of detecting it
24
+ * after the corruption. Declare an `idempotencyKey` *distinguishing* the
25
+ * invocations to dispatch them concurrently; a sealed action with a key
26
+ * takes a pure cache key and is exempt.
27
+ *
28
+ * @category errors
29
+ * @since 0.1.0
30
+ */
31
+ export declare class ConcurrentKeylessDispatch extends ConcurrentKeylessDispatch_base {
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=ConcurrentKeylessDispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrentKeylessDispatch.d.ts","sourceRoot":"","sources":["../../../src/Action/ConcurrentKeylessDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,yBAA0B,SAAQ,8BAQ9C;CAAG"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Defines the `ConcurrentKeylessDispatch` action failure.
3
+ *
4
+ * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC
5
+ * makes no compatibility promise to 0.x journals, and the tag freezes when
6
+ * the RC ships.
7
+ *
8
+ * @since 0.1.0
9
+ */
10
+ import * as Effect from "effect/Effect";
11
+ import * as Schema from "effect/Schema";
12
+ /**
13
+ * Two ordinal-keyed invocations of one allocation scope were in flight
14
+ * concurrently, either keyless invocations of one declaration or same-key
15
+ * invocations at a non-sealed tier (issue #130), so their ordinals, and with
16
+ * them their step keys, attempt rows, and recorded outcomes, would be
17
+ * assigned by fiber arrival order. A crash-resume that replays the fibers in
18
+ * the opposite order would silently hand one invocation the other's recorded
19
+ * outcome (issue #111); Temporal fails such replays with a nondeterminism
20
+ * error, and the engine refuses the hazard up front instead of detecting it
21
+ * after the corruption. Declare an `idempotencyKey` *distinguishing* the
22
+ * invocations to dispatch them concurrently; a sealed action with a key
23
+ * takes a pure cache key and is exempt.
24
+ *
25
+ * @category errors
26
+ * @since 0.1.0
27
+ */
28
+ export class ConcurrentKeylessDispatch extends Schema.TaggedError()("@smthrs/flow/ConcurrentKeylessDispatch", {
29
+ code: Schema.Literal("concurrent_keyless_dispatch").pipe(Schema.withConstructorDefault(Effect.succeed("concurrent_keyless_dispatch"))),
30
+ actionName: Schema.String
31
+ }) {
32
+ }
33
+ //# sourceMappingURL=ConcurrentKeylessDispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrentKeylessDispatch.js","sourceRoot":"","sources":["../../../src/Action/ConcurrentKeylessDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,WAAW,EAA6B,CAC5F,wCAAwC,EACxC;IACE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,IAAI,CACtD,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,CAC7E;IACD,UAAU,EAAE,MAAM,CAAC,MAAM;CAC1B,CACF;CAAG","sourcesContent":["/**\n * Defines the `ConcurrentKeylessDispatch` action failure.\n *\n * The `_tag` string was settled under `@smthrs/flow/` for 1.0.0-rc.0. The RC\n * makes no compatibility promise to 0.x journals, and the tag freezes when\n * the RC ships.\n *\n * @since 0.1.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as Schema from \"effect/Schema\"\n\n/**\n * Two ordinal-keyed invocations of one allocation scope were in flight\n * concurrently, either keyless invocations of one declaration or same-key\n * invocations at a non-sealed tier (issue #130), so their ordinals, and with\n * them their step keys, attempt rows, and recorded outcomes, would be\n * assigned by fiber arrival order. A crash-resume that replays the fibers in\n * the opposite order would silently hand one invocation the other's recorded\n * outcome (issue #111); Temporal fails such replays with a nondeterminism\n * error, and the engine refuses the hazard up front instead of detecting it\n * after the corruption. Declare an `idempotencyKey` *distinguishing* the\n * invocations to dispatch them concurrently; a sealed action with a key\n * takes a pure cache key and is exempt.\n *\n * @category errors\n * @since 0.1.0\n */\nexport class ConcurrentKeylessDispatch extends Schema.TaggedError<ConcurrentKeylessDispatch>()(\n \"@smthrs/flow/ConcurrentKeylessDispatch\",\n {\n code: Schema.Literal(\"concurrent_keyless_dispatch\").pipe(\n Schema.withConstructorDefault(Effect.succeed(\"concurrent_keyless_dispatch\"))\n ),\n actionName: Schema.String\n }\n) {}\n"]}