@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,132 @@
|
|
|
1
|
+
import { KEYS } from "../../storage/interface.js";
|
|
2
|
+
import {
|
|
3
|
+
AGGREGATE_DEFAULT_LIMIT,
|
|
4
|
+
AggregateDistinctKeyCapExceededError,
|
|
5
|
+
MAX_AGGREGATE_DISTINCT_KEYS,
|
|
6
|
+
normalizeAggregateOptions
|
|
7
|
+
} from "../aggregate-validation.js";
|
|
8
|
+
import { decode } from "../codec.js";
|
|
9
|
+
import { normalizeListFilter } from "../list-filter-validation.js";
|
|
10
|
+
import { WeftError } from "../weft-error.js";
|
|
11
|
+
import { normalizeWorkflowTags } from "../workflow-tags.js";
|
|
12
|
+
import { resolveListCandidateIds } from "./list-candidate-resolution.js";
|
|
13
|
+
import { matchesListFilter } from "./state-utilities.js";
|
|
14
|
+
import { decodeWorkflowState } from "./validation.js";
|
|
15
|
+
import { MAX_LIST_SCAN_ROWS, WorkflowListScanCapExceededError } from "./workflow-indexes.js";
|
|
16
|
+
import { isTopLevelWorkflowStateKey } from "./workflow-state-stream.js";
|
|
17
|
+
const ATTRIBUTE_VALUE_TO_KEY = (value) => {
|
|
18
|
+
if (value === void 0 || value === null)
|
|
19
|
+
return null;
|
|
20
|
+
if (typeof value === "string")
|
|
21
|
+
return value;
|
|
22
|
+
if (typeof value === "number" || typeof value === "boolean")
|
|
23
|
+
return String(value);
|
|
24
|
+
if (value instanceof Date)
|
|
25
|
+
return value.toISOString();
|
|
26
|
+
if (Array.isArray(value))
|
|
27
|
+
return value.join(",");
|
|
28
|
+
return String(value);
|
|
29
|
+
};
|
|
30
|
+
async function resolveDimensionKey(internals, state, groupBy) {
|
|
31
|
+
if (groupBy === "status")
|
|
32
|
+
return state.status;
|
|
33
|
+
if (groupBy === "type")
|
|
34
|
+
return state.type;
|
|
35
|
+
if (groupBy === "failureCategory")
|
|
36
|
+
return state.failureCategory ?? null;
|
|
37
|
+
const attributeBytes = await internals.storage.get(KEYS.attribute(state.id));
|
|
38
|
+
if (!attributeBytes)
|
|
39
|
+
return null;
|
|
40
|
+
const attributes = decode(attributeBytes);
|
|
41
|
+
return ATTRIBUTE_VALUE_TO_KEY(attributes[groupBy.attribute]);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export class UnknownAggregateAttributeError extends WeftError {
|
|
45
|
+
attribute;
|
|
46
|
+
constructor(attribute) {
|
|
47
|
+
super("UnknownAggregateAttributeError", `Unknown search attribute "${attribute}". Aggregate groupBy requires a declared attribute.`);
|
|
48
|
+
this.attribute = attribute;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function validateAttributeDimension(internals, attributeName) {
|
|
52
|
+
let anySchemaDeclared = !1, attributeFound = !1;
|
|
53
|
+
for (const registration of internals.registrations.values())
|
|
54
|
+
if (registration.searchAttributes !== void 0) {
|
|
55
|
+
anySchemaDeclared = !0;
|
|
56
|
+
if (attributeName in registration.searchAttributes) {
|
|
57
|
+
attributeFound = !0;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (anySchemaDeclared && !attributeFound)
|
|
62
|
+
throw new UnknownAggregateAttributeError(attributeName);
|
|
63
|
+
}
|
|
64
|
+
function validateAggregateInputs(internals, filter, options, executionOptions) {
|
|
65
|
+
const normalizedFilter = normalizeListFilter({ ...filter, limit: void 0, offset: void 0 }), normalizedOptions = normalizeAggregateOptions(options), { groupBy } = normalizedOptions;
|
|
66
|
+
if (typeof groupBy === "object")
|
|
67
|
+
validateAttributeDimension(internals, groupBy.attribute);
|
|
68
|
+
return {
|
|
69
|
+
normalizedFilter,
|
|
70
|
+
groupBy,
|
|
71
|
+
requestedLimit: normalizedOptions.limit ?? AGGREGATE_DEFAULT_LIMIT,
|
|
72
|
+
distinctKeyCap: executionOptions.distinctKeyCap ?? MAX_AGGREGATE_DISTINCT_KEYS
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
async function accumulateAggregateState(internals, state, groupBy, distinctKeyCap, accumulator) {
|
|
76
|
+
const key = await resolveDimensionKey(internals, state, groupBy), current = accumulator.counts.get(key);
|
|
77
|
+
if (current === void 0) {
|
|
78
|
+
if (accumulator.counts.size >= distinctKeyCap)
|
|
79
|
+
throw new AggregateDistinctKeyCapExceededError(distinctKeyCap);
|
|
80
|
+
accumulator.counts.set(key, 1);
|
|
81
|
+
} else
|
|
82
|
+
accumulator.counts.set(key, current + 1);
|
|
83
|
+
accumulator.total += 1;
|
|
84
|
+
}
|
|
85
|
+
async function accumulateFromConstrainedIds(internals, constrainedIds, normalizedFilter, normalizedTagFilters, groupBy, distinctKeyCap, accumulator) {
|
|
86
|
+
if (constrainedIds.size > MAX_LIST_SCAN_ROWS)
|
|
87
|
+
throw new WorkflowListScanCapExceededError(MAX_LIST_SCAN_ROWS);
|
|
88
|
+
for (const workflowId of constrainedIds) {
|
|
89
|
+
const stateBytes = await internals.storage.get(KEYS.workflow(workflowId));
|
|
90
|
+
if (!stateBytes)
|
|
91
|
+
continue;
|
|
92
|
+
const state = decodeWorkflowState(stateBytes);
|
|
93
|
+
if (!matchesListFilter(state, normalizedFilter, constrainedIds, normalizedTagFilters))
|
|
94
|
+
continue;
|
|
95
|
+
await accumulateAggregateState(internals, state, groupBy, distinctKeyCap, accumulator);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function accumulateFromFullScan(internals, normalizedFilter, normalizedTagFilters, groupBy, distinctKeyCap, accumulator) {
|
|
99
|
+
let scanned = 0;
|
|
100
|
+
for await (const [storageKey, value] of internals.storage.scan("wf:")) {
|
|
101
|
+
if (!isTopLevelWorkflowStateKey(storageKey))
|
|
102
|
+
continue;
|
|
103
|
+
scanned += 1;
|
|
104
|
+
if (scanned > MAX_LIST_SCAN_ROWS)
|
|
105
|
+
throw new WorkflowListScanCapExceededError(MAX_LIST_SCAN_ROWS);
|
|
106
|
+
const state = decodeWorkflowState(value);
|
|
107
|
+
if (!matchesListFilter(state, normalizedFilter, null, normalizedTagFilters))
|
|
108
|
+
continue;
|
|
109
|
+
await accumulateAggregateState(internals, state, groupBy, distinctKeyCap, accumulator);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function finalizeAggregateResult(accumulator, requestedLimit) {
|
|
113
|
+
const sortedGroups = [...accumulator.counts.entries()].map(([groupKey, count]) => ({ key: groupKey, count })).toSorted((left, right) => {
|
|
114
|
+
if (left.count !== right.count)
|
|
115
|
+
return right.count - left.count;
|
|
116
|
+
const leftKey = left.key ?? "", rightKey = right.key ?? "";
|
|
117
|
+
if (leftKey < rightKey)
|
|
118
|
+
return -1;
|
|
119
|
+
if (leftKey > rightKey)
|
|
120
|
+
return 1;
|
|
121
|
+
return 0;
|
|
122
|
+
}), truncated = sortedGroups.length > requestedLimit, groups = truncated ? sortedGroups.slice(0, requestedLimit) : sortedGroups;
|
|
123
|
+
return { total: accumulator.total, groups, truncated };
|
|
124
|
+
}
|
|
125
|
+
export async function aggregate(internals, filter, options, executionOptions = {}) {
|
|
126
|
+
const { normalizedFilter, groupBy, requestedLimit, distinctKeyCap } = validateAggregateInputs(internals, filter, options, executionOptions), normalizedTagFilters = normalizeWorkflowTags(normalizedFilter.tags), constrainedIds = await resolveListCandidateIds(internals, normalizedFilter, normalizedTagFilters), accumulator = { counts: new Map, total: 0 };
|
|
127
|
+
if (constrainedIds !== null)
|
|
128
|
+
await accumulateFromConstrainedIds(internals, constrainedIds, normalizedFilter, normalizedTagFilters, groupBy, distinctKeyCap, accumulator);
|
|
129
|
+
else
|
|
130
|
+
await accumulateFromFullScan(internals, normalizedFilter, normalizedTagFilters, groupBy, distinctKeyCap, accumulator);
|
|
131
|
+
return finalizeAggregateResult(accumulator, requestedLimit);
|
|
132
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BatchOperation } from '../../storage/interface.ts';
|
|
2
|
+
import type { EngineInternals } from './internals.ts';
|
|
3
|
+
import type { BufferedSignalDelivery } from './signals.ts';
|
|
4
|
+
export declare function commitAnonymousSignalOperations(internals: EngineInternals, workflowId: string, deliveries: BufferedSignalDelivery[], appendTerminalCleanupOperation: (operations: BatchOperation[]) => void, markTerminalCleanupTracked: () => void): Promise<void>;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KEYS,
|
|
3
|
+
encodeStorageKeyComponent,
|
|
4
|
+
requireStorageCapability,
|
|
5
|
+
storageConditionalBatch
|
|
6
|
+
} from "../../storage/interface.js";
|
|
7
|
+
import { decode, encode } from "../codec.js";
|
|
8
|
+
import { encodePayloadWithinLimit } from "../payload-size.js";
|
|
9
|
+
const MAX_SIGNAL_SEQUENCE_COMMIT_ATTEMPTS = 5, anonymousSignalSequenceLocks = new WeakMap;
|
|
10
|
+
export async function commitAnonymousSignalOperations(internals, workflowId, deliveries, appendTerminalCleanupOperation, markTerminalCleanupTracked) {
|
|
11
|
+
const sequenceKey = KEYS.signalSequence(workflowId);
|
|
12
|
+
if (!internals.storage.capabilities().conditionalBatch) {
|
|
13
|
+
await runWithAnonymousSignalSequenceLock(internals.storage, workflowId, async () => {
|
|
14
|
+
const currentSequenceBytes = await internals.storage.get(sequenceKey), nextSequence = await deriveNextAnonymousSignalSequence(internals, workflowId, currentSequenceBytes), operations = createAnonymousSignalOperations(internals, workflowId, deliveries, nextSequence, sequenceKey);
|
|
15
|
+
appendTerminalCleanupOperation(operations);
|
|
16
|
+
await internals.storage.batch(operations);
|
|
17
|
+
markTerminalCleanupTracked();
|
|
18
|
+
});
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
requireStorageCapability(internals.storage, "conditionalBatch", "anonymous signal ordering");
|
|
22
|
+
for (let attempt = 0;attempt < MAX_SIGNAL_SEQUENCE_COMMIT_ATTEMPTS; attempt += 1) {
|
|
23
|
+
const currentSequenceBytes = await internals.storage.get(sequenceKey), nextSequence = await deriveNextAnonymousSignalSequence(internals, workflowId, currentSequenceBytes), operations = createAnonymousSignalOperations(internals, workflowId, deliveries, nextSequence, sequenceKey);
|
|
24
|
+
appendTerminalCleanupOperation(operations);
|
|
25
|
+
if (await storageConditionalBatch(internals.storage, [{ key: sequenceKey, expectedValue: currentSequenceBytes }], operations)) {
|
|
26
|
+
markTerminalCleanupTracked();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
throw Error(`Could not allocate anonymous signal sequence for workflow "${workflowId}" after ${MAX_SIGNAL_SEQUENCE_COMMIT_ATTEMPTS} attempts`);
|
|
31
|
+
}
|
|
32
|
+
async function runWithAnonymousSignalSequenceLock(storage, workflowId, operation) {
|
|
33
|
+
let storageLocks = anonymousSignalSequenceLocks.get(storage);
|
|
34
|
+
if (!storageLocks) {
|
|
35
|
+
storageLocks = new Map;
|
|
36
|
+
anonymousSignalSequenceLocks.set(storage, storageLocks);
|
|
37
|
+
}
|
|
38
|
+
const previous = storageLocks.get(workflowId) ?? Promise.resolve();
|
|
39
|
+
let releaseCurrentLock;
|
|
40
|
+
const current = new Promise((resolve) => {
|
|
41
|
+
releaseCurrentLock = resolve;
|
|
42
|
+
}), lockChain = previous.then(() => current, () => current);
|
|
43
|
+
storageLocks.set(workflowId, lockChain);
|
|
44
|
+
try {
|
|
45
|
+
await previous.catch(() => {});
|
|
46
|
+
await operation();
|
|
47
|
+
} finally {
|
|
48
|
+
releaseCurrentLock();
|
|
49
|
+
if (storageLocks.get(workflowId) === lockChain)
|
|
50
|
+
storageLocks.delete(workflowId);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function createAnonymousSignalOperations(internals, workflowId, deliveries, nextSequence, sequenceKey) {
|
|
54
|
+
const operations = deliveries.map(({ signalName, payload }, index) => ({
|
|
55
|
+
type: "put",
|
|
56
|
+
key: KEYS.signal(workflowId, signalName, generatedSignalId(nextSequence + index)),
|
|
57
|
+
value: encodePayloadWithinLimit(payload, internals.options.payloadSizePolicy.maxBytes, "signal payload")
|
|
58
|
+
}));
|
|
59
|
+
operations.push({
|
|
60
|
+
type: "put",
|
|
61
|
+
key: sequenceKey,
|
|
62
|
+
value: encode(nextSequence + deliveries.length)
|
|
63
|
+
});
|
|
64
|
+
return operations;
|
|
65
|
+
}
|
|
66
|
+
function generatedSignalId(sequenceValue) {
|
|
67
|
+
return `anonymous:${String(sequenceValue).padStart(16, "0")}:${crypto.randomUUID()}`;
|
|
68
|
+
}
|
|
69
|
+
async function deriveNextAnonymousSignalSequence(internals, workflowId, currentSequenceBytes) {
|
|
70
|
+
if (currentSequenceBytes !== null)
|
|
71
|
+
return decodeSignalSequence(currentSequenceBytes);
|
|
72
|
+
return scanNextAnonymousSignalSequence(internals, workflowId);
|
|
73
|
+
}
|
|
74
|
+
async function scanNextAnonymousSignalSequence(internals, workflowId) {
|
|
75
|
+
const prefix = `sig:${encodeStorageKeyComponent(workflowId)}:`;
|
|
76
|
+
let nextSequence = 0;
|
|
77
|
+
for await (const [key] of internals.storage.scan(prefix)) {
|
|
78
|
+
const sequence = extractAnonymousSignalSequence(key);
|
|
79
|
+
if (sequence !== null && sequence >= nextSequence)
|
|
80
|
+
nextSequence = sequence + 1;
|
|
81
|
+
}
|
|
82
|
+
return nextSequence;
|
|
83
|
+
}
|
|
84
|
+
function extractAnonymousSignalSequence(key) {
|
|
85
|
+
const marker = ":anonymous%3A", markerIndex = key.lastIndexOf(marker);
|
|
86
|
+
if (markerIndex === -1)
|
|
87
|
+
return null;
|
|
88
|
+
const sequenceStart = markerIndex + marker.length, sequenceEnd = key.indexOf("%3A", sequenceStart);
|
|
89
|
+
if (sequenceEnd === -1)
|
|
90
|
+
return null;
|
|
91
|
+
const sequence = Number(key.slice(sequenceStart, sequenceEnd));
|
|
92
|
+
return Number.isSafeInteger(sequence) && sequence >= 0 ? sequence : null;
|
|
93
|
+
}
|
|
94
|
+
function decodeSignalSequence(bytes) {
|
|
95
|
+
if (bytes === null)
|
|
96
|
+
return 0;
|
|
97
|
+
const value = decode(bytes);
|
|
98
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0)
|
|
99
|
+
throw Error("Stored anonymous signal sequence must be a non-negative safe integer");
|
|
100
|
+
return value;
|
|
101
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Out-of-band ("async") activity completion.
|
|
3
|
+
*
|
|
4
|
+
* An activity can hand its work off to an external system — a webhook, a human
|
|
5
|
+
* callback, a third-party async job — by calling `ctx.completeAsync()` on its
|
|
6
|
+
* {@link ActivityContext}. That call throws an {@link AsyncActivityDeferral}
|
|
7
|
+
* sentinel which the engine catches: instead of completing or failing the
|
|
8
|
+
* activity operation (which would resume the workflow), the engine records a
|
|
9
|
+
* pending entry keyed by a durable, deterministic task token and leaves the
|
|
10
|
+
* workflow suspended at that step.
|
|
11
|
+
*
|
|
12
|
+
* Some external system later resolves the activity by token through
|
|
13
|
+
* `engine.completeAsyncActivity(token, result)` or
|
|
14
|
+
* `engine.failAsyncActivity(token, error)`. Completion resumes the workflow
|
|
15
|
+
* generator with the supplied value; failure throws the supplied error into the
|
|
16
|
+
* generator (the same path an inline activity failure takes, so the workflow's
|
|
17
|
+
* retry/catch handling applies unchanged).
|
|
18
|
+
*
|
|
19
|
+
* Durability: the pending entry is persisted under
|
|
20
|
+
* {@link KEYS.asyncActivity}. The token is derived from the workflow id, the
|
|
21
|
+
* deterministic workflow step index, and the activity attempt, so it is stable
|
|
22
|
+
* across replay. After an engine restart, `recoverAll()` replays the workflow
|
|
23
|
+
* from its checkpoint; the deferred activity re-runs, re-defers, and produces
|
|
24
|
+
* the *same* token. A callback that arrives after the crash therefore still
|
|
25
|
+
* resolves the correct activity.
|
|
26
|
+
*
|
|
27
|
+
* Internal-only. Imported from `src/core/engine/**` and the `ActivityContext`
|
|
28
|
+
* construction path.
|
|
29
|
+
*/
|
|
30
|
+
import type { OperationOutcome } from '../types.ts';
|
|
31
|
+
import { WeftError } from '../weft-error.ts';
|
|
32
|
+
import type { EngineInternals } from './internals.ts';
|
|
33
|
+
/**
|
|
34
|
+
* Per-workflow prefix for all async-activity storage keys. Used by cleanup and
|
|
35
|
+
* purge paths that need to sweep every async-activity record for a workflow
|
|
36
|
+
* without enumerating individual tokens.
|
|
37
|
+
*/
|
|
38
|
+
export declare function asyncActivityWorkflowPrefix(workflowId: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Sentinel thrown by `ActivityContext.completeAsync()` to signal that the
|
|
41
|
+
* activity is handing off to an out-of-band completion. The engine recognizes
|
|
42
|
+
* this exact class (not a generic `Error`) and parks the activity rather than
|
|
43
|
+
* treating it as a failure. The `token` is the durable task token an external
|
|
44
|
+
* system uses to complete the activity later.
|
|
45
|
+
*/
|
|
46
|
+
export declare class AsyncActivityDeferral extends Error {
|
|
47
|
+
readonly token: string;
|
|
48
|
+
constructor(token: string);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Thrown by {@link Engine.completeAsyncActivity} and
|
|
52
|
+
* {@link Engine.failAsyncActivity} when no pending async activity matches the
|
|
53
|
+
* supplied token. This covers unknown tokens, tokens for a different engine's
|
|
54
|
+
* workflows, and tokens that were already completed or failed (each token is
|
|
55
|
+
* single-use).
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* import { AsyncActivityTokenNotFoundError } from '@lostgradient/weft';
|
|
60
|
+
*
|
|
61
|
+
* function isStaleCallbackToken(error: unknown): boolean {
|
|
62
|
+
* return error instanceof AsyncActivityTokenNotFoundError;
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare class AsyncActivityTokenNotFoundError extends WeftError<'AsyncActivityTokenNotFoundError'> {
|
|
67
|
+
readonly token: string;
|
|
68
|
+
constructor(token: string);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* In-memory record of an activity that deferred to out-of-band completion and
|
|
72
|
+
* is awaiting `completeAsyncActivity` / `failAsyncActivity`.
|
|
73
|
+
*/
|
|
74
|
+
export type PendingAsyncActivity = {
|
|
75
|
+
readonly token: string;
|
|
76
|
+
readonly workflowId: string;
|
|
77
|
+
readonly activityName: string;
|
|
78
|
+
readonly operationId: string;
|
|
79
|
+
readonly step: number;
|
|
80
|
+
readonly attempt: number;
|
|
81
|
+
readonly createdAt: number;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Derive the durable, deterministic task token for an async activity.
|
|
85
|
+
*
|
|
86
|
+
* The token is anchored to the workflow id, the workflow step index, and the
|
|
87
|
+
* dispatch attempt — all of which are stable across replay — so a workflow that
|
|
88
|
+
* crashes while parked on an async activity mints the identical token after
|
|
89
|
+
* recovery. `operationId` is deliberately excluded because it is regenerated on
|
|
90
|
+
* every yield and would change on replay.
|
|
91
|
+
*/
|
|
92
|
+
export declare function deriveAsyncActivityToken(workflowId: string, step: number, attempt: number): string;
|
|
93
|
+
/**
|
|
94
|
+
* Register a deferred activity: record it in memory and durably, then announce
|
|
95
|
+
* the token via {@link ActivityAsyncPendingEvent}. Idempotent on `token`: if the
|
|
96
|
+
* token is already registered (e.g. because `recoverPendingAsyncActivities` loaded
|
|
97
|
+
* it before the workflow replayed and re-deferred), the durable record is
|
|
98
|
+
* refreshed but the event is NOT re-emitted, preventing duplicate side-effects
|
|
99
|
+
* (e.g. re-sending a webhook notification) on replay.
|
|
100
|
+
*/
|
|
101
|
+
export declare function registerPendingAsyncActivity(internals: EngineInternals, pending: PendingAsyncActivity): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Park an activity that threw {@link AsyncActivityDeferral}: register the
|
|
104
|
+
* pending entry durably and return a promise that never settles, so the
|
|
105
|
+
* surrounding `runOperationWithResult` leaves the workflow suspended until an
|
|
106
|
+
* out-of-band completion resumes it. Keeps the operation-pipeline catch site a
|
|
107
|
+
* one-liner.
|
|
108
|
+
*/
|
|
109
|
+
export declare function parkDeferredAsyncActivity(internals: EngineInternals, deferral: AsyncActivityDeferral, details: Omit<PendingAsyncActivity, 'token' | 'createdAt'>): Promise<never>;
|
|
110
|
+
/**
|
|
111
|
+
* Reload pending async-activity records from storage into memory. Called by
|
|
112
|
+
* `recoverAll()` so a token minted before a crash is resolvable again — even
|
|
113
|
+
* before the recovered workflow has replayed far enough to re-register it.
|
|
114
|
+
*/
|
|
115
|
+
export declare function recoverPendingAsyncActivities(internals: EngineInternals): Promise<void>;
|
|
116
|
+
/**
|
|
117
|
+
* Complete a deferred activity out-of-band with `result`, resuming the parked
|
|
118
|
+
* workflow as though the activity had returned `result` inline.
|
|
119
|
+
*/
|
|
120
|
+
export declare function completeAsyncActivity(internals: EngineInternals, token: string, result: unknown, feedOperationResult: (workflowId: string, outcome: OperationOutcome) => void, finalizeTimeline: (workflowId: string, status: 'completed' | 'failed', output: unknown) => void): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Drive a generator that may yield promises — the workflow interceptor's
|
|
123
|
+
* `activity` hook returns such a generator. Forwards rejections into the
|
|
124
|
+
* generator so try/catch/finally blocks inside the interceptor run correctly
|
|
125
|
+
* instead of being abandoned.
|
|
126
|
+
*
|
|
127
|
+
* Placed here to reduce the line count of operations-activity.ts (which was
|
|
128
|
+
* approaching the 500-line lint ceiling). The function is used only from
|
|
129
|
+
* `executeActivity` in operations-activity.ts and has no coupling to the async
|
|
130
|
+
* activity completion logic — it is a general generator-driving utility.
|
|
131
|
+
*/
|
|
132
|
+
export declare function driveWorkflowInterceptorGenerator(generator: Generator<unknown, unknown, unknown>): Promise<unknown>;
|
|
133
|
+
/**
|
|
134
|
+
* Fail a deferred activity out-of-band with `error`. The error is thrown into
|
|
135
|
+
* the workflow generator at the parked step — identical to an inline activity
|
|
136
|
+
* that threw — so the workflow's own try/catch and any configured retry policy
|
|
137
|
+
* apply unchanged.
|
|
138
|
+
*/
|
|
139
|
+
export declare function failAsyncActivity(internals: EngineInternals, token: string, error: unknown, feedOperationResult: (workflowId: string, outcome: OperationOutcome, originalReason?: {
|
|
140
|
+
value: unknown;
|
|
141
|
+
}) => void, finalizeTimeline: (workflowId: string, status: 'completed' | 'failed', output: unknown) => void): Promise<void>;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { KEYS, encodeStorageKeyComponent } from "../../storage/interface.js";
|
|
2
|
+
import { decode, encode } from "../codec.js";
|
|
3
|
+
import { ActivityAsyncPendingEvent } from "../events.js";
|
|
4
|
+
import { assertPayloadWithinLimit } from "../payload-size.js";
|
|
5
|
+
import { WeftError } from "../weft-error.js";
|
|
6
|
+
const ASYNC_ACTIVITY_TOKEN_PREFIX = "async-act:v1", ASYNC_ACTIVITY_KEY_PREFIX = "async-act:v1:";
|
|
7
|
+
export function asyncActivityWorkflowPrefix(workflowId) {
|
|
8
|
+
return `${ASYNC_ACTIVITY_KEY_PREFIX}${encodeStorageKeyComponent(workflowId)}:`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class AsyncActivityDeferral extends Error {
|
|
12
|
+
token;
|
|
13
|
+
constructor(token) {
|
|
14
|
+
super(`Activity deferred to out-of-band completion (token "${token}"). Complete it via engine.completeAsyncActivity(token, result) or engine.failAsyncActivity(token, error).`);
|
|
15
|
+
this.name = "AsyncActivityDeferral";
|
|
16
|
+
this.token = token;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export class AsyncActivityTokenNotFoundError extends WeftError {
|
|
21
|
+
token;
|
|
22
|
+
constructor(token) {
|
|
23
|
+
super("AsyncActivityTokenNotFoundError", `No pending async activity found for token "${token}". The token may be unknown, already completed, or already failed (tokens are single-use).`);
|
|
24
|
+
this.token = token;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function isPersistedAsyncActivity(value) {
|
|
28
|
+
if (typeof value !== "object" || value === null)
|
|
29
|
+
return !1;
|
|
30
|
+
const record = value;
|
|
31
|
+
return record.version === 1 && typeof record.token === "string" && typeof record.workflowId === "string" && typeof record.activityName === "string" && typeof record.operationId === "string" && typeof record.step === "number" && typeof record.attempt === "number" && typeof record.createdAt === "number";
|
|
32
|
+
}
|
|
33
|
+
export function deriveAsyncActivityToken(workflowId, step, attempt) {
|
|
34
|
+
return `${ASYNC_ACTIVITY_TOKEN_PREFIX}:${workflowId}:${step}:${attempt}`;
|
|
35
|
+
}
|
|
36
|
+
function persistPendingAsyncActivity(storage, pending) {
|
|
37
|
+
const record = {
|
|
38
|
+
version: 1,
|
|
39
|
+
token: pending.token,
|
|
40
|
+
workflowId: pending.workflowId,
|
|
41
|
+
activityName: pending.activityName,
|
|
42
|
+
operationId: pending.operationId,
|
|
43
|
+
step: pending.step,
|
|
44
|
+
attempt: pending.attempt,
|
|
45
|
+
createdAt: pending.createdAt
|
|
46
|
+
};
|
|
47
|
+
return storage.put(KEYS.asyncActivity(pending.workflowId, pending.token), encode(record));
|
|
48
|
+
}
|
|
49
|
+
export async function registerPendingAsyncActivity(internals, pending) {
|
|
50
|
+
const alreadyRegistered = internals.pendingAsyncActivities.has(pending.token);
|
|
51
|
+
internals.pendingAsyncActivities.set(pending.token, pending);
|
|
52
|
+
await persistPendingAsyncActivity(internals.storage, pending);
|
|
53
|
+
if (!alreadyRegistered)
|
|
54
|
+
internals.engine.dispatchEvent(new ActivityAsyncPendingEvent(pending.token, pending.operationId, pending.workflowId, pending.activityName, pending.attempt));
|
|
55
|
+
}
|
|
56
|
+
export async function parkDeferredAsyncActivity(internals, deferral, details) {
|
|
57
|
+
await registerPendingAsyncActivity(internals, {
|
|
58
|
+
token: deferral.token,
|
|
59
|
+
createdAt: internals.options.getNow(),
|
|
60
|
+
...details
|
|
61
|
+
});
|
|
62
|
+
return new Promise(() => {});
|
|
63
|
+
}
|
|
64
|
+
export async function recoverPendingAsyncActivities(internals) {
|
|
65
|
+
for await (const [, bytes] of internals.storage.scan(ASYNC_ACTIVITY_KEY_PREFIX)) {
|
|
66
|
+
const decoded = decode(bytes);
|
|
67
|
+
if (!isPersistedAsyncActivity(decoded))
|
|
68
|
+
continue;
|
|
69
|
+
internals.pendingAsyncActivities.set(decoded.token, {
|
|
70
|
+
token: decoded.token,
|
|
71
|
+
workflowId: decoded.workflowId,
|
|
72
|
+
activityName: decoded.activityName,
|
|
73
|
+
operationId: decoded.operationId,
|
|
74
|
+
step: decoded.step,
|
|
75
|
+
attempt: decoded.attempt,
|
|
76
|
+
createdAt: decoded.createdAt
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function consumePendingAsyncActivity(internals, token) {
|
|
81
|
+
const pending = internals.pendingAsyncActivities.get(token);
|
|
82
|
+
if (!pending)
|
|
83
|
+
throw new AsyncActivityTokenNotFoundError(token);
|
|
84
|
+
internals.pendingAsyncActivities.delete(token);
|
|
85
|
+
try {
|
|
86
|
+
await internals.storage.delete(KEYS.asyncActivity(pending.workflowId, token));
|
|
87
|
+
} catch (error) {
|
|
88
|
+
internals.pendingAsyncActivities.set(token, pending);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
return pending;
|
|
92
|
+
}
|
|
93
|
+
async function resolvePendingAsyncActivity(internals, token, outcome, feedOperationResult, finalizeTimeline) {
|
|
94
|
+
const pending = await consumePendingAsyncActivity(internals, token), timelineOutput = outcome.status === "completed" ? outcome.value : outcome.error;
|
|
95
|
+
finalizeTimeline(pending.workflowId, outcome.status, timelineOutput);
|
|
96
|
+
feedOperationResult(pending.workflowId, outcome);
|
|
97
|
+
}
|
|
98
|
+
export async function completeAsyncActivity(internals, token, result, feedOperationResult, finalizeTimeline) {
|
|
99
|
+
assertPayloadWithinLimit(result, internals.options.payloadSizePolicy.maxBytes, "activity result");
|
|
100
|
+
await resolvePendingAsyncActivity(internals, token, { status: "completed", value: result }, feedOperationResult, finalizeTimeline);
|
|
101
|
+
}
|
|
102
|
+
export async function driveWorkflowInterceptorGenerator(generator) {
|
|
103
|
+
let current = generator.next();
|
|
104
|
+
while (!current.done) {
|
|
105
|
+
const yielded = current.value;
|
|
106
|
+
if (yielded instanceof Promise) {
|
|
107
|
+
let resolved;
|
|
108
|
+
try {
|
|
109
|
+
resolved = await yielded;
|
|
110
|
+
} catch (error) {
|
|
111
|
+
current = generator.throw(error);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
current = generator.next(resolved);
|
|
115
|
+
} else
|
|
116
|
+
current = generator.next(yielded);
|
|
117
|
+
}
|
|
118
|
+
return current.value;
|
|
119
|
+
}
|
|
120
|
+
export async function failAsyncActivity(internals, token, error, feedOperationResult, finalizeTimeline) {
|
|
121
|
+
const message = error instanceof Error ? error.message : String(error), errorName = error instanceof Error ? error.name : void 0;
|
|
122
|
+
assertPayloadWithinLimit({ message, name: errorName }, internals.options.payloadSizePolicy.maxBytes, "activity result");
|
|
123
|
+
const pending = await consumePendingAsyncActivity(internals, token);
|
|
124
|
+
finalizeTimeline(pending.workflowId, "failed", message);
|
|
125
|
+
feedOperationResult(pending.workflowId, {
|
|
126
|
+
status: "failed",
|
|
127
|
+
error: message,
|
|
128
|
+
...error instanceof Error ? { errorName: error.name } : {},
|
|
129
|
+
failureCategory: "application"
|
|
130
|
+
}, { value: error });
|
|
131
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { BatchOperation } from '../../storage/interface.ts';
|
|
2
|
+
import type { BulkTagResult, ListFilter, SearchAttributeValue, WorkflowState, WorkflowStatus } from '../types.ts';
|
|
3
|
+
import type { EngineInternals } from './internals.ts';
|
|
4
|
+
type WorkflowStateUpdateOptions = {
|
|
5
|
+
allowedStatuses?: readonly WorkflowStatus[];
|
|
6
|
+
buildAdditionalOperations?: (previousState: WorkflowState, updatedAt: number) => BatchOperation[];
|
|
7
|
+
};
|
|
8
|
+
type WorkflowStateUpdateResult = {
|
|
9
|
+
previousState: WorkflowState;
|
|
10
|
+
updatedAt: number;
|
|
11
|
+
};
|
|
12
|
+
/** Delete a workflow's stored search attributes and their secondary index entries. */
|
|
13
|
+
export declare function cleanupAttributeIndex(internals: EngineInternals, workflowId: string, currentAttributes?: Record<string, SearchAttributeValue>): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Keep engine-managed terminal attributes queryable after the broader
|
|
16
|
+
* attribute cleanup removes user-defined search attributes.
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildRetainedTerminalSearchAttributes(currentAttributes: Record<string, SearchAttributeValue>, additionalAttributes?: Record<string, SearchAttributeValue>): Record<string, SearchAttributeValue>;
|
|
19
|
+
/** Write retained terminal search attributes and their index entries. */
|
|
20
|
+
export declare function writeRetainedTerminalSearchAttributes(internals: EngineInternals, workflowId: string, attributes: Record<string, SearchAttributeValue>): Promise<void>;
|
|
21
|
+
/** Build secondary-index updates for terminal workflow state transitions. */
|
|
22
|
+
export declare function buildTerminalWorkflowIndexOperations(previousState: WorkflowState, nextState: WorkflowState): BatchOperation[];
|
|
23
|
+
/** Apply a serialized workflow-state update and return the previous state metadata. */
|
|
24
|
+
export declare function updateWorkflowState(internals: EngineInternals, workflowId: string, updates: Partial<WorkflowState>, options?: WorkflowStateUpdateOptions): Promise<WorkflowStateUpdateResult | null>;
|
|
25
|
+
/** Add or remove tags for a single workflow under the serialized state-write lock. */
|
|
26
|
+
export declare function mutateWorkflowTags(internals: EngineInternals, workflowId: string, tags: string[], mode: 'add' | 'remove'): Promise<boolean>;
|
|
27
|
+
/** Add or remove tags for every workflow selected by a scoped bulk filter. */
|
|
28
|
+
export declare function bulkMutateWorkflowTags(internals: EngineInternals, filter: ListFilter, tags: string[], mode: 'add' | 'remove', workflowIds?: readonly string[]): Promise<BulkTagResult>;
|
|
29
|
+
/** Validate that all attribute values in a record fit within the storage key size limit. */
|
|
30
|
+
export declare function validateAttributeValueSizes(attributes: Record<string, SearchAttributeValue>): void;
|
|
31
|
+
export {};
|