@lostgradient/weft 0.8.0 → 0.9.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 (103) hide show
  1. package/README.md +7 -3
  2. package/dist/cli/generated/operation-client.generated.d.ts +1 -0
  3. package/dist/cli-main.js +78 -78
  4. package/dist/core/context/durable-operations.js +1 -1
  5. package/dist/core/context/index.d.ts +1 -0
  6. package/dist/core/context/index.js +2 -0
  7. package/dist/core/context/operation-request.d.ts +2 -0
  8. package/dist/core/context/run-operation.js +3 -2
  9. package/dist/core/context/speculative-child.js +1 -0
  10. package/dist/core/context/types.d.ts +1 -0
  11. package/dist/core/engine/activity-heartbeat-tracking.d.ts +1 -1
  12. package/dist/core/engine/activity-heartbeat-tracking.js +5 -1
  13. package/dist/core/engine/anonymous-signal-sequence.js +0 -2
  14. package/dist/core/engine/bulk-operations.js +10 -29
  15. package/dist/core/engine/callback-creators-bundles.js +1 -1
  16. package/dist/core/engine/disposal.js +1 -0
  17. package/dist/core/engine/engine-internal-types.d.ts +1 -0
  18. package/dist/core/engine/index.js +13 -9
  19. package/dist/core/engine/inline-launch-queue.js +1 -1
  20. package/dist/core/engine/internals.d.ts +23 -1
  21. package/dist/core/engine/lifecycle/fork-helpers.js +1 -0
  22. package/dist/core/engine/lifecycle/resume.js +6 -0
  23. package/dist/core/engine/lifecycle/start-exec.d.ts +2 -2
  24. package/dist/core/engine/lifecycle/start-exec.js +6 -4
  25. package/dist/core/engine/lifecycle/start.js +1 -0
  26. package/dist/core/engine/lifecycle/transition.js +6 -0
  27. package/dist/core/engine/memo-durable-activity.js +1 -1
  28. package/dist/core/engine/operations-activity.d.ts +1 -1
  29. package/dist/core/engine/operations-activity.js +7 -5
  30. package/dist/core/engine/operations-time.d.ts +2 -2
  31. package/dist/core/engine/operations-time.js +40 -6
  32. package/dist/core/engine/schedules.js +3 -0
  33. package/dist/core/engine/termination/cleanup.js +15 -13
  34. package/dist/core/engine/termination/finalizer-activity.d.ts +1 -1
  35. package/dist/core/engine/termination/finalizer-activity.js +5 -1
  36. package/dist/core/engine/termination/finalizer.js +1 -1
  37. package/dist/core/engine/validation/schedule-options.d.ts +9 -0
  38. package/dist/core/engine/validation/schedule-options.js +59 -0
  39. package/dist/core/engine/validation/schedule.d.ts +3 -8
  40. package/dist/core/engine/validation/schedule.js +40 -56
  41. package/dist/core/engine/validation.js +1 -0
  42. package/dist/core/execution-strategy.d.ts +1 -0
  43. package/dist/core/inline-execution-strategy.context-options.d.ts +1 -0
  44. package/dist/core/inline-execution-strategy.context-options.js +3 -0
  45. package/dist/core/types/activity.d.ts +11 -0
  46. package/dist/core/types/checkpoint.d.ts +1 -0
  47. package/dist/core/types/schedules.d.ts +10 -0
  48. package/dist/core/types/state.d.ts +6 -0
  49. package/dist/core/types/workflow-context.d.ts +13 -0
  50. package/dist/core/worker-execution-strategy.d.ts +1 -0
  51. package/dist/core/worker-inbound-message.d.ts +1 -0
  52. package/dist/core/worker-inbound-message.js +3 -0
  53. package/dist/json-schema.js +2 -2
  54. package/dist/mcp/cli.js +32 -32
  55. package/dist/observability/index.js +2 -2
  56. package/dist/runtime/portable.d.ts +1 -1
  57. package/dist/server/handler.js +27 -27
  58. package/dist/server/index.d.ts +2 -0
  59. package/dist/server/index.js +30 -30
  60. package/dist/server/operations/create-schedule.d.ts +2 -0
  61. package/dist/server/operations/create-schedule.js +13 -2
  62. package/dist/server/rest-binding.d.ts +1 -1
  63. package/dist/server/runtime/task-dispatch.js +6 -0
  64. package/dist/server/runtime/task-polling.js +9 -1
  65. package/dist/server/runtime/task-reconciliation.js +2 -1
  66. package/dist/server/task-queue-types.d.ts +2 -0
  67. package/dist/server/task-state.d.ts +4 -0
  68. package/dist/service-worker/index.d.ts +15 -14
  69. package/dist/service-worker/index.js +28 -28
  70. package/dist/service-worker/scheduler.d.ts +41 -1
  71. package/dist/storage/auto.d.ts +36 -18
  72. package/dist/storage/auto.js +1 -1
  73. package/dist/storage/compressed-storage.js +1 -1
  74. package/dist/storage/indexeddb.d.ts +6 -1
  75. package/dist/storage/indexeddb.js +1 -1
  76. package/dist/storage/interface.js +1 -1
  77. package/dist/storage/lmdb.js +1 -1
  78. package/dist/storage/memory.js +1 -1
  79. package/dist/storage/neon.js +1 -1
  80. package/dist/storage/resolve.js +1 -1
  81. package/dist/storage/scoped-storage.js +1 -1
  82. package/dist/storage/testing.js +1 -1
  83. package/dist/storage/turso.js +1 -1
  84. package/dist/storage/typed-storage.js +1 -1
  85. package/dist/storage/web-extension.d.ts +1 -1
  86. package/dist/storage/web-extension.js +1 -1
  87. package/dist/testing/index.js +33 -33
  88. package/dist/version.d.ts +1 -1
  89. package/dist/version.js +1 -1
  90. package/dist/worker/execute-with-interceptors.d.ts +9 -3
  91. package/dist/worker/execute-with-interceptors.js +14 -2
  92. package/dist/worker/long-poll.d.ts +2 -1
  93. package/dist/worker/long-poll.js +1 -1
  94. package/dist/worker/protocol-messages.d.ts +2 -0
  95. package/dist/worker/protocol-schemas.d.ts +8 -0
  96. package/dist/worker/protocol-schemas.js +1 -0
  97. package/dist/worker/protocol.js +1 -1
  98. package/dist/worker/remote-activity-context.d.ts +2 -0
  99. package/dist/workers/activity-runner.d.ts +2 -0
  100. package/dist/workers/activity-runner.js +9 -1
  101. package/dist/workers/workflow-runner.d.ts +2 -1
  102. package/dist/workers/workflow-runner.js +1 -0
  103. package/package.json +1 -1
@@ -9,6 +9,26 @@
9
9
  */
10
10
  import type { TimerEntry } from '../core/types';
11
11
  import type { Storage } from '../storage/interface';
