@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,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Synchronous update request/response coordination.
|
|
3
|
+
*
|
|
4
|
+
* Manages the lifecycle of workflow updates with idempotency support,
|
|
5
|
+
* timeout-based waiting, and automatic cleanup of expired responses.
|
|
6
|
+
*
|
|
7
|
+
* @module updates
|
|
8
|
+
*/
|
|
9
|
+
import type { BatchOperation, Storage } from '../storage/interface';
|
|
10
|
+
import type { WorkflowStatus } from './types';
|
|
11
|
+
import { WeftError } from './weft-error.ts';
|
|
12
|
+
export interface UpdateRequest {
|
|
13
|
+
updateId: string;
|
|
14
|
+
workflowId: string;
|
|
15
|
+
name: string;
|
|
16
|
+
payload: unknown;
|
|
17
|
+
idempotencyKey?: string | undefined;
|
|
18
|
+
createdAt: number;
|
|
19
|
+
}
|
|
20
|
+
export interface UpdateResponse {
|
|
21
|
+
updateId: string;
|
|
22
|
+
result?: unknown;
|
|
23
|
+
error?: string | undefined;
|
|
24
|
+
createdAt: number;
|
|
25
|
+
}
|
|
26
|
+
export interface UpdateRequestOptions {
|
|
27
|
+
idempotencyKey?: string;
|
|
28
|
+
timeout?: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Thrown by the engine when an update sent via `engine.update` or
|
|
32
|
+
* `handle.update` does not receive a response within the configured timeout.
|
|
33
|
+
* Read `updateId` to identify the stalled update.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { workflow, Engine, UpdateTimeoutError, update } from '@lostgradient/weft';
|
|
38
|
+
*
|
|
39
|
+
* const engine = new Engine();
|
|
40
|
+
* engine.register(
|
|
41
|
+
* workflow({ name: 'paused' }).execute(async function* () {
|
|
42
|
+
* await new Promise(() => {}); // workflow never resolves on its own
|
|
43
|
+
* }),
|
|
44
|
+
* );
|
|
45
|
+
* const handle = await engine.start('paused', null);
|
|
46
|
+
* const proceed = update<void, void>('proceed');
|
|
47
|
+
* try {
|
|
48
|
+
* await handle.update(proceed, undefined, { timeout: 100 });
|
|
49
|
+
* } catch (err) {
|
|
50
|
+
* if (err instanceof UpdateTimeoutError) {
|
|
51
|
+
* console.error('update timed out:', err.updateId);
|
|
52
|
+
* }
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare class UpdateTimeoutError extends WeftError<'UpdateTimeoutError'> {
|
|
57
|
+
readonly updateId: string;
|
|
58
|
+
constructor(updateId: string, timeout: number);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Thrown when an update is rejected by its pre-acceptance validator — before
|
|
62
|
+
* the payload is durably written or the workflow observes it. Inspect
|
|
63
|
+
* `updateName` to see which update was rejected and `issues` for the
|
|
64
|
+
* structured validation messages.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* import { workflow, Engine, UpdateValidationError, update } from '@lostgradient/weft';
|
|
69
|
+
*
|
|
70
|
+
* const setAge = update<{ age: number }, void>('setAge');
|
|
71
|
+
* const engine = new Engine();
|
|
72
|
+
* engine.register(
|
|
73
|
+
* workflow({ name: 'guarded' }).execute(async function* (ctx) {
|
|
74
|
+
* ctx.onUpdate(setAge, () => undefined, {
|
|
75
|
+
* validator: (v): unknown => {
|
|
76
|
+
* const age = (v as Record<string, unknown>)['age'];
|
|
77
|
+
* if (typeof age !== 'number' || age < 0) {
|
|
78
|
+
* return { issues: [{ message: 'age must be a non-negative number' }] };
|
|
79
|
+
* }
|
|
80
|
+
* return undefined;
|
|
81
|
+
* },
|
|
82
|
+
* });
|
|
83
|
+
* await new Promise(() => {}); // park forever
|
|
84
|
+
* }),
|
|
85
|
+
* );
|
|
86
|
+
* const handle = await engine.start('guarded', null);
|
|
87
|
+
* try {
|
|
88
|
+
* await handle.update(setAge, { age: -1 });
|
|
89
|
+
* } catch (err) {
|
|
90
|
+
* if (err instanceof UpdateValidationError) {
|
|
91
|
+
* console.error(err.issues[0]?.message); // 'age must be a non-negative number'
|
|
92
|
+
* }
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare class UpdateValidationError extends WeftError<'UpdateValidationError'> {
|
|
97
|
+
readonly updateName: string;
|
|
98
|
+
/**
|
|
99
|
+
* Structured validation issues from the pre-acceptance validator. Each issue
|
|
100
|
+
* carries a human-readable `message` and an optional RFC 6901 JSON Pointer
|
|
101
|
+
* `path` indicating which field in the update payload failed validation.
|
|
102
|
+
*/
|
|
103
|
+
readonly issues: ReadonlyArray<{
|
|
104
|
+
readonly message: string;
|
|
105
|
+
readonly path?: string;
|
|
106
|
+
}>;
|
|
107
|
+
constructor(updateName: string, issues: ReadonlyArray<{
|
|
108
|
+
readonly message: string;
|
|
109
|
+
readonly path?: string;
|
|
110
|
+
}>);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Thrown when an update is sent to a workflow that is already in a terminal
|
|
114
|
+
* state (completed, failed, cancelled, or timed-out). Check `workflowId` and
|
|
115
|
+
* `status` to understand which workflow rejected the update.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```ts
|
|
119
|
+
* import { workflow, Engine, WorkflowTerminalError, update } from '@lostgradient/weft';
|
|
120
|
+
*
|
|
121
|
+
* const engine = new Engine();
|
|
122
|
+
* engine.register(workflow({ name: 'quick' }).execute(async function* () { return 'done'; }));
|
|
123
|
+
*
|
|
124
|
+
* const handle = await engine.start('quick', null);
|
|
125
|
+
* await handle.result();
|
|
126
|
+
* const anything = update<void, void>('anything');
|
|
127
|
+
* try {
|
|
128
|
+
* await handle.update(anything);
|
|
129
|
+
* } catch (err) {
|
|
130
|
+
* if (err instanceof WorkflowTerminalError) {
|
|
131
|
+
* console.error('workflow', err.workflowId, 'is', err.status);
|
|
132
|
+
* }
|
|
133
|
+
* }
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
export declare class WorkflowTerminalError extends WeftError<'WorkflowTerminalError'> {
|
|
137
|
+
readonly workflowId: string;
|
|
138
|
+
readonly status: WorkflowStatus;
|
|
139
|
+
constructor(workflowId: string, status: WorkflowStatus);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Manages the lifecycle of synchronous workflow updates: persisting requests,
|
|
143
|
+
* checking idempotency, building response batch operations, and polling for
|
|
144
|
+
* results. Used internally by the {@link Engine}; callers interact through
|
|
145
|
+
* `engine.update` or `handle.update` rather than the coordinator directly.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```ts
|
|
149
|
+
* import { UpdateCoordinator } from '@lostgradient/weft';
|
|
150
|
+
* import { MemoryStorage } from '@lostgradient/weft/storage/memory';
|
|
151
|
+
*
|
|
152
|
+
* const storage = new MemoryStorage();
|
|
153
|
+
* const coordinator = new UpdateCoordinator(storage);
|
|
154
|
+
* const updateId = await coordinator.createRequest('wf-1', 'increment', { by: 1 });
|
|
155
|
+
* console.log(updateId); // UUID string
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export declare class UpdateCoordinator {
|
|
159
|
+
#private;
|
|
160
|
+
constructor(storage: Storage);
|
|
161
|
+
/** Create and persist an update request. Returns the update ID. */
|
|
162
|
+
createRequest(workflowId: string, name: string, payload: unknown, options?: UpdateRequestOptions): Promise<string>;
|
|
163
|
+
/** Check idempotency: if this key was already processed, return the existing response. */
|
|
164
|
+
checkIdempotency(workflowId: string, idempotencyKey: string): Promise<UpdateResponse | null>;
|
|
165
|
+
/** Get pending update requests for a workflow, sorted FIFO by creation time. */
|
|
166
|
+
getPendingUpdates(workflowId: string): Promise<UpdateRequest[]>;
|
|
167
|
+
/** Build batch operations for persisting an update response (to be included in checkpoint batch). */
|
|
168
|
+
buildResponseOperations(updateId: string, workflowId: string, result: unknown, error?: string, idempotencyKey?: string): BatchOperation[];
|
|
169
|
+
/** Delete a pending update request that will never be observed. */
|
|
170
|
+
deleteRequest(workflowId: string, updateId: string): Promise<void>;
|
|
171
|
+
/**
|
|
172
|
+
* Atomically check whether a response exists and conditionally delete the
|
|
173
|
+
* request. Returns the response if the workflow already consumed this update,
|
|
174
|
+
* or null if the request was deleted before a consumer won the race.
|
|
175
|
+
*/
|
|
176
|
+
deleteRequestIfUnconsumed(workflowId: string, updateId: string): Promise<UpdateResponse | null>;
|
|
177
|
+
/** Retrieve a stored response by update ID. */
|
|
178
|
+
getResponse(updateId: string): Promise<UpdateResponse | null>;
|
|
179
|
+
/** Wait for an update response with timeout. Uses polling. */
|
|
180
|
+
waitForResponse(updateId: string, timeout: number): Promise<UpdateResponse>;
|
|
181
|
+
/** Clean up expired responses and their orphaned idempotency mappings. */
|
|
182
|
+
cleanupExpiredResponses(ttlMs?: number): Promise<number>;
|
|
183
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { sleep } from "../runtime/portable.js";
|
|
2
|
+
import { KEYS } from "../storage/interface.js";
|
|
3
|
+
import { decode, encode } from "./codec.js";
|
|
4
|
+
import { WeftError } from "./weft-error.js";
|
|
5
|
+
|
|
6
|
+
export class UpdateTimeoutError extends WeftError {
|
|
7
|
+
updateId;
|
|
8
|
+
constructor(updateId, timeout) {
|
|
9
|
+
super("UpdateTimeoutError", `Update ${updateId} timed out after ${timeout}ms`);
|
|
10
|
+
this.updateId = updateId;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export class UpdateValidationError extends WeftError {
|
|
15
|
+
updateName;
|
|
16
|
+
issues;
|
|
17
|
+
constructor(updateName, issues) {
|
|
18
|
+
const summary = issues.map((i) => i.message).join("; ");
|
|
19
|
+
super("UpdateValidationError", `Update "${updateName}" rejected by validator: ${summary}`);
|
|
20
|
+
this.updateName = updateName;
|
|
21
|
+
this.issues = issues;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class WorkflowTerminalError extends WeftError {
|
|
26
|
+
workflowId;
|
|
27
|
+
status;
|
|
28
|
+
constructor(workflowId, status) {
|
|
29
|
+
super("WorkflowTerminalError", `Cannot send update to workflow "${workflowId}": workflow is in terminal state "${status}"`);
|
|
30
|
+
this.workflowId = workflowId;
|
|
31
|
+
this.status = status;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const POLL_INTERVAL_MS = 50, DEFAULT_CLEANUP_TTL_MS = 300000;
|
|
35
|
+
|
|
36
|
+
export class UpdateCoordinator {
|
|
37
|
+
#storage;
|
|
38
|
+
constructor(storage) {
|
|
39
|
+
this.#storage = storage;
|
|
40
|
+
}
|
|
41
|
+
async createRequest(workflowId, name, payload, options) {
|
|
42
|
+
const updateId = crypto.randomUUID(), request = {
|
|
43
|
+
updateId,
|
|
44
|
+
workflowId,
|
|
45
|
+
name,
|
|
46
|
+
payload,
|
|
47
|
+
createdAt: Date.now()
|
|
48
|
+
};
|
|
49
|
+
if (options?.idempotencyKey !== void 0)
|
|
50
|
+
request.idempotencyKey = options.idempotencyKey;
|
|
51
|
+
const key = KEYS.update(workflowId, updateId);
|
|
52
|
+
await this.#storage.put(key, encode(request));
|
|
53
|
+
return updateId;
|
|
54
|
+
}
|
|
55
|
+
async checkIdempotency(workflowId, idempotencyKey) {
|
|
56
|
+
const key = KEYS.updateIdempotency(workflowId, idempotencyKey), raw = await this.#storage.get(key);
|
|
57
|
+
if (!raw)
|
|
58
|
+
return null;
|
|
59
|
+
const mapping = decode(raw);
|
|
60
|
+
return this.getResponse(mapping.updateId);
|
|
61
|
+
}
|
|
62
|
+
async getPendingUpdates(workflowId) {
|
|
63
|
+
const prefix = KEYS.updatePrefix(workflowId), results = [];
|
|
64
|
+
for await (const [, value] of this.#storage.scan(prefix))
|
|
65
|
+
results.push(decode(value));
|
|
66
|
+
return results.toSorted((a, b) => a.createdAt - b.createdAt || (a.updateId < b.updateId ? -1 : a.updateId > b.updateId ? 1 : 0));
|
|
67
|
+
}
|
|
68
|
+
buildResponseOperations(updateId, workflowId, result, error, idempotencyKey) {
|
|
69
|
+
const response = {
|
|
70
|
+
updateId,
|
|
71
|
+
result,
|
|
72
|
+
createdAt: Date.now()
|
|
73
|
+
};
|
|
74
|
+
if (error !== void 0)
|
|
75
|
+
response.error = error;
|
|
76
|
+
const operations = [
|
|
77
|
+
{ type: "delete", key: KEYS.update(workflowId, updateId) },
|
|
78
|
+
{ type: "put", key: KEYS.updateResponse(updateId), value: encode(response) }
|
|
79
|
+
];
|
|
80
|
+
if (idempotencyKey !== void 0)
|
|
81
|
+
operations.push({
|
|
82
|
+
type: "put",
|
|
83
|
+
key: KEYS.updateIdempotency(workflowId, idempotencyKey),
|
|
84
|
+
value: encode({ updateId })
|
|
85
|
+
});
|
|
86
|
+
return operations;
|
|
87
|
+
}
|
|
88
|
+
async deleteRequest(workflowId, updateId) {
|
|
89
|
+
await this.#storage.delete(KEYS.update(workflowId, updateId));
|
|
90
|
+
}
|
|
91
|
+
async deleteRequestIfUnconsumed(workflowId, updateId) {
|
|
92
|
+
const existing = await this.getResponse(updateId);
|
|
93
|
+
if (existing !== null)
|
|
94
|
+
return existing;
|
|
95
|
+
await this.deleteRequest(workflowId, updateId);
|
|
96
|
+
return this.getResponse(updateId);
|
|
97
|
+
}
|
|
98
|
+
async getResponse(updateId) {
|
|
99
|
+
const key = KEYS.updateResponse(updateId), raw = await this.#storage.get(key);
|
|
100
|
+
if (!raw)
|
|
101
|
+
return null;
|
|
102
|
+
return decode(raw);
|
|
103
|
+
}
|
|
104
|
+
async waitForResponse(updateId, timeout) {
|
|
105
|
+
const deadline = Date.now() + timeout;
|
|
106
|
+
while (Date.now() < deadline) {
|
|
107
|
+
const response = await this.getResponse(updateId);
|
|
108
|
+
if (response)
|
|
109
|
+
return response;
|
|
110
|
+
const remaining = deadline - Date.now();
|
|
111
|
+
if (remaining <= 0)
|
|
112
|
+
break;
|
|
113
|
+
await sleep(Math.min(POLL_INTERVAL_MS, remaining));
|
|
114
|
+
}
|
|
115
|
+
throw new UpdateTimeoutError(updateId, timeout);
|
|
116
|
+
}
|
|
117
|
+
async cleanupExpiredResponses(ttlMs) {
|
|
118
|
+
const effectiveTtl = ttlMs ?? DEFAULT_CLEANUP_TTL_MS, cutoff = Date.now() - effectiveTtl, expiredResponseKeys = [], expiredUpdateIds = new Set;
|
|
119
|
+
for await (const [key, value] of this.#storage.scan("upr:")) {
|
|
120
|
+
const response = decode(value);
|
|
121
|
+
if (response.createdAt < cutoff) {
|
|
122
|
+
expiredResponseKeys.push(key);
|
|
123
|
+
expiredUpdateIds.add(response.updateId);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (expiredResponseKeys.length === 0)
|
|
127
|
+
return 0;
|
|
128
|
+
const orphanedIdempotencyKeys = [];
|
|
129
|
+
for await (const [key, value] of this.#storage.scan("upk:")) {
|
|
130
|
+
const mapping = decode(value);
|
|
131
|
+
if (expiredUpdateIds.has(mapping.updateId))
|
|
132
|
+
orphanedIdempotencyKeys.push(key);
|
|
133
|
+
}
|
|
134
|
+
const operations = [
|
|
135
|
+
...expiredResponseKeys.map((key) => ({ type: "delete", key })),
|
|
136
|
+
...orphanedIdempotencyKeys.map((key) => ({ type: "delete", key }))
|
|
137
|
+
];
|
|
138
|
+
await this.#storage.batch(operations);
|
|
139
|
+
return expiredResponseKeys.length;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow version comparison and checkpoint migration.
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for detecting version mismatches between stored
|
|
5
|
+
* and registered workflow definitions, running checkpoint migrations,
|
|
6
|
+
* and building atomic batch operations for version updates.
|
|
7
|
+
*
|
|
8
|
+
* @module versioning
|
|
9
|
+
*/
|
|
10
|
+
import type { BatchOperation } from '../storage/interface.ts';
|
|
11
|
+
import { WeftError } from './weft-error.ts';
|
|
12
|
+
import type { WorkflowVersionDiff } from './workflow-version-tuple.ts';
|
|
13
|
+
/** Default version string assigned when no version is specified. */
|
|
14
|
+
export declare const DEFAULT_WORKFLOW_VERSION = "0.0.0";
|
|
15
|
+
export type VersionCompatibility = 'compatible' | 'needs-migration' | 'incompatible';
|
|
16
|
+
/**
|
|
17
|
+
* Compare a stored workflow version with the currently registered version.
|
|
18
|
+
*
|
|
19
|
+
* - `"compatible"` — versions match; no action needed.
|
|
20
|
+
* - `"needs-migration"` — versions differ and a migration function is available.
|
|
21
|
+
* - `"incompatible"` — versions differ and no migration is available; the engine
|
|
22
|
+
* will throw a {@link VersionMismatchError} instead of resuming silently.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { checkVersionCompatibility } from '@lostgradient/weft';
|
|
27
|
+
*
|
|
28
|
+
* console.log(checkVersionCompatibility('1.0.0', '1.0.0', false)); // 'compatible'
|
|
29
|
+
* console.log(checkVersionCompatibility('1.0.0', '2.0.0', true)); // 'needs-migration'
|
|
30
|
+
* console.log(checkVersionCompatibility('1.0.0', '2.0.0', false)); // 'incompatible'
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function checkVersionCompatibility(storedVersion: string, registeredVersion: string, hasMigration: boolean): VersionCompatibility;
|
|
34
|
+
/**
|
|
35
|
+
* Run a migration function on checkpoint data, transforming it from one
|
|
36
|
+
* version to another.
|
|
37
|
+
*
|
|
38
|
+
* The caller is responsible for serializing the result back to bytes if needed.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* import { migrateCheckpoint } from '@lostgradient/weft';
|
|
43
|
+
*
|
|
44
|
+
* const oldData = { step: 0, locals: { counter: 1 }, version: '1.0.0' };
|
|
45
|
+
* const migrated = migrateCheckpoint(oldData, '1.0.0', '2.0.0', (data) => {
|
|
46
|
+
* const d = data as typeof oldData;
|
|
47
|
+
* return { ...d, locals: { ...d.locals, newField: 'default' } };
|
|
48
|
+
* });
|
|
49
|
+
* void migrated;
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function migrateCheckpoint(checkpointData: unknown, fromVersion: string, _toVersion: string, migrate: (checkpoint: unknown, fromVersion: string) => unknown): unknown;
|
|
53
|
+
/**
|
|
54
|
+
* Build batch operations that atomically update the checkpoint and workflow
|
|
55
|
+
* state after a successful migration.
|
|
56
|
+
*
|
|
57
|
+
* The returned operations are suitable for passing to `Storage.batch()`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildVersionUpdateOperations(workflowId: string, newCheckpointBytes: Uint8Array, _newVersion: string, workflowStateBytes: Uint8Array): BatchOperation[];
|
|
60
|
+
/** Description of a single field-level difference between checkpoint shapes. */
|
|
61
|
+
export type FieldDiff = {
|
|
62
|
+
field: string;
|
|
63
|
+
change: 'added';
|
|
64
|
+
newType: string;
|
|
65
|
+
} | {
|
|
66
|
+
field: string;
|
|
67
|
+
change: 'removed';
|
|
68
|
+
oldType: string;
|
|
69
|
+
} | {
|
|
70
|
+
field: string;
|
|
71
|
+
change: 'type-changed';
|
|
72
|
+
oldType: string;
|
|
73
|
+
newType: string;
|
|
74
|
+
};
|
|
75
|
+
/** Shape descriptor: maps field names to their type names (e.g., `"string"`, `"object"`). */
|
|
76
|
+
export type ShapeDescriptor = Record<string, string>;
|
|
77
|
+
/**
|
|
78
|
+
* Compare two checkpoint shape descriptors and return the field-level diffs.
|
|
79
|
+
*
|
|
80
|
+
* Returns an empty array when the shapes are identical.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* import { diffCheckpointShapes } from '@lostgradient/weft';
|
|
85
|
+
*
|
|
86
|
+
* const diffs = diffCheckpointShapes(
|
|
87
|
+
* { userId: 'string', count: 'number' },
|
|
88
|
+
* { userId: 'string', count: 'number', newField: 'boolean' },
|
|
89
|
+
* );
|
|
90
|
+
* console.log(diffs.length); // 1
|
|
91
|
+
* console.log(diffs[0]?.change); // 'added'
|
|
92
|
+
* console.log(diffs[0]?.field); // 'newField'
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function diffCheckpointShapes(oldShape: ShapeDescriptor, newShape: ShapeDescriptor): FieldDiff[];
|
|
96
|
+
/**
|
|
97
|
+
* Infer a shape descriptor from an arbitrary value by walking its top-level keys
|
|
98
|
+
* and recording the `typeof` of each value.
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```ts
|
|
102
|
+
* import { inferShape } from '@lostgradient/weft';
|
|
103
|
+
*
|
|
104
|
+
* const shape = inferShape({ userId: 'abc', count: 42, active: true });
|
|
105
|
+
* console.log(shape['userId']); // 'string'
|
|
106
|
+
* console.log(shape['count']); // 'number'
|
|
107
|
+
* console.log(shape['active']); // 'boolean'
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function inferShape(value: unknown): ShapeDescriptor;
|
|
111
|
+
/** Options for providing shape information to VersionMismatchError. */
|
|
112
|
+
export type ShapeDiffOptions = {
|
|
113
|
+
oldShape: ShapeDescriptor;
|
|
114
|
+
newShape: ShapeDescriptor;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Thrown when a workflow's stored version does not match its registered
|
|
118
|
+
* version and no migration path is available or the migration failed.
|
|
119
|
+
*
|
|
120
|
+
* When shape information is provided, the error message includes a
|
|
121
|
+
* field-level diff describing exactly which fields changed.
|
|
122
|
+
*
|
|
123
|
+
* When version tuple information is provided, the error message includes a
|
|
124
|
+
* summary of which workflow, agent, or tool versions changed.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```ts
|
|
128
|
+
* import { VersionMismatchError } from '@lostgradient/weft';
|
|
129
|
+
*
|
|
130
|
+
* try {
|
|
131
|
+
* throw new VersionMismatchError(
|
|
132
|
+
* 'wf-123',
|
|
133
|
+
* 'orderWorkflow',
|
|
134
|
+
* '1.0.0',
|
|
135
|
+
* '2.0.0',
|
|
136
|
+
* );
|
|
137
|
+
* } catch (err) {
|
|
138
|
+
* if (err instanceof VersionMismatchError) {
|
|
139
|
+
* console.log(err.storedVersion); // '1.0.0'
|
|
140
|
+
* console.log(err.registeredVersion); // '2.0.0'
|
|
141
|
+
* }
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
export declare class VersionMismatchError extends WeftError<'VersionMismatchError'> {
|
|
146
|
+
readonly workflowId: string;
|
|
147
|
+
readonly storedVersion: string;
|
|
148
|
+
readonly registeredVersion: string;
|
|
149
|
+
readonly workflowType: string;
|
|
150
|
+
readonly fieldDiffs: FieldDiff[] | undefined;
|
|
151
|
+
readonly versionDiff: WorkflowVersionDiff | undefined;
|
|
152
|
+
constructor(workflowId: string, workflowType: string, storedVersion: string, registeredVersion: string, shapeDiff?: ShapeDiffOptions, versionDiff?: WorkflowVersionDiff);
|
|
153
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { KEYS } from "../storage/interface.js";
|
|
2
|
+
import { WeftError } from "./weft-error.js";
|
|
3
|
+
import { formatWorkflowVersionDiff } from "./workflow-version-tuple.js";
|
|
4
|
+
export const DEFAULT_WORKFLOW_VERSION = "0.0.0";
|
|
5
|
+
export function checkVersionCompatibility(storedVersion, registeredVersion, hasMigration) {
|
|
6
|
+
if (storedVersion === registeredVersion)
|
|
7
|
+
return "compatible";
|
|
8
|
+
return hasMigration ? "needs-migration" : "incompatible";
|
|
9
|
+
}
|
|
10
|
+
export function migrateCheckpoint(checkpointData, fromVersion, _toVersion, migrate) {
|
|
11
|
+
return migrate(checkpointData, fromVersion);
|
|
12
|
+
}
|
|
13
|
+
export function buildVersionUpdateOperations(workflowId, newCheckpointBytes, _newVersion, workflowStateBytes) {
|
|
14
|
+
return [
|
|
15
|
+
{ type: "put", key: KEYS.checkpoint(workflowId), value: newCheckpointBytes },
|
|
16
|
+
{ type: "put", key: KEYS.workflow(workflowId), value: workflowStateBytes }
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
export function diffCheckpointShapes(oldShape, newShape) {
|
|
20
|
+
const diffs = [], allKeys = new Set([...Object.keys(oldShape), ...Object.keys(newShape)]);
|
|
21
|
+
for (const key of allKeys) {
|
|
22
|
+
const inOld = Object.hasOwn(oldShape, key), inNew = Object.hasOwn(newShape, key);
|
|
23
|
+
if (inOld && !inNew)
|
|
24
|
+
diffs.push({ field: key, change: "removed", oldType: oldShape[key] });
|
|
25
|
+
else if (!inOld && inNew)
|
|
26
|
+
diffs.push({ field: key, change: "added", newType: newShape[key] });
|
|
27
|
+
else if (inOld && inNew && oldShape[key] !== newShape[key])
|
|
28
|
+
diffs.push({
|
|
29
|
+
field: key,
|
|
30
|
+
change: "type-changed",
|
|
31
|
+
oldType: oldShape[key],
|
|
32
|
+
newType: newShape[key]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return diffs;
|
|
36
|
+
}
|
|
37
|
+
export function inferShape(value) {
|
|
38
|
+
if (value === null || typeof value !== "object" || Array.isArray(value))
|
|
39
|
+
return {};
|
|
40
|
+
const shape = {};
|
|
41
|
+
for (const [key, val] of Object.entries(value))
|
|
42
|
+
shape[key] = val === null ? "null" : Array.isArray(val) ? "array" : typeof val;
|
|
43
|
+
return shape;
|
|
44
|
+
}
|
|
45
|
+
function formatFieldDiffs(diffs) {
|
|
46
|
+
if (diffs.length === 0)
|
|
47
|
+
return "";
|
|
48
|
+
return `
|
|
49
|
+
Checkpoint shape changes:
|
|
50
|
+
${diffs.map((diff) => {
|
|
51
|
+
switch (diff.change) {
|
|
52
|
+
case "added":
|
|
53
|
+
return ` - field \`${diff.field}\` was added (type: ${diff.newType})`;
|
|
54
|
+
case "removed":
|
|
55
|
+
return ` - field \`${diff.field}\` was removed (was: ${diff.oldType})`;
|
|
56
|
+
case "type-changed":
|
|
57
|
+
return ` - field \`${diff.field}\` changed type: ${diff.oldType} \u2192 ${diff.newType}`;
|
|
58
|
+
}
|
|
59
|
+
}).join(`
|
|
60
|
+
`)}`;
|
|
61
|
+
}
|
|
62
|
+
function hasWorkflowVersionDiff(versionDiff) {
|
|
63
|
+
return versionDiff !== void 0 && (versionDiff.workflowVersion !== void 0 || versionDiff.agentVersion !== void 0 || (versionDiff.toolVersions?.length ?? 0) > 0);
|
|
64
|
+
}
|
|
65
|
+
function createVersionMismatchMessage(parameters) {
|
|
66
|
+
const { workflowId, workflowType, storedVersion, registeredVersion, fieldDiffs, versionDiff } = parameters;
|
|
67
|
+
return (storedVersion === registeredVersion && ((fieldDiffs?.length ?? 0) > 0 || hasWorkflowVersionDiff(versionDiff)) ? `Version mismatch for workflow "${workflowType}" (${workflowId}): stored version ${storedVersion} matches registered version ${registeredVersion}, but the persisted state is incompatible with the registered definition` : `Version mismatch for workflow "${workflowType}" (${workflowId}): stored version ${storedVersion} does not match registered version ${registeredVersion}`) + (fieldDiffs && fieldDiffs.length > 0 ? formatFieldDiffs(fieldDiffs) : "") + (versionDiff ? formatWorkflowVersionDiff(versionDiff) : "");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export class VersionMismatchError extends WeftError {
|
|
71
|
+
workflowId;
|
|
72
|
+
storedVersion;
|
|
73
|
+
registeredVersion;
|
|
74
|
+
workflowType;
|
|
75
|
+
fieldDiffs;
|
|
76
|
+
versionDiff;
|
|
77
|
+
constructor(workflowId, workflowType, storedVersion, registeredVersion, shapeDiff, versionDiff) {
|
|
78
|
+
const diffs = shapeDiff ? diffCheckpointShapes(shapeDiff.oldShape, shapeDiff.newShape) : void 0;
|
|
79
|
+
super("VersionMismatchError", createVersionMismatchMessage({
|
|
80
|
+
workflowId,
|
|
81
|
+
workflowType,
|
|
82
|
+
storedVersion,
|
|
83
|
+
registeredVersion,
|
|
84
|
+
fieldDiffs: diffs,
|
|
85
|
+
versionDiff
|
|
86
|
+
}));
|
|
87
|
+
this.workflowId = workflowId;
|
|
88
|
+
this.workflowType = workflowType;
|
|
89
|
+
this.storedVersion = storedVersion;
|
|
90
|
+
this.registeredVersion = registeredVersion;
|
|
91
|
+
this.fieldDiffs = diffs;
|
|
92
|
+
this.versionDiff = versionDiff;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable, machine-readable discriminant for every Weft error class that is
|
|
3
|
+
* part of the public API (re-exported from `@lostgradient/weft`). Each value equals the
|
|
4
|
+
* throwing class's name and is safe to `switch` on exhaustively. Errors not
|
|
5
|
+
* exported from `@lostgradient/weft` carry internal codes that are intentionally absent
|
|
6
|
+
* from this union and may change between releases.
|
|
7
|
+
*
|
|
8
|
+
* Prefer comparing `error.code` (or {@link isWeftErrorCode}) over `instanceof`
|
|
9
|
+
* when an error may have crossed a realm or duplicate-module boundary, where
|
|
10
|
+
* `instanceof` is unreliable.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { isWeftError, isWeftErrorCode, type WeftErrorCode } from '@lostgradient/weft';
|
|
15
|
+
*
|
|
16
|
+
* function statusFor(error: unknown): number {
|
|
17
|
+
* if (isWeftError(error) && isWeftErrorCode(error.code)) {
|
|
18
|
+
* const code: WeftErrorCode = error.code;
|
|
19
|
+
* return code === 'WorkflowNotFoundError' ? 404 : 400;
|
|
20
|
+
* }
|
|
21
|
+
* return 500;
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export type WeftErrorCode = 'WorkflowAlreadyExistsError' | 'BulkDeleteRequiresTerminalWorkflowsError' | 'BulkOperationConfirmationError' | 'WorkflowTypeNotRegisteredForRecoveryError' | 'EngineCreateNameMismatchError' | 'EngineDisposedError' | 'WorkflowNotFoundError' | 'WorkflowNotRegisteredError' | 'ActivityResolutionError' | 'PersistedDataIncompatibleError' | 'WorkflowTimeoutError' | 'HttpClientError' | 'WorkerProtocolIncompatibleError' | 'UpdateTimeoutError' | 'UpdateValidationError' | 'WorkflowTerminalError' | 'WorkflowBuilderError' | 'VersionMismatchError' | 'EffectReplayConflictError' | 'ReviewTimeoutError' | 'AtomicStateConflictError' | 'StandardSchemaValidationError' | 'ActivityReconciliationCapabilityError' | 'ActivityReconciliationConflictError' | 'ActivityReconciliationIndeterminateError' | 'AsyncActivityTokenNotFoundError' | 'PayloadSizeExceededError';
|
|
26
|
+
/**
|
|
27
|
+
* Generic abstract base for all Weft library errors. The `TCode` parameter
|
|
28
|
+
* makes each subclass's `code` its own literal type; the exported base surface
|
|
29
|
+
* stays `code: string`, so internal (non-exported) error codes never leak into
|
|
30
|
+
* the public `.d.ts`.
|
|
31
|
+
*
|
|
32
|
+
* Subclasses pass their stable code to `super(...)`; the base assigns both
|
|
33
|
+
* `this.code` and `this.name` from it, so subclasses never set `this.name`
|
|
34
|
+
* themselves. `options` forwards `cause` to the `Error` constructor.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { WeftError } from '@lostgradient/weft';
|
|
39
|
+
*
|
|
40
|
+
* function describe(error: unknown): string {
|
|
41
|
+
* return error instanceof WeftError ? `${error.code}: ${error.message}` : 'unknown';
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare abstract class WeftError<TCode extends string = string> extends Error {
|
|
46
|
+
/** Stable machine-readable discriminant; equals the subclass name. */
|
|
47
|
+
readonly code: TCode;
|
|
48
|
+
constructor(code: TCode, message: string, options?: ErrorOptions);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Same-realm narrowing: `true` when `value` is a Weft library error instance.
|
|
52
|
+
* Use this for the common case of catching any Weft error. For comparisons
|
|
53
|
+
* that may cross a realm or duplicate-module boundary, narrow on
|
|
54
|
+
* {@link isWeftErrorCode} against `error.code` instead.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* import { isWeftError } from '@lostgradient/weft';
|
|
59
|
+
*
|
|
60
|
+
* function logFrom(error: unknown): string {
|
|
61
|
+
* return isWeftError(error) ? `[${error.code}] ${error.message}` : 'non-weft error';
|
|
62
|
+
* }
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function isWeftError(value: unknown): value is WeftError;
|
|
66
|
+
/**
|
|
67
|
+
* Cross-boundary structural check: `true` when `value` is one of the public
|
|
68
|
+
* {@link WeftErrorCode} values. Pair with {@link isWeftError} to safely switch
|
|
69
|
+
* over public codes: `if (isWeftError(e) && isWeftErrorCode(e.code)) { ... }`.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* import { isWeftError, isWeftErrorCode } from '@lostgradient/weft';
|
|
74
|
+
*
|
|
75
|
+
* function isMissingWorkflow(error: unknown): boolean {
|
|
76
|
+
* return isWeftError(error) && isWeftErrorCode(error.code)
|
|
77
|
+
* ? error.code === 'WorkflowNotFoundError'
|
|
78
|
+
* : false;
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function isWeftErrorCode(value: unknown): value is WeftErrorCode;
|