@lostgradient/weft 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +493 -0
- package/dist/alerting/alert-manager.d.ts +42 -0
- package/dist/alerting/alert-manager.js +167 -0
- package/dist/alerting/index.d.ts +2 -0
- package/dist/alerting/index.js +1 -0
- package/dist/alerting/sliding-window.d.ts +26 -0
- package/dist/alerting/sliding-window.js +97 -0
- package/dist/alerting/types.d.ts +157 -0
- package/dist/alerting/types.js +0 -0
- package/dist/cli/api-arguments.d.ts +2 -0
- package/dist/cli/api-arguments.js +48 -0
- package/dist/cli/api.d.ts +13 -0
- package/dist/cli/api.js +191 -0
- package/dist/cli/codegen-arguments.d.ts +10 -0
- package/dist/cli/codegen-arguments.js +50 -0
- package/dist/cli/codegen-emit-keywords.d.ts +28 -0
- package/dist/cli/codegen-emit-keywords.js +48 -0
- package/dist/cli/codegen-emit.d.ts +50 -0
- package/dist/cli/codegen-emit.js +280 -0
- package/dist/cli/codegen.d.ts +38 -0
- package/dist/cli/codegen.js +268 -0
- package/dist/cli/command-suggestions.d.ts +9 -0
- package/dist/cli/command-suggestions.js +27 -0
- package/dist/cli/completions.d.ts +17 -0
- package/dist/cli/completions.js +112 -0
- package/dist/cli/conformance.d.ts +9 -0
- package/dist/cli/conformance.js +226 -0
- package/dist/cli/doctor.d.ts +6 -0
- package/dist/cli/doctor.js +9 -0
- package/dist/cli/generated/operation-client.generated.d.ts +605 -0
- package/dist/cli/generated/operation-client.generated.js +60 -0
- package/dist/cli/help-text.d.ts +13 -0
- package/dist/cli/help-text.js +269 -0
- package/dist/cli/index.d.ts +23 -0
- package/dist/cli/index.js +34 -0
- package/dist/cli/json-rpc-client.d.ts +15 -0
- package/dist/cli/json-rpc-client.js +37 -0
- package/dist/cli/noun-verb-arguments.d.ts +15 -0
- package/dist/cli/noun-verb-arguments.js +190 -0
- package/dist/cli/operation-catalog-snapshot.d.ts +38 -0
- package/dist/cli/operation-catalog-snapshot.js +48 -0
- package/dist/cli/operation-client-runtime.d.ts +47 -0
- package/dist/cli/operation-client-runtime.js +33 -0
- package/dist/cli/output.d.ts +66 -0
- package/dist/cli/output.js +83 -0
- package/dist/cli/parse-arguments.d.ts +3 -0
- package/dist/cli/parse-arguments.js +214 -0
- package/dist/cli/parse-schedule-arguments.d.ts +9 -0
- package/dist/cli/parse-schedule-arguments.js +132 -0
- package/dist/cli/schedule.d.ts +3 -0
- package/dist/cli/schedule.js +128 -0
- package/dist/cli/serve-registrations.d.ts +15 -0
- package/dist/cli/serve-registrations.js +23 -0
- package/dist/cli/server-client.d.ts +45 -0
- package/dist/cli/server-client.js +33 -0
- package/dist/cli/server-commands.d.ts +19 -0
- package/dist/cli/server-commands.js +151 -0
- package/dist/cli/storage-backend-arguments.d.ts +15 -0
- package/dist/cli/storage-backend-arguments.js +16 -0
- package/dist/cli/storage-factory.d.ts +8 -0
- package/dist/cli/storage-factory.js +18 -0
- package/dist/cli/subcommand-detection.d.ts +2 -0
- package/dist/cli/subcommand-detection.js +38 -0
- package/dist/cli/tail.d.ts +50 -0
- package/dist/cli/tail.js +161 -0
- package/dist/cli/timeline.d.ts +9 -0
- package/dist/cli/timeline.js +78 -0
- package/dist/cli/types.d.ts +224 -0
- package/dist/cli/types.js +0 -0
- package/dist/cli/utilities.d.ts +9 -0
- package/dist/cli/utilities.js +120 -0
- package/dist/cli/validate.d.ts +6 -0
- package/dist/cli/validate.js +70 -0
- package/dist/cli/version-check.d.ts +7 -0
- package/dist/cli/version-check.js +16 -0
- package/dist/cli/version.d.ts +7 -0
- package/dist/cli/version.js +4 -0
- package/dist/cli/workflow-commands.d.ts +15 -0
- package/dist/cli/workflow-commands.js +195 -0
- package/dist/cli-main.d.ts +2 -0
- package/dist/cli-main.js +402 -0
- package/dist/client/event-stream-transport.d.ts +73 -0
- package/dist/client/event-stream-transport.js +59 -0
- package/dist/client/event-stream.d.ts +90 -0
- package/dist/client/event-stream.js +221 -0
- package/dist/client/event-tail.d.ts +50 -0
- package/dist/client/event-tail.js +0 -0
- package/dist/client/handle-delegation.d.ts +73 -0
- package/dist/client/handle-delegation.js +66 -0
- package/dist/client/http-client-requests.d.ts +65 -0
- package/dist/client/http-client-requests.js +178 -0
- package/dist/client/http-client.d.ts +130 -0
- package/dist/client/http-client.js +217 -0
- package/dist/client/http-handle.d.ts +27 -0
- package/dist/client/http-handle.js +43 -0
- package/dist/client/http-operations.d.ts +29 -0
- package/dist/client/http-operations.js +36 -0
- package/dist/client/http-request.d.ts +101 -0
- package/dist/client/http-request.js +73 -0
- package/dist/client/http-schedule-handle.d.ts +5 -0
- package/dist/client/http-schedule-handle.js +5 -0
- package/dist/client/in-process-operations.d.ts +30 -0
- package/dist/client/in-process-operations.js +17 -0
- package/dist/client/index.d.ts +15 -0
- package/dist/client/index.js +2 -0
- package/dist/client/interface.d.ts +333 -0
- package/dist/client/interface.js +0 -0
- package/dist/client/local-event-tail.d.ts +30 -0
- package/dist/client/local-event-tail.js +131 -0
- package/dist/client/local.d.ts +115 -0
- package/dist/client/local.js +178 -0
- package/dist/client/open-event-subscription.d.ts +33 -0
- package/dist/client/open-event-subscription.js +5 -0
- package/dist/client/schedule-list-search-params.d.ts +3 -0
- package/dist/client/schedule-list-search-params.js +18 -0
- package/dist/client/search-params.d.ts +3 -0
- package/dist/client/search-params.js +54 -0
- package/dist/client/start-body.d.ts +9 -0
- package/dist/client/start-body.js +23 -0
- package/dist/client/workflow-name-typing.d.ts +33 -0
- package/dist/client/workflow-name-typing.js +0 -0
- package/dist/connection.d.ts +121 -0
- package/dist/connection.js +161 -0
- package/dist/core/activity-registry.d.ts +135 -0
- package/dist/core/activity-registry.js +174 -0
- package/dist/core/activity.d.ts +2 -0
- package/dist/core/activity.js +1 -0
- package/dist/core/aggregate-validation.d.ts +85 -0
- package/dist/core/aggregate-validation.js +48 -0
- package/dist/core/atomic-state-events.d.ts +214 -0
- package/dist/core/atomic-state-events.js +39 -0
- package/dist/core/atomic-state.d.ts +79 -0
- package/dist/core/atomic-state.js +231 -0
- package/dist/core/bulk-workflow-filter.d.ts +23 -0
- package/dist/core/bulk-workflow-filter.js +38 -0
- package/dist/core/checkpoint/comparison.d.ts +2 -0
- package/dist/core/checkpoint/comparison.js +137 -0
- package/dist/core/checkpoint/index.d.ts +4 -0
- package/dist/core/checkpoint/index.js +3 -0
- package/dist/core/checkpoint/interfaces.d.ts +11 -0
- package/dist/core/checkpoint/interfaces.js +0 -0
- package/dist/core/checkpoint/lifecycle.d.ts +49 -0
- package/dist/core/checkpoint/lifecycle.js +36 -0
- package/dist/core/checkpoint/serialization.d.ts +31 -0
- package/dist/core/checkpoint/serialization.js +155 -0
- package/dist/core/checkpoint/validation.d.ts +4 -0
- package/dist/core/checkpoint/validation.js +26 -0
- package/dist/core/checkpoint.d.ts +1 -0
- package/dist/core/checkpoint.js +1 -0
- package/dist/core/codec/api.d.ts +32 -0
- package/dist/core/codec/api.js +9 -0
- package/dist/core/codec/extension-codec.d.ts +7 -0
- package/dist/core/codec/extension-codec.js +145 -0
- package/dist/core/codec/index.d.ts +3 -0
- package/dist/core/codec/index.js +2 -0
- package/dist/core/codec/validation.d.ts +28 -0
- package/dist/core/codec/validation.js +139 -0
- package/dist/core/codec-helpers.d.ts +8 -0
- package/dist/core/codec-helpers.js +19 -0
- package/dist/core/codec.d.ts +1 -0
- package/dist/core/codec.js +1 -0
- package/dist/core/compression.d.ts +127 -0
- package/dist/core/compression.js +88 -0
- package/dist/core/concurrency-lock-record.d.ts +122 -0
- package/dist/core/concurrency-lock-record.js +53 -0
- package/dist/core/concurrency.d.ts +221 -0
- package/dist/core/concurrency.js +93 -0
- package/dist/core/constraint.d.ts +144 -0
- package/dist/core/constraint.js +3 -0
- package/dist/core/context/attributes.d.ts +7 -0
- package/dist/core/context/attributes.js +29 -0
- package/dist/core/context/child-workflow-pipe.d.ts +18 -0
- package/dist/core/context/child-workflow-pipe.js +111 -0
- package/dist/core/context/durable-operations.d.ts +29 -0
- package/dist/core/context/durable-operations.js +166 -0
- package/dist/core/context/index.d.ts +114 -0
- package/dist/core/context/index.js +224 -0
- package/dist/core/context/internals.d.ts +30 -0
- package/dist/core/context/internals.js +36 -0
- package/dist/core/context/operation-request.d.ts +160 -0
- package/dist/core/context/operation-request.js +0 -0
- package/dist/core/context/parallel-cache-entry.d.ts +91 -0
- package/dist/core/context/parallel-cache-entry.js +92 -0
- package/dist/core/context/parallel-operations.d.ts +9 -0
- package/dist/core/context/parallel-operations.js +202 -0
- package/dist/core/context/run-operation.d.ts +21 -0
- package/dist/core/context/run-operation.js +231 -0
- package/dist/core/context/saga.d.ts +4 -0
- package/dist/core/context/saga.js +65 -0
- package/dist/core/context/session-state.d.ts +22 -0
- package/dist/core/context/session-state.js +154 -0
- package/dist/core/context/speculate-operations.d.ts +4 -0
- package/dist/core/context/speculate-operations.js +14 -0
- package/dist/core/context/speculative-child.d.ts +6 -0
- package/dist/core/context/speculative-child.js +67 -0
- package/dist/core/context/state-namespace.d.ts +27 -0
- package/dist/core/context/state-namespace.js +138 -0
- package/dist/core/context/types.d.ts +181 -0
- package/dist/core/context/types.js +0 -0
- package/dist/core/context/updates.d.ts +46 -0
- package/dist/core/context/updates.js +21 -0
- package/dist/core/context/validation.d.ts +2 -0
- package/dist/core/context/validation.js +12 -0
- package/dist/core/context.d.ts +1 -0
- package/dist/core/context.js +1 -0
- package/dist/core/debug-output.d.ts +3 -0
- package/dist/core/debug-output.js +112 -0
- package/dist/core/effect-log/index.d.ts +194 -0
- package/dist/core/effect-log/index.js +104 -0
- package/dist/core/engine/activity-reconciliation.d.ts +108 -0
- package/dist/core/engine/activity-reconciliation.js +182 -0
- package/dist/core/engine/aggregate.d.ts +47 -0
- package/dist/core/engine/aggregate.js +132 -0
- package/dist/core/engine/anonymous-signal-sequence.d.ts +4 -0
- package/dist/core/engine/anonymous-signal-sequence.js +101 -0
- package/dist/core/engine/async-activity-completion.d.ts +141 -0
- package/dist/core/engine/async-activity-completion.js +131 -0
- package/dist/core/engine/attributes-tags.d.ts +31 -0
- package/dist/core/engine/attributes-tags.js +178 -0
- package/dist/core/engine/broadcast.d.ts +8 -0
- package/dist/core/engine/broadcast.js +26 -0
- package/dist/core/engine/bulk-operations-purge.d.ts +11 -0
- package/dist/core/engine/bulk-operations-purge.js +246 -0
- package/dist/core/engine/bulk-operations-shared.d.ts +28 -0
- package/dist/core/engine/bulk-operations-shared.js +198 -0
- package/dist/core/engine/bulk-operations.d.ts +21 -0
- package/dist/core/engine/bulk-operations.js +128 -0
- package/dist/core/engine/callback-creators-bundles.d.ts +25 -0
- package/dist/core/engine/callback-creators-bundles.js +154 -0
- package/dist/core/engine/callback-creators-core.d.ts +39 -0
- package/dist/core/engine/callback-creators-core.js +136 -0
- package/dist/core/engine/callback-creators-router-registry.d.ts +4 -0
- package/dist/core/engine/callback-creators-router-registry.js +9 -0
- package/dist/core/engine/callback-creators-router.d.ts +3 -0
- package/dist/core/engine/callback-creators-router.js +68 -0
- package/dist/core/engine/callback-creators-schedule.d.ts +13 -0
- package/dist/core/engine/callback-creators-schedule.js +65 -0
- package/dist/core/engine/callback-creators.d.ts +9 -0
- package/dist/core/engine/callback-creators.js +87 -0
- package/dist/core/engine/cancel-handlers.d.ts +6 -0
- package/dist/core/engine/cancel-handlers.js +32 -0
- package/dist/core/engine/checkpoint-commit-snapshots.d.ts +4 -0
- package/dist/core/engine/checkpoint-commit-snapshots.js +16 -0
- package/dist/core/engine/checkpoint-io.d.ts +34 -0
- package/dist/core/engine/checkpoint-io.js +183 -0
- package/dist/core/engine/checkpoint-reads.d.ts +22 -0
- package/dist/core/engine/checkpoint-reads.js +98 -0
- package/dist/core/engine/child-workflow.d.ts +20 -0
- package/dist/core/engine/child-workflow.js +72 -0
- package/dist/core/engine/completed-review-storage.d.ts +14 -0
- package/dist/core/engine/completed-review-storage.js +61 -0
- package/dist/core/engine/constraints.d.ts +24 -0
- package/dist/core/engine/constraints.js +57 -0
- package/dist/core/engine/construction.d.ts +60 -0
- package/dist/core/engine/construction.js +213 -0
- package/dist/core/engine/disposal.d.ts +9 -0
- package/dist/core/engine/disposal.js +58 -0
- package/dist/core/engine/engine-create-types.d.ts +70 -0
- package/dist/core/engine/engine-create-types.js +0 -0
- package/dist/core/engine/engine-internal-types.d.ts +59 -0
- package/dist/core/engine/engine-internal-types.js +0 -0
- package/dist/core/engine/engine-leak-warnings.d.ts +26 -0
- package/dist/core/engine/engine-leak-warnings.js +42 -0
- package/dist/core/engine/engine-runtime-helpers.d.ts +8 -0
- package/dist/core/engine/engine-runtime-helpers.js +52 -0
- package/dist/core/engine/engine-state-namespace.d.ts +20 -0
- package/dist/core/engine/engine-state-namespace.js +0 -0
- package/dist/core/engine/errors.d.ts +215 -0
- package/dist/core/engine/errors.js +90 -0
- package/dist/core/engine/event-log-compaction.d.ts +102 -0
- package/dist/core/engine/event-log-compaction.js +76 -0
- package/dist/core/engine/guards.d.ts +17 -0
- package/dist/core/engine/guards.js +43 -0
- package/dist/core/engine/handle-iteration.d.ts +2 -0
- package/dist/core/engine/handle-iteration.js +59 -0
- package/dist/core/engine/handle-result.d.ts +8 -0
- package/dist/core/engine/handle-result.js +74 -0
- package/dist/core/engine/handles.d.ts +137 -0
- package/dist/core/engine/handles.js +173 -0
- package/dist/core/engine/index.d.ts +311 -0
- package/dist/core/engine/index.js +595 -0
- package/dist/core/engine/inline-launch-queue.d.ts +17 -0
- package/dist/core/engine/inline-launch-queue.js +93 -0
- package/dist/core/engine/inline-parking.d.ts +26 -0
- package/dist/core/engine/inline-parking.js +86 -0
- package/dist/core/engine/internals.d.ts +167 -0
- package/dist/core/engine/internals.js +11 -0
- package/dist/core/engine/lifecycle/fork-helpers.d.ts +9 -0
- package/dist/core/engine/lifecycle/fork-helpers.js +66 -0
- package/dist/core/engine/lifecycle/persist.d.ts +22 -0
- package/dist/core/engine/lifecycle/persist.js +80 -0
- package/dist/core/engine/lifecycle/resume.d.ts +4 -0
- package/dist/core/engine/lifecycle/resume.js +136 -0
- package/dist/core/engine/lifecycle/shared.d.ts +79 -0
- package/dist/core/engine/lifecycle/shared.js +49 -0
- package/dist/core/engine/lifecycle/start-batch.d.ts +7 -0
- package/dist/core/engine/lifecycle/start-batch.js +70 -0
- package/dist/core/engine/lifecycle/start-exec.d.ts +5 -0
- package/dist/core/engine/lifecycle/start-exec.js +39 -0
- package/dist/core/engine/lifecycle/start.d.ts +13 -0
- package/dist/core/engine/lifecycle/start.js +163 -0
- package/dist/core/engine/lifecycle/transition.d.ts +8 -0
- package/dist/core/engine/lifecycle/transition.js +183 -0
- package/dist/core/engine/lifecycle.d.ts +8 -0
- package/dist/core/engine/lifecycle.js +40 -0
- package/dist/core/engine/list-candidate-resolution.d.ts +15 -0
- package/dist/core/engine/list-candidate-resolution.js +88 -0
- package/dist/core/engine/listing.d.ts +17 -0
- package/dist/core/engine/listing.js +186 -0
- package/dist/core/engine/operations-activity.d.ts +40 -0
- package/dist/core/engine/operations-activity.js +194 -0
- package/dist/core/engine/operations-coordination.d.ts +39 -0
- package/dist/core/engine/operations-coordination.js +162 -0
- package/dist/core/engine/operations-data.d.ts +23 -0
- package/dist/core/engine/operations-data.js +38 -0
- package/dist/core/engine/operations-router.d.ts +75 -0
- package/dist/core/engine/operations-router.js +90 -0
- package/dist/core/engine/operations-speculate.d.ts +16 -0
- package/dist/core/engine/operations-speculate.js +40 -0
- package/dist/core/engine/operations-state.d.ts +16 -0
- package/dist/core/engine/operations-state.js +27 -0
- package/dist/core/engine/operations-stream.d.ts +20 -0
- package/dist/core/engine/operations-stream.js +54 -0
- package/dist/core/engine/operations-time.d.ts +28 -0
- package/dist/core/engine/operations-time.js +167 -0
- package/dist/core/engine/parallel-dispatch.d.ts +92 -0
- package/dist/core/engine/parallel-dispatch.js +45 -0
- package/dist/core/engine/pending-updates.d.ts +18 -0
- package/dist/core/engine/pending-updates.js +109 -0
- package/dist/core/engine/persisted-data-version.d.ts +24 -0
- package/dist/core/engine/persisted-data-version.js +25 -0
- package/dist/core/engine/queries.d.ts +3 -0
- package/dist/core/engine/queries.js +17 -0
- package/dist/core/engine/registration.d.ts +6 -0
- package/dist/core/engine/registration.js +107 -0
- package/dist/core/engine/retention.d.ts +15 -0
- package/dist/core/engine/retention.js +76 -0
- package/dist/core/engine/review-list-entries.d.ts +6 -0
- package/dist/core/engine/review-list-entries.js +117 -0
- package/dist/core/engine/reviews.d.ts +34 -0
- package/dist/core/engine/reviews.js +242 -0
- package/dist/core/engine/schedule-occurrence.d.ts +35 -0
- package/dist/core/engine/schedule-occurrence.js +26 -0
- package/dist/core/engine/schedule-timer.d.ts +4 -0
- package/dist/core/engine/schedule-timer.js +77 -0
- package/dist/core/engine/schedules.d.ts +34 -0
- package/dist/core/engine/schedules.js +204 -0
- package/dist/core/engine/signals.d.ts +40 -0
- package/dist/core/engine/signals.js +185 -0
- package/dist/core/engine/speculative-execution-state.d.ts +8 -0
- package/dist/core/engine/speculative-execution-state.js +26 -0
- package/dist/core/engine/state-utilities.d.ts +62 -0
- package/dist/core/engine/state-utilities.js +306 -0
- package/dist/core/engine/storage-io.d.ts +21 -0
- package/dist/core/engine/storage-io.js +82 -0
- package/dist/core/engine/strategy-helpers.d.ts +27 -0
- package/dist/core/engine/strategy-helpers.js +47 -0
- package/dist/core/engine/stream-chunk-loading.d.ts +5 -0
- package/dist/core/engine/stream-chunk-loading.js +22 -0
- package/dist/core/engine/sub-operation.d.ts +24 -0
- package/dist/core/engine/sub-operation.js +78 -0
- package/dist/core/engine/termination/cleanup.d.ts +67 -0
- package/dist/core/engine/termination/cleanup.js +167 -0
- package/dist/core/engine/termination/complete.d.ts +13 -0
- package/dist/core/engine/termination/complete.js +249 -0
- package/dist/core/engine/termination.d.ts +7 -0
- package/dist/core/engine/termination.js +23 -0
- package/dist/core/engine/updates.d.ts +56 -0
- package/dist/core/engine/updates.js +230 -0
- package/dist/core/engine/validation/schedule.d.ts +38 -0
- package/dist/core/engine/validation/schedule.js +258 -0
- package/dist/core/engine/validation.d.ts +40 -0
- package/dist/core/engine/validation.js +144 -0
- package/dist/core/engine/workflow-feed.d.ts +82 -0
- package/dist/core/engine/workflow-feed.js +96 -0
- package/dist/core/engine/workflow-indexes.d.ts +103 -0
- package/dist/core/engine/workflow-indexes.js +93 -0
- package/dist/core/engine/workflow-state-stream.d.ts +9 -0
- package/dist/core/engine/workflow-state-stream.js +126 -0
- package/dist/core/engine/workflow-visibility-queries.d.ts +40 -0
- package/dist/core/engine/workflow-visibility-queries.js +56 -0
- package/dist/core/engine-helpers.d.ts +56 -0
- package/dist/core/engine-helpers.js +52 -0
- package/dist/core/engine.d.ts +1 -0
- package/dist/core/engine.js +1 -0
- package/dist/core/event-log-shared.d.ts +65 -0
- package/dist/core/event-log-shared.js +31 -0
- package/dist/core/event-log-verify.d.ts +51 -0
- package/dist/core/event-log-verify.js +64 -0
- package/dist/core/event-log.d.ts +112 -0
- package/dist/core/event-log.js +81 -0
- package/dist/core/events/activity-events.d.ts +104 -0
- package/dist/core/events/activity-events.js +63 -0
- package/dist/core/events/attribute-events.d.ts +22 -0
- package/dist/core/events/attribute-events.js +10 -0
- package/dist/core/events/event-map.d.ts +80 -0
- package/dist/core/events/event-map.js +0 -0
- package/dist/core/events/index.d.ts +7 -0
- package/dist/core/events/index.js +7 -0
- package/dist/core/events/signal-events.d.ts +45 -0
- package/dist/core/events/signal-events.js +23 -0
- package/dist/core/events/system-events.d.ts +149 -0
- package/dist/core/events/system-events.js +92 -0
- package/dist/core/events/update-events.d.ts +53 -0
- package/dist/core/events/update-events.js +31 -0
- package/dist/core/events/workflow-events.d.ts +198 -0
- package/dist/core/events/workflow-events.js +91 -0
- package/dist/core/events.d.ts +1 -0
- package/dist/core/events.js +1 -0
- package/dist/core/execution-strategy.d.ts +107 -0
- package/dist/core/execution-strategy.js +0 -0
- package/dist/core/failure-categories.d.ts +18 -0
- package/dist/core/failure-categories.js +70 -0
- package/dist/core/fault-code.d.ts +92 -0
- package/dist/core/fault-code.js +21 -0
- package/dist/core/inline-execution-strategy.d.ts +76 -0
- package/dist/core/inline-execution-strategy.js +264 -0
- package/dist/core/interceptor/activity-composition.d.ts +20 -0
- package/dist/core/interceptor/activity-composition.js +17 -0
- package/dist/core/interceptor/index.d.ts +25 -0
- package/dist/core/interceptor/index.js +8 -0
- package/dist/core/interceptor/interception-contexts.d.ts +200 -0
- package/dist/core/interceptor/interception-contexts.js +0 -0
- package/dist/core/interceptor/interceptor-interfaces.d.ts +149 -0
- package/dist/core/interceptor/interceptor-interfaces.js +9 -0
- package/dist/core/interceptor/split.d.ts +11 -0
- package/dist/core/interceptor/split.js +14 -0
- package/dist/core/interceptor/workflow-composition.d.ts +21 -0
- package/dist/core/interceptor/workflow-composition.js +116 -0
- package/dist/core/interceptor.d.ts +1 -0
- package/dist/core/interceptor.js +1 -0
- package/dist/core/json.d.ts +56 -0
- package/dist/core/json.js +77 -0
- package/dist/core/list-filter-validation.d.ts +78 -0
- package/dist/core/list-filter-validation.js +75 -0
- package/dist/core/payload-size.d.ts +78 -0
- package/dist/core/payload-size.js +27 -0
- package/dist/core/persisted-data-incompatible-error.d.ts +48 -0
- package/dist/core/persisted-data-incompatible-error.js +12 -0
- package/dist/core/registry-snapshot.d.ts +69 -0
- package/dist/core/registry-snapshot.js +70 -0
- package/dist/core/review/events.d.ts +73 -0
- package/dist/core/review/events.js +31 -0
- package/dist/core/review/index.d.ts +265 -0
- package/dist/core/review/index.js +96 -0
- package/dist/core/runtime-workflow-engine.d.ts +16 -0
- package/dist/core/runtime-workflow-engine.js +6 -0
- package/dist/core/schedule/cron-formatter.d.ts +10 -0
- package/dist/core/schedule/cron-formatter.js +103 -0
- package/dist/core/schedule/cron-occurrence.d.ts +3 -0
- package/dist/core/schedule/cron-occurrence.js +129 -0
- package/dist/core/schedule/cron-parser.d.ts +2 -0
- package/dist/core/schedule/cron-parser.js +93 -0
- package/dist/core/schedule/cron-types.d.ts +35 -0
- package/dist/core/schedule/cron-types.js +0 -0
- package/dist/core/schedule/index.d.ts +3 -0
- package/dist/core/schedule/index.js +2 -0
- package/dist/core/schedule/interval-occurrence.d.ts +31 -0
- package/dist/core/schedule/interval-occurrence.js +26 -0
- package/dist/core/schedule.d.ts +1 -0
- package/dist/core/schedule.js +1 -0
- package/dist/core/scheduler/duration.d.ts +44 -0
- package/dist/core/scheduler/duration.js +48 -0
- package/dist/core/scheduler/index.d.ts +4 -0
- package/dist/core/scheduler/index.js +3 -0
- package/dist/core/scheduler/scheduler-class.d.ts +52 -0
- package/dist/core/scheduler/scheduler-class.js +167 -0
- package/dist/core/scheduler/timer-batch.d.ts +10 -0
- package/dist/core/scheduler/timer-batch.js +42 -0
- package/dist/core/scheduler/timer-sources.d.ts +17 -0
- package/dist/core/scheduler/timer-sources.js +61 -0
- package/dist/core/scheduler.d.ts +1 -0
- package/dist/core/scheduler.js +1 -0
- package/dist/core/search-attributes.d.ts +67 -0
- package/dist/core/search-attributes.js +196 -0
- package/dist/core/session-state.d.ts +18 -0
- package/dist/core/session-state.js +71 -0
- package/dist/core/signal-id.d.ts +2 -0
- package/dist/core/signal-id.js +10 -0
- package/dist/core/start-workflow-validation.d.ts +14 -0
- package/dist/core/start-workflow-validation.js +63 -0
- package/dist/core/step-context.d.ts +97 -0
- package/dist/core/step-context.js +113 -0
- package/dist/core/timeouts.d.ts +98 -0
- package/dist/core/timeouts.js +38 -0
- package/dist/core/types/activity.d.ts +316 -0
- package/dist/core/types/activity.js +15 -0
- package/dist/core/types/archive-adapter.d.ts +49 -0
- package/dist/core/types/archive-adapter.js +0 -0
- package/dist/core/types/bulk.d.ts +312 -0
- package/dist/core/types/bulk.js +1 -0
- package/dist/core/types/checkpoint.d.ts +237 -0
- package/dist/core/types/checkpoint.js +12 -0
- package/dist/core/types/clone-plain.d.ts +17 -0
- package/dist/core/types/clone-plain.js +25 -0
- package/dist/core/types/constants.d.ts +54 -0
- package/dist/core/types/constants.js +1 -0
- package/dist/core/types/deep-freeze.d.ts +31 -0
- package/dist/core/types/deep-freeze.js +31 -0
- package/dist/core/types/definition-schema-to-json.d.ts +41 -0
- package/dist/core/types/definition-schema-to-json.js +56 -0
- package/dist/core/types/definition-schema.d.ts +341 -0
- package/dist/core/types/definition-schema.js +45 -0
- package/dist/core/types/history-policy.d.ts +92 -0
- package/dist/core/types/history-policy.js +1 -0
- package/dist/core/types/identity.d.ts +55 -0
- package/dist/core/types/identity.js +0 -0
- package/dist/core/types/message-handles.d.ts +229 -0
- package/dist/core/types/message-handles.js +36 -0
- package/dist/core/types/name-grammar.d.ts +30 -0
- package/dist/core/types/name-grammar.js +9 -0
- package/dist/core/types/options.d.ts +360 -0
- package/dist/core/types/options.js +0 -0
- package/dist/core/types/payload-size-policy.d.ts +47 -0
- package/dist/core/types/payload-size-policy.js +0 -0
- package/dist/core/types/registry-type-helpers.d.ts +1 -0
- package/dist/core/types/registry-type-helpers.js +0 -0
- package/dist/core/types/retry-retention.d.ts +163 -0
- package/dist/core/types/retry-retention.js +6 -0
- package/dist/core/types/reviews.d.ts +170 -0
- package/dist/core/types/reviews.js +0 -0
- package/dist/core/types/schedules.d.ts +176 -0
- package/dist/core/types/schedules.js +3 -0
- package/dist/core/types/search-attributes.d.ts +127 -0
- package/dist/core/types/search-attributes.js +8 -0
- package/dist/core/types/serializer.d.ts +30 -0
- package/dist/core/types/serializer.js +0 -0
- package/dist/core/types/standard-schema-validate.d.ts +113 -0
- package/dist/core/types/standard-schema-validate.js +60 -0
- package/dist/core/types/state.d.ts +261 -0
- package/dist/core/types/state.js +0 -0
- package/dist/core/types/workflow-builder-helpers.d.ts +310 -0
- package/dist/core/types/workflow-builder-helpers.js +0 -0
- package/dist/core/types/workflow-builder-runtime.d.ts +97 -0
- package/dist/core/types/workflow-builder-runtime.js +137 -0
- package/dist/core/types/workflow-builder.d.ts +343 -0
- package/dist/core/types/workflow-builder.js +0 -0
- package/dist/core/types/workflow-context.d.ts +168 -0
- package/dist/core/types/workflow-context.js +0 -0
- package/dist/core/types/workflow-definition.d.ts +61 -0
- package/dist/core/types/workflow-definition.js +0 -0
- package/dist/core/types/workflow-function.d.ts +330 -0
- package/dist/core/types/workflow-function.js +9 -0
- package/dist/core/types/workflow-registries.d.ts +203 -0
- package/dist/core/types/workflow-registries.js +0 -0
- package/dist/core/types/workflow-registry.d.ts +31 -0
- package/dist/core/types/workflow-registry.js +0 -0
- package/dist/core/types.d.ts +26 -0
- package/dist/core/types.js +26 -0
- package/dist/core/updates.d.ts +183 -0
- package/dist/core/updates.js +141 -0
- package/dist/core/versioning.d.ts +153 -0
- package/dist/core/versioning.js +94 -0
- package/dist/core/weft-error.d.ts +82 -0
- package/dist/core/weft-error.js +43 -0
- package/dist/core/worker-checkpoint-resume-state.d.ts +11 -0
- package/dist/core/worker-checkpoint-resume-state.js +40 -0
- package/dist/core/worker-execution-dispatcher.d.ts +42 -0
- package/dist/core/worker-execution-dispatcher.js +95 -0
- package/dist/core/worker-execution-ownership.d.ts +20 -0
- package/dist/core/worker-execution-ownership.js +91 -0
- package/dist/core/worker-execution-strategy-options.d.ts +7 -0
- package/dist/core/worker-execution-strategy-options.js +0 -0
- package/dist/core/worker-execution-strategy.d.ts +29 -0
- package/dist/core/worker-execution-strategy.js +356 -0
- package/dist/core/worker-listener-registry.d.ts +11 -0
- package/dist/core/worker-listener-registry.js +35 -0
- package/dist/core/worker-message-helpers.d.ts +5 -0
- package/dist/core/worker-message-helpers.js +14 -0
- package/dist/core/worker-protocol-guard.d.ts +20 -0
- package/dist/core/worker-protocol-guard.js +69 -0
- package/dist/core/worker-protocol.d.ts +27 -0
- package/dist/core/worker-protocol.js +346 -0
- package/dist/core/worker-turn-watchdog.d.ts +14 -0
- package/dist/core/worker-turn-watchdog.js +40 -0
- package/dist/core/workflow-identifiers.d.ts +1 -0
- package/dist/core/workflow-identifiers.js +19 -0
- package/dist/core/workflow-tags.d.ts +9 -0
- package/dist/core/workflow-tags.js +37 -0
- package/dist/core/workflow-version-tuple.d.ts +67 -0
- package/dist/core/workflow-version-tuple.js +77 -0
- package/dist/diagnostics/doctor.d.ts +30 -0
- package/dist/diagnostics/doctor.js +173 -0
- package/dist/diagnostics/format.d.ts +77 -0
- package/dist/diagnostics/format.js +115 -0
- package/dist/diagnostics/index.d.ts +15 -0
- package/dist/diagnostics/index.js +10 -0
- package/dist/diagnostics/memory-profiler.d.ts +136 -0
- package/dist/diagnostics/memory-profiler.js +93 -0
- package/dist/diagnostics/recommendations.d.ts +37 -0
- package/dist/diagnostics/recommendations.js +116 -0
- package/dist/diagnostics/types.d.ts +178 -0
- package/dist/diagnostics/types.js +9 -0
- package/dist/diagnostics/validate.d.ts +79 -0
- package/dist/diagnostics/validate.js +88 -0
- package/dist/diagnostics/version-check.d.ts +34 -0
- package/dist/diagnostics/version-check.js +61 -0
- package/dist/index.d.ts +109 -0
- package/dist/index.js +182 -0
- package/dist/json-schema.d.ts +55 -0
- package/dist/json-schema.js +4 -0
- package/dist/mcp/access.d.ts +21 -0
- package/dist/mcp/access.js +22 -0
- package/dist/mcp/cli.d.ts +2 -0
- package/dist/mcp/cli.js +72 -0
- package/dist/mcp/dispatcher.d.ts +13 -0
- package/dist/mcp/dispatcher.js +198 -0
- package/dist/mcp/http.d.ts +64 -0
- package/dist/mcp/http.js +272 -0
- package/dist/mcp/index.d.ts +17 -0
- package/dist/mcp/index.js +26 -0
- package/dist/mcp/list-filter.d.ts +10 -0
- package/dist/mcp/list-filter.js +116 -0
- package/dist/mcp/protocol.d.ts +89 -0
- package/dist/mcp/protocol.js +64 -0
- package/dist/mcp/resources.d.ts +40 -0
- package/dist/mcp/resources.js +141 -0
- package/dist/mcp/session.d.ts +138 -0
- package/dist/mcp/session.js +204 -0
- package/dist/mcp/stdio.d.ts +89 -0
- package/dist/mcp/stdio.js +204 -0
- package/dist/mcp/tools.d.ts +27 -0
- package/dist/mcp/tools.js +262 -0
- package/dist/observability/activity-interceptor.d.ts +3 -0
- package/dist/observability/activity-interceptor.js +34 -0
- package/dist/observability/index.d.ts +60 -0
- package/dist/observability/index.js +4 -0
- package/dist/observability/metrics-catalog.d.ts +128 -0
- package/dist/observability/metrics-catalog.js +110 -0
- package/dist/observability/metrics-snapshot.d.ts +106 -0
- package/dist/observability/metrics-snapshot.js +0 -0
- package/dist/observability/metrics.d.ts +156 -0
- package/dist/observability/metrics.js +152 -0
- package/dist/observability/no-op-telemetry.d.ts +168 -0
- package/dist/observability/no-op-telemetry.js +96 -0
- package/dist/observability/propagation.d.ts +121 -0
- package/dist/observability/propagation.js +41 -0
- package/dist/observability/span-helpers.d.ts +50 -0
- package/dist/observability/span-helpers.js +83 -0
- package/dist/observability/types.d.ts +92 -0
- package/dist/observability/types.js +0 -0
- package/dist/observability/workflow-interceptor.d.ts +3 -0
- package/dist/observability/workflow-interceptor.js +106 -0
- package/dist/observability/workflow-lifecycle.d.ts +8 -0
- package/dist/observability/workflow-lifecycle.js +103 -0
- package/dist/runtime/portable.d.ts +119 -0
- package/dist/runtime/portable.js +90 -0
- package/dist/server/api-catalog.d.ts +85 -0
- package/dist/server/api-catalog.js +47 -0
- package/dist/server/asyncapi-channels.d.ts +40 -0
- package/dist/server/asyncapi-channels.js +264 -0
- package/dist/server/asyncapi.d.ts +25 -0
- package/dist/server/asyncapi.js +110 -0
- package/dist/server/attribute-filters.d.ts +37 -0
- package/dist/server/attribute-filters.js +39 -0
- package/dist/server/authentication/api-key.d.ts +3 -0
- package/dist/server/authentication/api-key.js +80 -0
- package/dist/server/authentication/audit.d.ts +116 -0
- package/dist/server/authentication/audit.js +25 -0
- package/dist/server/authentication/crypto.d.ts +7 -0
- package/dist/server/authentication/crypto.js +99 -0
- package/dist/server/authentication/index.d.ts +68 -0
- package/dist/server/authentication/index.js +144 -0
- package/dist/server/authentication/rate-limiter.d.ts +126 -0
- package/dist/server/authentication/rate-limiter.js +61 -0
- package/dist/server/authentication/redaction.d.ts +72 -0
- package/dist/server/authentication/redaction.js +30 -0
- package/dist/server/authentication/rotating-api-key-store.d.ts +107 -0
- package/dist/server/authentication/rotating-api-key-store.js +43 -0
- package/dist/server/authentication/types.d.ts +290 -0
- package/dist/server/authentication/types.js +13 -0
- package/dist/server/authentication.d.ts +1 -0
- package/dist/server/authentication.js +1 -0
- package/dist/server/authorization-scope.d.ts +43 -0
- package/dist/server/authorization-scope.js +53 -0
- package/dist/server/authorization.d.ts +55 -0
- package/dist/server/authorization.js +87 -0
- package/dist/server/deadline-tracker.d.ts +47 -0
- package/dist/server/deadline-tracker.js +106 -0
- package/dist/server/discovery-filter.d.ts +13 -0
- package/dist/server/discovery-filter.js +5 -0
- package/dist/server/discovery-info.d.ts +69 -0
- package/dist/server/discovery-info.js +12 -0
- package/dist/server/engine-event-feed-backend.d.ts +31 -0
- package/dist/server/engine-event-feed-backend.js +36 -0
- package/dist/server/fault-to-http.d.ts +14 -0
- package/dist/server/fault-to-http.js +29 -0
- package/dist/server/fault-to-json-rpc.d.ts +23 -0
- package/dist/server/fault-to-json-rpc.js +60 -0
- package/dist/server/handler/binding-dispatch.d.ts +11 -0
- package/dist/server/handler/binding-dispatch.js +13 -0
- package/dist/server/handler/index.d.ts +31 -0
- package/dist/server/handler/index.js +78 -0
- package/dist/server/handler/response-helpers.d.ts +5 -0
- package/dist/server/handler/response-helpers.js +28 -0
- package/dist/server/handler/route-dispatch.d.ts +144 -0
- package/dist/server/handler/route-dispatch.js +192 -0
- package/dist/server/handler/route-matching.d.ts +55 -0
- package/dist/server/handler/route-matching.js +45 -0
- package/dist/server/handler.d.ts +1 -0
- package/dist/server/handler.js +56 -0
- package/dist/server/index.d.ts +346 -0
- package/dist/server/index.js +64 -0
- package/dist/server/interactive-operations.d.ts +18 -0
- package/dist/server/interactive-operations.js +28 -0
- package/dist/server/json-rpc-dispatch.d.ts +49 -0
- package/dist/server/json-rpc-dispatch.js +92 -0
- package/dist/server/json-rpc-framing.d.ts +42 -0
- package/dist/server/json-rpc-framing.js +15 -0
- package/dist/server/json-rpc-http.d.ts +33 -0
- package/dist/server/json-rpc-http.js +112 -0
- package/dist/server/json-rpc-parse.d.ts +69 -0
- package/dist/server/json-rpc-parse.js +139 -0
- package/dist/server/json-rpc-protocol.d.ts +76 -0
- package/dist/server/json-rpc-protocol.js +27 -0
- package/dist/server/json-rpc-transport-helpers.d.ts +17 -0
- package/dist/server/json-rpc-transport-helpers.js +26 -0
- package/dist/server/json-rpc-websocket-runtime.d.ts +37 -0
- package/dist/server/json-rpc-websocket-runtime.js +51 -0
- package/dist/server/json-rpc-websocket-validation.d.ts +38 -0
- package/dist/server/json-rpc-websocket-validation.js +96 -0
- package/dist/server/json-rpc-websocket.d.ts +60 -0
- package/dist/server/json-rpc-websocket.js +268 -0
- package/dist/server/json-schema-utilities.d.ts +4 -0
- package/dist/server/json-schema-utilities.js +16 -0
- package/dist/server/mcp-discovery.d.ts +57 -0
- package/dist/server/mcp-discovery.js +50 -0
- package/dist/server/openapi-canonical-json.d.ts +10 -0
- package/dist/server/openapi-canonical-json.js +13 -0
- package/dist/server/openapi-error-responses.d.ts +15 -0
- package/dist/server/openapi-error-responses.js +36 -0
- package/dist/server/openapi-schemas.d.ts +17 -0
- package/dist/server/openapi-schemas.js +69 -0
- package/dist/server/openapi.d.ts +48 -0
- package/dist/server/openapi.js +290 -0
- package/dist/server/openrpc-document-schema.d.ts +112 -0
- package/dist/server/openrpc-document-schema.js +65 -0
- package/dist/server/openrpc-errors.d.ts +73 -0
- package/dist/server/openrpc-errors.js +57 -0
- package/dist/server/openrpc.d.ts +53 -0
- package/dist/server/openrpc.js +179 -0
- package/dist/server/operation-catalog/activity-adapter.d.ts +11 -0
- package/dist/server/operation-catalog/activity-adapter.js +9 -0
- package/dist/server/operation-catalog/dispatch-allowlist.d.ts +4 -0
- package/dist/server/operation-catalog/dispatch-allowlist.js +4 -0
- package/dist/server/operation-catalog/dispatch-preparation.d.ts +39 -0
- package/dist/server/operation-catalog/dispatch-preparation.js +52 -0
- package/dist/server/operation-catalog/index.d.ts +22 -0
- package/dist/server/operation-catalog/index.js +17 -0
- package/dist/server/operation-catalog/pipeline-helpers.d.ts +66 -0
- package/dist/server/operation-catalog/pipeline-helpers.js +179 -0
- package/dist/server/operation-catalog/pipeline-stages.d.ts +23 -0
- package/dist/server/operation-catalog/pipeline-stages.js +189 -0
- package/dist/server/operation-catalog/pipeline.d.ts +7 -0
- package/dist/server/operation-catalog/pipeline.js +32 -0
- package/dist/server/operation-catalog/raise-fault.d.ts +32 -0
- package/dist/server/operation-catalog/raise-fault.js +18 -0
- package/dist/server/operation-catalog/registry.d.ts +6 -0
- package/dist/server/operation-catalog/registry.js +93 -0
- package/dist/server/operation-catalog/stream-pipeline.d.ts +25 -0
- package/dist/server/operation-catalog/stream-pipeline.js +122 -0
- package/dist/server/operation-catalog/types.d.ts +246 -0
- package/dist/server/operation-catalog/types.js +9 -0
- package/dist/server/operation-catalog/workflow-adapter.d.ts +55 -0
- package/dist/server/operation-catalog/workflow-adapter.js +85 -0
- package/dist/server/operation-catalog.d.ts +1 -0
- package/dist/server/operation-catalog.js +1 -0
- package/dist/server/operation-fault.d.ts +153 -0
- package/dist/server/operation-fault.js +50 -0
- package/dist/server/operation-registry.d.ts +100 -0
- package/dist/server/operation-registry.js +56 -0
- package/dist/server/operations/add-workflow-tags.d.ts +15 -0
- package/dist/server/operations/add-workflow-tags.js +13 -0
- package/dist/server/operations/aggregate-workflows.d.ts +81 -0
- package/dist/server/operations/aggregate-workflows.js +110 -0
- package/dist/server/operations/async-activity.d.ts +44 -0
- package/dist/server/operations/async-activity.js +134 -0
- package/dist/server/operations/bulk-cancel-workflows.d.ts +7 -0
- package/dist/server/operations/bulk-cancel-workflows.js +64 -0
- package/dist/server/operations/bulk-delete-workflows.d.ts +7 -0
- package/dist/server/operations/bulk-delete-workflows.js +71 -0
- package/dist/server/operations/bulk-filter-helpers.d.ts +62 -0
- package/dist/server/operations/bulk-filter-helpers.js +334 -0
- package/dist/server/operations/bulk-mutate-workflow-tags.d.ts +94 -0
- package/dist/server/operations/bulk-mutate-workflow-tags.js +100 -0
- package/dist/server/operations/bulk-operation-helpers.d.ts +27 -0
- package/dist/server/operations/bulk-operation-helpers.js +29 -0
- package/dist/server/operations/bulk-signal-workflows.d.ts +87 -0
- package/dist/server/operations/bulk-signal-workflows.js +80 -0
- package/dist/server/operations/cancel-schedule.d.ts +13 -0
- package/dist/server/operations/cancel-schedule.js +43 -0
- package/dist/server/operations/cancel-workflow.d.ts +13 -0
- package/dist/server/operations/cancel-workflow.js +34 -0
- package/dist/server/operations/create-schedule.d.ts +29 -0
- package/dist/server/operations/create-schedule.js +116 -0
- package/dist/server/operations/failure-category-filter.d.ts +2 -0
- package/dist/server/operations/failure-category-filter.js +19 -0
- package/dist/server/operations/fork-workflow.d.ts +29 -0
- package/dist/server/operations/fork-workflow.js +88 -0
- package/dist/server/operations/get-checkpoint-at.d.ts +15 -0
- package/dist/server/operations/get-checkpoint-at.js +74 -0
- package/dist/server/operations/get-registry.d.ts +26 -0
- package/dist/server/operations/get-registry.js +56 -0
- package/dist/server/operations/get-retention-overview.d.ts +9 -0
- package/dist/server/operations/get-retention-overview.js +39 -0
- package/dist/server/operations/get-review.d.ts +15 -0
- package/dist/server/operations/get-review.js +57 -0
- package/dist/server/operations/get-schedule.d.ts +20 -0
- package/dist/server/operations/get-schedule.js +48 -0
- package/dist/server/operations/get-stream-chunks.d.ts +19 -0
- package/dist/server/operations/get-stream-chunks.js +71 -0
- package/dist/server/operations/get-system-metrics.d.ts +42 -0
- package/dist/server/operations/get-system-metrics.js +43 -0
- package/dist/server/operations/get-task-diagnostics.d.ts +184 -0
- package/dist/server/operations/get-task-diagnostics.js +340 -0
- package/dist/server/operations/get-update-result.d.ts +18 -0
- package/dist/server/operations/get-update-result.js +55 -0
- package/dist/server/operations/get-workflow-attributes.d.ts +13 -0
- package/dist/server/operations/get-workflow-attributes.js +51 -0
- package/dist/server/operations/get-workflow-events.d.ts +15 -0
- package/dist/server/operations/get-workflow-events.js +51 -0
- package/dist/server/operations/get-workflow-result.d.ts +14 -0
- package/dist/server/operations/get-workflow-result.js +93 -0
- package/dist/server/operations/get-workflow-timeline.d.ts +13 -0
- package/dist/server/operations/get-workflow-timeline.js +51 -0
- package/dist/server/operations/get-workflow.d.ts +36 -0
- package/dist/server/operations/get-workflow.js +49 -0
- package/dist/server/operations/list-checkpoints.d.ts +13 -0
- package/dist/server/operations/list-checkpoints.js +43 -0
- package/dist/server/operations/list-filter-query-extractor.d.ts +23 -0
- package/dist/server/operations/list-filter-query-extractor.js +87 -0
- package/dist/server/operations/list-reviews.d.ts +19 -0
- package/dist/server/operations/list-reviews.js +77 -0
- package/dist/server/operations/list-schedules.d.ts +28 -0
- package/dist/server/operations/list-schedules.js +108 -0
- package/dist/server/operations/list-task-queues.d.ts +71 -0
- package/dist/server/operations/list-task-queues.js +105 -0
- package/dist/server/operations/list-workers.d.ts +56 -0
- package/dist/server/operations/list-workers.js +92 -0
- package/dist/server/operations/list-workflows.d.ts +79 -0
- package/dist/server/operations/list-workflows.js +136 -0
- package/dist/server/operations/operation-helpers.d.ts +21 -0
- package/dist/server/operations/operation-helpers.js +22 -0
- package/dist/server/operations/pause-schedule.d.ts +13 -0
- package/dist/server/operations/pause-schedule.js +43 -0
- package/dist/server/operations/purge-workflows.d.ts +41 -0
- package/dist/server/operations/purge-workflows.js +57 -0
- package/dist/server/operations/query-workflow.d.ts +19 -0
- package/dist/server/operations/query-workflow.js +99 -0
- package/dist/server/operations/recover-all.d.ts +13 -0
- package/dist/server/operations/recover-all.js +65 -0
- package/dist/server/operations/remove-workflow-tags.d.ts +15 -0
- package/dist/server/operations/remove-workflow-tags.js +13 -0
- package/dist/server/operations/replay-workflow.d.ts +28 -0
- package/dist/server/operations/replay-workflow.js +69 -0
- package/dist/server/operations/resume-schedule.d.ts +13 -0
- package/dist/server/operations/resume-schedule.js +43 -0
- package/dist/server/operations/resume-workflow.d.ts +17 -0
- package/dist/server/operations/resume-workflow.js +40 -0
- package/dist/server/operations/schedule-faults.d.ts +14 -0
- package/dist/server/operations/schedule-faults.js +41 -0
- package/dist/server/operations/set-workflow-attributes.d.ts +19 -0
- package/dist/server/operations/set-workflow-attributes.js +67 -0
- package/dist/server/operations/signal-workflow.d.ts +23 -0
- package/dist/server/operations/signal-workflow.js +58 -0
- package/dist/server/operations/single-workflow-control-operation.d.ts +32 -0
- package/dist/server/operations/single-workflow-control-operation.js +44 -0
- package/dist/server/operations/single-workflow-tag-mutation.d.ts +27 -0
- package/dist/server/operations/single-workflow-tag-mutation.js +108 -0
- package/dist/server/operations/sse-stream.d.ts +13 -0
- package/dist/server/operations/sse-stream.js +42 -0
- package/dist/server/operations/start-workflow.d.ts +33 -0
- package/dist/server/operations/start-workflow.js +181 -0
- package/dist/server/operations/storage.d.ts +112 -0
- package/dist/server/operations/storage.js +358 -0
- package/dist/server/operations/stream-workflow-sse.d.ts +17 -0
- package/dist/server/operations/stream-workflow-sse.js +94 -0
- package/dist/server/operations/submit-review-decision.d.ts +25 -0
- package/dist/server/operations/submit-review-decision.js +113 -0
- package/dist/server/operations/timeout-workflow.d.ts +11 -0
- package/dist/server/operations/timeout-workflow.js +34 -0
- package/dist/server/operations/update-schedule.d.ts +15 -0
- package/dist/server/operations/update-schedule.js +60 -0
- package/dist/server/operations/update-workflow.d.ts +27 -0
- package/dist/server/operations/update-workflow.js +109 -0
- package/dist/server/operations/worker-drain.d.ts +69 -0
- package/dist/server/operations/worker-drain.js +214 -0
- package/dist/server/operations/workflow-events-subscription.d.ts +47 -0
- package/dist/server/operations/workflow-events-subscription.js +51 -0
- package/dist/server/principal.d.ts +176 -0
- package/dist/server/principal.js +59 -0
- package/dist/server/rest-binding.d.ts +158 -0
- package/dist/server/rest-binding.js +35 -0
- package/dist/server/rest-bindings.d.ts +76 -0
- package/dist/server/rest-bindings.js +376 -0
- package/dist/server/route-model.d.ts +268 -0
- package/dist/server/route-model.js +166 -0
- package/dist/server/runtime/authentication-bridge.d.ts +22 -0
- package/dist/server/runtime/authentication-bridge.js +194 -0
- package/dist/server/runtime/context.d.ts +73 -0
- package/dist/server/runtime/context.js +0 -0
- package/dist/server/runtime/cors.d.ts +149 -0
- package/dist/server/runtime/cors.js +123 -0
- package/dist/server/runtime/event-broadcasting.d.ts +71 -0
- package/dist/server/runtime/event-broadcasting.js +205 -0
- package/dist/server/runtime/request-gate.d.ts +54 -0
- package/dist/server/runtime/request-gate.js +71 -0
- package/dist/server/runtime/shutdown.d.ts +10 -0
- package/dist/server/runtime/shutdown.js +18 -0
- package/dist/server/runtime/stop-server.d.ts +3 -0
- package/dist/server/runtime/stop-server.js +19 -0
- package/dist/server/runtime/task-dispatch.d.ts +8 -0
- package/dist/server/runtime/task-dispatch.js +157 -0
- package/dist/server/runtime/task-metrics.d.ts +12 -0
- package/dist/server/runtime/task-metrics.js +36 -0
- package/dist/server/runtime/task-polling.d.ts +9 -0
- package/dist/server/runtime/task-polling.js +132 -0
- package/dist/server/runtime/task-reconciliation.d.ts +17 -0
- package/dist/server/runtime/task-reconciliation.js +163 -0
- package/dist/server/runtime/websocket-stream.d.ts +15 -0
- package/dist/server/runtime/websocket-stream.js +79 -0
- package/dist/server/runtime/websocket-upgrade.d.ts +8 -0
- package/dist/server/runtime/websocket-upgrade.js +76 -0
- package/dist/server/runtime/websocket-worker.d.ts +7 -0
- package/dist/server/runtime/websocket-worker.js +224 -0
- package/dist/server/runtime-helpers.d.ts +18 -0
- package/dist/server/runtime-helpers.js +23 -0
- package/dist/server/sequence-cursor.d.ts +5 -0
- package/dist/server/sequence-cursor.js +19 -0
- package/dist/server/serve-internals.d.ts +83 -0
- package/dist/server/serve-internals.js +203 -0
- package/dist/server/stdio-session.d.ts +51 -0
- package/dist/server/stdio-session.js +245 -0
- package/dist/server/task-queue-summary.d.ts +27 -0
- package/dist/server/task-queue-summary.js +34 -0
- package/dist/server/task-queue-types.d.ts +95 -0
- package/dist/server/task-queue-types.js +0 -0
- package/dist/server/task-queue.d.ts +90 -0
- package/dist/server/task-queue.js +247 -0
- package/dist/server/task-resolved-record.d.ts +12 -0
- package/dist/server/task-resolved-record.js +35 -0
- package/dist/server/task-state.d.ts +152 -0
- package/dist/server/task-state.js +178 -0
- package/dist/server/workflow-event-feed.d.ts +166 -0
- package/dist/server/workflow-event-feed.js +193 -0
- package/dist/service-worker/index.d.ts +123 -0
- package/dist/service-worker/index.js +56 -0
- package/dist/service-worker/scheduler.d.ts +37 -0
- package/dist/service-worker/scheduler.js +117 -0
- package/dist/service-worker/setup.d.ts +127 -0
- package/dist/service-worker/setup.js +129 -0
- package/dist/service-worker/shared.d.ts +94 -0
- package/dist/service-worker/shared.js +15 -0
- package/dist/storage/auto.d.ts +45 -0
- package/dist/storage/auto.js +2 -0
- package/dist/storage/bun-sql.d.ts +64 -0
- package/dist/storage/bun-sql.js +575 -0
- package/dist/storage/byte-encoding.d.ts +6 -0
- package/dist/storage/byte-encoding.js +16 -0
- package/dist/storage/capabilities.d.ts +187 -0
- package/dist/storage/capabilities.js +19 -0
- package/dist/storage/compressed-storage.d.ts +45 -0
- package/dist/storage/compressed-storage.js +2 -0
- package/dist/storage/default-scope.d.ts +17 -0
- package/dist/storage/default-scope.js +1 -0
- package/dist/storage/delete-range.d.ts +109 -0
- package/dist/storage/delete-range.js +64 -0
- package/dist/storage/derived-operations.d.ts +53 -0
- package/dist/storage/derived-operations.js +31 -0
- package/dist/storage/http.d.ts +67 -0
- package/dist/storage/http.js +2 -0
- package/dist/storage/index.d.ts +292 -0
- package/dist/storage/index.js +51 -0
- package/dist/storage/indexeddb.d.ts +49 -0
- package/dist/storage/indexeddb.js +1 -0
- package/dist/storage/interface.d.ts +340 -0
- package/dist/storage/interface.js +2 -0
- package/dist/storage/key-prefixes.d.ts +19 -0
- package/dist/storage/key-prefixes.js +35 -0
- package/dist/storage/lmdb.d.ts +40 -0
- package/dist/storage/lmdb.js +2 -0
- package/dist/storage/memory.d.ts +46 -0
- package/dist/storage/memory.js +2 -0
- package/dist/storage/node-sqlite.d.ts +85 -0
- package/dist/storage/node-sqlite.js +323 -0
- package/dist/storage/read-only-query.d.ts +2 -0
- package/dist/storage/read-only-query.js +19 -0
- package/dist/storage/resolve.d.ts +180 -0
- package/dist/storage/resolve.js +2 -0
- package/dist/storage/scoped-storage.d.ts +68 -0
- package/dist/storage/scoped-storage.js +2 -0
- package/dist/storage/sqlite-key-value-queries.d.ts +40 -0
- package/dist/storage/sqlite-key-value-queries.js +64 -0
- package/dist/storage/sqlite.d.ts +31 -0
- package/dist/storage/sqlite.js +0 -0
- package/dist/storage/text-value-import.d.ts +87 -0
- package/dist/storage/text-value-import.js +50 -0
- package/dist/storage/text-value-store.d.ts +171 -0
- package/dist/storage/text-value-store.js +55 -0
- package/dist/storage/turso.d.ts +60 -0
- package/dist/storage/turso.js +5 -0
- package/dist/storage/typed-storage.d.ts +258 -0
- package/dist/storage/typed-storage.js +2 -0
- package/dist/storage/web-extension.d.ts +55 -0
- package/dist/storage/web-extension.js +1 -0
- package/dist/testing/chaos.d.ts +157 -0
- package/dist/testing/chaos.js +69 -0
- package/dist/testing/event-loop.d.ts +4 -0
- package/dist/testing/event-loop.js +21 -0
- package/dist/testing/index.d.ts +126 -0
- package/dist/testing/index.js +61 -0
- package/dist/testing/mocks.d.ts +145 -0
- package/dist/testing/mocks.js +136 -0
- package/dist/testing/subprocess-engine.d.ts +100 -0
- package/dist/testing/subprocess-engine.js +291 -0
- package/dist/testing/test-engine.d.ts +145 -0
- package/dist/testing/test-engine.js +147 -0
- package/dist/testing/time-control.d.ts +59 -0
- package/dist/testing/time-control.js +68 -0
- package/dist/version.d.ts +12 -0
- package/dist/version.js +1 -0
- package/dist/worker/activity-table.d.ts +33 -0
- package/dist/worker/activity-table.js +20 -0
- package/dist/worker/execute-with-interceptors.d.ts +28 -0
- package/dist/worker/execute-with-interceptors.js +21 -0
- package/dist/worker/heartbeat.d.ts +34 -0
- package/dist/worker/heartbeat.js +31 -0
- package/dist/worker/index.d.ts +57 -0
- package/dist/worker/index.js +334 -0
- package/dist/worker/long-poll.d.ts +54 -0
- package/dist/worker/long-poll.js +134 -0
- package/dist/worker/options.d.ts +66 -0
- package/dist/worker/options.js +19 -0
- package/dist/worker/protocol-internals.d.ts +82 -0
- package/dist/worker/protocol-internals.js +56 -0
- package/dist/worker/protocol-messages.d.ts +264 -0
- package/dist/worker/protocol-messages.js +0 -0
- package/dist/worker/protocol-schemas.d.ts +559 -0
- package/dist/worker/protocol-schemas.js +180 -0
- package/dist/worker/protocol-version.d.ts +71 -0
- package/dist/worker/protocol-version.js +1 -0
- package/dist/worker/protocol.d.ts +72 -0
- package/dist/worker/protocol.js +2 -0
- package/dist/worker/registry/fair-share.d.ts +59 -0
- package/dist/worker/registry/fair-share.js +15 -0
- package/dist/worker/registry/routing.d.ts +17 -0
- package/dist/worker/registry/routing.js +16 -0
- package/dist/worker/registry/summary.d.ts +87 -0
- package/dist/worker/registry/summary.js +81 -0
- package/dist/worker/registry/types.d.ts +123 -0
- package/dist/worker/registry/types.js +0 -0
- package/dist/worker/registry.d.ts +94 -0
- package/dist/worker/registry.js +305 -0
- package/dist/worker/remote-activity-context.d.ts +15 -0
- package/dist/worker/remote-activity-context.js +0 -0
- package/dist/worker/task-result-outbox.d.ts +40 -0
- package/dist/worker/task-result-outbox.js +42 -0
- package/dist/worker/worker-protocol-incompatible-error.d.ts +52 -0
- package/dist/worker/worker-protocol-incompatible-error.js +15 -0
- package/dist/worker/workflow-activity-binding.d.ts +96 -0
- package/dist/worker/workflow-activity-binding.js +22 -0
- package/dist/workers/activity-runner.d.ts +87 -0
- package/dist/workers/activity-runner.js +29 -0
- package/dist/workers/activity-worker-dispatcher.d.ts +85 -0
- package/dist/workers/activity-worker-dispatcher.js +68 -0
- package/dist/workers/activity-worker-entry.d.ts +99 -0
- package/dist/workers/activity-worker-entry.js +59 -0
- package/dist/workers/pool.d.ts +83 -0
- package/dist/workers/pool.js +174 -0
- package/dist/workers/workflow-runner.d.ts +79 -0
- package/dist/workers/workflow-runner.js +245 -0
- package/dist/workers/workflow-worker-entry.d.ts +24 -0
- package/dist/workers/workflow-worker-entry.js +70 -0
- package/package.json +297 -0
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import { type StorageCapabilities } from './capabilities.ts';
|
|
2
|
+
import type { DeleteRangeOptions } from './delete-range.ts';
|
|
3
|
+
export { assertDurableStorageForRecovery, requireStorageCapability } from './capabilities.ts';
|
|
4
|
+
export type { GatedStorageCapabilityKey, StorageCapabilities } from './capabilities.ts';
|
|
5
|
+
export { DEFAULT_SCOPE } from './default-scope.ts';
|
|
6
|
+
export { WEFT_RESERVED_KEY_PREFIXES } from './key-prefixes.ts';
|
|
7
|
+
/**
|
|
8
|
+
* A single KV operation in a batch.
|
|
9
|
+
*
|
|
10
|
+
* Either a put (write `value` at `key`) or a delete (remove `key`). The `type`
|
|
11
|
+
* discriminant selects the variant; delete operations carry no value.
|
|
12
|
+
*/
|
|
13
|
+
export type BatchOperation = {
|
|
14
|
+
type: 'put';
|
|
15
|
+
key: string;
|
|
16
|
+
value: Uint8Array;
|
|
17
|
+
} | {
|
|
18
|
+
type: 'delete';
|
|
19
|
+
key: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A key/value precondition for {@link Storage.conditionalBatch}.
|
|
23
|
+
*
|
|
24
|
+
* The batch commits only when every listed key currently matches the expected
|
|
25
|
+
* value. Use `null` to require that the key is absent.
|
|
26
|
+
*/
|
|
27
|
+
export interface ConditionalBatchCondition {
|
|
28
|
+
key: string;
|
|
29
|
+
expectedValue: Uint8Array | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Options for range scans.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { MemoryStorage, type ScanOptions } from '@lostgradient/weft';
|
|
37
|
+
*
|
|
38
|
+
* await using storage = new MemoryStorage();
|
|
39
|
+
* const options: ScanOptions = { limit: 10, reverse: true };
|
|
40
|
+
* for await (const [key, value] of storage.scan('wf:', options)) {
|
|
41
|
+
* console.log(key);
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export interface ScanOptions {
|
|
46
|
+
limit?: number;
|
|
47
|
+
reverse?: boolean;
|
|
48
|
+
gt?: string;
|
|
49
|
+
lt?: string;
|
|
50
|
+
gte?: string;
|
|
51
|
+
lte?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* KV-oriented storage interface. All storage adapters implement this.
|
|
55
|
+
*
|
|
56
|
+
* Required methods are `get`, `put`, `delete`, `scan`, and `batch`. Optional
|
|
57
|
+
* fast paths are `conditionalBatch`, `has`, `deletePrefix`, `deleteRange`,
|
|
58
|
+
* `keys`, `count`, `scoped`, and `query`. Adapters that omit optional methods
|
|
59
|
+
* get generic fallbacks via `storageHas`, `storageKeys`, `storageCount`,
|
|
60
|
+
* `storageDeletePrefix`, and `storageConditionalBatch` (all from this module),
|
|
61
|
+
* plus `storageDeleteRange` (exported from `@lostgradient/weft` / `@lostgradient/weft/storage`, defined in
|
|
62
|
+
* `storage/delete-range.ts`). Callers should use those wrappers rather than
|
|
63
|
+
* calling optional methods directly.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
68
|
+
* import type { Storage } from '@lostgradient/weft/storage/interface';
|
|
69
|
+
*
|
|
70
|
+
* await using storage: Storage = new MemoryStorage();
|
|
71
|
+
* const encoded = new TextEncoder().encode('hello');
|
|
72
|
+
* await storage.put('my-key', encoded);
|
|
73
|
+
* const value = await storage.get('my-key');
|
|
74
|
+
* console.log(new TextDecoder().decode(value!)); // 'hello'
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export interface Storage extends Disposable {
|
|
78
|
+
/**
|
|
79
|
+
* Self-report the backend's consistency and feature guarantees. Required on
|
|
80
|
+
* every adapter so the engine and feature gates can act on an honest,
|
|
81
|
+
* declarative profile rather than duck-typing optional methods. See
|
|
82
|
+
* {@link StorageCapabilities} for the contract each field promises and which
|
|
83
|
+
* fields are runtime-gated versus trusted.
|
|
84
|
+
*/
|
|
85
|
+
capabilities(): StorageCapabilities;
|
|
86
|
+
get(key: string): Promise<Uint8Array | null>;
|
|
87
|
+
put(key: string, value: Uint8Array): Promise<void>;
|
|
88
|
+
delete(key: string): Promise<void>;
|
|
89
|
+
scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
|
|
90
|
+
batch(operations: BatchOperation[]): Promise<void>;
|
|
91
|
+
conditionalBatch?(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
|
|
92
|
+
has?(key: string): Promise<boolean>;
|
|
93
|
+
deletePrefix?(prefix: string): Promise<number>;
|
|
94
|
+
deleteRange?(prefix: string, options: DeleteRangeOptions): Promise<number>;
|
|
95
|
+
keys?(prefix: string, options?: ScanOptions): AsyncIterable<string>;
|
|
96
|
+
count?(prefix: string): Promise<number>;
|
|
97
|
+
scoped?(prefix: string): Storage;
|
|
98
|
+
/** Optional SQL passthrough for dashboard/debugging. */
|
|
99
|
+
query?<T>(sql: string, params?: unknown[]): Promise<T[]>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Resolve the exclusive upper bound for a lexicographic prefix scan.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* import { resolvePrefixRangeEnd } from '@lostgradient/weft/storage/interface';
|
|
107
|
+
*
|
|
108
|
+
* const end = resolvePrefixRangeEnd('wf:');
|
|
109
|
+
* console.log(end); // 'wf;'
|
|
110
|
+
* // Use as an exclusive upper bound in range queries
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function resolvePrefixRangeEnd(prefix: string): string;
|
|
114
|
+
/**
|
|
115
|
+
* Apply gt/gte/lt/lte scan bounds to a single key.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* import { matchesScanOptions } from '@lostgradient/weft/storage/interface';
|
|
120
|
+
*
|
|
121
|
+
* console.log(matchesScanOptions('wf:b', { gt: 'wf:a', lt: 'wf:c' })); // true
|
|
122
|
+
* console.log(matchesScanOptions('wf:a', { gt: 'wf:a' })); // false
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function matchesScanOptions(key: string, options?: ScanOptions): boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Compare two storage values for byte-for-byte equality.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* import { storageValuesEqual } from '@lostgradient/weft';
|
|
132
|
+
*
|
|
133
|
+
* const a = new Uint8Array([1, 2, 3]);
|
|
134
|
+
* const b = new Uint8Array([1, 2, 3]);
|
|
135
|
+
* console.log(storageValuesEqual(a, b)); // true
|
|
136
|
+
* console.log(storageValuesEqual(a, null)); // false
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function storageValuesEqual(left: Uint8Array | null, right: Uint8Array | null): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Check key existence using the adapter method when available or a core fallback otherwise.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
146
|
+
* import { storageHas } from '@lostgradient/weft/storage/interface';
|
|
147
|
+
*
|
|
148
|
+
* await using storage = new MemoryStorage();
|
|
149
|
+
* await storage.put('my-key', new Uint8Array([1]));
|
|
150
|
+
* console.log(await storageHas(storage, 'my-key')); // true
|
|
151
|
+
* console.log(await storageHas(storage, 'other-key')); // false
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
export declare function storageHas(storage: Storage, key: string): Promise<boolean>;
|
|
155
|
+
/**
|
|
156
|
+
* Iterate keys only, using the adapter shortcut when available or `scan()` as a fallback.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```ts
|
|
160
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
161
|
+
* import { storageKeys } from '@lostgradient/weft/storage/interface';
|
|
162
|
+
*
|
|
163
|
+
* await using storage = new MemoryStorage();
|
|
164
|
+
* for await (const key of storageKeys(storage, 'wf:')) {
|
|
165
|
+
* console.log(key); // 'wf:abc'
|
|
166
|
+
* }
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
export declare function storageKeys(storage: Storage, prefix: string, options?: ScanOptions): AsyncIterable<string>;
|
|
170
|
+
/**
|
|
171
|
+
* Count keys for a prefix using the adapter method when available or iteration otherwise.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```ts
|
|
175
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
176
|
+
* import { storageCount } from '@lostgradient/weft/storage/interface';
|
|
177
|
+
*
|
|
178
|
+
* await using storage = new MemoryStorage();
|
|
179
|
+
* await storage.put('wf:1', new Uint8Array([1]));
|
|
180
|
+
* await storage.put('wf:2', new Uint8Array([2]));
|
|
181
|
+
* console.log(await storageCount(storage, 'wf:')); // 2
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export declare function storageCount(storage: Storage, prefix: string): Promise<number>;
|
|
185
|
+
/**
|
|
186
|
+
* Delete a whole prefix using the adapter method when available or a batched fallback otherwise.
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```ts
|
|
190
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
191
|
+
* import { storageDeletePrefix } from '@lostgradient/weft/storage/interface';
|
|
192
|
+
*
|
|
193
|
+
* await using storage = new MemoryStorage();
|
|
194
|
+
* await storage.put('wf:a', new Uint8Array([1]));
|
|
195
|
+
* await storage.put('wf:b', new Uint8Array([2]));
|
|
196
|
+
* const deleted = await storageDeletePrefix(storage, 'wf:');
|
|
197
|
+
* console.log(deleted); // 2
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export declare function storageDeletePrefix(storage: Storage, prefix: string): Promise<number>;
|
|
201
|
+
/**
|
|
202
|
+
* Run a conditional batch or throw when the backend does not support it.
|
|
203
|
+
*
|
|
204
|
+
* Built-in Memory, BunSQLite, NodeSQLite, LMDB, Turso, and IndexedDB backends
|
|
205
|
+
* provide `conditionalBatch`; custom adapters may omit it.
|
|
206
|
+
*
|
|
207
|
+
* @throws {Error} This storage backend does not support conditionalBatch(), which is required for this operation.
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```ts
|
|
211
|
+
* import { MemoryStorage } from '@lostgradient/weft';
|
|
212
|
+
* import { storageConditionalBatch } from '@lostgradient/weft/storage/interface';
|
|
213
|
+
*
|
|
214
|
+
* await using storage = new MemoryStorage();
|
|
215
|
+
* const key = 'my-key';
|
|
216
|
+
* // Commit only if key is absent
|
|
217
|
+
* const applied = await storageConditionalBatch(
|
|
218
|
+
* storage,
|
|
219
|
+
* [{ key, expectedValue: null }],
|
|
220
|
+
* [{ type: 'put', key, value: new Uint8Array([1]) }],
|
|
221
|
+
* );
|
|
222
|
+
* console.log(applied); // true
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
export declare function storageConditionalBatch(storage: Storage, conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
|
|
226
|
+
/**
|
|
227
|
+
* Encode an untrusted string so it is safe to embed in a colon-delimited storage key.
|
|
228
|
+
*
|
|
229
|
+
* @example
|
|
230
|
+
* ```ts
|
|
231
|
+
* import { encodeStorageKeyComponent } from '@lostgradient/weft/storage/interface';
|
|
232
|
+
*
|
|
233
|
+
* const safe = encodeStorageKeyComponent('user:123/profile');
|
|
234
|
+
* console.log(safe); // 'user%3A123%2Fprofile'
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
export declare function encodeStorageKeyComponent(value: string): string;
|
|
238
|
+
/**
|
|
239
|
+
* Decode a storage-key component produced by {@link encodeStorageKeyComponent}.
|
|
240
|
+
* Throws when `value` is malformed percent-encoded text. Callers handling
|
|
241
|
+
* untrusted input should prefer {@link tryDecodeStorageKeyComponent}.
|
|
242
|
+
*
|
|
243
|
+
* @throws {URIError} When `value` contains malformed percent-encoded data.
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```ts
|
|
247
|
+
* import { encodeStorageKeyComponent, decodeStorageKeyComponent } from '@lostgradient/weft/storage/interface';
|
|
248
|
+
*
|
|
249
|
+
* const encoded = encodeStorageKeyComponent('user:123');
|
|
250
|
+
* const decoded = decodeStorageKeyComponent(encoded);
|
|
251
|
+
* console.log(decoded); // 'user:123'
|
|
252
|
+
* ```
|
|
253
|
+
*/
|
|
254
|
+
export declare function decodeStorageKeyComponent(value: string): string;
|
|
255
|
+
/**
|
|
256
|
+
* Decode a storage-key component produced by {@link encodeStorageKeyComponent}.
|
|
257
|
+
* Returns `null` when the component is malformed instead of throwing.
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```ts
|
|
261
|
+
* import { tryDecodeStorageKeyComponent } from '@lostgradient/weft/storage/interface';
|
|
262
|
+
*
|
|
263
|
+
* console.log(tryDecodeStorageKeyComponent('user%3A123')); // 'user:123'
|
|
264
|
+
* console.log(tryDecodeStorageKeyComponent('%GG')); // null
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
export declare function tryDecodeStorageKeyComponent(value: string): string | null;
|
|
268
|
+
/**
|
|
269
|
+
* Key layout constants for hierarchical key encoding. Timestamps are
|
|
270
|
+
* zero-padded to 16 digits for lexicographic ordering.
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```ts
|
|
274
|
+
* import { KEYS } from '@lostgradient/weft/storage/interface';
|
|
275
|
+
* KEYS.workflow('workflow-id');
|
|
276
|
+
* ```
|
|
277
|
+
*/
|
|
278
|
+
export declare const KEYS: {
|
|
279
|
+
readonly workflow: (id: string) => string;
|
|
280
|
+
readonly checkpoint: (id: string) => string;
|
|
281
|
+
readonly checkpointHistory: (id: string, step: number) => string;
|
|
282
|
+
readonly timelinePrefix: (id: string) => string;
|
|
283
|
+
readonly timeline: (id: string, step: number) => string;
|
|
284
|
+
readonly schedule: (id: string) => string;
|
|
285
|
+
readonly scheduleTick: (fireAt: number, id: string) => string;
|
|
286
|
+
readonly scheduleRun: (workflowId: string) => string;
|
|
287
|
+
readonly operation: (queue: string, scheduledAt: number, id: string) => string;
|
|
288
|
+
readonly operationInflight: (id: string) => string;
|
|
289
|
+
readonly operationQueued: (id: string) => string;
|
|
290
|
+
readonly operationResolved: (id: string) => string;
|
|
291
|
+
readonly bulkOperationAuditPrefix: () => string;
|
|
292
|
+
readonly bulkOperationAudit: (timestamp: number, requestId: string, confirmationToken: string) => string;
|
|
293
|
+
readonly operationResolvedByTimePrefix: () => string;
|
|
294
|
+
readonly operationResolvedByTime: (resolvedAt: number, id: string) => string;
|
|
295
|
+
readonly asyncActivity: (workflowId: string, token: string) => string;
|
|
296
|
+
readonly activityReconciliationPrefix: (workflowId: string) => string;
|
|
297
|
+
readonly activityReconciliation: (workflowId: string, activityName: string, idempotencyKeyDigest: string) => string;
|
|
298
|
+
readonly eventPrefix: (workflowId: string) => string;
|
|
299
|
+
readonly event: (workflowId: string, sequence: number) => string;
|
|
300
|
+
readonly eventHead: (workflowId: string) => string;
|
|
301
|
+
readonly eventWatermark: (workflowId: string) => string;
|
|
302
|
+
readonly signal: (workflowId: string, name: string, id: string) => string;
|
|
303
|
+
readonly signalSequence: (workflowId: string) => string;
|
|
304
|
+
readonly signalAcceptedResponsePrefix: (workflowId: string) => string;
|
|
305
|
+
readonly signalAcceptedResponse: (workflowId: string, name: string, signalId: string) => string;
|
|
306
|
+
readonly deadline: (deadline: number, workflowId: string) => string;
|
|
307
|
+
readonly terminalCleanup: (fireAt: number, timerId: string) => string;
|
|
308
|
+
readonly delayedStart: (startAt: number, workflowId: string) => string;
|
|
309
|
+
readonly terminalWorkflowPrefix: () => string;
|
|
310
|
+
readonly terminalWorkflow: (updatedAt: number, workflowId: string) => string;
|
|
311
|
+
readonly attribute: (workflowId: string) => string;
|
|
312
|
+
readonly attributeIndex: (attributeName: string, encodedValue: string, workflowId: string) => string;
|
|
313
|
+
readonly tagIndex: (tag: string, workflowId: string) => string;
|
|
314
|
+
readonly updatePrefix: (workflowId: string) => string;
|
|
315
|
+
readonly update: (workflowId: string, updateId: string) => string;
|
|
316
|
+
readonly updateResponse: (updateId: string) => string;
|
|
317
|
+
readonly updateIdempotency: (workflowId: string, key: string) => string;
|
|
318
|
+
readonly budget: (namespace: string, period: string, date: string) => string;
|
|
319
|
+
readonly review: (workflowId: string, reviewId: string) => string;
|
|
320
|
+
readonly workflowHeaders: (workflowId: string) => string;
|
|
321
|
+
readonly terminalCleanupNeeded: (workflowId: string) => string;
|
|
322
|
+
readonly offload: (workflowId: string, key: string) => string;
|
|
323
|
+
readonly archive: (workflowId: string, key: string) => string;
|
|
324
|
+
readonly stateExecution: (ownerWorkflowId: string, key: string) => string;
|
|
325
|
+
readonly stateWorkflow: (workflowType: string, key: string) => string;
|
|
326
|
+
readonly streamChunkPrefix: (workflowId: string, key: string) => string;
|
|
327
|
+
readonly streamChunk: (workflowId: string, key: string, chunkIndex: number) => string;
|
|
328
|
+
readonly streamMetadata: (workflowId: string, key: string) => string;
|
|
329
|
+
readonly budgetCharged: (operationId: string) => string;
|
|
330
|
+
readonly toolEffect: (workflowId: string, agentId: string, semanticHash: string) => string;
|
|
331
|
+
readonly workflowVisibilityStatus: (status: string, workflowId: string) => string;
|
|
332
|
+
readonly workflowVisibilityType: (type: string, workflowId: string) => string;
|
|
333
|
+
readonly workflowVisibilityCreated: (createdAt: number, workflowId: string) => string;
|
|
334
|
+
readonly workflowVisibilityUpdated: (updatedAt: number, workflowId: string) => string;
|
|
335
|
+
readonly workflowVisibilityDeadline: (deadline: number, workflowId: string) => string;
|
|
336
|
+
readonly workflowVisibilityManifest: (workflowId: string) => string;
|
|
337
|
+
readonly workflowVisibilityMetaVersion: () => string;
|
|
338
|
+
readonly workflowVisibilityMetaBuiltAt: () => string;
|
|
339
|
+
readonly workflowVisibilityMetaCursor: () => string;
|
|
340
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var $=Object.defineProperty;var j=(E)=>E;function L(E,_){this[E]=j.bind(null,_)}var H=(E,_)=>{for(var F in _)$(E,F,{get:_[F],enumerable:!0,configurable:!0,set:L.bind(_,F)})};var G=(E,_)=>()=>(E&&(_=E(E=0)),_);function U(E,_,F){if(!E.capabilities()[_])throw Error(`Feature "${F}" requires storage capability "${_}", but this storage backend does not provide it.`)}function z(E){let _=E.capabilities(),F=[];if(_.persistence!=="local")F.push(`persistence must be "local" (got "${_.persistence}")`);if(_.readAfterWrite!=="linearizable")F.push(`readAfterWrite must be "linearizable" (got "${_.readAfterWrite}")`);if(_.scanConsistency!=="snapshot")F.push(`scanConsistency must be "snapshot" (got "${_.scanConsistency}")`);if(!_.atomicBatch)F.push("atomicBatch must be true");if(!_.conditionalBatch)F.push("conditionalBatch must be true");if(F.length>0)throw Error(`Storage is not durable enough for recovery: ${F.join("; ")}.`)}var B="default";async function J(E,_){return await E.get(_)!==null}async function*X(E,_,F){for await(let[Y]of E.scan(_,F))yield Y}async function M(E,_){let F=0;for await(let Y of X(E,_))F++;return F}async function O(E,_){let F=[];for await(let Y of X(E,_))F.push({type:"delete",key:Y});if(F.length===0)return 0;return await E.batch(F),F.length}async function A(E,_,F){let Y=[];for await(let Z of X(E,_,F))Y.push({type:"delete",key:Z});if(Y.length===0)return 0;return await E.batch(Y),Y.length}var Q;var V=G(()=>{Q=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","idx:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-deadline:","wf-delayed:","wf-headers:","wf-idx-","wf-terminal:"]});function K(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function S(E,_={}){if(_.gt!==void 0&&E<=_.gt)return!1;if(_.gte!==void 0&&E<_.gte)return!1;if(_.lt!==void 0&&E>=_.lt)return!1;if(_.lte!==void 0&&E>_.lte)return!1;return!0}function C(E,_){if(E===null||_===null)return E===_;if(E.byteLength!==_.byteLength)return!1;for(let F=0;F<E.byteLength;F++)if(E[F]!==_[F])return!1;return!0}async function c(E,_){if(E.has)return E.has(_);return J(E,_)}function I(E,_,F){if(E.keys)return E.keys(_,F);return X(E,_,F)}async function k(E,_){if(E.count)return E.count(_);return M(E,_)}async function y(E,_){if(E.deletePrefix)return E.deletePrefix(_);return O(E,_)}async function m(E,_,F){if(U(E,"conditionalBatch","storageConditionalBatch"),!E.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return E.conditionalBatch(_,F)}function W(E){return encodeURIComponent(E)}function f(E){return decodeURIComponent(E)}function l(E){try{return decodeURIComponent(E)}catch{return null}}var P=(E)=>String(E).padStart(16,"0"),g;var D=G(()=>{V();g={workflow:(E)=>`wf:${W(E)}`,checkpoint:(E)=>`wf:${W(E)}:ckpt`,checkpointHistory:(E,_)=>`wf:${W(E)}:ckpt:${String(_).padStart(10,"0")}`,timelinePrefix:(E)=>`wf:${W(E)}:timeline:`,timeline:(E,_)=>`wf:${W(E)}:timeline:${String(_).padStart(10,"0")}`,schedule:(E)=>`schedule:${W(E)}`,scheduleTick:(E,_)=>`schedule-due:${String(E).padStart(16,"0")}:${W(_)}`,scheduleRun:(E)=>`schedule-run:${W(E)}`,operation:(E,_,F)=>`op:${E}:${P(_)}:${F}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,F)=>`audit:bulk:${P(E)}:${W(_)}:${W(F)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${P(E)}:${W(_)}`,asyncActivity:(E,_)=>`async-act:v1:${W(E)}:${W(_)}`,activityReconciliationPrefix:(E)=>`actrec:v1:${W(E)}:`,activityReconciliation:(E,_,F)=>`actrec:v1:${W(E)}:${W(_)}:${F}`,eventPrefix:(E)=>`ev:${W(E)}:`,event:(E,_)=>`ev:${W(E)}:${String(_).padStart(10,"0")}`,eventHead:(E)=>`ev:${W(E)}:head`,eventWatermark:(E)=>`ev:${W(E)}:watermark`,signal:(E,_,F)=>`sig:${W(E)}:${_}:${W(F)}`,signalSequence:(E)=>`sigseq:v1:${W(E)}`,signalAcceptedResponsePrefix:(E)=>`sigres:v1:${W(E)}:`,signalAcceptedResponse:(E,_,F)=>`sigres:v1:${W(E)}:${W(_)}:${W(F)}`,deadline:(E,_)=>`wf-deadline:${P(E)}:${W(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${P(E)}:${W(_)}`,delayedStart:(E,_)=>`wf-delayed:${P(E)}:${W(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${P(E)}:${W(_)}`,attribute:(E)=>`attr:${W(E)}`,attributeIndex:(E,_,F)=>`idx:${E}:${_}:${W(F)}`,tagIndex:(E,_)=>`tag:${W(E)}:${W(_)}`,updatePrefix:(E)=>`upd:${W(E)}:`,update:(E,_)=>`upd:${W(E)}:${_}`,updateResponse:(E)=>`upr:${E}`,updateIdempotency:(E,_)=>`upk:${W(E)}:${_}`,budget:(E,_,F)=>`budget:${E}:${_}:${F}`,review:(E,_)=>`review:${W(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${W(E)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${W(E)}`,offload:(E,_)=>`offload:${W(E)}:${_}`,archive:(E,_)=>`archive:${W(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${W(E)}:${W(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${B}:${W(E)}:${W(_)}`,streamChunkPrefix:(E,_)=>`blob:${W(E)}:${_}:chunk:`,streamChunk:(E,_,F)=>`blob:${W(E)}:${_}:chunk:${String(F).padStart(10,"0")}`,streamMetadata:(E,_)=>`blob:${W(E)}:${_}:meta`,budgetCharged:(E)=>`budget-charged:${E}`,toolEffect:(E,_,F)=>`tool-effect:${W(E)}:${_}:${F}`,workflowVisibilityStatus:(E,_)=>`wf-idx-status:${W(E)}:${W(_)}`,workflowVisibilityType:(E,_)=>`wf-idx-type:${W(E)}:${W(_)}`,workflowVisibilityCreated:(E,_)=>`wf-idx-created:${P(E)}:${W(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${P(E)}:${W(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${P(E)}:${W(_)}`,workflowVisibilityManifest:(E)=>`wf-idx-manifest:${W(E)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});D();export{l as tryDecodeStorageKeyComponent,C as storageValuesEqual,I as storageKeys,c as storageHas,y as storageDeletePrefix,k as storageCount,m as storageConditionalBatch,K as resolvePrefixRangeEnd,U as requireStorageCapability,S as matchesScanOptions,W as encodeStorageKeyComponent,f as decodeStorageKeyComponent,z as assertDurableStorageForRecovery,Q as WEFT_RESERVED_KEY_PREFIXES,g as KEYS,B as DEFAULT_SCOPE};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prefixes reserved for Weft-owned runtime data in a shared storage backend.
|
|
3
|
+
*
|
|
4
|
+
* Application state should live under an application namespace instead, for
|
|
5
|
+
* example `scopedStorage(base, 'app:my-service')` or keys beginning with
|
|
6
|
+
* `app:my-service:`. Treat this list as a stable keyspace contract: Weft may
|
|
7
|
+
* add new reserved prefixes, but application code should not write under the
|
|
8
|
+
* prefixes listed here.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { WEFT_RESERVED_KEY_PREFIXES } from '@lostgradient/weft/storage';
|
|
13
|
+
*
|
|
14
|
+
* const key = 'wf:order-123';
|
|
15
|
+
* const isWeftKey = WEFT_RESERVED_KEY_PREFIXES.some((prefix) => key.startsWith(prefix));
|
|
16
|
+
* console.log(isWeftKey); // true
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare const WEFT_RESERVED_KEY_PREFIXES: readonly ["actrec:", "archive:", "async-act:", "attr:", "audit:bulk:", "blob:", "budget:", "budget-charged:", "ev:", "idx:", "offload:", "op:", "review:", "schedule:", "schedule-due:", "schedule-run:", "sig:", "sigres:", "sigseq:", "state:", "tag:", "tool-effect:", "upd:", "upk:", "upr:", "wf:", "wf-cleanup:", "wf-cleanup-needed:", "wf-deadline:", "wf-delayed:", "wf-headers:", "wf-idx-", "wf-terminal:"];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const WEFT_RESERVED_KEY_PREFIXES = [
|
|
2
|
+
"actrec:",
|
|
3
|
+
"archive:",
|
|
4
|
+
"async-act:",
|
|
5
|
+
"attr:",
|
|
6
|
+
"audit:bulk:",
|
|
7
|
+
"blob:",
|
|
8
|
+
"budget:",
|
|
9
|
+
"budget-charged:",
|
|
10
|
+
"ev:",
|
|
11
|
+
"idx:",
|
|
12
|
+
"offload:",
|
|
13
|
+
"op:",
|
|
14
|
+
"review:",
|
|
15
|
+
"schedule:",
|
|
16
|
+
"schedule-due:",
|
|
17
|
+
"schedule-run:",
|
|
18
|
+
"sig:",
|
|
19
|
+
"sigres:",
|
|
20
|
+
"sigseq:",
|
|
21
|
+
"state:",
|
|
22
|
+
"tag:",
|
|
23
|
+
"tool-effect:",
|
|
24
|
+
"upd:",
|
|
25
|
+
"upk:",
|
|
26
|
+
"upr:",
|
|
27
|
+
"wf:",
|
|
28
|
+
"wf-cleanup:",
|
|
29
|
+
"wf-cleanup-needed:",
|
|
30
|
+
"wf-deadline:",
|
|
31
|
+
"wf-delayed:",
|
|
32
|
+
"wf-headers:",
|
|
33
|
+
"wf-idx-",
|
|
34
|
+
"wf-terminal:"
|
|
35
|
+
];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type DeleteRangeOptions } from './delete-range';
|
|
2
|
+
import { type BatchOperation, type ConditionalBatchCondition, type ScanOptions, type Storage, type StorageCapabilities } from './interface';
|
|
3
|
+
/**
|
|
4
|
+
* LMDB-backed storage adapter. Reads hit lmdb-js's synchronous memory-mapped
|
|
5
|
+
* path internally, but the Storage interface presents them as Promises and
|
|
6
|
+
* copies the bytes into a fresh Uint8Array on each call. Writes use lmdb-js's
|
|
7
|
+
* async batching: individual `put`/`remove` calls return promises that resolve
|
|
8
|
+
* once the next batched transaction commits to disk. The adapter resets
|
|
9
|
+
* lmdb-js's cached read transaction after every write so subsequent reads
|
|
10
|
+
* observe just-written data.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { LMDBStorage } from '@lostgradient/weft/storage/lmdb';
|
|
15
|
+
* import { workflow, Engine } from '@lostgradient/weft';
|
|
16
|
+
*
|
|
17
|
+
* await using storage = new LMDBStorage('./weft-data');
|
|
18
|
+
* await using engine = new Engine({ storage });
|
|
19
|
+
* engine.register(workflow({ name: 'ping' }).execute(async function* () { return 'pong'; }));
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare class LMDBStorage implements Storage {
|
|
23
|
+
#private;
|
|
24
|
+
constructor(path: string);
|
|
25
|
+
capabilities(): StorageCapabilities;
|
|
26
|
+
get(key: string): Promise<Uint8Array | null>;
|
|
27
|
+
put(key: string, value: Uint8Array): Promise<void>;
|
|
28
|
+
delete(key: string): Promise<void>;
|
|
29
|
+
has(key: string): Promise<boolean>;
|
|
30
|
+
deletePrefix(prefix: string): Promise<number>;
|
|
31
|
+
deleteRange(prefix: string, options: DeleteRangeOptions): Promise<number>;
|
|
32
|
+
scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
|
|
33
|
+
keys(prefix: string, options?: ScanOptions): AsyncIterable<string>;
|
|
34
|
+
count(prefix: string): Promise<number>;
|
|
35
|
+
scoped(prefix: string): Storage;
|
|
36
|
+
batch(operations: BatchOperation[]): Promise<void>;
|
|
37
|
+
conditionalBatch(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
[Symbol.dispose](): void;
|
|
40
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var y=Object.defineProperty;var g=(E)=>E;function f(E,_){this[E]=g.bind(null,_)}var l=(E,_)=>{for(var W in _)y(E,W,{get:_[W],enumerable:!0,configurable:!0,set:f.bind(_,W)})};var j=(E,_)=>()=>(E&&(_=E(E=0)),_);function B(E,_,W){if(!E.capabilities()[_])throw Error(`Feature "${W}" requires storage capability "${_}", but this storage backend does not provide it.`)}function d(E){let _=E.capabilities(),W=[];if(_.persistence!=="local")W.push(`persistence must be "local" (got "${_.persistence}")`);if(_.readAfterWrite!=="linearizable")W.push(`readAfterWrite must be "linearizable" (got "${_.readAfterWrite}")`);if(_.scanConsistency!=="snapshot")W.push(`scanConsistency must be "snapshot" (got "${_.scanConsistency}")`);if(!_.atomicBatch)W.push("atomicBatch must be true");if(!_.conditionalBatch)W.push("conditionalBatch must be true");if(W.length>0)throw Error(`Storage is not durable enough for recovery: ${W.join("; ")}.`)}var L="default";async function A(E,_){return await E.get(_)!==null}async function*Q(E,_,W){for await(let[Y]of E.scan(_,W))yield Y}async function z(E,_){let W=0;for await(let Y of Q(E,_))W++;return W}async function P(E,_){let W=[];for await(let Y of Q(E,_))W.push({type:"delete",key:Y});if(W.length===0)return 0;return await E.batch(W),W.length}async function O(E,_,W){let Y=[];for await(let X of Q(E,_,W))Y.push({type:"delete",key:X});if(Y.length===0)return 0;return await E.batch(Y),Y.length}var p;var h=j(()=>{p=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","idx:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-deadline:","wf-delayed:","wf-headers:","wf-idx-","wf-terminal:"]});function V(E){return E.length>0?E.slice(0,-1)+String.fromCharCode(E.charCodeAt(E.length-1)+1):"\xFF"}function N(E,_={}){if(_.gt!==void 0&&E<=_.gt)return!1;if(_.gte!==void 0&&E<_.gte)return!1;if(_.lt!==void 0&&E>=_.lt)return!1;if(_.lte!==void 0&&E>_.lte)return!1;return!0}function v(E,_){if(E===null||_===null)return E===_;if(E.byteLength!==_.byteLength)return!1;for(let W=0;W<E.byteLength;W++)if(E[W]!==_[W])return!1;return!0}async function C(E,_){if(E.has)return E.has(_);return A(E,_)}function K(E,_,W){if(E.keys)return E.keys(_,W);return Q(E,_,W)}async function b(E,_){if(E.count)return E.count(_);return z(E,_)}async function S(E,_){if(E.deletePrefix)return E.deletePrefix(_);return P(E,_)}async function u(E,_,W){if(B(E,"conditionalBatch","storageConditionalBatch"),!E.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return E.conditionalBatch(_,W)}function F(E){return encodeURIComponent(E)}function YE(E){return decodeURIComponent(E)}function XE(E){try{return decodeURIComponent(E)}catch{return null}}var J=(E)=>String(E).padStart(16,"0"),JE;var q=j(()=>{h();JE={workflow:(E)=>`wf:${F(E)}`,checkpoint:(E)=>`wf:${F(E)}:ckpt`,checkpointHistory:(E,_)=>`wf:${F(E)}:ckpt:${String(_).padStart(10,"0")}`,timelinePrefix:(E)=>`wf:${F(E)}:timeline:`,timeline:(E,_)=>`wf:${F(E)}:timeline:${String(_).padStart(10,"0")}`,schedule:(E)=>`schedule:${F(E)}`,scheduleTick:(E,_)=>`schedule-due:${String(E).padStart(16,"0")}:${F(_)}`,scheduleRun:(E)=>`schedule-run:${F(E)}`,operation:(E,_,W)=>`op:${E}:${J(_)}:${W}`,operationInflight:(E)=>`op:inflight:${E}`,operationQueued:(E)=>`op:queued:${E}`,operationResolved:(E)=>`op:resolved:${E}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(E,_,W)=>`audit:bulk:${J(E)}:${F(_)}:${F(W)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(E,_)=>`op:resolved-by-time:${J(E)}:${F(_)}`,asyncActivity:(E,_)=>`async-act:v1:${F(E)}:${F(_)}`,activityReconciliationPrefix:(E)=>`actrec:v1:${F(E)}:`,activityReconciliation:(E,_,W)=>`actrec:v1:${F(E)}:${F(_)}:${W}`,eventPrefix:(E)=>`ev:${F(E)}:`,event:(E,_)=>`ev:${F(E)}:${String(_).padStart(10,"0")}`,eventHead:(E)=>`ev:${F(E)}:head`,eventWatermark:(E)=>`ev:${F(E)}:watermark`,signal:(E,_,W)=>`sig:${F(E)}:${_}:${F(W)}`,signalSequence:(E)=>`sigseq:v1:${F(E)}`,signalAcceptedResponsePrefix:(E)=>`sigres:v1:${F(E)}:`,signalAcceptedResponse:(E,_,W)=>`sigres:v1:${F(E)}:${F(_)}:${F(W)}`,deadline:(E,_)=>`wf-deadline:${J(E)}:${F(_)}`,terminalCleanup:(E,_)=>`wf-cleanup:${J(E)}:${F(_)}`,delayedStart:(E,_)=>`wf-delayed:${J(E)}:${F(_)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(E,_)=>`wf-terminal:${J(E)}:${F(_)}`,attribute:(E)=>`attr:${F(E)}`,attributeIndex:(E,_,W)=>`idx:${E}:${_}:${F(W)}`,tagIndex:(E,_)=>`tag:${F(E)}:${F(_)}`,updatePrefix:(E)=>`upd:${F(E)}:`,update:(E,_)=>`upd:${F(E)}:${_}`,updateResponse:(E)=>`upr:${E}`,updateIdempotency:(E,_)=>`upk:${F(E)}:${_}`,budget:(E,_,W)=>`budget:${E}:${_}:${W}`,review:(E,_)=>`review:${F(E)}:${_}`,workflowHeaders:(E)=>`wf-headers:${F(E)}`,terminalCleanupNeeded:(E)=>`wf-cleanup-needed:${F(E)}`,offload:(E,_)=>`offload:${F(E)}:${_}`,archive:(E,_)=>`archive:${F(E)}:${_}`,stateExecution:(E,_)=>`state:execution:${F(E)}:${F(_)}`,stateWorkflow:(E,_)=>`state:workflow-scope:${L}:${F(E)}:${F(_)}`,streamChunkPrefix:(E,_)=>`blob:${F(E)}:${_}:chunk:`,streamChunk:(E,_,W)=>`blob:${F(E)}:${_}:chunk:${String(W).padStart(10,"0")}`,streamMetadata:(E,_)=>`blob:${F(E)}:${_}:meta`,budgetCharged:(E)=>`budget-charged:${E}`,toolEffect:(E,_,W)=>`tool-effect:${F(E)}:${_}:${W}`,workflowVisibilityStatus:(E,_)=>`wf-idx-status:${F(E)}:${F(_)}`,workflowVisibilityType:(E,_)=>`wf-idx-type:${F(E)}:${F(_)}`,workflowVisibilityCreated:(E,_)=>`wf-idx-created:${J(E)}:${F(_)}`,workflowVisibilityUpdated:(E,_)=>`wf-idx-updated:${J(E)}:${F(_)}`,workflowVisibilityDeadline:(E,_)=>`wf-idx-deadline:${J(E)}:${F(_)}`,workflowVisibilityManifest:(E)=>`wf-idx-manifest:${F(E)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function s(E){if(E===void 0)return;if(typeof E!=="number"||!Number.isInteger(E)||E<0)throw Error("deleteRange limit must be a finite non-negative integer");return E===0?0:E}function H(E){let _={},W=!1;for(let X of["gt","gte","lt","lte"]){let U=E[X];if(U===void 0)continue;if(typeof U!=="string")throw Error("deleteRange bounds must be strings");_[X]=U,W=!0}if(!W)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=s(E.limit);if(Y!==void 0)_.limit=Y;return _}async function I(E,_,W){let Y=H(W);if(E.deleteRange)return E.deleteRange(_,Y);return O(E,_,Y)}var D=()=>{};function R(E){return E.replaceAll(/:+$/g,"")}function a(E,_){let W=R(E),Y=R(_);if(W.length===0)return Y;if(Y.length===0)return W;return`${W}:${Y}`}function x(E,_){return new T(E,_)}var T;var c=j(()=>{D();q();T=class T{#E;#F;constructor(E,_){this.#E=E,this.#F=R(_)}#_(E){if(this.#F.length===0)return E;return E.length===0?`${this.#F}:`:`${this.#F}:${E}`}#W(E){if(this.#F.length===0)return E;return E.slice(this.#F.length+1)}#Y(E={}){let _={};if(E.limit!==void 0)_.limit=E.limit;if(E.reverse!==void 0)_.reverse=E.reverse;if(E.gt!==void 0)_.gt=this.#_(E.gt);if(E.gte!==void 0)_.gte=this.#_(E.gte);if(E.lt!==void 0)_.lt=this.#_(E.lt);if(E.lte!==void 0)_.lte=this.#_(E.lte);return _}#X(E){let _={};if(E.limit!==void 0)_.limit=E.limit;if(E.gt!==void 0)_.gt=this.#_(E.gt);if(E.gte!==void 0)_.gte=this.#_(E.gte);if(E.lt!==void 0)_.lt=this.#_(E.lt);if(E.lte!==void 0)_.lte=this.#_(E.lte);return _}capabilities(){return this.#E.capabilities()}scoped(E){return new T(this.#E,a(this.#F,E))}async get(E){return this.#E.get(this.#_(E))}async put(E,_){await this.#E.put(this.#_(E),_)}async delete(E){await this.#E.delete(this.#_(E))}async*scan(E,_){for await(let[W,Y]of this.#E.scan(this.#_(E),this.#Y(_)))yield[this.#W(W),Y]}async batch(E){await this.#E.batch(E.map((_)=>{if(_.type==="put")return{type:"put",key:this.#_(_.key),value:_.value};return{type:"delete",key:this.#_(_.key)}}))}async conditionalBatch(E,_){return u(this.#E,E.map((W)=>({key:this.#_(W.key),expectedValue:W.expectedValue})),_.map((W)=>{if(W.type==="put")return{type:"put",key:this.#_(W.key),value:W.value};return{type:"delete",key:this.#_(W.key)}}))}async has(E){return C(this.#E,this.#_(E))}async deletePrefix(E){return S(this.#E,this.#_(E))}async deleteRange(E,_){let W=this.#X(H(_));return I(this.#E,this.#_(E),W)}async*keys(E,_){for await(let W of K(this.#E,this.#_(E),this.#Y(_)))yield this.#W(W)}async count(E){return b(this.#E,this.#_(E))}[Symbol.dispose](){this.#E[Symbol.dispose]()}}});var i={};l(i,{LMDBStorage:()=>k});import*as w from"lmdb";var k;var r=j(()=>{D();q();c();k=class k{#E;#F=!1;#_=null;constructor(E){this.#E=w.open({path:E,encoding:"binary"})}#W(){if(this.#F)throw Error("LMDBStorage is closed")}capabilities(){return{persistence:"local",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!1}}async get(E){this.#W();let _=this.#E.get(E);if(_===void 0)return null;return new Uint8Array(_)}async put(E,_){this.#W(),await this.#E.put(E,Buffer.from(_))}async delete(E){this.#W(),await this.#E.remove(E)}async has(E){return this.#W(),this.#E.doesExist(E)}async deletePrefix(E){this.#W();let _=[];for await(let W of this.keys(E))_.push(W);if(_.length===0)return 0;return await this.#E.batch(()=>{for(let W of _)this.#E.remove(W)}),_.length}async deleteRange(E,_){this.#W();let W=H(_),Y=[];for await(let X of this.keys(E,W))Y.push(X);if(Y.length===0)return 0;return await this.#E.batch(()=>{for(let X of Y)this.#E.remove(X)}),Y.length}async*scan(E,_={}){this.#W();let{limit:W,reverse:Y}=_,X=V(E),U=Y?this.#E.getRange({start:X,end:E,reverse:!0}):this.#E.getRange({start:E,end:X}),$=0,G=!1;for(let{key:Z,value:m}of U){if(!Z.startsWith(E)){if(Y&&!G)continue;break}if(G=!0,!N(Z,_))continue;if(W!==void 0&&$>=W)break;yield[Z,new Uint8Array(m)],$++}}async*keys(E,_={}){this.#W();let{limit:W,reverse:Y}=_,X=V(E),U=Y?this.#E.getKeys({start:X,end:E,reverse:!0}):this.#E.getKeys({start:E,end:X}),$=0,G=!1;for(let Z of U){if(!Z.startsWith(E)){if(Y&&!G)continue;break}if(G=!0,!N(Z,_))continue;if(W!==void 0&&$>=W)break;yield Z,$++}}async count(E){this.#W();let _=V(E);return this.#E.getKeysCount({start:E,end:_})}scoped(E){return this.#W(),x(this,E)}async batch(E){if(this.#W(),E.length===0)return;await this.#E.batch(()=>{for(let _ of E)if(_.type==="put")this.#E.put(_.key,Buffer.from(_.value));else this.#E.remove(_.key)})}async conditionalBatch(E,_){return this.#W(),this.#E.transactionSync(()=>{for(let Y of E){let X=this.#E.get(Y.key),U=X===void 0?null:new Uint8Array(X);if(!v(U,Y.expectedValue))return!1}for(let Y of _)if(Y.type==="put")this.#E.putSync(Y.key,Buffer.from(Y.value));else this.#E.removeSync(Y.key);return!0})}close(){return this.#F=!0,this.#_??=(async()=>{await Promise.resolve(),await this.#E.close()})(),this.#_}[Symbol.dispose](){this.close()}}});r();export{k as LMDBStorage};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type DeleteRangeOptions } from './delete-range';
|
|
2
|
+
import { type BatchOperation, type ConditionalBatchCondition, type ScanOptions, type Storage, type StorageCapabilities } from './interface';
|
|
3
|
+
/**
|
|
4
|
+
* In-memory {@link Storage} implementation.
|
|
5
|
+
*
|
|
6
|
+
* Backs the engine with a `Map<string, Uint8Array>` — fast, dependency-free,
|
|
7
|
+
* and ideal for tests, ephemeral runs, and CI. State is lost when the process
|
|
8
|
+
* exits, so don't use it for anything you care about between restarts.
|
|
9
|
+
*
|
|
10
|
+
* @example Run an engine with in-memory storage
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { workflow, Engine, MemoryStorage } from '@lostgradient/weft';
|
|
13
|
+
*
|
|
14
|
+
* await using storage = new MemoryStorage();
|
|
15
|
+
* await using engine = new Engine({ storage });
|
|
16
|
+
* engine.register(
|
|
17
|
+
* workflow({ name: 'noop' }).execute(async function* () {
|
|
18
|
+
* return 'done';
|
|
19
|
+
* }),
|
|
20
|
+
* );
|
|
21
|
+
*
|
|
22
|
+
* const handle = await engine.start('noop', null);
|
|
23
|
+
* const result = await handle.result();
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class MemoryStorage implements Storage {
|
|
27
|
+
#private;
|
|
28
|
+
constructor();
|
|
29
|
+
capabilities(): StorageCapabilities;
|
|
30
|
+
get(key: string): Promise<Uint8Array | null>;
|
|
31
|
+
put(key: string, value: Uint8Array): Promise<void>;
|
|
32
|
+
delete(key: string): Promise<void>;
|
|
33
|
+
scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
|
|
34
|
+
batch(operations: BatchOperation[]): Promise<void>;
|
|
35
|
+
conditionalBatch(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
|
|
36
|
+
has(key: string): Promise<boolean>;
|
|
37
|
+
deletePrefix(prefix: string): Promise<number>;
|
|
38
|
+
deleteRange(prefix: string, options: DeleteRangeOptions): Promise<number>;
|
|
39
|
+
keys(prefix: string, options?: ScanOptions): AsyncIterable<string>;
|
|
40
|
+
count(prefix: string): Promise<number>;
|
|
41
|
+
scoped(prefix: string): Storage;
|
|
42
|
+
get size(): number;
|
|
43
|
+
clear(): void;
|
|
44
|
+
snapshot(): Map<string, Uint8Array>;
|
|
45
|
+
[Symbol.dispose](): void;
|
|
46
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var c=Object.defineProperty;var k=(_)=>_;function y(_,E){this[_]=k.bind(null,E)}var g=(_,E)=>{for(var W in E)c(_,W,{get:E[W],enumerable:!0,configurable:!0,set:y.bind(E,W)})};var j=(_,E)=>()=>(_&&(E=_(_=0)),E);function L(_,E,W){if(!_.capabilities()[E])throw Error(`Feature "${W}" requires storage capability "${E}", but this storage backend does not provide it.`)}function f(_){let E=_.capabilities(),W=[];if(E.persistence!=="local")W.push(`persistence must be "local" (got "${E.persistence}")`);if(E.readAfterWrite!=="linearizable")W.push(`readAfterWrite must be "linearizable" (got "${E.readAfterWrite}")`);if(E.scanConsistency!=="snapshot")W.push(`scanConsistency must be "snapshot" (got "${E.scanConsistency}")`);if(!E.atomicBatch)W.push("atomicBatch must be true");if(!E.conditionalBatch)W.push("conditionalBatch must be true");if(W.length>0)throw Error(`Storage is not durable enough for recovery: ${W.join("; ")}.`)}var B="default";async function A(_,E){return await _.get(E)!==null}async function*Q(_,E,W){for await(let[Y]of _.scan(E,W))yield Y}async function z(_,E){let W=0;for await(let Y of Q(_,E))W++;return W}async function O(_,E){let W=[];for await(let Y of Q(_,E))W.push({type:"delete",key:Y});if(W.length===0)return 0;return await _.batch(W),W.length}async function P(_,E,W){let Y=[];for await(let J of Q(_,E,W))Y.push({type:"delete",key:J});if(Y.length===0)return 0;return await _.batch(Y),Y.length}var l;var h=j(()=>{l=["actrec:","archive:","async-act:","attr:","audit:bulk:","blob:","budget:","budget-charged:","ev:","idx:","offload:","op:","review:","schedule:","schedule-due:","schedule-run:","sig:","sigres:","sigseq:","state:","tag:","tool-effect:","upd:","upk:","upr:","wf:","wf-cleanup:","wf-cleanup-needed:","wf-deadline:","wf-delayed:","wf-headers:","wf-idx-","wf-terminal:"]});function G(_){return _.length>0?_.slice(0,-1)+String.fromCharCode(_.charCodeAt(_.length-1)+1):"\xFF"}function H(_,E={}){if(E.gt!==void 0&&_<=E.gt)return!1;if(E.gte!==void 0&&_<E.gte)return!1;if(E.lt!==void 0&&_>=E.lt)return!1;if(E.lte!==void 0&&_>E.lte)return!1;return!0}function v(_,E){if(_===null||E===null)return _===E;if(_.byteLength!==E.byteLength)return!1;for(let W=0;W<_.byteLength;W++)if(_[W]!==E[W])return!1;return!0}async function b(_,E){if(_.has)return _.has(E);return A(_,E)}function C(_,E,W){if(_.keys)return _.keys(E,W);return Q(_,E,W)}async function K(_,E){if(_.count)return _.count(E);return z(_,E)}async function u(_,E){if(_.deletePrefix)return _.deletePrefix(E);return O(_,E)}async function S(_,E,W){if(L(_,"conditionalBatch","storageConditionalBatch"),!_.conditionalBatch)throw Error("This storage backend reports conditionalBatch capability but does not implement the conditionalBatch() method.");return _.conditionalBatch(E,W)}function F(_){return encodeURIComponent(_)}function W_(_){return decodeURIComponent(_)}function F_(_){try{return decodeURIComponent(_)}catch{return null}}var U=(_)=>String(_).padStart(16,"0"),Y_;var N=j(()=>{h();Y_={workflow:(_)=>`wf:${F(_)}`,checkpoint:(_)=>`wf:${F(_)}:ckpt`,checkpointHistory:(_,E)=>`wf:${F(_)}:ckpt:${String(E).padStart(10,"0")}`,timelinePrefix:(_)=>`wf:${F(_)}:timeline:`,timeline:(_,E)=>`wf:${F(_)}:timeline:${String(E).padStart(10,"0")}`,schedule:(_)=>`schedule:${F(_)}`,scheduleTick:(_,E)=>`schedule-due:${String(_).padStart(16,"0")}:${F(E)}`,scheduleRun:(_)=>`schedule-run:${F(_)}`,operation:(_,E,W)=>`op:${_}:${U(E)}:${W}`,operationInflight:(_)=>`op:inflight:${_}`,operationQueued:(_)=>`op:queued:${_}`,operationResolved:(_)=>`op:resolved:${_}`,bulkOperationAuditPrefix:()=>"audit:bulk:",bulkOperationAudit:(_,E,W)=>`audit:bulk:${U(_)}:${F(E)}:${F(W)}`,operationResolvedByTimePrefix:()=>"op:resolved-by-time:",operationResolvedByTime:(_,E)=>`op:resolved-by-time:${U(_)}:${F(E)}`,asyncActivity:(_,E)=>`async-act:v1:${F(_)}:${F(E)}`,activityReconciliationPrefix:(_)=>`actrec:v1:${F(_)}:`,activityReconciliation:(_,E,W)=>`actrec:v1:${F(_)}:${F(E)}:${W}`,eventPrefix:(_)=>`ev:${F(_)}:`,event:(_,E)=>`ev:${F(_)}:${String(E).padStart(10,"0")}`,eventHead:(_)=>`ev:${F(_)}:head`,eventWatermark:(_)=>`ev:${F(_)}:watermark`,signal:(_,E,W)=>`sig:${F(_)}:${E}:${F(W)}`,signalSequence:(_)=>`sigseq:v1:${F(_)}`,signalAcceptedResponsePrefix:(_)=>`sigres:v1:${F(_)}:`,signalAcceptedResponse:(_,E,W)=>`sigres:v1:${F(_)}:${F(E)}:${F(W)}`,deadline:(_,E)=>`wf-deadline:${U(_)}:${F(E)}`,terminalCleanup:(_,E)=>`wf-cleanup:${U(_)}:${F(E)}`,delayedStart:(_,E)=>`wf-delayed:${U(_)}:${F(E)}`,terminalWorkflowPrefix:()=>"wf-terminal:",terminalWorkflow:(_,E)=>`wf-terminal:${U(_)}:${F(E)}`,attribute:(_)=>`attr:${F(_)}`,attributeIndex:(_,E,W)=>`idx:${_}:${E}:${F(W)}`,tagIndex:(_,E)=>`tag:${F(_)}:${F(E)}`,updatePrefix:(_)=>`upd:${F(_)}:`,update:(_,E)=>`upd:${F(_)}:${E}`,updateResponse:(_)=>`upr:${_}`,updateIdempotency:(_,E)=>`upk:${F(_)}:${E}`,budget:(_,E,W)=>`budget:${_}:${E}:${W}`,review:(_,E)=>`review:${F(_)}:${E}`,workflowHeaders:(_)=>`wf-headers:${F(_)}`,terminalCleanupNeeded:(_)=>`wf-cleanup-needed:${F(_)}`,offload:(_,E)=>`offload:${F(_)}:${E}`,archive:(_,E)=>`archive:${F(_)}:${E}`,stateExecution:(_,E)=>`state:execution:${F(_)}:${F(E)}`,stateWorkflow:(_,E)=>`state:workflow-scope:${B}:${F(_)}:${F(E)}`,streamChunkPrefix:(_,E)=>`blob:${F(_)}:${E}:chunk:`,streamChunk:(_,E,W)=>`blob:${F(_)}:${E}:chunk:${String(W).padStart(10,"0")}`,streamMetadata:(_,E)=>`blob:${F(_)}:${E}:meta`,budgetCharged:(_)=>`budget-charged:${_}`,toolEffect:(_,E,W)=>`tool-effect:${F(_)}:${E}:${W}`,workflowVisibilityStatus:(_,E)=>`wf-idx-status:${F(_)}:${F(E)}`,workflowVisibilityType:(_,E)=>`wf-idx-type:${F(_)}:${F(E)}`,workflowVisibilityCreated:(_,E)=>`wf-idx-created:${U(_)}:${F(E)}`,workflowVisibilityUpdated:(_,E)=>`wf-idx-updated:${U(_)}:${F(E)}`,workflowVisibilityDeadline:(_,E)=>`wf-idx-deadline:${U(_)}:${F(E)}`,workflowVisibilityManifest:(_)=>`wf-idx-manifest:${F(_)}`,workflowVisibilityMetaVersion:()=>"wf-idx-meta:version",workflowVisibilityMetaBuiltAt:()=>"wf-idx-meta:built-at",workflowVisibilityMetaCursor:()=>"wf-idx-meta:cursor"}});function d(_){if(_===void 0)return;if(typeof _!=="number"||!Number.isInteger(_)||_<0)throw Error("deleteRange limit must be a finite non-negative integer");return _===0?0:_}function V(_){let E={},W=!1;for(let J of["gt","gte","lt","lte"]){let X=_[J];if(X===void 0)continue;if(typeof X!=="string")throw Error("deleteRange bounds must be strings");E[J]=X,W=!0}if(!W)throw Error("deleteRange requires at least one of gt/gte/lt/lte; use deletePrefix to delete a whole prefix");let Y=d(_.limit);if(Y!==void 0)E.limit=Y;return E}async function I(_,E,W){let Y=V(W);if(_.deleteRange)return _.deleteRange(E,Y);return P(_,E,Y)}var q=()=>{};function D(_){return _.replaceAll(/:+$/g,"")}function s(_,E){let W=D(_),Y=D(E);if(W.length===0)return Y;if(Y.length===0)return W;return`${W}:${Y}`}function x(_,E){return new R(_,E)}var R;var w=j(()=>{q();N();R=class R{#_;#W;constructor(_,E){this.#_=_,this.#W=D(E)}#E(_){if(this.#W.length===0)return _;return _.length===0?`${this.#W}:`:`${this.#W}:${_}`}#F(_){if(this.#W.length===0)return _;return _.slice(this.#W.length+1)}#Y(_={}){let E={};if(_.limit!==void 0)E.limit=_.limit;if(_.reverse!==void 0)E.reverse=_.reverse;if(_.gt!==void 0)E.gt=this.#E(_.gt);if(_.gte!==void 0)E.gte=this.#E(_.gte);if(_.lt!==void 0)E.lt=this.#E(_.lt);if(_.lte!==void 0)E.lte=this.#E(_.lte);return E}#X(_){let E={};if(_.limit!==void 0)E.limit=_.limit;if(_.gt!==void 0)E.gt=this.#E(_.gt);if(_.gte!==void 0)E.gte=this.#E(_.gte);if(_.lt!==void 0)E.lt=this.#E(_.lt);if(_.lte!==void 0)E.lte=this.#E(_.lte);return E}capabilities(){return this.#_.capabilities()}scoped(_){return new R(this.#_,s(this.#W,_))}async get(_){return this.#_.get(this.#E(_))}async put(_,E){await this.#_.put(this.#E(_),E)}async delete(_){await this.#_.delete(this.#E(_))}async*scan(_,E){for await(let[W,Y]of this.#_.scan(this.#E(_),this.#Y(E)))yield[this.#F(W),Y]}async batch(_){await this.#_.batch(_.map((E)=>{if(E.type==="put")return{type:"put",key:this.#E(E.key),value:E.value};return{type:"delete",key:this.#E(E.key)}}))}async conditionalBatch(_,E){return S(this.#_,_.map((W)=>({key:this.#E(W.key),expectedValue:W.expectedValue})),E.map((W)=>{if(W.type==="put")return{type:"put",key:this.#E(W.key),value:W.value};return{type:"delete",key:this.#E(W.key)}}))}async has(_){return b(this.#_,this.#E(_))}async deletePrefix(_){return u(this.#_,this.#E(_))}async deleteRange(_,E){let W=this.#X(V(E));return I(this.#_,this.#E(_),W)}async*keys(_,E){for await(let W of C(this.#_,this.#E(_),this.#Y(E)))yield this.#F(W)}async count(_){return K(this.#_,this.#E(_))}[Symbol.dispose](){this.#_[Symbol.dispose]()}}});var p={};g(p,{MemoryStorage:()=>m});var m;var a=j(()=>{q();N();w();m=class m{#_;constructor(){this.#_=new Map}capabilities(){return{persistence:"ephemeral",readAfterWrite:"linearizable",scanConsistency:"snapshot",atomicBatch:!0,conditionalBatch:!0,boundedRangeDelete:!0}}#W(_,E,W){return _>=E&&_<W}#E(_,E){let W=[];for(let Y of this.#_.keys())if(this.#W(Y,_,E))W.push(Y);return W.toSorted()}async get(_){return this.#_.get(_)??null}async put(_,E){this.#_.set(_,E)}async delete(_){this.#_.delete(_)}async*scan(_,E={}){let{limit:W,reverse:Y}=E,J=G(_),X=this.#E(_,J);if(X=X.filter(($)=>H($,E)),Y)X.reverse();let Z=0;for(let $ of X){if(W!==void 0&&Z>=W)break;let T=this.#_.get($);if(T!==void 0)yield[$,T],Z++}}async batch(_){this.#F(_)}#F(_){for(let E of _)if(E.type==="put")this.#_.set(E.key,E.value);else this.#_.delete(E.key)}async conditionalBatch(_,E){for(let W of _){let Y=this.#_.get(W.key)??null;if(!v(Y,W.expectedValue))return!1}return this.#F(E),!0}async has(_){return this.#_.has(_)}async deletePrefix(_){let E=G(_),W=this.#E(_,E);for(let Y of W)this.#_.delete(Y);return W.length}async deleteRange(_,E){let W=V(E),Y=G(_),J=this.#E(_,Y).filter((Z)=>H(Z,W)),X=W.limit===void 0?J:J.slice(0,W.limit);for(let Z of X)this.#_.delete(Z);return X.length}async*keys(_,E={}){let{limit:W,reverse:Y}=E,J=G(_),X=this.#E(_,J);if(X=X.filter(($)=>H($,E)),Y)X.reverse();let Z=0;for(let $ of X){if(W!==void 0&&Z>=W)break;yield $,Z++}}async count(_){let E=G(_);return this.#E(_,E).length}scoped(_){return x(this,_)}get size(){return this.#_.size}clear(){this.#_.clear()}snapshot(){let _=new Map;for(let[E,W]of this.#_)_.set(E,new Uint8Array(W));return _}[Symbol.dispose](){this.#_.clear()}}});a();export{m as MemoryStorage};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-compatible SQLite storage adapter using `better-sqlite3`.
|
|
3
|
+
*
|
|
4
|
+
* Implements the same `Storage` interface and SQL schema as `BunSQLiteStorage`
|
|
5
|
+
* but uses `better-sqlite3` instead of `bun:sqlite`, enabling the same
|
|
6
|
+
* storage layer to run on Node.js 22+.
|
|
7
|
+
*
|
|
8
|
+
* `better-sqlite3` is a peer dependency — it must be installed separately by
|
|
9
|
+
* consumers who import `@lostgradient/weft/storage/sqlite/node`.
|
|
10
|
+
*
|
|
11
|
+
* @module storage/node-sqlite
|
|
12
|
+
*/
|
|
13
|
+
import type { BatchOperation, ConditionalBatchCondition, ScanOptions, Storage, StorageCapabilities } from './interface.ts';
|
|
14
|
+
/**
|
|
15
|
+
* Minimal subset of the `better-sqlite3` API surface that this adapter uses.
|
|
16
|
+
* Defined here so the module compiles without the package installed — the
|
|
17
|
+
* actual dependency is resolved lazily at construction time.
|
|
18
|
+
*/
|
|
19
|
+
type BetterSqliteStatement = {
|
|
20
|
+
run(...parameters: unknown[]): unknown;
|
|
21
|
+
get(...parameters: unknown[]): Record<string, unknown> | undefined;
|
|
22
|
+
all(...parameters: unknown[]): Record<string, unknown>[];
|
|
23
|
+
};
|
|
24
|
+
type BetterSqliteTransaction = (...args: unknown[]) => unknown;
|
|
25
|
+
type BetterSqliteDatabase = {
|
|
26
|
+
pragma(source: string): unknown;
|
|
27
|
+
exec(source: string): void;
|
|
28
|
+
prepare(source: string): BetterSqliteStatement;
|
|
29
|
+
transaction(fn: (...args: unknown[]) => unknown): BetterSqliteTransaction;
|
|
30
|
+
close(): void;
|
|
31
|
+
};
|
|
32
|
+
type BetterSqliteConstructor = new (path: string) => BetterSqliteDatabase;
|
|
33
|
+
/**
|
|
34
|
+
* Runtime-neutral alias for the Node SQLite adapter. Consumers that import
|
|
35
|
+
* from `@lostgradient/weft/storage/sqlite` get this class under Node.
|
|
36
|
+
*/
|
|
37
|
+
export { NodeSQLiteStorage as SQLiteStorage };
|
|
38
|
+
/**
|
|
39
|
+
* SQLite-backed {@link Storage} using `better-sqlite3` for Node.js 22+
|
|
40
|
+
* environments.
|
|
41
|
+
*
|
|
42
|
+
* Implements the same WAL-mode schema as {@link BunSQLiteStorage}
|
|
43
|
+
* but resolves the `better-sqlite3` peer dependency lazily at construction time,
|
|
44
|
+
* so the module compiles without it installed. Import from
|
|
45
|
+
* `@lostgradient/weft/storage/sqlite/node` to use this adapter.
|
|
46
|
+
*
|
|
47
|
+
* Unlike BunSQLiteStorage, this adapter currently implements only the required
|
|
48
|
+
* Storage methods (`get`, `put`, `delete`, `scan`, `batch`, and
|
|
49
|
+
* `conditionalBatch`). The optional `has`, `keys`, `count`, `deletePrefix`, and
|
|
50
|
+
* `scoped` helpers fall back to the generic implementations in
|
|
51
|
+
* `@lostgradient/weft/storage/interface`; `deleteRange` falls back to `storageDeleteRange`
|
|
52
|
+
* (exported from `@lostgradient/weft` / `@lostgradient/weft/storage`). There is no SQL passthrough
|
|
53
|
+
* `query()` method.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* import { NodeSQLiteStorage } from '@lostgradient/weft/storage/sqlite/node';
|
|
58
|
+
* import { workflow, Engine } from '@lostgradient/weft';
|
|
59
|
+
*
|
|
60
|
+
* // Requires: bun add better-sqlite3
|
|
61
|
+
* await using storage = new NodeSQLiteStorage('./weft.db');
|
|
62
|
+
* await using engine = new Engine({ storage });
|
|
63
|
+
*
|
|
64
|
+
* engine.register(workflow({ name: 'ping' }).execute(async function* () { return 'pong'; }));
|
|
65
|
+
* const handle = await engine.start('ping', null);
|
|
66
|
+
* console.log(await handle.result()); // 'pong'
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare class NodeSQLiteStorage implements Storage {
|
|
70
|
+
#private;
|
|
71
|
+
/**
|
|
72
|
+
* Number of distinct prepared-statement cache entries for scan().
|
|
73
|
+
* Exposed for regression tests that assert the cache stays bounded.
|
|
74
|
+
*/
|
|
75
|
+
get scanStatementCacheSize(): number;
|
|
76
|
+
capabilities(): StorageCapabilities;
|
|
77
|
+
constructor(path?: string, databaseConstructor?: BetterSqliteConstructor);
|
|
78
|
+
get(key: string): Promise<Uint8Array | null>;
|
|
79
|
+
put(key: string, value: Uint8Array): Promise<void>;
|
|
80
|
+
delete(key: string): Promise<void>;
|
|
81
|
+
scan(prefix: string, options?: ScanOptions): AsyncIterable<[string, Uint8Array]>;
|
|
82
|
+
batch(operations: BatchOperation[]): Promise<void>;
|
|
83
|
+
conditionalBatch(conditions: ConditionalBatchCondition[], operations: BatchOperation[]): Promise<boolean>;
|
|
84
|
+
[Symbol.dispose](): void;
|
|
85
|
+
}
|