@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,78 @@
|
|
|
1
|
+
import { WeftError } from './weft-error.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The kind of payload being size-checked at the codec boundary. Used in the
|
|
4
|
+
* {@link PayloadSizeExceededError} message so operators can tell which
|
|
5
|
+
* admission point rejected the value.
|
|
6
|
+
*/
|
|
7
|
+
export type PayloadKind = 'workflow input' | 'signal payload' | 'activity result';
|
|
8
|
+
/**
|
|
9
|
+
* Thrown at admission when a payload's serialized (codec-encoded) size exceeds
|
|
10
|
+
* the operator-configured {@link PayloadSizePolicy.maxBytes}. The rejection
|
|
11
|
+
* happens before any storage write, so an oversized value is never newly
|
|
12
|
+
* persisted. The measured size is the codec-encoded byte length of the bare
|
|
13
|
+
* value, before any storage-layer compression or record-envelope wrapping.
|
|
14
|
+
*
|
|
15
|
+
* This is a terminal admission failure, not a transient one: re-running the
|
|
16
|
+
* producing operation cannot make the result smaller, so it should not be
|
|
17
|
+
* retried.
|
|
18
|
+
*
|
|
19
|
+
* Its `code` (`'PayloadSizeExceededError'`) is part of the public
|
|
20
|
+
* {@link WeftErrorCode} union. Catch it with `instanceof` or by comparing
|
|
21
|
+
* `error.code === 'PayloadSizeExceededError'`.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { workflow, Engine, PayloadSizeExceededError } from '@lostgradient/weft';
|
|
26
|
+
*
|
|
27
|
+
* const engine = new Engine({ payloadSize: { maxBytes: 64 } });
|
|
28
|
+
* engine.register(workflow({ name: 'echo' }).execute(async function* (_ctx, input) { return input; }));
|
|
29
|
+
*
|
|
30
|
+
* try {
|
|
31
|
+
* await engine.start('echo', 'x'.repeat(1024));
|
|
32
|
+
* } catch (err) {
|
|
33
|
+
* if (err instanceof PayloadSizeExceededError) {
|
|
34
|
+
* console.error(`${err.payloadKind} too large: ${String(err.serializedBytes)} > ${String(err.maxBytes)}`);
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare class PayloadSizeExceededError extends WeftError<'PayloadSizeExceededError'> {
|
|
40
|
+
/** Which admission point rejected the payload. */
|
|
41
|
+
readonly payloadKind: PayloadKind;
|
|
42
|
+
/** The payload's actual serialized byte length. */
|
|
43
|
+
readonly serializedBytes: number;
|
|
44
|
+
/** The configured maximum serialized byte length. */
|
|
45
|
+
readonly maxBytes: number;
|
|
46
|
+
constructor(payloadKind: PayloadKind, serializedBytes: number, maxBytes: number);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Reject a payload whose serialized size exceeds `limit`, before it is written.
|
|
50
|
+
*
|
|
51
|
+
* Size is measured as `encode(value).byteLength` — the codec-encoded byte
|
|
52
|
+
* length of the bare value, before any storage-layer compression or
|
|
53
|
+
* record-envelope wrapping. A payload exactly at `limit` is allowed; one byte
|
|
54
|
+
* larger throws {@link PayloadSizeExceededError}. When `limit` is `null` the
|
|
55
|
+
* cap is disabled and the function returns immediately without encoding, so the
|
|
56
|
+
* unconfigured path costs nothing.
|
|
57
|
+
*
|
|
58
|
+
* @param value - The payload to measure.
|
|
59
|
+
* @param limit - The maximum serialized byte length, or `null` to disable.
|
|
60
|
+
* @param payloadKind - Which admission point is validating, for the error message.
|
|
61
|
+
*/
|
|
62
|
+
export declare function assertPayloadWithinLimit(value: unknown, limit: number | null, payloadKind: PayloadKind): void;
|
|
63
|
+
/**
|
|
64
|
+
* Encode a payload once, enforce the size cap on the result, and return the
|
|
65
|
+
* encoded bytes for reuse by the caller's write — avoiding a second `encode`
|
|
66
|
+
* at call sites that persist the exact value they measured.
|
|
67
|
+
*
|
|
68
|
+
* Behaves like {@link assertPayloadWithinLimit} on the size check (a value
|
|
69
|
+
* exactly at `limit` is allowed; one byte larger throws), but always encodes
|
|
70
|
+
* (there is no `null` short-circuit) because the caller needs the bytes
|
|
71
|
+
* regardless of whether the cap is enabled.
|
|
72
|
+
*
|
|
73
|
+
* @param value - The payload to encode and measure.
|
|
74
|
+
* @param limit - The maximum serialized byte length, or `null` to skip the cap.
|
|
75
|
+
* @param payloadKind - Which admission point is validating, for the error message.
|
|
76
|
+
* @returns The codec-encoded bytes, guaranteed within `limit` when `limit` is set.
|
|
77
|
+
*/
|
|
78
|
+
export declare function encodePayloadWithinLimit(value: unknown, limit: number | null, payloadKind: PayloadKind): Uint8Array;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { encode } from "./codec.js";
|
|
2
|
+
import { WeftError } from "./weft-error.js";
|
|
3
|
+
|
|
4
|
+
export class PayloadSizeExceededError extends WeftError {
|
|
5
|
+
payloadKind;
|
|
6
|
+
serializedBytes;
|
|
7
|
+
maxBytes;
|
|
8
|
+
constructor(payloadKind, serializedBytes, maxBytes) {
|
|
9
|
+
super("PayloadSizeExceededError", `${payloadKind} exceeds the configured maximum serialized size: ${String(serializedBytes)} bytes > ${String(maxBytes)} byte limit.`);
|
|
10
|
+
this.payloadKind = payloadKind;
|
|
11
|
+
this.serializedBytes = serializedBytes;
|
|
12
|
+
this.maxBytes = maxBytes;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function assertPayloadWithinLimit(value, limit, payloadKind) {
|
|
16
|
+
if (limit === null)
|
|
17
|
+
return;
|
|
18
|
+
const serializedBytes = encode(value).byteLength;
|
|
19
|
+
if (serializedBytes > limit)
|
|
20
|
+
throw new PayloadSizeExceededError(payloadKind, serializedBytes, limit);
|
|
21
|
+
}
|
|
22
|
+
export function encodePayloadWithinLimit(value, limit, payloadKind) {
|
|
23
|
+
const encoded = encode(value);
|
|
24
|
+
if (limit !== null && encoded.byteLength > limit)
|
|
25
|
+
throw new PayloadSizeExceededError(payloadKind, encoded.byteLength, limit);
|
|
26
|
+
return encoded;
|
|
27
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { WeftError } from './weft-error.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown by {@link Engine.create} (and other storage-opening entry points) when
|
|
4
|
+
* a persisted Weft database carries a schema version older than the engine
|
|
5
|
+
* understands. Pre-MVP Weft does not migrate persisted data — bumping
|
|
6
|
+
* {@link CURRENT_PERSISTED_DATA_SCHEMA_VERSION} intentionally invalidates older
|
|
7
|
+
* databases so the failure surfaces deterministically at boot, before any
|
|
8
|
+
* workflow attempts replay.
|
|
9
|
+
*
|
|
10
|
+
* Inspect `foundVersion` to see what the storage advertised and `expectedVersion`
|
|
11
|
+
* to see what this engine requires. Resolve by deleting the database (acceptable
|
|
12
|
+
* pre-MVP) or by starting from fresh storage.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { Engine, PersistedDataIncompatibleError } from '@lostgradient/weft';
|
|
17
|
+
*
|
|
18
|
+
* try {
|
|
19
|
+
* await Engine.create({});
|
|
20
|
+
* } catch (error) {
|
|
21
|
+
* if (error instanceof PersistedDataIncompatibleError) {
|
|
22
|
+
* console.error(
|
|
23
|
+
* `expected schema ${error.expectedVersion}, found ${error.foundVersion ?? 'pre-versioned'}`,
|
|
24
|
+
* );
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class PersistedDataIncompatibleError extends WeftError<'PersistedDataIncompatibleError'> {
|
|
30
|
+
readonly foundVersion: number | null;
|
|
31
|
+
readonly expectedVersion: number;
|
|
32
|
+
constructor(foundVersion: number | null, expectedVersion: number);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Bumped to `1` by the workflow-builder refactor (Phase 3). Pre-MVP databases
|
|
36
|
+
* have no version key recorded — `assertCompatiblePersistedDataVersion` treats
|
|
37
|
+
* the absence of the key on an otherwise non-empty database as
|
|
38
|
+
* `pre-versioned`, which is incompatible. Fresh databases get the current
|
|
39
|
+
* version written on first open.
|
|
40
|
+
*/
|
|
41
|
+
export declare const CURRENT_PERSISTED_DATA_SCHEMA_VERSION = 1;
|
|
42
|
+
/**
|
|
43
|
+
* Storage key holding the persisted-data schema version (encoded as the UTF-8
|
|
44
|
+
* digits of an integer). Kept under a `weft:` prefix so it cannot collide with
|
|
45
|
+
* the public `wf:` / `op:` / `schedule:` / etc. layouts in
|
|
46
|
+
* `src/storage/interface.ts#KEYS`.
|
|
47
|
+
*/
|
|
48
|
+
export declare const PERSISTED_DATA_SCHEMA_VERSION_KEY = "weft:schema-version";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WeftError } from "./weft-error.js";
|
|
2
|
+
|
|
3
|
+
export class PersistedDataIncompatibleError extends WeftError {
|
|
4
|
+
foundVersion;
|
|
5
|
+
expectedVersion;
|
|
6
|
+
constructor(foundVersion, expectedVersion) {
|
|
7
|
+
super("PersistedDataIncompatibleError", `Persisted workflow data was written by an older Weft version (schema ${foundVersion === null ? "pre-versioned" : `v${foundVersion}`}, current v${expectedVersion}) and is incompatible with the workflow-builder refactor. Delete the database or start fresh.`);
|
|
8
|
+
this.foundVersion = foundVersion;
|
|
9
|
+
this.expectedVersion = expectedVersion;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const CURRENT_PERSISTED_DATA_SCHEMA_VERSION = 1, PERSISTED_DATA_SCHEMA_VERSION_KEY = "weft:schema-version";
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Engine } from './engine.ts';
|
|
2
|
+
import { WeftError } from './weft-error.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Current registry contract version. Future incompatible changes to the
|
|
5
|
+
* snapshot shape must bump this number; the codegen CLI rejects unknown
|
|
6
|
+
* versions with a clear upgrade message.
|
|
7
|
+
*/
|
|
8
|
+
export declare const REGISTRY_VERSION = 1;
|
|
9
|
+
/** Metadata reported per workflow in a registry snapshot. */
|
|
10
|
+
export type RegistryWorkflowEntry = {
|
|
11
|
+
inputSchema?: Record<string, unknown>;
|
|
12
|
+
outputSchema?: Record<string, unknown>;
|
|
13
|
+
description?: string;
|
|
14
|
+
tags?: ReadonlyArray<string>;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Metadata reported per activity in a registry snapshot.
|
|
18
|
+
*
|
|
19
|
+
* `tags` is intentionally omitted: the registry feeds `weft codegen`, which
|
|
20
|
+
* models activities as TypeScript function signatures. Tags are catalog
|
|
21
|
+
* metadata for documentation/observability surfaces and don't appear on a
|
|
22
|
+
* function type. Workflows include tags because the workflow registry
|
|
23
|
+
* augmentation point (`WorkflowRegistry`) is an interface where extra
|
|
24
|
+
* metadata can be attached structurally; activity names are now typed
|
|
25
|
+
* per-workflow via the builder's `.activities({...})` step, so there is no
|
|
26
|
+
* global activity-type registry to attach metadata to.
|
|
27
|
+
*/
|
|
28
|
+
export type RegistryActivityEntry = {
|
|
29
|
+
inputSchema?: Record<string, unknown>;
|
|
30
|
+
outputSchema?: Record<string, unknown>;
|
|
31
|
+
/** Engine assigns a default queue when none is specified, so this is always populated. */
|
|
32
|
+
queue: string;
|
|
33
|
+
description?: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Snapshot of every locally-registered workflow and activity, suitable for
|
|
37
|
+
* serialization as the `GET /v1/registry` response body.
|
|
38
|
+
*/
|
|
39
|
+
export type RegistrySnapshot = {
|
|
40
|
+
registryVersion: 1;
|
|
41
|
+
workflows: Record<string, RegistryWorkflowEntry>;
|
|
42
|
+
activities: Record<string, RegistryActivityEntry>;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Thrown when a registered workflow or activity schema cannot be converted
|
|
46
|
+
* to JSON Schema. Carries the offending entity name and direction so
|
|
47
|
+
* server-side observability (logs and telemetry) and non-HTTP callers
|
|
48
|
+
* (the in-process MCP builder, programmatic users of `buildRegistrySnapshot`)
|
|
49
|
+
* can identify which registration is broken. The HTTP REST binding
|
|
50
|
+
* deliberately masks this on the wire as a generic `500 / Internal server
|
|
51
|
+
* error` so a misbehaving registration cannot leak schema layout to clients
|
|
52
|
+
* that only have `system:read`.
|
|
53
|
+
*/
|
|
54
|
+
export declare class RegistrySchemaConversionError extends WeftError<'RegistrySchemaConversionError'> {
|
|
55
|
+
readonly entityKind: 'workflow' | 'activity';
|
|
56
|
+
readonly entityName: string;
|
|
57
|
+
readonly direction: 'inputSchema' | 'outputSchema';
|
|
58
|
+
constructor(entityKind: 'workflow' | 'activity', entityName: string, direction: 'inputSchema' | 'outputSchema', cause: unknown);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Build a registry snapshot from an engine's locally-registered workflows
|
|
62
|
+
* and activities. Remote-only activities (those advertised by a remote
|
|
63
|
+
* worker but never registered with the local engine) are excluded by
|
|
64
|
+
* construction — `engine.listActivityDefinitions()` is the only source.
|
|
65
|
+
*
|
|
66
|
+
* Throws {@link RegistrySchemaConversionError} if any registered schema
|
|
67
|
+
* fails JSON Schema conversion.
|
|
68
|
+
*/
|
|
69
|
+
export declare function buildRegistrySnapshot(engine: Engine): RegistrySnapshot;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { definitionSchemaToJsonSchema } from "./types/definition-schema-to-json.js";
|
|
2
|
+
import { WeftError } from "./weft-error.js";
|
|
3
|
+
export const REGISTRY_VERSION = 1;
|
|
4
|
+
|
|
5
|
+
export class RegistrySchemaConversionError extends WeftError {
|
|
6
|
+
entityKind;
|
|
7
|
+
entityName;
|
|
8
|
+
direction;
|
|
9
|
+
constructor(entityKind, entityName, direction, cause) {
|
|
10
|
+
const causeMessage = cause instanceof Error ? cause.message : String(cause);
|
|
11
|
+
super("RegistrySchemaConversionError", `Failed to convert ${direction} for ${entityKind} "${entityName}": ${causeMessage}`, { cause });
|
|
12
|
+
this.entityKind = entityKind;
|
|
13
|
+
this.entityName = entityName;
|
|
14
|
+
this.direction = direction;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function buildRegistrySnapshot(engine) {
|
|
18
|
+
const workflowDefinitions = engine.listWorkflowDefinitions(), activityDefinitions = engine.listActivityDefinitions(), sortedWorkflows = workflowDefinitions.toSorted((a, b) => {
|
|
19
|
+
if (a.type < b.type)
|
|
20
|
+
return -1;
|
|
21
|
+
if (a.type > b.type)
|
|
22
|
+
return 1;
|
|
23
|
+
return 0;
|
|
24
|
+
}), sortedActivities = activityDefinitions.toSorted((a, b) => {
|
|
25
|
+
if (a.name < b.name)
|
|
26
|
+
return -1;
|
|
27
|
+
if (a.name > b.name)
|
|
28
|
+
return 1;
|
|
29
|
+
return 0;
|
|
30
|
+
}), workflows = Object.create(null);
|
|
31
|
+
for (const definition of sortedWorkflows)
|
|
32
|
+
workflows[definition.type] = buildWorkflowEntry(definition);
|
|
33
|
+
const activities = Object.create(null);
|
|
34
|
+
for (const metadata of sortedActivities)
|
|
35
|
+
activities[metadata.name] = buildActivityEntry(metadata);
|
|
36
|
+
return {
|
|
37
|
+
registryVersion: REGISTRY_VERSION,
|
|
38
|
+
workflows,
|
|
39
|
+
activities
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function buildWorkflowEntry(definition) {
|
|
43
|
+
const entry = {};
|
|
44
|
+
if (definition.inputSchema !== void 0)
|
|
45
|
+
entry.inputSchema = convertSchema("workflow", definition.type, "inputSchema", definition.inputSchema);
|
|
46
|
+
if (definition.outputSchema !== void 0)
|
|
47
|
+
entry.outputSchema = convertSchema("workflow", definition.type, "outputSchema", definition.outputSchema);
|
|
48
|
+
if (definition.description !== void 0)
|
|
49
|
+
entry.description = definition.description;
|
|
50
|
+
if (definition.tags.length > 0)
|
|
51
|
+
entry.tags = [...definition.tags];
|
|
52
|
+
return entry;
|
|
53
|
+
}
|
|
54
|
+
function buildActivityEntry(metadata) {
|
|
55
|
+
const entry = { queue: metadata.queue };
|
|
56
|
+
if (metadata.inputSchema !== void 0)
|
|
57
|
+
entry.inputSchema = convertSchema("activity", metadata.name, "inputSchema", metadata.inputSchema);
|
|
58
|
+
if (metadata.outputSchema !== void 0)
|
|
59
|
+
entry.outputSchema = convertSchema("activity", metadata.name, "outputSchema", metadata.outputSchema);
|
|
60
|
+
if (metadata.description !== void 0)
|
|
61
|
+
entry.description = metadata.description;
|
|
62
|
+
return entry;
|
|
63
|
+
}
|
|
64
|
+
function convertSchema(entityKind, entityName, field, schema) {
|
|
65
|
+
try {
|
|
66
|
+
return definitionSchemaToJsonSchema(schema, field === "inputSchema" ? "input" : "output");
|
|
67
|
+
} catch (cause) {
|
|
68
|
+
throw new RegistrySchemaConversionError(entityKind, entityName, field, cause);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fired by {@link ReviewCoordinator} when a new human review request is
|
|
3
|
+
* persisted. Carries the `workflowId`, `reviewId`, `reviewType`, and the list
|
|
4
|
+
* of requested `reviewers`. Subscribe to this event to notify reviewers via
|
|
5
|
+
* email, webhook, or ticketing system.
|
|
6
|
+
*
|
|
7
|
+
* @example Route review notifications to a webhook
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { ReviewRequestedEvent } from '@lostgradient/weft';
|
|
10
|
+
*
|
|
11
|
+
* const target = new EventTarget();
|
|
12
|
+
*
|
|
13
|
+
* target.addEventListener(ReviewRequestedEvent.type, (e) => {
|
|
14
|
+
* const event = e as ReviewRequestedEvent;
|
|
15
|
+
* console.log(`Review ${event.reviewId} requested for workflow ${event.workflowId}`);
|
|
16
|
+
* console.log('Reviewers:', event.reviewers);
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class ReviewRequestedEvent extends Event {
|
|
21
|
+
static readonly type: "human-review:requested";
|
|
22
|
+
readonly workflowId: string;
|
|
23
|
+
readonly reviewId: string;
|
|
24
|
+
readonly reviewType: string;
|
|
25
|
+
readonly reviewers: string[];
|
|
26
|
+
constructor(workflowId: string, reviewId: string, reviewType: string, reviewers: string[]);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Fired by {@link ReviewCoordinator} when a reviewer submits a decision.
|
|
30
|
+
* Carries the `reviewId`, `decision` string, `reviewer` identifier, and the
|
|
31
|
+
* time elapsed since the review was created. Use this to close tickets, record
|
|
32
|
+
* audit logs, or trigger downstream workflow steps.
|
|
33
|
+
*
|
|
34
|
+
* @example Record review decisions in an audit log
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { ReviewCompletedEvent } from '@lostgradient/weft';
|
|
37
|
+
*
|
|
38
|
+
* const target = new EventTarget();
|
|
39
|
+
*
|
|
40
|
+
* target.addEventListener(ReviewCompletedEvent.type, (e) => {
|
|
41
|
+
* const event = e as ReviewCompletedEvent;
|
|
42
|
+
* console.log(`Review ${event.reviewId}: '${event.decision}' by ${event.reviewer} in ${event.duration}ms`);
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare class ReviewCompletedEvent extends Event {
|
|
47
|
+
static readonly type: "human-review:completed";
|
|
48
|
+
readonly workflowId: string;
|
|
49
|
+
readonly reviewId: string;
|
|
50
|
+
readonly decision: string;
|
|
51
|
+
readonly reviewer: string;
|
|
52
|
+
readonly duration: number;
|
|
53
|
+
constructor(workflowId: string, reviewId: string, decision: string, reviewer: string, duration: number);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Record mapping each review-related event name to its typed Event subclass.
|
|
57
|
+
* Use as the type parameter for `TypedEventTarget` to get type-safe listeners
|
|
58
|
+
* on engine-level review events.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import type { TypedEventTarget, WeftReviewEventMap } from '@lostgradient/weft';
|
|
63
|
+
*
|
|
64
|
+
* declare const target: TypedEventTarget<WeftReviewEventMap>;
|
|
65
|
+
* target.addEventListener('human-review:requested', (event) => {
|
|
66
|
+
* console.log(event.reviewId, event.reviewers);
|
|
67
|
+
* });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export type WeftReviewEventMap = {
|
|
71
|
+
'human-review:requested': ReviewRequestedEvent;
|
|
72
|
+
'human-review:completed': ReviewCompletedEvent;
|
|
73
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export class ReviewRequestedEvent extends Event {
|
|
2
|
+
static type = "human-review:requested";
|
|
3
|
+
workflowId;
|
|
4
|
+
reviewId;
|
|
5
|
+
reviewType;
|
|
6
|
+
reviewers;
|
|
7
|
+
constructor(workflowId, reviewId, reviewType, reviewers) {
|
|
8
|
+
super(ReviewRequestedEvent.type);
|
|
9
|
+
this.workflowId = workflowId;
|
|
10
|
+
this.reviewId = reviewId;
|
|
11
|
+
this.reviewType = reviewType;
|
|
12
|
+
this.reviewers = reviewers;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class ReviewCompletedEvent extends Event {
|
|
17
|
+
static type = "human-review:completed";
|
|
18
|
+
workflowId;
|
|
19
|
+
reviewId;
|
|
20
|
+
decision;
|
|
21
|
+
reviewer;
|
|
22
|
+
duration;
|
|
23
|
+
constructor(workflowId, reviewId, decision, reviewer, duration) {
|
|
24
|
+
super(ReviewCompletedEvent.type);
|
|
25
|
+
this.workflowId = workflowId;
|
|
26
|
+
this.reviewId = reviewId;
|
|
27
|
+
this.decision = decision;
|
|
28
|
+
this.reviewer = reviewer;
|
|
29
|
+
this.duration = duration;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-in-the-loop review protocol.
|
|
3
|
+
*
|
|
4
|
+
* Coordinates review requests, decisions, escalation chains,
|
|
5
|
+
* and partial approval workflows for durable human oversight.
|
|
6
|
+
*
|
|
7
|
+
* @module human-review
|
|
8
|
+
*/
|
|
9
|
+
import type { BatchOperation, Storage } from '../../storage/interface.ts';
|
|
10
|
+
import { WeftError } from '../weft-error.ts';
|
|
11
|
+
/**
|
|
12
|
+
* A persisted human review request. Created by {@link ReviewCoordinator.createReview}
|
|
13
|
+
* and returned to the workflow once a reviewer submits a decision.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import type { ReviewRequest } from '@lostgradient/weft';
|
|
18
|
+
*
|
|
19
|
+
* const request: ReviewRequest = {
|
|
20
|
+
* reviewId: 'r-1',
|
|
21
|
+
* workflowId: 'wf-1',
|
|
22
|
+
* artifact: { text: 'draft' },
|
|
23
|
+
* reviewType: 'content',
|
|
24
|
+
* reviewers: ['alice@example.com'],
|
|
25
|
+
* allowPartial: false,
|
|
26
|
+
* createdAt: Date.now(),
|
|
27
|
+
* };
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export interface ReviewRequest {
|
|
31
|
+
reviewId: string;
|
|
32
|
+
workflowId: string;
|
|
33
|
+
artifact: unknown;
|
|
34
|
+
reviewType: string;
|
|
35
|
+
reviewers: string[];
|
|
36
|
+
allowPartial: boolean;
|
|
37
|
+
timeout?: number;
|
|
38
|
+
webhookUrl?: string;
|
|
39
|
+
createdAt: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A reviewer's decision payload returned to the workflow from `ctx.review()`.
|
|
43
|
+
* The `decision` field is the binary outcome; `sectionDecisions` carries
|
|
44
|
+
* per-section verdicts when `allowPartial` is enabled on the request.
|
|
45
|
+
*/
|
|
46
|
+
export interface ReviewDecision {
|
|
47
|
+
reviewId: string;
|
|
48
|
+
decision: 'approved' | 'rejected' | 'needs-changes';
|
|
49
|
+
reviewer: string;
|
|
50
|
+
feedback?: string;
|
|
51
|
+
sectionDecisions?: Record<string, 'approved' | 'rejected'>;
|
|
52
|
+
timestamp: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* One step in a {@link ReviewOptions.escalation} chain. Either reassigns the
|
|
56
|
+
* pending review to a new owner (`to`) or auto-decides it (`action`) after
|
|
57
|
+
* `after` milliseconds have elapsed.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* import type { EscalationStep } from '@lostgradient/weft';
|
|
62
|
+
*
|
|
63
|
+
* const step: EscalationStep = { after: 60_000, to: 'manager@example.com' };
|
|
64
|
+
* void step;
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export interface EscalationStep {
|
|
68
|
+
after: number;
|
|
69
|
+
to?: string;
|
|
70
|
+
action?: 'auto-approve' | 'auto-reject';
|
|
71
|
+
auditReason?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Base options for creating a review via {@link ReviewCoordinator.createReview}.
|
|
75
|
+
* The `artifact` carries the payload the reviewer evaluates; the other fields
|
|
76
|
+
* configure routing, partial approval, escalation chains, and webhook delivery.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```ts
|
|
80
|
+
* import type { ReviewOptions } from '@lostgradient/weft';
|
|
81
|
+
*
|
|
82
|
+
* const options: ReviewOptions = {
|
|
83
|
+
* artifact: { summary: 'release plan' },
|
|
84
|
+
* reviewers: ['alice@example.com'],
|
|
85
|
+
* timeout: 60_000,
|
|
86
|
+
* };
|
|
87
|
+
* void options;
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export interface ReviewOptions {
|
|
91
|
+
artifact: unknown;
|
|
92
|
+
reviewType?: string;
|
|
93
|
+
reviewers?: string[];
|
|
94
|
+
allowPartial?: boolean;
|
|
95
|
+
timeout?: number;
|
|
96
|
+
escalation?: EscalationStep[];
|
|
97
|
+
webhookUrl?: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Options passed to `ctx.review()` inside a workflow generator. Extends
|
|
101
|
+
* {@link ReviewOptions} with the context-level callback the runtime invokes
|
|
102
|
+
* when an escalation step fires.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* import type { HumanReviewOptions } from '@lostgradient/weft';
|
|
107
|
+
*
|
|
108
|
+
* const options: HumanReviewOptions = {
|
|
109
|
+
* artifact: 'release plan',
|
|
110
|
+
* reviewers: ['alice@example.com'],
|
|
111
|
+
* onEscalation: (action) => console.log('escalation:', action),
|
|
112
|
+
* };
|
|
113
|
+
* void options;
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
export interface HumanReviewOptions extends ReviewOptions {
|
|
117
|
+
/** Handler called when an escalation step fires. */
|
|
118
|
+
onEscalation?: (action: EscalationAction) => void;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The decision payload returned to the workflow from `ctx.review()`.
|
|
122
|
+
* Alias for {@link ReviewDecision}.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* import type { HumanReviewResult } from '@lostgradient/weft';
|
|
127
|
+
*
|
|
128
|
+
* const result: HumanReviewResult = {
|
|
129
|
+
* reviewId: 'r-1',
|
|
130
|
+
* decision: 'approved',
|
|
131
|
+
* reviewer: 'alice@example.com',
|
|
132
|
+
* timestamp: Date.now(),
|
|
133
|
+
* };
|
|
134
|
+
* void result;
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export type HumanReviewResult = ReviewDecision;
|
|
138
|
+
/**
|
|
139
|
+
* The action returned by {@link ReviewCoordinator.checkEscalations} when an
|
|
140
|
+
* escalation step has fired. Either reassigns the review to a new owner or
|
|
141
|
+
* auto-decides it with an audit reason.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* import type { EscalationAction } from '@lostgradient/weft';
|
|
146
|
+
*
|
|
147
|
+
* const action: EscalationAction = { type: 'escalate', to: 'manager@example.com' };
|
|
148
|
+
* void action;
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export type EscalationAction = {
|
|
152
|
+
type: 'escalate';
|
|
153
|
+
to: string;
|
|
154
|
+
} | {
|
|
155
|
+
type: 'auto-decide';
|
|
156
|
+
decision: 'approved' | 'rejected';
|
|
157
|
+
auditReason: string;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Thrown when a human review request exceeds its configured `timeout`
|
|
161
|
+
* milliseconds without receiving a decision. Carries the `reviewId` and the
|
|
162
|
+
* elapsed time so callers can decide whether to escalate or auto-approve.
|
|
163
|
+
*
|
|
164
|
+
* @example Catch a review timeout and escalate
|
|
165
|
+
* ```ts
|
|
166
|
+
* import { workflow, ReviewTimeoutError } from '@lostgradient/weft';
|
|
167
|
+
* import type { Context, WorkflowContext } from '@lostgradient/weft';
|
|
168
|
+
* import { TestEngine } from '@lostgradient/weft/testing';
|
|
169
|
+
*
|
|
170
|
+
* const engine = new TestEngine({ startTime: 0 });
|
|
171
|
+
* engine.register(
|
|
172
|
+
* workflow({ name: 'needs-review' }).execute(async function* (ctx: WorkflowContext) {
|
|
173
|
+
* return yield* ctx.review({
|
|
174
|
+
* artifact: 'release plan',
|
|
175
|
+
* reviewers: ['alice@example.com'],
|
|
176
|
+
* timeout: 5_000,
|
|
177
|
+
* });
|
|
178
|
+
* }),
|
|
179
|
+
* );
|
|
180
|
+
* const handle = await engine.start('needs-review', null);
|
|
181
|
+
* const result = handle.result();
|
|
182
|
+
* await engine.advanceTime(6_000);
|
|
183
|
+
*
|
|
184
|
+
* try {
|
|
185
|
+
* await result;
|
|
186
|
+
* } catch (error) {
|
|
187
|
+
* if (error instanceof ReviewTimeoutError) {
|
|
188
|
+
* console.warn(`Review ${error.reviewId} timed out after ${error.elapsed}ms`);
|
|
189
|
+
* }
|
|
190
|
+
* }
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
export declare class ReviewTimeoutError extends WeftError<'ReviewTimeoutError'> {
|
|
194
|
+
readonly reviewId: string;
|
|
195
|
+
readonly elapsed: number;
|
|
196
|
+
constructor(reviewId: string, elapsed: number);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Options for constructing a {@link ReviewCoordinator}. Accepts an optional
|
|
200
|
+
* `EventTarget` to dispatch {@link ReviewRequestedEvent} on review
|
|
201
|
+
* creation, and a custom `getNow` clock function for deterministic testing.
|
|
202
|
+
*
|
|
203
|
+
* @example Attach an event target and a fixed clock for tests
|
|
204
|
+
* ```ts
|
|
205
|
+
* import { ReviewCoordinator, type ReviewCoordinatorOptions } from '@lostgradient/weft';
|
|
206
|
+
* import { MemoryStorage } from '@lostgradient/weft/storage/memory';
|
|
207
|
+
*
|
|
208
|
+
* const storage = new MemoryStorage();
|
|
209
|
+
* const options: ReviewCoordinatorOptions = {
|
|
210
|
+
* eventTarget: new EventTarget(),
|
|
211
|
+
* getNow: () => 1_700_000_000_000,
|
|
212
|
+
* };
|
|
213
|
+
*
|
|
214
|
+
* const coordinator = new ReviewCoordinator(storage, options);
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
export interface ReviewCoordinatorOptions {
|
|
218
|
+
/** When provided, the coordinator dispatches human review events. */
|
|
219
|
+
eventTarget?: EventTarget;
|
|
220
|
+
/** Custom time source for testing. Defaults to `Date.now`. */
|
|
221
|
+
getNow?: () => number;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Persists human review requests to storage, dispatches
|
|
225
|
+
* {@link ReviewRequestedEvent} on creation, accepts reviewer decisions,
|
|
226
|
+
* and checks escalation timeouts. Used by `ctx.review()` inside workflow
|
|
227
|
+
* generators to pause execution pending a human decision.
|
|
228
|
+
*
|
|
229
|
+
* @example Create a review and later submit a decision
|
|
230
|
+
* ```ts
|
|
231
|
+
* import { ReviewCoordinator } from '@lostgradient/weft';
|
|
232
|
+
* import { MemoryStorage } from '@lostgradient/weft/storage/memory';
|
|
233
|
+
*
|
|
234
|
+
* const storage = new MemoryStorage();
|
|
235
|
+
* const coordinator = new ReviewCoordinator(storage);
|
|
236
|
+
*
|
|
237
|
+
* const review = await coordinator.createReview('wf-123', {
|
|
238
|
+
* artifact: { text: 'Draft email body…' },
|
|
239
|
+
* reviewType: 'content',
|
|
240
|
+
* reviewers: ['alice@example.com'],
|
|
241
|
+
* });
|
|
242
|
+
*
|
|
243
|
+
* const decision = await coordinator.submitDecision(review.reviewId, {
|
|
244
|
+
* decision: 'approved',
|
|
245
|
+
* reviewer: 'alice@example.com',
|
|
246
|
+
* });
|
|
247
|
+
* console.log(decision.decision); // 'approved'
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
export declare class ReviewCoordinator {
|
|
251
|
+
#private;
|
|
252
|
+
constructor(storage: Storage, optionsOrGetNow?: ReviewCoordinatorOptions | (() => number));
|
|
253
|
+
/** Create a review request and persist it. */
|
|
254
|
+
createReview(workflowId: string, options: ReviewOptions): Promise<ReviewRequest>;
|
|
255
|
+
/** Submit a review decision. */
|
|
256
|
+
submitDecision(reviewId: string, decision: Omit<ReviewDecision, 'reviewId' | 'timestamp'>): Promise<ReviewDecision>;
|
|
257
|
+
/** Get a pending review. */
|
|
258
|
+
getReview(workflowId: string, reviewId: string): Promise<ReviewRequest | null>;
|
|
259
|
+
/** List pending reviews. */
|
|
260
|
+
listPendingReviews(): Promise<ReviewRequest[]>;
|
|
261
|
+
/** Build cleanup operations for completed workflow. */
|
|
262
|
+
cleanupOperations(workflowId: string, reviewId: string): BatchOperation[];
|
|
263
|
+
/** Check for escalation timeouts. Returns actions to take. */
|
|
264
|
+
checkEscalations(review: ReviewRequest, escalation: EscalationStep[], now: number): EscalationAction | null;
|
|
265
|
+
}
|