12
+ /**
13
+ * Constructor options for {@link ServiceWorkerScheduler}.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { ServiceWorkerScheduler, type ServiceWorkerSchedulerOptions } from '@lostgradient/weft/service-worker';
18
+ * import { MemoryStorage } from '@lostgradient/weft';
19
+ *
20
+ * const storage = new MemoryStorage();
21
+ *
22
+ * const options: ServiceWorkerSchedulerOptions = {
23
+ * storage,
24
+ * onTimerFired: (entry) => {
25
+ * console.log(`Timer ${entry.id} fired.`);
26
+ * },
27
+ * };
28
+ * const scheduler = new ServiceWorkerScheduler(options);
29
+ * void scheduler;
30
+ * ```
31
+ */
12
32
  export interface ServiceWorkerSchedulerOptions {
13
33
  storage: Storage;
14
34
  onTimerFired: (entry: TimerEntry) => void | Promise<void>;
@@ -17,7 +37,27 @@ export interface ServiceWorkerSchedulerOptions {
17
37
  fallbackIntervalMilliseconds?: number;
18
38
  getNow?: () => number;
19
39
  }
20
- /** Scheduler for browser Service Worker environments, backed by durable storage. */
40
+ /**
41
+ * Scheduler for browser Service Worker environments, backed by durable storage.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { ServiceWorkerScheduler, createPeriodicSyncHandler } from '@lostgradient/weft/service-worker';
46
+ * import { MemoryStorage } from '@lostgradient/weft';
47
+ *
48
+ * const storage = new MemoryStorage();
49
+ *
50
+ * const scheduler = new ServiceWorkerScheduler({
51
+ * storage,
52
+ * onTimerFired: (entry) => {
53
+ * console.log(`Timer ${entry.id} fired.`);
54
+ * },
55
+ * });
56
+ *
57
+ * const handlePeriodicSync = createPeriodicSyncHandler(scheduler);
58
+ * void handlePeriodicSync;
59
+ * ```
60
+ */
21
61
  export declare class ServiceWorkerScheduler implements Disposable {
22
62
  #private;
23
63
  constructor(options: ServiceWorkerSchedulerOptions);
@@ -1,24 +1,21 @@
1
1
  /**
2
- * Runtime-detected default storage backend for **Bun and Node** processes.
2
+ * Runtime-detected default storage backend.
3
3
  *
4
- * Imported via `@lostgradient/weft/storage/auto`. Resolves a persistent storage
5
- * adapter appropriate for the current runtime:
4
+ * Imported via `@lostgradient/weft/storage/auto`. Resolves a persistent
5
+ * storage adapter appropriate for the current runtime:
6
6
  *
7
- * 1. Bun `BunSQLiteStorage`
8
- * 2. Node `NodeSQLiteStorage`
9
- * 3. otherwise throw
7
+ * 1. Bun -> `BunSQLiteStorage`
8
+ * 2. Node -> `NodeSQLiteStorage`
9
+ * 3. WebExtension -> `WebExtensionStorage`
10
+ * 4. Browser / Service Worker -> `IndexedDBStorage`
11
+ * 5. otherwise -> throw
10
12
  *
11
- * Path policy:
13
+ * SQLite path policy:
12
14
  * - `process.env.WEFT_DEFAULT_STORAGE_PATH` if set
13
15
  * - else `${tmpdir()}/weft-default/<cwd-hash>.db`
14
16
  *
15
- * The parent directory is created (recursive) before the path is returned.
16
- *
17
- * **Not for browsers.** This module statically imports `node:fs`,
18
- * `node:os`, `node:path`, and `node:crypto`, so bundling it into a
19
- * browser target will fail. Browser/Service Worker contexts should use
20
- * `IndexedDBStorage` directly (or `setupServiceWorker()` from
21
- * `@lostgradient/weft/service-worker`, which constructs IndexedDB internally).
17
+ * The parent directory is created (recursive) before the SQLite path is
18
+ * returned. Browser and extension adapters use their own defaults.
22
19
  *
23
20
  * `resolveDefaultStorage()` is for developer convenience. Production
24
21
  * deployments should pick an explicit adapter and pass it to
@@ -27,10 +24,30 @@
27
24
  * @module @lostgradient/weft/storage/auto
28
25
  */
29
26
  import type { Storage as WeftStorage } from './interface.ts';
27
+ type RuntimeGlobalsLike = {
28
+ Bun?: unknown;
29
+ browser?: {
30
+ storage?: unknown;
31
+ };
32
+ chrome?: {
33
+ storage?: unknown;
34
+ };
35
+ indexedDB?: unknown;
36
+ IDBKeyRange?: unknown;
37
+ process?: {
38
+ cwd?: () => string;
39
+ env?: Record<string, string | undefined>;
40
+ versions?: {
41
+ node?: unknown;
42
+ };
43
+ };
44
+ };
30
45
  /**
31
- * Resolve a runtime-appropriate persistent storage adapter for Bun or
32
- * Node. Throws in browser/Service Worker contexts (and any environment
33
- * that exposes neither `Bun` nor a Node-shaped `process`).
46
+ * Resolve a runtime-appropriate persistent storage adapter.
47
+ *
48
+ * Bun and Node resolve to SQLite. WebExtension contexts resolve to
49
+ * `WebExtensionStorage`; browser and Service Worker contexts with IndexedDB
50
+ * resolve to `IndexedDBStorage`.
34
51
  *
35
52
  * @example
36
53
  * ```ts
@@ -42,4 +59,5 @@ import type { Storage as WeftStorage } from './interface.ts';
42
59
  * void engine;
43
60
  * ```
44
61
  */
45
- export declare function resolveDefaultStorage(): Promise<WeftStorage>;
62
+ export declare function resolveDefaultStorage(runtimeGlobals?: RuntimeGlobalsLike): Promise<WeftStorage>;
63
+ export {};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- var k=Object.defineProperty;var q=(z)=>z;function A(z,C){this[z]=q.bind(null,C)}var D=(z,C)=>{for(var F in C)k(z,F,{get:C[F],enumerable:!0,configurable:!0,set:A.bind(C,F)})};var G=(z,C)=>()=>(z&&(C=z(z=0)),C);var N=(z,C,F)=>{if(C!=null){if(typeof C!=="object"&&typeof C!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let J;if(F)J=C[Symbol.asyncDispose];if(J===void 0)J=C[Symbol.dispose];if(typeof J!=="function")throw TypeError("Object not disposable");z.push([F,J,C])}else if(F)z.push([F]);return C},O=(z,C,F)=>{let J=(K)=>C=F?new SuppressedError(K,C,"An error was suppressed during disposal"):(F=!0,K),V=(K)=>{while(K=z.pop())try{var j=K[1]&&K[1].call(K[2]);if(K[0])return Promise.resolve(j).then(V,(X)=>(J(X),V()))}catch(X){J(X)}if(F)throw C};return V()};import{createHash as H}from"crypto";import{mkdirSync as I}from"fs";import{tmpdir as P}from"os";import{dirname as x,join as y}from"path";function R(){return{hasBun:typeof globalThis.Bun<"u",hasNode:typeof process<"u"&&typeof process.versions?.node==="string"}}function U(){let z=typeof process<"u"?process.cwd():"weft-default";return H("sha256").update(z).digest("hex").slice(0,16)}function Y(){let z=typeof process<"u"?process.env.WEFT_DEFAULT_STORAGE_PATH:void 0,C=z!==void 0&&z.length>0?z:y(P(),"weft-default",`${U()}.db`);return I(x(C),{recursive:!0}),C}function Z(z){if(z==="Bun")return typeof globalThis.Bun;return typeof process}function W(z,C){return import.meta.url.endsWith(".ts")?z:C}async function $(z){return await import(z)}var B=W("./bun-sql.ts","./bun-sql.js"),Q=W("./node-sqlite.ts","./node-sqlite.js");async function v(){let z=R();if(z.hasBun){let{BunSQLiteStorage:C}=await $(B);return new C(Y())}if(z.hasNode){let{NodeSQLiteStorage:C}=await $(Q);return new C(Y())}throw Error(`resolveDefaultStorage: requires Bun or Node. Detected: typeof Bun=${Z("Bun")}, typeof process=${Z("process")}. In browser/Service Worker contexts, use \`IndexedDBStorage\` directly or \`setupServiceWorker()\` from \`@lostgradient/weft/service-worker\`.`)}export{v as resolveDefaultStorage};
2
+ var F=Object.defineProperty;var P=(z)=>z;function k(z,C){this[z]=P.bind(null,C)}var T=(z,C)=>{for(var J in C)F(z,J,{get:C[J],enumerable:!0,configurable:!0,set:k.bind(C,J)})};var h=(z,C)=>()=>(z&&(C=z(z=0)),C);var Z=import.meta.require,O=(z,C,J)=>{if(C!=null){if(typeof C!=="object"&&typeof C!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let K;if(J)K=C[Symbol.asyncDispose];if(K===void 0)K=C[Symbol.dispose];if(typeof K!=="function")throw TypeError("Object not disposable");z.push([J,K,C])}else if(J)z.push([J]);return C},y=(z,C,J)=>{let K=(V)=>C=J?new SuppressedError(V,C,"An error was suppressed during disposal"):(J=!0,V),Y=(V)=>{while(V=z.pop())try{var A=V[1]&&V[1].call(V[2]);if(V[0])return Promise.resolve(A).then(Y,(q)=>(K(q),Y()))}catch(q){K(q)}if(J)throw C};return Y()};function Q(z){return{hasBun:typeof z.Bun<"u",hasIndexedDB:typeof z.indexedDB<"u",hasNode:z.process!==void 0&&typeof z.process.versions?.node==="string",hasWebExtensionStorage:z.browser?.storage!==void 0||z.chrome?.storage!==void 0}}async function U(z){let{createHash:C}=await import("crypto"),J=z.process?.cwd?.()??"weft-default";return C("sha256").update(J).digest("hex").slice(0,16)}async function X(z){let[{mkdirSync:C},{tmpdir:J},K]=await Promise.all([import("fs"),import("os"),import("path")]),Y=z.process?.env?.WEFT_DEFAULT_STORAGE_PATH,V=Y!==void 0&&Y.length>0?Y:K.join(J(),"weft-default",`${await U(z)}.db`);return C(K.dirname(V),{recursive:!0}),V}function H(z,C){if(C==="Bun")return typeof z.Bun;if(C==="browser.storage")return typeof(z.browser?.storage??z.chrome?.storage);return typeof z.process}function j(z,C){return import.meta.url.endsWith(".ts")?z:C}async function $(z){return await import(z)}function W(z){if(z.browser?.storage!==void 0)return z.browser;if(z.chrome?.storage!==void 0)return z.chrome;return{}}function B(z){let{indexedDB:C,IDBKeyRange:J}=z;if(C===void 0||J===void 0)throw Error("resolveDefaultStorage: IndexedDB resolution requires both indexedDB and IDBKeyRange.");return{indexedDB:C,IDBKeyRange:J}}function N(z){let C=typeof z.indexedDB,J=typeof z.IDBKeyRange;return`typeof indexedDB=${C}, typeof IDBKeyRange=${J}`}var w=j("./bun-sql.ts","./bun-sql.js"),I=j("./node-sqlite.ts","./node-sqlite.js"),L=j("./indexeddb.ts","./indexeddb.js"),R=j("./web-extension.ts","./web-extension.js");async function v(z=globalThis){let C=Q(z);if(C.hasBun){let{BunSQLiteStorage:J}=await $(w);return new J(await X(z))}if(C.hasNode){let{NodeSQLiteStorage:J}=await $(I);return new J(await X(z))}if(C.hasWebExtensionStorage){let{WebExtensionStorage:J}=await $(R);return new J({},W(z))}if(C.hasIndexedDB){let{IndexedDBStorage:J}=await $(L);return new J("weft",B(z))}throw Error(`resolveDefaultStorage: requires Bun, Node, WebExtension storage, or IndexedDB. Detected: typeof Bun=${H(z,"Bun")}, typeof process=${H(z,"process")}, typeof browser.storage=${H(z,"browser.storage")}, ${N(z)}.`)}export{v as resolveDefaultStorage};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- var n=Object.defineProperty;var l=(W)=>W;function s(W,F){this[W]=l.bind(null,F)}var UW=(W,F)=>{for(var X in F)n(W,X,{get:F[X],enumerable:!0,configurable:!0,set:s.bind(F,X)})};var P=(W,F)=>()=>(W&&(F=W(W=0)),F);var VW=(W,F,X)=>{if(F!=null){if(typeof F!=="object"&&typeof F!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let Y;if(X)Y=F[Symbol.asyncDispose];if(Y===void 0)Y=F[Symbol.dispose];if(typeof Y!=="function")throw TypeError("Object not disposable");W.push([X,Y,F])}else if(X)W.push([X]);return F},PW=(W,F,X)=>{let Y=($)=>F=X?new SuppressedError($,F,"An error was suppressed during disposal"):(X=!0,$),U=($)=>{while($=W.pop())try{var j=$[1]&&$[1].call($[2]);if($[0])return Promise.resolve(j).then(U,(D)=>(Y(D),U()))}catch(D){Y(D)}if(X)throw F};return U()};function S(W,F,X){if(!W.capabilities()[F])throw Error(`Feature "${X}" requires storage capability "${F}", but this storage backend does not provide it.`)}function d(W){let F=W.capabilities(),X=[];if(F.persistence!=="local"&&F.persistence!=="remote")X.push(`persistence must be "local" or "remote" (got "${F.persistence}")`);if(F.readAfterWrite!=="linearizable")X.push(`readAfterWrite must be "linearizable" (got "${F.readAfterWrite}")`);if(F.scanConsistency!=="snapshot")X.push(`scanConsistency must be "snapshot" (got "${F.scanConsistency}")`);if(!F.atomicBatch)X.push("atomicBatch must be true");if(!F.conditionalBatch)X.push("conditionalBatch must be true");if(X.length>0)throw Error(`Storage is not durable enough for recovery: ${X.join("; ")}.`)}var Z="default";async function B(W,F){return await W.get(F)!==null}async function*z(W,F,X){for await(let[Y]of W.scan(F,X))yield Y}async function x(W,F){let X=0;for await(let Y of z(W,F))X++;return X}async function v(W,F){let X=[];for await(let Y of z(W,F))X.push({type:"delete",key:Y});if(X.length===0)return 0;return await W.batch(X),X.length}async function LW(W,F,X){let Y=[];for await(let U of z(W,F,X))Y.push({type:"delete",key:U});if(Y.length===0)return 0;return await W.batch(Y),Y.length}var a;var O=P(()=>{a=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function G(W,F){if(F>_)throw new h(W,F)}function NW(W){return W.length>0?W.slice(0,-1)+String.fromCharCode(W.charCodeAt(W.length-1)+1):"\xFF"}function HW(W,F={}){if(F.gt!==void 0&&W<=F.gt)return!1;if(F.gte!==void 0&&W<F.gte)return!1;if(F.lt!==void 0&&W>=F.lt)return!1;if(F.lte!==void 0&&W>F.lte)return!1;return!0}function EW(W,F){if(W===null||F===null)return W===F;if(W.byteLength!==F.byteLength)return!1;for(let X=0;X<W.byteLength;X++)if(W[X]!==F[X])return!1;return!0}async function BW(W,F){if(W.has)return W.has(F);return B(W,F)}function xW(W,F,X){if(W.keys)return W.keys(F,X);return z(W,F,X)}async function vW(W,F){if(W.count)return W.count(F);return x(W,F)}async function OW(W,F){if(W.deletePrefix)return W.deletePrefix(F);return v(W,F)}async function TW(W,F){G("batch operations",F.length),await W.batch(F)}async function hW(W,F,X){if(G("conditionalBatch conditions",F.length),G("conditionalBatch operations",X.length),S(W,"conditionalBatch","storageConditionalBatch"),!W.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return W.conditionalBatch(F,X)}function J(W){return encodeURIComponent(W)}function AW(W){return decodeURIComponent(W)}function RW(W){try{return decodeURIComponent(W)}catch{return null}}var _=1e4,MW=1e4,h,K=(W)=>String(W).padStart(16,"0"),i="0",t="1",T=(W,F,X,Y)=>`sig:${J(W)}:${J(F)}:${Y}:${J(X)}`,bW;var A=P(()=>{O();h=class h extends Error{code="StorageBatchOperationLimitExceededError";cap=_;count;target;constructor(W,F){super(`${W} count ${F} exceeds MAX_BATCH_OPERATIONS (${_}).`);this.name="StorageBatchOperationLimitExceededError",this.target=W,this.count=F}};bW={workflow:(W)=>`wf:${J(W)}`,checkpoint:(W)=>`wf:${J(W)}:ckpt`,checkpointHistory:(W,F)=>`wf:${J(W)}:ckpt:${String(F).padStart(10,"0")}`,timelinePrefix:(W)=>`wf:${J(W)}:timeline:`,timeline:(W,F)=>`wf:${J(W)}:timeline:${String(F).padStart(10,"0")}`,schedule:(W)=>`schedule:${J(W)}`,scheduleTick:(W,F)=>`schedule-due:${String(W).padStart(16,"0")}:${J(F)}`,scheduleRun:(W)=>`schedule-run:${J(W)}`,operation:(W,F,X)=>`op:${W}:${K(F)}:${X}`,operationInflight:(W)=>`op:inflight:${W}`,operationQueued:(W)=>`op:queued:${W}`,operationResolved:(W)=>`op:resolved:${W}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(W)=>`op:dead-letter:${W}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(W,F,X)=>`audit:bulk:${K(W)}:${J(F)}:${J(X)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(W,F)=>`op:resolved-by-time:${K(W)}:${J(F)}`,asyncActivity:(W,F)=>`async-act:v1:${J(W)}:${J(F)}`,activityReconciliationPrefix:(W)=>`actrec:v1:${J(W)}:`,activityReconciliation:(W,F,X)=>`actrec:v1:${J(W)}:${J(F)}:${X}`,eventPrefix:(W)=>`ev:${J(W)}:`,event:(W,F)=>`ev:${J(W)}:${String(F).padStart(10,"0")}`,eventHead:(W)=>`ev:${J(W)}:head`,eventWatermark:(W)=>`ev:${J(W)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(W)=>`fleet-event:${String(W).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(W)=>`fleet-event-by-workflow:${J(W)}:`,fleetEventByWorkflow:(W,F)=>`fleet-event-by-workflow:${J(W)}:${String(F).padStart(10,"0")}`,signal:(W,F,X)=>T(W,F,X,t),startSignal:(W,F,X)=>T(W,F,X,i),signalSequence:(W)=>`sigseq:v1:${J(W)}`,signalAcceptedResponsePrefix:(W)=>`sigres:v1:${J(W)}:`,signalAcceptedResponse:(W,F,X)=>`sigres:v1:${J(W)}:${J(F)}:${J(X)}`,deadline:(W,F)=>`wf-deadline:${K(W)}:${J(F)}`,terminalCleanup:(W,F)=>`wf-cleanup:${K(W)}:${J(F)}`,teardownTimer:(W,F)=>`wf-teardown:${K(W)}:${J(F)}`,delayedStart:(W,F)=>`wf-delayed:${K(W)}:${J(F)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(W,F)=>`wf-terminal:${K(W)}:${J(F)}`,attribute:(W)=>`attr:${J(W)}`,attributeIndex:(W,F,X)=>`idx:${W}:${F}:${J(X)}`,tagIndex:(W,F)=>`tag:${J(W)}:${J(F)}`,updatePrefix:(W)=>`upd:${J(W)}:`,update:(W,F)=>`upd:${J(W)}:${F}`,updateResponse:(W)=>`upr:${W}`,updateIdempotency:(W,F)=>`upk:${J(W)}:${F}`,startIdempotency:(W)=>`start-idem:${J(W)}`,startIdempotencySignalId:(W)=>`start-idem:${W}`,livenessPrefix:()=>"liveness:",liveness:(W)=>`liveness:${J(W)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(W,F,X)=>`budget:${W}:${F}:${X}`,review:(W,F)=>`review:${J(W)}:${F}`,workflowHeaders:(W)=>`wf-headers:${J(W)}`,childCancellationPrefix:(W)=>`child-cancel:${J(W)}:`,childCancellation:(W,F)=>`child-cancel:${J(W)}:${J(F)}`,terminalCleanupNeeded:(W)=>`wf-cleanup-needed:${J(W)}`,workflowConcurrency:(W,F)=>`wf-concurrency:${J(W)}:${J(F)}`,workflowConcurrencyHolder:(W)=>`wf-concurrency-holder:${J(W)}`,workflowHasServices:(W)=>`wf-has-services:${J(W)}`,finalizerState:(W)=>`wf-finalizer-state:${J(W)}`,teardownOwed:(W)=>`wf-teardown-needed:${J(W)}`,teardownDeadLetter:(W)=>`wf-teardown-deadletter:${J(W)}`,offload:(W,F)=>`offload:${J(W)}:${F}`,archive:(W,F)=>`archive:${J(W)}:${F}`,stateExecution:(W,F)=>`state:execution:${J(W)}:${J(F)}`,stateWorkflow:(W,F)=>`state:workflow-scope:${Z}:${J(W)}:${J(F)}`,streamChunkPrefix:(W,F)=>`blob:${J(W)}:${F}:chunk:`,streamChunk:(W,F,X)=>`blob:${J(W)}:${F}:chunk:${String(X).padStart(10,"0")}`,streamTail:(W,F)=>`blob:${J(W)}:${F}:tail`,streamMetadata:(W,F)=>`blob:${J(W)}:${F}:meta`,budgetCharged:(W)=>`budget-charged:${W}`,toolEffect:(W,F,X)=>`tool-effect:${J(W)}:${F}:${X}`,workflowVisibilityStatus:(W,F)=>`wf-idx-status:${J(W)}:${J(F)}`,workflowVisibilityType:(W,F)=>`wf-idx-type:${J(W)}:${J(F)}`,workflowVisibilityCreated:(W,F)=>`wf-idx-created:${K(W)}:${J(F)}`,workflowVisibilityUpdated:(W,F)=>`wf-idx-updated:${K(W)}:${J(F)}`,workflowVisibilityDeadline:(W,F)=>`wf-idx-deadline:${K(W)}:${J(F)}`,workflowVisibilityManifest:(W)=>`wf-idx-manifest:${J(W)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function L(){return typeof(V&&"bun"in V?V.bun:globalThis.Bun)<"u"}function r(){if(V&&"process"in V)return V.process;return globalThis.process}function uW(W){if(L())return Bun.sleep(W);return new Promise((F)=>setTimeout(F,W))}function R(W){let F=e;for(let X=0;X<W.length;X++)F^=BigInt(W[X]),F=F*o&WW;return F.toString(16).padStart(16,"0")}function fW(W){return R(W)}function IW(W){return R(FW.encode(W))}function M(W){let X=r()?.getBuiltinModule;if(typeof X!=="function")return;return X(W)}function kW(W){if(L())return Bun.file(W).size;let F=M("node:fs");if(!F)throw Error("fileSize() requires Bun or Node 22.5+ (process.getBuiltinModule). Not available in browser or edge runtimes.");try{return F.statSync(W).size}catch(X){if(typeof X==="object"&&X!==null&&"code"in X&&X.code==="ENOENT")return 0;throw X}}function b(){let W=M("node:zlib");if(!W)throw Error("gzip/gunzip require Bun or Node 22.5+ (process.getBuiltinModule). "+"Not available in browser or edge runtimes \u2014 use CompressionStream directly.");return W}function c(W){if(L())return new Uint8Array(Bun.gzipSync(new Uint8Array(W)));return new Uint8Array(b().gzipSync(W))}function y(W){if(L())return new Uint8Array(Bun.gunzipSync(new Uint8Array(W)));return new Uint8Array(b().gunzipSync(W))}function m(){return M("node:zlib")}var V,e=0xcbf29ce484222325n,o=0x00000100000001b3n,WW=0xffffffffffffffffn,FW;var g=P(()=>{FW=new TextEncoder});function u(){let W=m();if(!W)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return W}function XW(W){return new Uint8Array(u().brotliCompressSync(W))}function JW(W){return new Uint8Array(u().brotliDecompressSync(W))}function k(W){return YW(W)}function YW(W){switch(W){case"gzip":return{algorithm:"gzip",compress(F){return c(F)}};case"brotli":return{algorithm:"brotli",compress(F){return XW(F)}};case"none":return{algorithm:"none",compress(F){return F}}}}async function H(W,F,X){if(W.length<X||F.algorithm==="none"){let j=new Uint8Array(W.length+Q);return j[0]=C,j[1]=N,j.set(W,Q),j}let Y=await F.compress(W);if(Y.length+Q>=W.length+Q){let j=new Uint8Array(W.length+Q);return j[0]=C,j[1]=N,j.set(W,Q),j}let U=F.algorithm==="gzip"?f:I,$=new Uint8Array(Y.length+Q);return $[0]=C,$[1]=U,$.set(Y,Q),$}async function E(W){if(W.length<Q)throw Error("Compression payload missing 2-byte header.");if(W[0]!==C)throw Error("Compression payload missing magic byte 0xC1.");let F=W[1],X=W.slice(Q);switch(F){case N:return X;case f:return y(X);case I:return JW(X);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${F.toString(16).padStart(2,"0")}.`)}}function p(W){return{threshold:W?.threshold??$W,algorithm:W?.algorithm??jW}}var C=193,N=0,f=1,I=2,Q=2,$W=4096,jW="gzip";var w=P(()=>{g()});var KW;var QW=P(()=>{w();A();KW=class KW{#W;#F;#X;constructor(W,F){this.#W=W;let X=p(F);if(this.#F=k(X.algorithm),this.#X=X.threshold,W.query){let Y=W.query.bind(W);Object.defineProperty(this,"query",{value:Y,enumerable:!0,configurable:!0})}}capabilities(){let W=this.#W.capabilities();return{...W.persistence===void 0?{}:{persistence:W.persistence},readAfterWrite:W.readAfterWrite,scanConsistency:W.scanConsistency,atomicBatch:W.atomicBatch,conditionalBatch:!1,boundedRangeDelete:!1}}async get(W){let F=await this.#W.get(W);if(!F)return null;return E(F)}async put(W,F){let X=await H(F,this.#F,this.#X);return this.#W.put(W,X)}async delete(W){return this.#W.delete(W)}async*scan(W,F){for await(let[X,Y]of this.#W.scan(W,F))yield[X,await E(Y)]}async batch(W){G("batch operations",W.length);let F=await Promise.all(W.map(async(X)=>{if(X.type==="put")return{type:"put",key:X.key,value:await H(X.value,this.#F,this.#X)};return X}));return this.#W.batch(F)}[Symbol.dispose](){this.#W[Symbol.dispose]()}}});QW();export{KW as CompressedStorage};
2
+ var n=Object.defineProperty;var l=(W)=>W;function s(W,F){this[W]=l.bind(null,F)}var UW=(W,F)=>{for(var X in F)n(W,X,{get:F[X],enumerable:!0,configurable:!0,set:s.bind(F,X)})};var P=(W,F)=>()=>(W&&(F=W(W=0)),F);var VW=import.meta.require,PW=(W,F,X)=>{if(F!=null){if(typeof F!=="object"&&typeof F!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let Y;if(X)Y=F[Symbol.asyncDispose];if(Y===void 0)Y=F[Symbol.dispose];if(typeof Y!=="function")throw TypeError("Object not disposable");W.push([X,Y,F])}else if(X)W.push([X]);return F},qW=(W,F,X)=>{let Y=($)=>F=X?new SuppressedError($,F,"An error was suppressed during disposal"):(X=!0,$),U=($)=>{while($=W.pop())try{var j=$[1]&&$[1].call($[2]);if($[0])return Promise.resolve(j).then(U,(D)=>(Y(D),U()))}catch(D){Y(D)}if(X)throw F};return U()};function S(W,F,X){if(!W.capabilities()[F])throw Error(`Feature "${X}" requires storage capability "${F}", but this storage backend does not provide it.`)}function d(W){let F=W.capabilities(),X=[];if(F.persistence!=="local"&&F.persistence!=="remote")X.push(`persistence must be "local" or "remote" (got "${F.persistence}")`);if(F.readAfterWrite!=="linearizable")X.push(`readAfterWrite must be "linearizable" (got "${F.readAfterWrite}")`);if(F.scanConsistency!=="snapshot")X.push(`scanConsistency must be "snapshot" (got "${F.scanConsistency}")`);if(!F.atomicBatch)X.push("atomicBatch must be true");if(!F.conditionalBatch)X.push("conditionalBatch must be true");if(X.length>0)throw Error(`Storage is not durable enough for recovery: ${X.join("; ")}.`)}var Z="default";async function B(W,F){return await W.get(F)!==null}async function*z(W,F,X){for await(let[Y]of W.scan(F,X))yield Y}async function x(W,F){let X=0;for await(let Y of z(W,F))X++;return X}async function v(W,F){let X=[];for await(let Y of z(W,F))X.push({type:"delete",key:Y});if(X.length===0)return 0;return await W.batch(X),X.length}async function CW(W,F,X){let Y=[];for await(let U of z(W,F,X))Y.push({type:"delete",key:U});if(Y.length===0)return 0;return await W.batch(Y),Y.length}var a;var O=P(()=>{a=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function G(W,F){if(F>_)throw new h(W,F)}function HW(W){return W.length>0?W.slice(0,-1)+String.fromCharCode(W.charCodeAt(W.length-1)+1):"\xFF"}function EW(W,F={}){if(F.gt!==void 0&&W<=F.gt)return!1;if(F.gte!==void 0&&W<F.gte)return!1;if(F.lt!==void 0&&W>=F.lt)return!1;if(F.lte!==void 0&&W>F.lte)return!1;return!0}function BW(W,F){if(W===null||F===null)return W===F;if(W.byteLength!==F.byteLength)return!1;for(let X=0;X<W.byteLength;X++)if(W[X]!==F[X])return!1;return!0}async function xW(W,F){if(W.has)return W.has(F);return B(W,F)}function vW(W,F,X){if(W.keys)return W.keys(F,X);return z(W,F,X)}async function OW(W,F){if(W.count)return W.count(F);return x(W,F)}async function TW(W,F){if(W.deletePrefix)return W.deletePrefix(F);return v(W,F)}async function hW(W,F){G("batch operations",F.length),await W.batch(F)}async function AW(W,F,X){if(G("conditionalBatch conditions",F.length),G("conditionalBatch operations",X.length),S(W,"conditionalBatch","storageConditionalBatch"),!W.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return W.conditionalBatch(F,X)}function J(W){return encodeURIComponent(W)}function RW(W){return decodeURIComponent(W)}function bW(W){try{return decodeURIComponent(W)}catch{return null}}var _=1e4,NW=1e4,h,K=(W)=>String(W).padStart(16,"0"),i="0",t="1",T=(W,F,X,Y)=>`sig:${J(W)}:${J(F)}:${Y}:${J(X)}`,cW;var A=P(()=>{O();h=class h extends Error{code="StorageBatchOperationLimitExceededError";cap=_;count;target;constructor(W,F){super(`${W} count ${F} exceeds MAX_BATCH_OPERATIONS (${_}).`);this.name="StorageBatchOperationLimitExceededError",this.target=W,this.count=F}};cW={workflow:(W)=>`wf:${J(W)}`,checkpoint:(W)=>`wf:${J(W)}:ckpt`,checkpointHistory:(W,F)=>`wf:${J(W)}:ckpt:${String(F).padStart(10,"0")}`,timelinePrefix:(W)=>`wf:${J(W)}:timeline:`,timeline:(W,F)=>`wf:${J(W)}:timeline:${String(F).padStart(10,"0")}`,schedule:(W)=>`schedule:${J(W)}`,scheduleTick:(W,F)=>`schedule-due:${String(W).padStart(16,"0")}:${J(F)}`,scheduleRun:(W)=>`schedule-run:${J(W)}`,operation:(W,F,X)=>`op:${W}:${K(F)}:${X}`,operationInflight:(W)=>`op:inflight:${W}`,operationQueued:(W)=>`op:queued:${W}`,operationResolved:(W)=>`op:resolved:${W}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(W)=>`op:dead-letter:${W}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(W,F,X)=>`audit:bulk:${K(W)}:${J(F)}:${J(X)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(W,F)=>`op:resolved-by-time:${K(W)}:${J(F)}`,asyncActivity:(W,F)=>`async-act:v1:${J(W)}:${J(F)}`,activityReconciliationPrefix:(W)=>`actrec:v1:${J(W)}:`,activityReconciliation:(W,F,X)=>`actrec:v1:${J(W)}:${J(F)}:${X}`,eventPrefix:(W)=>`ev:${J(W)}:`,event:(W,F)=>`ev:${J(W)}:${String(F).padStart(10,"0")}`,eventHead:(W)=>`ev:${J(W)}:head`,eventWatermark:(W)=>`ev:${J(W)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(W)=>`fleet-event:${String(W).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(W)=>`fleet-event-by-workflow:${J(W)}:`,fleetEventByWorkflow:(W,F)=>`fleet-event-by-workflow:${J(W)}:${String(F).padStart(10,"0")}`,signal:(W,F,X)=>T(W,F,X,t),startSignal:(W,F,X)=>T(W,F,X,i),signalSequence:(W)=>`sigseq:v1:${J(W)}`,signalAcceptedResponsePrefix:(W)=>`sigres:v1:${J(W)}:`,signalAcceptedResponse:(W,F,X)=>`sigres:v1:${J(W)}:${J(F)}:${J(X)}`,deadline:(W,F)=>`wf-deadline:${K(W)}:${J(F)}`,terminalCleanup:(W,F)=>`wf-cleanup:${K(W)}:${J(F)}`,teardownTimer:(W,F)=>`wf-teardown:${K(W)}:${J(F)}`,delayedStart:(W,F)=>`wf-delayed:${K(W)}:${J(F)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(W,F)=>`wf-terminal:${K(W)}:${J(F)}`,attribute:(W)=>`attr:${J(W)}`,attributeIndex:(W,F,X)=>`idx:${W}:${F}:${J(X)}`,tagIndex:(W,F)=>`tag:${J(W)}:${J(F)}`,updatePrefix:(W)=>`upd:${J(W)}:`,update:(W,F)=>`upd:${J(W)}:${F}`,updateResponse:(W)=>`upr:${W}`,updateIdempotency:(W,F)=>`upk:${J(W)}:${F}`,startIdempotency:(W)=>`start-idem:${J(W)}`,startIdempotencySignalId:(W)=>`start-idem:${W}`,livenessPrefix:()=>"liveness:",liveness:(W)=>`liveness:${J(W)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(W,F,X)=>`budget:${W}:${F}:${X}`,review:(W,F)=>`review:${J(W)}:${F}`,workflowHeaders:(W)=>`wf-headers:${J(W)}`,childCancellationPrefix:(W)=>`child-cancel:${J(W)}:`,childCancellation:(W,F)=>`child-cancel:${J(W)}:${J(F)}`,terminalCleanupNeeded:(W)=>`wf-cleanup-needed:${J(W)}`,workflowConcurrency:(W,F)=>`wf-concurrency:${J(W)}:${J(F)}`,workflowConcurrencyHolder:(W)=>`wf-concurrency-holder:${J(W)}`,workflowHasServices:(W)=>`wf-has-services:${J(W)}`,finalizerState:(W)=>`wf-finalizer-state:${J(W)}`,teardownOwed:(W)=>`wf-teardown-needed:${J(W)}`,teardownDeadLetter:(W)=>`wf-teardown-deadletter:${J(W)}`,offload:(W,F)=>`offload:${J(W)}:${F}`,archive:(W,F)=>`archive:${J(W)}:${F}`,stateExecution:(W,F)=>`state:execution:${J(W)}:${J(F)}`,stateWorkflow:(W,F)=>`state:workflow-scope:${Z}:${J(W)}:${J(F)}`,streamChunkPrefix:(W,F)=>`blob:${J(W)}:${F}:chunk:`,streamChunk:(W,F,X)=>`blob:${J(W)}:${F}:chunk:${String(X).padStart(10,"0")}`,streamTail:(W,F)=>`blob:${J(W)}:${F}:tail`,streamMetadata:(W,F)=>`blob:${J(W)}:${F}:meta`,budgetCharged:(W)=>`budget-charged:${W}`,toolEffect:(W,F,X)=>`tool-effect:${J(W)}:${F}:${X}`,workflowVisibilityStatus:(W,F)=>`wf-idx-status:${J(W)}:${J(F)}`,workflowVisibilityType:(W,F)=>`wf-idx-type:${J(W)}:${J(F)}`,workflowVisibilityCreated:(W,F)=>`wf-idx-created:${K(W)}:${J(F)}`,workflowVisibilityUpdated:(W,F)=>`wf-idx-updated:${K(W)}:${J(F)}`,workflowVisibilityDeadline:(W,F)=>`wf-idx-deadline:${K(W)}:${J(F)}`,workflowVisibilityManifest:(W)=>`wf-idx-manifest:${J(W)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function L(){return typeof(V&&"bun"in V?V.bun:globalThis.Bun)<"u"}function r(){if(V&&"process"in V)return V.process;return globalThis.process}function fW(W){if(L())return Bun.sleep(W);return new Promise((F)=>setTimeout(F,W))}function R(W){let F=e;for(let X=0;X<W.length;X++)F^=BigInt(W[X]),F=F*o&WW;return F.toString(16).padStart(16,"0")}function IW(W){return R(W)}function kW(W){return R(FW.encode(W))}function M(W){let X=r()?.getBuiltinModule;if(typeof X!=="function")return;return X(W)}function pW(W){if(L())return Bun.file(W).size;let F=M("node:fs");if(!F)throw Error("fileSize() requires Bun or Node 22.5+ (process.getBuiltinModule). Not available in browser or edge runtimes.");try{return F.statSync(W).size}catch(X){if(typeof X==="object"&&X!==null&&"code"in X&&X.code==="ENOENT")return 0;throw X}}function b(){let W=M("node:zlib");if(!W)throw Error("gzip/gunzip require Bun or Node 22.5+ (process.getBuiltinModule). "+"Not available in browser or edge runtimes \u2014 use CompressionStream directly.");return W}function c(W){if(L())return new Uint8Array(Bun.gzipSync(new Uint8Array(W)));return new Uint8Array(b().gzipSync(W))}function y(W){if(L())return new Uint8Array(Bun.gunzipSync(new Uint8Array(W)));return new Uint8Array(b().gunzipSync(W))}function m(){return M("node:zlib")}var V,e=0xcbf29ce484222325n,o=0x00000100000001b3n,WW=0xffffffffffffffffn,FW;var g=P(()=>{FW=new TextEncoder});function u(){let W=m();if(!W)throw Error("Brotli compression requires Bun or Node 22.5+ with process.getBuiltinModule support. Use gzip compression for browser/edge runtimes.");return W}function XW(W){return new Uint8Array(u().brotliCompressSync(W))}function JW(W){return new Uint8Array(u().brotliDecompressSync(W))}function k(W){return YW(W)}function YW(W){switch(W){case"gzip":return{algorithm:"gzip",compress(F){return c(F)}};case"brotli":return{algorithm:"brotli",compress(F){return XW(F)}};case"none":return{algorithm:"none",compress(F){return F}}}}async function H(W,F,X){if(W.length<X||F.algorithm==="none"){let j=new Uint8Array(W.length+Q);return j[0]=C,j[1]=N,j.set(W,Q),j}let Y=await F.compress(W);if(Y.length+Q>=W.length+Q){let j=new Uint8Array(W.length+Q);return j[0]=C,j[1]=N,j.set(W,Q),j}let U=F.algorithm==="gzip"?f:I,$=new Uint8Array(Y.length+Q);return $[0]=C,$[1]=U,$.set(Y,Q),$}async function E(W){if(W.length<Q)throw Error("Compression payload missing 2-byte header.");if(W[0]!==C)throw Error("Compression payload missing magic byte 0xC1.");let F=W[1],X=W.slice(Q);switch(F){case N:return X;case f:return y(X);case I:return JW(X);default:throw Error(`Compression payload uses unsupported algorithm byte 0x${F.toString(16).padStart(2,"0")}.`)}}function p(W){return{threshold:W?.threshold??$W,algorithm:W?.algorithm??jW}}var C=193,N=0,f=1,I=2,Q=2,$W=4096,jW="gzip";var w=P(()=>{g()});var KW;var QW=P(()=>{w();A();KW=class KW{#W;#F;#X;constructor(W,F){this.#W=W;let X=p(F);if(this.#F=k(X.algorithm),this.#X=X.threshold,W.query){let Y=W.query.bind(W);Object.defineProperty(this,"query",{value:Y,enumerable:!0,configurable:!0})}}capabilities(){let W=this.#W.capabilities();return{...W.persistence===void 0?{}:{persistence:W.persistence},readAfterWrite:W.readAfterWrite,scanConsistency:W.scanConsistency,atomicBatch:W.atomicBatch,conditionalBatch:!1,boundedRangeDelete:!1}}async get(W){let F=await this.#W.get(W);if(!F)return null;return E(F)}async put(W,F){let X=await H(F,this.#F,this.#X);return this.#W.put(W,X)}async delete(W){return this.#W.delete(W)}async*scan(W,F){for await(let[X,Y]of this.#W.scan(W,F))yield[X,await E(Y)]}async batch(W){G("batch operations",W.length);let F=await Promise.all(W.map(async(X)=>{if(X.type==="put")return{type:"put",key:X.key,value:await H(X.value,this.#F,this.#X)};return X}));return this.#W.batch(F)}[Symbol.dispose](){this.#W[Symbol.dispose]()}}});QW();export{KW as CompressedStorage};
@@ -1,5 +1,9 @@
1
1
  import { type DeleteRangeOptions } from './delete-range';
2
2
  import { type BatchOperation, type ConditionalBatchCondition, type ScanOptions, type Storage, type StorageCapabilities } from './interface';
3
+ type IndexedDbRuntime = {
4
+ indexedDB: Pick<typeof indexedDB, 'open'>;
5
+ IDBKeyRange: Pick<typeof IDBKeyRange, 'bound'>;
6
+ };
3
7
  /**
4
8
  * IndexedDB-backed {@link Storage} implementation for browser and service-worker
5
9
  * environments.
@@ -31,7 +35,7 @@ import { type BatchOperation, type ConditionalBatchCondition, type ScanOptions,
31
35
  */
32
36
  export declare class IndexedDBStorage implements Storage {
33
37
  #private;
34
- constructor(databaseName?: string);
38
+ constructor(databaseName?: string, runtime?: IndexedDbRuntime);
35
39
  capabilities(): StorageCapabilities;
36
40
  get(key: string): Promise<Uint8Array | null>;
37
41
  put(key: string, value: Uint8Array): Promise<void>;
@@ -47,3 +51,4 @@ export declare class IndexedDBStorage implements Storage {
47
51
  scoped(prefix: string): Storage;
48
52
  [Symbol.dispose](): void;
49
53
  }
54
+ export {};
@@ -1 +1 @@
1
- var s=Object.defineProperty;var n=(F)=>F;function i(F,U){this[F]=n.bind(null,U)}var GF=(F,U)=>{for(var Y in U)s(F,Y,{get:U[Y],enumerable:!0,configurable:!0,set:i.bind(U,Y)})};async function R(F,U){return await F.get(U)!==null}async function*S(F,U,Y){for await(let[J]of F.scan(U,Y))yield J}async function E(F,U){let Y=0;for await(let J of S(F,U))Y++;return Y}async function v(F,U){let Y=[];for await(let J of S(F,U))Y.push({type:"delete",key:J});if(Y.length===0)return 0;return await F.batch(Y),Y.length}async function b(F,U,Y){let J=[];for await(let Q of S(F,U,Y))J.push({type:"delete",key:Q});if(J.length===0)return 0;return await F.batch(J),J.length}function A(F,U,Y){if(!F.capabilities()[U])throw Error(`Feature "${Y}" requires storage capability "${U}", but this storage backend does not provide it.`)}var m="default";var P=1e4,VF=1e4;class y extends Error{code="StorageBatchOperationLimitExceededError";cap=P;count;target;constructor(F,U){super(`${F} count ${U} exceeds MAX_BATCH_OPERATIONS (${P}).`);this.name="StorageBatchOperationLimitExceededError",this.target=F,this.count=U}}function T(F,U){if(U>P)throw new y(F,U)}function K(F){return F.length>0?F.slice(0,-1)+String.fromCharCode(F.charCodeAt(F.length-1)+1):"ÿ"}function C(F,U={}){if(U.gt!==void 0&&F<=U.gt)return!1;if(U.gte!==void 0&&F<U.gte)return!1;if(U.lt!==void 0&&F>=U.lt)return!1;if(U.lte!==void 0&&F>U.lte)return!1;return!0}function I(F,U){if(F===null||U===null)return F===U;if(F.byteLength!==U.byteLength)return!1;for(let Y=0;Y<F.byteLength;Y++)if(F[Y]!==U[Y])return!1;return!0}async function g(F,U){if(F.has)return F.has(U);return R(F,U)}function k(F,U,Y){if(F.keys)return F.keys(U,Y);return S(F,U,Y)}async function c(F,U){if(F.count)return F.count(U);return E(F,U)}async function u(F,U){if(F.deletePrefix)return F.deletePrefix(U);return v(F,U)}async function DF(F,U){T("batch operations",U.length),await F.batch(U)}async function w(F,U,Y){if(T("conditionalBatch conditions",U.length),T("conditionalBatch operations",Y.length),A(F,"conditionalBatch","storageConditionalBatch"),!F.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return F.conditionalBatch(U,Y)}function G(F){return encodeURIComponent(F)}function BF(F){return decodeURIComponent(F)}function _F(F){try{return decodeURIComponent(F)}catch{return null}}var z=(F)=>String(F).padStart(16,"0"),r="0",t="1",x=(F,U,Y,J)=>`sig:${G(F)}:${G(U)}:${J}:${G(Y)}`,zF={workflow:(F)=>`wf:${G(F)}`,checkpoint:(F)=>`wf:${G(F)}:ckpt`,checkpointHistory:(F,U)=>`wf:${G(F)}:ckpt:${String(U).padStart(10,"0")}`,timelinePrefix:(F)=>`wf:${G(F)}:timeline:`,timeline:(F,U)=>`wf:${G(F)}:timeline:${String(U).padStart(10,"0")}`,schedule:(F)=>`schedule:${G(F)}`,scheduleTick:(F,U)=>`schedule-due:${String(F).padStart(16,"0")}:${G(U)}`,scheduleRun:(F)=>`schedule-run:${G(F)}`,operation:(F,U,Y)=>`op:${F}:${z(U)}:${Y}`,operationInflight:(F)=>`op:inflight:${F}`,operationQueued:(F)=>`op:queued:${F}`,operationResolved:(F)=>`op:resolved:${F}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(F)=>`op:dead-letter:${F}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(F,U,Y)=>`audit:bulk:${z(F)}:${G(U)}:${G(Y)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(F,U)=>`op:resolved-by-time:${z(F)}:${G(U)}`,asyncActivity:(F,U)=>`async-act:v1:${G(F)}:${G(U)}`,activityReconciliationPrefix:(F)=>`actrec:v1:${G(F)}:`,activityReconciliation:(F,U,Y)=>`actrec:v1:${G(F)}:${G(U)}:${Y}`,eventPrefix:(F)=>`ev:${G(F)}:`,event:(F,U)=>`ev:${G(F)}:${String(U).padStart(10,"0")}`,eventHead:(F)=>`ev:${G(F)}:head`,eventWatermark:(F)=>`ev:${G(F)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(F)=>`fleet-event:${String(F).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(F)=>`fleet-event-by-workflow:${G(F)}:`,fleetEventByWorkflow:(F,U)=>`fleet-event-by-workflow:${G(F)}:${String(U).padStart(10,"0")}`,signal:(F,U,Y)=>x(F,U,Y,t),startSignal:(F,U,Y)=>x(F,U,Y,r),signalSequence:(F)=>`sigseq:v1:${G(F)}`,signalAcceptedResponsePrefix:(F)=>`sigres:v1:${G(F)}:`,signalAcceptedResponse:(F,U,Y)=>`sigres:v1:${G(F)}:${G(U)}:${G(Y)}`,deadline:(F,U)=>`wf-deadline:${z(F)}:${G(U)}`,terminalCleanup:(F,U)=>`wf-cleanup:${z(F)}:${G(U)}`,teardownTimer:(F,U)=>`wf-teardown:${z(F)}:${G(U)}`,delayedStart:(F,U)=>`wf-delayed:${z(F)}:${G(U)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(F,U)=>`wf-terminal:${z(F)}:${G(U)}`,attribute:(F)=>`attr:${G(F)}`,attributeIndex:(F,U,Y)=>`idx:${F}:${U}:${G(Y)}`,tagIndex:(F,U)=>`tag:${G(F)}:${G(U)}`,updatePrefix:(F)=>`upd:${G(F)}:`,update:(F,U)=>`upd:${G(F)}:${U}`,updateResponse:(F)=>`upr:${F}`,updateIdempotency:(F,U)=>`upk:${G(F)}:${U}`,startIdempotency:(F)=>`start-idem:${G(F)}`,startIdempotencySignalId:(F)=>`start-idem:${F}`,livenessPrefix:()=>"liveness:",liveness:(F)=>`liveness:${G(F)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(F,U,Y)=>`budget:${F}:${U}:${Y}`,review:(F,U)=>`review:${G(F)}:${U}`,workflowHeaders:(F)=>`wf-headers:${G(F)}`,childCancellationPrefix:(F)=>`child-cancel:${G(F)}:`,childCancellation:(F,U)=>`child-cancel:${G(F)}:${G(U)}`,terminalCleanupNeeded:(F)=>`wf-cleanup-needed:${G(F)}`,workflowConcurrency:(F,U)=>`wf-concurrency:${G(F)}:${G(U)}`,workflowConcurrencyHolder:(F)=>`wf-concurrency-holder:${G(F)}`,workflowHasServices:(F)=>`wf-has-services:${G(F)}`,finalizerState:(F)=>`wf-finalizer-state:${G(F)}`,teardownOwed:(F)=>`wf-teardown-needed:${G(F)}`,teardownDeadLetter:(F)=>`wf-teardown-deadletter:${G(F)}`,offload:(F,U)=>`offload:${G(F)}:${U}`,archive:(F,U)=>`archive:${G(F)}:${U}`,stateExecution:(F,U)=>`state:execution:${G(F)}:${G(U)}`,stateWorkflow:(F,U)=>`state:workflow-scope:${m}:${G(F)}:${G(U)}`,streamChunkPrefix:(F,U)=>`blob:${G(F)}:${U}:chunk:`,streamChunk:(F,U,Y)=>`blob:${G(F)}:${U}:chunk:${String(Y).padStart(10,"0")}`,streamTail:(F,U)=>`blob:${G(F)}:${U}:tail`,streamMetadata:(F,U)=>`blob:${G(F)}:${U}:meta`,budgetCharged:(F)=>`budget-charged:${F}`,toolEffect:(F,U,Y)=>`tool-effect:${G(F)}:${U}:${Y}`,workflowVisibilityStatus:(F,U)=>`wf-idx-status:${G(F)}:${G(U)}`,workflowVisibilityType:(F,U)=>`wf-idx-type:${G(F)}:${G(U)}`,workflowVisibilityCreated:(F,U)=>`wf-idx-created:${z(F)}:${G(U)}`,workflowVisibilityUpdated:(F,U)=>`wf-idx-updated:${z(F)}:${G(U)}`,workflowVisibilityDeadline:(F,U)=>`wf-idx-deadline:${z(F)}:${G(U)}`,workflowVisibilityManifest:(F)=>`wf-idx-manifest:${G(F)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function o(F){if(F===void 0)return;if(typeof F!=="number"||!Number.isInteger(F)||F<0)throw Error("deleteRange limit must be a finite non-negative integer");return F===0?0:F}function h(F){let U={},Y=!1;for(let Q of["gt","gte","lt","lte"]){let Z=F[Q];if(Z===void 0)continue;if(typeof Z!=="string")throw Error("deleteRange bounds must be strings");U[Q]=Z,Y=!0}if(!Y)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let J=o(F.limit);if(J!==void 0)U.limit=J;return U}async function f(F,U,Y){let J=h(Y);if(F.deleteRange)return F.deleteRange(U,J);return b(F,U,J)}function e(F,U){let Y={key:F,open:!1};if(U.gte!==void 0&&U.gte>Y.key)Y.key=U.gte,Y.open=!1;if(U.gt!==void 0&&U.gt>=Y.key)Y.key=U.gt,Y.open=!0;return Y}function FF(F,U){let Y={key:K(F),open:!0};if(U.lt!==void 0&&U.lt<=Y.key)Y.key=U.lt,Y.open=!0;if(U.lte!==void 0&&U.lte<Y.key)Y.key=U.lte,Y.open=!1;return Y}function l(F,U){let Y=e(F,U),J=FF(F,U);if(Y.key>J.key||Y.key===J.key&&(Y.open||J.open))return null;return{lower:Y,upper:J}}function q(F){return F.replaceAll(/:+$/g,"")}function UF(F,U){let Y=q(F),J=q(U);if(Y.length===0)return J;if(J.length===0)return Y;return`${Y}:${J}`}class O{#U;#Y;constructor(F,U){this.#U=F,this.#Y=q(U)}#F(F){if(this.#Y.length===0)return F;return F.length===0?`${this.#Y}:`:`${this.#Y}:${F}`}#G(F){if(this.#Y.length===0)return F;return F.slice(this.#Y.length+1)}#J(F={}){let U={};if(F.limit!==void 0)U.limit=F.limit;if(F.reverse!==void 0)U.reverse=F.reverse;if(F.gt!==void 0)U.gt=this.#F(F.gt);if(F.gte!==void 0)U.gte=this.#F(F.gte);if(F.lt!==void 0)U.lt=this.#F(F.lt);if(F.lte!==void 0)U.lte=this.#F(F.lte);return U}#Q(F){let U={};if(F.limit!==void 0)U.limit=F.limit;if(F.gt!==void 0)U.gt=this.#F(F.gt);if(F.gte!==void 0)U.gte=this.#F(F.gte);if(F.lt!==void 0)U.lt=this.#F(F.lt);if(F.lte!==void 0)U.lte=this.#F(F.lte);return U}capabilities(){return this.#U.capabilities()}scoped(F){return new O(this.#U,UF(this.#Y,F))}async get(F){return this.#U.get(this.#F(F))}async put(F,U){await this.#U.put(this.#F(F),U)}async delete(F){await this.#U.delete(this.#F(F))}async*scan(F,U){for await(let[Y,J]of this.#U.scan(this.#F(F),this.#J(U)))yield[this.#G(Y),J]}async batch(F){T("batch operations",F.length),await this.#U.batch(F.map((U)=>{if(U.type==="put")return{type:"put",key:this.#F(U.key),value:U.value};return{type:"delete",key:this.#F(U.key)}}))}async conditionalBatch(F,U){return w(this.#U,F.map((Y)=>({key:this.#F(Y.key),expectedValue:Y.expectedValue})),U.map((Y)=>{if(Y.type==="put")return{type:"put",key:this.#F(Y.key),value:Y.value};return{type:"delete",key:this.#F(Y.key)}}))}async has(F){return g(this.#U,this.#F(F))}async deletePrefix(F){return u(this.#U,this.#F(F))}async deleteRange(F,U){let Y=this.#Q(h(U));return f(this.#U,this.#F(F),Y)}async*keys(F,U){for await(let Y of k(this.#U,this.#F(F),this.#J(U)))yield this.#G(Y)}async count(F){return c(this.#U,this.#F(F))}[Symbol.dispose](){this.#U[Symbol.dispose]()}}function d(F,U){return new O(F,U)}var $="kv";function N(F){return new Promise((U,Y)=>{F.onsuccess=()=>U(F.result),F.onerror=()=>Y(F.error)})}function p(F,U){let Y=null,J=null,Q=null,Z=(X,L)=>{let H=X??Error(L);if(J){let D=J;Y=null,J=null,D(H);return}Q=H};return F.onsuccess=()=>{if(!Y)return;let X=Y;Y=null,J=null,X(F.result)},F.onerror=()=>{Z(F.error,"IndexedDB cursor request failed.")},U.onerror=()=>{Z(U.error,"IndexedDB transaction failed.")},U.onabort=()=>{Z(U.error,"IndexedDB transaction aborted.")},()=>{return new Promise((X,L)=>{if(Q){let H=Q;Q=null,L(H);return}if(Y=X,J=L,F.readyState==="done"){let H=Y;Y=null,J=null,H?.(F.result)}})}}class YF{#U;#Y=null;#F;constructor(F="weft"){this.#U=F,this.#F=this.#G()}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"best-effort",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#G(){let F=indexedDB.open(this.#U,1);return F.onupgradeneeded=()=>{let U=F.result;if(!U.objectStoreNames.contains($))U.createObjectStore($)},N(F).then((U)=>{return this.#Y=U,U})}async get(F){let J=(await this.#F).transaction($,"readonly").objectStore($),Q=await N(J.get(F));return Q===void 0?null:new Uint8Array(Q)}async put(F,U){let Q=(await this.#F).transaction($,"readwrite").objectStore($);await N(Q.put(U,F))}async delete(F){let J=(await this.#F).transaction($,"readwrite").objectStore($);await N(J.delete(F))}async has(F){let J=(await this.#F).transaction($,"readonly").objectStore($);return await N(J.count(F))>0}async deletePrefix(F){let U=await this.#F,Y=K(F),J=IDBKeyRange.bound(F,Y,!1,!0);return new Promise((Q,Z)=>{let X=U.transaction($,"readwrite"),L=X.objectStore($),H=0,D=L.count(J);D.onsuccess=()=>{H=D.result,L.delete(J)},X.oncomplete=()=>Q(H),X.onerror=()=>Z(X.error)})}async deleteRange(F,U){let Y=h(U),J=l(F,Y);if(J===null)return 0;let Q=IDBKeyRange.bound(J.lower.key,J.upper.key,J.lower.open,J.upper.open),Z=await this.#F,{limit:X}=Y;return new Promise((L,H)=>{let D=Z.transaction($,"readwrite"),M=D.objectStore($),B=0;if(X===void 0){let W=M.count(Q);W.onsuccess=()=>{B=W.result,M.delete(Q)}}else{let W=M.openCursor(Q,"next");W.onsuccess=()=>{let _=W.result;if(_===null||B>=X)return;if(_.delete(),B++,B<X)_.continue()}}D.oncomplete=()=>L(B),D.onerror=()=>H(D.error)})}async*scan(F,U={}){let{limit:Y,reverse:J}=U,Q=await this.#F,Z=K(F),X=IDBKeyRange.bound(F,Z,!1,!0),L=J?"prev":"next",H=Q.transaction($,"readonly"),M=H.objectStore($).openCursor(X,L),B=0,W=p(M,H),_=!1;try{let V=await W();while(V){if(Y!==void 0&&B>=Y)break;let j=V.key;if(C(j,U))yield[j,new Uint8Array(V.value)],B++;V.continue(),V=await W()}_=!0}finally{if(!_)try{H.abort()}catch{}}}async batch(F){if(T("batch operations",F.length),F.length===0)return;let U=await this.#F;return new Promise((Y,J)=>{let Q=U.transaction($,"readwrite"),Z=Q.objectStore($);for(let X of F)if(X.type==="put")Z.put(X.value,X.key);else Z.delete(X.key);Q.oncomplete=()=>Y(),Q.onerror=()=>J(Q.error)})}async conditionalBatch(F,U){T("conditionalBatch conditions",F.length),T("conditionalBatch operations",U.length);let Y=await this.#F;return new Promise((J,Q)=>{let Z=Y.transaction($,"readwrite"),X=Z.objectStore($),L=!1,H=!1,D=(W,_)=>{if(L)return;L=!0,Q(W??Error(_))};Z.oncomplete=()=>{if(L)return;L=!0,J(!0)},Z.onerror=()=>{D(Z.error,"IndexedDB conditionalBatch transaction failed.")},Z.onabort=()=>{if(L)return;if(L=!0,H){J(!1);return}Q(Z.error??Error("IndexedDB conditionalBatch transaction aborted."))};let M=()=>{for(let W of U)if(W.type==="put")X.put(W.value,W.key);else X.delete(W.key)},B=(W)=>{if(W>=F.length){M();return}let _=F[W],V=X.get(_.key);V.onsuccess=()=>{let j=V.result,a=j===void 0?null:new Uint8Array(j);if(!I(a,_.expectedValue)){H=!0,Z.abort();return}B(W+1)},V.onerror=()=>{D(V.error,"IndexedDB conditionalBatch condition check failed.")}};B(0)})}async*keys(F,U={}){let{limit:Y,reverse:J}=U,Q=await this.#F,Z=K(F),X=IDBKeyRange.bound(F,Z,!1,!0),L=J?"prev":"next",H=Q.transaction($,"readonly"),M=H.objectStore($).openKeyCursor(X,L),B=0,W=p(M,H),_=!1;try{let V=await W();while(V){if(Y!==void 0&&B>=Y)break;let j=V.key;if(C(j,U))yield j,B++;V.continue(),V=await W()}_=!0}finally{if(!_)try{H.abort()}catch{}}}async count(F){let U=await this.#F,Y=K(F),Q=U.transaction($,"readonly").objectStore($);return N(Q.count(IDBKeyRange.bound(F,Y,!1,!0)))}scoped(F){return d(this,F)}[Symbol.dispose](){if(this.#Y)this.#Y.close(),this.#Y=null}}export{YF as IndexedDBStorage};
1
+ var s=Object.defineProperty;var n=(U)=>U;function i(U,Y){this[U]=n.bind(null,Y)}var QU=(U,Y)=>{for(var G in Y)s(U,G,{get:Y[G],enumerable:!0,configurable:!0,set:i.bind(Y,G)})};async function E(U,Y){return await U.get(Y)!==null}async function*S(U,Y,G){for await(let[Q]of U.scan(Y,G))yield Q}async function R(U,Y){let G=0;for await(let Q of S(U,Y))G++;return G}async function v(U,Y){let G=[];for await(let Q of S(U,Y))G.push({type:"delete",key:Q});if(G.length===0)return 0;return await U.batch(G),G.length}async function b(U,Y,G){let Q=[];for await(let X of S(U,Y,G))Q.push({type:"delete",key:X});if(Q.length===0)return 0;return await U.batch(Q),Q.length}function A(U,Y,G){if(!U.capabilities()[Y])throw Error(`Feature "${G}" requires storage capability "${Y}", but this storage backend does not provide it.`)}var m="default";var P=1e4,BU=1e4;class y extends Error{code="StorageBatchOperationLimitExceededError";cap=P;count;target;constructor(U,Y){super(`${U} count ${Y} exceeds MAX_BATCH_OPERATIONS (${P}).`);this.name="StorageBatchOperationLimitExceededError",this.target=U,this.count=Y}}function T(U,Y){if(Y>P)throw new y(U,Y)}function K(U){return U.length>0?U.slice(0,-1)+String.fromCharCode(U.charCodeAt(U.length-1)+1):"ÿ"}function C(U,Y={}){if(Y.gt!==void 0&&U<=Y.gt)return!1;if(Y.gte!==void 0&&U<Y.gte)return!1;if(Y.lt!==void 0&&U>=Y.lt)return!1;if(Y.lte!==void 0&&U>Y.lte)return!1;return!0}function I(U,Y){if(U===null||Y===null)return U===Y;if(U.byteLength!==Y.byteLength)return!1;for(let G=0;G<U.byteLength;G++)if(U[G]!==Y[G])return!1;return!0}async function g(U,Y){if(U.has)return U.has(Y);return E(U,Y)}function k(U,Y,G){if(U.keys)return U.keys(Y,G);return S(U,Y,G)}async function c(U,Y){if(U.count)return U.count(Y);return R(U,Y)}async function w(U,Y){if(U.deletePrefix)return U.deletePrefix(Y);return v(U,Y)}async function DU(U,Y){T("batch operations",Y.length),await U.batch(Y)}async function u(U,Y,G){if(T("conditionalBatch conditions",Y.length),T("conditionalBatch operations",G.length),A(U,"conditionalBatch","storageConditionalBatch"),!U.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return U.conditionalBatch(Y,G)}function J(U){return encodeURIComponent(U)}function _U(U){return decodeURIComponent(U)}function zU(U){try{return decodeURIComponent(U)}catch{return null}}var z=(U)=>String(U).padStart(16,"0"),r="0",t="1",x=(U,Y,G,Q)=>`sig:${J(U)}:${J(Y)}:${Q}:${J(G)}`,MU={workflow:(U)=>`wf:${J(U)}`,checkpoint:(U)=>`wf:${J(U)}:ckpt`,checkpointHistory:(U,Y)=>`wf:${J(U)}:ckpt:${String(Y).padStart(10,"0")}`,timelinePrefix:(U)=>`wf:${J(U)}:timeline:`,timeline:(U,Y)=>`wf:${J(U)}:timeline:${String(Y).padStart(10,"0")}`,schedule:(U)=>`schedule:${J(U)}`,scheduleTick:(U,Y)=>`schedule-due:${String(U).padStart(16,"0")}:${J(Y)}`,scheduleRun:(U)=>`schedule-run:${J(U)}`,operation:(U,Y,G)=>`op:${U}:${z(Y)}:${G}`,operationInflight:(U)=>`op:inflight:${U}`,operationQueued:(U)=>`op:queued:${U}`,operationResolved:(U)=>`op:resolved:${U}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(U)=>`op:dead-letter:${U}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(U,Y,G)=>`audit:bulk:${z(U)}:${J(Y)}:${J(G)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(U,Y)=>`op:resolved-by-time:${z(U)}:${J(Y)}`,asyncActivity:(U,Y)=>`async-act:v1:${J(U)}:${J(Y)}`,activityReconciliationPrefix:(U)=>`actrec:v1:${J(U)}:`,activityReconciliation:(U,Y,G)=>`actrec:v1:${J(U)}:${J(Y)}:${G}`,eventPrefix:(U)=>`ev:${J(U)}:`,event:(U,Y)=>`ev:${J(U)}:${String(Y).padStart(10,"0")}`,eventHead:(U)=>`ev:${J(U)}:head`,eventWatermark:(U)=>`ev:${J(U)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(U)=>`fleet-event:${String(U).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(U)=>`fleet-event-by-workflow:${J(U)}:`,fleetEventByWorkflow:(U,Y)=>`fleet-event-by-workflow:${J(U)}:${String(Y).padStart(10,"0")}`,signal:(U,Y,G)=>x(U,Y,G,t),startSignal:(U,Y,G)=>x(U,Y,G,r),signalSequence:(U)=>`sigseq:v1:${J(U)}`,signalAcceptedResponsePrefix:(U)=>`sigres:v1:${J(U)}:`,signalAcceptedResponse:(U,Y,G)=>`sigres:v1:${J(U)}:${J(Y)}:${J(G)}`,deadline:(U,Y)=>`wf-deadline:${z(U)}:${J(Y)}`,terminalCleanup:(U,Y)=>`wf-cleanup:${z(U)}:${J(Y)}`,teardownTimer:(U,Y)=>`wf-teardown:${z(U)}:${J(Y)}`,delayedStart:(U,Y)=>`wf-delayed:${z(U)}:${J(Y)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(U,Y)=>`wf-terminal:${z(U)}:${J(Y)}`,attribute:(U)=>`attr:${J(U)}`,attributeIndex:(U,Y,G)=>`idx:${U}:${Y}:${J(G)}`,tagIndex:(U,Y)=>`tag:${J(U)}:${J(Y)}`,updatePrefix:(U)=>`upd:${J(U)}:`,update:(U,Y)=>`upd:${J(U)}:${Y}`,updateResponse:(U)=>`upr:${U}`,updateIdempotency:(U,Y)=>`upk:${J(U)}:${Y}`,startIdempotency:(U)=>`start-idem:${J(U)}`,startIdempotencySignalId:(U)=>`start-idem:${U}`,livenessPrefix:()=>"liveness:",liveness:(U)=>`liveness:${J(U)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(U,Y,G)=>`budget:${U}:${Y}:${G}`,review:(U,Y)=>`review:${J(U)}:${Y}`,workflowHeaders:(U)=>`wf-headers:${J(U)}`,childCancellationPrefix:(U)=>`child-cancel:${J(U)}:`,childCancellation:(U,Y)=>`child-cancel:${J(U)}:${J(Y)}`,terminalCleanupNeeded:(U)=>`wf-cleanup-needed:${J(U)}`,workflowConcurrency:(U,Y)=>`wf-concurrency:${J(U)}:${J(Y)}`,workflowConcurrencyHolder:(U)=>`wf-concurrency-holder:${J(U)}`,workflowHasServices:(U)=>`wf-has-services:${J(U)}`,finalizerState:(U)=>`wf-finalizer-state:${J(U)}`,teardownOwed:(U)=>`wf-teardown-needed:${J(U)}`,teardownDeadLetter:(U)=>`wf-teardown-deadletter:${J(U)}`,offload:(U,Y)=>`offload:${J(U)}:${Y}`,archive:(U,Y)=>`archive:${J(U)}:${Y}`,stateExecution:(U,Y)=>`state:execution:${J(U)}:${J(Y)}`,stateWorkflow:(U,Y)=>`state:workflow-scope:${m}:${J(U)}:${J(Y)}`,streamChunkPrefix:(U,Y)=>`blob:${J(U)}:${Y}:chunk:`,streamChunk:(U,Y,G)=>`blob:${J(U)}:${Y}:chunk:${String(G).padStart(10,"0")}`,streamTail:(U,Y)=>`blob:${J(U)}:${Y}:tail`,streamMetadata:(U,Y)=>`blob:${J(U)}:${Y}:meta`,budgetCharged:(U)=>`budget-charged:${U}`,toolEffect:(U,Y,G)=>`tool-effect:${J(U)}:${Y}:${G}`,workflowVisibilityStatus:(U,Y)=>`wf-idx-status:${J(U)}:${J(Y)}`,workflowVisibilityType:(U,Y)=>`wf-idx-type:${J(U)}:${J(Y)}`,workflowVisibilityCreated:(U,Y)=>`wf-idx-created:${z(U)}:${J(Y)}`,workflowVisibilityUpdated:(U,Y)=>`wf-idx-updated:${z(U)}:${J(Y)}`,workflowVisibilityDeadline:(U,Y)=>`wf-idx-deadline:${z(U)}:${J(Y)}`,workflowVisibilityManifest:(U)=>`wf-idx-manifest:${J(U)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"};function o(U){if(U===void 0)return;if(typeof U!=="number"||!Number.isInteger(U)||U<0)throw Error("deleteRange limit must be a finite non-negative integer");return U===0?0:U}function h(U){let Y={},G=!1;for(let X of["gt","gte","lt","lte"]){let $=U[X];if($===void 0)continue;if(typeof $!=="string")throw Error("deleteRange bounds must be strings");Y[X]=$,G=!0}if(!G)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Q=o(U.limit);if(Q!==void 0)Y.limit=Q;return Y}async function f(U,Y,G){let Q=h(G);if(U.deleteRange)return U.deleteRange(Y,Q);return b(U,Y,Q)}function e(U,Y){let G={key:U,open:!1};if(Y.gte!==void 0&&Y.gte>G.key)G.key=Y.gte,G.open=!1;if(Y.gt!==void 0&&Y.gt>=G.key)G.key=Y.gt,G.open=!0;return G}function UU(U,Y){let G={key:K(U),open:!0};if(Y.lt!==void 0&&Y.lt<=G.key)G.key=Y.lt,G.open=!0;if(Y.lte!==void 0&&Y.lte<G.key)G.key=Y.lte,G.open=!1;return G}function l(U,Y){let G=e(U,Y),Q=UU(U,Y);if(G.key>Q.key||G.key===Q.key&&(G.open||Q.open))return null;return{lower:G,upper:Q}}function q(U){return U.replaceAll(/:+$/g,"")}function YU(U,Y){let G=q(U),Q=q(Y);if(G.length===0)return Q;if(Q.length===0)return G;return`${G}:${Q}`}class O{#Y;#G;constructor(U,Y){this.#Y=U,this.#G=q(Y)}#U(U){if(this.#G.length===0)return U;return U.length===0?`${this.#G}:`:`${this.#G}:${U}`}#J(U){if(this.#G.length===0)return U;return U.slice(this.#G.length+1)}#Q(U={}){let Y={};if(U.limit!==void 0)Y.limit=U.limit;if(U.reverse!==void 0)Y.reverse=U.reverse;if(U.gt!==void 0)Y.gt=this.#U(U.gt);if(U.gte!==void 0)Y.gte=this.#U(U.gte);if(U.lt!==void 0)Y.lt=this.#U(U.lt);if(U.lte!==void 0)Y.lte=this.#U(U.lte);return Y}#X(U){let Y={};if(U.limit!==void 0)Y.limit=U.limit;if(U.gt!==void 0)Y.gt=this.#U(U.gt);if(U.gte!==void 0)Y.gte=this.#U(U.gte);if(U.lt!==void 0)Y.lt=this.#U(U.lt);if(U.lte!==void 0)Y.lte=this.#U(U.lte);return Y}capabilities(){return this.#Y.capabilities()}scoped(U){return new O(this.#Y,YU(this.#G,U))}async get(U){return this.#Y.get(this.#U(U))}async put(U,Y){await this.#Y.put(this.#U(U),Y)}async delete(U){await this.#Y.delete(this.#U(U))}async*scan(U,Y){for await(let[G,Q]of this.#Y.scan(this.#U(U),this.#Q(Y)))yield[this.#J(G),Q]}async batch(U){T("batch operations",U.length),await this.#Y.batch(U.map((Y)=>{if(Y.type==="put")return{type:"put",key:this.#U(Y.key),value:Y.value};return{type:"delete",key:this.#U(Y.key)}}))}async conditionalBatch(U,Y){return u(this.#Y,U.map((G)=>({key:this.#U(G.key),expectedValue:G.expectedValue})),Y.map((G)=>{if(G.type==="put")return{type:"put",key:this.#U(G.key),value:G.value};return{type:"delete",key:this.#U(G.key)}}))}async has(U){return g(this.#Y,this.#U(U))}async deletePrefix(U){return w(this.#Y,this.#U(U))}async deleteRange(U,Y){let G=this.#X(h(Y));return f(this.#Y,this.#U(U),G)}async*keys(U,Y){for await(let G of k(this.#Y,this.#U(U),this.#Q(Y)))yield this.#J(G)}async count(U){return c(this.#Y,this.#U(U))}[Symbol.dispose](){this.#Y[Symbol.dispose]()}}function d(U,Y){return new O(U,Y)}var F="kv";function GU(U=globalThis){let{indexedDB:Y,IDBKeyRange:G}=U;if(Y===void 0||G===void 0)throw Error("IndexedDBStorage requires both indexedDB and IDBKeyRange runtime globals.");return{indexedDB:Y,IDBKeyRange:G}}function N(U){return new Promise((Y,G)=>{U.onsuccess=()=>Y(U.result),U.onerror=()=>G(U.error)})}function p(U,Y){let G=null,Q=null,X=null,$=(Z,L)=>{let H=Z??Error(L);if(Q){let B=Q;G=null,Q=null,B(H);return}X=H};return U.onsuccess=()=>{if(!G)return;let Z=G;G=null,Q=null,Z(U.result)},U.onerror=()=>{$(U.error,"IndexedDB cursor request failed.")},Y.onerror=()=>{$(Y.error,"IndexedDB transaction failed.")},Y.onabort=()=>{$(Y.error,"IndexedDB transaction aborted.")},()=>{return new Promise((Z,L)=>{if(X){let H=X;X=null,L(H);return}if(G=Z,Q=L,U.readyState==="done"){let H=G;G=null,Q=null,H?.(U.result)}})}}class JU{#Y;#G=null;#U;#J;constructor(U="weft",Y=GU()){this.#Y=U,this.#J=Y,this.#U=this.#Q()}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"best-effort",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#Q(){let U=this.#J.indexedDB.open(this.#Y,1);return U.onupgradeneeded=()=>{let Y=U.result;if(!Y.objectStoreNames.contains(F))Y.createObjectStore(F)},N(U).then((Y)=>{return this.#G=Y,Y})}async get(U){let Q=(await this.#U).transaction(F,"readonly").objectStore(F),X=await N(Q.get(U));return X===void 0?null:new Uint8Array(X)}async put(U,Y){let X=(await this.#U).transaction(F,"readwrite").objectStore(F);await N(X.put(Y,U))}async delete(U){let Q=(await this.#U).transaction(F,"readwrite").objectStore(F);await N(Q.delete(U))}async has(U){let Q=(await this.#U).transaction(F,"readonly").objectStore(F);return await N(Q.count(U))>0}async deletePrefix(U){let Y=await this.#U,G=K(U),Q=this.#J.IDBKeyRange.bound(U,G,!1,!0);return new Promise((X,$)=>{let Z=Y.transaction(F,"readwrite"),L=Z.objectStore(F),H=0,B=L.count(Q);B.onsuccess=()=>{H=B.result,L.delete(Q)},Z.oncomplete=()=>X(H),Z.onerror=()=>$(Z.error)})}async deleteRange(U,Y){let G=h(Y),Q=l(U,G);if(Q===null)return 0;let X=this.#J.IDBKeyRange.bound(Q.lower.key,Q.upper.key,Q.lower.open,Q.upper.open),$=await this.#U,{limit:Z}=G;return new Promise((L,H)=>{let B=$.transaction(F,"readwrite"),M=B.objectStore(F),D=0;if(Z===void 0){let W=M.count(X);W.onsuccess=()=>{D=W.result,M.delete(X)}}else{let W=M.openCursor(X,"next");W.onsuccess=()=>{let _=W.result;if(_===null||D>=Z)return;if(_.delete(),D++,D<Z)_.continue()}}B.oncomplete=()=>L(D),B.onerror=()=>H(B.error)})}async*scan(U,Y={}){let{limit:G,reverse:Q}=Y,X=await this.#U,$=K(U),Z=this.#J.IDBKeyRange.bound(U,$,!1,!0),L=Q?"prev":"next",H=X.transaction(F,"readonly"),M=H.objectStore(F).openCursor(Z,L),D=0,W=p(M,H),_=!1;try{let V=await W();while(V){if(G!==void 0&&D>=G)break;let j=V.key;if(C(j,Y))yield[j,new Uint8Array(V.value)],D++;V.continue(),V=await W()}_=!0}finally{if(!_)try{H.abort()}catch{}}}async batch(U){if(T("batch operations",U.length),U.length===0)return;let Y=await this.#U;return new Promise((G,Q)=>{let X=Y.transaction(F,"readwrite"),$=X.objectStore(F);for(let Z of U)if(Z.type==="put")$.put(Z.value,Z.key);else $.delete(Z.key);X.oncomplete=()=>G(),X.onerror=()=>Q(X.error)})}async conditionalBatch(U,Y){T("conditionalBatch conditions",U.length),T("conditionalBatch operations",Y.length);let G=await this.#U;return new Promise((Q,X)=>{let $=G.transaction(F,"readwrite"),Z=$.objectStore(F),L=!1,H=!1,B=(W,_)=>{if(L)return;L=!0,X(W??Error(_))};$.oncomplete=()=>{if(L)return;L=!0,Q(!0)},$.onerror=()=>{B($.error,"IndexedDB conditionalBatch transaction failed.")},$.onabort=()=>{if(L)return;if(L=!0,H){Q(!1);return}X($.error??Error("IndexedDB conditionalBatch transaction aborted."))};let M=()=>{for(let W of Y)if(W.type==="put")Z.put(W.value,W.key);else Z.delete(W.key)},D=(W)=>{if(W>=U.length){M();return}let _=U[W],V=Z.get(_.key);V.onsuccess=()=>{let j=V.result,a=j===void 0?null:new Uint8Array(j);if(!I(a,_.expectedValue)){H=!0,$.abort();return}D(W+1)},V.onerror=()=>{B(V.error,"IndexedDB conditionalBatch condition check failed.")}};D(0)})}async*keys(U,Y={}){let{limit:G,reverse:Q}=Y,X=await this.#U,$=K(U),Z=this.#J.IDBKeyRange.bound(U,$,!1,!0),L=Q?"prev":"next",H=X.transaction(F,"readonly"),M=H.objectStore(F).openKeyCursor(Z,L),D=0,W=p(M,H),_=!1;try{let V=await W();while(V){if(G!==void 0&&D>=G)break;let j=V.key;if(C(j,Y))yield j,D++;V.continue(),V=await W()}_=!0}finally{if(!_)try{H.abort()}catch{}}}async count(U){let Y=await this.#U,G=K(U),X=Y.transaction(F,"readonly").objectStore(F);return N(X.count(this.#J.IDBKeyRange.bound(U,G,!1,!0)))}scoped(U){return d(this,U)}[Symbol.dispose](){if(this.#G)this.#G.close(),this.#G=null}}export{JU as IndexedDBStorage};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- var B=Object.defineProperty;var T=(E)=>E;function v(E,_){this[E]=T.bind(null,_)}var b=(E,_)=>{for(var F in _)B(E,F,{get:_[F],enumerable:!0,configurable:!0,set:v.bind(_,F)})};var K=(E,_)=>()=>(E&&(_=E(E=0)),_);var A=(E,_,F)=>{if(_!=null){if(typeof _!=="object"&&typeof _!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let P;if(F)P=_[Symbol.asyncDispose];if(P===void 0)P=_[Symbol.dispose];if(typeof P!=="function")throw TypeError("Object not disposable");E.push([F,P,_])}else if(F)E.push([F]);return _},c=(E,_,F)=>{let P=(W)=>_=F?new SuppressedError(W,_,"An error was suppressed during disposal"):(F=!0,W),Y=(W)=>{while(W=E.pop())try{var z=W[1]&&W[1].call(W[2]);if(W[0])return Promise.resolve(z).then(Y,(D)=>(P(D),Y()))}catch(D){P(D)}if(F)throw _};return Y()};function L(E,_,F){if(!E.capabilities()[_])throw Error(`Feature "${F}" requires storage capability "${_}", but this storage backend does not provide it.`)}function H(E){let _=E.capabilities(),F=[];if(_.persistence!=="local"&&_.persistence!=="remote")F.push(`persistence must be "local" or "remote" (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 V="default";async function M(E,_){return await E.get(_)!==null}async function*X(E,_,F){for await(let[P]of E.scan(_,F))yield P}async function O(E,_){let F=0;for await(let P of X(E,_))F++;return F}async function Q(E,_){let F=[];for await(let P of X(E,_))F.push({type:"delete",key:P});if(F.length===0)return 0;return await E.batch(F),F.length}async function y(E,_,F){let P=[];for await(let Y of X(E,_,F))P.push({type:"delete",key:Y});if(P.length===0)return 0;return await E.batch(P),P.length}var C;var Z=K(()=>{C=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function J(E,_){if(_>G)throw new j(E,_)}function I(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function l(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 k(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 t(E,_){if(E.has)return E.has(_);return M(E,_)}function d(E,_,F){if(E.keys)return E.keys(_,F);return X(E,_,F)}async function w(E,_){if(E.count)return E.count(_);return O(E,_)}async function i(E,_){if(E.deletePrefix)return E.deletePrefix(_);return Q(E,_)}async function r(E,_){J("batch operations",_.length),await E.batch(_)}async function e(E,_,F){if(J("conditionalBatch conditions",_.length),J("conditionalBatch operations",F.length),L(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 S(E){return encodeURIComponent(E)}function o(E){return decodeURIComponent(E)}function EE(E){try{return decodeURIComponent(E)}catch{return null}}var G=1e4,a=1e4,j,R=(E)=>String(E).padStart(16,"0"),N="0",q="1",$=(E,_,F,P)=>`sig:${S(E)}:${S(_)}:${P}:${S(F)}`,_E;var h=K(()=>{Z();j=class j extends Error{code="StorageBatchOperationLimitExceededError";cap=G;count;target;constructor(E,_){super(`${E} count ${_} exceeds MAX_BATCH_OPERATIONS (${G}).`);this.name="StorageBatchOperationLimitExceededError",this.target=E,this.count=_}};_E={workflow:(E)=>`wf:${S(E)}`,checkpoint:(E)=>`wf:${S(E)}:ckpt`,checkpointHistory:(E,_)=>`wf:${S(E)}:ckpt:${String(_).padStart(10,"0")}`,timelinePrefix:(E)=>`wf:${S(E)}:timeline:`,timeline:(E,_)=>`wf:${S(E)}:timeline:${String(_).padStart(10,"0")}`,schedule:(E)=>`schedule:${S(E)}`,scheduleTick:(E,_)=>`schedule-due:${String(E).padStart(16,"0")}:${S(_)}`,scheduleRun:(E)=>`schedule-run:${S(E)}`,operation:(E,_,F)=>`op:${E}:${R(_)}:${F}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(E)=>`op:dead-letter:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,F)=>`audit:bulk:${R(E)}:${S(_)}:${S(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${R(E)}:${S(_)}`,asyncActivity:(E,_)=>`async-act:v1:${S(E)}:${S(_)}`,activityReconciliationPrefix:(E)=>`actrec:v1:${S(E)}:`,activityReconciliation:(E,_,F)=>`actrec:v1:${S(E)}:${S(_)}:${F}`,eventPrefix:(E)=>`ev:${S(E)}:`,event:(E,_)=>`ev:${S(E)}:${String(_).padStart(10,"0")}`,eventHead:(E)=>`ev:${S(E)}:head`,eventWatermark:(E)=>`ev:${S(E)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(E)=>`fleet-event:${String(E).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(E)=>`fleet-event-by-workflow:${S(E)}:`,fleetEventByWorkflow:(E,_)=>`fleet-event-by-workflow:${S(E)}:${String(_).padStart(10,"0")}`,signal:(E,_,F)=>$(E,_,F,q),startSignal:(E,_,F)=>$(E,_,F,N),signalSequence:(E)=>`sigseq:v1:${S(E)}`,signalAcceptedResponsePrefix:(E)=>`sigres:v1:${S(E)}:`,signalAcceptedResponse:(E,_,F)=>`sigres:v1:${S(E)}:${S(_)}:${S(F)}`,deadline:(E,_)=>`wf-deadline:${R(E)}:${S(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${R(E)}:${S(_)}`,teardownTimer:(E,_)=>`wf-teardown:${R(E)}:${S(_)}`,delayedStart:(E,_)=>`wf-delayed:${R(E)}:${S(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${R(E)}:${S(_)}`,attribute:(E)=>`attr:${S(E)}`,attributeIndex:(E,_,F)=>`idx:${E}:${_}:${S(F)}`,tagIndex:(E,_)=>`tag:${S(E)}:${S(_)}`,updatePrefix:(E)=>`upd:${S(E)}:`,update:(E,_)=>`upd:${S(E)}:${_}`,updateResponse:(E)=>`upr:${E}`,updateIdempotency:(E,_)=>`upk:${S(E)}:${_}`,startIdempotency:(E)=>`start-idem:${S(E)}`,startIdempotencySignalId:(E)=>`start-idem:${E}`,livenessPrefix:()=>"liveness:",liveness:(E)=>`liveness:${S(E)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(E,_,F)=>`budget:${E}:${_}:${F}`,review:(E,_)=>`review:${S(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${S(E)}`,childCancellationPrefix:(E)=>`child-cancel:${S(E)}:`,childCancellation:(E,_)=>`child-cancel:${S(E)}:${S(_)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${S(E)}`,workflowConcurrency:(E,_)=>`wf-concurrency:${S(E)}:${S(_)}`,workflowConcurrencyHolder:(E)=>`wf-concurrency-holder:${S(E)}`,workflowHasServices:(E)=>`wf-has-services:${S(E)}`,finalizerState:(E)=>`wf-finalizer-state:${S(E)}`,teardownOwed:(E)=>`wf-teardown-needed:${S(E)}`,teardownDeadLetter:(E)=>`wf-teardown-deadletter:${S(E)}`,offload:(E,_)=>`offload:${S(E)}:${_}`,archive:(E,_)=>`archive:${S(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${S(E)}:${S(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${V}:${S(E)}:${S(_)}`,streamChunkPrefix:(E,_)=>`blob:${S(E)}:${_}:chunk:`,streamChunk:(E,_,F)=>`blob:${S(E)}:${_}:chunk:${String(F).padStart(10,"0")}`,streamTail:(E,_)=>`blob:${S(E)}:${_}:tail`,streamMetadata:(E,_)=>`blob:${S(E)}:${_}:meta`,budgetCharged:(E)=>`budget-charged:${E}`,toolEffect:(E,_,F)=>`tool-effect:${S(E)}:${_}:${F}`,workflowVisibilityStatus:(E,_)=>`wf-idx-status:${S(E)}:${S(_)}`,workflowVisibilityType:(E,_)=>`wf-idx-type:${S(E)}:${S(_)}`,workflowVisibilityCreated:(E,_)=>`wf-idx-created:${R(E)}:${S(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${R(E)}:${S(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${R(E)}:${S(_)}`,workflowVisibilityManifest:(E)=>`wf-idx-manifest:${S(E)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});h();export{EE as tryDecodeStorageKeyComponent,k as storageValuesEqual,d as storageKeys,t as storageHas,i as storageDeletePrefix,w as storageCount,e as storageConditionalBatch,r as storageBatch,I as resolvePrefixRangeEnd,L as requireStorageCapability,l as matchesScanOptions,S as encodeStorageKeyComponent,o as decodeStorageKeyComponent,J as assertStorageBatchOperationCount,H as assertDurableStorageForRecovery,C as WEFT_RESERVED_KEY_PREFIXES,j as StorageBatchOperationLimitExceededError,a as MAX_SCAN_LIMIT,G as MAX_BATCH_OPERATIONS,_E as KEYS,V as DEFAULT_SCOPE};
2
+ var B=Object.defineProperty;var T=(E)=>E;function v(E,_){this[E]=T.bind(null,_)}var b=(E,_)=>{for(var F in _)B(E,F,{get:_[F],enumerable:!0,configurable:!0,set:v.bind(_,F)})};var K=(E,_)=>()=>(E&&(_=E(E=0)),_);var A=import.meta.require,c=(E,_,F)=>{if(_!=null){if(typeof _!=="object"&&typeof _!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let P;if(F)P=_[Symbol.asyncDispose];if(P===void 0)P=_[Symbol.dispose];if(typeof P!=="function")throw TypeError("Object not disposable");E.push([F,P,_])}else if(F)E.push([F]);return _},m=(E,_,F)=>{let P=(W)=>_=F?new SuppressedError(W,_,"An error was suppressed during disposal"):(F=!0,W),Y=(W)=>{while(W=E.pop())try{var z=W[1]&&W[1].call(W[2]);if(W[0])return Promise.resolve(z).then(Y,(D)=>(P(D),Y()))}catch(D){P(D)}if(F)throw _};return Y()};function L(E,_,F){if(!E.capabilities()[_])throw Error(`Feature "${F}" requires storage capability "${_}", but this storage backend does not provide it.`)}function H(E){let _=E.capabilities(),F=[];if(_.persistence!=="local"&&_.persistence!=="remote")F.push(`persistence must be "local" or "remote" (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 V="default";async function M(E,_){return await E.get(_)!==null}async function*X(E,_,F){for await(let[P]of E.scan(_,F))yield P}async function O(E,_){let F=0;for await(let P of X(E,_))F++;return F}async function Q(E,_){let F=[];for await(let P of X(E,_))F.push({type:"delete",key:P});if(F.length===0)return 0;return await E.batch(F),F.length}async function g(E,_,F){let P=[];for await(let Y of X(E,_,F))P.push({type:"delete",key:Y});if(P.length===0)return 0;return await E.batch(P),P.length}var C;var Z=K(()=>{C=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function J(E,_){if(_>G)throw new j(E,_)}function l(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function k(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 t(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 d(E,_){if(E.has)return E.has(_);return M(E,_)}function w(E,_,F){if(E.keys)return E.keys(_,F);return X(E,_,F)}async function i(E,_){if(E.count)return E.count(_);return O(E,_)}async function r(E,_){if(E.deletePrefix)return E.deletePrefix(_);return Q(E,_)}async function e(E,_){J("batch operations",_.length),await E.batch(_)}async function o(E,_,F){if(J("conditionalBatch conditions",_.length),J("conditionalBatch operations",F.length),L(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 S(E){return encodeURIComponent(E)}function EE(E){return decodeURIComponent(E)}function _E(E){try{return decodeURIComponent(E)}catch{return null}}var G=1e4,I=1e4,j,R=(E)=>String(E).padStart(16,"0"),N="0",q="1",$=(E,_,F,P)=>`sig:${S(E)}:${S(_)}:${P}:${S(F)}`,SE;var h=K(()=>{Z();j=class j extends Error{code="StorageBatchOperationLimitExceededError";cap=G;count;target;constructor(E,_){super(`${E} count ${_} exceeds MAX_BATCH_OPERATIONS (${G}).`);this.name="StorageBatchOperationLimitExceededError",this.target=E,this.count=_}};SE={workflow:(E)=>`wf:${S(E)}`,checkpoint:(E)=>`wf:${S(E)}:ckpt`,checkpointHistory:(E,_)=>`wf:${S(E)}:ckpt:${String(_).padStart(10,"0")}`,timelinePrefix:(E)=>`wf:${S(E)}:timeline:`,timeline:(E,_)=>`wf:${S(E)}:timeline:${String(_).padStart(10,"0")}`,schedule:(E)=>`schedule:${S(E)}`,scheduleTick:(E,_)=>`schedule-due:${String(E).padStart(16,"0")}:${S(_)}`,scheduleRun:(E)=>`schedule-run:${S(E)}`,operation:(E,_,F)=>`op:${E}:${R(_)}:${F}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(E)=>`op:dead-letter:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,F)=>`audit:bulk:${R(E)}:${S(_)}:${S(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${R(E)}:${S(_)}`,asyncActivity:(E,_)=>`async-act:v1:${S(E)}:${S(_)}`,activityReconciliationPrefix:(E)=>`actrec:v1:${S(E)}:`,activityReconciliation:(E,_,F)=>`actrec:v1:${S(E)}:${S(_)}:${F}`,eventPrefix:(E)=>`ev:${S(E)}:`,event:(E,_)=>`ev:${S(E)}:${String(_).padStart(10,"0")}`,eventHead:(E)=>`ev:${S(E)}:head`,eventWatermark:(E)=>`ev:${S(E)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(E)=>`fleet-event:${String(E).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(E)=>`fleet-event-by-workflow:${S(E)}:`,fleetEventByWorkflow:(E,_)=>`fleet-event-by-workflow:${S(E)}:${String(_).padStart(10,"0")}`,signal:(E,_,F)=>$(E,_,F,q),startSignal:(E,_,F)=>$(E,_,F,N),signalSequence:(E)=>`sigseq:v1:${S(E)}`,signalAcceptedResponsePrefix:(E)=>`sigres:v1:${S(E)}:`,signalAcceptedResponse:(E,_,F)=>`sigres:v1:${S(E)}:${S(_)}:${S(F)}`,deadline:(E,_)=>`wf-deadline:${R(E)}:${S(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${R(E)}:${S(_)}`,teardownTimer:(E,_)=>`wf-teardown:${R(E)}:${S(_)}`,delayedStart:(E,_)=>`wf-delayed:${R(E)}:${S(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${R(E)}:${S(_)}`,attribute:(E)=>`attr:${S(E)}`,attributeIndex:(E,_,F)=>`idx:${E}:${_}:${S(F)}`,tagIndex:(E,_)=>`tag:${S(E)}:${S(_)}`,updatePrefix:(E)=>`upd:${S(E)}:`,update:(E,_)=>`upd:${S(E)}:${_}`,updateResponse:(E)=>`upr:${E}`,updateIdempotency:(E,_)=>`upk:${S(E)}:${_}`,startIdempotency:(E)=>`start-idem:${S(E)}`,startIdempotencySignalId:(E)=>`start-idem:${E}`,livenessPrefix:()=>"liveness:",liveness:(E)=>`liveness:${S(E)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(E,_,F)=>`budget:${E}:${_}:${F}`,review:(E,_)=>`review:${S(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${S(E)}`,childCancellationPrefix:(E)=>`child-cancel:${S(E)}:`,childCancellation:(E,_)=>`child-cancel:${S(E)}:${S(_)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${S(E)}`,workflowConcurrency:(E,_)=>`wf-concurrency:${S(E)}:${S(_)}`,workflowConcurrencyHolder:(E)=>`wf-concurrency-holder:${S(E)}`,workflowHasServices:(E)=>`wf-has-services:${S(E)}`,finalizerState:(E)=>`wf-finalizer-state:${S(E)}`,teardownOwed:(E)=>`wf-teardown-needed:${S(E)}`,teardownDeadLetter:(E)=>`wf-teardown-deadletter:${S(E)}`,offload:(E,_)=>`offload:${S(E)}:${_}`,archive:(E,_)=>`archive:${S(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${S(E)}:${S(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${V}:${S(E)}:${S(_)}`,streamChunkPrefix:(E,_)=>`blob:${S(E)}:${_}:chunk:`,streamChunk:(E,_,F)=>`blob:${S(E)}:${_}:chunk:${String(F).padStart(10,"0")}`,streamTail:(E,_)=>`blob:${S(E)}:${_}:tail`,streamMetadata:(E,_)=>`blob:${S(E)}:${_}:meta`,budgetCharged:(E)=>`budget-charged:${E}`,toolEffect:(E,_,F)=>`tool-effect:${S(E)}:${_}:${F}`,workflowVisibilityStatus:(E,_)=>`wf-idx-status:${S(E)}:${S(_)}`,workflowVisibilityType:(E,_)=>`wf-idx-type:${S(E)}:${S(_)}`,workflowVisibilityCreated:(E,_)=>`wf-idx-created:${R(E)}:${S(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${R(E)}:${S(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${R(E)}:${S(_)}`,workflowVisibilityManifest:(E)=>`wf-idx-manifest:${S(E)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});h();export{_E as tryDecodeStorageKeyComponent,t as storageValuesEqual,w as storageKeys,d as storageHas,r as storageDeletePrefix,i as storageCount,o as storageConditionalBatch,e as storageBatch,l as resolvePrefixRangeEnd,L as requireStorageCapability,k as matchesScanOptions,S as encodeStorageKeyComponent,EE as decodeStorageKeyComponent,J as assertStorageBatchOperationCount,H as assertDurableStorageForRecovery,C as WEFT_RESERVED_KEY_PREFIXES,j as StorageBatchOperationLimitExceededError,I as MAX_SCAN_LIMIT,G as MAX_BATCH_OPERATIONS,SE as KEYS,V as DEFAULT_SCOPE};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- var d=Object.defineProperty;var p=(E)=>E;function a(E,_){this[E]=p.bind(null,_)}var s=(E,_)=>{for(var F in _)d(E,F,{get:_[F],enumerable:!0,configurable:!0,set:a.bind(_,F)})};var $=(E,_)=>()=>(E&&(_=E(E=0)),_);var FE=(E,_,F)=>{if(_!=null){if(typeof _!=="object"&&typeof _!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let Y;if(F)Y=_[Symbol.asyncDispose];if(Y===void 0)Y=_[Symbol.dispose];if(typeof Y!=="function")throw TypeError("Object not disposable");E.push([F,Y,_])}else if(F)E.push([F]);return _},WE=(E,_,F)=>{let Y=(U)=>_=F?new SuppressedError(U,_,"An error was suppressed during disposal"):(F=!0,U),X=(U)=>{while(U=E.pop())try{var Q=U[1]&&U[1].call(U[2]);if(U[0])return Promise.resolve(Q).then(X,(J)=>(Y(J),X()))}catch(J){Y(J)}if(F)throw _};return X()};function L(E,_,F){if(!E.capabilities()[_])throw Error(`Feature "${F}" requires storage capability "${_}", but this storage backend does not provide it.`)}function n(E){let _=E.capabilities(),F=[];if(_.persistence!=="local"&&_.persistence!=="remote")F.push(`persistence must be "local" or "remote" (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 D="default";async function A(E,_){return await E.get(_)!==null}async function*j(E,_,F){for await(let[Y]of E.scan(_,F))yield Y}async function z(E,_){let F=0;for await(let Y of j(E,_))F++;return F}async function K(E,_){let F=[];for await(let Y of j(E,_))F.push({type:"delete",key:Y});if(F.length===0)return 0;return await E.batch(F),F.length}async function h(E,_,F){let Y=[];for await(let X of j(E,_,F))Y.push({type:"delete",key:X});if(Y.length===0)return 0;return await E.batch(Y),Y.length}var r;var v=$(()=>{r=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function M(E,_){if(_>N)throw new O(E,_)}function V(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function R(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 b(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 m(E,_){if(E.has)return E.has(_);return A(E,_)}function c(E,_,F){if(E.keys)return E.keys(_,F);return j(E,_,F)}async function u(E,_){if(E.count)return E.count(_);return z(E,_)}async function x(E,_){if(E.deletePrefix)return E.deletePrefix(_);return K(E,_)}async function TE(E,_){M("batch operations",_.length),await E.batch(_)}async function y(E,_,F){if(M("conditionalBatch conditions",_.length),M("conditionalBatch operations",F.length),L(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 jE(E){return decodeURIComponent(E)}function HE(E){try{return decodeURIComponent(E)}catch{return null}}var N=1e4,$E=1e4,O,G=(E)=>String(E).padStart(16,"0"),t="0",i="1",P=(E,_,F,Y)=>`sig:${W(E)}:${W(_)}:${Y}:${W(F)}`,VE;var S=$(()=>{v();O=class O extends Error{code="StorageBatchOperationLimitExceededError";cap=N;count;target;constructor(E,_){super(`${E} count ${_} exceeds MAX_BATCH_OPERATIONS (${N}).`);this.name="StorageBatchOperationLimitExceededError",this.target=E,this.count=_}};VE={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}:${G(_)}:${F}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(E)=>`op:dead-letter:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,F)=>`audit:bulk:${G(E)}:${W(_)}:${W(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${G(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`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(E)=>`fleet-event:${String(E).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(E)=>`fleet-event-by-workflow:${W(E)}:`,fleetEventByWorkflow:(E,_)=>`fleet-event-by-workflow:${W(E)}:${String(_).padStart(10,"0")}`,signal:(E,_,F)=>P(E,_,F,i),startSignal:(E,_,F)=>P(E,_,F,t),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:${G(E)}:${W(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${G(E)}:${W(_)}`,teardownTimer:(E,_)=>`wf-teardown:${G(E)}:${W(_)}`,delayedStart:(E,_)=>`wf-delayed:${G(E)}:${W(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${G(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)}:${_}`,startIdempotency:(E)=>`start-idem:${W(E)}`,startIdempotencySignalId:(E)=>`start-idem:${E}`,livenessPrefix:()=>"liveness:",liveness:(E)=>`liveness:${W(E)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(E,_,F)=>`budget:${E}:${_}:${F}`,review:(E,_)=>`review:${W(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${W(E)}`,childCancellationPrefix:(E)=>`child-cancel:${W(E)}:`,childCancellation:(E,_)=>`child-cancel:${W(E)}:${W(_)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${W(E)}`,workflowConcurrency:(E,_)=>`wf-concurrency:${W(E)}:${W(_)}`,workflowConcurrencyHolder:(E)=>`wf-concurrency-holder:${W(E)}`,workflowHasServices:(E)=>`wf-has-services:${W(E)}`,finalizerState:(E)=>`wf-finalizer-state:${W(E)}`,teardownOwed:(E)=>`wf-teardown-needed:${W(E)}`,teardownDeadLetter:(E)=>`wf-teardown-deadletter:${W(E)}`,offload:(E,_)=>`offload:${W(E)}:${_}`,archive:(E,_)=>`archive:${W(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${W(E)}:${W(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${D}:${W(E)}:${W(_)}`,streamChunkPrefix:(E,_)=>`blob:${W(E)}:${_}:chunk:`,streamChunk:(E,_,F)=>`blob:${W(E)}:${_}:chunk:${String(F).padStart(10,"0")}`,streamTail:(E,_)=>`blob:${W(E)}:${_}:tail`,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:${G(E)}:${W(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${G(E)}:${W(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${G(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"}});function e(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 _={},F=!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,F=!0}if(!F)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=e(E.limit);if(Y!==void 0)_.limit=Y;return _}async function g(E,_,F){let Y=H(F);if(E.deleteRange)return E.deleteRange(_,Y);return h(E,_,Y)}var q=()=>{};function B(E){return E.replaceAll(/:+$/g,"")}function o(E,_){let F=B(E),Y=B(_);if(F.length===0)return Y;if(Y.length===0)return F;return`${F}:${Y}`}function I(E,_){return new C(E,_)}var C;var w=$(()=>{q();S();C=class C{#E;#W;constructor(E,_){this.#E=E,this.#W=B(_)}#_(E){if(this.#W.length===0)return E;return E.length===0?`${this.#W}:`:`${this.#W}:${E}`}#F(E){if(this.#W.length===0)return E;return E.slice(this.#W.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 C(this.#E,o(this.#W,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[F,Y]of this.#E.scan(this.#_(E),this.#Y(_)))yield[this.#F(F),Y]}async batch(E){M("batch operations",E.length),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 y(this.#E,E.map((F)=>({key:this.#_(F.key),expectedValue:F.expectedValue})),_.map((F)=>{if(F.type==="put")return{type:"put",key:this.#_(F.key),value:F.value};return{type:"delete",key:this.#_(F.key)}}))}async has(E){return m(this.#E,this.#_(E))}async deletePrefix(E){return x(this.#E,this.#_(E))}async deleteRange(E,_){let F=this.#X(H(_));return g(this.#E,this.#_(E),F)}async*keys(E,_){for await(let F of c(this.#E,this.#_(E),this.#Y(_)))yield this.#F(F)}async count(E){return u(this.#E,this.#_(E))}[Symbol.dispose](){this.#E[Symbol.dispose]()}}});var EE={};s(EE,{LMDBStorage:()=>l});import*as k from"lmdb";var l;var _E=$(()=>{q();S();w();l=class l{#E;#W=!1;#_=null;constructor(E){this.#E=k.open({path:E,encoding:"binary"})}#F(){if(this.#W)throw Error("LMDBStorage is closed")}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!1}}async get(E){this.#F();let _=this.#E.get(E);if(_===void 0)return null;return new Uint8Array(_)}async put(E,_){this.#F(),await this.#E.put(E,Buffer.from(_))}async delete(E){this.#F(),await this.#E.remove(E)}async has(E){return this.#F(),this.#E.doesExist(E)}async deletePrefix(E){this.#F();let _=[];for await(let F of this.keys(E))_.push(F);if(_.length===0)return 0;return await this.#E.batch(()=>{for(let F of _)this.#E.remove(F)}),_.length}async deleteRange(E,_){this.#F();let F=H(_),Y=[];for await(let X of this.keys(E,F))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.#F();let{limit:F,reverse:Y}=_,X=V(E),U=Y?this.#E.getRange({start:X,end:E,reverse:!0}):this.#E.getRange({start:E,end:X}),Q=0,J=!1;for(let{key:Z,value:f}of U){if(!Z.startsWith(E)){if(Y&&!J)continue;break}if(J=!0,!R(Z,_))continue;if(F!==void 0&&Q>=F)break;yield[Z,new Uint8Array(f)],Q++}}async*keys(E,_={}){this.#F();let{limit:F,reverse:Y}=_,X=V(E),U=Y?this.#E.getKeys({start:X,end:E,reverse:!0}):this.#E.getKeys({start:E,end:X}),Q=0,J=!1;for(let Z of U){if(!Z.startsWith(E)){if(Y&&!J)continue;break}if(J=!0,!R(Z,_))continue;if(F!==void 0&&Q>=F)break;yield Z,Q++}}async count(E){this.#F();let _=V(E);return this.#E.getKeysCount({start:E,end:_})}scoped(E){return this.#F(),I(this,E)}async batch(E){if(this.#F(),M("batch operations",E.length),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.#F(),M("conditionalBatch conditions",E.length),M("conditionalBatch operations",_.length),this.#E.transactionSync(()=>{for(let Y of E){let X=this.#E.get(Y.key),U=X===void 0?null:new Uint8Array(X);if(!b(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.#W=!0,this.#_??=(async()=>{await Promise.resolve(),await this.#E.close()})(),this.#_}[Symbol.dispose](){this.close()}}});_E();export{l as LMDBStorage};
2
+ var d=Object.defineProperty;var p=(E)=>E;function a(E,_){this[E]=p.bind(null,_)}var s=(E,_)=>{for(var F in _)d(E,F,{get:_[F],enumerable:!0,configurable:!0,set:a.bind(_,F)})};var $=(E,_)=>()=>(E&&(_=E(E=0)),_);var FE=import.meta.require,WE=(E,_,F)=>{if(_!=null){if(typeof _!=="object"&&typeof _!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let Y;if(F)Y=_[Symbol.asyncDispose];if(Y===void 0)Y=_[Symbol.dispose];if(typeof Y!=="function")throw TypeError("Object not disposable");E.push([F,Y,_])}else if(F)E.push([F]);return _},YE=(E,_,F)=>{let Y=(U)=>_=F?new SuppressedError(U,_,"An error was suppressed during disposal"):(F=!0,U),X=(U)=>{while(U=E.pop())try{var Q=U[1]&&U[1].call(U[2]);if(U[0])return Promise.resolve(Q).then(X,(J)=>(Y(J),X()))}catch(J){Y(J)}if(F)throw _};return X()};function L(E,_,F){if(!E.capabilities()[_])throw Error(`Feature "${F}" requires storage capability "${_}", but this storage backend does not provide it.`)}function n(E){let _=E.capabilities(),F=[];if(_.persistence!=="local"&&_.persistence!=="remote")F.push(`persistence must be "local" or "remote" (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 D="default";async function A(E,_){return await E.get(_)!==null}async function*j(E,_,F){for await(let[Y]of E.scan(_,F))yield Y}async function z(E,_){let F=0;for await(let Y of j(E,_))F++;return F}async function K(E,_){let F=[];for await(let Y of j(E,_))F.push({type:"delete",key:Y});if(F.length===0)return 0;return await E.batch(F),F.length}async function h(E,_,F){let Y=[];for await(let X of j(E,_,F))Y.push({type:"delete",key:X});if(Y.length===0)return 0;return await E.batch(Y),Y.length}var r;var v=$(()=>{r=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function M(E,_){if(_>N)throw new O(E,_)}function V(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function R(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 b(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 m(E,_){if(E.has)return E.has(_);return A(E,_)}function c(E,_,F){if(E.keys)return E.keys(_,F);return j(E,_,F)}async function u(E,_){if(E.count)return E.count(_);return z(E,_)}async function x(E,_){if(E.deletePrefix)return E.deletePrefix(_);return K(E,_)}async function jE(E,_){M("batch operations",_.length),await E.batch(_)}async function y(E,_,F){if(M("conditionalBatch conditions",_.length),M("conditionalBatch operations",F.length),L(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 HE(E){return decodeURIComponent(E)}function VE(E){try{return decodeURIComponent(E)}catch{return null}}var N=1e4,TE=1e4,O,G=(E)=>String(E).padStart(16,"0"),t="0",i="1",P=(E,_,F,Y)=>`sig:${W(E)}:${W(_)}:${Y}:${W(F)}`,LE;var S=$(()=>{v();O=class O extends Error{code="StorageBatchOperationLimitExceededError";cap=N;count;target;constructor(E,_){super(`${E} count ${_} exceeds MAX_BATCH_OPERATIONS (${N}).`);this.name="StorageBatchOperationLimitExceededError",this.target=E,this.count=_}};LE={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}:${G(_)}:${F}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(E)=>`op:dead-letter:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,F)=>`audit:bulk:${G(E)}:${W(_)}:${W(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${G(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`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(E)=>`fleet-event:${String(E).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(E)=>`fleet-event-by-workflow:${W(E)}:`,fleetEventByWorkflow:(E,_)=>`fleet-event-by-workflow:${W(E)}:${String(_).padStart(10,"0")}`,signal:(E,_,F)=>P(E,_,F,i),startSignal:(E,_,F)=>P(E,_,F,t),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:${G(E)}:${W(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${G(E)}:${W(_)}`,teardownTimer:(E,_)=>`wf-teardown:${G(E)}:${W(_)}`,delayedStart:(E,_)=>`wf-delayed:${G(E)}:${W(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${G(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)}:${_}`,startIdempotency:(E)=>`start-idem:${W(E)}`,startIdempotencySignalId:(E)=>`start-idem:${E}`,livenessPrefix:()=>"liveness:",liveness:(E)=>`liveness:${W(E)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(E,_,F)=>`budget:${E}:${_}:${F}`,review:(E,_)=>`review:${W(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${W(E)}`,childCancellationPrefix:(E)=>`child-cancel:${W(E)}:`,childCancellation:(E,_)=>`child-cancel:${W(E)}:${W(_)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${W(E)}`,workflowConcurrency:(E,_)=>`wf-concurrency:${W(E)}:${W(_)}`,workflowConcurrencyHolder:(E)=>`wf-concurrency-holder:${W(E)}`,workflowHasServices:(E)=>`wf-has-services:${W(E)}`,finalizerState:(E)=>`wf-finalizer-state:${W(E)}`,teardownOwed:(E)=>`wf-teardown-needed:${W(E)}`,teardownDeadLetter:(E)=>`wf-teardown-deadletter:${W(E)}`,offload:(E,_)=>`offload:${W(E)}:${_}`,archive:(E,_)=>`archive:${W(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${W(E)}:${W(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${D}:${W(E)}:${W(_)}`,streamChunkPrefix:(E,_)=>`blob:${W(E)}:${_}:chunk:`,streamChunk:(E,_,F)=>`blob:${W(E)}:${_}:chunk:${String(F).padStart(10,"0")}`,streamTail:(E,_)=>`blob:${W(E)}:${_}:tail`,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:${G(E)}:${W(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${G(E)}:${W(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${G(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"}});function e(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 _={},F=!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,F=!0}if(!F)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=e(E.limit);if(Y!==void 0)_.limit=Y;return _}async function g(E,_,F){let Y=H(F);if(E.deleteRange)return E.deleteRange(_,Y);return h(E,_,Y)}var q=()=>{};function B(E){return E.replaceAll(/:+$/g,"")}function o(E,_){let F=B(E),Y=B(_);if(F.length===0)return Y;if(Y.length===0)return F;return`${F}:${Y}`}function I(E,_){return new C(E,_)}var C;var w=$(()=>{q();S();C=class C{#E;#W;constructor(E,_){this.#E=E,this.#W=B(_)}#_(E){if(this.#W.length===0)return E;return E.length===0?`${this.#W}:`:`${this.#W}:${E}`}#F(E){if(this.#W.length===0)return E;return E.slice(this.#W.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 C(this.#E,o(this.#W,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[F,Y]of this.#E.scan(this.#_(E),this.#Y(_)))yield[this.#F(F),Y]}async batch(E){M("batch operations",E.length),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 y(this.#E,E.map((F)=>({key:this.#_(F.key),expectedValue:F.expectedValue})),_.map((F)=>{if(F.type==="put")return{type:"put",key:this.#_(F.key),value:F.value};return{type:"delete",key:this.#_(F.key)}}))}async has(E){return m(this.#E,this.#_(E))}async deletePrefix(E){return x(this.#E,this.#_(E))}async deleteRange(E,_){let F=this.#X(H(_));return g(this.#E,this.#_(E),F)}async*keys(E,_){for await(let F of c(this.#E,this.#_(E),this.#Y(_)))yield this.#F(F)}async count(E){return u(this.#E,this.#_(E))}[Symbol.dispose](){this.#E[Symbol.dispose]()}}});var EE={};s(EE,{LMDBStorage:()=>l});import*as k from"lmdb";var l;var _E=$(()=>{q();S();w();l=class l{#E;#W=!1;#_=null;constructor(E){this.#E=k.open({path:E,encoding:"binary"})}#F(){if(this.#W)throw Error("LMDBStorage is closed")}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!1}}async get(E){this.#F();let _=this.#E.get(E);if(_===void 0)return null;return new Uint8Array(_)}async put(E,_){this.#F(),await this.#E.put(E,Buffer.from(_))}async delete(E){this.#F(),await this.#E.remove(E)}async has(E){return this.#F(),this.#E.doesExist(E)}async deletePrefix(E){this.#F();let _=[];for await(let F of this.keys(E))_.push(F);if(_.length===0)return 0;return await this.#E.batch(()=>{for(let F of _)this.#E.remove(F)}),_.length}async deleteRange(E,_){this.#F();let F=H(_),Y=[];for await(let X of this.keys(E,F))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.#F();let{limit:F,reverse:Y}=_,X=V(E),U=Y?this.#E.getRange({start:X,end:E,reverse:!0}):this.#E.getRange({start:E,end:X}),Q=0,J=!1;for(let{key:Z,value:f}of U){if(!Z.startsWith(E)){if(Y&&!J)continue;break}if(J=!0,!R(Z,_))continue;if(F!==void 0&&Q>=F)break;yield[Z,new Uint8Array(f)],Q++}}async*keys(E,_={}){this.#F();let{limit:F,reverse:Y}=_,X=V(E),U=Y?this.#E.getKeys({start:X,end:E,reverse:!0}):this.#E.getKeys({start:E,end:X}),Q=0,J=!1;for(let Z of U){if(!Z.startsWith(E)){if(Y&&!J)continue;break}if(J=!0,!R(Z,_))continue;if(F!==void 0&&Q>=F)break;yield Z,Q++}}async count(E){this.#F();let _=V(E);return this.#E.getKeysCount({start:E,end:_})}scoped(E){return this.#F(),I(this,E)}async batch(E){if(this.#F(),M("batch operations",E.length),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.#F(),M("conditionalBatch conditions",E.length),M("conditionalBatch operations",_.length),this.#E.transactionSync(()=>{for(let Y of E){let X=this.#E.get(Y.key),U=X===void 0?null:new Uint8Array(X);if(!b(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.#W=!0,this.#_??=(async()=>{await Promise.resolve(),await this.#E.close()})(),this.#_}[Symbol.dispose](){this.close()}}});_E();export{l as LMDBStorage};
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- var f=Object.defineProperty;var l=(_)=>_;function d(_,E){this[_]=l.bind(null,E)}var a=(_,E)=>{for(var F in E)f(_,F,{get:E[F],enumerable:!0,configurable:!0,set:d.bind(E,F)})};var $=(_,E)=>()=>(_&&(E=_(_=0)),E);var __=(_,E,F)=>{if(E!=null){if(typeof E!=="object"&&typeof E!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let Y;if(F)Y=E[Symbol.asyncDispose];if(Y===void 0)Y=E[Symbol.dispose];if(typeof Y!=="function")throw TypeError("Object not disposable");_.push([F,Y,E])}else if(F)_.push([F]);return E},E_=(_,E,F)=>{let Y=(X)=>E=F?new SuppressedError(X,E,"An error was suppressed during disposal"):(F=!0,X),U=(X)=>{while(X=_.pop())try{var J=X[1]&&X[1].call(X[2]);if(X[0])return Promise.resolve(J).then(U,(G)=>(Y(G),U()))}catch(G){Y(G)}if(F)throw E};return U()};function L(_,E,F){if(!_.capabilities()[E])throw Error(`Feature "${F}" requires storage capability "${E}", but this storage backend does not provide it.`)}function p(_){let E=_.capabilities(),F=[];if(E.persistence!=="local"&&E.persistence!=="remote")F.push(`persistence must be "local" or "remote" (got "${E.persistence}")`);if(E.readAfterWrite!=="linearizable")F.push(`readAfterWrite must be "linearizable" (got "${E.readAfterWrite}")`);if(E.scanConsistency!=="snapshot")F.push(`scanConsistency must be "snapshot" (got "${E.scanConsistency}")`);if(!E.atomicBatch)F.push("atomicBatch must be true");if(!E.conditionalBatch)F.push("conditionalBatch must be true");if(F.length>0)throw Error(`Storage is not durable enough for recovery: ${F.join("; ")}.`)}var D="default";async function S(_,E){return await _.get(E)!==null}async function*V(_,E,F){for await(let[Y]of _.scan(E,F))yield Y}async function z(_,E){let F=0;for await(let Y of V(_,E))F++;return F}async function P(_,E){let F=[];for await(let Y of V(_,E))F.push({type:"delete",key:Y});if(F.length===0)return 0;return await _.batch(F),F.length}async function v(_,E,F){let Y=[];for await(let U of V(_,E,F))Y.push({type:"delete",key:U});if(Y.length===0)return 0;return await _.batch(Y),Y.length}var s;var h=$(()=>{s=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function Q(_,E){if(E>N)throw new K(_,E)}function Z(_){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 b(_,E){if(_===null||E===null)return _===E;if(_.byteLength!==E.byteLength)return!1;for(let F=0;F<_.byteLength;F++)if(_[F]!==E[F])return!1;return!0}async function m(_,E){if(_.has)return _.has(E);return S(_,E)}function c(_,E,F){if(_.keys)return _.keys(E,F);return V(_,E,F)}async function u(_,E){if(_.count)return _.count(E);return z(_,E)}async function x(_,E){if(_.deletePrefix)return _.deletePrefix(E);return P(_,E)}async function Z_(_,E){Q("batch operations",E.length),await _.batch(E)}async function g(_,E,F){if(Q("conditionalBatch conditions",E.length),Q("conditionalBatch operations",F.length),L(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(E,F)}function W(_){return encodeURIComponent(_)}function $_(_){return decodeURIComponent(_)}function T_(_){try{return decodeURIComponent(_)}catch{return null}}var N=1e4,Q_=1e4,K,M=(_)=>String(_).padStart(16,"0"),n="0",r="1",O=(_,E,F,Y)=>`sig:${W(_)}:${W(E)}:${Y}:${W(F)}`,V_;var q=$(()=>{h();K=class K extends Error{code="StorageBatchOperationLimitExceededError";cap=N;count;target;constructor(_,E){super(`${_} count ${E} exceeds MAX_BATCH_OPERATIONS (${N}).`);this.name="StorageBatchOperationLimitExceededError",this.target=_,this.count=E}};V_={workflow:(_)=>`wf:${W(_)}`,checkpoint:(_)=>`wf:${W(_)}:ckpt`,checkpointHistory:(_,E)=>`wf:${W(_)}:ckpt:${String(E).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${W(_)}:timeline:`,timeline:(_,E)=>`wf:${W(_)}:timeline:${String(E).padStart(10,"0")}`,schedule:(_)=>`schedule:${W(_)}`,scheduleTick:(_,E)=>`schedule-due:${String(_).padStart(16,"0")}:${W(E)}`,scheduleRun:(_)=>`schedule-run:${W(_)}`,operation:(_,E,F)=>`op:${_}:${M(E)}:${F}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(_)=>`op:dead-letter:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,E,F)=>`audit:bulk:${M(_)}:${W(E)}:${W(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,E)=>`op:resolved-by-time:${M(_)}:${W(E)}`,asyncActivity:(_,E)=>`async-act:v1:${W(_)}:${W(E)}`,activityReconciliationPrefix:(_)=>`actrec:v1:${W(_)}:`,activityReconciliation:(_,E,F)=>`actrec:v1:${W(_)}:${W(E)}:${F}`,eventPrefix:(_)=>`ev:${W(_)}:`,event:(_,E)=>`ev:${W(_)}:${String(E).padStart(10,"0")}`,eventHead:(_)=>`ev:${W(_)}:head`,eventWatermark:(_)=>`ev:${W(_)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(_)=>`fleet-event:${String(_).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(_)=>`fleet-event-by-workflow:${W(_)}:`,fleetEventByWorkflow:(_,E)=>`fleet-event-by-workflow:${W(_)}:${String(E).padStart(10,"0")}`,signal:(_,E,F)=>O(_,E,F,r),startSignal:(_,E,F)=>O(_,E,F,n),signalSequence:(_)=>`sigseq:v1:${W(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${W(_)}:`,signalAcceptedResponse:(_,E,F)=>`sigres:v1:${W(_)}:${W(E)}:${W(F)}`,deadline:(_,E)=>`wf-deadline:${M(_)}:${W(E)}`,terminalCleanup:(_,E)=>`wf-cleanup:${M(_)}:${W(E)}`,teardownTimer:(_,E)=>`wf-teardown:${M(_)}:${W(E)}`,delayedStart:(_,E)=>`wf-delayed:${M(_)}:${W(E)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,E)=>`wf-terminal:${M(_)}:${W(E)}`,attribute:(_)=>`attr:${W(_)}`,attributeIndex:(_,E,F)=>`idx:${_}:${E}:${W(F)}`,tagIndex:(_,E)=>`tag:${W(_)}:${W(E)}`,updatePrefix:(_)=>`upd:${W(_)}:`,update:(_,E)=>`upd:${W(_)}:${E}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,E)=>`upk:${W(_)}:${E}`,startIdempotency:(_)=>`start-idem:${W(_)}`,startIdempotencySignalId:(_)=>`start-idem:${_}`,livenessPrefix:()=>"liveness:",liveness:(_)=>`liveness:${W(_)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(_,E,F)=>`budget:${_}:${E}:${F}`,review:(_,E)=>`review:${W(_)}:${E}`,workflowHeaders:(_)=>`wf-headers:${W(_)}`,childCancellationPrefix:(_)=>`child-cancel:${W(_)}:`,childCancellation:(_,E)=>`child-cancel:${W(_)}:${W(E)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${W(_)}`,workflowConcurrency:(_,E)=>`wf-concurrency:${W(_)}:${W(E)}`,workflowConcurrencyHolder:(_)=>`wf-concurrency-holder:${W(_)}`,workflowHasServices:(_)=>`wf-has-services:${W(_)}`,finalizerState:(_)=>`wf-finalizer-state:${W(_)}`,teardownOwed:(_)=>`wf-teardown-needed:${W(_)}`,teardownDeadLetter:(_)=>`wf-teardown-deadletter:${W(_)}`,offload:(_,E)=>`offload:${W(_)}:${E}`,archive:(_,E)=>`archive:${W(_)}:${E}`,stateExecution:(_,E)=>`state:execution:${W(_)}:${W(E)}`,stateWorkflow:(_,E)=>`state:workflow-scope:${D}:${W(_)}:${W(E)}`,streamChunkPrefix:(_,E)=>`blob:${W(_)}:${E}:chunk:`,streamChunk:(_,E,F)=>`blob:${W(_)}:${E}:chunk:${String(F).padStart(10,"0")}`,streamTail:(_,E)=>`blob:${W(_)}:${E}:tail`,streamMetadata:(_,E)=>`blob:${W(_)}:${E}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,E,F)=>`tool-effect:${W(_)}:${E}:${F}`,workflowVisibilityStatus:(_,E)=>`wf-idx-status:${W(_)}:${W(E)}`,workflowVisibilityType:(_,E)=>`wf-idx-type:${W(_)}:${W(E)}`,workflowVisibilityCreated:(_,E)=>`wf-idx-created:${M(_)}:${W(E)}`,workflowVisibilityUpdated:(_,E)=>`wf-idx-updated:${M(_)}:${W(E)}`,workflowVisibilityDeadline:(_,E)=>`wf-idx-deadline:${M(_)}:${W(E)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${W(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function t(_){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 j(_){let E={},F=!1;for(let U of["gt","gte","lt","lte"]){let X=_[U];if(X===void 0)continue;if(typeof X!=="string")throw Error("deleteRange bounds must be strings");E[U]=X,F=!0}if(!F)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=t(_.limit);if(Y!==void 0)E.limit=Y;return E}async function I(_,E,F){let Y=j(F);if(_.deleteRange)return _.deleteRange(E,Y);return v(_,E,Y)}var C=()=>{};function R(_){return _.replaceAll(/:+$/g,"")}function i(_,E){let F=R(_),Y=R(E);if(F.length===0)return Y;if(Y.length===0)return F;return`${F}:${Y}`}function y(_,E){return new B(_,E)}var B;var w=$(()=>{C();q();B=class B{#_;#F;constructor(_,E){this.#_=_,this.#F=R(E)}#E(_){if(this.#F.length===0)return _;return _.length===0?`${this.#F}:`:`${this.#F}:${_}`}#W(_){if(this.#F.length===0)return _;return _.slice(this.#F.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 B(this.#_,i(this.#F,_))}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[F,Y]of this.#_.scan(this.#E(_),this.#Y(E)))yield[this.#W(F),Y]}async batch(_){Q("batch operations",_.length),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 g(this.#_,_.map((F)=>({key:this.#E(F.key),expectedValue:F.expectedValue})),E.map((F)=>{if(F.type==="put")return{type:"put",key:this.#E(F.key),value:F.value};return{type:"delete",key:this.#E(F.key)}}))}async has(_){return m(this.#_,this.#E(_))}async deletePrefix(_){return x(this.#_,this.#E(_))}async deleteRange(_,E){let F=this.#X(j(E));return I(this.#_,this.#E(_),F)}async*keys(_,E){for await(let F of c(this.#_,this.#E(_),this.#Y(E)))yield this.#W(F)}async count(_){return u(this.#_,this.#E(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}});var e={};a(e,{MemoryStorage:()=>k});var k;var o=$(()=>{C();q();w();k=class k{#_;constructor(){this.#_=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#F(_,E,F){return _>=E&&_<F}#E(_,E){let F=[];for(let Y of this.#_.keys())if(this.#F(Y,_,E))F.push(Y);return F.toSorted()}async get(_){return this.#_.get(_)??null}async put(_,E){this.#_.set(_,E)}async delete(_){this.#_.delete(_)}async*scan(_,E={}){let{limit:F,reverse:Y}=E,U=Z(_),X=this.#E(_,U);if(X=X.filter((G)=>H(G,E)),Y)X.reverse();let J=0;for(let G of X){if(F!==void 0&&J>=F)break;let A=this.#_.get(G);if(A!==void 0)yield[G,A],J++}}async batch(_){Q("batch operations",_.length),this.#W(_)}#W(_){for(let E of _)if(E.type==="put")this.#_.set(E.key,E.value);else this.#_.delete(E.key)}async conditionalBatch(_,E){Q("conditionalBatch conditions",_.length),Q("conditionalBatch operations",E.length);for(let F of _){let Y=this.#_.get(F.key)??null;if(!b(Y,F.expectedValue))return!1}return this.#W(E),!0}async has(_){return this.#_.has(_)}async deletePrefix(_){let E=Z(_),F=this.#E(_,E);for(let Y of F)this.#_.delete(Y);return F.length}async deleteRange(_,E){let F=j(E),Y=Z(_),U=this.#E(_,Y).filter((J)=>H(J,F)),X=F.limit===void 0?U:U.slice(0,F.limit);for(let J of X)this.#_.delete(J);return X.length}async*keys(_,E={}){let{limit:F,reverse:Y}=E,U=Z(_),X=this.#E(_,U);if(X=X.filter((G)=>H(G,E)),Y)X.reverse();let J=0;for(let G of X){if(F!==void 0&&J>=F)break;yield G,J++}}async count(_){let E=Z(_);return this.#E(_,E).length}scoped(_){return y(this,_)}get size(){return this.#_.size}clear(){this.#_.clear()}snapshot(){let _=new Map;for(let[E,F]of this.#_)_.set(E,new Uint8Array(F));return _}[Symbol.dispose](){this.#_.clear()}}});o();export{k as MemoryStorage};
2
+ var f=Object.defineProperty;var l=(_)=>_;function d(_,E){this[_]=l.bind(null,E)}var a=(_,E)=>{for(var F in E)f(_,F,{get:E[F],enumerable:!0,configurable:!0,set:d.bind(E,F)})};var $=(_,E)=>()=>(_&&(E=_(_=0)),E);var __=import.meta.require,E_=(_,E,F)=>{if(E!=null){if(typeof E!=="object"&&typeof E!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let Y;if(F)Y=E[Symbol.asyncDispose];if(Y===void 0)Y=E[Symbol.dispose];if(typeof Y!=="function")throw TypeError("Object not disposable");_.push([F,Y,E])}else if(F)_.push([F]);return E},F_=(_,E,F)=>{let Y=(X)=>E=F?new SuppressedError(X,E,"An error was suppressed during disposal"):(F=!0,X),U=(X)=>{while(X=_.pop())try{var J=X[1]&&X[1].call(X[2]);if(X[0])return Promise.resolve(J).then(U,(G)=>(Y(G),U()))}catch(G){Y(G)}if(F)throw E};return U()};function L(_,E,F){if(!_.capabilities()[E])throw Error(`Feature "${F}" requires storage capability "${E}", but this storage backend does not provide it.`)}function p(_){let E=_.capabilities(),F=[];if(E.persistence!=="local"&&E.persistence!=="remote")F.push(`persistence must be "local" or "remote" (got "${E.persistence}")`);if(E.readAfterWrite!=="linearizable")F.push(`readAfterWrite must be "linearizable" (got "${E.readAfterWrite}")`);if(E.scanConsistency!=="snapshot")F.push(`scanConsistency must be "snapshot" (got "${E.scanConsistency}")`);if(!E.atomicBatch)F.push("atomicBatch must be true");if(!E.conditionalBatch)F.push("conditionalBatch must be true");if(F.length>0)throw Error(`Storage is not durable enough for recovery: ${F.join("; ")}.`)}var D="default";async function S(_,E){return await _.get(E)!==null}async function*V(_,E,F){for await(let[Y]of _.scan(E,F))yield Y}async function z(_,E){let F=0;for await(let Y of V(_,E))F++;return F}async function P(_,E){let F=[];for await(let Y of V(_,E))F.push({type:"delete",key:Y});if(F.length===0)return 0;return await _.batch(F),F.length}async function v(_,E,F){let Y=[];for await(let U of V(_,E,F))Y.push({type:"delete",key:U});if(Y.length===0)return 0;return await _.batch(Y),Y.length}var s;var h=$(()=>{s=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function Q(_,E){if(E>N)throw new K(_,E)}function Z(_){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 b(_,E){if(_===null||E===null)return _===E;if(_.byteLength!==E.byteLength)return!1;for(let F=0;F<_.byteLength;F++)if(_[F]!==E[F])return!1;return!0}async function m(_,E){if(_.has)return _.has(E);return S(_,E)}function c(_,E,F){if(_.keys)return _.keys(E,F);return V(_,E,F)}async function u(_,E){if(_.count)return _.count(E);return z(_,E)}async function x(_,E){if(_.deletePrefix)return _.deletePrefix(E);return P(_,E)}async function $_(_,E){Q("batch operations",E.length),await _.batch(E)}async function g(_,E,F){if(Q("conditionalBatch conditions",E.length),Q("conditionalBatch operations",F.length),L(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(E,F)}function W(_){return encodeURIComponent(_)}function T_(_){return decodeURIComponent(_)}function V_(_){try{return decodeURIComponent(_)}catch{return null}}var N=1e4,Z_=1e4,K,M=(_)=>String(_).padStart(16,"0"),n="0",r="1",O=(_,E,F,Y)=>`sig:${W(_)}:${W(E)}:${Y}:${W(F)}`,j_;var q=$(()=>{h();K=class K extends Error{code="StorageBatchOperationLimitExceededError";cap=N;count;target;constructor(_,E){super(`${_} count ${E} exceeds MAX_BATCH_OPERATIONS (${N}).`);this.name="StorageBatchOperationLimitExceededError",this.target=_,this.count=E}};j_={workflow:(_)=>`wf:${W(_)}`,checkpoint:(_)=>`wf:${W(_)}:ckpt`,checkpointHistory:(_,E)=>`wf:${W(_)}:ckpt:${String(E).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${W(_)}:timeline:`,timeline:(_,E)=>`wf:${W(_)}:timeline:${String(E).padStart(10,"0")}`,schedule:(_)=>`schedule:${W(_)}`,scheduleTick:(_,E)=>`schedule-due:${String(_).padStart(16,"0")}:${W(E)}`,scheduleRun:(_)=>`schedule-run:${W(_)}`,operation:(_,E,F)=>`op:${_}:${M(E)}:${F}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(_)=>`op:dead-letter:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,E,F)=>`audit:bulk:${M(_)}:${W(E)}:${W(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,E)=>`op:resolved-by-time:${M(_)}:${W(E)}`,asyncActivity:(_,E)=>`async-act:v1:${W(_)}:${W(E)}`,activityReconciliationPrefix:(_)=>`actrec:v1:${W(_)}:`,activityReconciliation:(_,E,F)=>`actrec:v1:${W(_)}:${W(E)}:${F}`,eventPrefix:(_)=>`ev:${W(_)}:`,event:(_,E)=>`ev:${W(_)}:${String(E).padStart(10,"0")}`,eventHead:(_)=>`ev:${W(_)}:head`,eventWatermark:(_)=>`ev:${W(_)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(_)=>`fleet-event:${String(_).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(_)=>`fleet-event-by-workflow:${W(_)}:`,fleetEventByWorkflow:(_,E)=>`fleet-event-by-workflow:${W(_)}:${String(E).padStart(10,"0")}`,signal:(_,E,F)=>O(_,E,F,r),startSignal:(_,E,F)=>O(_,E,F,n),signalSequence:(_)=>`sigseq:v1:${W(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${W(_)}:`,signalAcceptedResponse:(_,E,F)=>`sigres:v1:${W(_)}:${W(E)}:${W(F)}`,deadline:(_,E)=>`wf-deadline:${M(_)}:${W(E)}`,terminalCleanup:(_,E)=>`wf-cleanup:${M(_)}:${W(E)}`,teardownTimer:(_,E)=>`wf-teardown:${M(_)}:${W(E)}`,delayedStart:(_,E)=>`wf-delayed:${M(_)}:${W(E)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,E)=>`wf-terminal:${M(_)}:${W(E)}`,attribute:(_)=>`attr:${W(_)}`,attributeIndex:(_,E,F)=>`idx:${_}:${E}:${W(F)}`,tagIndex:(_,E)=>`tag:${W(_)}:${W(E)}`,updatePrefix:(_)=>`upd:${W(_)}:`,update:(_,E)=>`upd:${W(_)}:${E}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,E)=>`upk:${W(_)}:${E}`,startIdempotency:(_)=>`start-idem:${W(_)}`,startIdempotencySignalId:(_)=>`start-idem:${_}`,livenessPrefix:()=>"liveness:",liveness:(_)=>`liveness:${W(_)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(_,E,F)=>`budget:${_}:${E}:${F}`,review:(_,E)=>`review:${W(_)}:${E}`,workflowHeaders:(_)=>`wf-headers:${W(_)}`,childCancellationPrefix:(_)=>`child-cancel:${W(_)}:`,childCancellation:(_,E)=>`child-cancel:${W(_)}:${W(E)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${W(_)}`,workflowConcurrency:(_,E)=>`wf-concurrency:${W(_)}:${W(E)}`,workflowConcurrencyHolder:(_)=>`wf-concurrency-holder:${W(_)}`,workflowHasServices:(_)=>`wf-has-services:${W(_)}`,finalizerState:(_)=>`wf-finalizer-state:${W(_)}`,teardownOwed:(_)=>`wf-teardown-needed:${W(_)}`,teardownDeadLetter:(_)=>`wf-teardown-deadletter:${W(_)}`,offload:(_,E)=>`offload:${W(_)}:${E}`,archive:(_,E)=>`archive:${W(_)}:${E}`,stateExecution:(_,E)=>`state:execution:${W(_)}:${W(E)}`,stateWorkflow:(_,E)=>`state:workflow-scope:${D}:${W(_)}:${W(E)}`,streamChunkPrefix:(_,E)=>`blob:${W(_)}:${E}:chunk:`,streamChunk:(_,E,F)=>`blob:${W(_)}:${E}:chunk:${String(F).padStart(10,"0")}`,streamTail:(_,E)=>`blob:${W(_)}:${E}:tail`,streamMetadata:(_,E)=>`blob:${W(_)}:${E}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,E,F)=>`tool-effect:${W(_)}:${E}:${F}`,workflowVisibilityStatus:(_,E)=>`wf-idx-status:${W(_)}:${W(E)}`,workflowVisibilityType:(_,E)=>`wf-idx-type:${W(_)}:${W(E)}`,workflowVisibilityCreated:(_,E)=>`wf-idx-created:${M(_)}:${W(E)}`,workflowVisibilityUpdated:(_,E)=>`wf-idx-updated:${M(_)}:${W(E)}`,workflowVisibilityDeadline:(_,E)=>`wf-idx-deadline:${M(_)}:${W(E)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${W(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function t(_){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 j(_){let E={},F=!1;for(let U of["gt","gte","lt","lte"]){let X=_[U];if(X===void 0)continue;if(typeof X!=="string")throw Error("deleteRange bounds must be strings");E[U]=X,F=!0}if(!F)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=t(_.limit);if(Y!==void 0)E.limit=Y;return E}async function I(_,E,F){let Y=j(F);if(_.deleteRange)return _.deleteRange(E,Y);return v(_,E,Y)}var C=()=>{};function R(_){return _.replaceAll(/:+$/g,"")}function i(_,E){let F=R(_),Y=R(E);if(F.length===0)return Y;if(Y.length===0)return F;return`${F}:${Y}`}function y(_,E){return new B(_,E)}var B;var w=$(()=>{C();q();B=class B{#_;#F;constructor(_,E){this.#_=_,this.#F=R(E)}#E(_){if(this.#F.length===0)return _;return _.length===0?`${this.#F}:`:`${this.#F}:${_}`}#W(_){if(this.#F.length===0)return _;return _.slice(this.#F.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 B(this.#_,i(this.#F,_))}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[F,Y]of this.#_.scan(this.#E(_),this.#Y(E)))yield[this.#W(F),Y]}async batch(_){Q("batch operations",_.length),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 g(this.#_,_.map((F)=>({key:this.#E(F.key),expectedValue:F.expectedValue})),E.map((F)=>{if(F.type==="put")return{type:"put",key:this.#E(F.key),value:F.value};return{type:"delete",key:this.#E(F.key)}}))}async has(_){return m(this.#_,this.#E(_))}async deletePrefix(_){return x(this.#_,this.#E(_))}async deleteRange(_,E){let F=this.#X(j(E));return I(this.#_,this.#E(_),F)}async*keys(_,E){for await(let F of c(this.#_,this.#E(_),this.#Y(E)))yield this.#W(F)}async count(_){return u(this.#_,this.#E(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}});var e={};a(e,{MemoryStorage:()=>k});var k;var o=$(()=>{C();q();w();k=class k{#_;constructor(){this.#_=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#F(_,E,F){return _>=E&&_<F}#E(_,E){let F=[];for(let Y of this.#_.keys())if(this.#F(Y,_,E))F.push(Y);return F.toSorted()}async get(_){return this.#_.get(_)??null}async put(_,E){this.#_.set(_,E)}async delete(_){this.#_.delete(_)}async*scan(_,E={}){let{limit:F,reverse:Y}=E,U=Z(_),X=this.#E(_,U);if(X=X.filter((G)=>H(G,E)),Y)X.reverse();let J=0;for(let G of X){if(F!==void 0&&J>=F)break;let A=this.#_.get(G);if(A!==void 0)yield[G,A],J++}}async batch(_){Q("batch operations",_.length),this.#W(_)}#W(_){for(let E of _)if(E.type==="put")this.#_.set(E.key,E.value);else this.#_.delete(E.key)}async conditionalBatch(_,E){Q("conditionalBatch conditions",_.length),Q("conditionalBatch operations",E.length);for(let F of _){let Y=this.#_.get(F.key)??null;if(!b(Y,F.expectedValue))return!1}return this.#W(E),!0}async has(_){return this.#_.has(_)}async deletePrefix(_){let E=Z(_),F=this.#E(_,E);for(let Y of F)this.#_.delete(Y);return F.length}async deleteRange(_,E){let F=j(E),Y=Z(_),U=this.#E(_,Y).filter((J)=>H(J,F)),X=F.limit===void 0?U:U.slice(0,F.limit);for(let J of X)this.#_.delete(J);return X.length}async*keys(_,E={}){let{limit:F,reverse:Y}=E,U=Z(_),X=this.#E(_,U);if(X=X.filter((G)=>H(G,E)),Y)X.reverse();let J=0;for(let G of X){if(F!==void 0&&J>=F)break;yield G,J++}}async count(_){let E=Z(_);return this.#E(_,E).length}scoped(_){return y(this,_)}get size(){return this.#_.size}clear(){this.#_.clear()}snapshot(){let _=new Map;for(let[E,F]of this.#_)_.set(E,new Uint8Array(F));return _}[Symbol.dispose](){this.#_.clear()}}});o();export{k as MemoryStorage};
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- var U_=Object.defineProperty;var Z_=(_)=>_;function G_(_,E){this[_]=Z_.bind(null,E)}var z_=(_,E)=>{for(var F in E)U_(_,F,{get:E[F],enumerable:!0,configurable:!0,set:G_.bind(E,F)})};var M=(_,E)=>()=>(_&&(E=_(_=0)),E);var v_=(_,E,F)=>{if(E!=null){if(typeof E!=="object"&&typeof E!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let W;if(F)W=E[Symbol.asyncDispose];if(W===void 0)W=E[Symbol.dispose];if(typeof W!=="function")throw TypeError("Object not disposable");_.push([F,W,E])}else if(F)_.push([F]);return E},P_=(_,E,F)=>{let W=(Y)=>E=F?new SuppressedError(Y,E,"An error was suppressed during disposal"):(F=!0,Y),J=(Y)=>{while(Y=_.pop())try{var Q=Y[1]&&Y[1].call(Y[2]);if(Y[0])return Promise.resolve(Q).then(J,(U)=>(W(U),J()))}catch(U){W(U)}if(F)throw E};return J()};function N(_,E,F){if(!_.capabilities()[E])throw Error(`Feature "${F}" requires storage capability "${E}", but this storage backend does not provide it.`)}function M_(_){let E=_.capabilities(),F=[];if(E.persistence!=="local"&&E.persistence!=="remote")F.push(`persistence must be "local" or "remote" (got "${E.persistence}")`);if(E.readAfterWrite!=="linearizable")F.push(`readAfterWrite must be "linearizable" (got "${E.readAfterWrite}")`);if(E.scanConsistency!=="snapshot")F.push(`scanConsistency must be "snapshot" (got "${E.scanConsistency}")`);if(!E.atomicBatch)F.push("atomicBatch must be true");if(!E.conditionalBatch)F.push("conditionalBatch must be true");if(F.length>0)throw Error(`Storage is not durable enough for recovery: ${F.join("; ")}.`)}var C="default";async function q(_,E){return await _.get(E)!==null}async function*H(_,E,F){for await(let[W]of _.scan(E,F))yield W}async function h(_,E){let F=0;for await(let W of H(_,E))F++;return F}async function b(_,E){let F=[];for await(let W of H(_,E))F.push({type:"delete",key:W});if(F.length===0)return 0;return await _.batch(F),F.length}async function x(_,E,F){let W=[];for await(let J of H(_,E,F))W.push({type:"delete",key:J});if(W.length===0)return 0;return await _.batch(W),W.length}var $_;var y=M(()=>{$_=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function G(_,E){if(E>A)throw new m(_,E)}function g(_){return _.length>0?_.slice(0,-1)+String.fromCharCode(_.charCodeAt(_.length-1)+1):"\xFF"}function u_(_,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 u(_,E){if(_===null||E===null)return _===E;if(_.byteLength!==E.byteLength)return!1;for(let F=0;F<_.byteLength;F++)if(_[F]!==E[F])return!1;return!0}async function c(_,E){if(_.has)return _.has(E);return q(_,E)}function k(_,E,F){if(_.keys)return _.keys(E,F);return H(_,E,F)}async function w(_,E){if(_.count)return _.count(E);return h(_,E)}async function f(_,E){if(_.deletePrefix)return _.deletePrefix(E);return b(_,E)}async function c_(_,E){G("batch operations",E.length),await _.batch(E)}async function d(_,E,F){if(G("conditionalBatch conditions",E.length),G("conditionalBatch operations",F.length),N(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(E,F)}function X(_){return encodeURIComponent(_)}function k_(_){return decodeURIComponent(_)}function w_(_){try{return decodeURIComponent(_)}catch{return null}}var A=1e4,g_=1e4,m,Z=(_)=>String(_).padStart(16,"0"),H_="0",V_="1",I=(_,E,F,W)=>`sig:${X(_)}:${X(E)}:${W}:${X(F)}`,f_;var V=M(()=>{y();m=class m extends Error{code="StorageBatchOperationLimitExceededError";cap=A;count;target;constructor(_,E){super(`${_} count ${E} exceeds MAX_BATCH_OPERATIONS (${A}).`);this.name="StorageBatchOperationLimitExceededError",this.target=_,this.count=E}};f_={workflow:(_)=>`wf:${X(_)}`,checkpoint:(_)=>`wf:${X(_)}:ckpt`,checkpointHistory:(_,E)=>`wf:${X(_)}:ckpt:${String(E).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${X(_)}:timeline:`,timeline:(_,E)=>`wf:${X(_)}:timeline:${String(E).padStart(10,"0")}`,schedule:(_)=>`schedule:${X(_)}`,scheduleTick:(_,E)=>`schedule-due:${String(_).padStart(16,"0")}:${X(E)}`,scheduleRun:(_)=>`schedule-run:${X(_)}`,operation:(_,E,F)=>`op:${_}:${Z(E)}:${F}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(_)=>`op:dead-letter:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,E,F)=>`audit:bulk:${Z(_)}:${X(E)}:${X(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,E)=>`op:resolved-by-time:${Z(_)}:${X(E)}`,asyncActivity:(_,E)=>`async-act:v1:${X(_)}:${X(E)}`,activityReconciliationPrefix:(_)=>`actrec:v1:${X(_)}:`,activityReconciliation:(_,E,F)=>`actrec:v1:${X(_)}:${X(E)}:${F}`,eventPrefix:(_)=>`ev:${X(_)}:`,event:(_,E)=>`ev:${X(_)}:${String(E).padStart(10,"0")}`,eventHead:(_)=>`ev:${X(_)}:head`,eventWatermark:(_)=>`ev:${X(_)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(_)=>`fleet-event:${String(_).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(_)=>`fleet-event-by-workflow:${X(_)}:`,fleetEventByWorkflow:(_,E)=>`fleet-event-by-workflow:${X(_)}:${String(E).padStart(10,"0")}`,signal:(_,E,F)=>I(_,E,F,V_),startSignal:(_,E,F)=>I(_,E,F,H_),signalSequence:(_)=>`sigseq:v1:${X(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${X(_)}:`,signalAcceptedResponse:(_,E,F)=>`sigres:v1:${X(_)}:${X(E)}:${X(F)}`,deadline:(_,E)=>`wf-deadline:${Z(_)}:${X(E)}`,terminalCleanup:(_,E)=>`wf-cleanup:${Z(_)}:${X(E)}`,teardownTimer:(_,E)=>`wf-teardown:${Z(_)}:${X(E)}`,delayedStart:(_,E)=>`wf-delayed:${Z(_)}:${X(E)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,E)=>`wf-terminal:${Z(_)}:${X(E)}`,attribute:(_)=>`attr:${X(_)}`,attributeIndex:(_,E,F)=>`idx:${_}:${E}:${X(F)}`,tagIndex:(_,E)=>`tag:${X(_)}:${X(E)}`,updatePrefix:(_)=>`upd:${X(_)}:`,update:(_,E)=>`upd:${X(_)}:${E}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,E)=>`upk:${X(_)}:${E}`,startIdempotency:(_)=>`start-idem:${X(_)}`,startIdempotencySignalId:(_)=>`start-idem:${_}`,livenessPrefix:()=>"liveness:",liveness:(_)=>`liveness:${X(_)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(_,E,F)=>`budget:${_}:${E}:${F}`,review:(_,E)=>`review:${X(_)}:${E}`,workflowHeaders:(_)=>`wf-headers:${X(_)}`,childCancellationPrefix:(_)=>`child-cancel:${X(_)}:`,childCancellation:(_,E)=>`child-cancel:${X(_)}:${X(E)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${X(_)}`,workflowConcurrency:(_,E)=>`wf-concurrency:${X(_)}:${X(E)}`,workflowConcurrencyHolder:(_)=>`wf-concurrency-holder:${X(_)}`,workflowHasServices:(_)=>`wf-has-services:${X(_)}`,finalizerState:(_)=>`wf-finalizer-state:${X(_)}`,teardownOwed:(_)=>`wf-teardown-needed:${X(_)}`,teardownDeadLetter:(_)=>`wf-teardown-deadletter:${X(_)}`,offload:(_,E)=>`offload:${X(_)}:${E}`,archive:(_,E)=>`archive:${X(_)}:${E}`,stateExecution:(_,E)=>`state:execution:${X(_)}:${X(E)}`,stateWorkflow:(_,E)=>`state:workflow-scope:${C}:${X(_)}:${X(E)}`,streamChunkPrefix:(_,E)=>`blob:${X(_)}:${E}:chunk:`,streamChunk:(_,E,F)=>`blob:${X(_)}:${E}:chunk:${String(F).padStart(10,"0")}`,streamTail:(_,E)=>`blob:${X(_)}:${E}:tail`,streamMetadata:(_,E)=>`blob:${X(_)}:${E}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,E,F)=>`tool-effect:${X(_)}:${E}:${F}`,workflowVisibilityStatus:(_,E)=>`wf-idx-status:${X(_)}:${X(E)}`,workflowVisibilityType:(_,E)=>`wf-idx-type:${X(_)}:${X(E)}`,workflowVisibilityCreated:(_,E)=>`wf-idx-created:${Z(_)}:${X(E)}`,workflowVisibilityUpdated:(_,E)=>`wf-idx-updated:${Z(_)}:${X(E)}`,workflowVisibilityDeadline:(_,E)=>`wf-idx-deadline:${Z(_)}:${X(E)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${X(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function j_(_){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 j(_){let E={},F=!1;for(let J of["gt","gte","lt","lte"]){let Y=_[J];if(Y===void 0)continue;if(typeof Y!=="string")throw Error("deleteRange bounds must be strings");E[J]=Y,F=!0}if(!F)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let W=j_(_.limit);if(W!==void 0)E.limit=W;return E}async function l(_,E,F){let W=j(F);if(_.deleteRange)return _.deleteRange(E,W);return x(_,E,W)}var S=()=>{};function T(_){return _.replaceAll(/:+$/g,"")}function L_(_,E){let F=T(_),W=T(E);if(F.length===0)return W;if(W.length===0)return F;return`${F}:${W}`}function p(_,E){return new K(_,E)}var K;var a=M(()=>{S();V();K=class K{#_;#E;constructor(_,E){this.#_=_,this.#E=T(E)}#F(_){if(this.#E.length===0)return _;return _.length===0?`${this.#E}:`:`${this.#E}:${_}`}#X(_){if(this.#E.length===0)return _;return _.slice(this.#E.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.#F(_.gt);if(_.gte!==void 0)E.gte=this.#F(_.gte);if(_.lt!==void 0)E.lt=this.#F(_.lt);if(_.lte!==void 0)E.lte=this.#F(_.lte);return E}#J(_){let E={};if(_.limit!==void 0)E.limit=_.limit;if(_.gt!==void 0)E.gt=this.#F(_.gt);if(_.gte!==void 0)E.gte=this.#F(_.gte);if(_.lt!==void 0)E.lt=this.#F(_.lt);if(_.lte!==void 0)E.lte=this.#F(_.lte);return E}capabilities(){return this.#_.capabilities()}scoped(_){return new K(this.#_,L_(this.#E,_))}async get(_){return this.#_.get(this.#F(_))}async put(_,E){await this.#_.put(this.#F(_),E)}async delete(_){await this.#_.delete(this.#F(_))}async*scan(_,E){for await(let[F,W]of this.#_.scan(this.#F(_),this.#Y(E)))yield[this.#X(F),W]}async batch(_){G("batch operations",_.length),await this.#_.batch(_.map((E)=>{if(E.type==="put")return{type:"put",key:this.#F(E.key),value:E.value};return{type:"delete",key:this.#F(E.key)}}))}async conditionalBatch(_,E){return d(this.#_,_.map((F)=>({key:this.#F(F.key),expectedValue:F.expectedValue})),E.map((F)=>{if(F.type==="put")return{type:"put",key:this.#F(F.key),value:F.value};return{type:"delete",key:this.#F(F.key)}}))}async has(_){return c(this.#_,this.#F(_))}async deletePrefix(_){return f(this.#_,this.#F(_))}async deleteRange(_,E){let F=this.#J(j(E));return l(this.#_,this.#F(_),F)}async*keys(_,E){for await(let F of k(this.#_,this.#F(_),this.#Y(E)))yield this.#X(F)}async count(_){return w(this.#_,this.#F(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}});function C_(_){return _.trim().replace(/;+\s*$/u,"").trim()}function A_(_){return B_.test(_)}function Y_(_){let E=C_(_);if(E.length===0)throw Error("Storage query must not be empty.");if(E.includes(";"))throw Error("Storage query must contain exactly one read-only statement.");if(N_.test(E))return;if(D_.test(E)&&A_(E))return;throw Error("Storage query only supports read-only SELECT and PRAGMA statements.")}var D_,B_,N_;var J_=M(()=>{D_=/^PRAGMA\b/iu,B_=/^PRAGMA\s+(?:[A-Z_][A-Z0-9_]*\.)?[A-Z_][A-Z0-9_]*\s*$/iu,N_=/^SELECT\b/iu});S();V();import{Pool as S_}from"@neondatabase/serverless";V();function O(_){return _.rowCount??_.affectedRows??_.rows.length}function L(_){if(_ instanceof Uint8Array)return new Uint8Array(_);return new Uint8Array(_)}function D(_){return Buffer.from(_)}function z(_){let E=new Map,F=new Set;for(let W of _)if(W.type==="put")F.delete(W.key),E.set(W.key,W.value);else E.delete(W.key),F.add(W.key);return{puts:E,deletes:F}}async function s(_,E,F){if(F.length===0)return!0;let W=F.map((Q)=>Q.key),J=await _.query(E.selectValuesByKeys,[W]),Y=new Map;for(let Q of J.rows){let U=Q.value;if(U!==null&&U!==void 0)Y.set(Q.key,L(U))}for(let Q of F){let U=Y.get(Q.key)??null;if(!u(U,Q.expectedValue))return!1}return!0}async function v(_,E,F){if(F.puts.size>0){let W=[],J=[];for(let[Y,Q]of F.puts)W.push(Y),J.push(D(Q));await _.query(E.upsertValuesByKeys,[W,J])}if(F.deletes.size>0)await _.query(E.deleteValuesByKeys,[[...F.deletes]])}V();var n="kv",i=/^[a-z_][a-z0-9_]*$/i;function P(_,E){if(!i.test(_))throw Error(`NeonStorage ${E} name "${_}" is not a valid Postgres identifier. Use only letters, digits, and underscores, starting with a letter or underscore (matching ${i.source}).`)}function t(_){let{schema:E,table:F}=_;if(E===void 0&&F===void 0)return n;let W=F??n;if(P(W,"table"),E===void 0)return`"${W}"`;return P(E,"schema"),`"${E}"."${W}"`}function B(_){return[_,g(_)]}function o(_,E){let{gt:F,gte:W,lt:J,lte:Y}=E,Q=B(_),U=["key >= $1 AND key < $2"];if(F!==void 0)Q.push(F),U.push(`key > $${Q.length}`);if(W!==void 0)Q.push(W),U.push(`key >= $${Q.length}`);if(J!==void 0)Q.push(J),U.push(`key < $${Q.length}`);if(Y!==void 0)Q.push(Y),U.push(`key <= $${Q.length}`);return{conditions:U,parameters:Q}}function r(_,E={}){let{limit:F,reverse:W}=E,{conditions:J,parameters:Y}=o(_,E),Q=W?"DESC":"ASC",U="";if(F!==void 0)Y.push(F),U=` LIMIT $${Y.length}`;return{parameters:Y,whereOrderLimit:`WHERE ${J.join(" AND ")} ORDER BY key ${Q}${U}`}}function e(_){let E=`CREATE TABLE IF NOT EXISTS ${_} (
2
+ var U_=Object.defineProperty;var Z_=(_)=>_;function G_(_,E){this[_]=Z_.bind(null,E)}var z_=(_,E)=>{for(var F in E)U_(_,F,{get:E[F],enumerable:!0,configurable:!0,set:G_.bind(E,F)})};var M=(_,E)=>()=>(_&&(E=_(_=0)),E);var v_=import.meta.require,P_=(_,E,F)=>{if(E!=null){if(typeof E!=="object"&&typeof E!=="function")throw TypeError('Object expected to be assigned to "using" declaration');let W;if(F)W=E[Symbol.asyncDispose];if(W===void 0)W=E[Symbol.dispose];if(typeof W!=="function")throw TypeError("Object not disposable");_.push([F,W,E])}else if(F)_.push([F]);return E},R_=(_,E,F)=>{let W=(Y)=>E=F?new SuppressedError(Y,E,"An error was suppressed during disposal"):(F=!0,Y),J=(Y)=>{while(Y=_.pop())try{var Q=Y[1]&&Y[1].call(Y[2]);if(Y[0])return Promise.resolve(Q).then(J,(U)=>(W(U),J()))}catch(U){W(U)}if(F)throw E};return J()};function N(_,E,F){if(!_.capabilities()[E])throw Error(`Feature "${F}" requires storage capability "${E}", but this storage backend does not provide it.`)}function M_(_){let E=_.capabilities(),F=[];if(E.persistence!=="local"&&E.persistence!=="remote")F.push(`persistence must be "local" or "remote" (got "${E.persistence}")`);if(E.readAfterWrite!=="linearizable")F.push(`readAfterWrite must be "linearizable" (got "${E.readAfterWrite}")`);if(E.scanConsistency!=="snapshot")F.push(`scanConsistency must be "snapshot" (got "${E.scanConsistency}")`);if(!E.atomicBatch)F.push("atomicBatch must be true");if(!E.conditionalBatch)F.push("conditionalBatch must be true");if(F.length>0)throw Error(`Storage is not durable enough for recovery: ${F.join("; ")}.`)}var C="default";async function q(_,E){return await _.get(E)!==null}async function*H(_,E,F){for await(let[W]of _.scan(E,F))yield W}async function h(_,E){let F=0;for await(let W of H(_,E))F++;return F}async function b(_,E){let F=[];for await(let W of H(_,E))F.push({type:"delete",key:W});if(F.length===0)return 0;return await _.batch(F),F.length}async function x(_,E,F){let W=[];for await(let J of H(_,E,F))W.push({type:"delete",key:J});if(W.length===0)return 0;return await _.batch(W),W.length}var $_;var y=M(()=>{$_=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","fleet-event-by-workflow:","fleet-event:","fleet-event-tail","idx:","lease:","liveness:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","start-idem:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-concurrency:","wf-concurrency-holder:","wf-deadline:","wf-delayed:","wf-finalizer-state:","wf-has-services:","wf-headers:","wf-idx-","wf-teardown:","wf-teardown-deadletter:","wf-teardown-needed:","wf-terminal:"]});function G(_,E){if(E>A)throw new m(_,E)}function g(_){return _.length>0?_.slice(0,-1)+String.fromCharCode(_.charCodeAt(_.length-1)+1):"\xFF"}function c_(_,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 u(_,E){if(_===null||E===null)return _===E;if(_.byteLength!==E.byteLength)return!1;for(let F=0;F<_.byteLength;F++)if(_[F]!==E[F])return!1;return!0}async function c(_,E){if(_.has)return _.has(E);return q(_,E)}function k(_,E,F){if(_.keys)return _.keys(E,F);return H(_,E,F)}async function w(_,E){if(_.count)return _.count(E);return h(_,E)}async function f(_,E){if(_.deletePrefix)return _.deletePrefix(E);return b(_,E)}async function k_(_,E){G("batch operations",E.length),await _.batch(E)}async function d(_,E,F){if(G("conditionalBatch conditions",E.length),G("conditionalBatch operations",F.length),N(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(E,F)}function X(_){return encodeURIComponent(_)}function w_(_){return decodeURIComponent(_)}function f_(_){try{return decodeURIComponent(_)}catch{return null}}var A=1e4,u_=1e4,m,Z=(_)=>String(_).padStart(16,"0"),H_="0",V_="1",I=(_,E,F,W)=>`sig:${X(_)}:${X(E)}:${W}:${X(F)}`,d_;var V=M(()=>{y();m=class m extends Error{code="StorageBatchOperationLimitExceededError";cap=A;count;target;constructor(_,E){super(`${_} count ${E} exceeds MAX_BATCH_OPERATIONS (${A}).`);this.name="StorageBatchOperationLimitExceededError",this.target=_,this.count=E}};d_={workflow:(_)=>`wf:${X(_)}`,checkpoint:(_)=>`wf:${X(_)}:ckpt`,checkpointHistory:(_,E)=>`wf:${X(_)}:ckpt:${String(E).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${X(_)}:timeline:`,timeline:(_,E)=>`wf:${X(_)}:timeline:${String(E).padStart(10,"0")}`,schedule:(_)=>`schedule:${X(_)}`,scheduleTick:(_,E)=>`schedule-due:${String(_).padStart(16,"0")}:${X(E)}`,scheduleRun:(_)=>`schedule-run:${X(_)}`,operation:(_,E,F)=>`op:${_}:${Z(E)}:${F}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,operationDeadLetterPrefix:()=>"op:dead-letter:",operationDeadLetter:(_)=>`op:dead-letter:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,E,F)=>`audit:bulk:${Z(_)}:${X(E)}:${X(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,E)=>`op:resolved-by-time:${Z(_)}:${X(E)}`,asyncActivity:(_,E)=>`async-act:v1:${X(_)}:${X(E)}`,activityReconciliationPrefix:(_)=>`actrec:v1:${X(_)}:`,activityReconciliation:(_,E,F)=>`actrec:v1:${X(_)}:${X(E)}:${F}`,eventPrefix:(_)=>`ev:${X(_)}:`,event:(_,E)=>`ev:${X(_)}:${String(E).padStart(10,"0")}`,eventHead:(_)=>`ev:${X(_)}:head`,eventWatermark:(_)=>`ev:${X(_)}:watermark`,fleetEventPrefix:()=>"fleet-event:",fleetEvent:(_)=>`fleet-event:${String(_).padStart(10,"0")}`,fleetEventTail:()=>"fleet-event-tail",fleetEventByWorkflowPrefix:(_)=>`fleet-event-by-workflow:${X(_)}:`,fleetEventByWorkflow:(_,E)=>`fleet-event-by-workflow:${X(_)}:${String(E).padStart(10,"0")}`,signal:(_,E,F)=>I(_,E,F,V_),startSignal:(_,E,F)=>I(_,E,F,H_),signalSequence:(_)=>`sigseq:v1:${X(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${X(_)}:`,signalAcceptedResponse:(_,E,F)=>`sigres:v1:${X(_)}:${X(E)}:${X(F)}`,deadline:(_,E)=>`wf-deadline:${Z(_)}:${X(E)}`,terminalCleanup:(_,E)=>`wf-cleanup:${Z(_)}:${X(E)}`,teardownTimer:(_,E)=>`wf-teardown:${Z(_)}:${X(E)}`,delayedStart:(_,E)=>`wf-delayed:${Z(_)}:${X(E)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,E)=>`wf-terminal:${Z(_)}:${X(E)}`,attribute:(_)=>`attr:${X(_)}`,attributeIndex:(_,E,F)=>`idx:${_}:${E}:${X(F)}`,tagIndex:(_,E)=>`tag:${X(_)}:${X(E)}`,updatePrefix:(_)=>`upd:${X(_)}:`,update:(_,E)=>`upd:${X(_)}:${E}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,E)=>`upk:${X(_)}:${E}`,startIdempotency:(_)=>`start-idem:${X(_)}`,startIdempotencySignalId:(_)=>`start-idem:${_}`,livenessPrefix:()=>"liveness:",liveness:(_)=>`liveness:${X(_)}`,leasePrefix:()=>"lease:",leaseEpoch:()=>"lease:epoch",leaseHolder:()=>"lease:holder",budget:(_,E,F)=>`budget:${_}:${E}:${F}`,review:(_,E)=>`review:${X(_)}:${E}`,workflowHeaders:(_)=>`wf-headers:${X(_)}`,childCancellationPrefix:(_)=>`child-cancel:${X(_)}:`,childCancellation:(_,E)=>`child-cancel:${X(_)}:${X(E)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${X(_)}`,workflowConcurrency:(_,E)=>`wf-concurrency:${X(_)}:${X(E)}`,workflowConcurrencyHolder:(_)=>`wf-concurrency-holder:${X(_)}`,workflowHasServices:(_)=>`wf-has-services:${X(_)}`,finalizerState:(_)=>`wf-finalizer-state:${X(_)}`,teardownOwed:(_)=>`wf-teardown-needed:${X(_)}`,teardownDeadLetter:(_)=>`wf-teardown-deadletter:${X(_)}`,offload:(_,E)=>`offload:${X(_)}:${E}`,archive:(_,E)=>`archive:${X(_)}:${E}`,stateExecution:(_,E)=>`state:execution:${X(_)}:${X(E)}`,stateWorkflow:(_,E)=>`state:workflow-scope:${C}:${X(_)}:${X(E)}`,streamChunkPrefix:(_,E)=>`blob:${X(_)}:${E}:chunk:`,streamChunk:(_,E,F)=>`blob:${X(_)}:${E}:chunk:${String(F).padStart(10,"0")}`,streamTail:(_,E)=>`blob:${X(_)}:${E}:tail`,streamMetadata:(_,E)=>`blob:${X(_)}:${E}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,E,F)=>`tool-effect:${X(_)}:${E}:${F}`,workflowVisibilityStatus:(_,E)=>`wf-idx-status:${X(_)}:${X(E)}`,workflowVisibilityType:(_,E)=>`wf-idx-type:${X(_)}:${X(E)}`,workflowVisibilityCreated:(_,E)=>`wf-idx-created:${Z(_)}:${X(E)}`,workflowVisibilityUpdated:(_,E)=>`wf-idx-updated:${Z(_)}:${X(E)}`,workflowVisibilityDeadline:(_,E)=>`wf-idx-deadline:${Z(_)}:${X(E)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${X(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function j_(_){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 j(_){let E={},F=!1;for(let J of["gt","gte","lt","lte"]){let Y=_[J];if(Y===void 0)continue;if(typeof Y!=="string")throw Error("deleteRange bounds must be strings");E[J]=Y,F=!0}if(!F)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let W=j_(_.limit);if(W!==void 0)E.limit=W;return E}async function l(_,E,F){let W=j(F);if(_.deleteRange)return _.deleteRange(E,W);return x(_,E,W)}var S=()=>{};function T(_){return _.replaceAll(/:+$/g,"")}function L_(_,E){let F=T(_),W=T(E);if(F.length===0)return W;if(W.length===0)return F;return`${F}:${W}`}function p(_,E){return new K(_,E)}var K;var a=M(()=>{S();V();K=class K{#_;#E;constructor(_,E){this.#_=_,this.#E=T(E)}#F(_){if(this.#E.length===0)return _;return _.length===0?`${this.#E}:`:`${this.#E}:${_}`}#X(_){if(this.#E.length===0)return _;return _.slice(this.#E.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.#F(_.gt);if(_.gte!==void 0)E.gte=this.#F(_.gte);if(_.lt!==void 0)E.lt=this.#F(_.lt);if(_.lte!==void 0)E.lte=this.#F(_.lte);return E}#J(_){let E={};if(_.limit!==void 0)E.limit=_.limit;if(_.gt!==void 0)E.gt=this.#F(_.gt);if(_.gte!==void 0)E.gte=this.#F(_.gte);if(_.lt!==void 0)E.lt=this.#F(_.lt);if(_.lte!==void 0)E.lte=this.#F(_.lte);return E}capabilities(){return this.#_.capabilities()}scoped(_){return new K(this.#_,L_(this.#E,_))}async get(_){return this.#_.get(this.#F(_))}async put(_,E){await this.#_.put(this.#F(_),E)}async delete(_){await this.#_.delete(this.#F(_))}async*scan(_,E){for await(let[F,W]of this.#_.scan(this.#F(_),this.#Y(E)))yield[this.#X(F),W]}async batch(_){G("batch operations",_.length),await this.#_.batch(_.map((E)=>{if(E.type==="put")return{type:"put",key:this.#F(E.key),value:E.value};return{type:"delete",key:this.#F(E.key)}}))}async conditionalBatch(_,E){return d(this.#_,_.map((F)=>({key:this.#F(F.key),expectedValue:F.expectedValue})),E.map((F)=>{if(F.type==="put")return{type:"put",key:this.#F(F.key),value:F.value};return{type:"delete",key:this.#F(F.key)}}))}async has(_){return c(this.#_,this.#F(_))}async deletePrefix(_){return f(this.#_,this.#F(_))}async deleteRange(_,E){let F=this.#J(j(E));return l(this.#_,this.#F(_),F)}async*keys(_,E){for await(let F of k(this.#_,this.#F(_),this.#Y(E)))yield this.#X(F)}async count(_){return w(this.#_,this.#F(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}});function C_(_){return _.trim().replace(/;+\s*$/u,"").trim()}function A_(_){return B_.test(_)}function Y_(_){let E=C_(_);if(E.length===0)throw Error("Storage query must not be empty.");if(E.includes(";"))throw Error("Storage query must contain exactly one read-only statement.");if(N_.test(E))return;if(D_.test(E)&&A_(E))return;throw Error("Storage query only supports read-only SELECT and PRAGMA statements.")}var D_,B_,N_;var J_=M(()=>{D_=/^PRAGMA\b/iu,B_=/^PRAGMA\s+(?:[A-Z_][A-Z0-9_]*\.)?[A-Z_][A-Z0-9_]*\s*$/iu,N_=/^SELECT\b/iu});S();V();import{Pool as S_}from"@neondatabase/serverless";V();function O(_){return _.rowCount??_.affectedRows??_.rows.length}function L(_){if(_ instanceof Uint8Array)return new Uint8Array(_);return new Uint8Array(_)}function D(_){return Buffer.from(_)}function z(_){let E=new Map,F=new Set;for(let W of _)if(W.type==="put")F.delete(W.key),E.set(W.key,W.value);else E.delete(W.key),F.add(W.key);return{puts:E,deletes:F}}async function s(_,E,F){if(F.length===0)return!0;let W=F.map((Q)=>Q.key),J=await _.query(E.selectValuesByKeys,[W]),Y=new Map;for(let Q of J.rows){let U=Q.value;if(U!==null&&U!==void 0)Y.set(Q.key,L(U))}for(let Q of F){let U=Y.get(Q.key)??null;if(!u(U,Q.expectedValue))return!1}return!0}async function v(_,E,F){if(F.puts.size>0){let W=[],J=[];for(let[Y,Q]of F.puts)W.push(Y),J.push(D(Q));await _.query(E.upsertValuesByKeys,[W,J])}if(F.deletes.size>0)await _.query(E.deleteValuesByKeys,[[...F.deletes]])}V();var n="kv",i=/^[a-z_][a-z0-9_]*$/i;function P(_,E){if(!i.test(_))throw Error(`NeonStorage ${E} name "${_}" is not a valid Postgres identifier. Use only letters, digits, and underscores, starting with a letter or underscore (matching ${i.source}).`)}function t(_){let{schema:E,table:F}=_;if(E===void 0&&F===void 0)return n;let W=F??n;if(P(W,"table"),E===void 0)return`"${W}"`;return P(E,"schema"),`"${E}"."${W}"`}function B(_){return[_,g(_)]}function o(_,E){let{gt:F,gte:W,lt:J,lte:Y}=E,Q=B(_),U=["key >= $1 AND key < $2"];if(F!==void 0)Q.push(F),U.push(`key > $${Q.length}`);if(W!==void 0)Q.push(W),U.push(`key >= $${Q.length}`);if(J!==void 0)Q.push(J),U.push(`key < $${Q.length}`);if(Y!==void 0)Q.push(Y),U.push(`key <= $${Q.length}`);return{conditions:U,parameters:Q}}function r(_,E={}){let{limit:F,reverse:W}=E,{conditions:J,parameters:Y}=o(_,E),Q=W?"DESC":"ASC",U="";if(F!==void 0)Y.push(F),U=` LIMIT $${Y.length}`;return{parameters:Y,whereOrderLimit:`WHERE ${J.join(" AND ")} ORDER BY key ${Q}${U}`}}function e(_){let E=`CREATE TABLE IF NOT EXISTS ${_} (
3
3
  key TEXT COLLATE "C" PRIMARY KEY,
4
4
  value BYTEA NOT NULL
5
5
  )`,F=`