@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,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test-oriented Engine subclass with virtual time control and activity mocking.
|
|
3
|
+
*
|
|
4
|
+
* Wraps Engine with a MemoryStorage, TimeControl, and ActivityMockRegistry
|
|
5
|
+
* so tests can advance time deterministically and substitute activity
|
|
6
|
+
* implementations without touching real infrastructure.
|
|
7
|
+
*
|
|
8
|
+
* @module testing/test-engine
|
|
9
|
+
*/
|
|
10
|
+
import { Engine } from '../core/engine.ts';
|
|
11
|
+
import type { Duration } from '../core/types.ts';
|
|
12
|
+
import { MemoryStorage } from '../storage/memory.ts';
|
|
13
|
+
import type { ChaosScenario, FailureCategory } from './chaos.ts';
|
|
14
|
+
import type { MockHandle } from './mocks.ts';
|
|
15
|
+
import { ActivityMockRegistry } from './mocks.ts';
|
|
16
|
+
/**
|
|
17
|
+
* Options for {@link TestEngine.runN}.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { TestEngine, type RunNOptions } from '@lostgradient/weft/testing';
|
|
22
|
+
*
|
|
23
|
+
* const options: RunNOptions = {
|
|
24
|
+
* runs: 50,
|
|
25
|
+
* chaos: { faultRate: 0.2, faults: ['transient'], seed: 7 },
|
|
26
|
+
* };
|
|
27
|
+
* const engine = new TestEngine();
|
|
28
|
+
* // const result = await engine.runN('my-workflow', {}, options);
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export interface RunNOptions {
|
|
32
|
+
/** Number of independent runs to execute. */
|
|
33
|
+
runs: number;
|
|
34
|
+
/** Optional chaos scenario to apply across all runs. */
|
|
35
|
+
chaos?: ChaosScenario;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Aggregate reliability metrics returned by {@link TestEngine.runN}.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* import { workflow } from '@lostgradient/weft';
|
|
43
|
+
* import { TestEngine, type RunNResult } from '@lostgradient/weft/testing';
|
|
44
|
+
*
|
|
45
|
+
* const ping = workflow({ name: 'ping' }).execute(async function* () { return 'pong'; });
|
|
46
|
+
* const engine = new TestEngine();
|
|
47
|
+
* engine.register(ping);
|
|
48
|
+
* const result: RunNResult = await engine.runN('ping', null, { runs: 10 });
|
|
49
|
+
* console.log(result.passRate); // 1 (all passed)
|
|
50
|
+
* console.log(result.consistency); // 1 (all identical)
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export interface RunNResult {
|
|
54
|
+
/** Fraction of runs [0, 1] that completed successfully. */
|
|
55
|
+
passRate: number;
|
|
56
|
+
/**
|
|
57
|
+
* Fraction of successful runs [0, 1] that returned the same output as the
|
|
58
|
+
* first successful run. `1.0` means all successes were identical.
|
|
59
|
+
* `NaN` if there were no successful runs.
|
|
60
|
+
*/
|
|
61
|
+
consistency: number;
|
|
62
|
+
/** Count of failures bucketed by failure category. */
|
|
63
|
+
categories: Record<FailureCategory, number>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Test-oriented {@link Engine} subclass with virtual time control and
|
|
67
|
+
* activity mocking for deterministic, fast workflow tests.
|
|
68
|
+
*
|
|
69
|
+
* Wraps the engine with a {@link MemoryStorage}, a {@link TimeControl}
|
|
70
|
+
* instance, and an {@link ActivityMockRegistry}. Use `engine.mock(activityFn,
|
|
71
|
+
* impl)` to replace real activities with stubs, and
|
|
72
|
+
* `await engine.advanceTime('5m')` to advance virtual time without waiting on
|
|
73
|
+
* real timers.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts
|
|
77
|
+
* import { workflow, type WorkflowContext } from '@lostgradient/weft';
|
|
78
|
+
* import { TestEngine } from '@lostgradient/weft/testing';
|
|
79
|
+
*
|
|
80
|
+
* const engine = new TestEngine();
|
|
81
|
+
*
|
|
82
|
+
* async function fetchPrice(ticker: unknown): Promise<number> {
|
|
83
|
+
* return 0; // real implementation
|
|
84
|
+
* }
|
|
85
|
+
*
|
|
86
|
+
* const mock = engine.mock(fetchPrice, async (_ticker: unknown) => 42);
|
|
87
|
+
* const priceCheck = workflow({ name: 'price-check' }).execute(
|
|
88
|
+
* async function* (_ctx: WorkflowContext, _input: unknown) {
|
|
89
|
+
* return 42; // simplified test example
|
|
90
|
+
* },
|
|
91
|
+
* );
|
|
92
|
+
* engine.register(priceCheck);
|
|
93
|
+
*
|
|
94
|
+
* const handle = await engine.start('price-check', 'ACME');
|
|
95
|
+
* console.log(await handle.result()); // 42
|
|
96
|
+
* console.log(mock.callCount); // 0
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare class TestEngine extends Engine {
|
|
100
|
+
#private;
|
|
101
|
+
constructor(options?: {
|
|
102
|
+
startTime?: number;
|
|
103
|
+
});
|
|
104
|
+
/**
|
|
105
|
+
* Advance virtual time by the given duration. Fires any scheduler
|
|
106
|
+
* timers that fall within the advanced window.
|
|
107
|
+
*/
|
|
108
|
+
advanceTime(duration: Duration): Promise<void>;
|
|
109
|
+
/** Current virtual time in milliseconds since epoch. */
|
|
110
|
+
get now(): number;
|
|
111
|
+
/**
|
|
112
|
+
* Register a mock implementation for an activity function.
|
|
113
|
+
* When the engine encounters this activity, it will call the mock instead.
|
|
114
|
+
*/
|
|
115
|
+
mock<TResult>(activity: () => Promise<TResult> | TResult, implementation: () => TResult | Promise<TResult>): MockHandle<void, TResult>;
|
|
116
|
+
mock<TInput, TResult>(activity: (input: TInput) => Promise<TResult> | TResult, implementation: (input: TInput) => TResult | Promise<TResult>): MockHandle<TInput, TResult>;
|
|
117
|
+
/**
|
|
118
|
+
* Create a new TestEngine backed by the same storage, simulating
|
|
119
|
+
* engine recovery (like a process restart). The new engine sees all
|
|
120
|
+
* persisted state but has fresh in-memory structures.
|
|
121
|
+
*/
|
|
122
|
+
recover(): TestEngine;
|
|
123
|
+
/** Direct access to the underlying MemoryStorage for assertions. */
|
|
124
|
+
get storage(): MemoryStorage;
|
|
125
|
+
/** Direct access to mock registry. */
|
|
126
|
+
get mocks(): ActivityMockRegistry;
|
|
127
|
+
/**
|
|
128
|
+
* Run the named workflow N times and return aggregate reliability metrics.
|
|
129
|
+
*
|
|
130
|
+
* Runs are serial and independent. If a `chaos` scenario is provided, each
|
|
131
|
+
* registered activity mock is temporarily wrapped with `withChaos` for the
|
|
132
|
+
* duration of that run, then restored. This ensures that the workflow
|
|
133
|
+
* functions — which close over `this` engine's mock registry — observe the
|
|
134
|
+
* chaos-injected implementations during each run.
|
|
135
|
+
*
|
|
136
|
+
* Workflow state isolation is achieved by using unique per-run workflow IDs,
|
|
137
|
+
* so previous results do not influence subsequent runs.
|
|
138
|
+
*
|
|
139
|
+
* @param type The registered workflow type name.
|
|
140
|
+
* @param input Input passed to each run.
|
|
141
|
+
* @param options `{ runs, chaos? }` — number of runs and optional scenario.
|
|
142
|
+
* @returns `{ passRate, consistency, categories }` aggregate metrics.
|
|
143
|
+
*/
|
|
144
|
+
runN(type: string, input: unknown, options: RunNOptions): Promise<RunNResult>;
|
|
145
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { Engine } from "../core/engine.js";
|
|
2
|
+
import { runtimeWorkflowEngine } from "../core/runtime-workflow-engine.js";
|
|
3
|
+
import { parseDuration } from "../core/scheduler.js";
|
|
4
|
+
import { activity as defineActivity } from "../core/types.js";
|
|
5
|
+
import { MemoryStorage } from "../storage/memory.js";
|
|
6
|
+
import { withChaos } from "./chaos.js";
|
|
7
|
+
import { yieldToPortableEventLoop } from "./event-loop.js";
|
|
8
|
+
import { ActivityMockRegistry } from "./mocks.js";
|
|
9
|
+
import { TimeControl } from "./time-control.js";
|
|
10
|
+
function activityRegistrationOptionsFromMetadata(metadata) {
|
|
11
|
+
return {
|
|
12
|
+
queue: metadata.queue,
|
|
13
|
+
...metadata.description === void 0 ? {} : { description: metadata.description },
|
|
14
|
+
...metadata.tags === void 0 ? {} : { tags: [...metadata.tags] },
|
|
15
|
+
...metadata.inputSchema === void 0 ? {} : { inputSchema: metadata.inputSchema },
|
|
16
|
+
...metadata.outputSchema === void 0 ? {} : { outputSchema: metadata.outputSchema },
|
|
17
|
+
...metadata.retry === void 0 ? {} : { retry: metadata.retry },
|
|
18
|
+
...metadata.timeout === void 0 ? {} : { timeout: metadata.timeout },
|
|
19
|
+
...metadata.idempotent === void 0 ? {} : { idempotent: metadata.idempotent }
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export class TestEngine extends Engine {
|
|
24
|
+
#timeControl;
|
|
25
|
+
#mocks;
|
|
26
|
+
#memoryStorage;
|
|
27
|
+
constructor(options) {
|
|
28
|
+
const storage = new MemoryStorage, timeControl = new TimeControl(options?.startTime);
|
|
29
|
+
super({
|
|
30
|
+
storage,
|
|
31
|
+
getNow: () => timeControl.now
|
|
32
|
+
});
|
|
33
|
+
this.#timeControl = timeControl;
|
|
34
|
+
this.#mocks = new ActivityMockRegistry;
|
|
35
|
+
this.#memoryStorage = storage;
|
|
36
|
+
}
|
|
37
|
+
async advanceTime(duration) {
|
|
38
|
+
const milliseconds = parseDuration(duration), target = this.#timeControl.now + milliseconds;
|
|
39
|
+
await this.#timeControl.advance(duration);
|
|
40
|
+
await yieldToPortableEventLoop();
|
|
41
|
+
for (let i = 0;i < 4; i++)
|
|
42
|
+
await Promise.resolve();
|
|
43
|
+
await this.scheduler.tick(target);
|
|
44
|
+
for (let i = 0;i < 3; i++)
|
|
45
|
+
await Promise.resolve();
|
|
46
|
+
for (let i = 0;i < 3; i++)
|
|
47
|
+
await yieldToPortableEventLoop();
|
|
48
|
+
}
|
|
49
|
+
get now() {
|
|
50
|
+
return this.#timeControl.now;
|
|
51
|
+
}
|
|
52
|
+
mock(activity, implementation) {
|
|
53
|
+
const activityName = activity.name || "anonymous";
|
|
54
|
+
if (this.#mocks.hasRestoreHook(activity))
|
|
55
|
+
return this.#mocks.mock(activity, implementation);
|
|
56
|
+
const previousRegistration = this.#captureActivityRegistration(activityName), handle = this.#mocks.mock(activity, implementation), mockedActivity = defineActivity({
|
|
57
|
+
name: activityName,
|
|
58
|
+
execute: async (input) => {
|
|
59
|
+
const mocked = this.#mocks.get(activity);
|
|
60
|
+
if (mocked)
|
|
61
|
+
return await mocked.implementation(input);
|
|
62
|
+
return await activity(input);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
this.register(mockedActivity);
|
|
66
|
+
this.#mocks.onRestore(activity, () => this.#restoreActivityRegistration(activityName, previousRegistration));
|
|
67
|
+
return handle;
|
|
68
|
+
}
|
|
69
|
+
#restoreActivityRegistration(activityName, previousRegistration) {
|
|
70
|
+
if (previousRegistration)
|
|
71
|
+
this.registerActivityFunction(activityName, previousRegistration.fn, previousRegistration.options);
|
|
72
|
+
else
|
|
73
|
+
this.unregisterRegisteredActivity(activityName);
|
|
74
|
+
}
|
|
75
|
+
#captureActivityRegistration(activityName) {
|
|
76
|
+
const fn = this.resolveRegisteredActivity(activityName), metadata = this.getActivityDefinition(activityName);
|
|
77
|
+
if (!fn || !metadata)
|
|
78
|
+
return;
|
|
79
|
+
return {
|
|
80
|
+
fn,
|
|
81
|
+
options: activityRegistrationOptionsFromMetadata(metadata)
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
recover() {
|
|
85
|
+
const recovered = new TestEngine({ startTime: this.#timeControl.now }), snapshot = this.#memoryStorage.snapshot();
|
|
86
|
+
for (const [key, value] of snapshot)
|
|
87
|
+
recovered.#memoryStorage.put(key, value);
|
|
88
|
+
return recovered;
|
|
89
|
+
}
|
|
90
|
+
get storage() {
|
|
91
|
+
return this.#memoryStorage;
|
|
92
|
+
}
|
|
93
|
+
get mocks() {
|
|
94
|
+
return this.#mocks;
|
|
95
|
+
}
|
|
96
|
+
async runN(type, input, options) {
|
|
97
|
+
const { runs, chaos } = options;
|
|
98
|
+
let passes = 0;
|
|
99
|
+
const successOutputs = [], categories = {
|
|
100
|
+
application: 0,
|
|
101
|
+
timeout: 0,
|
|
102
|
+
cancellation: 0,
|
|
103
|
+
resource: 0,
|
|
104
|
+
system: 0
|
|
105
|
+
};
|
|
106
|
+
for (let i = 0;i < runs; i++) {
|
|
107
|
+
const saved = wrapMocksWithChaos(this.#mocks, chaos, i), runId = `runN-${type}-${i}-${Date.now()}`;
|
|
108
|
+
try {
|
|
109
|
+
const output = await (await runtimeWorkflowEngine(this).start(type, input, { id: runId })).result();
|
|
110
|
+
passes++;
|
|
111
|
+
successOutputs.push(output);
|
|
112
|
+
} catch {
|
|
113
|
+
const category = (await this.get(runId))?.failureCategory ?? "system";
|
|
114
|
+
categories[category]++;
|
|
115
|
+
} finally {
|
|
116
|
+
restoreMocks(this.#mocks, saved);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const passRate = runs > 0 ? passes / runs : 0, consistency = computeConsistency(successOutputs);
|
|
120
|
+
return { passRate, consistency, categories };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
function wrapMocksWithChaos(registry, chaos, runIndex) {
|
|
124
|
+
const saved = new Map;
|
|
125
|
+
if (!chaos)
|
|
126
|
+
return saved;
|
|
127
|
+
for (const [activity, mocked] of registry.entries()) {
|
|
128
|
+
const original = mocked.handle.currentImplementation;
|
|
129
|
+
saved.set(activity, original);
|
|
130
|
+
const perRunChaos = chaos.seed !== void 0 ? { ...chaos, seed: chaos.seed + runIndex } : chaos, chaosWrapped = withChaos((activityInput) => original(activityInput), perRunChaos);
|
|
131
|
+
mocked.handle.mockImplementation((activityInput) => chaosWrapped(activityInput));
|
|
132
|
+
}
|
|
133
|
+
return saved;
|
|
134
|
+
}
|
|
135
|
+
function restoreMocks(registry, saved) {
|
|
136
|
+
for (const [activity, mocked] of registry.entries()) {
|
|
137
|
+
const original = saved.get(activity);
|
|
138
|
+
if (original !== void 0)
|
|
139
|
+
mocked.handle.mockImplementation(original);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function computeConsistency(outputs) {
|
|
143
|
+
if (outputs.length === 0)
|
|
144
|
+
return NaN;
|
|
145
|
+
const firstOutput = JSON.stringify(outputs[0]);
|
|
146
|
+
return outputs.filter((out) => JSON.stringify(out) === firstOutput).length / outputs.length;
|
|
147
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic virtual clock for testing durable workflows.
|
|
3
|
+
*
|
|
4
|
+
* Does NOT monkey-patch global timers. Instead, provides an explicit
|
|
5
|
+
* `now` property and a `schedule` method for registering timer callbacks
|
|
6
|
+
* that fire when virtual time is advanced past their target.
|
|
7
|
+
*
|
|
8
|
+
* @module testing/time-control
|
|
9
|
+
*/
|
|
10
|
+
import type { Duration } from '../core/types';
|
|
11
|
+
/**
|
|
12
|
+
* Deterministic virtual clock for testing durable workflows that depend on
|
|
13
|
+
* time-based behaviour (timers, delays, scheduling).
|
|
14
|
+
*
|
|
15
|
+
* Does NOT monkey-patch global timers. Instead, provides an explicit `now`
|
|
16
|
+
* property and an `advance` method that fires registered callbacks in
|
|
17
|
+
* chronological order as virtual time moves forward. Use this inside a
|
|
18
|
+
* {@link TestEngine} to write fully deterministic timer tests.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { TimeControl } from '@lostgradient/weft/testing';
|
|
23
|
+
*
|
|
24
|
+
* const clock = new TimeControl(0);
|
|
25
|
+
* let fired = false;
|
|
26
|
+
*
|
|
27
|
+
* clock.schedule(5_000, () => {
|
|
28
|
+
* fired = true;
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* await clock.advance('5s');
|
|
32
|
+
* console.log(fired); // true
|
|
33
|
+
* console.log(clock.now); // 5000
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare class TimeControl {
|
|
37
|
+
#private;
|
|
38
|
+
constructor(startTime?: number);
|
|
39
|
+
/** Current virtual time in milliseconds since epoch. */
|
|
40
|
+
get now(): number;
|
|
41
|
+
/**
|
|
42
|
+
* Advance time by duration. Fires all timers that fall within the
|
|
43
|
+
* window, in chronological order.
|
|
44
|
+
*/
|
|
45
|
+
advance(duration: Duration): Promise<void>;
|
|
46
|
+
/** Advance time to a specific timestamp. Throws if in the past. */
|
|
47
|
+
advanceTo(timestamp: number): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Schedule a timer callback at a specific virtual time.
|
|
50
|
+
* Returns a cancel function.
|
|
51
|
+
*/
|
|
52
|
+
schedule(fireAt: number, callback: () => void | Promise<void>): () => void;
|
|
53
|
+
/** Number of pending (non-cancelled, not-yet-fired) timers. */
|
|
54
|
+
get pendingTimerCount(): number;
|
|
55
|
+
/** Peek at the next timer's fire time. */
|
|
56
|
+
get nextTimerAt(): number | undefined;
|
|
57
|
+
/** Reset to initial state. */
|
|
58
|
+
reset(startTime?: number): void;
|
|
59
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { parseDuration } from "../core/scheduler.js";
|
|
2
|
+
|
|
3
|
+
export class TimeControl {
|
|
4
|
+
#currentTime;
|
|
5
|
+
#timers;
|
|
6
|
+
#nextId;
|
|
7
|
+
constructor(startTime) {
|
|
8
|
+
this.#currentTime = startTime ?? Date.now();
|
|
9
|
+
this.#timers = [];
|
|
10
|
+
this.#nextId = 1;
|
|
11
|
+
}
|
|
12
|
+
get now() {
|
|
13
|
+
return this.#currentTime;
|
|
14
|
+
}
|
|
15
|
+
async advance(duration) {
|
|
16
|
+
const target = this.#currentTime + parseDuration(duration);
|
|
17
|
+
await this.#fireTimersUpTo(target);
|
|
18
|
+
this.#currentTime = target;
|
|
19
|
+
}
|
|
20
|
+
async advanceTo(timestamp) {
|
|
21
|
+
if (timestamp < this.#currentTime)
|
|
22
|
+
throw Error(`Cannot advance to ${timestamp}: current time is already ${this.#currentTime}`);
|
|
23
|
+
await this.#fireTimersUpTo(timestamp);
|
|
24
|
+
this.#currentTime = timestamp;
|
|
25
|
+
}
|
|
26
|
+
schedule(fireAt, callback) {
|
|
27
|
+
const timer = {
|
|
28
|
+
fireAt,
|
|
29
|
+
callback,
|
|
30
|
+
id: this.#nextId++,
|
|
31
|
+
cancelled: !1
|
|
32
|
+
};
|
|
33
|
+
this.#timers.push(timer);
|
|
34
|
+
return () => {
|
|
35
|
+
timer.cancelled = !0;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
get pendingTimerCount() {
|
|
39
|
+
return this.#timers.filter((timer) => !timer.cancelled).length;
|
|
40
|
+
}
|
|
41
|
+
get nextTimerAt() {
|
|
42
|
+
return this.#timers.filter((timer) => !timer.cancelled).toSorted((a, b) => a.fireAt - b.fireAt)[0]?.fireAt;
|
|
43
|
+
}
|
|
44
|
+
reset(startTime) {
|
|
45
|
+
this.#currentTime = startTime ?? Date.now();
|
|
46
|
+
this.#timers = [];
|
|
47
|
+
this.#nextId = 1;
|
|
48
|
+
}
|
|
49
|
+
async#fireTimersUpTo(target) {
|
|
50
|
+
for (;; ) {
|
|
51
|
+
let earliest, earliestIndex = -1;
|
|
52
|
+
for (let i = 0;i < this.#timers.length; i++) {
|
|
53
|
+
const timer = this.#timers[i];
|
|
54
|
+
if (timer.cancelled || timer.fireAt > target)
|
|
55
|
+
continue;
|
|
56
|
+
if (earliest === void 0 || timer.fireAt < earliest.fireAt) {
|
|
57
|
+
earliest = timer;
|
|
58
|
+
earliestIndex = i;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (earliest === void 0)
|
|
62
|
+
break;
|
|
63
|
+
this.#timers.splice(earliestIndex, 1);
|
|
64
|
+
this.#currentTime = earliest.fireAt;
|
|
65
|
+
await earliest.callback();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Current Weft package version. Useful for diagnostics, telemetry, discovery
|
|
3
|
+
* documents, and verifying which build is running.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* import { VERSION } from '@lostgradient/weft';
|
|
8
|
+
*
|
|
9
|
+
* console.log(`Running Weft ${VERSION}`);
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare const VERSION = "0.2.0";
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const VERSION = "0.2.0";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type RemoteWorkerJsonValue } from './protocol.ts';
|
|
2
|
+
import { type RemoteWorkerActivityFunction, type RemoteWorkerWorkflowDefinition } from './workflow-activity-binding.ts';
|
|
3
|
+
/**
|
|
4
|
+
* The subset of worker options that determines the advertised activity table.
|
|
5
|
+
*
|
|
6
|
+
* `workflows` is required on the public {@link RemoteWorkerOptions}. It stays
|
|
7
|
+
* optional here so {@link resolveActivityTable} can defend against untyped or
|
|
8
|
+
* JavaScript callers that omit it and throw a clear construction error rather
|
|
9
|
+
* than reading `undefined`. This optionality must not leak into the public
|
|
10
|
+
* constructor type.
|
|
11
|
+
*/
|
|
12
|
+
export type ActivityTableSource = {
|
|
13
|
+
workflows?: Record<string, RemoteWorkerWorkflowDefinition>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Coerce an activity's return value into a JSON value safe to send over the
|
|
17
|
+
* wire. `undefined`, non-serializable values, and anything that does not round
|
|
18
|
+
* -trip through JSON collapse to `null`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function normalizeWorkerJsonValue(value: unknown): RemoteWorkerJsonValue;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the activity table the worker will advertise and dispatch against.
|
|
23
|
+
*
|
|
24
|
+
* Centralises the precondition checks so name-grammar violations and
|
|
25
|
+
* key/name mismatches fail fast at construction time, before any WebSocket
|
|
26
|
+
* connection is opened. `workflows` is required.
|
|
27
|
+
*
|
|
28
|
+
* The removed `activities` alias is rejected actively rather than ignored: an
|
|
29
|
+
* untyped or JavaScript caller that still passes it (especially alongside an
|
|
30
|
+
* empty `workflows: {}`) would otherwise build a worker that silently drops part
|
|
31
|
+
* of its configuration, so we fail loudly instead.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveActivityTable(options: ActivityTableSource): Record<string, RemoteWorkerActivityFunction>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isRemoteWorkerJsonValue } from "./protocol.js";
|
|
2
|
+
import {
|
|
3
|
+
buildQualifiedActivityTable
|
|
4
|
+
} from "./workflow-activity-binding.js";
|
|
5
|
+
export function normalizeWorkerJsonValue(value) {
|
|
6
|
+
if (value === void 0)
|
|
7
|
+
return null;
|
|
8
|
+
const encoded = JSON.stringify(value);
|
|
9
|
+
if (encoded === void 0)
|
|
10
|
+
return null;
|
|
11
|
+
const parsed = JSON.parse(encoded);
|
|
12
|
+
return isRemoteWorkerJsonValue(parsed) ? parsed : null;
|
|
13
|
+
}
|
|
14
|
+
export function resolveActivityTable(options) {
|
|
15
|
+
if (Object.prototype.hasOwnProperty.call(options, "activities"))
|
|
16
|
+
throw Error("RemoteWorker no longer accepts `activities`; declare your activities under `workflows` instead.");
|
|
17
|
+
if (options.workflows === void 0 || options.workflows === null)
|
|
18
|
+
throw Error("RemoteWorker requires `workflows` \u2014 a map of workflow type \u2192 { name, activities }.");
|
|
19
|
+
return buildQualifiedActivityTable(options.workflows);
|
|
20
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utility for executing activities through an optional interceptor chain.
|
|
3
|
+
* Used by both RemoteWorker (WebSocket) and LongPollWorker (HTTP).
|
|
4
|
+
*/
|
|
5
|
+
import type { ActivityInterceptor } from '../core/interceptor.ts';
|
|
6
|
+
import { composeActivityInterceptors } from '../core/interceptor.ts';
|
|
7
|
+
export interface TaskInfo {
|
|
8
|
+
activityName: string;
|
|
9
|
+
operationId: string;
|
|
10
|
+
attempt?: number;
|
|
11
|
+
input: unknown;
|
|
12
|
+
headers?: Record<string, string>;
|
|
13
|
+
}
|
|
14
|
+
export interface ComposedInterceptor {
|
|
15
|
+
execute: ReturnType<typeof composeActivityInterceptors>['execute'];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Pre-compose interceptors once (at construction time) so the chain
|
|
19
|
+
* is not rebuilt on every task execution.
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildComposedInterceptor(interceptors: ActivityInterceptor[] | undefined): ComposedInterceptor | null;
|
|
22
|
+
/**
|
|
23
|
+
* Execute an activity function, optionally wrapped by a pre-composed interceptor chain.
|
|
24
|
+
* Provides a consistent AbortSignal and headers Map to the interception context.
|
|
25
|
+
*/
|
|
26
|
+
export declare function executeWithInterceptors(activityFunction: (input: unknown, context?: {
|
|
27
|
+
signal: AbortSignal;
|
|
28
|
+
}) => Promise<unknown>, task: TaskInfo, composed: ComposedInterceptor | null, signal?: AbortSignal): Promise<unknown>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { composeActivityInterceptors } from "../core/interceptor.js";
|
|
2
|
+
export function buildComposedInterceptor(interceptors) {
|
|
3
|
+
if (!interceptors || interceptors.length === 0)
|
|
4
|
+
return null;
|
|
5
|
+
return composeActivityInterceptors(interceptors);
|
|
6
|
+
}
|
|
7
|
+
export async function executeWithInterceptors(activityFunction, task, composed, signal) {
|
|
8
|
+
if (!composed)
|
|
9
|
+
return activityFunction(task.input, signal ? { signal } : void 0);
|
|
10
|
+
const headers = new Map(Object.entries(task.headers ?? {}));
|
|
11
|
+
return composed.execute({
|
|
12
|
+
activityName: task.activityName,
|
|
13
|
+
operationId: task.operationId,
|
|
14
|
+
attempt: task.attempt ?? 1,
|
|
15
|
+
input: task.input,
|
|
16
|
+
headers,
|
|
17
|
+
...signal && { signal }
|
|
18
|
+
}, async (interception) => {
|
|
19
|
+
return activityFunction(interception.input, signal ? { signal } : void 0);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sends periodic keepalive heartbeats from a remote worker to the server to
|
|
3
|
+
* extend the task visibility timeout while activity execution is in progress.
|
|
4
|
+
*
|
|
5
|
+
* Construct with a `sendHeartbeat` callback (typically the worker's WebSocket
|
|
6
|
+
* send function) and an optional interval in milliseconds (default: 10 000).
|
|
7
|
+
* Call `start()` when a task is acquired and `stop()` when it completes.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { HeartbeatManager } from '@lostgradient/weft';
|
|
12
|
+
*
|
|
13
|
+
* let heartbeatFn = (details?: unknown) => {
|
|
14
|
+
* console.log('heartbeat', details);
|
|
15
|
+
* };
|
|
16
|
+
*
|
|
17
|
+
* const manager = new HeartbeatManager(heartbeatFn, 5_000);
|
|
18
|
+
* manager.start();
|
|
19
|
+
* // ... execute long-running activity ...
|
|
20
|
+
* manager.beat({ progress: 0.5 }); // one-off heartbeat with details
|
|
21
|
+
* manager.stop();
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class HeartbeatManager {
|
|
25
|
+
#private;
|
|
26
|
+
constructor(sendHeartbeat: (details?: unknown) => void, intervalMs?: number);
|
|
27
|
+
/** Start sending periodic heartbeats. */
|
|
28
|
+
start(): void;
|
|
29
|
+
/** Stop sending heartbeats. */
|
|
30
|
+
stop(): void;
|
|
31
|
+
/** Send a one-off heartbeat with optional details. */
|
|
32
|
+
beat(details?: unknown): void;
|
|
33
|
+
get isRunning(): boolean;
|
|
34
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const DEFAULT_INTERVAL_MS = 1e4;
|
|
2
|
+
|
|
3
|
+
export class HeartbeatManager {
|
|
4
|
+
#interval;
|
|
5
|
+
#sendHeartbeat;
|
|
6
|
+
#intervalMs;
|
|
7
|
+
constructor(sendHeartbeat, intervalMs) {
|
|
8
|
+
this.#sendHeartbeat = sendHeartbeat;
|
|
9
|
+
this.#intervalMs = intervalMs ?? DEFAULT_INTERVAL_MS;
|
|
10
|
+
this.#interval = null;
|
|
11
|
+
}
|
|
12
|
+
start() {
|
|
13
|
+
if (this.#interval !== null)
|
|
14
|
+
return;
|
|
15
|
+
this.#interval = setInterval(() => {
|
|
16
|
+
this.#sendHeartbeat();
|
|
17
|
+
}, this.#intervalMs);
|
|
18
|
+
}
|
|
19
|
+
stop() {
|
|
20
|
+
if (this.#interval !== null) {
|
|
21
|
+
clearInterval(this.#interval);
|
|
22
|
+
this.#interval = null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
beat(details) {
|
|
26
|
+
this.#sendHeartbeat(details);
|
|
27
|
+
}
|
|
28
|
+
get isRunning() {
|
|
29
|
+
return this.#interval !== null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type InternalRemoteWorkerOptions } from './options.ts';
|
|
2
|
+
export type { RemoteWorkerOptions } from './options.ts';
|
|
3
|
+
export { isOutboxFull, MAX_BUFFERED_TASK_RESULTS } from './task-result-outbox.ts';
|
|
4
|
+
export { HeartbeatManager } from './heartbeat.ts';
|
|
5
|
+
export { LongPollWorker } from './long-poll.ts';
|
|
6
|
+
export type { LongPollWorkerOptions } from './long-poll.ts';
|
|
7
|
+
export { WorkerRegistry } from './registry.ts';
|
|
8
|
+
export type { InFlightTask, RoutingOptions, WorkerInfo } from './registry.ts';
|
|
9
|
+
export type { RemoteActivityContext } from './remote-activity-context.ts';
|
|
10
|
+
export { buildQualifiedActivityTable, type RemoteWorkerActivityFunction, type RemoteWorkerActivityImplementation, type RemoteWorkerWorkflowDefinition, } from './workflow-activity-binding.ts';
|
|
11
|
+
/**
|
|
12
|
+
* WebSocket-based remote worker that connects to the Weft server and executes
|
|
13
|
+
* activities on behalf of the engine.
|
|
14
|
+
*
|
|
15
|
+
* Construct with the server URL, a map of activity implementations, and optional
|
|
16
|
+
* concurrency and queue settings. Call `start()` to open the WebSocket
|
|
17
|
+
* connection and begin processing tasks. Dispose the instance (or call
|
|
18
|
+
* `[Symbol.dispose]()`) to close the connection.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { RemoteWorker } from '@lostgradient/weft';
|
|
23
|
+
*
|
|
24
|
+
* using worker = new RemoteWorker({
|
|
25
|
+
* serverUrl: 'ws://localhost:3000',
|
|
26
|
+
* workflows: {
|
|
27
|
+
* notifications: {
|
|
28
|
+
* name: 'notifications',
|
|
29
|
+
* activities: {
|
|
30
|
+
* sendEmail: async (input: unknown) => {
|
|
31
|
+
* console.log('sending', input);
|
|
32
|
+
* return 'sent';
|
|
33
|
+
* },
|
|
34
|
+
* },
|
|
35
|
+
* },
|
|
36
|
+
* },
|
|
37
|
+
* concurrency: 5,
|
|
38
|
+
* queue: 'email',
|
|
39
|
+
* });
|
|
40
|
+
* await worker.connect();
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare class RemoteWorker implements Disposable {
|
|
44
|
+
#private;
|
|
45
|
+
constructor(options: InternalRemoteWorkerOptions);
|
|
46
|
+
/** Connect to the server and start processing tasks. */
|
|
47
|
+
connect(): Promise<void>;
|
|
48
|
+
/** Gracefully disconnect: finish in-flight, then close. */
|
|
49
|
+
disconnect(): Promise<void>;
|
|
50
|
+
/** Get the number of in-flight tasks. */
|
|
51
|
+
get inFlight(): number;
|
|
52
|
+
/** Whether the worker is connected. */
|
|
53
|
+
get connected(): boolean;
|
|
54
|
+
/** Whether the worker is in the process of shutting down. */
|
|
55
|
+
get shuttingDown(): boolean;
|
|
56
|
+
[Symbol.dispose](): void;
|
|
57
|
+
}
|