@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,95 @@
|
|
|
1
|
+
import type { RetryPolicy } from '../core/types.ts';
|
|
2
|
+
import type { TaskLifecycleFields } from './task-state.ts';
|
|
3
|
+
/** A task waiting to be claimed by a long-poll worker. */
|
|
4
|
+
export interface PendingTask extends TaskLifecycleFields {
|
|
5
|
+
operationId: string;
|
|
6
|
+
activityName: string;
|
|
7
|
+
input: unknown;
|
|
8
|
+
attempt?: number | undefined;
|
|
9
|
+
retryPolicy?: RetryPolicy | undefined;
|
|
10
|
+
visibilityTimeout?: number | undefined;
|
|
11
|
+
enqueuedAt?: number | undefined;
|
|
12
|
+
/** Propagated interceptor headers (e.g. W3C trace context, auth tokens). */
|
|
13
|
+
headers?: Record<string, string> | undefined;
|
|
14
|
+
/** Workflow that dispatched this activity. Present when the dispatch included a workflowId. */
|
|
15
|
+
workflowId?: string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Task priority. Higher values are dequeued first. Tasks with equal priority
|
|
18
|
+
* maintain FIFO order. Default: 0. Agent workflow tasks use priority 10.
|
|
19
|
+
*/
|
|
20
|
+
priority?: number | undefined;
|
|
21
|
+
}
|
|
22
|
+
/** Result reported by a long-poll worker after executing a task. */
|
|
23
|
+
export interface TaskResult {
|
|
24
|
+
operationId: string;
|
|
25
|
+
status: 'completed' | 'failed';
|
|
26
|
+
value?: unknown;
|
|
27
|
+
error?: string | undefined;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Strategy used by `TaskQueue.enqueue` to place an incoming task in the
|
|
31
|
+
* per-queue pending list. In all strategies, `TaskQueue.poll` dequeues
|
|
32
|
+
* the first task whose activity matches the waiter — so the ordering imposed
|
|
33
|
+
* at enqueue time is what actually gets observed.
|
|
34
|
+
*
|
|
35
|
+
* - `'priority'` (default) inserts by descending `task.priority`. Tasks at the
|
|
36
|
+
* same priority keep FIFO order. This is the historical behavior.
|
|
37
|
+
* - `'fifo'` ignores priority and appends to the end of the list. Oldest tasks
|
|
38
|
+
* are dequeued first. Use this when fairness across producers matters more
|
|
39
|
+
* than urgency.
|
|
40
|
+
* - `'lifo'` prepends to the start of the list. Newest tasks are dequeued
|
|
41
|
+
* first. Use this for time-sensitive, short-lived work where fresh requests
|
|
42
|
+
* are more valuable than stale ones (e.g. interactive UI refreshes).
|
|
43
|
+
*
|
|
44
|
+
* **Starvation warning**: under sustained load, tasks at the bottom of the
|
|
45
|
+
* LIFO stack may never be dequeued. They sit in the pending list while
|
|
46
|
+
* newer arrivals jump in front of them, and when `TaskQueueOptions.pendingTaskTimeToLive`
|
|
47
|
+
* is finite (the default is 5 minutes) they eventually expire and fail with
|
|
48
|
+
* a generic timeout error — the producer gets no signal that LIFO ordering
|
|
49
|
+
* was responsible. Only choose `'lifo'` for workloads where you actively
|
|
50
|
+
* want bursty arrivals to displace older work, and consider setting
|
|
51
|
+
* `pendingTaskTimeToLive` to `Infinity` (or aggressively low) to make the
|
|
52
|
+
* trade-off explicit.
|
|
53
|
+
*/
|
|
54
|
+
export type SchedulingPolicy = 'priority' | 'fifo' | 'lifo';
|
|
55
|
+
/**
|
|
56
|
+
* Per-queue snapshot reported by `TaskQueue.getQueueSummaries`.
|
|
57
|
+
* Wall-clock-free: `oldestEnqueuedAt` is the raw `enqueuedAt` of the oldest
|
|
58
|
+
* pending task (or `null` when the queue has no pending tasks). Age in
|
|
59
|
+
* milliseconds is derived by the caller against a single per-request `now`.
|
|
60
|
+
*/
|
|
61
|
+
export type TaskQueueSummary = {
|
|
62
|
+
/** Queue name. */
|
|
63
|
+
queue: string;
|
|
64
|
+
/** Pending (unclaimed) task count. */
|
|
65
|
+
backlog: number;
|
|
66
|
+
/**
|
|
67
|
+
* Epoch milliseconds when the oldest pending task was enqueued, or `null`
|
|
68
|
+
* when the queue has no pending tasks (or — defensively — when no pending
|
|
69
|
+
* task carries an `enqueuedAt`, which should not happen after enqueue
|
|
70
|
+
* defaults it).
|
|
71
|
+
*/
|
|
72
|
+
oldestEnqueuedAt: number | null;
|
|
73
|
+
/** Active long-poll waiters parked on this queue. */
|
|
74
|
+
waitingPollers: number;
|
|
75
|
+
/** Scheduling policy in effect for the queue. */
|
|
76
|
+
schedulingPolicy: SchedulingPolicy;
|
|
77
|
+
};
|
|
78
|
+
/** Configuration options for `TaskQueue`. */
|
|
79
|
+
export type TaskQueueOptions = {
|
|
80
|
+
/**
|
|
81
|
+
* Maximum time (in milliseconds) a task can sit in the pending queue before
|
|
82
|
+
* it expires. When a task expires its completion callback is invoked with a
|
|
83
|
+
* `'failed'` result carrying a timeout error, and all associated state is
|
|
84
|
+
* cleaned up. Set to `0` or `Infinity` to disable expiration.
|
|
85
|
+
*
|
|
86
|
+
* @default 300_000 (5 minutes)
|
|
87
|
+
*/
|
|
88
|
+
pendingTaskTimeToLive?: number;
|
|
89
|
+
/**
|
|
90
|
+
* How tasks are ordered within a queue at enqueue time.
|
|
91
|
+
*
|
|
92
|
+
* @default 'priority'
|
|
93
|
+
*/
|
|
94
|
+
schedulingPolicy?: SchedulingPolicy;
|
|
95
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { TaskQueueSnapshot } from './task-queue-summary.ts';
|
|
2
|
+
import type { PendingTask, SchedulingPolicy, TaskQueueOptions, TaskQueueSummary, TaskResult } from './task-queue-types.ts';
|
|
3
|
+
/** Callback invoked when a task completes, fails, or expires. Implementation-private. */
|
|
4
|
+
type CompletionCallback = (result: TaskResult) => void;
|
|
5
|
+
/**
|
|
6
|
+
* Reset the one-shot LIFO starvation warning. Test-only: production code
|
|
7
|
+
* should never need to call this.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resetLifoStarvationWarningForTesting(): void;
|
|
10
|
+
/**
|
|
11
|
+
* Manages pending tasks and waiting long-poll requests. When a task is
|
|
12
|
+
* enqueued and a matching waiter exists, the task is dispatched immediately.
|
|
13
|
+
* When a poll request arrives and no task is available, the request blocks
|
|
14
|
+
* until a task arrives or the timeout expires.
|
|
15
|
+
*
|
|
16
|
+
* `serve()` owns the live instance and exposes it as
|
|
17
|
+
* {@link WeftServer.taskQueue} for inspection. Prefer the `WeftServer` methods
|
|
18
|
+
* (`dispatchTask`, `shutdownWorker`, etc.) over mutating the queue directly —
|
|
19
|
+
* the type is re-exported so callers can name `server.taskQueue`, not as a
|
|
20
|
+
* stable mutation surface.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { serve, type TaskQueue } from '@lostgradient/weft/server';
|
|
25
|
+
* import { Engine, MemoryStorage } from '@lostgradient/weft';
|
|
26
|
+
*
|
|
27
|
+
* await using engine = new Engine({ storage: new MemoryStorage() });
|
|
28
|
+
* await using server = serve({ engine });
|
|
29
|
+
*
|
|
30
|
+
* const taskQueue: TaskQueue = server.taskQueue;
|
|
31
|
+
* void taskQueue;
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare class TaskQueue implements Disposable {
|
|
35
|
+
#private;
|
|
36
|
+
constructor(options?: TaskQueueOptions);
|
|
37
|
+
/** The scheduling policy this queue was configured with. */
|
|
38
|
+
get schedulingPolicy(): SchedulingPolicy;
|
|
39
|
+
/**
|
|
40
|
+
* Enqueue a task. If a matching waiter exists, dispatch immediately.
|
|
41
|
+
* Returns true if the task was dispatched to a waiter or queued.
|
|
42
|
+
*/
|
|
43
|
+
enqueue(queue: string, task: PendingTask, onComplete?: CompletionCallback): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Long-poll for a task. Returns immediately if a matching task is queued,
|
|
46
|
+
* otherwise blocks until a task arrives or `timeout` milliseconds elapse.
|
|
47
|
+
*/
|
|
48
|
+
poll(queue: string, activities: string[], timeout: number, signal?: AbortSignal): Promise<PendingTask | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Report a task completion. Invokes the completion callback registered
|
|
51
|
+
* during enqueue (if any). Returns true if a callback was found.
|
|
52
|
+
*/
|
|
53
|
+
complete(result: TaskResult): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Release all queue state on shutdown. Resolves every parked long-poll
|
|
56
|
+
* waiter with `null` (so no poll promise is left unsettled), clears every
|
|
57
|
+
* pending-task expiration timer, and drops all pending tasks, completion
|
|
58
|
+
* callbacks, and dispatch tracking.
|
|
59
|
+
*
|
|
60
|
+
* Completion callbacks are intentionally NOT invoked: this is teardown, not
|
|
61
|
+
* per-task expiration, and firing failure callbacks would push work into an
|
|
62
|
+
* already-disposed engine/storage. Idempotent — safe to call more than once.
|
|
63
|
+
*/
|
|
64
|
+
[Symbol.dispose](): void;
|
|
65
|
+
/** Check whether an operationId is currently tracked (pending or dispatched). */
|
|
66
|
+
isTracked(operationId: string): boolean;
|
|
67
|
+
/** Check if any waiter in the queue can handle the given activity. */
|
|
68
|
+
hasWaiter(queue: string, activityName: string): boolean;
|
|
69
|
+
/** Number of pending (unclaimed) tasks in a queue. */
|
|
70
|
+
pendingCount(queue: string): number;
|
|
71
|
+
/** Total number of pending tasks across every queue. */
|
|
72
|
+
totalPendingCount(): number;
|
|
73
|
+
/** Peek the ordered pending tasks for a queue without dequeuing. Test helper. */
|
|
74
|
+
peekPending(queue: string): PendingTask[];
|
|
75
|
+
/**
|
|
76
|
+
* Synchronously reads internal state into a plain snapshot object for use by
|
|
77
|
+
* {@link buildQueueSummaries}. Single-turn event-loop reads are consistent
|
|
78
|
+
* without explicit locking.
|
|
79
|
+
*/
|
|
80
|
+
captureSnapshot(): TaskQueueSnapshot;
|
|
81
|
+
/**
|
|
82
|
+
* Per-queue summary used by `weft.task.queues.list`. Returns one entry per
|
|
83
|
+
* queue appearing in `#pending` or `#waiters`, sorted ascending by name.
|
|
84
|
+
* See {@link buildQueueSummaries} for field semantics.
|
|
85
|
+
*/
|
|
86
|
+
getQueueSummaries(): TaskQueueSummary[];
|
|
87
|
+
/** Remove and return pending tasks older than `maxAge` milliseconds. */
|
|
88
|
+
removeStale(maxAge: number): PendingTask[];
|
|
89
|
+
}
|
|
90
|
+
export {};
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { buildQueueSummaries } from "./task-queue-summary.js";
|
|
2
|
+
const DEFAULT_PENDING_TASK_TTL = 300000;
|
|
3
|
+
let lifoStarvationWarningEmitted = !1;
|
|
4
|
+
export function resetLifoStarvationWarningForTesting() {
|
|
5
|
+
lifoStarvationWarningEmitted = !1;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class TaskQueue {
|
|
9
|
+
#pending = new Map;
|
|
10
|
+
#waiters = new Map;
|
|
11
|
+
#completionCallbacks = new Map;
|
|
12
|
+
#dispatched = new Set;
|
|
13
|
+
#expirationTimers = new Map;
|
|
14
|
+
#pendingTaskTimeToLive;
|
|
15
|
+
#schedulingPolicy;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
const ttl = options?.pendingTaskTimeToLive ?? DEFAULT_PENDING_TASK_TTL;
|
|
18
|
+
this.#pendingTaskTimeToLive = ttl;
|
|
19
|
+
this.#schedulingPolicy = options?.schedulingPolicy ?? "priority";
|
|
20
|
+
if (this.#schedulingPolicy === "lifo" && this.#pendingTaskTimeToLive > 0 && Number.isFinite(this.#pendingTaskTimeToLive) && !lifoStarvationWarningEmitted) {
|
|
21
|
+
lifoStarvationWarningEmitted = !0;
|
|
22
|
+
console.warn(`[weft] TaskQueue configured with schedulingPolicy='lifo' and a finite pendingTaskTimeToLive (${this.#pendingTaskTimeToLive}ms). Under sustained load, tasks at the bottom of the LIFO stack can sit unclaimed until they expire and fail with a generic timeout error. Set pendingTaskTimeToLive to Infinity to disable expiration, or use 'fifo'/'priority' if fairness matters.`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
get schedulingPolicy() {
|
|
26
|
+
return this.#schedulingPolicy;
|
|
27
|
+
}
|
|
28
|
+
enqueue(queue, task, onComplete) {
|
|
29
|
+
if (this.#dispatched.has(task.operationId))
|
|
30
|
+
return !1;
|
|
31
|
+
this.#dispatched.add(task.operationId);
|
|
32
|
+
task.enqueuedAt ??= Date.now();
|
|
33
|
+
if (onComplete)
|
|
34
|
+
this.#completionCallbacks.set(task.operationId, onComplete);
|
|
35
|
+
const waiters = this.#waiters.get(queue);
|
|
36
|
+
if (waiters && waiters.length > 0) {
|
|
37
|
+
const index = waiters.findIndex((w) => w.activities.includes(task.activityName));
|
|
38
|
+
if (index !== -1) {
|
|
39
|
+
const waiter = waiters[index];
|
|
40
|
+
clearTimeout(waiter.timer);
|
|
41
|
+
waiters.splice(index, 1);
|
|
42
|
+
if (waiters.length === 0)
|
|
43
|
+
this.#waiters.delete(queue);
|
|
44
|
+
waiter.resolve(task);
|
|
45
|
+
return !0;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const tasks = this.#pending.get(queue) ?? [];
|
|
49
|
+
insertByPolicy(tasks, task, this.#schedulingPolicy);
|
|
50
|
+
this.#pending.set(queue, tasks);
|
|
51
|
+
this.#scheduleExpiration(queue, task.operationId);
|
|
52
|
+
return !0;
|
|
53
|
+
}
|
|
54
|
+
poll(queue, activities, timeout, signal) {
|
|
55
|
+
if (signal?.aborted)
|
|
56
|
+
return Promise.resolve(null);
|
|
57
|
+
const tasks = this.#pending.get(queue);
|
|
58
|
+
if (tasks) {
|
|
59
|
+
const index = tasks.findIndex((t) => activities.includes(t.activityName));
|
|
60
|
+
if (index !== -1) {
|
|
61
|
+
const task = tasks.splice(index, 1)[0];
|
|
62
|
+
if (tasks.length === 0)
|
|
63
|
+
this.#pending.delete(queue);
|
|
64
|
+
this.#cancelExpiration(task.operationId);
|
|
65
|
+
return Promise.resolve(task);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return new Promise((_resolve) => {
|
|
69
|
+
let settled = !1;
|
|
70
|
+
const resolve = (value) => {
|
|
71
|
+
if (settled)
|
|
72
|
+
return;
|
|
73
|
+
settled = !0;
|
|
74
|
+
_resolve(value);
|
|
75
|
+
}, waiters = this.#waiters.get(queue) ?? [];
|
|
76
|
+
this.#waiters.set(queue, waiters);
|
|
77
|
+
const cleanup = () => {
|
|
78
|
+
const idx = waiters.indexOf(waiter);
|
|
79
|
+
if (idx !== -1)
|
|
80
|
+
waiters.splice(idx, 1);
|
|
81
|
+
if (waiters.length === 0)
|
|
82
|
+
this.#waiters.delete(queue);
|
|
83
|
+
}, settle = (value) => {
|
|
84
|
+
clearTimeout(timer);
|
|
85
|
+
if (signal)
|
|
86
|
+
signal.removeEventListener("abort", onAbort);
|
|
87
|
+
cleanup();
|
|
88
|
+
resolve(value);
|
|
89
|
+
}, onAbort = () => settle(null), timer = setTimeout(() => settle(null), timeout), waiter = {
|
|
90
|
+
activities,
|
|
91
|
+
resolve: settle,
|
|
92
|
+
timer
|
|
93
|
+
};
|
|
94
|
+
waiters.push(waiter);
|
|
95
|
+
if (signal)
|
|
96
|
+
signal.addEventListener("abort", onAbort, { once: !0 });
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
complete(result) {
|
|
100
|
+
this.#cancelExpiration(result.operationId);
|
|
101
|
+
this.#dispatched.delete(result.operationId);
|
|
102
|
+
const callback = this.#completionCallbacks.get(result.operationId);
|
|
103
|
+
if (callback) {
|
|
104
|
+
this.#completionCallbacks.delete(result.operationId);
|
|
105
|
+
callback(result);
|
|
106
|
+
return !0;
|
|
107
|
+
}
|
|
108
|
+
return !1;
|
|
109
|
+
}
|
|
110
|
+
[Symbol.dispose]() {
|
|
111
|
+
for (const timer of this.#expirationTimers.values())
|
|
112
|
+
clearTimeout(timer);
|
|
113
|
+
this.#expirationTimers.clear();
|
|
114
|
+
const parked = [];
|
|
115
|
+
for (const waiters of this.#waiters.values())
|
|
116
|
+
parked.push(...waiters);
|
|
117
|
+
this.#waiters.clear();
|
|
118
|
+
for (const waiter of parked) {
|
|
119
|
+
clearTimeout(waiter.timer);
|
|
120
|
+
waiter.resolve(null);
|
|
121
|
+
}
|
|
122
|
+
this.#pending.clear();
|
|
123
|
+
this.#completionCallbacks.clear();
|
|
124
|
+
this.#dispatched.clear();
|
|
125
|
+
}
|
|
126
|
+
isTracked(operationId) {
|
|
127
|
+
return this.#dispatched.has(operationId);
|
|
128
|
+
}
|
|
129
|
+
hasWaiter(queue, activityName) {
|
|
130
|
+
const waiters = this.#waiters.get(queue);
|
|
131
|
+
if (!waiters)
|
|
132
|
+
return !1;
|
|
133
|
+
return waiters.some((w) => w.activities.includes(activityName));
|
|
134
|
+
}
|
|
135
|
+
pendingCount(queue) {
|
|
136
|
+
return this.#pending.get(queue)?.length ?? 0;
|
|
137
|
+
}
|
|
138
|
+
totalPendingCount() {
|
|
139
|
+
let count = 0;
|
|
140
|
+
for (const tasks of this.#pending.values())
|
|
141
|
+
count += tasks.length;
|
|
142
|
+
return count;
|
|
143
|
+
}
|
|
144
|
+
#scheduleExpiration(queue, operationId) {
|
|
145
|
+
const ttl = this.#pendingTaskTimeToLive;
|
|
146
|
+
if (ttl <= 0 || !Number.isFinite(ttl))
|
|
147
|
+
return;
|
|
148
|
+
const timer = setTimeout(() => this.#expireTask(queue, operationId), ttl);
|
|
149
|
+
this.#expirationTimers.set(operationId, timer);
|
|
150
|
+
}
|
|
151
|
+
#cancelExpiration(operationId) {
|
|
152
|
+
const timer = this.#expirationTimers.get(operationId);
|
|
153
|
+
if (timer !== void 0) {
|
|
154
|
+
clearTimeout(timer);
|
|
155
|
+
this.#expirationTimers.delete(operationId);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
#expireTask(queue, operationId) {
|
|
159
|
+
this.#expirationTimers.delete(operationId);
|
|
160
|
+
const tasks = this.#pending.get(queue);
|
|
161
|
+
if (tasks) {
|
|
162
|
+
const index = tasks.findIndex((t) => t.operationId === operationId);
|
|
163
|
+
if (index !== -1) {
|
|
164
|
+
tasks.splice(index, 1);
|
|
165
|
+
if (tasks.length === 0)
|
|
166
|
+
this.#pending.delete(queue);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
this.#dispatched.delete(operationId);
|
|
170
|
+
const callback = this.#completionCallbacks.get(operationId);
|
|
171
|
+
if (callback) {
|
|
172
|
+
this.#completionCallbacks.delete(operationId);
|
|
173
|
+
callback({
|
|
174
|
+
operationId,
|
|
175
|
+
status: "failed",
|
|
176
|
+
error: `Task expired after ${this.#pendingTaskTimeToLive}ms without being claimed by a worker`
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
peekPending(queue) {
|
|
181
|
+
return [...this.#pending.get(queue) ?? []];
|
|
182
|
+
}
|
|
183
|
+
captureSnapshot() {
|
|
184
|
+
return {
|
|
185
|
+
pending: new Map([...this.#pending.entries()].map(([q, tasks]) => [
|
|
186
|
+
q,
|
|
187
|
+
tasks.map((t) => ({ enqueuedAt: t.enqueuedAt }))
|
|
188
|
+
])),
|
|
189
|
+
waiters: new Map([...this.#waiters.entries()].map(([q, ws]) => [q, ws.slice()])),
|
|
190
|
+
schedulingPolicy: this.#schedulingPolicy
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
getQueueSummaries() {
|
|
194
|
+
return buildQueueSummaries(this.captureSnapshot());
|
|
195
|
+
}
|
|
196
|
+
removeStale(maxAge) {
|
|
197
|
+
if (!Number.isFinite(maxAge) || maxAge < 0)
|
|
198
|
+
throw RangeError(`maxAge must be a finite, non-negative number, got: ${maxAge}`);
|
|
199
|
+
const cutoff = Date.now() - maxAge, stale = [];
|
|
200
|
+
for (const [queue, tasks] of this.#pending) {
|
|
201
|
+
const remaining = [];
|
|
202
|
+
for (const task of tasks)
|
|
203
|
+
if ((task.enqueuedAt ?? 0) < cutoff) {
|
|
204
|
+
stale.push(task);
|
|
205
|
+
this.#cancelExpiration(task.operationId);
|
|
206
|
+
this.#dispatched.delete(task.operationId);
|
|
207
|
+
const callback = this.#completionCallbacks.get(task.operationId);
|
|
208
|
+
if (callback) {
|
|
209
|
+
this.#completionCallbacks.delete(task.operationId);
|
|
210
|
+
callback({
|
|
211
|
+
operationId: task.operationId,
|
|
212
|
+
status: "failed",
|
|
213
|
+
error: `Task expired after ${maxAge}ms without being claimed`
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
} else
|
|
217
|
+
remaining.push(task);
|
|
218
|
+
if (remaining.length === 0)
|
|
219
|
+
this.#pending.delete(queue);
|
|
220
|
+
else
|
|
221
|
+
this.#pending.set(queue, remaining);
|
|
222
|
+
}
|
|
223
|
+
return stale;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
function insertByPolicy(tasks, task, policy) {
|
|
227
|
+
if (tasks.length === 0) {
|
|
228
|
+
tasks.push(task);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
switch (policy) {
|
|
232
|
+
case "fifo":
|
|
233
|
+
tasks.push(task);
|
|
234
|
+
return;
|
|
235
|
+
case "lifo":
|
|
236
|
+
tasks.unshift(task);
|
|
237
|
+
return;
|
|
238
|
+
case "priority": {
|
|
239
|
+
const taskPriority = task.priority ?? 0, insertAt = tasks.findIndex((existing) => (existing.priority ?? 0) < taskPriority);
|
|
240
|
+
if (insertAt === -1)
|
|
241
|
+
tasks.push(task);
|
|
242
|
+
else
|
|
243
|
+
tasks.splice(insertAt, 0, task);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { InflightRecord, ResolvedRecord, TaskResolutionReason } from './task-state.ts';
|
|
2
|
+
export declare function buildResolvedRecord(parameters: {
|
|
3
|
+
operationId: string;
|
|
4
|
+
status: 'completed' | 'failed';
|
|
5
|
+
resolvedAt: number;
|
|
6
|
+
normalizedRecord: InflightRecord | null;
|
|
7
|
+
resolutionReason: TaskResolutionReason;
|
|
8
|
+
value?: unknown;
|
|
9
|
+
error?: string | undefined;
|
|
10
|
+
queueLatencyMs?: number | undefined;
|
|
11
|
+
executionLatencyMs?: number | undefined;
|
|
12
|
+
}): ResolvedRecord;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export function buildResolvedRecord(parameters) {
|
|
2
|
+
const resolvedRecord = {
|
|
3
|
+
operationId: parameters.operationId,
|
|
4
|
+
status: parameters.status,
|
|
5
|
+
resolvedAt: parameters.resolvedAt
|
|
6
|
+
};
|
|
7
|
+
if (parameters.value !== void 0)
|
|
8
|
+
resolvedRecord.value = parameters.value;
|
|
9
|
+
if (parameters.error !== void 0)
|
|
10
|
+
resolvedRecord.error = parameters.error;
|
|
11
|
+
const { normalizedRecord } = parameters;
|
|
12
|
+
if (normalizedRecord === null)
|
|
13
|
+
return resolvedRecord;
|
|
14
|
+
return {
|
|
15
|
+
...resolvedRecord,
|
|
16
|
+
activityName: normalizedRecord.activityName,
|
|
17
|
+
queue: normalizedRecord.queue,
|
|
18
|
+
workerId: normalizedRecord.workerId,
|
|
19
|
+
attempt: normalizedRecord.attempt,
|
|
20
|
+
visibilityTimeout: normalizedRecord.visibilityTimeout,
|
|
21
|
+
...normalizedRecord.workflowId === void 0 ? {} : { workflowId: normalizedRecord.workflowId },
|
|
22
|
+
firstQueuedAt: normalizedRecord.firstQueuedAt,
|
|
23
|
+
lastQueuedAt: normalizedRecord.lastQueuedAt,
|
|
24
|
+
lastDispatchedAt: normalizedRecord.lastDispatchedAt,
|
|
25
|
+
startedAt: normalizedRecord.startedAt,
|
|
26
|
+
completedAt: parameters.resolvedAt,
|
|
27
|
+
lastHeartbeatAt: normalizedRecord.lastHeartbeatAt,
|
|
28
|
+
retryCount: normalizedRecord.retryCount,
|
|
29
|
+
requeueCount: normalizedRecord.requeueCount,
|
|
30
|
+
lastRequeueReason: normalizedRecord.lastRequeueReason,
|
|
31
|
+
resolutionReason: parameters.resolutionReason,
|
|
32
|
+
queueLatencyMs: parameters.queueLatencyMs,
|
|
33
|
+
executionLatencyMs: parameters.executionLatencyMs
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task state tracking for the remote worker dispatch system.
|
|
3
|
+
*
|
|
4
|
+
* Every dispatched task exists in exactly one of three durable states:
|
|
5
|
+
* - **queued**: Waiting in storage for a worker to claim it.
|
|
6
|
+
* - **inflight**: Assigned to a worker with a visibility deadline.
|
|
7
|
+
* - **resolved**: Completed or permanently failed.
|
|
8
|
+
*
|
|
9
|
+
* State transitions use `storage.batch()` to atomically delete the old
|
|
10
|
+
* key and write the new key, preventing any window where a task is in
|
|
11
|
+
* zero or two states simultaneously.
|
|
12
|
+
*
|
|
13
|
+
* @module task-state
|
|
14
|
+
*/
|
|
15
|
+
import type { RetryPolicy } from '../core/types.ts';
|
|
16
|
+
import type { Storage } from '../storage/interface.ts';
|
|
17
|
+
/** The three exclusive states a dispatched task can occupy. */
|
|
18
|
+
export type TaskState = 'queued' | 'inflight' | 'resolved';
|
|
19
|
+
/** Why a task was requeued before another dispatch attempt. */
|
|
20
|
+
export type TaskRequeueReason = 'visibility-timeout' | 'worker-disconnect';
|
|
21
|
+
/** Final reason captured when a task reaches the resolved state. */
|
|
22
|
+
export type TaskResolutionReason = 'completed' | 'failed' | 'cancelled' | 'max-attempts-exceeded';
|
|
23
|
+
/** Lifecycle evidence persisted with task records for diagnostics. */
|
|
24
|
+
export interface TaskLifecycleFields {
|
|
25
|
+
/** First time this operation entered a task queue. */
|
|
26
|
+
firstQueuedAt?: number | undefined;
|
|
27
|
+
/** Most recent time this operation entered a task queue. */
|
|
28
|
+
lastQueuedAt?: number | undefined;
|
|
29
|
+
/** Most recent time this operation was dispatched to a worker. */
|
|
30
|
+
lastDispatchedAt?: number | undefined;
|
|
31
|
+
/** Time this operation started executing on a worker when knowable. */
|
|
32
|
+
startedAt?: number | undefined;
|
|
33
|
+
/** Time this operation reached a terminal task state. */
|
|
34
|
+
completedAt?: number | undefined;
|
|
35
|
+
/** Most recent worker heartbeat observed for this operation. */
|
|
36
|
+
lastHeartbeatAt?: number | undefined;
|
|
37
|
+
/** Number of retry attempts after the original attempt. */
|
|
38
|
+
retryCount?: number | undefined;
|
|
39
|
+
/** Number of times visibility/disconnect handling moved this task back to queued. */
|
|
40
|
+
requeueCount?: number | undefined;
|
|
41
|
+
/** Most recent reason this task moved back to queued. */
|
|
42
|
+
lastRequeueReason?: TaskRequeueReason | undefined;
|
|
43
|
+
}
|
|
44
|
+
/** Persisted record for a task in the queued state. */
|
|
45
|
+
export interface QueuedRecord extends TaskLifecycleFields {
|
|
46
|
+
operationId: string;
|
|
47
|
+
activityName: string;
|
|
48
|
+
input: unknown;
|
|
49
|
+
queue: string;
|
|
50
|
+
attempt: number;
|
|
51
|
+
visibilityTimeout: number;
|
|
52
|
+
retryPolicy?: RetryPolicy | undefined;
|
|
53
|
+
queuedAt: number;
|
|
54
|
+
/** Workflow that dispatched this activity. Present when the dispatch included a workflowId. */
|
|
55
|
+
workflowId?: string | undefined;
|
|
56
|
+
}
|
|
57
|
+
/** Persisted record for a task in the inflight state. */
|
|
58
|
+
export interface InflightRecord extends TaskLifecycleFields {
|
|
59
|
+
operationId: string;
|
|
60
|
+
workerId: string;
|
|
61
|
+
deadline: number;
|
|
62
|
+
activityName: string;
|
|
63
|
+
queue: string;
|
|
64
|
+
input: unknown;
|
|
65
|
+
attempt: number;
|
|
66
|
+
visibilityTimeout: number;
|
|
67
|
+
retryPolicy?: RetryPolicy | undefined;
|
|
68
|
+
/** Workflow that dispatched this activity. Present when the dispatch included a workflowId. */
|
|
69
|
+
workflowId?: string | undefined;
|
|
70
|
+
}
|
|
71
|
+
/** Persisted record for a task in the resolved state. */
|
|
72
|
+
export interface ResolvedRecord {
|
|
73
|
+
operationId: string;
|
|
74
|
+
status: 'completed' | 'failed';
|
|
75
|
+
resolvedAt: number;
|
|
76
|
+
value?: unknown;
|
|
77
|
+
error?: string | undefined;
|
|
78
|
+
activityName?: string | undefined;
|
|
79
|
+
queue?: string | undefined;
|
|
80
|
+
workerId?: string | undefined;
|
|
81
|
+
attempt?: number | undefined;
|
|
82
|
+
visibilityTimeout?: number | undefined;
|
|
83
|
+
/** Workflow that dispatched this activity. Present when the dispatch included a workflowId. */
|
|
84
|
+
workflowId?: string | undefined;
|
|
85
|
+
firstQueuedAt?: number | undefined;
|
|
86
|
+
lastQueuedAt?: number | undefined;
|
|
87
|
+
lastDispatchedAt?: number | undefined;
|
|
88
|
+
startedAt?: number | undefined;
|
|
89
|
+
completedAt?: number | undefined;
|
|
90
|
+
lastHeartbeatAt?: number | undefined;
|
|
91
|
+
retryCount?: number | undefined;
|
|
92
|
+
requeueCount?: number | undefined;
|
|
93
|
+
lastRequeueReason?: TaskRequeueReason | undefined;
|
|
94
|
+
resolutionReason?: TaskResolutionReason | undefined;
|
|
95
|
+
queueLatencyMs?: number | undefined;
|
|
96
|
+
executionLatencyMs?: number | undefined;
|
|
97
|
+
}
|
|
98
|
+
export interface TransitionInflightToResolvedOptions {
|
|
99
|
+
resolutionReason?: TaskResolutionReason;
|
|
100
|
+
resolvedAt?: number;
|
|
101
|
+
record?: InflightRecord;
|
|
102
|
+
value?: unknown;
|
|
103
|
+
error?: string | undefined;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Look up the current durable state of a task.
|
|
107
|
+
*
|
|
108
|
+
* Returns the state name if the task is found in any of the three
|
|
109
|
+
* states, or `null` if no record exists (the task was never dispatched
|
|
110
|
+
* or its resolved record has been garbage-collected).
|
|
111
|
+
*/
|
|
112
|
+
export declare function getTaskState(storage: Storage, operationId: string): Promise<TaskState | null>;
|
|
113
|
+
/**
|
|
114
|
+
* Return the task state and verify it occupies exactly one state.
|
|
115
|
+
*
|
|
116
|
+
* Throws if the task is found in multiple states simultaneously —
|
|
117
|
+
* this indicates a bug in the state machine.
|
|
118
|
+
*/
|
|
119
|
+
export declare function getExclusiveTaskState(storage: Storage, operationId: string): Promise<TaskState | null>;
|
|
120
|
+
/** Type guard for decoded storage records in the queued state. */
|
|
121
|
+
export declare function isQueuedRecord(value: unknown): value is QueuedRecord;
|
|
122
|
+
/** Type guard for decoded storage records in the inflight state. */
|
|
123
|
+
export declare function isInflightRecord(value: unknown): value is InflightRecord;
|
|
124
|
+
/** Type guard for decoded storage records in the resolved state. */
|
|
125
|
+
export declare function isResolvedRecord(value: unknown): value is ResolvedRecord;
|
|
126
|
+
/** Decode the queued record for an operation, returning null when absent or malformed. */
|
|
127
|
+
export declare function readQueuedRecord(storage: Storage, operationId: string): Promise<QueuedRecord | null>;
|
|
128
|
+
/** Decode the inflight record for an operation, returning null when absent or malformed. */
|
|
129
|
+
export declare function readInflightRecord(storage: Storage, operationId: string): Promise<InflightRecord | null>;
|
|
130
|
+
export declare function calculateQueueLatencyMs(record: TaskLifecycleFields): number | undefined;
|
|
131
|
+
export declare function calculateExecutionLatencyMs(record: TaskLifecycleFields, completedAt: number): number | undefined;
|
|
132
|
+
export declare function calculateHeartbeatAgeMs(record: TaskLifecycleFields & {
|
|
133
|
+
deadline?: number | undefined;
|
|
134
|
+
}, currentTime: number): number | undefined;
|
|
135
|
+
export declare function isHeartbeatStale(record: TaskLifecycleFields & {
|
|
136
|
+
deadline?: number | undefined;
|
|
137
|
+
}, currentTime: number, staleAfterMs: number): boolean;
|
|
138
|
+
/** Write the initial queued record for a newly dispatched task. */
|
|
139
|
+
export declare function markQueued(storage: Storage, record: QueuedRecord): Promise<QueuedRecord>;
|
|
140
|
+
type TransitionQueuedToInflightOptions = {
|
|
141
|
+
readonly queuedRecord?: QueuedRecord | null;
|
|
142
|
+
readonly now?: number | undefined;
|
|
143
|
+
};
|
|
144
|
+
/** Atomically transition a task from queued → inflight. */
|
|
145
|
+
export declare function transitionQueuedToInflight(storage: Storage, operationId: string, inflightRecord: InflightRecord, options?: TransitionQueuedToInflightOptions): Promise<InflightRecord>;
|
|
146
|
+
/** Write the initial inflight record (for tasks dispatched directly to a WS worker). */
|
|
147
|
+
export declare function markInflight(storage: Storage, record: InflightRecord): Promise<void>;
|
|
148
|
+
/** Atomically transition a task from inflight → resolved. */
|
|
149
|
+
export declare function transitionInflightToResolved(storage: Storage, operationId: string, status: 'completed' | 'failed', options?: TransitionInflightToResolvedOptions): Promise<void>;
|
|
150
|
+
/** Atomically transition a task from inflight → queued (requeue on disconnect/timeout). */
|
|
151
|
+
export declare function transitionInflightToQueued(storage: Storage, operationId: string, queuedRecord: QueuedRecord): Promise<void>;
|
|
152
|
+
export {};
|