@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,40 @@
|
|
|
1
|
+
import { SpeculativeExecutionState } from "./speculative-execution-state.js";
|
|
2
|
+
export async function processSpeculateOperation(internals, workflowId, operation, callbacks) {
|
|
3
|
+
return callbacks.runOperationWithResult(workflowId, operation, () => executeSpeculativeBranch(internals, workflowId, operation, callbacks));
|
|
4
|
+
}
|
|
5
|
+
export async function executeSpeculativeBranch(internals, workflowId, operation, callbacks) {
|
|
6
|
+
const inlineStrategy = internals.inlineStrategy;
|
|
7
|
+
if (!inlineStrategy)
|
|
8
|
+
throw Error("ctx.speculate() requires inline execution mode");
|
|
9
|
+
const parentContext = inlineStrategy.getContext(workflowId);
|
|
10
|
+
if (!parentContext)
|
|
11
|
+
throw Error(`No active inline context for workflow "${workflowId}"`);
|
|
12
|
+
const speculativeContext = parentContext.createSpeculativeChild(), speculativeState = new SpeculativeExecutionState, generator = createSpeculativeOperationGenerator(operation, speculativeContext);
|
|
13
|
+
try {
|
|
14
|
+
const result = await driveSpeculativeGenerator(workflowId, generator, speculativeState, callbacks);
|
|
15
|
+
await speculativeState.drainVerifications();
|
|
16
|
+
parentContext.commitSpeculativeChild(speculativeContext);
|
|
17
|
+
return result;
|
|
18
|
+
} catch (error) {
|
|
19
|
+
await speculativeState.rollback();
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function createSpeculativeOperationGenerator(operation, speculativeContext) {
|
|
24
|
+
return operation.execute(speculativeContext);
|
|
25
|
+
}
|
|
26
|
+
export async function driveSpeculativeGenerator(workflowId, generator, speculativeState, callbacks) {
|
|
27
|
+
const advance = async (lastResult, errorToThrow) => {
|
|
28
|
+
const iterationResult = errorToThrow === void 0 ? await generator.next(lastResult) : await generator.throw(errorToThrow);
|
|
29
|
+
if (iterationResult.done)
|
|
30
|
+
return iterationResult.value;
|
|
31
|
+
const nextOperation = iterationResult.value;
|
|
32
|
+
try {
|
|
33
|
+
const nextResult = await callbacks.executeSubOperation(workflowId, nextOperation, void 0, speculativeState);
|
|
34
|
+
return advance(nextResult, void 0);
|
|
35
|
+
} catch (error) {
|
|
36
|
+
return advance(lastResult, error instanceof Error ? error : Error(String(error)));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return advance(void 0, void 0);
|
|
40
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ContextOperationRequest } from '../context.ts';
|
|
2
|
+
import type { EngineInternals } from './internals.ts';
|
|
3
|
+
import type { OperationWithCallerStack } from './operations-router.ts';
|
|
4
|
+
type StateReadOperation = Extract<ContextOperationRequest, {
|
|
5
|
+
type: 'state-read';
|
|
6
|
+
}>;
|
|
7
|
+
type StateCommitOperation = Extract<ContextOperationRequest, {
|
|
8
|
+
type: 'state-commit';
|
|
9
|
+
}>;
|
|
10
|
+
export type StateOperationCallbacks = {
|
|
11
|
+
runOperationWithResult: (workflowId: string, operation: OperationWithCallerStack, execute: () => Promise<unknown>) => Promise<void>;
|
|
12
|
+
ensureTerminalCleanupTracked: (workflowId: string) => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
export declare function processStateReadOperation(internals: EngineInternals, workflowId: string, operation: StateReadOperation, callbacks: StateOperationCallbacks): Promise<void>;
|
|
15
|
+
export declare function processStateCommitOperation(internals: EngineInternals, workflowId: string, operation: StateCommitOperation, callbacks: StateOperationCallbacks): Promise<void>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
atomicStateDataKey,
|
|
3
|
+
commitAtomicStateDelete,
|
|
4
|
+
commitAtomicStateValue,
|
|
5
|
+
readAtomicStateSnapshot
|
|
6
|
+
} from "../atomic-state.js";
|
|
7
|
+
export async function processStateReadOperation(internals, workflowId, operation, callbacks) {
|
|
8
|
+
return callbacks.runOperationWithResult(workflowId, operation, async () => {
|
|
9
|
+
const dataKey = atomicStateDataKey(operation.scope, operation.key);
|
|
10
|
+
return readAtomicStateSnapshot(internals.storage, dataKey, operation);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
export async function processStateCommitOperation(internals, workflowId, operation, callbacks) {
|
|
14
|
+
return callbacks.runOperationWithResult(workflowId, operation, async () => {
|
|
15
|
+
const dataKey = atomicStateDataKey(operation.scope, operation.key);
|
|
16
|
+
if (operation.mode === "delete") {
|
|
17
|
+
const result = await commitAtomicStateDelete(internals.storage, dataKey, operation.expectedVersion);
|
|
18
|
+
if (result.applied && operation.scope.type === "execution")
|
|
19
|
+
await callbacks.ensureTerminalCleanupTracked(operation.scope.ownerWorkflowId);
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
const result = await commitAtomicStateValue(internals.storage, dataKey, operation.expectedVersion, operation.value);
|
|
23
|
+
if (result.applied && operation.scope.type === "execution")
|
|
24
|
+
await callbacks.ensureTerminalCleanupTracked(operation.scope.ownerWorkflowId);
|
|
25
|
+
return result;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ContextOperationRequest, StoredStreamChunk, StreamReference } from '../context.ts';
|
|
2
|
+
import type { EngineInternals } from './internals.ts';
|
|
3
|
+
type StreamOperation = Extract<ContextOperationRequest, {
|
|
4
|
+
type: 'stream';
|
|
5
|
+
}>;
|
|
6
|
+
export type StreamOperationCallbacks = {
|
|
7
|
+
runOperationWithResult: (workflowId: string, operation: StreamOperation, execute: () => Promise<unknown>) => Promise<void>;
|
|
8
|
+
handleCleanupError: (source: string, error: unknown, workflowId?: string) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare function getStreamChunksFromInternals(internals: EngineInternals, workflowId: string, key: string, options?: {
|
|
11
|
+
after?: number;
|
|
12
|
+
}): Promise<StoredStreamChunk[]>;
|
|
13
|
+
export declare function processStreamOperation(internals: EngineInternals, workflowId: string, operation: StreamOperation, callbacks: StreamOperationCallbacks): Promise<void>;
|
|
14
|
+
export declare function createStreamReferenceFromInternals(internals: EngineInternals, workflowId: string, operation: StreamOperation, callbacks: Pick<StreamOperationCallbacks, 'handleCleanupError'>): Promise<StreamReference>;
|
|
15
|
+
export declare function writeStreamChunksFromInternals(internals: EngineInternals, workflowId: string, operation: StreamOperation, asyncGenerator: AsyncGenerator<unknown, void, unknown>, writtenKeys: string[]): Promise<{
|
|
16
|
+
chunkCount: number;
|
|
17
|
+
totalSizeBytes: number;
|
|
18
|
+
}>;
|
|
19
|
+
export declare function cleanupStreamChunksFromInternals(internals: EngineInternals, workflowId: string, key: string, writtenKeys: string[], callbacks: Pick<StreamOperationCallbacks, 'handleCleanupError'>): Promise<void>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { KEYS } from "../../storage/interface.js";
|
|
2
|
+
import { encode } from "../codec.js";
|
|
3
|
+
import { cleanupPartialStreamChunks, createCleanupErrorReporter } from "../engine-helpers.js";
|
|
4
|
+
import { loadStoredStreamChunks } from "./stream-chunk-loading.js";
|
|
5
|
+
import { STREAM_CHUNK_KIND, TOKENS_STREAM_KEY, notifyWorkflowFeedCommit } from "./workflow-feed.js";
|
|
6
|
+
export async function getStreamChunksFromInternals(internals, workflowId, key, options) {
|
|
7
|
+
return loadStoredStreamChunks(internals.storage, workflowId, key, options);
|
|
8
|
+
}
|
|
9
|
+
export async function processStreamOperation(internals, workflowId, operation, callbacks) {
|
|
10
|
+
return callbacks.runOperationWithResult(workflowId, operation, () => createStreamReferenceFromInternals(internals, workflowId, operation, callbacks));
|
|
11
|
+
}
|
|
12
|
+
export async function createStreamReferenceFromInternals(internals, workflowId, operation, callbacks) {
|
|
13
|
+
const sink = {
|
|
14
|
+
heartbeat: (details) => {
|
|
15
|
+
internals.heartbeatDetails.set(workflowId, details);
|
|
16
|
+
}
|
|
17
|
+
}, writtenKeys = [];
|
|
18
|
+
try {
|
|
19
|
+
const streamSummary = await writeStreamChunksFromInternals(internals, workflowId, operation, operation.fn(sink), writtenKeys), reference = {
|
|
20
|
+
key: operation.key,
|
|
21
|
+
workflowId,
|
|
22
|
+
chunkCount: streamSummary.chunkCount,
|
|
23
|
+
totalSizeBytes: streamSummary.totalSizeBytes
|
|
24
|
+
};
|
|
25
|
+
await internals.storage.put(KEYS.streamMetadata(workflowId, operation.key), encode(reference));
|
|
26
|
+
return reference;
|
|
27
|
+
} catch (error) {
|
|
28
|
+
await cleanupStreamChunksFromInternals(internals, workflowId, operation.key, writtenKeys, callbacks);
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function writeStreamChunksFromInternals(internals, workflowId, operation, asyncGenerator, writtenKeys) {
|
|
33
|
+
let chunkCount = 0, totalSizeBytes = 0;
|
|
34
|
+
for await (const chunk of asyncGenerator) {
|
|
35
|
+
const encoded = encode(chunk), sequence = chunkCount, chunkKey = KEYS.streamChunk(workflowId, operation.key, sequence);
|
|
36
|
+
await internals.storage.put(chunkKey, encoded);
|
|
37
|
+
writtenKeys.push(chunkKey);
|
|
38
|
+
totalSizeBytes += encoded.byteLength;
|
|
39
|
+
chunkCount++;
|
|
40
|
+
if (operation.key === TOKENS_STREAM_KEY)
|
|
41
|
+
notifyWorkflowFeedCommit(internals, workflowId, "tokens", {
|
|
42
|
+
workflowId,
|
|
43
|
+
selector: "tokens",
|
|
44
|
+
kind: STREAM_CHUNK_KIND,
|
|
45
|
+
sequence,
|
|
46
|
+
timestamp: Date.now(),
|
|
47
|
+
payload: chunk
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return { chunkCount, totalSizeBytes };
|
|
51
|
+
}
|
|
52
|
+
export async function cleanupStreamChunksFromInternals(internals, workflowId, key, writtenKeys, callbacks) {
|
|
53
|
+
await cleanupPartialStreamChunks(internals.storage, workflowId, key, writtenKeys, createCleanupErrorReporter(callbacks.handleCleanupError, workflowId));
|
|
54
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ContextOperationRequest } from '../context.ts';
|
|
2
|
+
import type { Checkpoint, Duration, StartOptions, TimerEntry, WorkflowState } from '../types.ts';
|
|
3
|
+
import type { WorkflowVersionTuple } from '../workflow-version-tuple.ts';
|
|
4
|
+
import type { EngineInternals } from './internals.ts';
|
|
5
|
+
type RegistrationEntry = EngineInternals['registrations'] extends Map<string, infer Entry> ? Entry : never;
|
|
6
|
+
type SleepOperation = Extract<ContextOperationRequest, {
|
|
7
|
+
type: 'sleep';
|
|
8
|
+
}>;
|
|
9
|
+
export type TimeOperationCallbacks = {
|
|
10
|
+
completeOperation: (workflowId: string, value: unknown) => void;
|
|
11
|
+
loadWorkflowState: (workflowId: string) => Promise<WorkflowState | null>;
|
|
12
|
+
failWorkflow: (workflowId: string, error: Error) => Promise<void>;
|
|
13
|
+
runSerializedWorkflowStateWrite: <Result>(workflowId: string, writeOperation: () => Promise<Result>) => Promise<Result>;
|
|
14
|
+
beginWorkflowExecution: (workflowId: string, workflowType: string, input: unknown, checkpoint: Checkpoint, executionDeadline: number | undefined, executionStateOwnerId: string, registration: RegistrationEntry) => void;
|
|
15
|
+
workflowVersionTupleFromState: (state: WorkflowState) => WorkflowVersionTuple;
|
|
16
|
+
setWorkflowStartHeaders: (workflowId: string, headers: Map<string, string> | undefined) => void;
|
|
17
|
+
loadWorkflowStartHeaders: (workflowId: string) => Promise<Map<string, string> | undefined>;
|
|
18
|
+
parseStartOptionDuration: (value: Duration, fieldName: 'options.executionTimeout' | 'options.startAfter') => number;
|
|
19
|
+
runDeferredTerminalCleanup: (workflowId: string, timerId: string) => Promise<void>;
|
|
20
|
+
handleScheduleTimer: (entry: TimerEntry) => Promise<void>;
|
|
21
|
+
timeout: (workflowId: string) => Promise<void>;
|
|
22
|
+
};
|
|
23
|
+
export declare function createDelayedStartTimerEntry(_internals: EngineInternals, workflowId: string, scheduledStartAt: number, options: StartOptions | undefined, callbacks: Pick<TimeOperationCallbacks, 'parseStartOptionDuration'>): TimerEntry;
|
|
24
|
+
export declare function processSleepOperation(internals: EngineInternals, workflowId: string, operation: SleepOperation, callbacks: Pick<TimeOperationCallbacks, 'completeOperation' | 'loadWorkflowState'>): Promise<void>;
|
|
25
|
+
export declare function registerSleepResolver(internals: EngineInternals, workflowId: string, operationId: string, resolve: () => void): void;
|
|
26
|
+
export declare function startDelayedWorkflow(internals: EngineInternals, entry: TimerEntry, callbacks: Pick<TimeOperationCallbacks, 'beginWorkflowExecution' | 'failWorkflow' | 'loadWorkflowStartHeaders' | 'loadWorkflowState' | 'runSerializedWorkflowStateWrite' | 'setWorkflowStartHeaders' | 'workflowVersionTupleFromState'>): Promise<void>;
|
|
27
|
+
export declare function handleTimerFired(internals: EngineInternals, entry: TimerEntry, callbacks: Pick<TimeOperationCallbacks, 'failWorkflow' | 'loadWorkflowStartHeaders' | 'loadWorkflowState' | 'runDeferredTerminalCleanup' | 'runSerializedWorkflowStateWrite' | 'handleScheduleTimer' | 'setWorkflowStartHeaders' | 'timeout' | 'beginWorkflowExecution' | 'workflowVersionTupleFromState'>): Promise<void>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { KEYS } from "../../storage/interface.js";
|
|
2
|
+
import { deserializeCheckpoint } from "../checkpoint.js";
|
|
3
|
+
import { encode } from "../codec.js";
|
|
4
|
+
import { buildTimerBatchOperations, normalizeStorageTimestamp } from "../scheduler.js";
|
|
5
|
+
import { buildWorkflowVisibilityIndexTransition } from "./workflow-indexes.js";
|
|
6
|
+
export function createDelayedStartTimerEntry(_internals, workflowId, scheduledStartAt, options, callbacks) {
|
|
7
|
+
return {
|
|
8
|
+
id: `delayed-start:${workflowId}`,
|
|
9
|
+
workflowId,
|
|
10
|
+
fireAt: scheduledStartAt,
|
|
11
|
+
kind: "delayed-start",
|
|
12
|
+
...options?.executionTimeout !== void 0 && {
|
|
13
|
+
executionTimeoutMs: callbacks.parseStartOptionDuration(options.executionTimeout, "options.executionTimeout")
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export async function processSleepOperation(internals, workflowId, operation, callbacks) {
|
|
18
|
+
if (operation.scheduledFireAt <= internals.options.getNow()) {
|
|
19
|
+
callbacks.completeOperation(workflowId, void 0);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const { promise, resolve } = Promise.withResolvers();
|
|
23
|
+
await internals.scheduler.schedule({
|
|
24
|
+
id: `sleep:${operation.operationId}`,
|
|
25
|
+
workflowId,
|
|
26
|
+
fireAt: operation.scheduledFireAt,
|
|
27
|
+
kind: "sleep"
|
|
28
|
+
});
|
|
29
|
+
registerSleepResolver(internals, workflowId, operation.operationId, resolve);
|
|
30
|
+
await promise;
|
|
31
|
+
if ((await callbacks.loadWorkflowState(workflowId))?.status === "running")
|
|
32
|
+
callbacks.completeOperation(workflowId, void 0);
|
|
33
|
+
}
|
|
34
|
+
export function registerSleepResolver(internals, workflowId, operationId, resolve) {
|
|
35
|
+
internals.sleepResolvers.set(`${workflowId}:${operationId}`, resolve);
|
|
36
|
+
let workflowOperations = internals.sleepResolversByWorkflow.get(workflowId);
|
|
37
|
+
if (!workflowOperations) {
|
|
38
|
+
workflowOperations = new Set;
|
|
39
|
+
internals.sleepResolversByWorkflow.set(workflowId, workflowOperations);
|
|
40
|
+
}
|
|
41
|
+
workflowOperations.add(operationId);
|
|
42
|
+
}
|
|
43
|
+
export async function startDelayedWorkflow(internals, entry, callbacks) {
|
|
44
|
+
const state = await callbacks.loadWorkflowState(entry.workflowId);
|
|
45
|
+
if (!state || state.status !== "pending")
|
|
46
|
+
return;
|
|
47
|
+
const checkpoint = await loadDelayedWorkflowCheckpoint(internals, entry, callbacks);
|
|
48
|
+
if (!checkpoint)
|
|
49
|
+
return;
|
|
50
|
+
const registration = internals.registrations.get(state.type);
|
|
51
|
+
if (!registration) {
|
|
52
|
+
await callbacks.failWorkflow(entry.workflowId, Error(`No workflow registered with name "${state.type}"`));
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const now = internals.options.getNow(), executionDeadline = await resolveDelayedExecutionDeadline(entry, now, callbacks);
|
|
56
|
+
if (executionDeadline === "invalid")
|
|
57
|
+
return;
|
|
58
|
+
const runningState = await callbacks.runSerializedWorkflowStateWrite(entry.workflowId, async () => {
|
|
59
|
+
const latestState = await callbacks.loadWorkflowState(entry.workflowId);
|
|
60
|
+
if (!latestState || latestState.status !== "pending")
|
|
61
|
+
return null;
|
|
62
|
+
const nextRunningState = {
|
|
63
|
+
...latestState,
|
|
64
|
+
status: "running",
|
|
65
|
+
startedAt: now,
|
|
66
|
+
updatedAt: now,
|
|
67
|
+
...executionDeadline !== void 0 && { executionDeadline }
|
|
68
|
+
}, operations = [
|
|
69
|
+
{
|
|
70
|
+
type: "put",
|
|
71
|
+
key: KEYS.workflow(entry.workflowId),
|
|
72
|
+
value: encode(nextRunningState)
|
|
73
|
+
},
|
|
74
|
+
...buildWorkflowVisibilityIndexTransition(entry.workflowId, latestState, nextRunningState).batchOps
|
|
75
|
+
];
|
|
76
|
+
if (executionDeadline !== void 0)
|
|
77
|
+
operations.push(...buildTimerBatchOperations({
|
|
78
|
+
id: `deadline:${entry.workflowId}`,
|
|
79
|
+
workflowId: entry.workflowId,
|
|
80
|
+
fireAt: executionDeadline,
|
|
81
|
+
kind: "execution-deadline"
|
|
82
|
+
}));
|
|
83
|
+
await internals.storage.batch(operations);
|
|
84
|
+
return nextRunningState;
|
|
85
|
+
});
|
|
86
|
+
if (!runningState)
|
|
87
|
+
return;
|
|
88
|
+
internals.checkpoints.set(entry.workflowId, checkpoint);
|
|
89
|
+
internals.workflowVersionTuples.set(entry.workflowId, callbacks.workflowVersionTupleFromState(runningState));
|
|
90
|
+
callbacks.setWorkflowStartHeaders(entry.workflowId, await callbacks.loadWorkflowStartHeaders(entry.workflowId));
|
|
91
|
+
callbacks.beginWorkflowExecution(entry.workflowId, runningState.type, runningState.input, checkpoint, executionDeadline, runningState.executionStateOwnerId ?? entry.workflowId, registration);
|
|
92
|
+
}
|
|
93
|
+
async function loadDelayedWorkflowCheckpoint(internals, entry, callbacks) {
|
|
94
|
+
const checkpointBytes = await internals.storage.get(KEYS.checkpoint(entry.workflowId));
|
|
95
|
+
if (!checkpointBytes) {
|
|
96
|
+
await callbacks.failWorkflow(entry.workflowId, Error(`Checkpoint not found for delayed workflow "${entry.workflowId}"`));
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
return deserializeCheckpoint(checkpointBytes);
|
|
100
|
+
}
|
|
101
|
+
async function resolveDelayedExecutionDeadline(entry, now, callbacks) {
|
|
102
|
+
if (entry.executionTimeoutMs === void 0)
|
|
103
|
+
return;
|
|
104
|
+
if (!Number.isFinite(entry.executionTimeoutMs) || entry.executionTimeoutMs < 0) {
|
|
105
|
+
await failInvalidDelayedExecutionTimeout(entry, callbacks);
|
|
106
|
+
return "invalid";
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
return normalizeStorageTimestamp(now + entry.executionTimeoutMs, `Delayed execution timeout for workflow "${entry.workflowId}"`);
|
|
110
|
+
} catch {
|
|
111
|
+
await failInvalidDelayedExecutionTimeout(entry, callbacks);
|
|
112
|
+
return "invalid";
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async function failInvalidDelayedExecutionTimeout(entry, callbacks) {
|
|
116
|
+
await callbacks.failWorkflow(entry.workflowId, Error(`Invalid delayed execution timeout for workflow "${entry.workflowId}"`));
|
|
117
|
+
}
|
|
118
|
+
export async function handleTimerFired(internals, entry, callbacks) {
|
|
119
|
+
if (entry.id.startsWith("review-escalation:") || entry.id.startsWith("review-timeout:")) {
|
|
120
|
+
await handleReviewTimer(internals, entry, callbacks);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (entry.kind === "delayed-start") {
|
|
124
|
+
await startDelayedWorkflow(internals, entry, callbacks);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (entry.kind === "terminal-cleanup") {
|
|
128
|
+
await callbacks.runDeferredTerminalCleanup(entry.workflowId, entry.id);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (entry.kind === "schedule") {
|
|
132
|
+
await callbacks.handleScheduleTimer(entry);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (entry.kind === "sleep")
|
|
136
|
+
resolveSleepTimer(internals, entry);
|
|
137
|
+
else if (entry.kind === "execution-deadline")
|
|
138
|
+
await callbacks.timeout(entry.workflowId);
|
|
139
|
+
}
|
|
140
|
+
async function handleReviewTimer(internals, entry, callbacks) {
|
|
141
|
+
const reviewId = entry.id.split(":")[1];
|
|
142
|
+
if (!reviewId)
|
|
143
|
+
return;
|
|
144
|
+
const handler = internals.reviewEscalationHandlers.get(reviewId);
|
|
145
|
+
if (!handler)
|
|
146
|
+
return;
|
|
147
|
+
const state = await callbacks.loadWorkflowState(entry.workflowId);
|
|
148
|
+
if (!state || state.status !== "running")
|
|
149
|
+
return;
|
|
150
|
+
await handler(entry);
|
|
151
|
+
}
|
|
152
|
+
function resolveSleepTimer(internals, entry) {
|
|
153
|
+
const operationId = entry.id.replace("sleep:", ""), resolverKey = `${entry.workflowId}:${operationId}`, resolver = internals.sleepResolvers.get(resolverKey);
|
|
154
|
+
if (!resolver)
|
|
155
|
+
return;
|
|
156
|
+
internals.sleepResolvers.delete(resolverKey);
|
|
157
|
+
untrackSleepResolver(internals, entry.workflowId, operationId);
|
|
158
|
+
resolver();
|
|
159
|
+
}
|
|
160
|
+
function untrackSleepResolver(internals, workflowId, operationId) {
|
|
161
|
+
const workflowOperations = internals.sleepResolversByWorkflow.get(workflowId);
|
|
162
|
+
if (!workflowOperations)
|
|
163
|
+
return;
|
|
164
|
+
workflowOperations.delete(operationId);
|
|
165
|
+
if (workflowOperations.size === 0)
|
|
166
|
+
internals.sleepResolversByWorkflow.delete(workflowId);
|
|
167
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared dispatch helper for top-level `ctx.all` and `ctx.runAll`. Runs
|
|
3
|
+
* branches with `Promise.allSettled` semantics, captures every branch's
|
|
4
|
+
* outcome, and returns the slot table plus the first observed rejection
|
|
5
|
+
* reason. Callers (`processParallelOperation` for `ctx.all`,
|
|
6
|
+
* `processRunAllOperation` for `ctx.runAll`) build the v2 cache entry
|
|
7
|
+
* from those slots and persist it to the workflow's
|
|
8
|
+
* `accumulatedResults`.
|
|
9
|
+
*
|
|
10
|
+
* The helper itself has no access to a `Context` and does not mutate
|
|
11
|
+
* any workflow state directly — slot construction is its only job. The
|
|
12
|
+
* "persist before rethrow" contract lives in the callers.
|
|
13
|
+
*
|
|
14
|
+
* Nested `ctx.all` (inside another sub-operation, like `ctx.race`) does
|
|
15
|
+
* NOT go through this helper. `executeSubOperation` keeps `Promise.all`
|
|
16
|
+
* semantics for that case so the outer parent's slot captures the inner
|
|
17
|
+
* value verbatim — partial-failure preservation is documented as
|
|
18
|
+
* top-level only.
|
|
19
|
+
*
|
|
20
|
+
* Persistence model in the callers: the engine writes the partial entry
|
|
21
|
+
* into `context.accumulatedResults` in place at the operation's parent
|
|
22
|
+
* step; the existing checkpoint-persistence path picks it up on the
|
|
23
|
+
* next yield boundary. This trades some durability under hard process
|
|
24
|
+
* crashes for a much smaller blast radius into the engine's
|
|
25
|
+
* checkpoint-write machinery — see the `parallel-execution.md` guide
|
|
26
|
+
* for the precise durability contract.
|
|
27
|
+
*/
|
|
28
|
+
import type { ParallelBranchSlot, ParallelOperationCacheEntry } from '../context/parallel-operations.ts';
|
|
29
|
+
export type ParallelDispatchResult = {
|
|
30
|
+
/** Final slot table — every entry is `fulfilled` or `rejected`. */
|
|
31
|
+
slots: ParallelBranchSlot[];
|
|
32
|
+
/**
|
|
33
|
+
* Whether at least one branch rejected. Distinguishes "no rejection"
|
|
34
|
+
* from "rejected with `undefined`" — the latter is rare but valid in
|
|
35
|
+
* `Promise.all` semantics.
|
|
36
|
+
*/
|
|
37
|
+
hasFirstError: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* The first rejection observed by settlement timing, in its original
|
|
40
|
+
* shape. `Promise.all` rethrows whatever was thrown — including
|
|
41
|
+
* non-`Error` values like strings, numbers, or `undefined`. Callers
|
|
42
|
+
* rethrow this as-is to preserve that contract.
|
|
43
|
+
*/
|
|
44
|
+
firstError: unknown;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Mutable accumulator for the first rejection observed across a fan-out
|
|
48
|
+
* dispatch. Shared by `dispatchBranchesAllSettled` here and by
|
|
49
|
+
* `executeRunAllBranchesSettled` in `engine-helpers.ts` so both
|
|
50
|
+
* Promise.all-style settled dispatches use the same capture logic and
|
|
51
|
+
* don't drift in the contract for "first rejection wins" semantics.
|
|
52
|
+
*
|
|
53
|
+
* `Promise.all` rethrows whatever was thrown — including non-`Error`
|
|
54
|
+
* values like strings, numbers, or `undefined`. The accumulator
|
|
55
|
+
* preserves the original `unknown` value so callers can rethrow it
|
|
56
|
+
* verbatim.
|
|
57
|
+
*/
|
|
58
|
+
export type FirstRejectionCapture = {
|
|
59
|
+
hasFirstError: boolean;
|
|
60
|
+
firstError: unknown;
|
|
61
|
+
};
|
|
62
|
+
/** Create a fresh first-rejection accumulator. */
|
|
63
|
+
export declare function createFirstRejectionCapture(): FirstRejectionCapture;
|
|
64
|
+
/** Record a rejection, keeping only the first one observed by settlement timing. */
|
|
65
|
+
export declare function captureFirstRejection(capture: FirstRejectionCapture, reason: unknown): void;
|
|
66
|
+
export type DispatchOneBranch = (index: number) => Promise<unknown>;
|
|
67
|
+
/**
|
|
68
|
+
* Run every branch via `executeOne(index)`, capturing per-branch outcomes
|
|
69
|
+
* in a slot table. Reused fulfilled slots (passed in via `resumedSlots`)
|
|
70
|
+
* skip dispatch entirely; missing/rejected/aborted slots dispatch fresh.
|
|
71
|
+
*
|
|
72
|
+
* The promise NEVER rejects — callers receive a `slots` array, a
|
|
73
|
+
* `hasFirstError` flag, and the original `firstError` value. Callers
|
|
74
|
+
* translate that into rejection of the parent operation themselves so
|
|
75
|
+
* they can write the partial entry first. Persisted rejection metadata
|
|
76
|
+
* is normalized to `{ name, message }` because raw `Error` objects
|
|
77
|
+
* don't round-trip through MessagePack, but the value rethrown to the
|
|
78
|
+
* workflow generator is the original `unknown` reason.
|
|
79
|
+
*/
|
|
80
|
+
export declare function dispatchBranchesAllSettled(operationIds: string[], resumedSlots: ParallelBranchSlot[] | undefined, executeOne: DispatchOneBranch): Promise<ParallelDispatchResult>;
|
|
81
|
+
/**
|
|
82
|
+
* Build a v2 cache entry from the result of `dispatchBranchesAllSettled`.
|
|
83
|
+
* Convenience wrapper used by every dispatch site.
|
|
84
|
+
*/
|
|
85
|
+
export declare function buildEntryFromSlots(variant: 'all' | 'race' | 'run-all', slots: ParallelBranchSlot[], branchNames?: string[]): ParallelOperationCacheEntry;
|
|
86
|
+
/**
|
|
87
|
+
* Reconstruct the user-visible array result from a fully-fulfilled slot
|
|
88
|
+
* table. Throws if any slot is non-fulfilled — callers must check
|
|
89
|
+
* `firstError` first and throw it instead of calling this on a partial
|
|
90
|
+
* result.
|
|
91
|
+
*/
|
|
92
|
+
export declare function valuesFromSlots(slots: ParallelBranchSlot[]): unknown[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createParallelOperationCacheEntry } from "../context/parallel-operations.js";
|
|
2
|
+
export function createFirstRejectionCapture() {
|
|
3
|
+
return { hasFirstError: !1, firstError: void 0 };
|
|
4
|
+
}
|
|
5
|
+
export function captureFirstRejection(capture, reason) {
|
|
6
|
+
if (!capture.hasFirstError) {
|
|
7
|
+
capture.hasFirstError = !0;
|
|
8
|
+
capture.firstError = reason;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export async function dispatchBranchesAllSettled(operationIds, resumedSlots, executeOne) {
|
|
12
|
+
const slots = operationIds.map((operationId, i) => {
|
|
13
|
+
const cached = resumedSlots?.[i];
|
|
14
|
+
if (cached?.status === "fulfilled")
|
|
15
|
+
return cached;
|
|
16
|
+
return { status: "pending", operationId };
|
|
17
|
+
}), capture = createFirstRejectionCapture();
|
|
18
|
+
await Promise.all(operationIds.map(async (operationId, index) => {
|
|
19
|
+
if (slots[index]?.status === "fulfilled")
|
|
20
|
+
return;
|
|
21
|
+
try {
|
|
22
|
+
const value = await executeOne(index);
|
|
23
|
+
slots[index] = { status: "fulfilled", value, operationId };
|
|
24
|
+
} catch (error) {
|
|
25
|
+
const reasonError = error instanceof Error ? error : Error(String(error));
|
|
26
|
+
slots[index] = {
|
|
27
|
+
status: "rejected",
|
|
28
|
+
reason: { name: reasonError.name, message: reasonError.message },
|
|
29
|
+
operationId
|
|
30
|
+
};
|
|
31
|
+
captureFirstRejection(capture, error);
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
34
|
+
return { slots, hasFirstError: capture.hasFirstError, firstError: capture.firstError };
|
|
35
|
+
}
|
|
36
|
+
export function buildEntryFromSlots(variant, slots, branchNames) {
|
|
37
|
+
return createParallelOperationCacheEntry(variant, slots, slots.length, branchNames);
|
|
38
|
+
}
|
|
39
|
+
export function valuesFromSlots(slots) {
|
|
40
|
+
return slots.map((slot, i) => {
|
|
41
|
+
if (slot.status !== "fulfilled")
|
|
42
|
+
throw Error(`Branch slot ${i} is ${slot.status}, not fulfilled`);
|
|
43
|
+
return slot.value;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { EngineInternals } from './internals.ts';
|
|
2
|
+
type PendingUpdateCallbacks = {
|
|
3
|
+
dispatchEvent: (event: Event) => boolean;
|
|
4
|
+
broadcast: (message: {
|
|
5
|
+
type: 'update:completed';
|
|
6
|
+
workflowId: string;
|
|
7
|
+
updateId: string;
|
|
8
|
+
}) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare function invokeUpdateHandler(internals: EngineInternals, name: string, handler: (payload: unknown) => unknown, payload: unknown): Promise<unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* After an inline workflow advances, wait for its current generator turn to
|
|
13
|
+
* expose update handlers before draining pending coordinated updates.
|
|
14
|
+
*/
|
|
15
|
+
export declare function processPendingUpdatesAfterInlineAdvance(internals: EngineInternals, workflowId: string, callbacks: PendingUpdateCallbacks): Promise<void>;
|
|
16
|
+
export declare function schedulePendingInlineUpdateDrain(internals: EngineInternals, workflowId: string, callbacks: PendingUpdateCallbacks): void;
|
|
17
|
+
export declare function processPendingUpdatesForHandlers(internals: EngineInternals, workflowId: string, callbacks: PendingUpdateCallbacks): Promise<void>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { UpdateCompletedEvent, UpdateReceivedEvent } from "../events.js";
|
|
2
|
+
import { UpdateValidationError } from "../updates.js";
|
|
3
|
+
import {
|
|
4
|
+
extractStandardSchemaIssues,
|
|
5
|
+
invokeUpdateHandler as invokeUpdateHandlerFromInternals
|
|
6
|
+
} from "./updates.js";
|
|
7
|
+
async function waitForNextMacrotask() {
|
|
8
|
+
await new Promise((resolve) => {
|
|
9
|
+
setTimeout(resolve, 0);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async function waitForRegisteredUpdateHandlers(internals, workflowId) {
|
|
13
|
+
const inlineStrategy = internals.inlineStrategy;
|
|
14
|
+
if (inlineStrategy === null)
|
|
15
|
+
return !1;
|
|
16
|
+
let context = inlineStrategy.getContext(workflowId);
|
|
17
|
+
if (context && context.updateHandlers.size > 0)
|
|
18
|
+
return !0;
|
|
19
|
+
const pendingAdvance = inlineStrategy.waitForWorkflowAdvance(workflowId);
|
|
20
|
+
if (pendingAdvance) {
|
|
21
|
+
await pendingAdvance;
|
|
22
|
+
context = inlineStrategy.getContext(workflowId);
|
|
23
|
+
if (context && context.updateHandlers.size > 0)
|
|
24
|
+
return !0;
|
|
25
|
+
}
|
|
26
|
+
for (let attempt = 0;attempt < 5; attempt++) {
|
|
27
|
+
await waitForNextMacrotask();
|
|
28
|
+
context = inlineStrategy.getContext(workflowId);
|
|
29
|
+
if (context && context.updateHandlers.size > 0)
|
|
30
|
+
return !0;
|
|
31
|
+
}
|
|
32
|
+
return !1;
|
|
33
|
+
}
|
|
34
|
+
export async function invokeUpdateHandler(internals, name, handler, payload) {
|
|
35
|
+
return invokeUpdateHandlerFromInternals(internals, name, handler, payload);
|
|
36
|
+
}
|
|
37
|
+
export async function processPendingUpdatesAfterInlineAdvance(internals, workflowId, callbacks) {
|
|
38
|
+
if ((await internals.updateCoordinator.getPendingUpdates(workflowId)).length === 0)
|
|
39
|
+
return;
|
|
40
|
+
if (!await waitForRegisteredUpdateHandlers(internals, workflowId))
|
|
41
|
+
return;
|
|
42
|
+
await processPendingUpdatesForHandlers(internals, workflowId, callbacks);
|
|
43
|
+
}
|
|
44
|
+
export function schedulePendingInlineUpdateDrain(internals, workflowId, callbacks) {
|
|
45
|
+
if (internals.inlineStrategy === null)
|
|
46
|
+
return;
|
|
47
|
+
setTimeout(() => {
|
|
48
|
+
processPendingUpdatesForHandlers(internals, workflowId, callbacks).catch(() => {});
|
|
49
|
+
}, 0);
|
|
50
|
+
}
|
|
51
|
+
async function runPendingUpdateValidator(validator, updateName, payload) {
|
|
52
|
+
let result;
|
|
53
|
+
try {
|
|
54
|
+
result = await validator(payload);
|
|
55
|
+
} catch (error) {
|
|
56
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
57
|
+
return new UpdateValidationError(updateName, [{ message }]).message;
|
|
58
|
+
}
|
|
59
|
+
const issues = extractStandardSchemaIssues(result);
|
|
60
|
+
if (issues !== null && issues.length > 0)
|
|
61
|
+
return new UpdateValidationError(updateName, issues).message;
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
export async function processPendingUpdatesForHandlers(internals, workflowId, callbacks) {
|
|
65
|
+
const context = internals.inlineStrategy?.getContext(workflowId);
|
|
66
|
+
if (!context)
|
|
67
|
+
return;
|
|
68
|
+
const handlers = context.updateHandlers;
|
|
69
|
+
if (handlers.size === 0)
|
|
70
|
+
return;
|
|
71
|
+
const pendingUpdates = await internals.updateCoordinator.getPendingUpdates(workflowId);
|
|
72
|
+
if (pendingUpdates.length === 0)
|
|
73
|
+
return;
|
|
74
|
+
for (const update of pendingUpdates) {
|
|
75
|
+
const handler = handlers.get(update.name);
|
|
76
|
+
if (!handler)
|
|
77
|
+
continue;
|
|
78
|
+
const validatorRejectionError = await runValidatorIfPresent(context, update);
|
|
79
|
+
if (validatorRejectionError !== null) {
|
|
80
|
+
await rejectPendingUpdate(internals, workflowId, update, validatorRejectionError, callbacks);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
await deliverPendingUpdate(internals, workflowId, update, handler, callbacks);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function runValidatorIfPresent(context, update) {
|
|
87
|
+
const validator = context.updateValidators?.get(update.name);
|
|
88
|
+
if (validator === void 0)
|
|
89
|
+
return null;
|
|
90
|
+
return runPendingUpdateValidator(validator, update.name, update.payload);
|
|
91
|
+
}
|
|
92
|
+
async function rejectPendingUpdate(internals, workflowId, update, errorMessage, callbacks) {
|
|
93
|
+
const responseOperations = internals.updateCoordinator.buildResponseOperations(update.updateId, workflowId, void 0, errorMessage, update.idempotencyKey);
|
|
94
|
+
await internals.storage.batch(responseOperations);
|
|
95
|
+
callbacks.broadcast({ type: "update:completed", workflowId, updateId: update.updateId });
|
|
96
|
+
}
|
|
97
|
+
async function deliverPendingUpdate(internals, workflowId, update, handler, callbacks) {
|
|
98
|
+
callbacks.dispatchEvent(new UpdateReceivedEvent(update.updateId, workflowId, update.name, update.payload));
|
|
99
|
+
let result, error;
|
|
100
|
+
try {
|
|
101
|
+
result = await invokeUpdateHandler(internals, update.name, handler, update.payload);
|
|
102
|
+
} catch (handlerError) {
|
|
103
|
+
error = handlerError instanceof Error ? handlerError.message : String(handlerError);
|
|
104
|
+
}
|
|
105
|
+
const responseOperations = internals.updateCoordinator.buildResponseOperations(update.updateId, workflowId, result, error, update.idempotencyKey);
|
|
106
|
+
await internals.storage.batch(responseOperations);
|
|
107
|
+
callbacks.dispatchEvent(new UpdateCompletedEvent(update.updateId, workflowId, update.name, result, error));
|
|
108
|
+
callbacks.broadcast({ type: "update:completed", workflowId, updateId: update.updateId });
|
|
109
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Storage as WeftStorage } from '../../storage/interface.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Read the persisted-data schema-version sentinel and throw
|
|
4
|
+
* {@link PersistedDataIncompatibleError} when it is older (or newer) than the
|
|
5
|
+
* engine's {@link CURRENT_PERSISTED_DATA_SCHEMA_VERSION}.
|
|
6
|
+
*
|
|
7
|
+
* Three cases:
|
|
8
|
+
*
|
|
9
|
+
* 1. Sentinel exists and matches: no-op.
|
|
10
|
+
* 2. Sentinel exists but is missing, unparseable, or disagrees with the
|
|
11
|
+
* current version: throw `PersistedDataIncompatibleError`.
|
|
12
|
+
* 3. Sentinel is absent. Only stamp the storage when it carries no user
|
|
13
|
+
* workflow data. Stamping a database that already holds workflow records,
|
|
14
|
+
* schedules, checkpoints, or any other `wf:` / `op:` / `schedule:` / `ev:`
|
|
15
|
+
* prefixed key would silently classify pre-versioned data (written by an
|
|
16
|
+
* older Weft binary or by the `new Engine({ storage })` constructor path
|
|
17
|
+
* before the sentinel was introduced) as schema-current and risk replaying
|
|
18
|
+
* incompatible records. When user data is already present without a
|
|
19
|
+
* sentinel, fail with `PersistedDataIncompatibleError(null, …)` so the
|
|
20
|
+
* operator can choose explicitly whether to wipe and start fresh.
|
|
21
|
+
*/
|
|
22
|
+
export declare function assertCompatiblePersistedDataVersion(storage: WeftStorage, options?: {
|
|
23
|
+
allowLegacyData?: boolean;
|
|
24
|
+
}): Promise<void>;
|