@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,93 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { UNSAFE_PROTOTYPE_KEYS } from "./pipeline-helpers.js";
|
|
3
|
+
import {
|
|
4
|
+
validateOperationName
|
|
5
|
+
} from "./types.js";
|
|
6
|
+
function freezeAccessPolicy(policy) {
|
|
7
|
+
if (policy.kind === "scoped")
|
|
8
|
+
return Object.freeze({
|
|
9
|
+
kind: "scoped",
|
|
10
|
+
scopes: freezeScopeRequirement(policy.scopes)
|
|
11
|
+
});
|
|
12
|
+
if (policy.kind === "scopedAlternatives")
|
|
13
|
+
return Object.freeze({
|
|
14
|
+
kind: "scopedAlternatives",
|
|
15
|
+
alternatives: Object.freeze(policy.alternatives.map(freezeScopeRequirement))
|
|
16
|
+
});
|
|
17
|
+
if (policy.kind === "optionalAuth")
|
|
18
|
+
return Object.freeze({
|
|
19
|
+
kind: "optionalAuth",
|
|
20
|
+
authenticatedScopes: freezeScopeRequirement(policy.authenticatedScopes)
|
|
21
|
+
});
|
|
22
|
+
return Object.freeze({ ...policy });
|
|
23
|
+
}
|
|
24
|
+
function freezeScopeRequirement(requirement) {
|
|
25
|
+
const scopes = Object.freeze([...requirement.scopes]);
|
|
26
|
+
return Object.freeze({
|
|
27
|
+
kind: requirement.kind,
|
|
28
|
+
scopes
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function objectInputSchema(operation) {
|
|
32
|
+
if (!(operation.inputSchema instanceof z.ZodObject))
|
|
33
|
+
throw Error(`operation "${operation.name}" inputSchema must be a z.ZodObject (got ${operation.inputSchema.constructor.name}); wrappers like .optional() / transforms hide the top-level shape from the unknown-key policy check`);
|
|
34
|
+
return operation.inputSchema;
|
|
35
|
+
}
|
|
36
|
+
function assertSafeDeclaredKeys(operation) {
|
|
37
|
+
const inputSchema = objectInputSchema(operation), unsafeDeclared = Object.keys(inputSchema.shape).filter((key) => UNSAFE_PROTOTYPE_KEYS.has(key));
|
|
38
|
+
if (unsafeDeclared.length > 0)
|
|
39
|
+
throw Error(`operation "${operation.name}" inputSchema declares unsafe top-level keys: ${unsafeDeclared.join(", ")}. Names that match a prototype-pollution vector (__proto__, constructor, prototype) are forbidden as schema keys.`);
|
|
40
|
+
}
|
|
41
|
+
function assertKindAndEventSchemaAgree(operation) {
|
|
42
|
+
const kind = operation.kind ?? "unary";
|
|
43
|
+
if (kind === "unary") {
|
|
44
|
+
if (operation.eventSchema !== void 0)
|
|
45
|
+
throw Error(`operation "${operation.name}" has kind: 'unary' (or unset) but declares an eventSchema. eventSchema is reserved for kind: 'stream' or kind: 'subscription'.`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (operation.eventSchema === void 0)
|
|
49
|
+
throw Error(`operation "${operation.name}" has kind: '${kind}' but no eventSchema. Stream and subscription operations must declare an eventSchema so the dispatcher can validate each yielded element.`);
|
|
50
|
+
}
|
|
51
|
+
function assertDestructiveDeclared(operation) {
|
|
52
|
+
if (typeof operation.destructive !== "boolean")
|
|
53
|
+
throw Error(`operation "${operation.name}" must declare an explicit boolean "destructive" flag (got ${typeof operation.destructive}). Every operation has to state whether it irreversibly mutates state \u2014 there is no implicit default. Mark cancel/purge/bulk-delete/raw-storage-write style operations true and read-only operations false.`);
|
|
54
|
+
}
|
|
55
|
+
function assertMcpMetadataAgrees(operation) {
|
|
56
|
+
if (!operation.mcpExposable)
|
|
57
|
+
return;
|
|
58
|
+
if (operation.mcpTool === void 0)
|
|
59
|
+
throw Error(`operation "${operation.name}" is mcpExposable but does not declare mcpTool.workflowType metadata`);
|
|
60
|
+
}
|
|
61
|
+
function freezeOperation(operation) {
|
|
62
|
+
return Object.freeze({
|
|
63
|
+
...operation,
|
|
64
|
+
tags: Object.freeze([...operation.tags]),
|
|
65
|
+
...operation.producibleFaults === void 0 ? {} : { producibleFaults: Object.freeze([...operation.producibleFaults]) },
|
|
66
|
+
access: freezeAccessPolicy(operation.access),
|
|
67
|
+
...operation.mcpTool === void 0 ? {} : { mcpTool: Object.freeze({ workflowType: operation.mcpTool.workflowType }) },
|
|
68
|
+
transports: Object.freeze({ ...operation.transports }),
|
|
69
|
+
unknownKeyPolicy: Object.freeze({ ...operation.unknownKeyPolicy })
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
export function createOperationRegistry(operations) {
|
|
73
|
+
const byName = new Map;
|
|
74
|
+
for (const operation of operations) {
|
|
75
|
+
if (byName.has(operation.name))
|
|
76
|
+
throw Error(`duplicate operation name in registry: ${operation.name}`);
|
|
77
|
+
validateOperationName(operation.name);
|
|
78
|
+
assertSafeDeclaredKeys(operation);
|
|
79
|
+
assertKindAndEventSchemaAgree(operation);
|
|
80
|
+
assertDestructiveDeclared(operation);
|
|
81
|
+
assertMcpMetadataAgrees(operation);
|
|
82
|
+
byName.set(operation.name, freezeOperation(operation));
|
|
83
|
+
}
|
|
84
|
+
const ordered = Object.freeze([...byName.values()]);
|
|
85
|
+
return {
|
|
86
|
+
get(name) {
|
|
87
|
+
return byName.get(name);
|
|
88
|
+
},
|
|
89
|
+
list() {
|
|
90
|
+
return ordered;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { WeftError } from '../../core/weft-error.ts';
|
|
2
|
+
import type { OperationFault } from '../operation-fault.ts';
|
|
3
|
+
import { type DispatchContext, type DispatchResult } from './types.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Error thrown when an element emitted by a subscription or stream fails
|
|
6
|
+
* per-element schema validation.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SubscriptionElementValidationError extends WeftError<'SubscriptionElementValidationError'> {
|
|
9
|
+
readonly fault: OperationFault;
|
|
10
|
+
constructor(fault: OperationFault);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Execute a `kind: 'stream'` operation and return a schema-validating
|
|
14
|
+
* async iterable for its emitted elements.
|
|
15
|
+
*/
|
|
16
|
+
export declare function executeStream<Element>(operationName: string, rawInput: unknown, context: DispatchContext): Promise<DispatchResult<AsyncIterable<Element>>>;
|
|
17
|
+
/**
|
|
18
|
+
* Execute a `kind: 'subscription'` operation and return its validated
|
|
19
|
+
* subscribe envelope, schema-validating element iterable, and close hook.
|
|
20
|
+
*/
|
|
21
|
+
export declare function executeSubscription<Element, Envelope>(operationName: string, rawInput: unknown, context: DispatchContext): Promise<DispatchResult<{
|
|
22
|
+
envelope: Envelope;
|
|
23
|
+
iterable: AsyncIterable<Element>;
|
|
24
|
+
close: () => Promise<void>;
|
|
25
|
+
}>>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { WeftError } from "../../core/weft-error.js";
|
|
3
|
+
import {
|
|
4
|
+
dispatchFailure,
|
|
5
|
+
lookupOperation,
|
|
6
|
+
prepareAuthorizedInput,
|
|
7
|
+
validateOutputAgainstSchema
|
|
8
|
+
} from "./dispatch-preparation.js";
|
|
9
|
+
import { classifyEngineError } from "./pipeline-helpers.js";
|
|
10
|
+
import { tracePipeline } from "./pipeline-stages.js";
|
|
11
|
+
|
|
12
|
+
export class SubscriptionElementValidationError extends WeftError {
|
|
13
|
+
fault;
|
|
14
|
+
constructor(fault) {
|
|
15
|
+
super("SubscriptionElementValidationError", "subscription element failed schema validation");
|
|
16
|
+
this.fault = fault;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export async function executeStream(operationName, rawInput, context) {
|
|
20
|
+
const prepared = await prepareLongLivedOperation(operationName, rawInput, context, "stream");
|
|
21
|
+
if (!prepared.ok)
|
|
22
|
+
return prepared;
|
|
23
|
+
const { operation, input, eventSchema } = prepared.value;
|
|
24
|
+
let invocation;
|
|
25
|
+
try {
|
|
26
|
+
invocation = await operation.invoke({
|
|
27
|
+
input,
|
|
28
|
+
principal: context.principal,
|
|
29
|
+
engine: context.engine,
|
|
30
|
+
transport: context.transport
|
|
31
|
+
});
|
|
32
|
+
} catch (error) {
|
|
33
|
+
return dispatchFailure(classifyEngineError(error, operation));
|
|
34
|
+
}
|
|
35
|
+
tracePipeline(context.pipelineTrace, "invoked");
|
|
36
|
+
if (!isAsyncIterable(invocation))
|
|
37
|
+
return dispatchFailure({ code: "EngineFailure", message: "internal error", data: {} });
|
|
38
|
+
tracePipeline(context.pipelineTrace, "output-validated");
|
|
39
|
+
return {
|
|
40
|
+
ok: !0,
|
|
41
|
+
value: validateElements(invocation, eventSchema)
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export async function executeSubscription(operationName, rawInput, context) {
|
|
45
|
+
const prepared = await prepareLongLivedOperation(operationName, rawInput, context, "subscription");
|
|
46
|
+
if (!prepared.ok)
|
|
47
|
+
return prepared;
|
|
48
|
+
const { operation, input, eventSchema } = prepared.value;
|
|
49
|
+
let invocation;
|
|
50
|
+
try {
|
|
51
|
+
invocation = await operation.invoke({
|
|
52
|
+
input,
|
|
53
|
+
principal: context.principal,
|
|
54
|
+
engine: context.engine,
|
|
55
|
+
transport: context.transport
|
|
56
|
+
});
|
|
57
|
+
} catch (error) {
|
|
58
|
+
return dispatchFailure(classifyEngineError(error, operation));
|
|
59
|
+
}
|
|
60
|
+
tracePipeline(context.pipelineTrace, "invoked");
|
|
61
|
+
if (!isSubscriptionInvocation(invocation))
|
|
62
|
+
return dispatchFailure({ code: "EngineFailure", message: "internal error", data: {} });
|
|
63
|
+
const envelope = validateOutputAgainstSchema(operation.outputSchema, invocation.envelope);
|
|
64
|
+
if (!envelope.ok)
|
|
65
|
+
return envelope;
|
|
66
|
+
tracePipeline(context.pipelineTrace, "output-validated");
|
|
67
|
+
return {
|
|
68
|
+
ok: !0,
|
|
69
|
+
value: {
|
|
70
|
+
envelope: envelope.value,
|
|
71
|
+
iterable: validateElements(invocation.iterable, eventSchema),
|
|
72
|
+
close: invocation.close
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
async function prepareLongLivedOperation(operationName, rawInput, context, expectedKind) {
|
|
77
|
+
const lookup = lookupOperation(operationName, context);
|
|
78
|
+
if (!lookup.ok)
|
|
79
|
+
return lookup;
|
|
80
|
+
const operation = lookup.value;
|
|
81
|
+
if ((operation.kind ?? "unary") !== expectedKind)
|
|
82
|
+
return dispatchFailure({
|
|
83
|
+
code: "Unprocessable",
|
|
84
|
+
message: `operation "${operation.name}" is not ${expectedKind}`,
|
|
85
|
+
data: { reason: `operation kind is "${operation.kind ?? "unary"}"` }
|
|
86
|
+
});
|
|
87
|
+
if (operation.eventSchema === void 0)
|
|
88
|
+
return dispatchFailure({
|
|
89
|
+
code: "EngineFailure",
|
|
90
|
+
message: "internal error",
|
|
91
|
+
data: {}
|
|
92
|
+
});
|
|
93
|
+
const eventSchema = operation.eventSchema, prepared = await prepareAuthorizedInput(operation, rawInput, context);
|
|
94
|
+
if (!prepared.ok)
|
|
95
|
+
return prepared;
|
|
96
|
+
return { ok: !0, value: { operation, input: prepared.value.input, eventSchema } };
|
|
97
|
+
}
|
|
98
|
+
async function* validateElements(iterable, eventSchema) {
|
|
99
|
+
for await (const element of iterable) {
|
|
100
|
+
let parsed;
|
|
101
|
+
try {
|
|
102
|
+
parsed = eventSchema.safeParse(element);
|
|
103
|
+
} catch {
|
|
104
|
+
throw new SubscriptionElementValidationError(elementValidationFault());
|
|
105
|
+
}
|
|
106
|
+
if (!parsed.success)
|
|
107
|
+
throw new SubscriptionElementValidationError(elementValidationFault());
|
|
108
|
+
yield parsed.data;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function isAsyncIterable(value) {
|
|
112
|
+
return value !== null && typeof value === "object" && Symbol.asyncIterator in value && typeof value[Symbol.asyncIterator] === "function";
|
|
113
|
+
}
|
|
114
|
+
function isSubscriptionInvocation(value) {
|
|
115
|
+
if (value === null || typeof value !== "object")
|
|
116
|
+
return !1;
|
|
117
|
+
const record = value;
|
|
118
|
+
return Object.hasOwn(record, "envelope") && isAsyncIterable(record.iterable) && typeof record.close === "function";
|
|
119
|
+
}
|
|
120
|
+
function elementValidationFault() {
|
|
121
|
+
return { code: "EngineFailure", message: "internal error", data: {} };
|
|
122
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { AccessPolicy } from '../authorization.ts';
|
|
3
|
+
import type { FaultCode, OperationFault, TransportKind } from '../operation-fault.ts';
|
|
4
|
+
import type { Principal } from '../principal.ts';
|
|
5
|
+
/**
|
|
6
|
+
* Regex for the canonical `weft.<segment>(.<segment>)+` operation-name form.
|
|
7
|
+
* Mandatory `weft.` prefix and at least one additional dot-separated segment.
|
|
8
|
+
*/
|
|
9
|
+
export declare const OPERATION_NAME_PATTERN: RegExp;
|
|
10
|
+
/** Throws if `name` does not match the canonical operation-name pattern. */
|
|
11
|
+
export declare function validateOperationName(name: string): void;
|
|
12
|
+
/** Non-throwing variant of `validateOperationName`. */
|
|
13
|
+
export declare function isValidOperationName(name: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Per-operation transport availability flags. A `false` entry means callers
|
|
16
|
+
* on that transport receive `UnsupportedTransport`, not `MethodNotFound`.
|
|
17
|
+
*/
|
|
18
|
+
export type TransportAvailability = {
|
|
19
|
+
http: boolean;
|
|
20
|
+
jsonRpcHttp: boolean;
|
|
21
|
+
jsonRpcWebSocket: boolean;
|
|
22
|
+
jsonRpcStdio: boolean;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Per-transport unknown-key disposition. Top-level only; nested object
|
|
26
|
+
* behavior is controlled by the zod schema's own object mode.
|
|
27
|
+
*/
|
|
28
|
+
export type UnknownKeyDisposition = 'reject' | 'strip' | 'passthrough';
|
|
29
|
+
export type UnknownKeyPolicy = {
|
|
30
|
+
http: UnknownKeyDisposition;
|
|
31
|
+
jsonRpc: UnknownKeyDisposition;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Runtime shape of an operation. Unary operations return one validated
|
|
35
|
+
* `outputSchema` value. Stream and subscription operations return long-lived
|
|
36
|
+
* iterables whose elements are validated against `eventSchema`.
|
|
37
|
+
*/
|
|
38
|
+
export type OperationKind = 'unary' | 'stream' | 'subscription';
|
|
39
|
+
/** Invocation result for `kind: 'stream'` operations. */
|
|
40
|
+
export type StreamOperationInvocation<Element> = AsyncIterable<Element>;
|
|
41
|
+
/** Invocation result for `kind: 'subscription'` operations. */
|
|
42
|
+
export type SubscriptionOperationInvocation<Element, Envelope> = {
|
|
43
|
+
readonly envelope: Envelope;
|
|
44
|
+
readonly iterable: AsyncIterable<Element>;
|
|
45
|
+
readonly close: () => Promise<void>;
|
|
46
|
+
};
|
|
47
|
+
export type OperationInvocationResult<Output> = Output | StreamOperationInvocation<unknown> | SubscriptionOperationInvocation<unknown, Output>;
|
|
48
|
+
/**
|
|
49
|
+
* Metadata that connects an operation-catalog entry to a live MCP tool.
|
|
50
|
+
*
|
|
51
|
+
* v1 only supports workflow-backed MCP tools. The exact MCP tool name is
|
|
52
|
+
* resolved from the live engine registry during discovery because `tools/list`
|
|
53
|
+
* owns collision handling.
|
|
54
|
+
*/
|
|
55
|
+
export type McpToolMetadata = {
|
|
56
|
+
readonly workflowType: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Result of the parameter-aware `authorize` hook.
|
|
60
|
+
*
|
|
61
|
+
* **`reason` is wire-visible.** Hook authors must not embed secrets or
|
|
62
|
+
* sensitive context in a denial reason.
|
|
63
|
+
*/
|
|
64
|
+
export type AuthorizationDecision = {
|
|
65
|
+
allowed: true;
|
|
66
|
+
} | {
|
|
67
|
+
allowed: false;
|
|
68
|
+
reason: string;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Stable audit markers emitted after each successful operation pipeline stage.
|
|
72
|
+
*/
|
|
73
|
+
export type PipelineTraceMarker = 'looked-up' | 'transport-checked' | 'access-checked' | 'parsed' | 'unknown-key-policy-applied' | 'authorized' | 'invoked' | 'output-validated';
|
|
74
|
+
/**
|
|
75
|
+
* Optional observer hook used by audit tests to prove a transport used the
|
|
76
|
+
* full `executeOperation` pipeline.
|
|
77
|
+
*/
|
|
78
|
+
export type PipelineTrace = (marker: PipelineTraceMarker) => void;
|
|
79
|
+
/**
|
|
80
|
+
* Context passed to both the `authorize` hook and `invoke`.
|
|
81
|
+
*/
|
|
82
|
+
export type OperationContext<Input> = {
|
|
83
|
+
readonly input: Input;
|
|
84
|
+
readonly principal: Principal;
|
|
85
|
+
readonly engine: unknown;
|
|
86
|
+
readonly transport: TransportKind;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Common operation fields shared by unary, stream, and subscription kinds.
|
|
90
|
+
* The discriminated union below adds `kind` and `eventSchema` per kind.
|
|
91
|
+
*/
|
|
92
|
+
type OperationDefinitionBase<Input, Output> = {
|
|
93
|
+
readonly name: string;
|
|
94
|
+
readonly mcpExposable: boolean;
|
|
95
|
+
readonly mcpTool?: McpToolMetadata;
|
|
96
|
+
readonly summary: string;
|
|
97
|
+
/**
|
|
98
|
+
* Optional longer-form prose describing what the operation does, its key
|
|
99
|
+
* inputs, and notable faults or preconditions. `summary` stays the short
|
|
100
|
+
* one-liner; `description` is the paragraph that surfaces in OpenAPI /
|
|
101
|
+
* OpenRPC operation descriptions, the CLI `weft api --describe` view, and
|
|
102
|
+
* MCP-facing discovery metadata. Optional: only the interactively-used
|
|
103
|
+
* subset of operations populate it. `summary` remains mandatory for all.
|
|
104
|
+
*/
|
|
105
|
+
readonly description?: string;
|
|
106
|
+
readonly tags: ReadonlyArray<string>;
|
|
107
|
+
/**
|
|
108
|
+
* Whether invoking this operation irreversibly mutates state or is
|
|
109
|
+
* otherwise hard to undo (cancel, purge, bulk-delete, raw storage writes,
|
|
110
|
+
* recover-all, worker drain). Consumers read this single source of truth
|
|
111
|
+
* instead of maintaining their own allowlists: the CLI `weft api` escape
|
|
112
|
+
* hatch refuses destructive operations without explicit confirmation,
|
|
113
|
+
* dashboard bulk actions gate their confirmations on it, and MCP exposure
|
|
114
|
+
* uses it to decide what to surface. Read-only operations (`get-*`,
|
|
115
|
+
* `list-*`, `aggregate`, `registry`, `metrics`) are `false`.
|
|
116
|
+
*
|
|
117
|
+
* Required with no implicit default so every new operation is forced to
|
|
118
|
+
* make the call explicitly — the same quality-floor pattern as the
|
|
119
|
+
* lint-disable rationale rule.
|
|
120
|
+
*/
|
|
121
|
+
readonly destructive: boolean;
|
|
122
|
+
readonly inputSchema: z.ZodType<Input>;
|
|
123
|
+
/**
|
|
124
|
+
* For unary operations, validates the returned value. For subscriptions,
|
|
125
|
+
* validates the subscribe envelope. For streams, describes the start/SSE
|
|
126
|
+
* metadata while each yielded element is validated by `eventSchema`.
|
|
127
|
+
*/
|
|
128
|
+
readonly outputSchema: z.ZodType<Output>;
|
|
129
|
+
readonly access: AccessPolicy;
|
|
130
|
+
/** Fault codes this operation can raise in addition to universal pipeline defaults. */
|
|
131
|
+
readonly producibleFaults?: ReadonlyArray<FaultCode>;
|
|
132
|
+
/** Whether non-public operations should appear in generated discovery documents. */
|
|
133
|
+
readonly discoverable?: boolean;
|
|
134
|
+
readonly transports: TransportAvailability;
|
|
135
|
+
readonly unknownKeyPolicy: UnknownKeyPolicy;
|
|
136
|
+
readonly authorize?: (context: OperationContext<Input>) => Promise<AuthorizationDecision>;
|
|
137
|
+
readonly invoke: (context: OperationContext<Input>) => Promise<OperationInvocationResult<Output>>;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Unary (request/response) operation. `kind` may be omitted (defaults to
|
|
141
|
+
* `'unary'`). `eventSchema` MUST be absent — a unary operation has no
|
|
142
|
+
* per-element shape to validate. The `eventSchema?: never` constraint
|
|
143
|
+
* enforces this at the type level: passing `eventSchema` to a unary
|
|
144
|
+
* operation is a TypeScript error, not a silent runtime mismatch.
|
|
145
|
+
*/
|
|
146
|
+
type UnaryOperationDefinition<Input, Output> = OperationDefinitionBase<Input, Output> & {
|
|
147
|
+
readonly kind?: 'unary';
|
|
148
|
+
readonly eventSchema?: never;
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Streaming operation (e.g. SSE). `kind: 'stream'` is required and
|
|
152
|
+
* `eventSchema` MUST be present — the dispatcher validates each yielded
|
|
153
|
+
* element against this schema. Without it the streaming pipeline would
|
|
154
|
+
* have no contract to validate per-element output against, which would
|
|
155
|
+
* silently leak un-validated data to consumers.
|
|
156
|
+
*/
|
|
157
|
+
type StreamOperationDefinition<Input, Output> = OperationDefinitionBase<Input, Output> & {
|
|
158
|
+
readonly kind: 'stream';
|
|
159
|
+
readonly eventSchema: z.ZodType;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* WebSocket subscription operation. `kind: 'subscription'` is required and
|
|
163
|
+
* `eventSchema` MUST be present (validates each delivered envelope). Same
|
|
164
|
+
* rationale as `StreamOperationDefinition` — the type forbids declaring a
|
|
165
|
+
* subscription without its element schema.
|
|
166
|
+
*/
|
|
167
|
+
type SubscriptionOperationDefinition<Input, Output> = OperationDefinitionBase<Input, Output> & {
|
|
168
|
+
readonly kind: 'subscription';
|
|
169
|
+
readonly eventSchema: z.ZodType;
|
|
170
|
+
};
|
|
171
|
+
/**
|
|
172
|
+
* Discriminated union over the three operation kinds. The discriminator
|
|
173
|
+
* (`kind`) determines whether `eventSchema` is required (`'stream'` /
|
|
174
|
+
* `'subscription'`) or forbidden (`'unary'` or absent). Streaming
|
|
175
|
+
* operations declared without `eventSchema` are now a TypeScript error
|
|
176
|
+
* rather than a runtime EngineFailure; unary operations cannot
|
|
177
|
+
* accidentally carry an `eventSchema` that the pipeline would never read.
|
|
178
|
+
*/
|
|
179
|
+
export type OperationDefinition<Input, Output> = UnaryOperationDefinition<Input, Output> | StreamOperationDefinition<Input, Output> | SubscriptionOperationDefinition<Input, Output>;
|
|
180
|
+
/**
|
|
181
|
+
* An operation with its Input/Output type parameters erased. The dispatcher
|
|
182
|
+
* only feeds values that have been validated by the operation's own schema.
|
|
183
|
+
*/
|
|
184
|
+
export type ErasedOperation = OperationDefinition<unknown, unknown>;
|
|
185
|
+
/** Read-only registry of operations keyed by name. */
|
|
186
|
+
export type OperationRegistry = {
|
|
187
|
+
get(name: string): ErasedOperation | undefined;
|
|
188
|
+
list(): ReadonlyArray<ErasedOperation>;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Erased operation shape accepted by `createOperationRegistry`. Mirrors
|
|
192
|
+
* the discriminated union on `OperationDefinition` so registry callers
|
|
193
|
+
* declaring a stream/subscription without `eventSchema` get a compile-time
|
|
194
|
+
* error rather than a runtime `EngineFailure` when the pipeline first
|
|
195
|
+
* attempts per-element validation.
|
|
196
|
+
*/
|
|
197
|
+
type RegistrableOperationBase = {
|
|
198
|
+
readonly name: string;
|
|
199
|
+
readonly mcpExposable: boolean;
|
|
200
|
+
readonly mcpTool?: McpToolMetadata;
|
|
201
|
+
readonly summary: string;
|
|
202
|
+
/** See {@link OperationDefinitionBase.description}. Optional longer-form prose. */
|
|
203
|
+
readonly description?: string;
|
|
204
|
+
readonly tags: ReadonlyArray<string>;
|
|
205
|
+
/** See {@link OperationDefinitionBase.destructive}. Required, no default. */
|
|
206
|
+
readonly destructive: boolean;
|
|
207
|
+
readonly inputSchema: z.ZodType;
|
|
208
|
+
readonly outputSchema: z.ZodType;
|
|
209
|
+
readonly access: AccessPolicy;
|
|
210
|
+
/** Fault codes this operation can raise in addition to universal pipeline defaults. */
|
|
211
|
+
readonly producibleFaults?: ReadonlyArray<FaultCode>;
|
|
212
|
+
/** Whether non-public operations should appear in generated discovery documents. */
|
|
213
|
+
readonly discoverable?: boolean;
|
|
214
|
+
readonly transports: TransportAvailability;
|
|
215
|
+
readonly unknownKeyPolicy: UnknownKeyPolicy;
|
|
216
|
+
readonly authorize?: (context: OperationContext<never>) => Promise<AuthorizationDecision>;
|
|
217
|
+
readonly invoke: (context: OperationContext<never>) => Promise<OperationInvocationResult<unknown>>;
|
|
218
|
+
};
|
|
219
|
+
type UnaryRegistrableOperation = RegistrableOperationBase & {
|
|
220
|
+
readonly kind?: 'unary';
|
|
221
|
+
readonly eventSchema?: never;
|
|
222
|
+
};
|
|
223
|
+
type StreamRegistrableOperation = RegistrableOperationBase & {
|
|
224
|
+
readonly kind: 'stream';
|
|
225
|
+
readonly eventSchema: z.ZodType;
|
|
226
|
+
};
|
|
227
|
+
type SubscriptionRegistrableOperation = RegistrableOperationBase & {
|
|
228
|
+
readonly kind: 'subscription';
|
|
229
|
+
readonly eventSchema: z.ZodType;
|
|
230
|
+
};
|
|
231
|
+
export type RegistrableOperation = UnaryRegistrableOperation | StreamRegistrableOperation | SubscriptionRegistrableOperation;
|
|
232
|
+
export type DispatchContext = {
|
|
233
|
+
readonly principal: Principal;
|
|
234
|
+
readonly engine: unknown;
|
|
235
|
+
readonly transport: TransportKind;
|
|
236
|
+
readonly registry: OperationRegistry;
|
|
237
|
+
readonly pipelineTrace?: PipelineTrace;
|
|
238
|
+
};
|
|
239
|
+
export type DispatchResult<Output> = {
|
|
240
|
+
readonly ok: true;
|
|
241
|
+
readonly value: Output;
|
|
242
|
+
} | {
|
|
243
|
+
readonly ok: false;
|
|
244
|
+
readonly fault: OperationFault;
|
|
245
|
+
};
|
|
246
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const OPERATION_NAME_PATTERN = /^weft\.[a-z][a-z0-9]*(?:\.[a-z][a-z0-9]*)+$/;
|
|
3
|
+
export function validateOperationName(name) {
|
|
4
|
+
if (!OPERATION_NAME_PATTERN.test(name))
|
|
5
|
+
throw Error(`invalid operation name "${name}" \u2014 must match weft.<segment>(.<segment>)+ where each segment starts with a lowercase ASCII letter and may contain lowercase ASCII letters or digits (e.g., "weft.workflows.start", "weft.workflows.list2")`);
|
|
6
|
+
}
|
|
7
|
+
export function isValidOperationName(name) {
|
|
8
|
+
return OPERATION_NAME_PATTERN.test(name);
|
|
9
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { WorkflowDefinition } from '../../core/types.ts';
|
|
3
|
+
import type { AccessPolicy } from '../authorization.ts';
|
|
4
|
+
import type { AuthorizationDecision, OperationContext, OperationDefinition, TransportAvailability, UnknownKeyPolicy } from './types.ts';
|
|
5
|
+
declare const StartHandleSchema: z.ZodObject<{
|
|
6
|
+
workflowId: z.ZodString;
|
|
7
|
+
status: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
type StartHandle = z.infer<typeof StartHandleSchema>;
|
|
10
|
+
type CatalogWorkflowRegistrationMetadata<Input> = Pick<WorkflowDefinition<Input>, 'description' | 'inputSchema' | 'tags'>;
|
|
11
|
+
/**
|
|
12
|
+
* Options accepted by {@link catalogWorkflow}.
|
|
13
|
+
*
|
|
14
|
+
* `mcpExposable` is REQUIRED. There is no default. The plan's MCP-readiness
|
|
15
|
+
* ratchet enforces explicit per-operation declaration of MCP exposability
|
|
16
|
+
* (see `mcp-readiness.test.ts`); the adapter forwards the caller's choice
|
|
17
|
+
* verbatim so cataloged workflows participate in the same ratchet.
|
|
18
|
+
*
|
|
19
|
+
* No `engine` field. The engine instance comes from the runtime dispatch
|
|
20
|
+
* context (the same `Engine` that runs `executeOperation`). Binding the
|
|
21
|
+
* adapter to a specific engine instance was a footgun: an adapter created
|
|
22
|
+
* for engine A could be dispatched by engine B and silently start the
|
|
23
|
+
* workflow on the wrong engine. The dispatch context is the single source
|
|
24
|
+
* of truth.
|
|
25
|
+
*
|
|
26
|
+
* No `outputSchema` field. The response shape is fixed at
|
|
27
|
+
* `{ workflowId, status }` — the workflow's own result schema belongs on a
|
|
28
|
+
* future `getResult`-shaped operation.
|
|
29
|
+
*
|
|
30
|
+
* No `mode` field. v1 ships start-only semantics.
|
|
31
|
+
*/
|
|
32
|
+
export type CatalogWorkflowOptions<Input> = {
|
|
33
|
+
readonly name: string;
|
|
34
|
+
readonly mcpExposable: boolean;
|
|
35
|
+
readonly workflowType: string;
|
|
36
|
+
readonly summary?: string;
|
|
37
|
+
readonly tags?: ReadonlyArray<string>;
|
|
38
|
+
readonly inputSchema?: z.ZodObject<z.ZodRawShape>;
|
|
39
|
+
readonly registration?: CatalogWorkflowRegistrationMetadata<Input>;
|
|
40
|
+
readonly access: AccessPolicy;
|
|
41
|
+
readonly transports: TransportAvailability;
|
|
42
|
+
readonly unknownKeyPolicy: UnknownKeyPolicy;
|
|
43
|
+
readonly authorize?: (context: OperationContext<Input>) => Promise<AuthorizationDecision>;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* `catalogWorkflow()` — wrap a registered workflow as a typed
|
|
47
|
+
* `OperationDefinition`. Produces one cataloged `start` operation per
|
|
48
|
+
* workflow. Always returns the start handle ({ workflowId, status });
|
|
49
|
+
* never blocks awaiting the workflow result.
|
|
50
|
+
*
|
|
51
|
+
* Schemas are opt-in for v1; required when the operation is later flagged
|
|
52
|
+
* as MCP-exposable (see `mcpExposable` ratchet in PR 6).
|
|
53
|
+
*/
|
|
54
|
+
export declare function catalogWorkflow<Input>(options: CatalogWorkflowOptions<Input>): OperationDefinition<Input, StartHandle>;
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import {
|
|
3
|
+
WorkflowAlreadyExistsError,
|
|
4
|
+
WorkflowNotRegisteredError
|
|
5
|
+
} from "../../core/engine/errors.js";
|
|
6
|
+
import { runtimeWorkflowEngine } from "../../core/runtime-workflow-engine.js";
|
|
7
|
+
import { StartWorkflowValidationError } from "../../core/start-workflow-validation.js";
|
|
8
|
+
import { invalidParamsFault } from "../operations/operation-helpers.js";
|
|
9
|
+
import { validateOperationName } from "./types.js";
|
|
10
|
+
const StartHandleSchema = z.object({
|
|
11
|
+
workflowId: z.string(),
|
|
12
|
+
status: z.string()
|
|
13
|
+
});
|
|
14
|
+
export function catalogWorkflow(options) {
|
|
15
|
+
const presentation = resolveCatalogWorkflowPresentation(options);
|
|
16
|
+
validateOperationName(options.name);
|
|
17
|
+
return {
|
|
18
|
+
name: options.name,
|
|
19
|
+
mcpExposable: options.mcpExposable,
|
|
20
|
+
...options.mcpExposable ? { mcpTool: { workflowType: options.workflowType } } : {},
|
|
21
|
+
summary: presentation.summary,
|
|
22
|
+
tags: presentation.tags,
|
|
23
|
+
destructive: !1,
|
|
24
|
+
inputSchema: presentation.inputSchema,
|
|
25
|
+
outputSchema: StartHandleSchema,
|
|
26
|
+
access: copyAccessPolicy(options.access),
|
|
27
|
+
producibleFaults: ["Conflict"],
|
|
28
|
+
transports: { ...options.transports },
|
|
29
|
+
unknownKeyPolicy: { ...options.unknownKeyPolicy },
|
|
30
|
+
...options.authorize === void 0 ? {} : { authorize: options.authorize },
|
|
31
|
+
invoke: async ({ input, engine }) => {
|
|
32
|
+
const typedEngine = runtimeWorkflowEngine(engine);
|
|
33
|
+
try {
|
|
34
|
+
return { workflowId: (await typedEngine.start(options.workflowType, input)).id, status: "started" };
|
|
35
|
+
} catch (error) {
|
|
36
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
37
|
+
if (error instanceof WorkflowNotRegisteredError)
|
|
38
|
+
throw invalidParamsFault(message);
|
|
39
|
+
if (error instanceof WorkflowAlreadyExistsError)
|
|
40
|
+
throw {
|
|
41
|
+
code: "Conflict",
|
|
42
|
+
message,
|
|
43
|
+
data: { reason: message }
|
|
44
|
+
};
|
|
45
|
+
if (error instanceof StartWorkflowValidationError)
|
|
46
|
+
throw invalidParamsFault(message);
|
|
47
|
+
throw {
|
|
48
|
+
code: "EngineFailure",
|
|
49
|
+
message,
|
|
50
|
+
data: {}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function resolveCatalogWorkflowPresentation(options) {
|
|
57
|
+
const inputSchema = options.inputSchema ?? zodObjectFromRegistrationSchema(options.registration?.inputSchema) ?? z.object({}).passthrough(), summary = options.summary ?? options.registration?.description ?? `Start ${options.workflowType} workflow`, tags = options.tags ?? options.registration?.tags ?? [];
|
|
58
|
+
return { inputSchema, summary, tags: [...tags] };
|
|
59
|
+
}
|
|
60
|
+
function zodObjectFromRegistrationSchema(schema) {
|
|
61
|
+
if (schema === void 0)
|
|
62
|
+
return;
|
|
63
|
+
if (schema instanceof z.ZodObject)
|
|
64
|
+
return schema;
|
|
65
|
+
throw TypeError("catalogWorkflow() can reuse registration.inputSchema only when it is a Zod object. Pass inputSchema explicitly for other DefinitionSchema implementations.");
|
|
66
|
+
}
|
|
67
|
+
function copyAccessPolicy(policy) {
|
|
68
|
+
if (policy.kind === "scoped")
|
|
69
|
+
return {
|
|
70
|
+
kind: "scoped",
|
|
71
|
+
scopes: {
|
|
72
|
+
kind: policy.scopes.kind,
|
|
73
|
+
scopes: [...policy.scopes.scopes]
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
if (policy.kind === "optionalAuth")
|
|
77
|
+
return {
|
|
78
|
+
kind: "optionalAuth",
|
|
79
|
+
authenticatedScopes: {
|
|
80
|
+
kind: policy.authenticatedScopes.kind,
|
|
81
|
+
scopes: [...policy.authenticatedScopes.scopes]
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
return { ...policy };
|
|
85
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './operation-catalog/index.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./operation-catalog/index.js";
|