@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,144 @@
1
+ import { decode } from "../codec.js";
2
+ import { isRecord } from "../debug-output.js";
3
+ import { normalizeFailureCategory } from "../failure-categories.js";
4
+ import { coerceStartWorkflowId, parseStartWorkflowDuration } from "../start-workflow-validation.js";
5
+ import { isWorkflowTagArray } from "../workflow-tags.js";
6
+ const WORKFLOW_TIMELINE_STATUSES = new Set([
7
+ "running",
8
+ "completed",
9
+ "failed",
10
+ "cancelled",
11
+ "timed-out"
12
+ ]);
13
+ export function isSanitizedSearchAttributeValue(value) {
14
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
15
+ return !0;
16
+ return Array.isArray(value) && value.every((entry) => typeof entry === "string");
17
+ }
18
+ export function isWorkflowVersionTuple(value) {
19
+ if (!isRecord(value) || typeof value.workflowVersion !== "string")
20
+ return !1;
21
+ if (value.agentVersion !== void 0 && typeof value.agentVersion !== "string")
22
+ return !1;
23
+ return value.toolVersions === void 0 || Array.isArray(value.toolVersions) && value.toolVersions.every((entry) => typeof entry === "string");
24
+ }
25
+ export function isFiniteNumber(value) {
26
+ return typeof value === "number" && Number.isFinite(value);
27
+ }
28
+ export function isTimelineStep(value) {
29
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 1;
30
+ }
31
+ const TIMELINE_ENTRY_FIELD_CHECKS = [
32
+ (entry) => isTimelineStep(entry.step),
33
+ (entry) => typeof entry.operationType === "string",
34
+ (entry) => typeof entry.operationLabel === "string",
35
+ (entry) => typeof entry.inputSummary === "string",
36
+ (entry) => isFiniteNumber(entry.timestamp),
37
+ (entry) => WORKFLOW_TIMELINE_STATUSES.has(entry.status),
38
+ (entry) => entry.outputSummary === void 0 || typeof entry.outputSummary === "string",
39
+ (entry) => entry.duration === void 0 || isFiniteNumber(entry.duration),
40
+ (entry) => entry.versionTuple === void 0 || isWorkflowVersionTuple(entry.versionTuple)
41
+ ];
42
+ export function isWorkflowTimelineEntry(value) {
43
+ if (!isRecord(value))
44
+ return !1;
45
+ return TIMELINE_ENTRY_FIELD_CHECKS.every((check) => check(value));
46
+ }
47
+ export function normalizeBulkFilterNumber(value, fieldName) {
48
+ if (value === void 0)
49
+ return;
50
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0)
51
+ throw Error(`filter.${fieldName} must be a non-negative number when provided`);
52
+ return Math.floor(value);
53
+ }
54
+ export function isValidDecodedTags(value) {
55
+ return value === void 0 || isWorkflowTagArray(value);
56
+ }
57
+ export function decodeWorkflowState(bytes) {
58
+ const state = decode(bytes);
59
+ if ("tenant" in state)
60
+ delete state.tenant;
61
+ if (!isValidDecodedTags(state.tags)) {
62
+ console.warn(`[weft] Decoded workflow state for "${String(state.id)}" has invalid tags; dropping the malformed tag list from the decoded state.`);
63
+ delete state.tags;
64
+ }
65
+ if (state.failureCategory !== void 0 && state.failureCategory !== null) {
66
+ const normalizedFailureCategory = normalizeFailureCategory(state.failureCategory);
67
+ if (normalizedFailureCategory === void 0)
68
+ delete state.failureCategory;
69
+ else
70
+ state.failureCategory = normalizedFailureCategory;
71
+ }
72
+ if (state.executionStateOwnerId !== void 0)
73
+ try {
74
+ coerceStartWorkflowId(state.executionStateOwnerId, "executionStateOwnerId");
75
+ } catch {
76
+ console.warn(`[weft] Decoded workflow state for "${String(state.id)}" has an invalid executionStateOwnerId field; falling back to the workflow id as the execution owner. This usually indicates corruption or tampering of the storage record.`);
77
+ delete state.executionStateOwnerId;
78
+ }
79
+ return state;
80
+ }
81
+ export function normalizeRetentionDuration(value, fieldName) {
82
+ if (value === void 0)
83
+ return;
84
+ const milliseconds = parseStartWorkflowDuration(value, fieldName);
85
+ return Math.ceil(milliseconds);
86
+ }
87
+ export function normalizeHistoryPolicy(policy, context) {
88
+ return {
89
+ maxEvents: normalizePositiveCountOrDisabled(policy?.maxEvents, `${context}.maxEvents`),
90
+ retentionWindow: normalizePositiveCountOrDisabled(policy?.retentionWindow, `${context}.retentionWindow`)
91
+ };
92
+ }
93
+ function normalizePositiveCountOrDisabled(value, field) {
94
+ if (value === void 0 || value === 0)
95
+ return null;
96
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)
97
+ throw TypeError(`${field} must be a positive safe integer (or 0/undefined to disable); received ${String(value)}`);
98
+ return value;
99
+ }
100
+ export function normalizePayloadSizePolicy(policy, context) {
101
+ const maxBytes = policy?.maxBytes;
102
+ if (maxBytes === void 0 || maxBytes === null || maxBytes === 0)
103
+ return { maxBytes: null };
104
+ if (typeof maxBytes !== "number" || !Number.isSafeInteger(maxBytes) || maxBytes < 0)
105
+ throw TypeError(`${context}.maxBytes must be a positive safe integer (or 0/null/undefined to disable); received ${String(maxBytes)}`);
106
+ return { maxBytes };
107
+ }
108
+ export function normalizeRetentionPolicy(policy, context) {
109
+ if (!policy)
110
+ return null;
111
+ const normalized = {}, completed = normalizeRetentionDuration(policy.completed, `${context}.completed`), failed = normalizeRetentionDuration(policy.failed, `${context}.failed`), cancelled = normalizeRetentionDuration(policy.cancelled, `${context}.cancelled`), timedOut = normalizeRetentionDuration(policy.timedOut, `${context}.timedOut`);
112
+ if (completed !== void 0)
113
+ normalized.completed = completed;
114
+ if (failed !== void 0)
115
+ normalized.failed = failed;
116
+ if (cancelled !== void 0)
117
+ normalized.cancelled = cancelled;
118
+ if (timedOut !== void 0)
119
+ normalized.timedOut = timedOut;
120
+ return normalized.completed === void 0 && normalized.failed === void 0 && normalized.cancelled === void 0 && normalized.timedOut === void 0 ? null : normalized;
121
+ }
122
+ export function resolveRetentionForStatus(policy, status) {
123
+ switch (status) {
124
+ case "completed":
125
+ return policy?.completed;
126
+ case "failed":
127
+ return policy?.failed;
128
+ case "cancelled":
129
+ return policy?.cancelled;
130
+ case "timed-out":
131
+ return policy?.timedOut;
132
+ default:
133
+ return;
134
+ }
135
+ }
136
+ export function isTerminalWorkflowStatus(status) {
137
+ return status === "completed" || status === "failed" || status === "cancelled" || status === "timed-out";
138
+ }
139
+ export function isPlainObjectRecord(value) {
140
+ if (typeof value !== "object" || value === null || Array.isArray(value))
141
+ return !1;
142
+ const prototype = Object.getPrototypeOf(value);
143
+ return prototype === Object.prototype || prototype === null;
144
+ }
@@ -0,0 +1,82 @@
1
+ import type { EngineInternals } from './internals.ts';
2
+ /**
3
+ * Discriminator for `replayWorkflowFeed` / `snapshotWorkflowFeedTail`
4
+ * / `subscribeWorkflowFeedCommits`. Mirrored by `EventSelector` in
5
+ * `src/server/workflow-event-feed.ts` so the core engine takes no
6
+ * dependency on the server package.
7
+ */
8
+ export type WorkflowFeedSelector = 'events' | 'tokens';
9
+ /**
10
+ * Hard-coded stream key for the `tokens` selector. Matches the
11
+ * legacy REST SSE endpoint's key so resumption cursors round-trip
12
+ * across transports.
13
+ */
14
+ export declare const TOKENS_STREAM_KEY = "tokens";
15
+ /** Record `kind` for every token stream chunk emitted by the feed. */
16
+ export declare const STREAM_CHUNK_KIND = "stream:chunk";
17
+ /**
18
+ * Record `kind` emitted when a subscriber resumes from a cursor below the
19
+ * event-log compaction watermark. The `[cursor, watermark.sequence)` records
20
+ * were truncated, so the feed reports an explicit boundary marker (rather than
21
+ * silently skipping) before continuing from the surviving records. `sequence`
22
+ * is the watermark sequence (the first surviving record).
23
+ */
24
+ export declare const COMPACTION_BOUNDARY_KIND = "workflow:compaction-boundary";
25
+ /**
26
+ * A committed workflow-feed record surfaced to subscribers of
27
+ * `subscribeWorkflowFeedCommits()`. Fires after `storage.batch()`
28
+ * (events) or `storage.put()` (tokens) resolves, so replay and live
29
+ * delivery share the same committed sequence authority. The same
30
+ * shape covers both selectors — consumers filter on `selector`
31
+ * before interpreting `payload`.
32
+ *
33
+ * - `events` selector: `kind` is the durable log entry type
34
+ * (e.g. `'workflow:checkpoint'`). `sequence` / `timestamp` come
35
+ * from the `WorkflowLogEntry` written inside the batch.
36
+ * - `tokens` selector: `kind` is always `'stream:chunk'`.
37
+ * `sequence` is the chunk index; `timestamp` is wall-clock at
38
+ * write time.
39
+ */
40
+ export type WorkflowFeedRecord = {
41
+ readonly workflowId: string;
42
+ readonly selector: WorkflowFeedSelector;
43
+ readonly kind: string;
44
+ readonly sequence: number;
45
+ readonly timestamp: number;
46
+ readonly payload: unknown;
47
+ };
48
+ export type WorkflowFeedRecordValue = WorkflowFeedRecord;
49
+ /**
50
+ * Listener signature for `subscribeWorkflowFeedCommits()`. Returning
51
+ * `void | Promise<void>` is explicit: an async listener's rejected
52
+ * promise is caught by the notifier and discarded, exactly like a
53
+ * sync throw. This is the only correct shape for a notifier called
54
+ * from a hot path — an escaped unhandled rejection would surface as
55
+ * a test-runner or Node process-level crash.
56
+ */
57
+ export type WorkflowFeedListener = (record: WorkflowFeedRecord) => void | Promise<void>;
58
+ /**
59
+ * Iterate over the workflow's post-commit records for a given selector.
60
+ */
61
+ export declare function replayWorkflowFeed(internals: EngineInternals, workflowId: string, selector: WorkflowFeedSelector, afterSequence: number): AsyncIterable<WorkflowFeedRecord>;
62
+ /**
63
+ * Snapshot the current tail sequence for the selector.
64
+ */
65
+ export declare function snapshotWorkflowFeedTail(internals: EngineInternals, workflowId: string, selector: WorkflowFeedSelector): Promise<number>;
66
+ /**
67
+ * Subscribe to post-commit workflow-feed notifications.
68
+ */
69
+ export declare function subscribeWorkflowFeedCommits(internals: EngineInternals, workflowId: string, selector: WorkflowFeedSelector, listener: WorkflowFeedListener): () => void;
70
+ /**
71
+ * Replay committed workflow event-log entries after a durable sequence cursor.
72
+ */
73
+ export declare function replayWorkflowEventLog(internals: EngineInternals, workflowId: string, afterSequence: number): AsyncIterable<WorkflowFeedRecord>;
74
+ /**
75
+ * Replay committed token stream chunks after a durable sequence cursor.
76
+ */
77
+ export declare function replayWorkflowTokens(internals: EngineInternals, workflowId: string, afterSequence: number): AsyncIterable<WorkflowFeedRecord>;
78
+ /**
79
+ * Dispatch a committed record to every listener registered for
80
+ * `(workflowId, selector)`.
81
+ */
82
+ export declare function notifyWorkflowFeedCommit(internals: EngineInternals, workflowId: string, selector: WorkflowFeedSelector, record: WorkflowFeedRecord): void;
@@ -0,0 +1,96 @@
1
+ import { EventLog } from "../event-log.js";
2
+ import { readEventLogWatermark } from "./event-log-compaction.js";
3
+ import { workflowFeedListenerKey } from "./state-utilities.js";
4
+ import { loadStoredStreamChunks } from "./stream-chunk-loading.js";
5
+ export const TOKENS_STREAM_KEY = "tokens", STREAM_CHUNK_KIND = "stream:chunk", COMPACTION_BOUNDARY_KIND = "workflow:compaction-boundary";
6
+ export async function* replayWorkflowFeed(internals, workflowId, selector, afterSequence) {
7
+ if (selector === "events") {
8
+ yield* replayWorkflowEventLog(internals, workflowId, afterSequence);
9
+ return;
10
+ }
11
+ yield* replayWorkflowTokens(internals, workflowId, afterSequence);
12
+ }
13
+ export async function snapshotWorkflowFeedTail(internals, workflowId, selector) {
14
+ if (selector === "events") {
15
+ const head = internals.eventLogHeads.get(workflowId);
16
+ if (head)
17
+ return head.sequence;
18
+ return (await new EventLog(internals.storage, workflowId).loadHead()).sequence;
19
+ }
20
+ const chunks = await loadStoredStreamChunks(internals.storage, workflowId, TOKENS_STREAM_KEY);
21
+ if (chunks.length === 0)
22
+ return -1;
23
+ let max = -1;
24
+ for (const chunk of chunks)
25
+ if (chunk.sequence > max)
26
+ max = chunk.sequence;
27
+ return max;
28
+ }
29
+ export function subscribeWorkflowFeedCommits(internals, workflowId, selector, listener) {
30
+ const key = workflowFeedListenerKey(workflowId, selector);
31
+ let bucket = internals.workflowFeedListeners.get(key);
32
+ if (!bucket) {
33
+ bucket = new Set;
34
+ internals.workflowFeedListeners.set(key, bucket);
35
+ }
36
+ bucket.add(listener);
37
+ return () => {
38
+ const set = internals.workflowFeedListeners.get(key);
39
+ if (!set)
40
+ return;
41
+ set.delete(listener);
42
+ if (set.size === 0)
43
+ internals.workflowFeedListeners.delete(key);
44
+ };
45
+ }
46
+ export async function* replayWorkflowEventLog(internals, workflowId, afterSequence) {
47
+ const eventLog = new EventLog(internals.storage, workflowId);
48
+ let fromSequence = afterSequence < 0 ? 0 : afterSequence + 1;
49
+ const watermark = await readEventLogWatermark(internals.storage, workflowId);
50
+ if (watermark !== null && fromSequence < watermark.sequence) {
51
+ yield {
52
+ workflowId,
53
+ selector: "events",
54
+ kind: COMPACTION_BOUNDARY_KIND,
55
+ sequence: watermark.sequence - 1,
56
+ timestamp: 0,
57
+ payload: { compactedBefore: watermark.sequence, requestedFrom: fromSequence }
58
+ };
59
+ fromSequence = watermark.sequence;
60
+ }
61
+ for await (const entry of eventLog.scan({ fromSequence }))
62
+ yield {
63
+ workflowId,
64
+ selector: "events",
65
+ kind: entry.type,
66
+ sequence: entry.sequence,
67
+ timestamp: entry.timestamp,
68
+ payload: entry.payload
69
+ };
70
+ }
71
+ export async function* replayWorkflowTokens(internals, workflowId, afterSequence) {
72
+ const chunks = afterSequence >= 0 ? await loadStoredStreamChunks(internals.storage, workflowId, TOKENS_STREAM_KEY, {
73
+ after: afterSequence
74
+ }) : await loadStoredStreamChunks(internals.storage, workflowId, TOKENS_STREAM_KEY), timestamp = Date.now();
75
+ for (const chunk of chunks)
76
+ yield {
77
+ workflowId,
78
+ selector: "tokens",
79
+ kind: STREAM_CHUNK_KIND,
80
+ sequence: chunk.sequence,
81
+ timestamp,
82
+ payload: chunk.value
83
+ };
84
+ }
85
+ export function notifyWorkflowFeedCommit(internals, workflowId, selector, record) {
86
+ const bucket = internals.workflowFeedListeners.get(workflowFeedListenerKey(workflowId, selector));
87
+ if (!bucket || bucket.size === 0)
88
+ return;
89
+ const listeners = [...bucket];
90
+ for (const listener of listeners)
91
+ try {
92
+ const result = listener(record);
93
+ if (result && typeof result.then === "function")
94
+ result.catch(() => {});
95
+ } catch {}
96
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Build the storage operations that keep the workflow visibility indexes in
3
+ * sync with workflow state writes. Called from every state-mutation chokepoint
4
+ * (start, status transition, attribute/tag updates, termination cleanup).
5
+ *
6
+ * The runtime path mirrors the backfill path: read the per-workflow manifest
7
+ * to learn which index keys are currently occupied, delete them, write the
8
+ * new index keys derived from `nextState`, and persist the new manifest. When
9
+ * `nextState` is `null` the workflow is being removed and we simply drop the
10
+ * manifest and every key it lists.
11
+ *
12
+ * @module core/engine/workflow-indexes
13
+ */
14
+ import { type BatchOperation, type Storage } from '../../storage/interface.ts';
15
+ import type { WorkflowState } from '../types.ts';
16
+ import { WeftError } from '../weft-error.ts';
17
+ /**
18
+ * Bumped whenever the index layout or population rules change. The engine
19
+ * compares this to the watermark stored at `wf-idx-meta:version` to decide
20
+ * whether the indexes are trustworthy for query-time use.
21
+ */
22
+ export declare const WORKFLOW_VISIBILITY_INDEX_VERSION = 1;
23
+ /**
24
+ * Hard cap on the number of candidate workflow ids the engine will
25
+ * materialize for a single `list` or `aggregate` query. Exceeding the cap
26
+ * raises a {@link WorkflowListScanCapExceededError} — the operator should
27
+ * narrow the filter or run the visibility-index backfill so a narrower
28
+ * scan applies.
29
+ */
30
+ export declare const MAX_LIST_SCAN_ROWS = 1000000;
31
+ /**
32
+ * Thrown when `list`/`aggregate` would materialize more candidates than
33
+ * {@link MAX_LIST_SCAN_ROWS} allows. Transport layers map this to an
34
+ * `Unprocessable` fault.
35
+ */
36
+ export declare class WorkflowListScanCapExceededError extends WeftError<'WorkflowListScanCapExceededError'> {
37
+ readonly cap: number;
38
+ constructor(cap: number);
39
+ }
40
+ /**
41
+ * Per-workflow manifest payload — the exact set of visibility-index keys
42
+ * this workflow occupies right now. Decoded from the
43
+ * `wf-idx-manifest:{id}` storage entry.
44
+ */
45
+ export type WorkflowVisibilityManifest = {
46
+ /** Schema version that wrote this manifest. */
47
+ version: number;
48
+ /** Sorted list of index keys this workflow currently owns. */
49
+ keys: string[];
50
+ };
51
+ /**
52
+ * Compute the visibility-index keys a workflow should occupy given its
53
+ * current state. Returns a deterministic, sorted list so manifests compare
54
+ * stably across runs.
55
+ */
56
+ export declare function deriveWorkflowVisibilityIndexKeys(state: WorkflowState): string[];
57
+ /**
58
+ * Decode a manifest payload read from storage. Returns `null` for missing or
59
+ * malformed values so callers fall back to the "treat as empty" path — the
60
+ * derived diff still produces the right set of inserts.
61
+ */
62
+ export declare function decodeWorkflowVisibilityManifest(bytes: Uint8Array | null): WorkflowVisibilityManifest | null;
63
+ /**
64
+ * Result of {@link buildWorkflowVisibilityIndexOperations}. `nextManifestKeys`
65
+ * is `null` when the workflow is being removed (delete manifest + all keys).
66
+ */
67
+ export type WorkflowVisibilityIndexUpdate = {
68
+ batchOps: BatchOperation[];
69
+ nextManifestKeys: string[] | null;
70
+ };
71
+ /**
72
+ * Build the batch operations required to transition a workflow's visibility
73
+ * indexes from `currentManifest` (whatever the storage currently records) to
74
+ * the keys derived from `nextState`. Pass `nextState = null` to drop the
75
+ * workflow's index footprint entirely.
76
+ *
77
+ * The caller is responsible for appending the returned `batchOps` to its own
78
+ * write batch so storage commits the index update atomically with the state
79
+ * write it accompanies.
80
+ */
81
+ export declare function buildWorkflowVisibilityIndexOperations(workflowId: string, currentManifest: WorkflowVisibilityManifest | null, nextState: WorkflowState | null): WorkflowVisibilityIndexUpdate;
82
+ /**
83
+ * Variant of {@link buildWorkflowVisibilityIndexOperations} that derives the
84
+ * previous index keys directly from `previousState` instead of from a stored
85
+ * manifest. Use this on every runtime state-transition write — it avoids an
86
+ * extra storage round-trip per write and is always correct because the index
87
+ * is a deterministic function of state.
88
+ *
89
+ * The manifest-based variant remains the right choice for backfill, which
90
+ * may need to delete rows produced by a different schema version.
91
+ */
92
+ export declare function buildWorkflowVisibilityIndexTransition(workflowId: string, previousState: WorkflowState | null, nextState: WorkflowState | null): WorkflowVisibilityIndexUpdate;
93
+ /**
94
+ * Watermark recorded by the backfill once every workflow has a manifest at
95
+ * the current schema version. `engine.list()` and `engine.aggregate()` only
96
+ * consult the new `wf-idx-*` rows when the watermark is `current`.
97
+ */
98
+ export type WorkflowVisibilityWatermark = 'current' | 'stale';
99
+ /**
100
+ * Read the visibility-index watermark. Returns `'current'` when the
101
+ * persisted version is at or above {@link WORKFLOW_VISIBILITY_INDEX_VERSION}.
102
+ */
103
+ export declare function getWorkflowVisibilityWatermark(storage: Storage): Promise<WorkflowVisibilityWatermark>;
@@ -0,0 +1,93 @@
1
+ import { KEYS } from "../../storage/interface.js";
2
+ import { decode, encode } from "../codec.js";
3
+ import { WeftError } from "../weft-error.js";
4
+ export const WORKFLOW_VISIBILITY_INDEX_VERSION = 1, MAX_LIST_SCAN_ROWS = 1e6;
5
+
6
+ export class WorkflowListScanCapExceededError extends WeftError {
7
+ cap;
8
+ constructor(cap) {
9
+ super("WorkflowListScanCapExceededError", `Listing workflows would exceed the scan cap of ${cap}. Narrow the filter or run the visibility-index backfill.`);
10
+ this.cap = cap;
11
+ }
12
+ }
13
+ export function deriveWorkflowVisibilityIndexKeys(state) {
14
+ const keys = [
15
+ KEYS.workflowVisibilityStatus(state.status, state.id),
16
+ KEYS.workflowVisibilityType(state.type, state.id),
17
+ KEYS.workflowVisibilityCreated(state.createdAt, state.id),
18
+ KEYS.workflowVisibilityUpdated(state.updatedAt, state.id)
19
+ ];
20
+ if (state.executionDeadline !== void 0)
21
+ keys.push(KEYS.workflowVisibilityDeadline(state.executionDeadline, state.id));
22
+ return keys.toSorted();
23
+ }
24
+ export function decodeWorkflowVisibilityManifest(bytes) {
25
+ if (!bytes)
26
+ return null;
27
+ let payload;
28
+ try {
29
+ payload = decode(bytes);
30
+ } catch {
31
+ return null;
32
+ }
33
+ if (typeof payload !== "object" || payload === null)
34
+ return null;
35
+ const candidate = payload;
36
+ if (typeof candidate.version !== "number")
37
+ return null;
38
+ if (!Array.isArray(candidate.keys))
39
+ return null;
40
+ const keys = [];
41
+ for (const entry of candidate.keys) {
42
+ if (typeof entry !== "string")
43
+ return null;
44
+ keys.push(entry);
45
+ }
46
+ return { version: candidate.version, keys };
47
+ }
48
+ export function buildWorkflowVisibilityIndexOperations(workflowId, currentManifest, nextState) {
49
+ return buildWorkflowVisibilityIndexOperationsInternal(workflowId, currentManifest?.keys ?? [], currentManifest !== null, nextState);
50
+ }
51
+ export function buildWorkflowVisibilityIndexTransition(workflowId, previousState, nextState) {
52
+ const previousKeys = previousState ? deriveWorkflowVisibilityIndexKeys(previousState) : [];
53
+ return buildWorkflowVisibilityIndexOperationsInternal(workflowId, previousKeys, previousState !== null, nextState);
54
+ }
55
+ function buildWorkflowVisibilityIndexOperationsInternal(workflowId, previousKeys, hadPriorManifest, nextState) {
56
+ const manifestKey = KEYS.workflowVisibilityManifest(workflowId);
57
+ if (nextState === null) {
58
+ const batchOps = [];
59
+ for (const key of previousKeys)
60
+ batchOps.push({ type: "delete", key });
61
+ if (hadPriorManifest)
62
+ batchOps.push({ type: "delete", key: manifestKey });
63
+ return { batchOps, nextManifestKeys: null };
64
+ }
65
+ const nextKeys = deriveWorkflowVisibilityIndexKeys(nextState), previousSet = new Set(previousKeys), nextSet = new Set(nextKeys), batchOps = [];
66
+ for (const key of previousKeys)
67
+ if (!nextSet.has(key))
68
+ batchOps.push({ type: "delete", key });
69
+ for (const key of nextKeys)
70
+ if (!previousSet.has(key))
71
+ batchOps.push({ type: "put", key, value: EMPTY_INDEX_VALUE });
72
+ const manifestPayload = {
73
+ version: WORKFLOW_VISIBILITY_INDEX_VERSION,
74
+ keys: nextKeys
75
+ };
76
+ batchOps.push({ type: "put", key: manifestKey, value: encode(manifestPayload) });
77
+ return { batchOps, nextManifestKeys: nextKeys };
78
+ }
79
+ const EMPTY_INDEX_VALUE = new Uint8Array(0);
80
+ export async function getWorkflowVisibilityWatermark(storage) {
81
+ const bytes = await storage.get(KEYS.workflowVisibilityMetaVersion());
82
+ if (!bytes)
83
+ return "stale";
84
+ let payload;
85
+ try {
86
+ payload = decode(bytes);
87
+ } catch {
88
+ return "stale";
89
+ }
90
+ if (typeof payload !== "number")
91
+ return "stale";
92
+ return payload >= WORKFLOW_VISIBILITY_INDEX_VERSION ? "current" : "stale";
93
+ }
@@ -0,0 +1,9 @@
1
+ import type { AttributeFilter, ListFilter, WorkflowState } from '../types.ts';
2
+ import type { EngineInternals } from './internals.ts';
3
+ /** Stream decoded workflow states that match a list filter. */
4
+ export declare function streamMatchingWorkflowStates(internals: EngineInternals, filter?: ListFilter): AsyncGenerator<WorkflowState>;
5
+ /** Resolve the indexed workflow IDs implied by tag and search-attribute filters. */
6
+ export declare function resolveConstrainedIds(internals: EngineInternals, filter: ListFilter | undefined, normalizedTagFilters: readonly string[] | undefined): Promise<Set<string> | null>;
7
+ /** Query a single search-attribute index filter and return matching workflow IDs. */
8
+ export declare function queryAttributeIndex(internals: EngineInternals, filter: AttributeFilter): Promise<Set<string>>;
9
+ export declare function isTopLevelWorkflowStateKey(key: string): boolean;
@@ -0,0 +1,126 @@
1
+ import {
2
+ KEYS,
3
+ encodeStorageKeyComponent,
4
+ tryDecodeStorageKeyComponent
5
+ } from "../../storage/interface.js";
6
+ import { failureCategorySearchValues, isFailureCategory } from "../failure-categories.js";
7
+ import { encodeAttributeValue, searchAttributeName } from "../search-attributes.js";
8
+ import { normalizeWorkflowTags } from "../workflow-tags.js";
9
+ import { intersectIdentifierSets, matchesListFilter } from "./state-utilities.js";
10
+ import { decodeWorkflowState } from "./validation.js";
11
+ const ATTRIBUTE_SCAN_CONCURRENCY = 8;
12
+ export async function* streamMatchingWorkflowStates(internals, filter) {
13
+ const normalizedTagFilters = normalizeWorkflowTags(filter?.tags), constrainedIds = await resolveConstrainedIds(internals, filter, normalizedTagFilters);
14
+ if (constrainedIds !== null) {
15
+ for (const workflowId of constrainedIds) {
16
+ const state = await loadMatchingWorkflowState(internals, workflowId, filter, constrainedIds, normalizedTagFilters);
17
+ if (state === null)
18
+ continue;
19
+ yield state;
20
+ }
21
+ return;
22
+ }
23
+ for await (const [key, value] of internals.storage.scan("wf:")) {
24
+ if (!isTopLevelWorkflowStateKey(key))
25
+ continue;
26
+ const state = decodeWorkflowState(value);
27
+ if (!matchesListFilter(state, filter, constrainedIds, normalizedTagFilters))
28
+ continue;
29
+ yield state;
30
+ }
31
+ }
32
+ async function loadMatchingWorkflowState(internals, workflowId, filter, constrainedIds, normalizedTagFilters) {
33
+ const stateBytes = await internals.storage.get(KEYS.workflow(workflowId));
34
+ if (!stateBytes)
35
+ return null;
36
+ const state = decodeWorkflowState(stateBytes);
37
+ if (!matchesListFilter(state, filter, constrainedIds, normalizedTagFilters))
38
+ return null;
39
+ return state;
40
+ }
41
+ export async function resolveConstrainedIds(internals, filter, normalizedTagFilters) {
42
+ const attributeFilters = filter?.attributes, hasAttributeFilters = attributeFilters !== void 0 && attributeFilters.length > 0, hasTagFilters = normalizedTagFilters !== void 0 && normalizedTagFilters.length > 0;
43
+ if (!hasAttributeFilters && !hasTagFilters)
44
+ return null;
45
+ const queries = buildConstrainedIdQueries(internals, normalizedTagFilters, attributeFilters);
46
+ return intersectIdentifierSets(await runConstrainedIdQueries(queries));
47
+ }
48
+ export async function queryAttributeIndex(internals, filter) {
49
+ const ids = new Set, attributeName = searchAttributeName(filter.key), prefix = `idx:${attributeName}:`;
50
+ if (filter.value !== void 0)
51
+ await collectExactAttributeMatches(internals, filter, attributeName, ids);
52
+ else
53
+ await collectRangeAttributeMatches(internals, filter, prefix, ids);
54
+ return ids;
55
+ }
56
+ function buildConstrainedIdQueries(internals, normalizedTagFilters, attributeFilters) {
57
+ return [
58
+ ...normalizedTagFilters?.map((tag) => () => queryTagIndex(internals, tag)) ?? [],
59
+ ...attributeFilters?.map((attributeFilter) => () => queryAttributeIndex(internals, attributeFilter)) ?? []
60
+ ];
61
+ }
62
+ async function runConstrainedIdQueries(queries) {
63
+ const idSets = Array.from({ length: queries.length });
64
+ let nextIndex = 0;
65
+ const runWorker = async () => {
66
+ while (nextIndex < queries.length) {
67
+ const currentIndex = nextIndex;
68
+ nextIndex += 1;
69
+ idSets[currentIndex] = await queries[currentIndex]();
70
+ }
71
+ }, workerLimit = Math.max(1, Math.min(ATTRIBUTE_SCAN_CONCURRENCY, queries.length));
72
+ await Promise.all(Array.from({ length: workerLimit }, () => runWorker()));
73
+ return idSets.map(requireConstrainedIdSet);
74
+ }
75
+ function requireConstrainedIdSet(idSet) {
76
+ if (idSet === void 0)
77
+ throw Error("Attribute index query did not produce a workflow ID set.");
78
+ return idSet;
79
+ }
80
+ async function collectExactAttributeMatches(internals, filter, attributeName, ids) {
81
+ const exactValue = filter.value;
82
+ if (exactValue === void 0)
83
+ return;
84
+ const values = filter.key === "failureCategory" && isFailureCategory(exactValue) ? failureCategorySearchValues(exactValue) : [exactValue];
85
+ for (const value of values) {
86
+ const exactPrefix = `idx:${attributeName}:${encodeAttributeValue(value)}:`;
87
+ for await (const [key] of internals.storage.scan(exactPrefix))
88
+ addWorkflowIdFromIndexKey(ids, key.slice(exactPrefix.length));
89
+ }
90
+ }
91
+ async function collectRangeAttributeMatches(internals, filter, prefix, ids) {
92
+ for await (const [key] of internals.storage.scan(prefix, attributeRangeScanOptions(filter))) {
93
+ const afterPrefix = key.slice(prefix.length), lastColon = afterPrefix.lastIndexOf(":");
94
+ if (lastColon >= 0)
95
+ addWorkflowIdFromIndexKey(ids, afterPrefix.slice(lastColon + 1));
96
+ }
97
+ }
98
+ function attributeRangeScanOptions(filter) {
99
+ const scanOptions = {};
100
+ if (filter.gte !== void 0)
101
+ scanOptions.gte = `idx:${searchAttributeName(filter.key)}:${encodeAttributeValue(filter.gte)}:`;
102
+ if (filter.gt !== void 0)
103
+ scanOptions.gt = `idx:${searchAttributeName(filter.key)}:${encodeAttributeValue(filter.gt)}:\xFF`;
104
+ if (filter.lte !== void 0)
105
+ scanOptions.lte = `idx:${searchAttributeName(filter.key)}:${encodeAttributeValue(filter.lte)}:\xFF`;
106
+ if (filter.lt !== void 0)
107
+ scanOptions.lt = `idx:${searchAttributeName(filter.key)}:${encodeAttributeValue(filter.lt)}:`;
108
+ return scanOptions;
109
+ }
110
+ function addWorkflowIdFromIndexKey(ids, encodedWorkflowId) {
111
+ const workflowId = tryDecodeStorageKeyComponent(encodedWorkflowId);
112
+ if (workflowId !== null)
113
+ ids.add(workflowId);
114
+ }
115
+ async function queryTagIndex(internals, tag) {
116
+ const ids = new Set, prefix = `tag:${encodeStorageKeyComponent(tag)}:`;
117
+ for await (const [key] of internals.storage.scan(prefix)) {
118
+ const workflowId = tryDecodeStorageKeyComponent(key.slice(prefix.length));
119
+ if (workflowId !== null)
120
+ ids.add(workflowId);
121
+ }
122
+ return ids;
123
+ }
124
+ export function isTopLevelWorkflowStateKey(key) {
125
+ return !key.slice(3).includes(":");
126
+ }