@lostgradient/weft 0.2.0

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 (1075) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +493 -0
  3. package/dist/alerting/alert-manager.d.ts +42 -0
  4. package/dist/alerting/alert-manager.js +167 -0
  5. package/dist/alerting/index.d.ts +2 -0
  6. package/dist/alerting/index.js +1 -0
  7. package/dist/alerting/sliding-window.d.ts +26 -0
  8. package/dist/alerting/sliding-window.js +97 -0
  9. package/dist/alerting/types.d.ts +157 -0
  10. package/dist/alerting/types.js +0 -0
  11. package/dist/cli/api-arguments.d.ts +2 -0
  12. package/dist/cli/api-arguments.js +48 -0
  13. package/dist/cli/api.d.ts +13 -0
  14. package/dist/cli/api.js +191 -0
  15. package/dist/cli/codegen-arguments.d.ts +10 -0
  16. package/dist/cli/codegen-arguments.js +50 -0
  17. package/dist/cli/codegen-emit-keywords.d.ts +28 -0
  18. package/dist/cli/codegen-emit-keywords.js +48 -0
  19. package/dist/cli/codegen-emit.d.ts +50 -0
  20. package/dist/cli/codegen-emit.js +280 -0
  21. package/dist/cli/codegen.d.ts +38 -0
  22. package/dist/cli/codegen.js +268 -0
  23. package/dist/cli/command-suggestions.d.ts +9 -0
  24. package/dist/cli/command-suggestions.js +27 -0
  25. package/dist/cli/completions.d.ts +17 -0
  26. package/dist/cli/completions.js +112 -0
  27. package/dist/cli/conformance.d.ts +9 -0
  28. package/dist/cli/conformance.js +226 -0
  29. package/dist/cli/doctor.d.ts +6 -0
  30. package/dist/cli/doctor.js +9 -0
  31. package/dist/cli/generated/operation-client.generated.d.ts +605 -0
  32. package/dist/cli/generated/operation-client.generated.js +60 -0
  33. package/dist/cli/help-text.d.ts +13 -0
  34. package/dist/cli/help-text.js +269 -0
  35. package/dist/cli/index.d.ts +23 -0
  36. package/dist/cli/index.js +34 -0
  37. package/dist/cli/json-rpc-client.d.ts +15 -0
  38. package/dist/cli/json-rpc-client.js +37 -0
  39. package/dist/cli/noun-verb-arguments.d.ts +15 -0
  40. package/dist/cli/noun-verb-arguments.js +190 -0
  41. package/dist/cli/operation-catalog-snapshot.d.ts +38 -0
  42. package/dist/cli/operation-catalog-snapshot.js +48 -0
  43. package/dist/cli/operation-client-runtime.d.ts +47 -0
  44. package/dist/cli/operation-client-runtime.js +33 -0
  45. package/dist/cli/output.d.ts +66 -0
  46. package/dist/cli/output.js +83 -0
  47. package/dist/cli/parse-arguments.d.ts +3 -0
  48. package/dist/cli/parse-arguments.js +214 -0
  49. package/dist/cli/parse-schedule-arguments.d.ts +9 -0
  50. package/dist/cli/parse-schedule-arguments.js +132 -0
  51. package/dist/cli/schedule.d.ts +3 -0
  52. package/dist/cli/schedule.js +128 -0
  53. package/dist/cli/serve-registrations.d.ts +15 -0
  54. package/dist/cli/serve-registrations.js +23 -0
  55. package/dist/cli/server-client.d.ts +45 -0
  56. package/dist/cli/server-client.js +33 -0
  57. package/dist/cli/server-commands.d.ts +19 -0
  58. package/dist/cli/server-commands.js +151 -0
  59. package/dist/cli/storage-backend-arguments.d.ts +15 -0
  60. package/dist/cli/storage-backend-arguments.js +16 -0
  61. package/dist/cli/storage-factory.d.ts +8 -0
  62. package/dist/cli/storage-factory.js +18 -0
  63. package/dist/cli/subcommand-detection.d.ts +2 -0
  64. package/dist/cli/subcommand-detection.js +38 -0
  65. package/dist/cli/tail.d.ts +50 -0
  66. package/dist/cli/tail.js +161 -0
  67. package/dist/cli/timeline.d.ts +9 -0
  68. package/dist/cli/timeline.js +78 -0
  69. package/dist/cli/types.d.ts +224 -0
  70. package/dist/cli/types.js +0 -0
  71. package/dist/cli/utilities.d.ts +9 -0
  72. package/dist/cli/utilities.js +120 -0
  73. package/dist/cli/validate.d.ts +6 -0
  74. package/dist/cli/validate.js +70 -0
  75. package/dist/cli/version-check.d.ts +7 -0
  76. package/dist/cli/version-check.js +16 -0
  77. package/dist/cli/version.d.ts +7 -0
  78. package/dist/cli/version.js +4 -0
  79. package/dist/cli/workflow-commands.d.ts +15 -0
  80. package/dist/cli/workflow-commands.js +195 -0
  81. package/dist/cli-main.d.ts +2 -0
  82. package/dist/cli-main.js +402 -0
  83. package/dist/client/event-stream-transport.d.ts +73 -0
  84. package/dist/client/event-stream-transport.js +59 -0
  85. package/dist/client/event-stream.d.ts +90 -0
  86. package/dist/client/event-stream.js +221 -0
  87. package/dist/client/event-tail.d.ts +50 -0
  88. package/dist/client/event-tail.js +0 -0
  89. package/dist/client/handle-delegation.d.ts +73 -0
  90. package/dist/client/handle-delegation.js +66 -0
  91. package/dist/client/http-client-requests.d.ts +65 -0
  92. package/dist/client/http-client-requests.js +178 -0
  93. package/dist/client/http-client.d.ts +130 -0
  94. package/dist/client/http-client.js +217 -0
  95. package/dist/client/http-handle.d.ts +27 -0
  96. package/dist/client/http-handle.js +43 -0
  97. package/dist/client/http-operations.d.ts +29 -0
  98. package/dist/client/http-operations.js +36 -0
  99. package/dist/client/http-request.d.ts +101 -0
  100. package/dist/client/http-request.js +73 -0
  101. package/dist/client/http-schedule-handle.d.ts +5 -0
  102. package/dist/client/http-schedule-handle.js +5 -0
  103. package/dist/client/in-process-operations.d.ts +30 -0
  104. package/dist/client/in-process-operations.js +17 -0
  105. package/dist/client/index.d.ts +15 -0
  106. package/dist/client/index.js +2 -0
  107. package/dist/client/interface.d.ts +333 -0
  108. package/dist/client/interface.js +0 -0
  109. package/dist/client/local-event-tail.d.ts +30 -0
  110. package/dist/client/local-event-tail.js +131 -0
  111. package/dist/client/local.d.ts +115 -0
  112. package/dist/client/local.js +178 -0
  113. package/dist/client/open-event-subscription.d.ts +33 -0
  114. package/dist/client/open-event-subscription.js +5 -0
  115. package/dist/client/schedule-list-search-params.d.ts +3 -0
  116. package/dist/client/schedule-list-search-params.js +18 -0
  117. package/dist/client/search-params.d.ts +3 -0
  118. package/dist/client/search-params.js +54 -0
  119. package/dist/client/start-body.d.ts +9 -0
  120. package/dist/client/start-body.js +23 -0
  121. package/dist/client/workflow-name-typing.d.ts +33 -0
  122. package/dist/client/workflow-name-typing.js +0 -0
  123. package/dist/connection.d.ts +121 -0
  124. package/dist/connection.js +161 -0
  125. package/dist/core/activity-registry.d.ts +135 -0
  126. package/dist/core/activity-registry.js +174 -0
  127. package/dist/core/activity.d.ts +2 -0
  128. package/dist/core/activity.js +1 -0
  129. package/dist/core/aggregate-validation.d.ts +85 -0
  130. package/dist/core/aggregate-validation.js +48 -0
  131. package/dist/core/atomic-state-events.d.ts +214 -0
  132. package/dist/core/atomic-state-events.js +39 -0
  133. package/dist/core/atomic-state.d.ts +79 -0
  134. package/dist/core/atomic-state.js +231 -0
  135. package/dist/core/bulk-workflow-filter.d.ts +23 -0
  136. package/dist/core/bulk-workflow-filter.js +38 -0
  137. package/dist/core/checkpoint/comparison.d.ts +2 -0
  138. package/dist/core/checkpoint/comparison.js +137 -0
  139. package/dist/core/checkpoint/index.d.ts +4 -0
  140. package/dist/core/checkpoint/index.js +3 -0
  141. package/dist/core/checkpoint/interfaces.d.ts +11 -0
  142. package/dist/core/checkpoint/interfaces.js +0 -0
  143. package/dist/core/checkpoint/lifecycle.d.ts +49 -0
  144. package/dist/core/checkpoint/lifecycle.js +36 -0
  145. package/dist/core/checkpoint/serialization.d.ts +31 -0
  146. package/dist/core/checkpoint/serialization.js +155 -0
  147. package/dist/core/checkpoint/validation.d.ts +4 -0
  148. package/dist/core/checkpoint/validation.js +26 -0
  149. package/dist/core/checkpoint.d.ts +1 -0
  150. package/dist/core/checkpoint.js +1 -0
  151. package/dist/core/codec/api.d.ts +32 -0
  152. package/dist/core/codec/api.js +9 -0
  153. package/dist/core/codec/extension-codec.d.ts +7 -0
  154. package/dist/core/codec/extension-codec.js +145 -0
  155. package/dist/core/codec/index.d.ts +3 -0
  156. package/dist/core/codec/index.js +2 -0
  157. package/dist/core/codec/validation.d.ts +28 -0
  158. package/dist/core/codec/validation.js +139 -0
  159. package/dist/core/codec-helpers.d.ts +8 -0
  160. package/dist/core/codec-helpers.js +19 -0
  161. package/dist/core/codec.d.ts +1 -0
  162. package/dist/core/codec.js +1 -0
  163. package/dist/core/compression.d.ts +127 -0
  164. package/dist/core/compression.js +88 -0
  165. package/dist/core/concurrency-lock-record.d.ts +122 -0
  166. package/dist/core/concurrency-lock-record.js +53 -0
  167. package/dist/core/concurrency.d.ts +221 -0
  168. package/dist/core/concurrency.js +93 -0
  169. package/dist/core/constraint.d.ts +144 -0
  170. package/dist/core/constraint.js +3 -0
  171. package/dist/core/context/attributes.d.ts +7 -0
  172. package/dist/core/context/attributes.js +29 -0
  173. package/dist/core/context/child-workflow-pipe.d.ts +18 -0
  174. package/dist/core/context/child-workflow-pipe.js +111 -0
  175. package/dist/core/context/durable-operations.d.ts +29 -0
  176. package/dist/core/context/durable-operations.js +166 -0
  177. package/dist/core/context/index.d.ts +114 -0
  178. package/dist/core/context/index.js +224 -0
  179. package/dist/core/context/internals.d.ts +30 -0
  180. package/dist/core/context/internals.js +36 -0
  181. package/dist/core/context/operation-request.d.ts +160 -0
  182. package/dist/core/context/operation-request.js +0 -0
  183. package/dist/core/context/parallel-cache-entry.d.ts +91 -0
  184. package/dist/core/context/parallel-cache-entry.js +92 -0
  185. package/dist/core/context/parallel-operations.d.ts +9 -0
  186. package/dist/core/context/parallel-operations.js +202 -0
  187. package/dist/core/context/run-operation.d.ts +21 -0
  188. package/dist/core/context/run-operation.js +231 -0
  189. package/dist/core/context/saga.d.ts +4 -0
  190. package/dist/core/context/saga.js +65 -0
  191. package/dist/core/context/session-state.d.ts +22 -0
  192. package/dist/core/context/session-state.js +154 -0
  193. package/dist/core/context/speculate-operations.d.ts +4 -0
  194. package/dist/core/context/speculate-operations.js +14 -0
  195. package/dist/core/context/speculative-child.d.ts +6 -0
  196. package/dist/core/context/speculative-child.js +67 -0
  197. package/dist/core/context/state-namespace.d.ts +27 -0
  198. package/dist/core/context/state-namespace.js +138 -0
  199. package/dist/core/context/types.d.ts +181 -0
  200. package/dist/core/context/types.js +0 -0
  201. package/dist/core/context/updates.d.ts +46 -0
  202. package/dist/core/context/updates.js +21 -0
  203. package/dist/core/context/validation.d.ts +2 -0
  204. package/dist/core/context/validation.js +12 -0
  205. package/dist/core/context.d.ts +1 -0
  206. package/dist/core/context.js +1 -0
  207. package/dist/core/debug-output.d.ts +3 -0
  208. package/dist/core/debug-output.js +112 -0
  209. package/dist/core/effect-log/index.d.ts +194 -0
  210. package/dist/core/effect-log/index.js +104 -0
  211. package/dist/core/engine/activity-reconciliation.d.ts +108 -0
  212. package/dist/core/engine/activity-reconciliation.js +182 -0
  213. package/dist/core/engine/aggregate.d.ts +47 -0
  214. package/dist/core/engine/aggregate.js +132 -0
  215. package/dist/core/engine/anonymous-signal-sequence.d.ts +4 -0
  216. package/dist/core/engine/anonymous-signal-sequence.js +101 -0
  217. package/dist/core/engine/async-activity-completion.d.ts +141 -0
  218. package/dist/core/engine/async-activity-completion.js +131 -0
  219. package/dist/core/engine/attributes-tags.d.ts +31 -0
  220. package/dist/core/engine/attributes-tags.js +178 -0
  221. package/dist/core/engine/broadcast.d.ts +8 -0
  222. package/dist/core/engine/broadcast.js +26 -0
  223. package/dist/core/engine/bulk-operations-purge.d.ts +11 -0
  224. package/dist/core/engine/bulk-operations-purge.js +246 -0
  225. package/dist/core/engine/bulk-operations-shared.d.ts +28 -0
  226. package/dist/core/engine/bulk-operations-shared.js +198 -0
  227. package/dist/core/engine/bulk-operations.d.ts +21 -0
  228. package/dist/core/engine/bulk-operations.js +128 -0
  229. package/dist/core/engine/callback-creators-bundles.d.ts +25 -0
  230. package/dist/core/engine/callback-creators-bundles.js +154 -0
  231. package/dist/core/engine/callback-creators-core.d.ts +39 -0
  232. package/dist/core/engine/callback-creators-core.js +136 -0
  233. package/dist/core/engine/callback-creators-router-registry.d.ts +4 -0
  234. package/dist/core/engine/callback-creators-router-registry.js +9 -0
  235. package/dist/core/engine/callback-creators-router.d.ts +3 -0
  236. package/dist/core/engine/callback-creators-router.js +68 -0
  237. package/dist/core/engine/callback-creators-schedule.d.ts +13 -0
  238. package/dist/core/engine/callback-creators-schedule.js +65 -0
  239. package/dist/core/engine/callback-creators.d.ts +9 -0
  240. package/dist/core/engine/callback-creators.js +87 -0
  241. package/dist/core/engine/cancel-handlers.d.ts +6 -0
  242. package/dist/core/engine/cancel-handlers.js +32 -0
  243. package/dist/core/engine/checkpoint-commit-snapshots.d.ts +4 -0
  244. package/dist/core/engine/checkpoint-commit-snapshots.js +16 -0
  245. package/dist/core/engine/checkpoint-io.d.ts +34 -0
  246. package/dist/core/engine/checkpoint-io.js +183 -0
  247. package/dist/core/engine/checkpoint-reads.d.ts +22 -0
  248. package/dist/core/engine/checkpoint-reads.js +98 -0
  249. package/dist/core/engine/child-workflow.d.ts +20 -0
  250. package/dist/core/engine/child-workflow.js +72 -0
  251. package/dist/core/engine/completed-review-storage.d.ts +14 -0
  252. package/dist/core/engine/completed-review-storage.js +61 -0
  253. package/dist/core/engine/constraints.d.ts +24 -0
  254. package/dist/core/engine/constraints.js +57 -0
  255. package/dist/core/engine/construction.d.ts +60 -0
  256. package/dist/core/engine/construction.js +213 -0
  257. package/dist/core/engine/disposal.d.ts +9 -0
  258. package/dist/core/engine/disposal.js +58 -0
  259. package/dist/core/engine/engine-create-types.d.ts +70 -0
  260. package/dist/core/engine/engine-create-types.js +0 -0
  261. package/dist/core/engine/engine-internal-types.d.ts +59 -0
  262. package/dist/core/engine/engine-internal-types.js +0 -0
  263. package/dist/core/engine/engine-leak-warnings.d.ts +26 -0
  264. package/dist/core/engine/engine-leak-warnings.js +42 -0
  265. package/dist/core/engine/engine-runtime-helpers.d.ts +8 -0
  266. package/dist/core/engine/engine-runtime-helpers.js +52 -0
  267. package/dist/core/engine/engine-state-namespace.d.ts +20 -0
  268. package/dist/core/engine/engine-state-namespace.js +0 -0
  269. package/dist/core/engine/errors.d.ts +215 -0
  270. package/dist/core/engine/errors.js +90 -0
  271. package/dist/core/engine/event-log-compaction.d.ts +102 -0
  272. package/dist/core/engine/event-log-compaction.js +76 -0
  273. package/dist/core/engine/guards.d.ts +17 -0
  274. package/dist/core/engine/guards.js +43 -0
  275. package/dist/core/engine/handle-iteration.d.ts +2 -0
  276. package/dist/core/engine/handle-iteration.js +59 -0
  277. package/dist/core/engine/handle-result.d.ts +8 -0
  278. package/dist/core/engine/handle-result.js +74 -0
  279. package/dist/core/engine/handles.d.ts +137 -0
  280. package/dist/core/engine/handles.js +173 -0
  281. package/dist/core/engine/index.d.ts +311 -0
  282. package/dist/core/engine/index.js +595 -0
  283. package/dist/core/engine/inline-launch-queue.d.ts +17 -0
  284. package/dist/core/engine/inline-launch-queue.js +93 -0
  285. package/dist/core/engine/inline-parking.d.ts +26 -0
  286. package/dist/core/engine/inline-parking.js +86 -0
  287. package/dist/core/engine/internals.d.ts +167 -0
  288. package/dist/core/engine/internals.js +11 -0
  289. package/dist/core/engine/lifecycle/fork-helpers.d.ts +9 -0
  290. package/dist/core/engine/lifecycle/fork-helpers.js +66 -0
  291. package/dist/core/engine/lifecycle/persist.d.ts +22 -0
  292. package/dist/core/engine/lifecycle/persist.js +80 -0
  293. package/dist/core/engine/lifecycle/resume.d.ts +4 -0
  294. package/dist/core/engine/lifecycle/resume.js +136 -0
  295. package/dist/core/engine/lifecycle/shared.d.ts +79 -0
  296. package/dist/core/engine/lifecycle/shared.js +49 -0
  297. package/dist/core/engine/lifecycle/start-batch.d.ts +7 -0
  298. package/dist/core/engine/lifecycle/start-batch.js +70 -0
  299. package/dist/core/engine/lifecycle/start-exec.d.ts +5 -0
  300. package/dist/core/engine/lifecycle/start-exec.js +39 -0
  301. package/dist/core/engine/lifecycle/start.d.ts +13 -0
  302. package/dist/core/engine/lifecycle/start.js +163 -0
  303. package/dist/core/engine/lifecycle/transition.d.ts +8 -0
  304. package/dist/core/engine/lifecycle/transition.js +183 -0
  305. package/dist/core/engine/lifecycle.d.ts +8 -0
  306. package/dist/core/engine/lifecycle.js +40 -0
  307. package/dist/core/engine/list-candidate-resolution.d.ts +15 -0
  308. package/dist/core/engine/list-candidate-resolution.js +88 -0
  309. package/dist/core/engine/listing.d.ts +17 -0
  310. package/dist/core/engine/listing.js +186 -0
  311. package/dist/core/engine/operations-activity.d.ts +40 -0
  312. package/dist/core/engine/operations-activity.js +194 -0
  313. package/dist/core/engine/operations-coordination.d.ts +39 -0
  314. package/dist/core/engine/operations-coordination.js +162 -0
  315. package/dist/core/engine/operations-data.d.ts +23 -0
  316. package/dist/core/engine/operations-data.js +38 -0
  317. package/dist/core/engine/operations-router.d.ts +75 -0
  318. package/dist/core/engine/operations-router.js +90 -0
  319. package/dist/core/engine/operations-speculate.d.ts +16 -0
  320. package/dist/core/engine/operations-speculate.js +40 -0
  321. package/dist/core/engine/operations-state.d.ts +16 -0
  322. package/dist/core/engine/operations-state.js +27 -0
  323. package/dist/core/engine/operations-stream.d.ts +20 -0
  324. package/dist/core/engine/operations-stream.js +54 -0
  325. package/dist/core/engine/operations-time.d.ts +28 -0
  326. package/dist/core/engine/operations-time.js +167 -0
  327. package/dist/core/engine/parallel-dispatch.d.ts +92 -0
  328. package/dist/core/engine/parallel-dispatch.js +45 -0
  329. package/dist/core/engine/pending-updates.d.ts +18 -0
  330. package/dist/core/engine/pending-updates.js +109 -0
  331. package/dist/core/engine/persisted-data-version.d.ts +24 -0
  332. package/dist/core/engine/persisted-data-version.js +25 -0
  333. package/dist/core/engine/queries.d.ts +3 -0
  334. package/dist/core/engine/queries.js +17 -0
  335. package/dist/core/engine/registration.d.ts +6 -0
  336. package/dist/core/engine/registration.js +107 -0
  337. package/dist/core/engine/retention.d.ts +15 -0
  338. package/dist/core/engine/retention.js +76 -0
  339. package/dist/core/engine/review-list-entries.d.ts +6 -0
  340. package/dist/core/engine/review-list-entries.js +117 -0
  341. package/dist/core/engine/reviews.d.ts +34 -0
  342. package/dist/core/engine/reviews.js +242 -0
  343. package/dist/core/engine/schedule-occurrence.d.ts +35 -0
  344. package/dist/core/engine/schedule-occurrence.js +26 -0
  345. package/dist/core/engine/schedule-timer.d.ts +4 -0
  346. package/dist/core/engine/schedule-timer.js +77 -0
  347. package/dist/core/engine/schedules.d.ts +34 -0
  348. package/dist/core/engine/schedules.js +204 -0
  349. package/dist/core/engine/signals.d.ts +40 -0
  350. package/dist/core/engine/signals.js +185 -0
  351. package/dist/core/engine/speculative-execution-state.d.ts +8 -0
  352. package/dist/core/engine/speculative-execution-state.js +26 -0
  353. package/dist/core/engine/state-utilities.d.ts +62 -0
  354. package/dist/core/engine/state-utilities.js +306 -0
  355. package/dist/core/engine/storage-io.d.ts +21 -0
  356. package/dist/core/engine/storage-io.js +82 -0
  357. package/dist/core/engine/strategy-helpers.d.ts +27 -0
  358. package/dist/core/engine/strategy-helpers.js +47 -0
  359. package/dist/core/engine/stream-chunk-loading.d.ts +5 -0
  360. package/dist/core/engine/stream-chunk-loading.js +22 -0
  361. package/dist/core/engine/sub-operation.d.ts +24 -0
  362. package/dist/core/engine/sub-operation.js +78 -0
  363. package/dist/core/engine/termination/cleanup.d.ts +67 -0
  364. package/dist/core/engine/termination/cleanup.js +167 -0
  365. package/dist/core/engine/termination/complete.d.ts +13 -0
  366. package/dist/core/engine/termination/complete.js +249 -0
  367. package/dist/core/engine/termination.d.ts +7 -0
  368. package/dist/core/engine/termination.js +23 -0
  369. package/dist/core/engine/updates.d.ts +56 -0
  370. package/dist/core/engine/updates.js +230 -0
  371. package/dist/core/engine/validation/schedule.d.ts +38 -0
  372. package/dist/core/engine/validation/schedule.js +258 -0
  373. package/dist/core/engine/validation.d.ts +40 -0
  374. package/dist/core/engine/validation.js +144 -0
  375. package/dist/core/engine/workflow-feed.d.ts +82 -0
  376. package/dist/core/engine/workflow-feed.js +96 -0
  377. package/dist/core/engine/workflow-indexes.d.ts +103 -0
  378. package/dist/core/engine/workflow-indexes.js +93 -0
  379. package/dist/core/engine/workflow-state-stream.d.ts +9 -0
  380. package/dist/core/engine/workflow-state-stream.js +126 -0
  381. package/dist/core/engine/workflow-visibility-queries.d.ts +40 -0
  382. package/dist/core/engine/workflow-visibility-queries.js +56 -0
  383. package/dist/core/engine-helpers.d.ts +56 -0
  384. package/dist/core/engine-helpers.js +52 -0
  385. package/dist/core/engine.d.ts +1 -0
  386. package/dist/core/engine.js +1 -0
  387. package/dist/core/event-log-shared.d.ts +65 -0
  388. package/dist/core/event-log-shared.js +31 -0
  389. package/dist/core/event-log-verify.d.ts +51 -0
  390. package/dist/core/event-log-verify.js +64 -0
  391. package/dist/core/event-log.d.ts +112 -0
  392. package/dist/core/event-log.js +81 -0
  393. package/dist/core/events/activity-events.d.ts +104 -0
  394. package/dist/core/events/activity-events.js +63 -0
  395. package/dist/core/events/attribute-events.d.ts +22 -0
  396. package/dist/core/events/attribute-events.js +10 -0
  397. package/dist/core/events/event-map.d.ts +80 -0
  398. package/dist/core/events/event-map.js +0 -0
  399. package/dist/core/events/index.d.ts +7 -0
  400. package/dist/core/events/index.js +7 -0
  401. package/dist/core/events/signal-events.d.ts +45 -0
  402. package/dist/core/events/signal-events.js +23 -0
  403. package/dist/core/events/system-events.d.ts +149 -0
  404. package/dist/core/events/system-events.js +92 -0
  405. package/dist/core/events/update-events.d.ts +53 -0
  406. package/dist/core/events/update-events.js +31 -0
  407. package/dist/core/events/workflow-events.d.ts +198 -0
  408. package/dist/core/events/workflow-events.js +91 -0
  409. package/dist/core/events.d.ts +1 -0
  410. package/dist/core/events.js +1 -0
  411. package/dist/core/execution-strategy.d.ts +107 -0
  412. package/dist/core/execution-strategy.js +0 -0
  413. package/dist/core/failure-categories.d.ts +18 -0
  414. package/dist/core/failure-categories.js +70 -0
  415. package/dist/core/fault-code.d.ts +92 -0
  416. package/dist/core/fault-code.js +21 -0
  417. package/dist/core/inline-execution-strategy.d.ts +76 -0
  418. package/dist/core/inline-execution-strategy.js +264 -0
  419. package/dist/core/interceptor/activity-composition.d.ts +20 -0
  420. package/dist/core/interceptor/activity-composition.js +17 -0
  421. package/dist/core/interceptor/index.d.ts +25 -0
  422. package/dist/core/interceptor/index.js +8 -0
  423. package/dist/core/interceptor/interception-contexts.d.ts +200 -0
  424. package/dist/core/interceptor/interception-contexts.js +0 -0
  425. package/dist/core/interceptor/interceptor-interfaces.d.ts +149 -0
  426. package/dist/core/interceptor/interceptor-interfaces.js +9 -0
  427. package/dist/core/interceptor/split.d.ts +11 -0
  428. package/dist/core/interceptor/split.js +14 -0
  429. package/dist/core/interceptor/workflow-composition.d.ts +21 -0
  430. package/dist/core/interceptor/workflow-composition.js +116 -0
  431. package/dist/core/interceptor.d.ts +1 -0
  432. package/dist/core/interceptor.js +1 -0
  433. package/dist/core/json.d.ts +56 -0
  434. package/dist/core/json.js +77 -0
  435. package/dist/core/list-filter-validation.d.ts +78 -0
  436. package/dist/core/list-filter-validation.js +75 -0
  437. package/dist/core/payload-size.d.ts +78 -0
  438. package/dist/core/payload-size.js +27 -0
  439. package/dist/core/persisted-data-incompatible-error.d.ts +48 -0
  440. package/dist/core/persisted-data-incompatible-error.js +12 -0
  441. package/dist/core/registry-snapshot.d.ts +69 -0
  442. package/dist/core/registry-snapshot.js +70 -0
  443. package/dist/core/review/events.d.ts +73 -0
  444. package/dist/core/review/events.js +31 -0
  445. package/dist/core/review/index.d.ts +265 -0
  446. package/dist/core/review/index.js +96 -0
  447. package/dist/core/runtime-workflow-engine.d.ts +16 -0
  448. package/dist/core/runtime-workflow-engine.js +6 -0
  449. package/dist/core/schedule/cron-formatter.d.ts +10 -0
  450. package/dist/core/schedule/cron-formatter.js +103 -0
  451. package/dist/core/schedule/cron-occurrence.d.ts +3 -0
  452. package/dist/core/schedule/cron-occurrence.js +129 -0
  453. package/dist/core/schedule/cron-parser.d.ts +2 -0
  454. package/dist/core/schedule/cron-parser.js +93 -0
  455. package/dist/core/schedule/cron-types.d.ts +35 -0
  456. package/dist/core/schedule/cron-types.js +0 -0
  457. package/dist/core/schedule/index.d.ts +3 -0
  458. package/dist/core/schedule/index.js +2 -0
  459. package/dist/core/schedule/interval-occurrence.d.ts +31 -0
  460. package/dist/core/schedule/interval-occurrence.js +26 -0
  461. package/dist/core/schedule.d.ts +1 -0
  462. package/dist/core/schedule.js +1 -0
  463. package/dist/core/scheduler/duration.d.ts +44 -0
  464. package/dist/core/scheduler/duration.js +48 -0
  465. package/dist/core/scheduler/index.d.ts +4 -0
  466. package/dist/core/scheduler/index.js +3 -0
  467. package/dist/core/scheduler/scheduler-class.d.ts +52 -0
  468. package/dist/core/scheduler/scheduler-class.js +167 -0
  469. package/dist/core/scheduler/timer-batch.d.ts +10 -0
  470. package/dist/core/scheduler/timer-batch.js +42 -0
  471. package/dist/core/scheduler/timer-sources.d.ts +17 -0
  472. package/dist/core/scheduler/timer-sources.js +61 -0
  473. package/dist/core/scheduler.d.ts +1 -0
  474. package/dist/core/scheduler.js +1 -0
  475. package/dist/core/search-attributes.d.ts +67 -0
  476. package/dist/core/search-attributes.js +196 -0
  477. package/dist/core/session-state.d.ts +18 -0
  478. package/dist/core/session-state.js +71 -0
  479. package/dist/core/signal-id.d.ts +2 -0
  480. package/dist/core/signal-id.js +10 -0
  481. package/dist/core/start-workflow-validation.d.ts +14 -0
  482. package/dist/core/start-workflow-validation.js +63 -0
  483. package/dist/core/step-context.d.ts +97 -0
  484. package/dist/core/step-context.js +113 -0
  485. package/dist/core/timeouts.d.ts +98 -0
  486. package/dist/core/timeouts.js +38 -0
  487. package/dist/core/types/activity.d.ts +316 -0
  488. package/dist/core/types/activity.js +15 -0
  489. package/dist/core/types/archive-adapter.d.ts +49 -0
  490. package/dist/core/types/archive-adapter.js +0 -0
  491. package/dist/core/types/bulk.d.ts +312 -0
  492. package/dist/core/types/bulk.js +1 -0
  493. package/dist/core/types/checkpoint.d.ts +237 -0
  494. package/dist/core/types/checkpoint.js +12 -0
  495. package/dist/core/types/clone-plain.d.ts +17 -0
  496. package/dist/core/types/clone-plain.js +25 -0
  497. package/dist/core/types/constants.d.ts +54 -0
  498. package/dist/core/types/constants.js +1 -0
  499. package/dist/core/types/deep-freeze.d.ts +31 -0
  500. package/dist/core/types/deep-freeze.js +31 -0
  501. package/dist/core/types/definition-schema-to-json.d.ts +41 -0
  502. package/dist/core/types/definition-schema-to-json.js +56 -0
  503. package/dist/core/types/definition-schema.d.ts +341 -0
  504. package/dist/core/types/definition-schema.js +45 -0
  505. package/dist/core/types/history-policy.d.ts +92 -0
  506. package/dist/core/types/history-policy.js +1 -0
  507. package/dist/core/types/identity.d.ts +55 -0
  508. package/dist/core/types/identity.js +0 -0
  509. package/dist/core/types/message-handles.d.ts +229 -0
  510. package/dist/core/types/message-handles.js +36 -0
  511. package/dist/core/types/name-grammar.d.ts +30 -0
  512. package/dist/core/types/name-grammar.js +9 -0
  513. package/dist/core/types/options.d.ts +360 -0
  514. package/dist/core/types/options.js +0 -0
  515. package/dist/core/types/payload-size-policy.d.ts +47 -0
  516. package/dist/core/types/payload-size-policy.js +0 -0
  517. package/dist/core/types/registry-type-helpers.d.ts +1 -0
  518. package/dist/core/types/registry-type-helpers.js +0 -0
  519. package/dist/core/types/retry-retention.d.ts +163 -0
  520. package/dist/core/types/retry-retention.js +6 -0
  521. package/dist/core/types/reviews.d.ts +170 -0
  522. package/dist/core/types/reviews.js +0 -0
  523. package/dist/core/types/schedules.d.ts +176 -0
  524. package/dist/core/types/schedules.js +3 -0
  525. package/dist/core/types/search-attributes.d.ts +127 -0
  526. package/dist/core/types/search-attributes.js +8 -0
  527. package/dist/core/types/serializer.d.ts +30 -0
  528. package/dist/core/types/serializer.js +0 -0
  529. package/dist/core/types/standard-schema-validate.d.ts +113 -0
  530. package/dist/core/types/standard-schema-validate.js +60 -0
  531. package/dist/core/types/state.d.ts +261 -0
  532. package/dist/core/types/state.js +0 -0
  533. package/dist/core/types/workflow-builder-helpers.d.ts +310 -0
  534. package/dist/core/types/workflow-builder-helpers.js +0 -0
  535. package/dist/core/types/workflow-builder-runtime.d.ts +97 -0
  536. package/dist/core/types/workflow-builder-runtime.js +137 -0
  537. package/dist/core/types/workflow-builder.d.ts +343 -0
  538. package/dist/core/types/workflow-builder.js +0 -0
  539. package/dist/core/types/workflow-context.d.ts +168 -0
  540. package/dist/core/types/workflow-context.js +0 -0
  541. package/dist/core/types/workflow-definition.d.ts +61 -0
  542. package/dist/core/types/workflow-definition.js +0 -0
  543. package/dist/core/types/workflow-function.d.ts +330 -0
  544. package/dist/core/types/workflow-function.js +9 -0
  545. package/dist/core/types/workflow-registries.d.ts +203 -0
  546. package/dist/core/types/workflow-registries.js +0 -0
  547. package/dist/core/types/workflow-registry.d.ts +31 -0
  548. package/dist/core/types/workflow-registry.js +0 -0
  549. package/dist/core/types.d.ts +26 -0
  550. package/dist/core/types.js +26 -0
  551. package/dist/core/updates.d.ts +183 -0
  552. package/dist/core/updates.js +141 -0
  553. package/dist/core/versioning.d.ts +153 -0
  554. package/dist/core/versioning.js +94 -0
  555. package/dist/core/weft-error.d.ts +82 -0
  556. package/dist/core/weft-error.js +43 -0
  557. package/dist/core/worker-checkpoint-resume-state.d.ts +11 -0
  558. package/dist/core/worker-checkpoint-resume-state.js +40 -0
  559. package/dist/core/worker-execution-dispatcher.d.ts +42 -0
  560. package/dist/core/worker-execution-dispatcher.js +95 -0
  561. package/dist/core/worker-execution-ownership.d.ts +20 -0
  562. package/dist/core/worker-execution-ownership.js +91 -0
  563. package/dist/core/worker-execution-strategy-options.d.ts +7 -0
  564. package/dist/core/worker-execution-strategy-options.js +0 -0
  565. package/dist/core/worker-execution-strategy.d.ts +29 -0
  566. package/dist/core/worker-execution-strategy.js +356 -0
  567. package/dist/core/worker-listener-registry.d.ts +11 -0
  568. package/dist/core/worker-listener-registry.js +35 -0
  569. package/dist/core/worker-message-helpers.d.ts +5 -0
  570. package/dist/core/worker-message-helpers.js +14 -0
  571. package/dist/core/worker-protocol-guard.d.ts +20 -0
  572. package/dist/core/worker-protocol-guard.js +69 -0
  573. package/dist/core/worker-protocol.d.ts +27 -0
  574. package/dist/core/worker-protocol.js +346 -0
  575. package/dist/core/worker-turn-watchdog.d.ts +14 -0
  576. package/dist/core/worker-turn-watchdog.js +40 -0
  577. package/dist/core/workflow-identifiers.d.ts +1 -0
  578. package/dist/core/workflow-identifiers.js +19 -0
  579. package/dist/core/workflow-tags.d.ts +9 -0
  580. package/dist/core/workflow-tags.js +37 -0
  581. package/dist/core/workflow-version-tuple.d.ts +67 -0
  582. package/dist/core/workflow-version-tuple.js +77 -0
  583. package/dist/diagnostics/doctor.d.ts +30 -0
  584. package/dist/diagnostics/doctor.js +173 -0
  585. package/dist/diagnostics/format.d.ts +77 -0
  586. package/dist/diagnostics/format.js +115 -0
  587. package/dist/diagnostics/index.d.ts +15 -0
  588. package/dist/diagnostics/index.js +10 -0
  589. package/dist/diagnostics/memory-profiler.d.ts +136 -0
  590. package/dist/diagnostics/memory-profiler.js +93 -0
  591. package/dist/diagnostics/recommendations.d.ts +37 -0
  592. package/dist/diagnostics/recommendations.js +116 -0
  593. package/dist/diagnostics/types.d.ts +178 -0
  594. package/dist/diagnostics/types.js +9 -0
  595. package/dist/diagnostics/validate.d.ts +79 -0
  596. package/dist/diagnostics/validate.js +88 -0
  597. package/dist/diagnostics/version-check.d.ts +34 -0
  598. package/dist/diagnostics/version-check.js +61 -0
  599. package/dist/index.d.ts +109 -0
  600. package/dist/index.js +182 -0
  601. package/dist/json-schema.d.ts +55 -0
  602. package/dist/json-schema.js +4 -0
  603. package/dist/mcp/access.d.ts +21 -0
  604. package/dist/mcp/access.js +22 -0
  605. package/dist/mcp/cli.d.ts +2 -0
  606. package/dist/mcp/cli.js +72 -0
  607. package/dist/mcp/dispatcher.d.ts +13 -0
  608. package/dist/mcp/dispatcher.js +198 -0
  609. package/dist/mcp/http.d.ts +64 -0
  610. package/dist/mcp/http.js +272 -0
  611. package/dist/mcp/index.d.ts +17 -0
  612. package/dist/mcp/index.js +26 -0
  613. package/dist/mcp/list-filter.d.ts +10 -0
  614. package/dist/mcp/list-filter.js +116 -0
  615. package/dist/mcp/protocol.d.ts +89 -0
  616. package/dist/mcp/protocol.js +64 -0
  617. package/dist/mcp/resources.d.ts +40 -0
  618. package/dist/mcp/resources.js +141 -0
  619. package/dist/mcp/session.d.ts +138 -0
  620. package/dist/mcp/session.js +204 -0
  621. package/dist/mcp/stdio.d.ts +89 -0
  622. package/dist/mcp/stdio.js +204 -0
  623. package/dist/mcp/tools.d.ts +27 -0
  624. package/dist/mcp/tools.js +262 -0
  625. package/dist/observability/activity-interceptor.d.ts +3 -0
  626. package/dist/observability/activity-interceptor.js +34 -0
  627. package/dist/observability/index.d.ts +60 -0
  628. package/dist/observability/index.js +4 -0
  629. package/dist/observability/metrics-catalog.d.ts +128 -0
  630. package/dist/observability/metrics-catalog.js +110 -0
  631. package/dist/observability/metrics-snapshot.d.ts +106 -0
  632. package/dist/observability/metrics-snapshot.js +0 -0
  633. package/dist/observability/metrics.d.ts +156 -0
  634. package/dist/observability/metrics.js +152 -0
  635. package/dist/observability/no-op-telemetry.d.ts +168 -0
  636. package/dist/observability/no-op-telemetry.js +96 -0
  637. package/dist/observability/propagation.d.ts +121 -0
  638. package/dist/observability/propagation.js +41 -0
  639. package/dist/observability/span-helpers.d.ts +50 -0
  640. package/dist/observability/span-helpers.js +83 -0
  641. package/dist/observability/types.d.ts +92 -0
  642. package/dist/observability/types.js +0 -0
  643. package/dist/observability/workflow-interceptor.d.ts +3 -0
  644. package/dist/observability/workflow-interceptor.js +106 -0
  645. package/dist/observability/workflow-lifecycle.d.ts +8 -0
  646. package/dist/observability/workflow-lifecycle.js +103 -0
  647. package/dist/runtime/portable.d.ts +119 -0
  648. package/dist/runtime/portable.js +90 -0
  649. package/dist/server/api-catalog.d.ts +85 -0
  650. package/dist/server/api-catalog.js +47 -0
  651. package/dist/server/asyncapi-channels.d.ts +40 -0
  652. package/dist/server/asyncapi-channels.js +264 -0
  653. package/dist/server/asyncapi.d.ts +25 -0
  654. package/dist/server/asyncapi.js +110 -0
  655. package/dist/server/attribute-filters.d.ts +37 -0
  656. package/dist/server/attribute-filters.js +39 -0
  657. package/dist/server/authentication/api-key.d.ts +3 -0
  658. package/dist/server/authentication/api-key.js +80 -0
  659. package/dist/server/authentication/audit.d.ts +116 -0
  660. package/dist/server/authentication/audit.js +25 -0
  661. package/dist/server/authentication/crypto.d.ts +7 -0
  662. package/dist/server/authentication/crypto.js +99 -0
  663. package/dist/server/authentication/index.d.ts +68 -0
  664. package/dist/server/authentication/index.js +144 -0
  665. package/dist/server/authentication/rate-limiter.d.ts +126 -0
  666. package/dist/server/authentication/rate-limiter.js +61 -0
  667. package/dist/server/authentication/redaction.d.ts +72 -0
  668. package/dist/server/authentication/redaction.js +30 -0
  669. package/dist/server/authentication/rotating-api-key-store.d.ts +107 -0
  670. package/dist/server/authentication/rotating-api-key-store.js +43 -0
  671. package/dist/server/authentication/types.d.ts +290 -0
  672. package/dist/server/authentication/types.js +13 -0
  673. package/dist/server/authentication.d.ts +1 -0
  674. package/dist/server/authentication.js +1 -0
  675. package/dist/server/authorization-scope.d.ts +43 -0
  676. package/dist/server/authorization-scope.js +53 -0
  677. package/dist/server/authorization.d.ts +55 -0
  678. package/dist/server/authorization.js +87 -0
  679. package/dist/server/deadline-tracker.d.ts +47 -0
  680. package/dist/server/deadline-tracker.js +106 -0
  681. package/dist/server/discovery-filter.d.ts +13 -0
  682. package/dist/server/discovery-filter.js +5 -0
  683. package/dist/server/discovery-info.d.ts +69 -0
  684. package/dist/server/discovery-info.js +12 -0
  685. package/dist/server/engine-event-feed-backend.d.ts +31 -0
  686. package/dist/server/engine-event-feed-backend.js +36 -0
  687. package/dist/server/fault-to-http.d.ts +14 -0
  688. package/dist/server/fault-to-http.js +29 -0
  689. package/dist/server/fault-to-json-rpc.d.ts +23 -0
  690. package/dist/server/fault-to-json-rpc.js +60 -0
  691. package/dist/server/handler/binding-dispatch.d.ts +11 -0
  692. package/dist/server/handler/binding-dispatch.js +13 -0
  693. package/dist/server/handler/index.d.ts +31 -0
  694. package/dist/server/handler/index.js +78 -0
  695. package/dist/server/handler/response-helpers.d.ts +5 -0
  696. package/dist/server/handler/response-helpers.js +28 -0
  697. package/dist/server/handler/route-dispatch.d.ts +144 -0
  698. package/dist/server/handler/route-dispatch.js +192 -0
  699. package/dist/server/handler/route-matching.d.ts +55 -0
  700. package/dist/server/handler/route-matching.js +45 -0
  701. package/dist/server/handler.d.ts +1 -0
  702. package/dist/server/handler.js +56 -0
  703. package/dist/server/index.d.ts +346 -0
  704. package/dist/server/index.js +64 -0
  705. package/dist/server/interactive-operations.d.ts +18 -0
  706. package/dist/server/interactive-operations.js +28 -0
  707. package/dist/server/json-rpc-dispatch.d.ts +49 -0
  708. package/dist/server/json-rpc-dispatch.js +92 -0
  709. package/dist/server/json-rpc-framing.d.ts +42 -0
  710. package/dist/server/json-rpc-framing.js +15 -0
  711. package/dist/server/json-rpc-http.d.ts +33 -0
  712. package/dist/server/json-rpc-http.js +112 -0
  713. package/dist/server/json-rpc-parse.d.ts +69 -0
  714. package/dist/server/json-rpc-parse.js +139 -0
  715. package/dist/server/json-rpc-protocol.d.ts +76 -0
  716. package/dist/server/json-rpc-protocol.js +27 -0
  717. package/dist/server/json-rpc-transport-helpers.d.ts +17 -0
  718. package/dist/server/json-rpc-transport-helpers.js +26 -0
  719. package/dist/server/json-rpc-websocket-runtime.d.ts +37 -0
  720. package/dist/server/json-rpc-websocket-runtime.js +51 -0
  721. package/dist/server/json-rpc-websocket-validation.d.ts +38 -0
  722. package/dist/server/json-rpc-websocket-validation.js +96 -0
  723. package/dist/server/json-rpc-websocket.d.ts +60 -0
  724. package/dist/server/json-rpc-websocket.js +268 -0
  725. package/dist/server/json-schema-utilities.d.ts +4 -0
  726. package/dist/server/json-schema-utilities.js +16 -0
  727. package/dist/server/mcp-discovery.d.ts +57 -0
  728. package/dist/server/mcp-discovery.js +50 -0
  729. package/dist/server/openapi-canonical-json.d.ts +10 -0
  730. package/dist/server/openapi-canonical-json.js +13 -0
  731. package/dist/server/openapi-error-responses.d.ts +15 -0
  732. package/dist/server/openapi-error-responses.js +36 -0
  733. package/dist/server/openapi-schemas.d.ts +17 -0
  734. package/dist/server/openapi-schemas.js +69 -0
  735. package/dist/server/openapi.d.ts +48 -0
  736. package/dist/server/openapi.js +290 -0
  737. package/dist/server/openrpc-document-schema.d.ts +112 -0
  738. package/dist/server/openrpc-document-schema.js +65 -0
  739. package/dist/server/openrpc-errors.d.ts +73 -0
  740. package/dist/server/openrpc-errors.js +57 -0
  741. package/dist/server/openrpc.d.ts +53 -0
  742. package/dist/server/openrpc.js +179 -0
  743. package/dist/server/operation-catalog/activity-adapter.d.ts +11 -0
  744. package/dist/server/operation-catalog/activity-adapter.js +9 -0
  745. package/dist/server/operation-catalog/dispatch-allowlist.d.ts +4 -0
  746. package/dist/server/operation-catalog/dispatch-allowlist.js +4 -0
  747. package/dist/server/operation-catalog/dispatch-preparation.d.ts +39 -0
  748. package/dist/server/operation-catalog/dispatch-preparation.js +52 -0
  749. package/dist/server/operation-catalog/index.d.ts +22 -0
  750. package/dist/server/operation-catalog/index.js +17 -0
  751. package/dist/server/operation-catalog/pipeline-helpers.d.ts +66 -0
  752. package/dist/server/operation-catalog/pipeline-helpers.js +179 -0
  753. package/dist/server/operation-catalog/pipeline-stages.d.ts +23 -0
  754. package/dist/server/operation-catalog/pipeline-stages.js +189 -0
  755. package/dist/server/operation-catalog/pipeline.d.ts +7 -0
  756. package/dist/server/operation-catalog/pipeline.js +32 -0
  757. package/dist/server/operation-catalog/raise-fault.d.ts +32 -0
  758. package/dist/server/operation-catalog/raise-fault.js +18 -0
  759. package/dist/server/operation-catalog/registry.d.ts +6 -0
  760. package/dist/server/operation-catalog/registry.js +93 -0
  761. package/dist/server/operation-catalog/stream-pipeline.d.ts +25 -0
  762. package/dist/server/operation-catalog/stream-pipeline.js +122 -0
  763. package/dist/server/operation-catalog/types.d.ts +246 -0
  764. package/dist/server/operation-catalog/types.js +9 -0
  765. package/dist/server/operation-catalog/workflow-adapter.d.ts +55 -0
  766. package/dist/server/operation-catalog/workflow-adapter.js +85 -0
  767. package/dist/server/operation-catalog.d.ts +1 -0
  768. package/dist/server/operation-catalog.js +1 -0
  769. package/dist/server/operation-fault.d.ts +153 -0
  770. package/dist/server/operation-fault.js +50 -0
  771. package/dist/server/operation-registry.d.ts +100 -0
  772. package/dist/server/operation-registry.js +56 -0
  773. package/dist/server/operations/add-workflow-tags.d.ts +15 -0
  774. package/dist/server/operations/add-workflow-tags.js +13 -0
  775. package/dist/server/operations/aggregate-workflows.d.ts +81 -0
  776. package/dist/server/operations/aggregate-workflows.js +110 -0
  777. package/dist/server/operations/async-activity.d.ts +44 -0
  778. package/dist/server/operations/async-activity.js +134 -0
  779. package/dist/server/operations/bulk-cancel-workflows.d.ts +7 -0
  780. package/dist/server/operations/bulk-cancel-workflows.js +64 -0
  781. package/dist/server/operations/bulk-delete-workflows.d.ts +7 -0
  782. package/dist/server/operations/bulk-delete-workflows.js +71 -0
  783. package/dist/server/operations/bulk-filter-helpers.d.ts +62 -0
  784. package/dist/server/operations/bulk-filter-helpers.js +334 -0
  785. package/dist/server/operations/bulk-mutate-workflow-tags.d.ts +94 -0
  786. package/dist/server/operations/bulk-mutate-workflow-tags.js +100 -0
  787. package/dist/server/operations/bulk-operation-helpers.d.ts +27 -0
  788. package/dist/server/operations/bulk-operation-helpers.js +29 -0
  789. package/dist/server/operations/bulk-signal-workflows.d.ts +87 -0
  790. package/dist/server/operations/bulk-signal-workflows.js +80 -0
  791. package/dist/server/operations/cancel-schedule.d.ts +13 -0
  792. package/dist/server/operations/cancel-schedule.js +43 -0
  793. package/dist/server/operations/cancel-workflow.d.ts +13 -0
  794. package/dist/server/operations/cancel-workflow.js +34 -0
  795. package/dist/server/operations/create-schedule.d.ts +29 -0
  796. package/dist/server/operations/create-schedule.js +116 -0
  797. package/dist/server/operations/failure-category-filter.d.ts +2 -0
  798. package/dist/server/operations/failure-category-filter.js +19 -0
  799. package/dist/server/operations/fork-workflow.d.ts +29 -0
  800. package/dist/server/operations/fork-workflow.js +88 -0
  801. package/dist/server/operations/get-checkpoint-at.d.ts +15 -0
  802. package/dist/server/operations/get-checkpoint-at.js +74 -0
  803. package/dist/server/operations/get-registry.d.ts +26 -0
  804. package/dist/server/operations/get-registry.js +56 -0
  805. package/dist/server/operations/get-retention-overview.d.ts +9 -0
  806. package/dist/server/operations/get-retention-overview.js +39 -0
  807. package/dist/server/operations/get-review.d.ts +15 -0
  808. package/dist/server/operations/get-review.js +57 -0
  809. package/dist/server/operations/get-schedule.d.ts +20 -0
  810. package/dist/server/operations/get-schedule.js +48 -0
  811. package/dist/server/operations/get-stream-chunks.d.ts +19 -0
  812. package/dist/server/operations/get-stream-chunks.js +71 -0
  813. package/dist/server/operations/get-system-metrics.d.ts +42 -0
  814. package/dist/server/operations/get-system-metrics.js +43 -0
  815. package/dist/server/operations/get-task-diagnostics.d.ts +184 -0
  816. package/dist/server/operations/get-task-diagnostics.js +340 -0
  817. package/dist/server/operations/get-update-result.d.ts +18 -0
  818. package/dist/server/operations/get-update-result.js +55 -0
  819. package/dist/server/operations/get-workflow-attributes.d.ts +13 -0
  820. package/dist/server/operations/get-workflow-attributes.js +51 -0
  821. package/dist/server/operations/get-workflow-events.d.ts +15 -0
  822. package/dist/server/operations/get-workflow-events.js +51 -0
  823. package/dist/server/operations/get-workflow-result.d.ts +14 -0
  824. package/dist/server/operations/get-workflow-result.js +93 -0
  825. package/dist/server/operations/get-workflow-timeline.d.ts +13 -0
  826. package/dist/server/operations/get-workflow-timeline.js +51 -0
  827. package/dist/server/operations/get-workflow.d.ts +36 -0
  828. package/dist/server/operations/get-workflow.js +49 -0
  829. package/dist/server/operations/list-checkpoints.d.ts +13 -0
  830. package/dist/server/operations/list-checkpoints.js +43 -0
  831. package/dist/server/operations/list-filter-query-extractor.d.ts +23 -0
  832. package/dist/server/operations/list-filter-query-extractor.js +87 -0
  833. package/dist/server/operations/list-reviews.d.ts +19 -0
  834. package/dist/server/operations/list-reviews.js +77 -0
  835. package/dist/server/operations/list-schedules.d.ts +28 -0
  836. package/dist/server/operations/list-schedules.js +108 -0
  837. package/dist/server/operations/list-task-queues.d.ts +71 -0
  838. package/dist/server/operations/list-task-queues.js +105 -0
  839. package/dist/server/operations/list-workers.d.ts +56 -0
  840. package/dist/server/operations/list-workers.js +92 -0
  841. package/dist/server/operations/list-workflows.d.ts +79 -0
  842. package/dist/server/operations/list-workflows.js +136 -0
  843. package/dist/server/operations/operation-helpers.d.ts +21 -0
  844. package/dist/server/operations/operation-helpers.js +22 -0
  845. package/dist/server/operations/pause-schedule.d.ts +13 -0
  846. package/dist/server/operations/pause-schedule.js +43 -0
  847. package/dist/server/operations/purge-workflows.d.ts +41 -0
  848. package/dist/server/operations/purge-workflows.js +57 -0
  849. package/dist/server/operations/query-workflow.d.ts +19 -0
  850. package/dist/server/operations/query-workflow.js +99 -0
  851. package/dist/server/operations/recover-all.d.ts +13 -0
  852. package/dist/server/operations/recover-all.js +65 -0
  853. package/dist/server/operations/remove-workflow-tags.d.ts +15 -0
  854. package/dist/server/operations/remove-workflow-tags.js +13 -0
  855. package/dist/server/operations/replay-workflow.d.ts +28 -0
  856. package/dist/server/operations/replay-workflow.js +69 -0
  857. package/dist/server/operations/resume-schedule.d.ts +13 -0
  858. package/dist/server/operations/resume-schedule.js +43 -0
  859. package/dist/server/operations/resume-workflow.d.ts +17 -0
  860. package/dist/server/operations/resume-workflow.js +40 -0
  861. package/dist/server/operations/schedule-faults.d.ts +14 -0
  862. package/dist/server/operations/schedule-faults.js +41 -0
  863. package/dist/server/operations/set-workflow-attributes.d.ts +19 -0
  864. package/dist/server/operations/set-workflow-attributes.js +67 -0
  865. package/dist/server/operations/signal-workflow.d.ts +23 -0
  866. package/dist/server/operations/signal-workflow.js +58 -0
  867. package/dist/server/operations/single-workflow-control-operation.d.ts +32 -0
  868. package/dist/server/operations/single-workflow-control-operation.js +44 -0
  869. package/dist/server/operations/single-workflow-tag-mutation.d.ts +27 -0
  870. package/dist/server/operations/single-workflow-tag-mutation.js +108 -0
  871. package/dist/server/operations/sse-stream.d.ts +13 -0
  872. package/dist/server/operations/sse-stream.js +42 -0
  873. package/dist/server/operations/start-workflow.d.ts +33 -0
  874. package/dist/server/operations/start-workflow.js +181 -0
  875. package/dist/server/operations/storage.d.ts +112 -0
  876. package/dist/server/operations/storage.js +358 -0
  877. package/dist/server/operations/stream-workflow-sse.d.ts +17 -0
  878. package/dist/server/operations/stream-workflow-sse.js +94 -0
  879. package/dist/server/operations/submit-review-decision.d.ts +25 -0
  880. package/dist/server/operations/submit-review-decision.js +113 -0
  881. package/dist/server/operations/timeout-workflow.d.ts +11 -0
  882. package/dist/server/operations/timeout-workflow.js +34 -0
  883. package/dist/server/operations/update-schedule.d.ts +15 -0
  884. package/dist/server/operations/update-schedule.js +60 -0
  885. package/dist/server/operations/update-workflow.d.ts +27 -0
  886. package/dist/server/operations/update-workflow.js +109 -0
  887. package/dist/server/operations/worker-drain.d.ts +69 -0
  888. package/dist/server/operations/worker-drain.js +214 -0
  889. package/dist/server/operations/workflow-events-subscription.d.ts +47 -0
  890. package/dist/server/operations/workflow-events-subscription.js +51 -0
  891. package/dist/server/principal.d.ts +176 -0
  892. package/dist/server/principal.js +59 -0
  893. package/dist/server/rest-binding.d.ts +158 -0
  894. package/dist/server/rest-binding.js +35 -0
  895. package/dist/server/rest-bindings.d.ts +76 -0
  896. package/dist/server/rest-bindings.js +376 -0
  897. package/dist/server/route-model.d.ts +268 -0
  898. package/dist/server/route-model.js +166 -0
  899. package/dist/server/runtime/authentication-bridge.d.ts +22 -0
  900. package/dist/server/runtime/authentication-bridge.js +194 -0
  901. package/dist/server/runtime/context.d.ts +73 -0
  902. package/dist/server/runtime/context.js +0 -0
  903. package/dist/server/runtime/cors.d.ts +149 -0
  904. package/dist/server/runtime/cors.js +123 -0
  905. package/dist/server/runtime/event-broadcasting.d.ts +71 -0
  906. package/dist/server/runtime/event-broadcasting.js +205 -0
  907. package/dist/server/runtime/request-gate.d.ts +54 -0
  908. package/dist/server/runtime/request-gate.js +71 -0
  909. package/dist/server/runtime/shutdown.d.ts +10 -0
  910. package/dist/server/runtime/shutdown.js +18 -0
  911. package/dist/server/runtime/stop-server.d.ts +3 -0
  912. package/dist/server/runtime/stop-server.js +19 -0
  913. package/dist/server/runtime/task-dispatch.d.ts +8 -0
  914. package/dist/server/runtime/task-dispatch.js +157 -0
  915. package/dist/server/runtime/task-metrics.d.ts +12 -0
  916. package/dist/server/runtime/task-metrics.js +36 -0
  917. package/dist/server/runtime/task-polling.d.ts +9 -0
  918. package/dist/server/runtime/task-polling.js +132 -0
  919. package/dist/server/runtime/task-reconciliation.d.ts +17 -0
  920. package/dist/server/runtime/task-reconciliation.js +163 -0
  921. package/dist/server/runtime/websocket-stream.d.ts +15 -0
  922. package/dist/server/runtime/websocket-stream.js +79 -0
  923. package/dist/server/runtime/websocket-upgrade.d.ts +8 -0
  924. package/dist/server/runtime/websocket-upgrade.js +76 -0
  925. package/dist/server/runtime/websocket-worker.d.ts +7 -0
  926. package/dist/server/runtime/websocket-worker.js +224 -0
  927. package/dist/server/runtime-helpers.d.ts +18 -0
  928. package/dist/server/runtime-helpers.js +23 -0
  929. package/dist/server/sequence-cursor.d.ts +5 -0
  930. package/dist/server/sequence-cursor.js +19 -0
  931. package/dist/server/serve-internals.d.ts +83 -0
  932. package/dist/server/serve-internals.js +203 -0
  933. package/dist/server/stdio-session.d.ts +51 -0
  934. package/dist/server/stdio-session.js +245 -0
  935. package/dist/server/task-queue-summary.d.ts +27 -0
  936. package/dist/server/task-queue-summary.js +34 -0
  937. package/dist/server/task-queue-types.d.ts +95 -0
  938. package/dist/server/task-queue-types.js +0 -0
  939. package/dist/server/task-queue.d.ts +90 -0
  940. package/dist/server/task-queue.js +247 -0
  941. package/dist/server/task-resolved-record.d.ts +12 -0
  942. package/dist/server/task-resolved-record.js +35 -0
  943. package/dist/server/task-state.d.ts +152 -0
  944. package/dist/server/task-state.js +178 -0
  945. package/dist/server/workflow-event-feed.d.ts +166 -0
  946. package/dist/server/workflow-event-feed.js +193 -0
  947. package/dist/service-worker/index.d.ts +123 -0
  948. package/dist/service-worker/index.js +56 -0
  949. package/dist/service-worker/scheduler.d.ts +37 -0
  950. package/dist/service-worker/scheduler.js +117 -0
  951. package/dist/service-worker/setup.d.ts +127 -0
  952. package/dist/service-worker/setup.js +129 -0
  953. package/dist/service-worker/shared.d.ts +94 -0
  954. package/dist/service-worker/shared.js +15 -0
  955. package/dist/storage/auto.d.ts +45 -0
  956. package/dist/storage/auto.js +2 -0
  957. package/dist/storage/bun-sql.d.ts +64 -0
  958. package/dist/storage/bun-sql.js +575 -0
  959. package/dist/storage/byte-encoding.d.ts +6 -0
  960. package/dist/storage/byte-encoding.js +16 -0
  961. package/dist/storage/capabilities.d.ts +187 -0
  962. package/dist/storage/capabilities.js +19 -0
  963. package/dist/storage/compressed-storage.d.ts +45 -0
  964. package/dist/storage/compressed-storage.js +2 -0
  965. package/dist/storage/default-scope.d.ts +17 -0
  966. package/dist/storage/default-scope.js +1 -0
  967. package/dist/storage/delete-range.d.ts +109 -0
  968. package/dist/storage/delete-range.js +64 -0
  969. package/dist/storage/derived-operations.d.ts +53 -0
  970. package/dist/storage/derived-operations.js +31 -0
  971. package/dist/storage/http.d.ts +67 -0
  972. package/dist/storage/http.js +2 -0
  973. package/dist/storage/index.d.ts +292 -0
  974. package/dist/storage/index.js +51 -0
  975. package/dist/storage/indexeddb.d.ts +49 -0
  976. package/dist/storage/indexeddb.js +1 -0
  977. package/dist/storage/interface.d.ts +340 -0
  978. package/dist/storage/interface.js +2 -0
  979. package/dist/storage/key-prefixes.d.ts +19 -0
  980. package/dist/storage/key-prefixes.js +35 -0
  981. package/dist/storage/lmdb.d.ts +40 -0
  982. package/dist/storage/lmdb.js +2 -0
  983. package/dist/storage/memory.d.ts +46 -0
  984. package/dist/storage/memory.js +2 -0
  985. package/dist/storage/node-sqlite.d.ts +85 -0
  986. package/dist/storage/node-sqlite.js +323 -0
  987. package/dist/storage/read-only-query.d.ts +2 -0
  988. package/dist/storage/read-only-query.js +19 -0
  989. package/dist/storage/resolve.d.ts +180 -0
  990. package/dist/storage/resolve.js +2 -0
  991. package/dist/storage/scoped-storage.d.ts +68 -0
  992. package/dist/storage/scoped-storage.js +2 -0
  993. package/dist/storage/sqlite-key-value-queries.d.ts +40 -0
  994. package/dist/storage/sqlite-key-value-queries.js +64 -0
  995. package/dist/storage/sqlite.d.ts +31 -0
  996. package/dist/storage/sqlite.js +0 -0
  997. package/dist/storage/text-value-import.d.ts +87 -0
  998. package/dist/storage/text-value-import.js +50 -0
  999. package/dist/storage/text-value-store.d.ts +171 -0
  1000. package/dist/storage/text-value-store.js +55 -0
  1001. package/dist/storage/turso.d.ts +60 -0
  1002. package/dist/storage/turso.js +5 -0
  1003. package/dist/storage/typed-storage.d.ts +258 -0
  1004. package/dist/storage/typed-storage.js +2 -0
  1005. package/dist/storage/web-extension.d.ts +55 -0
  1006. package/dist/storage/web-extension.js +1 -0
  1007. package/dist/testing/chaos.d.ts +157 -0
  1008. package/dist/testing/chaos.js +69 -0
  1009. package/dist/testing/event-loop.d.ts +4 -0
  1010. package/dist/testing/event-loop.js +21 -0
  1011. package/dist/testing/index.d.ts +126 -0
  1012. package/dist/testing/index.js +61 -0
  1013. package/dist/testing/mocks.d.ts +145 -0
  1014. package/dist/testing/mocks.js +136 -0
  1015. package/dist/testing/subprocess-engine.d.ts +100 -0
  1016. package/dist/testing/subprocess-engine.js +291 -0
  1017. package/dist/testing/test-engine.d.ts +145 -0
  1018. package/dist/testing/test-engine.js +147 -0
  1019. package/dist/testing/time-control.d.ts +59 -0
  1020. package/dist/testing/time-control.js +68 -0
  1021. package/dist/version.d.ts +12 -0
  1022. package/dist/version.js +1 -0
  1023. package/dist/worker/activity-table.d.ts +33 -0
  1024. package/dist/worker/activity-table.js +20 -0
  1025. package/dist/worker/execute-with-interceptors.d.ts +28 -0
  1026. package/dist/worker/execute-with-interceptors.js +21 -0
  1027. package/dist/worker/heartbeat.d.ts +34 -0
  1028. package/dist/worker/heartbeat.js +31 -0
  1029. package/dist/worker/index.d.ts +57 -0
  1030. package/dist/worker/index.js +334 -0
  1031. package/dist/worker/long-poll.d.ts +54 -0
  1032. package/dist/worker/long-poll.js +134 -0
  1033. package/dist/worker/options.d.ts +66 -0
  1034. package/dist/worker/options.js +19 -0
  1035. package/dist/worker/protocol-internals.d.ts +82 -0
  1036. package/dist/worker/protocol-internals.js +56 -0
  1037. package/dist/worker/protocol-messages.d.ts +264 -0
  1038. package/dist/worker/protocol-messages.js +0 -0
  1039. package/dist/worker/protocol-schemas.d.ts +559 -0
  1040. package/dist/worker/protocol-schemas.js +180 -0
  1041. package/dist/worker/protocol-version.d.ts +71 -0
  1042. package/dist/worker/protocol-version.js +1 -0
  1043. package/dist/worker/protocol.d.ts +72 -0
  1044. package/dist/worker/protocol.js +2 -0
  1045. package/dist/worker/registry/fair-share.d.ts +59 -0
  1046. package/dist/worker/registry/fair-share.js +15 -0
  1047. package/dist/worker/registry/routing.d.ts +17 -0
  1048. package/dist/worker/registry/routing.js +16 -0
  1049. package/dist/worker/registry/summary.d.ts +87 -0
  1050. package/dist/worker/registry/summary.js +81 -0
  1051. package/dist/worker/registry/types.d.ts +123 -0
  1052. package/dist/worker/registry/types.js +0 -0
  1053. package/dist/worker/registry.d.ts +94 -0
  1054. package/dist/worker/registry.js +305 -0
  1055. package/dist/worker/remote-activity-context.d.ts +15 -0
  1056. package/dist/worker/remote-activity-context.js +0 -0
  1057. package/dist/worker/task-result-outbox.d.ts +40 -0
  1058. package/dist/worker/task-result-outbox.js +42 -0
  1059. package/dist/worker/worker-protocol-incompatible-error.d.ts +52 -0
  1060. package/dist/worker/worker-protocol-incompatible-error.js +15 -0
  1061. package/dist/worker/workflow-activity-binding.d.ts +96 -0
  1062. package/dist/worker/workflow-activity-binding.js +22 -0
  1063. package/dist/workers/activity-runner.d.ts +87 -0
  1064. package/dist/workers/activity-runner.js +29 -0
  1065. package/dist/workers/activity-worker-dispatcher.d.ts +85 -0
  1066. package/dist/workers/activity-worker-dispatcher.js +68 -0
  1067. package/dist/workers/activity-worker-entry.d.ts +99 -0
  1068. package/dist/workers/activity-worker-entry.js +59 -0
  1069. package/dist/workers/pool.d.ts +83 -0
  1070. package/dist/workers/pool.js +174 -0
  1071. package/dist/workers/workflow-runner.d.ts +79 -0
  1072. package/dist/workers/workflow-runner.js +245 -0
  1073. package/dist/workers/workflow-worker-entry.d.ts +24 -0
  1074. package/dist/workers/workflow-worker-entry.js +70 -0
  1075. package/package.json +297 -0
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Durable concurrency primitives — a counting semaphore and a mutex built on
3
+ * top of the compare-and-swap state slots exposed by `ctx.state.*` and
4
+ * `engine.state.*`.
5
+ *
6
+ * Workflows frequently need to serialize access to a shared resource: only one
7
+ * workflow may charge a customer at a time, at most three may hit a
8
+ * rate-limited API concurrently, and so on. The building block already exists —
9
+ * {@link AtomicState} gives you a single CAS-backed state slot — but reusing it
10
+ * correctly (with FIFO fairness and a lease that frees the lock if a holder
11
+ * crashes) is fiddly. {@link DurableSemaphore} and {@link DurableMutex} package
12
+ * that algorithm so you do not have to hand-roll it.
13
+ *
14
+ * The primitives store a single {@link LockRecord} in one CAS slot. Each
15
+ * `acquire`/`release` is a CAS transaction over that record, so every mutation
16
+ * is durable, replay-safe, and recovered automatically after a crash. The
17
+ * primitive never reads the wall clock itself: callers pass a deterministic
18
+ * `now` (captured durably, e.g. via a clock activity) so the lease arithmetic
19
+ * replays identically. A holder whose lease has expired is reclaimed by the
20
+ * next contender, which is what prevents a crashed holder from deadlocking the
21
+ * lock forever.
22
+ *
23
+ * @module core/concurrency
24
+ */
25
+ import { type AcquireAttempt, type LockRecord } from './concurrency-lock-record.ts';
26
+ export { initialLockRecord, reduceAcquire, reduceRelease, reduceRenew, } from './concurrency-lock-record.ts';
27
+ export type { AcquireAttempt, LockHolder, LockRecord } from './concurrency-lock-record.ts';
28
+ /**
29
+ * Minimal CAS state-slot surface shared by the durable `ctx.state.*` handles
30
+ * (whose methods are workflow operations) and the admin `engine.state.*`
31
+ * handles (whose methods are promises). `RUpdate` is the result of `update`
32
+ * and `RGet` the result of `get`; both are a `Promise` for {@link AtomicState}
33
+ * and a workflow-operation generator for `ctx.state.*`. They are decoupled
34
+ * because `get` may resolve to `T | undefined` while `update` resolves to `T`.
35
+ * Both {@link AtomicState} and the durable `ctx.state.*` handles satisfy this
36
+ * structurally, so the same primitive drives both flavours.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * import { AtomicState, type CasSlot, type LockRecord } from '@lostgradient/weft';
41
+ * import { MemoryStorage } from '@lostgradient/weft/storage/memory';
42
+ *
43
+ * // AtomicState satisfies CasSlot structurally (its methods return promises).
44
+ * const slot: CasSlot<LockRecord, Promise<LockRecord>, Promise<LockRecord | undefined>> =
45
+ * new AtomicState<LockRecord>(new MemoryStorage(), 'state:workflow-scope:default:lock');
46
+ * void slot;
47
+ * ```
48
+ */
49
+ export interface CasSlot<T, RUpdate, RGet = RUpdate> {
50
+ get(): RGet;
51
+ update(updater: (current: T | undefined) => T): RUpdate;
52
+ }
53
+ /**
54
+ * Options for {@link DurableSemaphore} and {@link DurableMutex}.
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * import { DurableSemaphore, type DurableSemaphoreOptions } from '@lostgradient/weft';
59
+ *
60
+ * const options: DurableSemaphoreOptions = { permits: 3, leaseMs: 60_000 };
61
+ * const semaphore = new DurableSemaphore(options);
62
+ * void semaphore;
63
+ * ```
64
+ */
65
+ export interface DurableSemaphoreOptions {
66
+ /**
67
+ * Number of permits. At most this many holders may hold the lock at once.
68
+ * Defaults to `1` (a mutex).
69
+ */
70
+ permits?: number;
71
+ /**
72
+ * Default lease duration in milliseconds applied to an acquired permit when
73
+ * an explicit `leaseMs` is not supplied to `tryAcquire`. A permit whose lease
74
+ * expires may be reclaimed by another contender, which is what frees the lock
75
+ * when a holder crashes without releasing. Defaults to `30_000`.
76
+ */
77
+ leaseMs?: number;
78
+ }
79
+ /**
80
+ * A durable counting semaphore: at most `permits` holders may hold the lock at
81
+ * once. Built entirely on a single compare-and-swap state slot, so it works
82
+ * inside workflows (via `ctx.state.*`) and from admin code (via
83
+ * `engine.state.*`).
84
+ *
85
+ * The semaphore is intentionally non-blocking at the slot level: `tryAcquire`
86
+ * performs one CAS transaction and reports whether the permit was granted. The
87
+ * caller decides how to wait between attempts — inside a workflow you
88
+ * `yield* ctx.sleep(...)` between retries so the wait is durable and
89
+ * replay-safe.
90
+ *
91
+ * Fairness is FIFO: a contender enqueues itself and only acquires once it
92
+ * reaches the head of the waiter queue and a permit is free. Each granted
93
+ * permit carries a lease; an expired lease is reclaimed by the next contender,
94
+ * so a crashed holder cannot deadlock the lock forever.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * import { DurableSemaphore } from '@lostgradient/weft';
99
+ * import { AtomicState } from '@lostgradient/weft';
100
+ * import { MemoryStorage } from '@lostgradient/weft/storage/memory';
101
+ *
102
+ * const storage = new MemoryStorage();
103
+ * const slot = new AtomicState<import('@lostgradient/weft').LockRecord>(
104
+ * storage,
105
+ * 'state:workflow-scope:default:rate-limit:lock',
106
+ * { initial: { holders: [], waiters: [] } },
107
+ * );
108
+ * const semaphore = new DurableSemaphore({ permits: 3, leaseMs: 60_000 });
109
+ * const attempt = await semaphore.tryAcquire(slot, { holderId: 'worker-1', now: Date.now() });
110
+ * if (attempt.acquired) {
111
+ * try {
112
+ * // ...use the shared resource...
113
+ * } finally {
114
+ * await semaphore.release(slot, { holderId: 'worker-1', now: Date.now() });
115
+ * }
116
+ * }
117
+ * ```
118
+ */
119
+ export declare class DurableSemaphore {
120
+ readonly permits: number;
121
+ readonly leaseMs: number;
122
+ constructor(options?: DurableSemaphoreOptions);
123
+ /**
124
+ * Attempt to acquire a permit with a single CAS transaction. Returns whether
125
+ * the permit was granted and the caller's FIFO queue position when it was
126
+ * not. The caller is registered in the waiter queue on a failed attempt so a
127
+ * subsequent retry preserves FIFO order.
128
+ *
129
+ * `RUpdate` is the slot's `update` return type — a `Promise` for
130
+ * {@link AtomicState} or a workflow-operation generator for `ctx.state.*`.
131
+ */
132
+ tryAcquire<RUpdate>(slot: CasSlot<LockRecord, RUpdate>, options: {
133
+ holderId: string;
134
+ now: number;
135
+ leaseMs?: number;
136
+ }): AcquireWithSlot<RUpdate>;
137
+ /**
138
+ * Release a held permit with a single CAS transaction. Idempotent: releasing
139
+ * a permit the caller does not hold simply removes any stale waiter entry.
140
+ */
141
+ release<RUpdate>(slot: CasSlot<LockRecord, RUpdate>, options: {
142
+ holderId: string;
143
+ now: number;
144
+ }): RUpdate;
145
+ /**
146
+ * Extend the lease on a held permit. Long-running holders renew before their
147
+ * lease expires so a contender does not reclaim a still-active permit.
148
+ * Resolves/returns `false` when the caller is not currently a holder.
149
+ */
150
+ renew<RUpdate>(slot: CasSlot<LockRecord, RUpdate>, options: {
151
+ holderId: string;
152
+ now: number;
153
+ leaseMs?: number;
154
+ }): RenewWithSlot<RUpdate>;
155
+ /**
156
+ * Read the current record without mutating it. `RGet` is the slot's `get`
157
+ * return type — a `Promise<LockRecord | undefined>` for {@link AtomicState}
158
+ * or a workflow-operation generator for `ctx.state.*`.
159
+ */
160
+ inspect<RGet>(slot: CasSlot<LockRecord, unknown, RGet>): RGet;
161
+ }
162
+ /**
163
+ * A durable mutual-exclusion lock: a {@link DurableSemaphore} with exactly one
164
+ * permit, so at most one holder at a time. Acquire it with `tryAcquire` and
165
+ * `yield* ctx.sleep(...)` between retries to wait durably for release.
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * import { DurableMutex } from '@lostgradient/weft';
170
+ * import { workflow, type WorkflowContext, type LockRecord } from '@lostgradient/weft';
171
+ *
172
+ * const transfer = workflow({ name: 'transfer' }).execute(async function* (ctx: WorkflowContext) {
173
+ * const slot = ctx.state.workflow<LockRecord>('account-42:lock', {
174
+ * initial: { holders: [], waiters: [] },
175
+ * });
176
+ * const mutex = new DurableMutex({ leaseMs: 60_000 });
177
+ * const now = yield* ctx.run(() => Date.now());
178
+ * yield* mutex.tryAcquire(slot, { holderId: ctx.workflowId, now });
179
+ * try {
180
+ * // ...critical section...
181
+ * } finally {
182
+ * const releaseNow = yield* ctx.run(() => Date.now());
183
+ * yield* mutex.release(slot, { holderId: ctx.workflowId, now: releaseNow });
184
+ * }
185
+ * });
186
+ * void transfer;
187
+ * ```
188
+ */
189
+ export declare class DurableMutex extends DurableSemaphore {
190
+ constructor(options?: Omit<DurableSemaphoreOptions, 'permits'>);
191
+ }
192
+ /**
193
+ * Result of {@link DurableSemaphore.tryAcquire}, mirroring the slot's flavour:
194
+ * a `Promise<AcquireAttempt>` when the slot's `update` returns a promise (an
195
+ * {@link AtomicState}), or a workflow-operation generator otherwise.
196
+ *
197
+ * @example
198
+ * ```ts
199
+ * import type { AcquireAttempt, AcquireWithSlot } from '@lostgradient/weft';
200
+ *
201
+ * type PromiseResult = AcquireWithSlot<Promise<unknown>>; // Promise<AcquireAttempt>
202
+ * const result: PromiseResult = Promise.resolve<AcquireAttempt>({ acquired: true, position: -1 });
203
+ * void result;
204
+ * ```
205
+ */
206
+ export type AcquireWithSlot<R> = R extends Promise<unknown> ? Promise<AcquireAttempt> : Generator<unknown, AcquireAttempt, unknown>;
207
+ /**
208
+ * Result of {@link DurableSemaphore.renew}, mirroring the slot's flavour: a
209
+ * `Promise<boolean>` for an {@link AtomicState} slot, or a workflow-operation
210
+ * generator that yields to a `boolean` for a `ctx.state.*` slot.
211
+ *
212
+ * @example
213
+ * ```ts
214
+ * import type { RenewWithSlot } from '@lostgradient/weft';
215
+ *
216
+ * type PromiseResult = RenewWithSlot<Promise<unknown>>; // Promise<boolean>
217
+ * const result: PromiseResult = Promise.resolve(true);
218
+ * void result;
219
+ * ```
220
+ */
221
+ export type RenewWithSlot<R> = R extends Promise<unknown> ? Promise<boolean> : Generator<unknown, boolean, unknown>;
@@ -0,0 +1,93 @@
1
+ import {
2
+ reduceAcquire,
3
+ reduceRelease,
4
+ reduceRenew
5
+ } from "./concurrency-lock-record.js";
6
+ export {
7
+ initialLockRecord,
8
+ reduceAcquire,
9
+ reduceRelease,
10
+ reduceRenew
11
+ } from "./concurrency-lock-record.js";
12
+ function assertValidPermits(permits) {
13
+ if (!Number.isInteger(permits) || permits < 1)
14
+ throw RangeError(`DurableSemaphore permits must be a positive integer, received ${permits}`);
15
+ }
16
+ function assertValidLease(leaseMs) {
17
+ if (!Number.isFinite(leaseMs) || leaseMs <= 0)
18
+ throw RangeError(`DurableSemaphore lease must be a positive number of milliseconds, received ${leaseMs}`);
19
+ }
20
+ const DEFAULT_LEASE_MS = 30000;
21
+
22
+ export class DurableSemaphore {
23
+ permits;
24
+ leaseMs;
25
+ constructor(options = {}) {
26
+ const permits = options.permits ?? 1, leaseMs = options.leaseMs ?? DEFAULT_LEASE_MS;
27
+ assertValidPermits(permits);
28
+ assertValidLease(leaseMs);
29
+ this.permits = permits;
30
+ this.leaseMs = leaseMs;
31
+ }
32
+ tryAcquire(slot, options) {
33
+ const leaseMs = options.leaseMs ?? this.leaseMs;
34
+ assertValidLease(leaseMs);
35
+ let attempt = { acquired: !1, position: -1 };
36
+ const update = slot.update((current) => {
37
+ const reduced = reduceAcquire(current, {
38
+ holderId: options.holderId,
39
+ now: options.now,
40
+ leaseMs,
41
+ permits: this.permits
42
+ });
43
+ attempt = reduced.attempt;
44
+ return reduced.record;
45
+ });
46
+ return mapSlotResult(update, () => attempt);
47
+ }
48
+ release(slot, options) {
49
+ return slot.update((current) => reduceRelease(current, options));
50
+ }
51
+ renew(slot, options) {
52
+ const leaseMs = options.leaseMs ?? this.leaseMs;
53
+ assertValidLease(leaseMs);
54
+ let renewed = !1;
55
+ const update = slot.update((current) => {
56
+ const reduced = reduceRenew(current, {
57
+ holderId: options.holderId,
58
+ now: options.now,
59
+ leaseMs
60
+ });
61
+ renewed = reduced.renewed;
62
+ return reduced.record;
63
+ });
64
+ return mapSlotResult(update, () => renewed);
65
+ }
66
+ inspect(slot) {
67
+ return slot.get();
68
+ }
69
+ }
70
+
71
+ export class DurableMutex extends DurableSemaphore {
72
+ constructor(options = {}) {
73
+ super({ ...options, permits: 1 });
74
+ }
75
+ }
76
+ function isPromise(value) {
77
+ return typeof value === "object" && value !== null && "then" in value && typeof value.then === "function";
78
+ }
79
+ function isGenerator(value) {
80
+ return typeof value === "object" && value !== null && "next" in value && typeof value.next === "function";
81
+ }
82
+ function mapSlotResult(result, derive) {
83
+ if (isPromise(result))
84
+ return result.then(() => derive());
85
+ if (isGenerator(result)) {
86
+ const generator = result;
87
+ return function* () {
88
+ yield* generator;
89
+ return derive();
90
+ }();
91
+ }
92
+ throw TypeError("CAS slot update must return a Promise or a workflow-operation generator");
93
+ }
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Workflow constraint primitive.
3
+ *
4
+ * Constraints are domain invariants registered alongside a workflow. The
5
+ * engine evaluates them at every checkpoint commit. When a constraint's
6
+ * `check` function returns `false`, the engine dispatches a
7
+ * {@link ConstraintViolatedEvent} and reacts according to `onViolation`:
8
+ *
9
+ * - `'fail'` — immediately fails the workflow; saga compensators do NOT run.
10
+ * - `'compensate'` — throws into the generator so an active `ctx.saga()`
11
+ * can run its compensators before the error propagates.
12
+ * - `'warn'` — logs a warning and continues execution.
13
+ *
14
+ * @module core/constraint
15
+ */
16
+ /**
17
+ * Reaction to a violated {@link ConstraintDefinition}. `'fail'` immediately
18
+ * fails the workflow without running saga compensators; `'compensate'`
19
+ * throws into the workflow generator so an active `ctx.saga()` can run its
20
+ * compensators in reverse before the error propagates; `'warn'` logs and
21
+ * continues. Returned from `onViolation` on every constraint definition.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import type { ConstraintViolation } from '@lostgradient/weft';
26
+ *
27
+ * const policy: ConstraintViolation = 'compensate';
28
+ * void policy;
29
+ * ```
30
+ */
31
+ export type ConstraintViolation = 'compensate' | 'fail' | 'warn';
32
+ /**
33
+ * The minimal state snapshot passed to a constraint's `check` function.
34
+ *
35
+ * Only `id`, `type`, and `status` (`'running'`) are available — constraints
36
+ * are evaluated mid-execution, before the workflow has a result or final
37
+ * status. To inspect external state (e.g. a balance), capture it in the
38
+ * enclosing scope instead of relying on this parameter.
39
+ */
40
+ export interface ConstraintCheckState {
41
+ id: string;
42
+ type: string;
43
+ status: 'running';
44
+ }
45
+ /**
46
+ * Domain invariant evaluated at every workflow checkpoint commit. Build via
47
+ * the {@link constraint} factory function and attach to a workflow with the
48
+ * builder's `.constraints(...)` step (or via `WorkflowDefinition.constraints`
49
+ * on a hand-rolled definition). When `check` returns `false` the engine reacts
50
+ * per `onViolation` and emits a {@link ConstraintViolatedEvent}.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * import { constraint, Engine, workflow, type ConstraintDefinition } from '@lostgradient/weft';
55
+ *
56
+ * let balance = 0;
57
+ * const positiveBalance: ConstraintDefinition = constraint({
58
+ * name: 'positiveBalance',
59
+ * scope: 'transaction',
60
+ * check: () => balance >= 0,
61
+ * onViolation: 'compensate',
62
+ * });
63
+ *
64
+ * const transfer = workflow({ name: 'transfer', constraints: [positiveBalance] })
65
+ * .execute(async function* () { return 'done'; });
66
+ *
67
+ * const engine = new Engine();
68
+ * engine.register(transfer);
69
+ * void engine;
70
+ * ```
71
+ *
72
+ * **Worker execution caveat**: constraints attached to a workflow are only
73
+ * evaluated under the inline execution strategy. When
74
+ * `EngineOptions.workerExecution` is configured, constraint evaluation is
75
+ * silently skipped.
76
+ */
77
+ export interface ConstraintDefinition {
78
+ name: string;
79
+ /** Domain label for observability (e.g. 'transaction', 'budget'). */
80
+ scope: string;
81
+ /**
82
+ * Return `true` when the invariant holds, `false` when it is violated.
83
+ *
84
+ * The `state` parameter is a {@link ConstraintCheckState} — always
85
+ * `{ id: string; type: string; status: 'running' }`. To check external
86
+ * state (e.g. a balance from your own closure), capture it in the
87
+ * enclosing scope instead:
88
+ *
89
+ * ```ts
90
+ * let balance = 0;
91
+ * const balanceCheck = constraint({
92
+ * name: 'positiveBalance',
93
+ * scope: 'transaction',
94
+ * check: () => balance >= 0,
95
+ * onViolation: 'compensate',
96
+ * });
97
+ * ```
98
+ *
99
+ * The function may be async — returning `Promise<boolean>` is supported.
100
+ *
101
+ * **Note**: Constraints are only evaluated when using the inline execution
102
+ * strategy. Workflows running in a Web Worker will silently skip constraint
103
+ * evaluation. Document this on your registration if using worker execution.
104
+ */
105
+ check: (state: ConstraintCheckState) => boolean | Promise<boolean>;
106
+ /**
107
+ * Reaction when the constraint is violated.
108
+ *
109
+ * - `'fail'` — immediately fails the workflow without running any
110
+ * `ctx.saga()` compensators. Use this for hard invariants
111
+ * where partial rollback would be unsafe or meaningless.
112
+ * - `'compensate'` — throws into the workflow generator so an active
113
+ * `ctx.saga()` can catch the error, run its compensators
114
+ * in reverse, and then re-throw. Use this when you have
115
+ * compensating actions registered that need to execute.
116
+ * - `'warn'` — logs a warning and continues execution.
117
+ */
118
+ onViolation: ConstraintViolation;
119
+ }
120
+ /**
121
+ * Create a constraint definition.
122
+ *
123
+ * Constraints are domain invariants evaluated at every checkpoint commit.
124
+ * Capture external state in the enclosing scope — the `state` parameter
125
+ * passed to `check` is always a minimal `{ id, type, status }` snapshot.
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * import { constraint, Engine } from '@lostgradient/weft';
130
+ *
131
+ * let balance = 0;
132
+ *
133
+ * const positiveBalance = constraint({
134
+ * name: 'positiveBalance',
135
+ * scope: 'transaction',
136
+ * check: () => balance >= 0,
137
+ * onViolation: 'compensate',
138
+ * });
139
+ *
140
+ * const engine = new Engine();
141
+ * // engine.register(workflow, { constraints: [positiveBalance] });
142
+ * ```
143
+ */
144
+ export declare function constraint(definition: ConstraintDefinition): ConstraintDefinition;
@@ -0,0 +1,3 @@
1
+ export function constraint(definition) {
2
+ return definition;
3
+ }
@@ -0,0 +1,7 @@
1
+ import type { SearchAttributeValue } from '../types.ts';
2
+ import type { ContextInternals } from './internals.ts';
3
+ export declare function validateAttribute(internals: ContextInternals, key: string, value: SearchAttributeValue): void;
4
+ export declare function setAttribute(internals: ContextInternals, key: string, value: SearchAttributeValue): void;
5
+ export declare function setAttributes(internals: ContextInternals, attributes: Record<string, SearchAttributeValue>): void;
6
+ export declare function getAttribute<T extends SearchAttributeValue = SearchAttributeValue>(internals: ContextInternals, key: string): T | undefined;
7
+ export declare function getAttributes(internals: ContextInternals): Readonly<Record<string, SearchAttributeValue>>;
@@ -0,0 +1,29 @@
1
+ import { validateAttributeType } from "../search-attributes.js";
2
+ export function validateAttribute(internals, key, value) {
3
+ if (internals.searchAttributeSchema) {
4
+ if (!(key in internals.searchAttributeSchema))
5
+ throw Error(`Unknown search attribute "${key}". Registered attributes: ${Object.keys(internals.searchAttributeSchema).join(", ")}`);
6
+ validateAttributeType(key, value, internals.searchAttributeSchema[key]);
7
+ }
8
+ }
9
+ export function setAttribute(internals, key, value) {
10
+ validateAttribute(internals, key, value);
11
+ internals.searchAttributes[key] = value;
12
+ internals.pendingAttributeChanges ??= {};
13
+ internals.pendingAttributeChanges[key] = value;
14
+ }
15
+ export function setAttributes(internals, attributes) {
16
+ for (const [key, value] of Object.entries(attributes))
17
+ validateAttribute(internals, key, value);
18
+ for (const [key, value] of Object.entries(attributes)) {
19
+ internals.searchAttributes[key] = value;
20
+ internals.pendingAttributeChanges ??= {};
21
+ internals.pendingAttributeChanges[key] = value;
22
+ }
23
+ }
24
+ export function getAttribute(internals, key) {
25
+ return internals.searchAttributes[key];
26
+ }
27
+ export function getAttributes(internals) {
28
+ return { ...internals.searchAttributes };
29
+ }
@@ -0,0 +1,18 @@
1
+ import type { ChildWorkflowOptions, ChildWorkflowTarget, WorkflowMapOptions, WorkflowPipeStage, WorkflowReduceInput, WorkflowReduceOptions } from '../types.ts';
2
+ import type { Context } from './index.ts';
3
+ import type { ContextInternals } from './internals.ts';
4
+ import type { ContextOperationRequest } from './operation-request.ts';
5
+ export declare function normalizePipeStage(internals: ContextInternals, stage: WorkflowPipeStage | ChildWorkflowTarget): {
6
+ workflowType: string;
7
+ options: ChildWorkflowOptions | undefined;
8
+ };
9
+ export declare function resolveChildWorkflowTarget<TInput = unknown, TOutput = unknown>(internals: ContextInternals, target: ChildWorkflowTarget<TInput, TOutput>): string;
10
+ export declare function resolveMapConcurrency(totalItems: number, requestedConcurrency: number | undefined): number;
11
+ export declare function createCompositionToken(internals: ContextInternals, kind: 'map' | 'pipe' | 'reduce'): string;
12
+ export declare function createCompositionChildWorkflowOptions(internals: ContextInternals, token: string, index: number, options?: ChildWorkflowOptions | undefined): ChildWorkflowOptions;
13
+ export declare function createReduceChildWorkflowOptions(internals: ContextInternals, token: string, index: number, options: WorkflowReduceOptions | undefined): ChildWorkflowOptions;
14
+ export declare function primeParallelOperations(operations: Generator<ContextOperationRequest, unknown, unknown>[]): ContextOperationRequest[];
15
+ export declare function startChild<TResult = unknown>(context: Context, internals: ContextInternals, workflowType: string, input: unknown, options?: ChildWorkflowOptions): Generator<ContextOperationRequest, TResult, unknown>;
16
+ export declare function pipe<TResult = unknown>(context: Context, internals: ContextInternals, stages: Array<WorkflowPipeStage | ChildWorkflowTarget>, input: unknown): Generator<ContextOperationRequest, TResult, unknown>;
17
+ export declare function map<TItem, TResult>(context: Context, internals: ContextInternals, items: readonly TItem[], workflowType: ChildWorkflowTarget<TItem, TResult>, options?: WorkflowMapOptions): Generator<ContextOperationRequest, TResult[], unknown>;
18
+ export declare function reduce<TItem, TAccumulator>(context: Context, internals: ContextInternals, items: readonly TItem[], workflowType: ChildWorkflowTarget<WorkflowReduceInput<TAccumulator, TItem>, TAccumulator>, initialValue: TAccumulator, options?: WorkflowReduceOptions): Generator<ContextOperationRequest, TAccumulator, unknown>;
@@ -0,0 +1,111 @@
1
+ import { captureCallerStack } from "./validation.js";
2
+ export function normalizePipeStage(internals, stage) {
3
+ if (typeof stage === "object" && stage !== null && "type" in stage)
4
+ return {
5
+ workflowType: resolveChildWorkflowTarget(internals, stage.type),
6
+ options: stage.options
7
+ };
8
+ return {
9
+ workflowType: resolveChildWorkflowTarget(internals, stage),
10
+ options: void 0
11
+ };
12
+ }
13
+ export function resolveChildWorkflowTarget(internals, target) {
14
+ if (typeof target === "string")
15
+ return target;
16
+ if (internals.resolveWorkflowType)
17
+ return internals.resolveWorkflowType(target);
18
+ throw Error("Workflow functions used in composition operators must be registered before use. Pass the registered workflow type string or register the function on the engine first.");
19
+ }
20
+ export function resolveMapConcurrency(totalItems, requestedConcurrency) {
21
+ if (requestedConcurrency === void 0)
22
+ return totalItems;
23
+ if (!Number.isFinite(requestedConcurrency) || !Number.isInteger(requestedConcurrency) || requestedConcurrency < 1)
24
+ throw Error("ctx.map concurrency must be a positive integer");
25
+ return Math.min(requestedConcurrency, totalItems);
26
+ }
27
+ export function createCompositionToken(internals, kind) {
28
+ return `${kind}:${internals.stepIndex}`;
29
+ }
30
+ export function createCompositionChildWorkflowOptions(internals, token, index, options = void 0) {
31
+ if (options?.id !== void 0)
32
+ return options;
33
+ return {
34
+ ...options,
35
+ id: `${internals.context.workflowId}:${token}:${index}`
36
+ };
37
+ }
38
+ export function createReduceChildWorkflowOptions(internals, token, index, options) {
39
+ if (options === void 0)
40
+ return createCompositionChildWorkflowOptions(internals, token, index);
41
+ const { idPrefix, ...childWorkflowOptions } = options;
42
+ return createCompositionChildWorkflowOptions(internals, token, index, idPrefix !== void 0 ? {
43
+ ...childWorkflowOptions,
44
+ id: `${idPrefix}:${index}`
45
+ } : childWorkflowOptions);
46
+ }
47
+ export function primeParallelOperations(operations) {
48
+ const subOperations = [];
49
+ for (const generator of operations) {
50
+ const yielded = generator.next();
51
+ if (!yielded.done)
52
+ subOperations.push(yielded.value);
53
+ }
54
+ return subOperations;
55
+ }
56
+ export function* startChild(context, internals, workflowType, input, options) {
57
+ const step = internals.stepIndex++;
58
+ if (internals.accumulatedResults?.has(step)) {
59
+ if (internals.explainMode)
60
+ console.log(`[weft] ctx.startChild("${workflowType}") \u2192 Returning cached result from step ${step}`);
61
+ return internals.accumulatedResults.get(step);
62
+ }
63
+ if (internals.explainMode) {
64
+ console.log(`[weft] ctx.startChild("${workflowType}", ${JSON.stringify(input)})`);
65
+ console.log(` \u2192 Creating checkpoint at step ${step}`);
66
+ console.log(` \u2192 Starting child workflow of type "${workflowType}"`);
67
+ }
68
+ const operationId = crypto.randomUUID(), callerStack = captureCallerStack(), result = yield {
69
+ type: "child-workflow",
70
+ operationId,
71
+ workflowType,
72
+ input,
73
+ callerStack,
74
+ ...options !== void 0 ? { options } : {}
75
+ };
76
+ context.accumulatedResults.set(step, result);
77
+ return result;
78
+ }
79
+ export function* pipe(context, internals, stages, input) {
80
+ const pipelineToken = createCompositionToken(internals, "pipe");
81
+ let currentInput = input;
82
+ for (const [index, stage] of stages.entries()) {
83
+ const resolvedStage = normalizePipeStage(internals, stage);
84
+ currentInput = yield* context.startChild(resolvedStage.workflowType, currentInput, createCompositionChildWorkflowOptions(internals, pipelineToken, index, resolvedStage.options));
85
+ }
86
+ return currentInput;
87
+ }
88
+ export function* map(context, internals, items, workflowType, options) {
89
+ if (items.length === 0)
90
+ return [];
91
+ const mapToken = createCompositionToken(internals, "map"), concurrency = resolveMapConcurrency(items.length, options?.concurrency), resolvedWorkflowType = resolveChildWorkflowTarget(internals, workflowType), results = [];
92
+ for (let startIndex = 0;startIndex < items.length; startIndex += concurrency) {
93
+ const batchItems = items.slice(startIndex, startIndex + concurrency), batchResults = yield* context.all(batchItems.map((item, batchIndex) => context.startChild(resolvedWorkflowType, item, createCompositionChildWorkflowOptions(internals, mapToken, startIndex + batchIndex))));
94
+ for (let batchIndex = 0;batchIndex < batchResults.length; batchIndex++)
95
+ results[startIndex + batchIndex] = batchResults[batchIndex];
96
+ }
97
+ return results;
98
+ }
99
+ export function* reduce(context, internals, items, workflowType, initialValue, options) {
100
+ if (items.length === 0)
101
+ return initialValue;
102
+ const reduceToken = createCompositionToken(internals, "reduce"), resolvedWorkflowType = resolveChildWorkflowTarget(internals, workflowType);
103
+ let accumulator = initialValue;
104
+ for (const [index, item] of items.entries())
105
+ accumulator = yield* context.startChild(resolvedWorkflowType, {
106
+ accumulator,
107
+ item,
108
+ index
109
+ }, createReduceChildWorkflowOptions(internals, reduceToken, index, options));
110
+ return accumulator;
111
+ }
@@ -0,0 +1,29 @@
1
+ import type { HumanReviewOptions, HumanReviewResult } from '../review/index.ts';
2
+ import type { Duration } from '../types.ts';
3
+ import type { Context } from './index.ts';
4
+ import type { ContextInternals } from './internals.ts';
5
+ import type { ContextOperationRequest } from './operation-request.ts';
6
+ import type { OffloadReference, StreamReference, StreamSink } from './types.ts';
7
+ export type PreparedSleepOperation = {
8
+ cached: true;
9
+ } | {
10
+ cached: false;
11
+ milliseconds: number;
12
+ request: ContextOperationRequest;
13
+ step: number;
14
+ };
15
+ export declare function prepareSleepOperation(internals: ContextInternals, duration: Duration): PreparedSleepOperation;
16
+ export declare function completePreparedSleepOperation(context: Context, prepared: Exclude<PreparedSleepOperation, {
17
+ cached: true;
18
+ }>): Generator<ContextOperationRequest, void, unknown>;
19
+ export declare function sleep(context: Context, internals: ContextInternals, duration: Duration): Generator<ContextOperationRequest, void, unknown>;
20
+ export declare function waitForSignal<T = unknown>(context: Context, internals: ContextInternals, name: string): Generator<ContextOperationRequest, T, unknown>;
21
+ export declare function waitForUpdate<T = unknown>(context: Context, internals: ContextInternals, name: string): Generator<ContextOperationRequest, {
22
+ payload: T;
23
+ respond: (result: unknown) => void;
24
+ }, unknown>;
25
+ export declare function review(context: Context, internals: ContextInternals, options: HumanReviewOptions): Generator<ContextOperationRequest, HumanReviewResult, unknown>;
26
+ export declare function offload<T>(context: Context, internals: ContextInternals, key: string, fn: () => Promise<T>): Generator<ContextOperationRequest, OffloadReference, unknown>;
27
+ export declare function stream(context: Context, internals: ContextInternals, key: string, fn: (sink: StreamSink) => AsyncGenerator<unknown, void, unknown>): Generator<ContextOperationRequest, StreamReference, unknown>;
28
+ export declare function load<T>(context: Context, internals: ContextInternals, reference: OffloadReference): Generator<ContextOperationRequest, T, unknown>;
29
+ export declare function archive(context: Context, internals: ContextInternals, key: string, data: unknown): Generator<ContextOperationRequest, void, unknown>;