@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,340 @@
1
+ import { type StorageCapabilities } from './capabilities.ts';
2
+ import type { DeleteRangeOptions } from './delete-range.ts';
3
+ export { assertDurableStorageForRecovery, requireStorageCapability } from './capabilities.ts';
4
+ export type { GatedStorageCapabilityKey, StorageCapabilities } from './capabilities.ts';
5
+ export { DEFAULT_SCOPE } from './default-scope.ts';
6
+ export { WEFT_RESERVED_KEY_PREFIXES } from './key-prefixes.ts';
7
+ /**
8
+ * A single KV operation in a batch.
9
+ *
10
+ * Either a put (write `value` at `key`) or a delete (remove `key`). The `type`
11
+ * discriminant selects the variant; delete operations carry no value.
12
+ */
13
+ export type BatchOperation = {
14
+ type: 'put';
15
+ key: string;
16
+ value: Uint8Array;
17
+ } | {
18
+ type: 'delete';
19
+ key: string;
20
+ };
21
+ /**
22
+ * A key/value precondition for {@link Storage.conditionalBatch}.
23
+ *
24
+ * The batch commits only when every listed key currently matches the expected
25
+ * value. Use `null` to require that the key is absent.
26
+ */
27
+ export interface ConditionalBatchCondition {
28
+ key: string;
29
+ expectedValue: Uint8Array | null;
30
+ }
31
+ /**
32
+ * Options for range scans.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * import { MemoryStorage, type ScanOptions } from '@lostgradient/weft';
37
+ *
38
+ * await using storage = new MemoryStorage();
39
+ * const options: ScanOptions = { limit: 10, reverse: true };
40
+ * for await (const [key, value] of storage.scan('wf:', options)) {
41
+ * console.log(key);
42
+ * }
43
+ * ```
44
+ */
45
+ export interface ScanOptions {
46
+ limit?: number;
47
+ reverse?: boolean;
48
+ gt?: string;
49
+ lt?: string;
50
+ gte?: string;
51
+ lte?: string;
52
+ }
53
+ /**
54
+ * KV-oriented storage interface. All storage adapters implement this.
55
+ *
56
+ * Required methods are `get`, `put`, `delete`, `scan`, and `batch`. Optional
57
+ * fast paths are `conditionalBatch`, `has`, `deletePrefix`, `deleteRange`,
58
+ * `keys`, `count`, `scoped`, and `query`. Adapters that omit optional methods
59
+ * get generic fallbacks via `storageHas`, `storageKeys`, `storageCount`,
60
+ * `storageDeletePrefix`, and `storageConditionalBatch` (all from this module),
61
+ * plus `storageDeleteRange` (exported from `@lostgradient/weft` / `@lostgradient/weft/storage`, defined in
62
+ * `storage/delete-range.ts`). Callers should use those wrappers rather than
63
+ * calling optional methods directly.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * import { MemoryStorage } from '@lostgradient/weft';
68
+ * import type { Storage } from '@lostgradient/weft/storage/interface';
69
+ *
70
+ * await using storage: Storage = new MemoryStorage();
71
+ * const encoded = new TextEncoder().encode('hello');
72
+ * await storage.put('my-key', encoded);
73
+ * const value = await storage.get('my-key');
74
+ * console.log(new TextDecoder().decode(value!)); // 'hello'
75
+ * ```
76
+ */
77
+ export interface Storage extends Disposable {
78
+ /**
79
+ * Self-report the backend's consistency and feature guarantees. Required on
80
+ * every adapter so the engine and feature gates can act on an honest,
81
+ * declarative profile rather than duck-typing optional methods. See
82
+ * {@link StorageCapabilities} for the contract each field promises and which
83
+ * fields are runtime-gated versus trusted.
84
+ */
85
+ capabilities(): StorageCapabilities;
86
+ get(key: string): Promise<Uint8Array | null>;
87
+ put(key: string, value: Uint8Array): Promise<void>;
88
+ delete(key: string): Promise<void>;
89
+ scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
90
+ batch(operations: BatchOperation[]): Promise<void>;
91
+ conditionalBatch?(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
92
+ has?(key: string): Promise<boolean>;
93
+ deletePrefix?(prefix: string): Promise<number>;
94
+ deleteRange?(prefix: string, options: DeleteRangeOptions): Promise<number>;
95
+ keys?(prefix: string, options?: ScanOptions): AsyncIterable<string>;
96
+ count?(prefix: string): Promise<number>;
97
+ scoped?(prefix: string): Storage;
98
+ /** Optional SQL passthrough for dashboard/debugging. */
99
+ query?<T>(sql: string, params?: unknown[]): Promise<T[]>;
100
+ }
101
+ /**
102
+ * Resolve the exclusive upper bound for a lexicographic prefix scan.
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * import { resolvePrefixRangeEnd } from '@lostgradient/weft/storage/interface';
107
+ *
108
+ * const end = resolvePrefixRangeEnd('wf:');
109
+ * console.log(end); // 'wf;'
110
+ * // Use as an exclusive upper bound in range queries
111
+ * ```
112
+ */
113
+ export declare function resolvePrefixRangeEnd(prefix: string): string;
114
+ /**
115
+ * Apply gt/gte/lt/lte scan bounds to a single key.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * import { matchesScanOptions } from '@lostgradient/weft/storage/interface';
120
+ *
121
+ * console.log(matchesScanOptions('wf:b', { gt: 'wf:a', lt: 'wf:c' })); // true
122
+ * console.log(matchesScanOptions('wf:a', { gt: 'wf:a' })); // false
123
+ * ```
124
+ */
125
+ export declare function matchesScanOptions(key: string, options?: ScanOptions): boolean;
126
+ /**
127
+ * Compare two storage values for byte-for-byte equality.
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * import { storageValuesEqual } from '@lostgradient/weft';
132
+ *
133
+ * const a = new Uint8Array([1, 2, 3]);
134
+ * const b = new Uint8Array([1, 2, 3]);
135
+ * console.log(storageValuesEqual(a, b)); // true
136
+ * console.log(storageValuesEqual(a, null)); // false
137
+ * ```
138
+ */
139
+ export declare function storageValuesEqual(left: Uint8Array | null, right: Uint8Array | null): boolean;
140
+ /**
141
+ * Check key existence using the adapter method when available or a core fallback otherwise.
142
+ *
143
+ * @example
144
+ * ```ts
145
+ * import { MemoryStorage } from '@lostgradient/weft';
146
+ * import { storageHas } from '@lostgradient/weft/storage/interface';
147
+ *
148
+ * await using storage = new MemoryStorage();
149
+ * await storage.put('my-key', new Uint8Array([1]));
150
+ * console.log(await storageHas(storage, 'my-key')); // true
151
+ * console.log(await storageHas(storage, 'other-key')); // false
152
+ * ```
153
+ */
154
+ export declare function storageHas(storage: Storage, key: string): Promise<boolean>;
155
+ /**
156
+ * Iterate keys only, using the adapter shortcut when available or `scan()` as a fallback.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * import { MemoryStorage } from '@lostgradient/weft';
161
+ * import { storageKeys } from '@lostgradient/weft/storage/interface';
162
+ *
163
+ * await using storage = new MemoryStorage();
164
+ * for await (const key of storageKeys(storage, 'wf:')) {
165
+ * console.log(key); // 'wf:abc'
166
+ * }
167
+ * ```
168
+ */
169
+ export declare function storageKeys(storage: Storage, prefix: string, options?: ScanOptions): AsyncIterable<string>;
170
+ /**
171
+ * Count keys for a prefix using the adapter method when available or iteration otherwise.
172
+ *
173
+ * @example
174
+ * ```ts
175
+ * import { MemoryStorage } from '@lostgradient/weft';
176
+ * import { storageCount } from '@lostgradient/weft/storage/interface';
177
+ *
178
+ * await using storage = new MemoryStorage();
179
+ * await storage.put('wf:1', new Uint8Array([1]));
180
+ * await storage.put('wf:2', new Uint8Array([2]));
181
+ * console.log(await storageCount(storage, 'wf:')); // 2
182
+ * ```
183
+ */
184
+ export declare function storageCount(storage: Storage, prefix: string): Promise<number>;
185
+ /**
186
+ * Delete a whole prefix using the adapter method when available or a batched fallback otherwise.
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * import { MemoryStorage } from '@lostgradient/weft';
191
+ * import { storageDeletePrefix } from '@lostgradient/weft/storage/interface';
192
+ *
193
+ * await using storage = new MemoryStorage();
194
+ * await storage.put('wf:a', new Uint8Array([1]));
195
+ * await storage.put('wf:b', new Uint8Array([2]));
196
+ * const deleted = await storageDeletePrefix(storage, 'wf:');
197
+ * console.log(deleted); // 2
198
+ * ```
199
+ */
200
+ export declare function storageDeletePrefix(storage: Storage, prefix: string): Promise<number>;
201
+ /**
202
+ * Run a conditional batch or throw when the backend does not support it.
203
+ *
204
+ * Built-in Memory, BunSQLite, NodeSQLite, LMDB, Turso, and IndexedDB backends
205
+ * provide `conditionalBatch`; custom adapters may omit it.
206
+ *
207
+ * @throws {Error} This storage backend does not support conditionalBatch(), which is required for this operation.
208
+ *
209
+ * @example
210
+ * ```ts
211
+ * import { MemoryStorage } from '@lostgradient/weft';
212
+ * import { storageConditionalBatch } from '@lostgradient/weft/storage/interface';
213
+ *
214
+ * await using storage = new MemoryStorage();
215
+ * const key = 'my-key';
216
+ * // Commit only if key is absent
217
+ * const applied = await storageConditionalBatch(
218
+ * storage,
219
+ * [{ key, expectedValue: null }],
220
+ * [{ type: 'put', key, value: new Uint8Array([1]) }],
221
+ * );
222
+ * console.log(applied); // true
223
+ * ```
224
+ */
225
+ export declare function storageConditionalBatch(storage: Storage, conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
226
+ /**
227
+ * Encode an untrusted string so it is safe to embed in a colon-delimited storage key.
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * import { encodeStorageKeyComponent } from '@lostgradient/weft/storage/interface';
232
+ *
233
+ * const safe = encodeStorageKeyComponent('user:123/profile');
234
+ * console.log(safe); // 'user%3A123%2Fprofile'
235
+ * ```
236
+ */
237
+ export declare function encodeStorageKeyComponent(value: string): string;
238
+ /**
239
+ * Decode a storage-key component produced by {@link encodeStorageKeyComponent}.
240
+ * Throws when `value` is malformed percent-encoded text. Callers handling
241
+ * untrusted input should prefer {@link tryDecodeStorageKeyComponent}.
242
+ *
243
+ * @throws {URIError} When `value` contains malformed percent-encoded data.
244
+ *
245
+ * @example
246
+ * ```ts
247
+ * import { encodeStorageKeyComponent, decodeStorageKeyComponent } from '@lostgradient/weft/storage/interface';
248
+ *
249
+ * const encoded = encodeStorageKeyComponent('user:123');
250
+ * const decoded = decodeStorageKeyComponent(encoded);
251
+ * console.log(decoded); // 'user:123'
252
+ * ```
253
+ */
254
+ export declare function decodeStorageKeyComponent(value: string): string;
255
+ /**
256
+ * Decode a storage-key component produced by {@link encodeStorageKeyComponent}.
257
+ * Returns `null` when the component is malformed instead of throwing.
258
+ *
259
+ * @example
260
+ * ```ts
261
+ * import { tryDecodeStorageKeyComponent } from '@lostgradient/weft/storage/interface';
262
+ *
263
+ * console.log(tryDecodeStorageKeyComponent('user%3A123')); // 'user:123'
264
+ * console.log(tryDecodeStorageKeyComponent('%GG')); // null
265
+ * ```
266
+ */
267
+ export declare function tryDecodeStorageKeyComponent(value: string): string | null;
268
+ /**
269
+ * Key layout constants for hierarchical key encoding. Timestamps are
270
+ * zero-padded to 16 digits for lexicographic ordering.
271
+ *
272
+ * @example
273
+ * ```ts
274
+ * import { KEYS } from '@lostgradient/weft/storage/interface';
275
+ * KEYS.workflow('workflow-id');
276
+ * ```
277
+ */
278
+ export declare const KEYS: {
279
+ readonly workflow: (id: string) => string;
280
+ readonly checkpoint: (id: string) => string;
281
+ readonly checkpointHistory: (id: string, step: number) => string;
282
+ readonly timelinePrefix: (id: string) => string;
283
+ readonly timeline: (id: string, step: number) => string;
284
+ readonly schedule: (id: string) => string;
285
+ readonly scheduleTick: (fireAt: number, id: string) => string;
286
+ readonly scheduleRun: (workflowId: string) => string;
287
+ readonly operation: (queue: string, scheduledAt: number, id: string) => string;
288
+ readonly operationInflight: (id: string) => string;
289
+ readonly operationQueued: (id: string) => string;
290
+ readonly operationResolved: (id: string) => string;
291
+ readonly bulkOperationAuditPrefix: () => string;
292
+ readonly bulkOperationAudit: (timestamp: number, requestId: string, confirmationToken: string) => string;
293
+ readonly operationResolvedByTimePrefix: () => string;
294
+ readonly operationResolvedByTime: (resolvedAt: number, id: string) => string;
295
+ readonly asyncActivity: (workflowId: string, token: string) => string;
296
+ readonly activityReconciliationPrefix: (workflowId: string) => string;
297
+ readonly activityReconciliation: (workflowId: string, activityName: string, idempotencyKeyDigest: string) => string;
298
+ readonly eventPrefix: (workflowId: string) => string;
299
+ readonly event: (workflowId: string, sequence: number) => string;
300
+ readonly eventHead: (workflowId: string) => string;
301
+ readonly eventWatermark: (workflowId: string) => string;
302
+ readonly signal: (workflowId: string, name: string, id: string) => string;
303
+ readonly signalSequence: (workflowId: string) => string;
304
+ readonly signalAcceptedResponsePrefix: (workflowId: string) => string;
305
+ readonly signalAcceptedResponse: (workflowId: string, name: string, signalId: string) => string;
306
+ readonly deadline: (deadline: number, workflowId: string) => string;
307
+ readonly terminalCleanup: (fireAt: number, timerId: string) => string;
308
+ readonly delayedStart: (startAt: number, workflowId: string) => string;
309
+ readonly terminalWorkflowPrefix: () => string;
310
+ readonly terminalWorkflow: (updatedAt: number, workflowId: string) => string;
311
+ readonly attribute: (workflowId: string) => string;
312
+ readonly attributeIndex: (attributeName: string, encodedValue: string, workflowId: string) => string;
313
+ readonly tagIndex: (tag: string, workflowId: string) => string;
314
+ readonly updatePrefix: (workflowId: string) => string;
315
+ readonly update: (workflowId: string, updateId: string) => string;
316
+ readonly updateResponse: (updateId: string) => string;
317
+ readonly updateIdempotency: (workflowId: string, key: string) => string;
318
+ readonly budget: (namespace: string, period: string, date: string) => string;
319
+ readonly review: (workflowId: string, reviewId: string) => string;
320
+ readonly workflowHeaders: (workflowId: string) => string;
321
+ readonly terminalCleanupNeeded: (workflowId: string) => string;
322
+ readonly offload: (workflowId: string, key: string) => string;
323
+ readonly archive: (workflowId: string, key: string) => string;
324
+ readonly stateExecution: (ownerWorkflowId: string, key: string) => string;
325
+ readonly stateWorkflow: (workflowType: string, key: string) => string;
326
+ readonly streamChunkPrefix: (workflowId: string, key: string) => string;
327
+ readonly streamChunk: (workflowId: string, key: string, chunkIndex: number) => string;
328
+ readonly streamMetadata: (workflowId: string, key: string) => string;
329
+ readonly budgetCharged: (operationId: string) => string;
330
+ readonly toolEffect: (workflowId: string, agentId: string, semanticHash: string) => string;
331
+ readonly workflowVisibilityStatus: (status: string, workflowId: string) => string;
332
+ readonly workflowVisibilityType: (type: string, workflowId: string) => string;
333
+ readonly workflowVisibilityCreated: (createdAt: number, workflowId: string) => string;
334
+ readonly workflowVisibilityUpdated: (updatedAt: number, workflowId: string) => string;
335
+ readonly workflowVisibilityDeadline: (deadline: number, workflowId: string) => string;
336
+ readonly workflowVisibilityManifest: (workflowId: string) => string;
337
+ readonly workflowVisibilityMetaVersion: () => string;
338
+ readonly workflowVisibilityMetaBuiltAt: () => string;
339
+ readonly workflowVisibilityMetaCursor: () => string;
340
+ };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var $=Object.defineProperty;var j=(E)=>E;function L(E,_){this[E]=j.bind(null,_)}var H=(E,_)=>{for(var F in _)$(E,F,{get:_[F],enumerable:!0,configurable:!0,set:L.bind(_,F)})};var G=(E,_)=>()=>(E&&(_=E(E=0)),_);function U(E,_,F){if(!E.capabilities()[_])throw Error(`Feature "${F}" requires storage capability "${_}", but this storage backend does not provide it.`)}function z(E){let _=E.capabilities(),F=[];if(_.persistence!=="local")F.push(`persistence must be "local" (got "${_.persistence}")`);if(_.readAfterWrite!=="linearizable")F.push(`readAfterWrite must be "linearizable" (got "${_.readAfterWrite}")`);if(_.scanConsistency!=="snapshot")F.push(`scanConsistency must be "snapshot" (got "${_.scanConsistency}")`);if(!_.atomicBatch)F.push("atomicBatch must be true");if(!_.conditionalBatch)F.push("conditionalBatch must be true");if(F.length>0)throw Error(`Storage is not durable enough for recovery: ${F.join("; ")}.`)}var B="default";async function J(E,_){return await E.get(_)!==null}async function*X(E,_,F){for await(let[Y]of E.scan(_,F))yield Y}async function M(E,_){let F=0;for await(let Y of X(E,_))F++;return F}async function O(E,_){let F=[];for await(let Y of X(E,_))F.push({type:"delete",key:Y});if(F.length===0)return 0;return await E.batch(F),F.length}async function A(E,_,F){let Y=[];for await(let Z of X(E,_,F))Y.push({type:"delete",key:Z});if(Y.length===0)return 0;return await E.batch(Y),Y.length}var Q;var V=G(()=>{Q=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","idx:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-deadline:","wf-delayed:","wf-headers:","wf-idx-","wf-terminal:"]});function K(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function S(E,_={}){if(_.gt!==void 0&&E<=_.gt)return!1;if(_.gte!==void 0&&E<_.gte)return!1;if(_.lt!==void 0&&E>=_.lt)return!1;if(_.lte!==void 0&&E>_.lte)return!1;return!0}function C(E,_){if(E===null||_===null)return E===_;if(E.byteLength!==_.byteLength)return!1;for(let F=0;F<E.byteLength;F++)if(E[F]!==_[F])return!1;return!0}async function c(E,_){if(E.has)return E.has(_);return J(E,_)}function I(E,_,F){if(E.keys)return E.keys(_,F);return X(E,_,F)}async function k(E,_){if(E.count)return E.count(_);return M(E,_)}async function y(E,_){if(E.deletePrefix)return E.deletePrefix(_);return O(E,_)}async function m(E,_,F){if(U(E,"conditionalBatch","storageConditionalBatch"),!E.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return E.conditionalBatch(_,F)}function W(E){return encodeURIComponent(E)}function f(E){return decodeURIComponent(E)}function l(E){try{return decodeURIComponent(E)}catch{return null}}var P=(E)=>String(E).padStart(16,"0"),g;var D=G(()=>{V();g={workflow:(E)=>`wf:${W(E)}`,checkpoint:(E)=>`wf:${W(E)}:ckpt`,checkpointHistory:(E,_)=>`wf:${W(E)}:ckpt:${String(_).padStart(10,"0")}`,timelinePrefix:(E)=>`wf:${W(E)}:timeline:`,timeline:(E,_)=>`wf:${W(E)}:timeline:${String(_).padStart(10,"0")}`,schedule:(E)=>`schedule:${W(E)}`,scheduleTick:(E,_)=>`schedule-due:${String(E).padStart(16,"0")}:${W(_)}`,scheduleRun:(E)=>`schedule-run:${W(E)}`,operation:(E,_,F)=>`op:${E}:${P(_)}:${F}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,F)=>`audit:bulk:${P(E)}:${W(_)}:${W(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${P(E)}:${W(_)}`,asyncActivity:(E,_)=>`async-act:v1:${W(E)}:${W(_)}`,activityReconciliationPrefix:(E)=>`actrec:v1:${W(E)}:`,activityReconciliation:(E,_,F)=>`actrec:v1:${W(E)}:${W(_)}:${F}`,eventPrefix:(E)=>`ev:${W(E)}:`,event:(E,_)=>`ev:${W(E)}:${String(_).padStart(10,"0")}`,eventHead:(E)=>`ev:${W(E)}:head`,eventWatermark:(E)=>`ev:${W(E)}:watermark`,signal:(E,_,F)=>`sig:${W(E)}:${_}:${W(F)}`,signalSequence:(E)=>`sigseq:v1:${W(E)}`,signalAcceptedResponsePrefix:(E)=>`sigres:v1:${W(E)}:`,signalAcceptedResponse:(E,_,F)=>`sigres:v1:${W(E)}:${W(_)}:${W(F)}`,deadline:(E,_)=>`wf-deadline:${P(E)}:${W(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${P(E)}:${W(_)}`,delayedStart:(E,_)=>`wf-delayed:${P(E)}:${W(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${P(E)}:${W(_)}`,attribute:(E)=>`attr:${W(E)}`,attributeIndex:(E,_,F)=>`idx:${E}:${_}:${W(F)}`,tagIndex:(E,_)=>`tag:${W(E)}:${W(_)}`,updatePrefix:(E)=>`upd:${W(E)}:`,update:(E,_)=>`upd:${W(E)}:${_}`,updateResponse:(E)=>`upr:${E}`,updateIdempotency:(E,_)=>`upk:${W(E)}:${_}`,budget:(E,_,F)=>`budget:${E}:${_}:${F}`,review:(E,_)=>`review:${W(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${W(E)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${W(E)}`,offload:(E,_)=>`offload:${W(E)}:${_}`,archive:(E,_)=>`archive:${W(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${W(E)}:${W(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${B}:${W(E)}:${W(_)}`,streamChunkPrefix:(E,_)=>`blob:${W(E)}:${_}:chunk:`,streamChunk:(E,_,F)=>`blob:${W(E)}:${_}:chunk:${String(F).padStart(10,"0")}`,streamMetadata:(E,_)=>`blob:${W(E)}:${_}:meta`,budgetCharged:(E)=>`budget-charged:${E}`,toolEffect:(E,_,F)=>`tool-effect:${W(E)}:${_}:${F}`,workflowVisibilityStatus:(E,_)=>`wf-idx-status:${W(E)}:${W(_)}`,workflowVisibilityType:(E,_)=>`wf-idx-type:${W(E)}:${W(_)}`,workflowVisibilityCreated:(E,_)=>`wf-idx-created:${P(E)}:${W(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${P(E)}:${W(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${P(E)}:${W(_)}`,workflowVisibilityManifest:(E)=>`wf-idx-manifest:${W(E)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});D();export{l as tryDecodeStorageKeyComponent,C as storageValuesEqual,I as storageKeys,c as storageHas,y as storageDeletePrefix,k as storageCount,m as storageConditionalBatch,K as resolvePrefixRangeEnd,U as requireStorageCapability,S as matchesScanOptions,W as encodeStorageKeyComponent,f as decodeStorageKeyComponent,z as assertDurableStorageForRecovery,Q as WEFT_RESERVED_KEY_PREFIXES,g as KEYS,B as DEFAULT_SCOPE};
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Prefixes reserved for Weft-owned runtime data in a shared storage backend.
3
+ *
4
+ * Application state should live under an application namespace instead, for
5
+ * example `scopedStorage(base, 'app:my-service')` or keys beginning with
6
+ * `app:my-service:`. Treat this list as a stable keyspace contract: Weft may
7
+ * add new reserved prefixes, but application code should not write under the
8
+ * prefixes listed here.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * import { WEFT_RESERVED_KEY_PREFIXES } from '@lostgradient/weft/storage';
13
+ *
14
+ * const key = 'wf:order-123';
15
+ * const isWeftKey = WEFT_RESERVED_KEY_PREFIXES.some((prefix) => key.startsWith(prefix));
16
+ * console.log(isWeftKey); // true
17
+ * ```
18
+ */
19
+ export declare const WEFT_RESERVED_KEY_PREFIXES: readonly ["actrec:", "archive:", "async-act:", "attr:", "audit:bulk:", "blob:", "budget:", "budget-charged:", "ev:", "idx:", "offload:", "op:", "review:", "schedule:", "schedule-due:", "schedule-run:", "sig:", "sigres:", "sigseq:", "state:", "tag:", "tool-effect:", "upd:", "upk:", "upr:", "wf:", "wf-cleanup:", "wf-cleanup-needed:", "wf-deadline:", "wf-delayed:", "wf-headers:", "wf-idx-", "wf-terminal:"];
@@ -0,0 +1,35 @@
1
+ export const WEFT_RESERVED_KEY_PREFIXES = [
2
+ "actrec:",
3
+ "archive:",
4
+ "async-act:",
5
+ "attr:",
6
+ "audit:bulk:",
7
+ "blob:",
8
+ "budget:",
9
+ "budget-charged:",
10
+ "ev:",
11
+ "idx:",
12
+ "offload:",
13
+ "op:",
14
+ "review:",
15
+ "schedule:",
16
+ "schedule-due:",
17
+ "schedule-run:",
18
+ "sig:",
19
+ "sigres:",
20
+ "sigseq:",
21
+ "state:",
22
+ "tag:",
23
+ "tool-effect:",
24
+ "upd:",
25
+ "upk:",
26
+ "upr:",
27
+ "wf:",
28
+ "wf-cleanup:",
29
+ "wf-cleanup-needed:",
30
+ "wf-deadline:",
31
+ "wf-delayed:",
32
+ "wf-headers:",
33
+ "wf-idx-",
34
+ "wf-terminal:"
35
+ ];
@@ -0,0 +1,40 @@
1
+ import { type DeleteRangeOptions } from './delete-range';
2
+ import { type BatchOperation, type ConditionalBatchCondition, type ScanOptions, type Storage, type StorageCapabilities } from './interface';
3
+ /**
4
+ * LMDB-backed storage adapter. Reads hit lmdb-js's synchronous memory-mapped
5
+ * path internally, but the Storage interface presents them as Promises and
6
+ * copies the bytes into a fresh Uint8Array on each call. Writes use lmdb-js's
7
+ * async batching: individual `put`/`remove` calls return promises that resolve
8
+ * once the next batched transaction commits to disk. The adapter resets
9
+ * lmdb-js's cached read transaction after every write so subsequent reads
10
+ * observe just-written data.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { LMDBStorage } from '@lostgradient/weft/storage/lmdb';
15
+ * import { workflow, Engine } from '@lostgradient/weft';
16
+ *
17
+ * await using storage = new LMDBStorage('./weft-data');
18
+ * await using engine = new Engine({ storage });
19
+ * engine.register(workflow({ name: 'ping' }).execute(async function* () { return 'pong'; }));
20
+ * ```
21
+ */
22
+ export declare class LMDBStorage implements Storage {
23
+ #private;
24
+ constructor(path: string);
25
+ capabilities(): StorageCapabilities;
26
+ get(key: string): Promise<Uint8Array | null>;
27
+ put(key: string, value: Uint8Array): Promise<void>;
28
+ delete(key: string): Promise<void>;
29
+ has(key: string): Promise<boolean>;
30
+ deletePrefix(prefix: string): Promise<number>;
31
+ deleteRange(prefix: string, options: DeleteRangeOptions): Promise<number>;
32
+ scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
33
+ keys(prefix: string, options?: ScanOptions): AsyncIterable<string>;
34
+ count(prefix: string): Promise<number>;
35
+ scoped(prefix: string): Storage;
36
+ batch(operations: BatchOperation[]): Promise<void>;
37
+ conditionalBatch(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
38
+ close(): Promise<void>;
39
+ [Symbol.dispose](): void;
40
+ }
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var y=Object.defineProperty;var g=(E)=>E;function f(E,_){this[E]=g.bind(null,_)}var l=(E,_)=>{for(var W in _)y(E,W,{get:_[W],enumerable:!0,configurable:!0,set:f.bind(_,W)})};var j=(E,_)=>()=>(E&&(_=E(E=0)),_);function B(E,_,W){if(!E.capabilities()[_])throw Error(`Feature "${W}" requires storage capability "${_}", but this storage backend does not provide it.`)}function d(E){let _=E.capabilities(),W=[];if(_.persistence!=="local")W.push(`persistence must be "local" (got "${_.persistence}")`);if(_.readAfterWrite!=="linearizable")W.push(`readAfterWrite must be "linearizable" (got "${_.readAfterWrite}")`);if(_.scanConsistency!=="snapshot")W.push(`scanConsistency must be "snapshot" (got "${_.scanConsistency}")`);if(!_.atomicBatch)W.push("atomicBatch must be true");if(!_.conditionalBatch)W.push("conditionalBatch must be true");if(W.length>0)throw Error(`Storage is not durable enough for recovery: ${W.join("; ")}.`)}var L="default";async function A(E,_){return await E.get(_)!==null}async function*Q(E,_,W){for await(let[Y]of E.scan(_,W))yield Y}async function z(E,_){let W=0;for await(let Y of Q(E,_))W++;return W}async function P(E,_){let W=[];for await(let Y of Q(E,_))W.push({type:"delete",key:Y});if(W.length===0)return 0;return await E.batch(W),W.length}async function O(E,_,W){let Y=[];for await(let X of Q(E,_,W))Y.push({type:"delete",key:X});if(Y.length===0)return 0;return await E.batch(Y),Y.length}var p;var h=j(()=>{p=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","idx:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-deadline:","wf-delayed:","wf-headers:","wf-idx-","wf-terminal:"]});function V(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function N(E,_={}){if(_.gt!==void 0&&E<=_.gt)return!1;if(_.gte!==void 0&&E<_.gte)return!1;if(_.lt!==void 0&&E>=_.lt)return!1;if(_.lte!==void 0&&E>_.lte)return!1;return!0}function v(E,_){if(E===null||_===null)return E===_;if(E.byteLength!==_.byteLength)return!1;for(let W=0;W<E.byteLength;W++)if(E[W]!==_[W])return!1;return!0}async function C(E,_){if(E.has)return E.has(_);return A(E,_)}function K(E,_,W){if(E.keys)return E.keys(_,W);return Q(E,_,W)}async function b(E,_){if(E.count)return E.count(_);return z(E,_)}async function S(E,_){if(E.deletePrefix)return E.deletePrefix(_);return P(E,_)}async function u(E,_,W){if(B(E,"conditionalBatch","storageConditionalBatch"),!E.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return E.conditionalBatch(_,W)}function F(E){return encodeURIComponent(E)}function YE(E){return decodeURIComponent(E)}function XE(E){try{return decodeURIComponent(E)}catch{return null}}var J=(E)=>String(E).padStart(16,"0"),JE;var q=j(()=>{h();JE={workflow:(E)=>`wf:${F(E)}`,checkpoint:(E)=>`wf:${F(E)}:ckpt`,checkpointHistory:(E,_)=>`wf:${F(E)}:ckpt:${String(_).padStart(10,"0")}`,timelinePrefix:(E)=>`wf:${F(E)}:timeline:`,timeline:(E,_)=>`wf:${F(E)}:timeline:${String(_).padStart(10,"0")}`,schedule:(E)=>`schedule:${F(E)}`,scheduleTick:(E,_)=>`schedule-due:${String(E).padStart(16,"0")}:${F(_)}`,scheduleRun:(E)=>`schedule-run:${F(E)}`,operation:(E,_,W)=>`op:${E}:${J(_)}:${W}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,W)=>`audit:bulk:${J(E)}:${F(_)}:${F(W)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${J(E)}:${F(_)}`,asyncActivity:(E,_)=>`async-act:v1:${F(E)}:${F(_)}`,activityReconciliationPrefix:(E)=>`actrec:v1:${F(E)}:`,activityReconciliation:(E,_,W)=>`actrec:v1:${F(E)}:${F(_)}:${W}`,eventPrefix:(E)=>`ev:${F(E)}:`,event:(E,_)=>`ev:${F(E)}:${String(_).padStart(10,"0")}`,eventHead:(E)=>`ev:${F(E)}:head`,eventWatermark:(E)=>`ev:${F(E)}:watermark`,signal:(E,_,W)=>`sig:${F(E)}:${_}:${F(W)}`,signalSequence:(E)=>`sigseq:v1:${F(E)}`,signalAcceptedResponsePrefix:(E)=>`sigres:v1:${F(E)}:`,signalAcceptedResponse:(E,_,W)=>`sigres:v1:${F(E)}:${F(_)}:${F(W)}`,deadline:(E,_)=>`wf-deadline:${J(E)}:${F(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${J(E)}:${F(_)}`,delayedStart:(E,_)=>`wf-delayed:${J(E)}:${F(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${J(E)}:${F(_)}`,attribute:(E)=>`attr:${F(E)}`,attributeIndex:(E,_,W)=>`idx:${E}:${_}:${F(W)}`,tagIndex:(E,_)=>`tag:${F(E)}:${F(_)}`,updatePrefix:(E)=>`upd:${F(E)}:`,update:(E,_)=>`upd:${F(E)}:${_}`,updateResponse:(E)=>`upr:${E}`,updateIdempotency:(E,_)=>`upk:${F(E)}:${_}`,budget:(E,_,W)=>`budget:${E}:${_}:${W}`,review:(E,_)=>`review:${F(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${F(E)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${F(E)}`,offload:(E,_)=>`offload:${F(E)}:${_}`,archive:(E,_)=>`archive:${F(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${F(E)}:${F(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${L}:${F(E)}:${F(_)}`,streamChunkPrefix:(E,_)=>`blob:${F(E)}:${_}:chunk:`,streamChunk:(E,_,W)=>`blob:${F(E)}:${_}:chunk:${String(W).padStart(10,"0")}`,streamMetadata:(E,_)=>`blob:${F(E)}:${_}:meta`,budgetCharged:(E)=>`budget-charged:${E}`,toolEffect:(E,_,W)=>`tool-effect:${F(E)}:${_}:${W}`,workflowVisibilityStatus:(E,_)=>`wf-idx-status:${F(E)}:${F(_)}`,workflowVisibilityType:(E,_)=>`wf-idx-type:${F(E)}:${F(_)}`,workflowVisibilityCreated:(E,_)=>`wf-idx-created:${J(E)}:${F(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${J(E)}:${F(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${J(E)}:${F(_)}`,workflowVisibilityManifest:(E)=>`wf-idx-manifest:${F(E)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function s(E){if(E===void 0)return;if(typeof E!=="number"||!Number.isInteger(E)||E<0)throw Error("deleteRange limit must be a finite non-negative integer");return E===0?0:E}function H(E){let _={},W=!1;for(let X of["gt","gte","lt","lte"]){let U=E[X];if(U===void 0)continue;if(typeof U!=="string")throw Error("deleteRange bounds must be strings");_[X]=U,W=!0}if(!W)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=s(E.limit);if(Y!==void 0)_.limit=Y;return _}async function I(E,_,W){let Y=H(W);if(E.deleteRange)return E.deleteRange(_,Y);return O(E,_,Y)}var D=()=>{};function R(E){return E.replaceAll(/:+$/g,"")}function a(E,_){let W=R(E),Y=R(_);if(W.length===0)return Y;if(Y.length===0)return W;return`${W}:${Y}`}function x(E,_){return new T(E,_)}var T;var c=j(()=>{D();q();T=class T{#E;#F;constructor(E,_){this.#E=E,this.#F=R(_)}#_(E){if(this.#F.length===0)return E;return E.length===0?`${this.#F}:`:`${this.#F}:${E}`}#W(E){if(this.#F.length===0)return E;return E.slice(this.#F.length+1)}#Y(E={}){let _={};if(E.limit!==void 0)_.limit=E.limit;if(E.reverse!==void 0)_.reverse=E.reverse;if(E.gt!==void 0)_.gt=this.#_(E.gt);if(E.gte!==void 0)_.gte=this.#_(E.gte);if(E.lt!==void 0)_.lt=this.#_(E.lt);if(E.lte!==void 0)_.lte=this.#_(E.lte);return _}#X(E){let _={};if(E.limit!==void 0)_.limit=E.limit;if(E.gt!==void 0)_.gt=this.#_(E.gt);if(E.gte!==void 0)_.gte=this.#_(E.gte);if(E.lt!==void 0)_.lt=this.#_(E.lt);if(E.lte!==void 0)_.lte=this.#_(E.lte);return _}capabilities(){return this.#E.capabilities()}scoped(E){return new T(this.#E,a(this.#F,E))}async get(E){return this.#E.get(this.#_(E))}async put(E,_){await this.#E.put(this.#_(E),_)}async delete(E){await this.#E.delete(this.#_(E))}async*scan(E,_){for await(let[W,Y]of this.#E.scan(this.#_(E),this.#Y(_)))yield[this.#W(W),Y]}async batch(E){await this.#E.batch(E.map((_)=>{if(_.type==="put")return{type:"put",key:this.#_(_.key),value:_.value};return{type:"delete",key:this.#_(_.key)}}))}async conditionalBatch(E,_){return u(this.#E,E.map((W)=>({key:this.#_(W.key),expectedValue:W.expectedValue})),_.map((W)=>{if(W.type==="put")return{type:"put",key:this.#_(W.key),value:W.value};return{type:"delete",key:this.#_(W.key)}}))}async has(E){return C(this.#E,this.#_(E))}async deletePrefix(E){return S(this.#E,this.#_(E))}async deleteRange(E,_){let W=this.#X(H(_));return I(this.#E,this.#_(E),W)}async*keys(E,_){for await(let W of K(this.#E,this.#_(E),this.#Y(_)))yield this.#W(W)}async count(E){return b(this.#E,this.#_(E))}[Symbol.dispose](){this.#E[Symbol.dispose]()}}});var i={};l(i,{LMDBStorage:()=>k});import*as w from"lmdb";var k;var r=j(()=>{D();q();c();k=class k{#E;#F=!1;#_=null;constructor(E){this.#E=w.open({path:E,encoding:"binary"})}#W(){if(this.#F)throw Error("LMDBStorage is closed")}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!1}}async get(E){this.#W();let _=this.#E.get(E);if(_===void 0)return null;return new Uint8Array(_)}async put(E,_){this.#W(),await this.#E.put(E,Buffer.from(_))}async delete(E){this.#W(),await this.#E.remove(E)}async has(E){return this.#W(),this.#E.doesExist(E)}async deletePrefix(E){this.#W();let _=[];for await(let W of this.keys(E))_.push(W);if(_.length===0)return 0;return await this.#E.batch(()=>{for(let W of _)this.#E.remove(W)}),_.length}async deleteRange(E,_){this.#W();let W=H(_),Y=[];for await(let X of this.keys(E,W))Y.push(X);if(Y.length===0)return 0;return await this.#E.batch(()=>{for(let X of Y)this.#E.remove(X)}),Y.length}async*scan(E,_={}){this.#W();let{limit:W,reverse:Y}=_,X=V(E),U=Y?this.#E.getRange({start:X,end:E,reverse:!0}):this.#E.getRange({start:E,end:X}),$=0,G=!1;for(let{key:Z,value:m}of U){if(!Z.startsWith(E)){if(Y&&!G)continue;break}if(G=!0,!N(Z,_))continue;if(W!==void 0&&$>=W)break;yield[Z,new Uint8Array(m)],$++}}async*keys(E,_={}){this.#W();let{limit:W,reverse:Y}=_,X=V(E),U=Y?this.#E.getKeys({start:X,end:E,reverse:!0}):this.#E.getKeys({start:E,end:X}),$=0,G=!1;for(let Z of U){if(!Z.startsWith(E)){if(Y&&!G)continue;break}if(G=!0,!N(Z,_))continue;if(W!==void 0&&$>=W)break;yield Z,$++}}async count(E){this.#W();let _=V(E);return this.#E.getKeysCount({start:E,end:_})}scoped(E){return this.#W(),x(this,E)}async batch(E){if(this.#W(),E.length===0)return;await this.#E.batch(()=>{for(let _ of E)if(_.type==="put")this.#E.put(_.key,Buffer.from(_.value));else this.#E.remove(_.key)})}async conditionalBatch(E,_){return this.#W(),this.#E.transactionSync(()=>{for(let Y of E){let X=this.#E.get(Y.key),U=X===void 0?null:new Uint8Array(X);if(!v(U,Y.expectedValue))return!1}for(let Y of _)if(Y.type==="put")this.#E.putSync(Y.key,Buffer.from(Y.value));else this.#E.removeSync(Y.key);return!0})}close(){return this.#F=!0,this.#_??=(async()=>{await Promise.resolve(),await this.#E.close()})(),this.#_}[Symbol.dispose](){this.close()}}});r();export{k as LMDBStorage};
@@ -0,0 +1,46 @@
1
+ import { type DeleteRangeOptions } from './delete-range';
2
+ import { type BatchOperation, type ConditionalBatchCondition, type ScanOptions, type Storage, type StorageCapabilities } from './interface';
3
+ /**
4
+ * In-memory {@link Storage} implementation.
5
+ *
6
+ * Backs the engine with a `Map<string, Uint8Array>` — fast, dependency-free,
7
+ * and ideal for tests, ephemeral runs, and CI. State is lost when the process
8
+ * exits, so don't use it for anything you care about between restarts.
9
+ *
10
+ * @example Run an engine with in-memory storage
11
+ * ```ts
12
+ * import { workflow, Engine, MemoryStorage } from '@lostgradient/weft';
13
+ *
14
+ * await using storage = new MemoryStorage();
15
+ * await using engine = new Engine({ storage });
16
+ * engine.register(
17
+ * workflow({ name: 'noop' }).execute(async function* () {
18
+ * return 'done';
19
+ * }),
20
+ * );
21
+ *
22
+ * const handle = await engine.start('noop', null);
23
+ * const result = await handle.result();
24
+ * ```
25
+ */
26
+ export declare class MemoryStorage implements Storage {
27
+ #private;
28
+ constructor();
29
+ capabilities(): StorageCapabilities;
30
+ get(key: string): Promise<Uint8Array | null>;
31
+ put(key: string, value: Uint8Array): Promise<void>;
32
+ delete(key: string): Promise<void>;
33
+ scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
34
+ batch(operations: BatchOperation[]): Promise<void>;
35
+ conditionalBatch(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
36
+ has(key: string): Promise<boolean>;
37
+ deletePrefix(prefix: string): Promise<number>;
38
+ deleteRange(prefix: string, options: DeleteRangeOptions): Promise<number>;
39
+ keys(prefix: string, options?: ScanOptions): AsyncIterable<string>;
40
+ count(prefix: string): Promise<number>;
41
+ scoped(prefix: string): Storage;
42
+ get size(): number;
43
+ clear(): void;
44
+ snapshot(): Map<string, Uint8Array>;
45
+ [Symbol.dispose](): void;
46
+ }
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var c=Object.defineProperty;var k=(_)=>_;function y(_,E){this[_]=k.bind(null,E)}var g=(_,E)=>{for(var W in E)c(_,W,{get:E[W],enumerable:!0,configurable:!0,set:y.bind(E,W)})};var j=(_,E)=>()=>(_&&(E=_(_=0)),E);function L(_,E,W){if(!_.capabilities()[E])throw Error(`Feature "${W}" requires storage capability "${E}", but this storage backend does not provide it.`)}function f(_){let E=_.capabilities(),W=[];if(E.persistence!=="local")W.push(`persistence must be "local" (got "${E.persistence}")`);if(E.readAfterWrite!=="linearizable")W.push(`readAfterWrite must be "linearizable" (got "${E.readAfterWrite}")`);if(E.scanConsistency!=="snapshot")W.push(`scanConsistency must be "snapshot" (got "${E.scanConsistency}")`);if(!E.atomicBatch)W.push("atomicBatch must be true");if(!E.conditionalBatch)W.push("conditionalBatch must be true");if(W.length>0)throw Error(`Storage is not durable enough for recovery: ${W.join("; ")}.`)}var B="default";async function A(_,E){return await _.get(E)!==null}async function*Q(_,E,W){for await(let[Y]of _.scan(E,W))yield Y}async function z(_,E){let W=0;for await(let Y of Q(_,E))W++;return W}async function O(_,E){let W=[];for await(let Y of Q(_,E))W.push({type:"delete",key:Y});if(W.length===0)return 0;return await _.batch(W),W.length}async function P(_,E,W){let Y=[];for await(let J of Q(_,E,W))Y.push({type:"delete",key:J});if(Y.length===0)return 0;return await _.batch(Y),Y.length}var l;var h=j(()=>{l=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","idx:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-deadline:","wf-delayed:","wf-headers:","wf-idx-","wf-terminal:"]});function G(_){return _.length>0?_.slice(0,-1)+String.fromCharCode(_.charCodeAt(_.length-1)+1):"\xFF"}function H(_,E={}){if(E.gt!==void 0&&_<=E.gt)return!1;if(E.gte!==void 0&&_<E.gte)return!1;if(E.lt!==void 0&&_>=E.lt)return!1;if(E.lte!==void 0&&_>E.lte)return!1;return!0}function v(_,E){if(_===null||E===null)return _===E;if(_.byteLength!==E.byteLength)return!1;for(let W=0;W<_.byteLength;W++)if(_[W]!==E[W])return!1;return!0}async function b(_,E){if(_.has)return _.has(E);return A(_,E)}function C(_,E,W){if(_.keys)return _.keys(E,W);return Q(_,E,W)}async function K(_,E){if(_.count)return _.count(E);return z(_,E)}async function u(_,E){if(_.deletePrefix)return _.deletePrefix(E);return O(_,E)}async function S(_,E,W){if(L(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(E,W)}function F(_){return encodeURIComponent(_)}function W_(_){return decodeURIComponent(_)}function F_(_){try{return decodeURIComponent(_)}catch{return null}}var U=(_)=>String(_).padStart(16,"0"),Y_;var N=j(()=>{h();Y_={workflow:(_)=>`wf:${F(_)}`,checkpoint:(_)=>`wf:${F(_)}:ckpt`,checkpointHistory:(_,E)=>`wf:${F(_)}:ckpt:${String(E).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${F(_)}:timeline:`,timeline:(_,E)=>`wf:${F(_)}:timeline:${String(E).padStart(10,"0")}`,schedule:(_)=>`schedule:${F(_)}`,scheduleTick:(_,E)=>`schedule-due:${String(_).padStart(16,"0")}:${F(E)}`,scheduleRun:(_)=>`schedule-run:${F(_)}`,operation:(_,E,W)=>`op:${_}:${U(E)}:${W}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,E,W)=>`audit:bulk:${U(_)}:${F(E)}:${F(W)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,E)=>`op:resolved-by-time:${U(_)}:${F(E)}`,asyncActivity:(_,E)=>`async-act:v1:${F(_)}:${F(E)}`,activityReconciliationPrefix:(_)=>`actrec:v1:${F(_)}:`,activityReconciliation:(_,E,W)=>`actrec:v1:${F(_)}:${F(E)}:${W}`,eventPrefix:(_)=>`ev:${F(_)}:`,event:(_,E)=>`ev:${F(_)}:${String(E).padStart(10,"0")}`,eventHead:(_)=>`ev:${F(_)}:head`,eventWatermark:(_)=>`ev:${F(_)}:watermark`,signal:(_,E,W)=>`sig:${F(_)}:${E}:${F(W)}`,signalSequence:(_)=>`sigseq:v1:${F(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${F(_)}:`,signalAcceptedResponse:(_,E,W)=>`sigres:v1:${F(_)}:${F(E)}:${F(W)}`,deadline:(_,E)=>`wf-deadline:${U(_)}:${F(E)}`,terminalCleanup:(_,E)=>`wf-cleanup:${U(_)}:${F(E)}`,delayedStart:(_,E)=>`wf-delayed:${U(_)}:${F(E)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,E)=>`wf-terminal:${U(_)}:${F(E)}`,attribute:(_)=>`attr:${F(_)}`,attributeIndex:(_,E,W)=>`idx:${_}:${E}:${F(W)}`,tagIndex:(_,E)=>`tag:${F(_)}:${F(E)}`,updatePrefix:(_)=>`upd:${F(_)}:`,update:(_,E)=>`upd:${F(_)}:${E}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,E)=>`upk:${F(_)}:${E}`,budget:(_,E,W)=>`budget:${_}:${E}:${W}`,review:(_,E)=>`review:${F(_)}:${E}`,workflowHeaders:(_)=>`wf-headers:${F(_)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${F(_)}`,offload:(_,E)=>`offload:${F(_)}:${E}`,archive:(_,E)=>`archive:${F(_)}:${E}`,stateExecution:(_,E)=>`state:execution:${F(_)}:${F(E)}`,stateWorkflow:(_,E)=>`state:workflow-scope:${B}:${F(_)}:${F(E)}`,streamChunkPrefix:(_,E)=>`blob:${F(_)}:${E}:chunk:`,streamChunk:(_,E,W)=>`blob:${F(_)}:${E}:chunk:${String(W).padStart(10,"0")}`,streamMetadata:(_,E)=>`blob:${F(_)}:${E}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,E,W)=>`tool-effect:${F(_)}:${E}:${W}`,workflowVisibilityStatus:(_,E)=>`wf-idx-status:${F(_)}:${F(E)}`,workflowVisibilityType:(_,E)=>`wf-idx-type:${F(_)}:${F(E)}`,workflowVisibilityCreated:(_,E)=>`wf-idx-created:${U(_)}:${F(E)}`,workflowVisibilityUpdated:(_,E)=>`wf-idx-updated:${U(_)}:${F(E)}`,workflowVisibilityDeadline:(_,E)=>`wf-idx-deadline:${U(_)}:${F(E)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${F(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function d(_){if(_===void 0)return;if(typeof _!=="number"||!Number.isInteger(_)||_<0)throw Error("deleteRange limit must be a finite non-negative integer");return _===0?0:_}function V(_){let E={},W=!1;for(let J of["gt","gte","lt","lte"]){let X=_[J];if(X===void 0)continue;if(typeof X!=="string")throw Error("deleteRange bounds must be strings");E[J]=X,W=!0}if(!W)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=d(_.limit);if(Y!==void 0)E.limit=Y;return E}async function I(_,E,W){let Y=V(W);if(_.deleteRange)return _.deleteRange(E,Y);return P(_,E,Y)}var q=()=>{};function D(_){return _.replaceAll(/:+$/g,"")}function s(_,E){let W=D(_),Y=D(E);if(W.length===0)return Y;if(Y.length===0)return W;return`${W}:${Y}`}function x(_,E){return new R(_,E)}var R;var w=j(()=>{q();N();R=class R{#_;#W;constructor(_,E){this.#_=_,this.#W=D(E)}#E(_){if(this.#W.length===0)return _;return _.length===0?`${this.#W}:`:`${this.#W}:${_}`}#F(_){if(this.#W.length===0)return _;return _.slice(this.#W.length+1)}#Y(_={}){let E={};if(_.limit!==void 0)E.limit=_.limit;if(_.reverse!==void 0)E.reverse=_.reverse;if(_.gt!==void 0)E.gt=this.#E(_.gt);if(_.gte!==void 0)E.gte=this.#E(_.gte);if(_.lt!==void 0)E.lt=this.#E(_.lt);if(_.lte!==void 0)E.lte=this.#E(_.lte);return E}#X(_){let E={};if(_.limit!==void 0)E.limit=_.limit;if(_.gt!==void 0)E.gt=this.#E(_.gt);if(_.gte!==void 0)E.gte=this.#E(_.gte);if(_.lt!==void 0)E.lt=this.#E(_.lt);if(_.lte!==void 0)E.lte=this.#E(_.lte);return E}capabilities(){return this.#_.capabilities()}scoped(_){return new R(this.#_,s(this.#W,_))}async get(_){return this.#_.get(this.#E(_))}async put(_,E){await this.#_.put(this.#E(_),E)}async delete(_){await this.#_.delete(this.#E(_))}async*scan(_,E){for await(let[W,Y]of this.#_.scan(this.#E(_),this.#Y(E)))yield[this.#F(W),Y]}async batch(_){await this.#_.batch(_.map((E)=>{if(E.type==="put")return{type:"put",key:this.#E(E.key),value:E.value};return{type:"delete",key:this.#E(E.key)}}))}async conditionalBatch(_,E){return S(this.#_,_.map((W)=>({key:this.#E(W.key),expectedValue:W.expectedValue})),E.map((W)=>{if(W.type==="put")return{type:"put",key:this.#E(W.key),value:W.value};return{type:"delete",key:this.#E(W.key)}}))}async has(_){return b(this.#_,this.#E(_))}async deletePrefix(_){return u(this.#_,this.#E(_))}async deleteRange(_,E){let W=this.#X(V(E));return I(this.#_,this.#E(_),W)}async*keys(_,E){for await(let W of C(this.#_,this.#E(_),this.#Y(E)))yield this.#F(W)}async count(_){return K(this.#_,this.#E(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}});var p={};g(p,{MemoryStorage:()=>m});var m;var a=j(()=>{q();N();w();m=class m{#_;constructor(){this.#_=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#W(_,E,W){return _>=E&&_<W}#E(_,E){let W=[];for(let Y of this.#_.keys())if(this.#W(Y,_,E))W.push(Y);return W.toSorted()}async get(_){return this.#_.get(_)??null}async put(_,E){this.#_.set(_,E)}async delete(_){this.#_.delete(_)}async*scan(_,E={}){let{limit:W,reverse:Y}=E,J=G(_),X=this.#E(_,J);if(X=X.filter(($)=>H($,E)),Y)X.reverse();let Z=0;for(let $ of X){if(W!==void 0&&Z>=W)break;let T=this.#_.get($);if(T!==void 0)yield[$,T],Z++}}async batch(_){this.#F(_)}#F(_){for(let E of _)if(E.type==="put")this.#_.set(E.key,E.value);else this.#_.delete(E.key)}async conditionalBatch(_,E){for(let W of _){let Y=this.#_.get(W.key)??null;if(!v(Y,W.expectedValue))return!1}return this.#F(E),!0}async has(_){return this.#_.has(_)}async deletePrefix(_){let E=G(_),W=this.#E(_,E);for(let Y of W)this.#_.delete(Y);return W.length}async deleteRange(_,E){let W=V(E),Y=G(_),J=this.#E(_,Y).filter((Z)=>H(Z,W)),X=W.limit===void 0?J:J.slice(0,W.limit);for(let Z of X)this.#_.delete(Z);return X.length}async*keys(_,E={}){let{limit:W,reverse:Y}=E,J=G(_),X=this.#E(_,J);if(X=X.filter(($)=>H($,E)),Y)X.reverse();let Z=0;for(let $ of X){if(W!==void 0&&Z>=W)break;yield $,Z++}}async count(_){let E=G(_);return this.#E(_,E).length}scoped(_){return x(this,_)}get size(){return this.#_.size}clear(){this.#_.clear()}snapshot(){let _=new Map;for(let[E,W]of this.#_)_.set(E,new Uint8Array(W));return _}[Symbol.dispose](){this.#_.clear()}}});a();export{m as MemoryStorage};
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Node-compatible SQLite storage adapter using `better-sqlite3`.
3
+ *
4
+ * Implements the same `Storage` interface and SQL schema as `BunSQLiteStorage`
5
+ * but uses `better-sqlite3` instead of `bun:sqlite`, enabling the same
6
+ * storage layer to run on Node.js 22+.
7
+ *
8
+ * `better-sqlite3` is a peer dependency — it must be installed separately by
9
+ * consumers who import `@lostgradient/weft/storage/sqlite/node`.
10
+ *
11
+ * @module storage/node-sqlite
12
+ */
13
+ import type { BatchOperation, ConditionalBatchCondition, ScanOptions, Storage, StorageCapabilities } from './interface.ts';
14
+ /**
15
+ * Minimal subset of the `better-sqlite3` API surface that this adapter uses.
16
+ * Defined here so the module compiles without the package installed — the
17
+ * actual dependency is resolved lazily at construction time.
18
+ */
19
+ type BetterSqliteStatement = {
20
+ run(...parameters: unknown[]): unknown;
21
+ get(...parameters: unknown[]): Record<string, unknown> | undefined;
22
+ all(...parameters: unknown[]): Record<string, unknown>[];
23
+ };
24
+ type BetterSqliteTransaction = (...args: unknown[]) => unknown;
25
+ type BetterSqliteDatabase = {
26
+ pragma(source: string): unknown;
27
+ exec(source: string): void;
28
+ prepare(source: string): BetterSqliteStatement;
29
+ transaction(fn: (...args: unknown[]) => unknown): BetterSqliteTransaction;
30
+ close(): void;
31
+ };
32
+ type BetterSqliteConstructor = new (path: string) => BetterSqliteDatabase;
33
+ /**
34
+ * Runtime-neutral alias for the Node SQLite adapter. Consumers that import
35
+ * from `@lostgradient/weft/storage/sqlite` get this class under Node.
36
+ */
37
+ export { NodeSQLiteStorage as SQLiteStorage };
38
+ /**
39
+ * SQLite-backed {@link Storage} using `better-sqlite3` for Node.js 22+
40
+ * environments.
41
+ *
42
+ * Implements the same WAL-mode schema as {@link BunSQLiteStorage}
43
+ * but resolves the `better-sqlite3` peer dependency lazily at construction time,
44
+ * so the module compiles without it installed. Import from
45
+ * `@lostgradient/weft/storage/sqlite/node` to use this adapter.
46
+ *
47
+ * Unlike BunSQLiteStorage, this adapter currently implements only the required
48
+ * Storage methods (`get`, `put`, `delete`, `scan`, `batch`, and
49
+ * `conditionalBatch`). The optional `has`, `keys`, `count`, `deletePrefix`, and
50
+ * `scoped` helpers fall back to the generic implementations in
51
+ * `@lostgradient/weft/storage/interface`; `deleteRange` falls back to `storageDeleteRange`
52
+ * (exported from `@lostgradient/weft` / `@lostgradient/weft/storage`). There is no SQL passthrough
53
+ * `query()` method.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * import { NodeSQLiteStorage } from '@lostgradient/weft/storage/sqlite/node';
58
+ * import { workflow, Engine } from '@lostgradient/weft';
59
+ *
60
+ * // Requires: bun add better-sqlite3
61
+ * await using storage = new NodeSQLiteStorage('./weft.db');
62
+ * await using engine = new Engine({ storage });
63
+ *
64
+ * engine.register(workflow({ name: 'ping' }).execute(async function* () { return 'pong'; }));
65
+ * const handle = await engine.start('ping', null);
66
+ * console.log(await handle.result()); // 'pong'
67
+ * ```
68
+ */
69
+ export declare class NodeSQLiteStorage implements Storage {
70
+ #private;
71
+ /**
72
+ * Number of distinct prepared-statement cache entries for scan().
73
+ * Exposed for regression tests that assert the cache stays bounded.
74
+ */
75
+ get scanStatementCacheSize(): number;
76
+ capabilities(): StorageCapabilities;
77
+ constructor(path?: string, databaseConstructor?: BetterSqliteConstructor);
78
+ get(key: string): Promise<Uint8Array | null>;
79
+ put(key: string, value: Uint8Array): Promise<void>;
80
+ delete(key: string): Promise<void>;
81
+ scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
82
+ batch(operations: BatchOperation[]): Promise<void>;
83
+ conditionalBatch(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
84
+ [Symbol.dispose](): void;
85
+ }