@lostgradient/weft 0.23.1 → 0.24.1
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/README.md +72 -4
- package/dist/cli/codegen-emit-dedup.d.ts +81 -0
- package/dist/cli/codegen-emit-dedup.js +45 -0
- package/dist/cli/codegen-emit-registry.d.ts +90 -0
- package/dist/cli/codegen-emit-registry.js +50 -0
- package/dist/cli/codegen-emit.d.ts +26 -39
- package/dist/cli/codegen-emit.js +4 -27
- package/dist/cli/codegen-validate.d.ts +49 -0
- package/dist/cli/codegen-validate.js +186 -0
- package/dist/cli/codegen.js +6 -87
- package/dist/cli/conformance.js +5 -2
- package/dist/cli/generated/operation-catalog.snapshot.json +381 -3
- package/dist/cli/generated/operation-client.generated.d.ts +350 -10
- package/dist/cli/generated/operation-client.generated.js +14 -0
- package/dist/cli/output.js +1 -1
- package/dist/cli/parse-schedule-arguments.js +15 -3
- package/dist/cli/schedule.js +2 -1
- package/dist/cli/storage-factory.js +2 -0
- package/dist/cli/types.d.ts +2 -1
- package/dist/cli/workflow-commands.js +2 -0
- package/dist/cli-main.js +1 -1
- package/dist/client/http-client-requests.js +6 -9
- package/dist/client/start-body.js +1 -0
- package/dist/core/application-payload-digest.d.ts +42 -0
- package/dist/core/application-payload-digest.js +76 -0
- package/dist/core/application-primitive-abort.d.ts +50 -0
- package/dist/core/application-primitive-abort.js +40 -0
- package/dist/core/application-primitive-attempt-registry.d.ts +74 -0
- package/dist/core/application-primitive-attempt-registry.js +73 -0
- package/dist/core/application-primitive-codec.d.ts +36 -0
- package/dist/core/application-primitive-codec.js +56 -0
- package/dist/core/application-primitive-commit.d.ts +67 -0
- package/dist/core/application-primitive-commit.js +66 -0
- package/dist/core/application-primitive-guards.d.ts +62 -0
- package/dist/core/application-primitive-guards.js +89 -0
- package/dist/core/application-primitive-payload.d.ts +29 -0
- package/dist/core/application-primitive-payload.js +65 -0
- package/dist/core/application-primitive-timing.d.ts +18 -0
- package/dist/core/application-primitive-timing.js +22 -0
- package/dist/core/atomic-state.js +2 -0
- package/dist/core/catalog/codec.d.ts +40 -0
- package/dist/core/catalog/codec.js +45 -0
- package/dist/core/catalog/errors.d.ts +104 -0
- package/dist/core/catalog/errors.js +41 -0
- package/dist/core/catalog/index.d.ts +25 -0
- package/dist/core/catalog/index.js +22 -0
- package/dist/core/catalog/reference-counts.d.ts +120 -0
- package/dist/core/catalog/reference-counts.js +28 -0
- package/dist/core/catalog/removal.d.ts +105 -0
- package/dist/core/catalog/removal.js +30 -0
- package/dist/core/catalog/storage-io.d.ts +101 -0
- package/dist/core/catalog/storage-io.js +106 -0
- package/dist/core/catalog/types.d.ts +108 -0
- package/dist/core/catalog/types.js +0 -0
- package/dist/core/catalog/workflow-catalog.d.ts +165 -0
- package/dist/core/catalog/workflow-catalog.js +198 -0
- package/dist/core/compare-codepoint.d.ts +13 -0
- package/dist/core/compare-codepoint.js +7 -0
- package/dist/core/compression.js +2 -0
- package/dist/core/context/attributes.d.ts +1 -1
- package/dist/core/context/durable-operations.d.ts +2 -2
- package/dist/core/context/index.js +5 -3
- package/dist/core/context/state-namespace.d.ts +1 -1
- package/dist/core/contract/build.d.ts +64 -0
- package/dist/core/contract/build.js +99 -0
- package/dist/core/contract/compatibility.d.ts +187 -0
- package/dist/core/contract/compatibility.js +37 -0
- package/dist/core/contract/failure.d.ts +64 -0
- package/dist/core/contract/failure.js +4 -0
- package/dist/core/contract/hash.d.ts +92 -0
- package/dist/core/contract/hash.js +34 -0
- package/dist/core/contract/index.d.ts +21 -0
- package/dist/core/contract/index.js +22 -0
- package/dist/core/contract/limits.d.ts +74 -0
- package/dist/core/contract/limits.js +1 -0
- package/dist/core/contract/manifest-parse-schema.d.ts +37 -0
- package/dist/core/contract/manifest-parse-schema.js +106 -0
- package/dist/core/contract/manifest-parse.d.ts +76 -0
- package/dist/core/contract/manifest-parse.js +189 -0
- package/dist/core/contract/manifest.d.ts +56 -0
- package/dist/core/contract/manifest.js +31 -0
- package/dist/core/contract/normalize.d.ts +97 -0
- package/dist/core/contract/normalize.js +127 -0
- package/dist/core/contract/revision.d.ts +29 -0
- package/dist/core/contract/revision.js +5 -0
- package/dist/core/contract/types.d.ts +274 -0
- package/dist/core/contract/types.js +1 -0
- package/dist/core/engine/activity-resolution.js +17 -17
- package/dist/core/engine/bulk-operations-purge.js +14 -20
- package/dist/core/engine/bulk-operations-retry.d.ts +9 -0
- package/dist/core/engine/bulk-operations-retry.js +177 -0
- package/dist/core/engine/bulk-operations-shared.d.ts +18 -0
- package/dist/core/engine/bulk-operations-shared.js +14 -0
- package/dist/core/engine/bulk-operations.js +8 -167
- package/dist/core/engine/callback-creators-bundles.js +4 -2
- package/dist/core/engine/callback-creators-core.js +9 -1
- package/dist/core/engine/callback-creators-schedule.js +2 -2
- package/dist/core/engine/catalog-activation.d.ts +40 -0
- package/dist/core/engine/catalog-activation.js +17 -0
- package/dist/core/engine/catalog-events.d.ts +36 -0
- package/dist/core/engine/catalog-events.js +15 -0
- package/dist/core/engine/catalog-readiness.d.ts +49 -0
- package/dist/core/engine/catalog-readiness.js +61 -0
- package/dist/core/engine/catalog-removal.d.ts +236 -0
- package/dist/core/engine/catalog-removal.js +123 -0
- package/dist/core/engine/catalog-tombstone-recovery.d.ts +56 -0
- package/dist/core/engine/catalog-tombstone-recovery.js +39 -0
- package/dist/core/engine/constraints.js +5 -1
- package/dist/core/engine/construction.d.ts +2 -2
- package/dist/core/engine/construction.js +4 -2
- package/dist/core/engine/decode-revision.d.ts +32 -0
- package/dist/core/engine/decode-revision.js +9 -0
- package/dist/core/engine/disposal.d.ts +6 -2
- package/dist/core/engine/disposal.js +26 -3
- package/dist/core/engine/dynamic-source-errors.d.ts +81 -0
- package/dist/core/engine/dynamic-source-errors.js +25 -0
- package/dist/core/engine/dynamic-source-execution.d.ts +173 -0
- package/dist/core/engine/dynamic-source-execution.js +108 -0
- package/dist/core/engine/engine-internal-types.d.ts +16 -0
- package/dist/core/engine/engine-workflows-namespace.d.ts +140 -0
- package/dist/core/engine/engine-workflows-namespace.js +51 -0
- package/dist/core/engine/finalizer-metadata.d.ts +22 -0
- package/dist/core/engine/finalizer-metadata.js +12 -0
- package/dist/core/engine/handle-result.js +2 -0
- package/dist/core/engine/index.d.ts +91 -0
- package/dist/core/engine/index.js +78 -6
- package/dist/core/engine/inline-launch-queue.js +1 -1
- package/dist/core/engine/internals.d.ts +54 -15
- package/dist/core/engine/internals.js +6 -0
- package/dist/core/engine/lifecycle/checkpoint-launch.d.ts +29 -0
- package/dist/core/engine/lifecycle/checkpoint-launch.js +75 -0
- package/dist/core/engine/lifecycle/delayed-start-registration.d.ts +30 -0
- package/dist/core/engine/lifecycle/delayed-start-registration.js +11 -0
- package/dist/core/engine/lifecycle/fork-helpers.d.ts +33 -1
- package/dist/core/engine/lifecycle/fork-helpers.js +3 -1
- package/dist/core/engine/lifecycle/recovery-revision-groups.d.ts +75 -0
- package/dist/core/engine/lifecycle/recovery-revision-groups.js +64 -0
- package/dist/core/engine/lifecycle/resume-generation-guard.d.ts +58 -0
- package/dist/core/engine/lifecycle/resume-generation-guard.js +11 -0
- package/dist/core/engine/lifecycle/resume.js +18 -9
- package/dist/core/engine/lifecycle/shared.d.ts +43 -0
- package/dist/core/engine/lifecycle/standalone-claim-acquire.d.ts +12 -0
- package/dist/core/engine/lifecycle/standalone-claim-acquire.js +6 -0
- package/dist/core/engine/lifecycle/start-commit-errors.d.ts +12 -0
- package/dist/core/engine/lifecycle/start-commit-errors.js +6 -0
- package/dist/core/engine/lifecycle/start-commit.d.ts +22 -7
- package/dist/core/engine/lifecycle/start-commit.js +49 -15
- package/dist/core/engine/lifecycle/start-exec.d.ts +18 -2
- package/dist/core/engine/lifecycle/start-exec.js +7 -5
- package/dist/core/engine/lifecycle/start-or-signal-create.js +1 -3
- package/dist/core/engine/lifecycle/start-or-signal.js +1 -1
- package/dist/core/engine/lifecycle/start-precondition-attribution.d.ts +49 -0
- package/dist/core/engine/lifecycle/start-precondition-attribution.js +13 -0
- package/dist/core/engine/lifecycle/start-revision-resolution.d.ts +34 -0
- package/dist/core/engine/lifecycle/start-revision-resolution.js +11 -0
- package/dist/core/engine/lifecycle/start-state.d.ts +16 -0
- package/dist/core/engine/lifecycle/start-state.js +60 -0
- package/dist/core/engine/lifecycle/start-terminal-conflict-purge.d.ts +66 -3
- package/dist/core/engine/lifecycle/start-terminal-conflict-purge.js +13 -3
- package/dist/core/engine/lifecycle/start.d.ts +16 -6
- package/dist/core/engine/lifecycle/start.js +39 -66
- package/dist/core/engine/lifecycle/transition.d.ts +3 -4
- package/dist/core/engine/lifecycle/transition.js +30 -80
- package/dist/core/engine/lifecycle.d.ts +4 -2
- package/dist/core/engine/lifecycle.js +6 -6
- package/dist/core/engine/listing.js +15 -1
- package/dist/core/engine/memo-durable-activity.js +4 -1
- package/dist/core/engine/nonterminal-revision-count.d.ts +25 -0
- package/dist/core/engine/nonterminal-revision-count.js +16 -0
- package/dist/core/engine/operations-time.d.ts +5 -23
- package/dist/core/engine/operations-time.js +13 -11
- package/dist/core/engine/ownership-bootstrap.d.ts +1 -1
- package/dist/core/engine/pinned-schedule-revision-count.d.ts +26 -0
- package/dist/core/engine/pinned-schedule-revision-count.js +19 -0
- package/dist/core/engine/pinned-schedule-revision.d.ts +76 -0
- package/dist/core/engine/pinned-schedule-revision.js +53 -0
- package/dist/core/engine/registration.d.ts +106 -0
- package/dist/core/engine/registration.js +28 -7
- package/dist/core/engine/retention.js +9 -2
- package/dist/core/engine/revision-errors.d.ts +71 -0
- package/dist/core/engine/revision-errors.js +13 -0
- package/dist/core/engine/schedule-revision-fire.d.ts +17 -0
- package/dist/core/engine/schedule-revision-fire.js +3 -0
- package/dist/core/engine/schedule-run.js +2 -1
- package/dist/core/engine/schedules.d.ts +2 -1
- package/dist/core/engine/schedules.js +28 -9
- package/dist/core/engine/source-diagnostics.d.ts +76 -0
- package/dist/core/engine/source-diagnostics.js +105 -0
- package/dist/core/engine/source-registration.d.ts +42 -0
- package/dist/core/engine/source-registration.js +38 -0
- package/dist/core/engine/source-resolution.d.ts +101 -0
- package/dist/core/engine/source-resolution.js +154 -0
- package/dist/core/engine/source-runtime-state.d.ts +92 -0
- package/dist/core/engine/source-runtime-state.js +36 -0
- package/dist/core/engine/storage-io.d.ts +19 -2
- package/dist/core/engine/storage-io.js +21 -2
- package/dist/core/engine/termination/finalizer-registration.d.ts +18 -0
- package/dist/core/engine/termination/finalizer-registration.js +21 -0
- package/dist/core/engine/termination/finalizer.d.ts +16 -19
- package/dist/core/engine/termination/finalizer.js +3 -3
- package/dist/core/engine/time-operation-callbacks.d.ts +32 -0
- package/dist/core/engine/time-operation-callbacks.js +0 -0
- package/dist/core/engine/validation/schedule-cadence.d.ts +16 -0
- package/dist/core/engine/validation/schedule-cadence.js +20 -0
- package/dist/core/engine/validation/schedule-options.d.ts +4 -1
- package/dist/core/engine/validation/schedule-options.js +14 -0
- package/dist/core/engine/validation/schedule-revision.d.ts +24 -0
- package/dist/core/engine/validation/schedule-revision.js +21 -0
- package/dist/core/engine/validation/schedule-warnings.d.ts +11 -0
- package/dist/core/engine/validation/schedule-warnings.js +5 -0
- package/dist/core/engine/validation/schedule.d.ts +4 -3
- package/dist/core/engine/validation/schedule.js +15 -26
- package/dist/core/engine/validation.js +5 -2
- package/dist/core/engine/workflow-claim-reclaim-target.d.ts +1 -1
- package/dist/core/engine/workflow-claim-reclaim-target.js +16 -2
- package/dist/core/engine/workflow-retention-deadline.d.ts +16 -0
- package/dist/core/engine/workflow-retention-deadline.js +33 -0
- package/dist/core/events/catalog-events.d.ts +117 -0
- package/dist/core/events/catalog-events.js +62 -0
- package/dist/core/events/event-map.d.ts +11 -0
- package/dist/core/events/index.d.ts +2 -0
- package/dist/core/events/index.js +2 -0
- package/dist/core/events/workflow-source-events.d.ts +102 -0
- package/dist/core/events/workflow-source-events.js +57 -0
- package/dist/core/execution-strategy.d.ts +7 -0
- package/dist/core/inline-execution-strategy.context-options.d.ts +1 -1
- package/dist/core/inline-execution-strategy.js +1 -1
- package/dist/core/mailbox-admission.d.ts +26 -0
- package/dist/core/mailbox-admission.js +130 -0
- package/dist/core/mailbox-claims.d.ts +251 -0
- package/dist/core/mailbox-claims.js +0 -0
- package/dist/core/mailbox-codec.d.ts +32 -0
- package/dist/core/mailbox-codec.js +221 -0
- package/dist/core/mailbox-contract.d.ts +290 -0
- package/dist/core/mailbox-contract.js +0 -0
- package/dist/core/mailbox-delivery.d.ts +37 -0
- package/dist/core/mailbox-delivery.js +193 -0
- package/dist/core/mailbox-guards.d.ts +78 -0
- package/dist/core/mailbox-guards.js +58 -0
- package/dist/core/mailbox-index-codec.d.ts +41 -0
- package/dist/core/mailbox-index-codec.js +71 -0
- package/dist/core/mailbox-internals.d.ts +156 -0
- package/dist/core/mailbox-internals.js +154 -0
- package/dist/core/mailbox-maintenance.d.ts +29 -0
- package/dist/core/mailbox-maintenance.js +196 -0
- package/dist/core/mailbox-settlement.d.ts +69 -0
- package/dist/core/mailbox-settlement.js +206 -0
- package/dist/core/mailbox-storage.d.ts +117 -0
- package/dist/core/mailbox-storage.js +115 -0
- package/dist/core/mailbox-transition-helpers.d.ts +70 -0
- package/dist/core/mailbox-transition-helpers.js +43 -0
- package/dist/core/mailbox-transitions-recovery.d.ts +28 -0
- package/dist/core/mailbox-transitions-recovery.js +64 -0
- package/dist/core/mailbox-transitions.d.ts +138 -0
- package/dist/core/mailbox-transitions.js +180 -0
- package/dist/core/mailbox-types.d.ts +406 -0
- package/dist/core/mailbox-types.js +16 -0
- package/dist/core/mailbox-validation.d.ts +65 -0
- package/dist/core/mailbox-validation.js +73 -0
- package/dist/core/mailbox-waits.d.ts +50 -0
- package/dist/core/mailbox-waits.js +97 -0
- package/dist/core/mailbox.d.ts +163 -0
- package/dist/core/mailbox.js +211 -0
- package/dist/core/outbox-claims.d.ts +307 -0
- package/dist/core/outbox-claims.js +0 -0
- package/dist/core/outbox-codec.d.ts +24 -0
- package/dist/core/outbox-codec.js +257 -0
- package/dist/core/outbox-contract.d.ts +346 -0
- package/dist/core/outbox-contract.js +0 -0
- package/dist/core/outbox-delivery.d.ts +34 -0
- package/dist/core/outbox-delivery.js +149 -0
- package/dist/core/outbox-drain.d.ts +29 -0
- package/dist/core/outbox-drain.js +158 -0
- package/dist/core/outbox-enqueue.d.ts +24 -0
- package/dist/core/outbox-enqueue.js +115 -0
- package/dist/core/outbox-guards.d.ts +76 -0
- package/dist/core/outbox-guards.js +60 -0
- package/dist/core/outbox-index-codec.d.ts +33 -0
- package/dist/core/outbox-index-codec.js +71 -0
- package/dist/core/outbox-internals.d.ts +99 -0
- package/dist/core/outbox-internals.js +159 -0
- package/dist/core/outbox-listing.d.ts +12 -0
- package/dist/core/outbox-listing.js +38 -0
- package/dist/core/outbox-maintenance.d.ts +28 -0
- package/dist/core/outbox-maintenance.js +191 -0
- package/dist/core/outbox-operations.d.ts +18 -0
- package/dist/core/outbox-operations.js +46 -0
- package/dist/core/outbox-runner.d.ts +30 -0
- package/dist/core/outbox-runner.js +217 -0
- package/dist/core/outbox-settlement.d.ts +57 -0
- package/dist/core/outbox-settlement.js +183 -0
- package/dist/core/outbox-storage.d.ts +107 -0
- package/dist/core/outbox-storage.js +127 -0
- package/dist/core/outbox-transition-helpers.d.ts +83 -0
- package/dist/core/outbox-transition-helpers.js +63 -0
- package/dist/core/outbox-transitions-recovery.d.ts +30 -0
- package/dist/core/outbox-transitions-recovery.js +42 -0
- package/dist/core/outbox-transitions.d.ts +145 -0
- package/dist/core/outbox-transitions.js +236 -0
- package/dist/core/outbox-types.d.ts +400 -0
- package/dist/core/outbox-types.js +20 -0
- package/dist/core/outbox-validation.d.ts +101 -0
- package/dist/core/outbox-validation.js +127 -0
- package/dist/core/outbox-waits.d.ts +39 -0
- package/dist/core/outbox-waits.js +88 -0
- package/dist/core/outbox.d.ts +156 -0
- package/dist/core/outbox.js +234 -0
- package/dist/core/registry-limits.d.ts +49 -0
- package/dist/core/registry-limits.js +10 -0
- package/dist/core/registry-schema-conversion.d.ts +20 -0
- package/dist/core/registry-schema-conversion.js +22 -0
- package/dist/core/registry-snapshot.d.ts +91 -42
- package/dist/core/registry-snapshot.js +39 -77
- package/dist/core/registry-workflow-contract-draft.d.ts +32 -0
- package/dist/core/registry-workflow-contract-draft.js +28 -0
- package/dist/core/registry-workflow-manifest.d.ts +122 -0
- package/dist/core/registry-workflow-manifest.js +92 -0
- package/dist/core/source/errors.d.ts +55 -0
- package/dist/core/source/errors.js +13 -0
- package/dist/core/source/index.d.ts +19 -0
- package/dist/core/source/index.js +4 -0
- package/dist/core/source/resolvers.d.ts +45 -0
- package/dist/core/source/resolvers.js +9 -0
- package/dist/core/source/types.d.ts +211 -0
- package/dist/core/source/types.js +0 -0
- package/dist/core/source/validate.d.ts +91 -0
- package/dist/core/source/validate.js +62 -0
- package/dist/core/source/workflow-source.d.ts +43 -0
- package/dist/core/source/workflow-source.js +16 -0
- package/dist/core/types/checkpoint.d.ts +14 -0
- package/dist/core/types/schedules.d.ts +52 -1
- package/dist/core/types/state.d.ts +16 -0
- package/dist/core/types/workflow-registries.d.ts +7 -0
- package/dist/core/types/workflow-registry.d.ts +12 -0
- package/dist/core/versioning.js +2 -0
- package/dist/core/weft-error.d.ts +1 -1
- package/dist/core/weft-error.js +12 -1
- package/dist/core/worker-execution-strategy.d.ts +1 -0
- package/dist/core/worker-execution-strategy.js +13 -1
- package/dist/core/worker-fault-handling.d.ts +10 -0
- package/dist/core/worker-fault-handling.js +1 -0
- package/dist/core/worker-inbound-message.d.ts +1 -0
- package/dist/core/worker-inbound-message.js +1 -0
- package/dist/core/worker-protocol-guard.js +4 -0
- package/dist/core/worker-protocol.d.ts +7 -0
- package/dist/core/worker-protocol.js +2 -1
- package/dist/core/worker-turn-watchdog.d.ts +8 -1
- package/dist/core/worker-turn-watchdog.js +3 -2
- package/dist/diagnostics/format.js +5 -0
- package/dist/diagnostics/types.d.ts +24 -0
- package/dist/diagnostics/version-check.js +8 -2
- package/dist/http.js +2 -2
- package/dist/index.d.ts +25 -4
- package/dist/index.js +57 -0
- package/dist/indexeddb.js +1 -1
- package/dist/json-schema.js +3 -3
- package/dist/mcp/resources.js +2 -0
- package/dist/runtime/portable.d.ts +9 -1
- package/dist/server/fault-to-json-rpc.js +4 -1
- package/dist/server/handler/auth-context-principal.js +4 -0
- package/dist/server/index.d.ts +11 -0
- package/dist/server/json-rpc-http.js +2 -0
- package/dist/server/json-rpc-websocket.js +6 -4
- package/dist/server/operation-catalog/index.d.ts +1 -1
- package/dist/server/operation-catalog/pipeline-helpers.js +2 -0
- package/dist/server/operation-catalog/types.d.ts +17 -0
- package/dist/server/operation-fault.d.ts +5 -0
- package/dist/server/operation-fault.js +4 -1
- package/dist/server/operations/activate-workflow-revision.d.ts +30 -0
- package/dist/server/operations/activate-workflow-revision.js +69 -0
- package/dist/server/operations/create-schedule.d.ts +2 -0
- package/dist/server/operations/create-schedule.js +10 -6
- package/dist/server/operations/fleet-events-subscription.js +1 -1
- package/dist/server/operations/fork-workflow.js +1 -1
- package/dist/server/operations/get-active-workflow-revision.d.ts +32 -0
- package/dist/server/operations/get-active-workflow-revision.js +46 -0
- package/dist/server/operations/get-catalog-diagnostics.d.ts +113 -0
- package/dist/server/operations/get-catalog-diagnostics.js +65 -0
- package/dist/server/operations/get-registry.js +17 -4
- package/dist/server/operations/get-task-detail-schema.d.ts +8 -0
- package/dist/server/operations/get-task-detail-schema.js +1 -0
- package/dist/server/operations/get-task-detail.d.ts +8 -0
- package/dist/server/operations/get-task-detail.js +1 -0
- package/dist/server/operations/get-task-diagnostics.d.ts +4 -4
- package/dist/server/operations/get-workflow-revision.d.ts +25 -0
- package/dist/server/operations/get-workflow-revision.js +50 -0
- package/dist/server/operations/install-workflow-revision.d.ts +27 -0
- package/dist/server/operations/install-workflow-revision.js +46 -0
- package/dist/server/operations/list-workflow-revisions.d.ts +20 -0
- package/dist/server/operations/list-workflow-revisions.js +40 -0
- package/dist/server/operations/preload-workflow-revision.d.ts +28 -0
- package/dist/server/operations/preload-workflow-revision.js +60 -0
- package/dist/server/operations/schedule-faults.d.ts +1 -0
- package/dist/server/operations/schedule-faults.js +32 -4
- package/dist/server/operations/schedule-rest-body.d.ts +1 -0
- package/dist/server/operations/schedule-rest-body.js +2 -1
- package/dist/server/operations/start-or-signal-workflow.js +1 -1
- package/dist/server/operations/start-workflow.js +1 -1
- package/dist/server/operations/static-registrations.js +42 -0
- package/dist/server/operations/storage.js +2 -2
- package/dist/server/operations/submit-review-decision.js +1 -1
- package/dist/server/operations/update-schedule.d.ts +2 -0
- package/dist/server/operations/update-schedule.js +4 -2
- package/dist/server/operations/workflow-catalog-operation-helpers.d.ts +59 -0
- package/dist/server/operations/workflow-catalog-operation-helpers.js +162 -0
- package/dist/server/runtime/task-dispatch-envelope.d.ts +14 -0
- package/dist/server/runtime/task-dispatch-envelope.js +32 -0
- package/dist/server/runtime/task-dispatch-revision.d.ts +29 -0
- package/dist/server/runtime/task-dispatch-revision.js +13 -0
- package/dist/server/runtime/task-dispatch.js +12 -37
- package/dist/server/runtime/task-ledger-recovery.js +1 -1
- package/dist/server/runtime/task-ledger-runtime.d.ts +14 -2
- package/dist/server/runtime/task-ledger-runtime.js +5 -3
- package/dist/server/runtime/task-polling.js +9 -3
- package/dist/server/runtime/task-reconciliation.js +2 -1
- package/dist/server/runtime/websocket-upgrade.js +2 -0
- package/dist/server/runtime/websocket-worker.js +9 -0
- package/dist/server/task-ledger-codec.d.ts +9 -0
- package/dist/server/task-ledger-codec.js +4 -1
- package/dist/server/task-ledger-transition-helpers.js +1 -0
- package/dist/server/task-ledger-types.d.ts +9 -0
- package/dist/server/task-ledger.d.ts +1 -1
- package/dist/server/task-ledger.js +2 -1
- package/dist/server/task-queue-types.d.ts +2 -0
- package/dist/storage/bun-sql.js +51 -6
- package/dist/storage/catalog-keys.d.ts +64 -0
- package/dist/storage/catalog-keys.js +8 -0
- package/dist/storage/compressed-storage.js +1 -1
- package/dist/storage/derived-operations.js +1 -1
- package/dist/storage/index.d.ts +28 -1
- package/dist/storage/interface.d.ts +28 -1
- package/dist/storage/interface.js +1 -1
- package/dist/storage/key-encoding.d.ts +15 -0
- package/dist/storage/key-encoding.js +3 -0
- package/dist/storage/key-prefixes.d.ts +1 -1
- package/dist/storage/key-prefixes.js +16 -0
- package/dist/storage/lmdb.d.ts +54 -1
- package/dist/storage/lmdb.js +1 -1
- package/dist/storage/mailbox-keys.d.ts +80 -0
- package/dist/storage/mailbox-keys.js +14 -0
- package/dist/storage/memory.js +1 -1
- package/dist/storage/neon.js +2 -2
- package/dist/storage/node-sqlite-loader.d.ts +1 -1
- package/dist/storage/node-sqlite.js +51 -6
- package/dist/storage/outbox-keys.d.ts +77 -0
- package/dist/storage/outbox-keys.js +14 -0
- package/dist/storage/postgres.js +2 -2
- package/dist/storage/resolve.js +1 -1
- package/dist/storage/scoped-storage.js +1 -1
- package/dist/storage/storage-configuration.d.ts +6 -0
- package/dist/storage/testing.js +1 -1
- package/dist/storage/turso.js +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/web-extension.js +1 -1
- package/dist/worker/manifest/registry-contract-builder.d.ts +21 -3
- package/dist/worker/manifest/registry-contract-builder.js +40 -31
- package/dist/worker/protocol-messages.d.ts +17 -0
- package/dist/worker/protocol-schemas.d.ts +32 -0
- package/dist/worker/protocol-schemas.js +7 -3
- package/dist/worker/protocol-task-result.js +35 -3
- package/dist/worker/protocol.js +1 -1
- package/dist/worker/registry/types.d.ts +2 -0
- package/dist/worker/registry.d.ts +1 -1
- package/dist/worker/registry.js +3 -1
- package/dist/workers/workflow-runner.d.ts +9 -0
- package/dist/workers/workflow-runner.js +9 -2
- package/dist/workers/workflow-worker-entry.js +9 -4
- package/package.json +2 -2
|
@@ -34,7 +34,9 @@
|
|
|
34
34
|
* `data` payload forms the basis of cross-transport parity: every fault is
|
|
35
35
|
* serialized consistently across REST and JSON-RPC transports.
|
|
36
36
|
*/
|
|
37
|
+
import type { WorkflowCompatibilityReason } from '../core/contract/compatibility.ts';
|
|
37
38
|
import type { FaultCode } from '../core/fault-code.ts';
|
|
39
|
+
import type { WorkflowSourceRejectionReason } from '../core/source/errors.ts';
|
|
38
40
|
import { type WeftErrorCode } from '../core/weft-error.ts';
|
|
39
41
|
/** Transport identifiers as seen by `executeOperation`. */
|
|
40
42
|
export type TransportKind = 'http-rest' | 'jsonRpcHttp' | 'jsonRpcWebSocket' | 'jsonRpcStdio';
|
|
@@ -78,6 +80,9 @@ export type OperationFault = {
|
|
|
78
80
|
missingTypes?: readonly string[] | undefined;
|
|
79
81
|
missingWorkflowCount?: number | undefined;
|
|
80
82
|
samplesTruncated?: boolean | undefined;
|
|
83
|
+
currentGeneration?: number | undefined;
|
|
84
|
+
compatibilityReasons?: readonly WorkflowCompatibilityReason[] | undefined;
|
|
85
|
+
sourceValidationReasons?: readonly WorkflowSourceRejectionReason[] | undefined;
|
|
81
86
|
};
|
|
82
87
|
} | {
|
|
83
88
|
code: 'Unprocessable';
|
|
@@ -30,7 +30,10 @@ const NO_REST_FAULT_DATA = Object.freeze({}), REST_FAULT_DATA_EXTRACTORS = {
|
|
|
30
30
|
Conflict: (data) => filterDefined({
|
|
31
31
|
missingTypes: data.missingTypes === void 0 ? void 0 : [...data.missingTypes],
|
|
32
32
|
missingWorkflowCount: data.missingWorkflowCount,
|
|
33
|
-
samplesTruncated: data.samplesTruncated
|
|
33
|
+
samplesTruncated: data.samplesTruncated,
|
|
34
|
+
currentGeneration: data.currentGeneration,
|
|
35
|
+
compatibilityReasons: data.compatibilityReasons === void 0 ? void 0 : [...data.compatibilityReasons],
|
|
36
|
+
sourceValidationReasons: data.sourceValidationReasons === void 0 ? void 0 : [...data.sourceValidationReasons]
|
|
34
37
|
}),
|
|
35
38
|
Unprocessable: () => NO_REST_FAULT_DATA,
|
|
36
39
|
PayloadTooLarge: (data) => ({ maxBytes: data.maxBytes }),
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `weft.workflows.revisions.activate` operation + REST binding.
|
|
3
|
+
*
|
|
4
|
+
* Activates an already-installed `(name, revision)` as the durably
|
|
5
|
+
* advertised active revision — bookkeeping only. See
|
|
6
|
+
* `core/engine/engine-workflows-namespace.ts`'s module doc: activation
|
|
7
|
+
* moves `RegistrySnapshot.activeRevisions`, never which in-process handler
|
|
8
|
+
* `engine.start()` dispatches to.
|
|
9
|
+
*
|
|
10
|
+
* @module server/operations/activate-workflow-revision
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import type { WorkflowCatalogActivationResult } from '../../core/catalog/index.ts';
|
|
14
|
+
import type { UnknownRestBinding } from '../rest-bindings.ts';
|
|
15
|
+
declare const activateWorkflowRevisionInput: z.ZodObject<{
|
|
16
|
+
name: z.ZodUnknown;
|
|
17
|
+
revision: z.ZodUnknown;
|
|
18
|
+
expectedGeneration: z.ZodOptional<z.ZodUnknown>;
|
|
19
|
+
policy: z.ZodOptional<z.ZodUnknown>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type ActivateWorkflowRevisionInput = z.infer<typeof activateWorkflowRevisionInput>;
|
|
22
|
+
export type ActivateWorkflowRevisionOutput = WorkflowCatalogActivationResult;
|
|
23
|
+
export declare const activateWorkflowRevisionOperation: import("../operation-catalog.ts").OperationDefinition<{
|
|
24
|
+
name: unknown;
|
|
25
|
+
revision: unknown;
|
|
26
|
+
expectedGeneration?: unknown;
|
|
27
|
+
policy?: unknown;
|
|
28
|
+
}, WorkflowCatalogActivationResult, unknown>;
|
|
29
|
+
export declare const activateWorkflowRevisionRestBinding: UnknownRestBinding;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineOperation } from "../operation-registry.js";
|
|
3
|
+
import {
|
|
4
|
+
activationRefusalToFault,
|
|
5
|
+
readWorkflowCatalogRestBody,
|
|
6
|
+
throwWorkflowCatalogOperationFault,
|
|
7
|
+
validateExpectedGenerationField,
|
|
8
|
+
validatePolicyField,
|
|
9
|
+
validateWorkflowNameField,
|
|
10
|
+
validateWorkflowRevisionField,
|
|
11
|
+
workflowsAdminAccess
|
|
12
|
+
} from "./workflow-catalog-operation-helpers.js";
|
|
13
|
+
const activateWorkflowRevisionInput = z.object({
|
|
14
|
+
name: z.unknown().describe("Workflow name. Runtime validation requires a wire-safe identifier."),
|
|
15
|
+
revision: z.unknown().describe("Installed revision to activate. Runtime validation requires a non-empty string."),
|
|
16
|
+
expectedGeneration: z.unknown().optional().describe("The durable generation this caller last observed. Required once the workflow has an " + "active revision \u2014 omitting it there refuses with expected-generation-required."),
|
|
17
|
+
policy: z.unknown().optional().describe("Optional compatibility policy override.")
|
|
18
|
+
}), activateWorkflowRevisionOutput = z.unknown();
|
|
19
|
+
export const activateWorkflowRevisionOperation = defineOperation({
|
|
20
|
+
name: "weft.workflows.revisions.activate",
|
|
21
|
+
mcpExposable: !1,
|
|
22
|
+
summary: "Activate an installed workflow revision",
|
|
23
|
+
description: "Activate an already-installed `(name, revision)` as the durably advertised active revision for `name`. Returns the structured result verbatim: `{ applied: true, pointer }` on success, " + "or `{ applied: false, reason, ... }` on refusal \u2014 surfaced as a Conflict fault with `reason` " + "one of `incompatible`, `stale-generation`, `expected-generation-required`, or `conflict`. Faults with NotFound when the revision was never installed. Never changes which in-process " + "handler `engine.start()` dispatches to \u2014 see the workflow-versioning guide.",
|
|
24
|
+
destructive: !0,
|
|
25
|
+
tags: ["Workflow Catalog"],
|
|
26
|
+
inputSchema: activateWorkflowRevisionInput,
|
|
27
|
+
outputSchema: activateWorkflowRevisionOutput,
|
|
28
|
+
access: workflowsAdminAccess,
|
|
29
|
+
producibleFaults: ["NotFound", "Conflict", "InvalidParams"],
|
|
30
|
+
discoverable: !0,
|
|
31
|
+
transports: { http: !0, jsonRpcHttp: !0, jsonRpcWebSocket: !0, jsonRpcStdio: !0 },
|
|
32
|
+
unknownKeyPolicy: { http: "strip", jsonRpc: "reject" },
|
|
33
|
+
invoke: async ({ input, engine }) => {
|
|
34
|
+
const e = engine, name = validateWorkflowNameField(input.name), revision = validateWorkflowRevisionField(input.revision), expectedGeneration = validateExpectedGenerationField(input.expectedGeneration), policy = validatePolicyField(input.policy);
|
|
35
|
+
let result;
|
|
36
|
+
try {
|
|
37
|
+
result = await e.workflows.activate(name, revision, {
|
|
38
|
+
...expectedGeneration === void 0 ? {} : { expectedGeneration },
|
|
39
|
+
...policy === void 0 ? {} : { policy }
|
|
40
|
+
});
|
|
41
|
+
} catch (error) {
|
|
42
|
+
throwWorkflowCatalogOperationFault(error);
|
|
43
|
+
}
|
|
44
|
+
if (!result.applied)
|
|
45
|
+
throw activationRefusalToFault(result);
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
}), activateWorkflowRevisionRestBinding = {
|
|
49
|
+
method: "POST",
|
|
50
|
+
path: "/v1/registry/workflows/:name/activate",
|
|
51
|
+
pathParamNames: ["name"],
|
|
52
|
+
operationName: "weft.workflows.revisions.activate",
|
|
53
|
+
inputSources: {
|
|
54
|
+
name: { kind: "path", pathParam: "name" },
|
|
55
|
+
revision: { kind: "body-field", bodyField: "revision" },
|
|
56
|
+
expectedGeneration: { kind: "body-field", bodyField: "expectedGeneration" },
|
|
57
|
+
policy: { kind: "body-field", bodyField: "policy" }
|
|
58
|
+
},
|
|
59
|
+
extractInput: async (request, pathParams, context) => {
|
|
60
|
+
const body = await readWorkflowCatalogRestBody(request, context);
|
|
61
|
+
return {
|
|
62
|
+
name: pathParams.name ?? "",
|
|
63
|
+
revision: body.revision,
|
|
64
|
+
expectedGeneration: body.expectedGeneration,
|
|
65
|
+
policy: body.policy
|
|
66
|
+
};
|
|
67
|
+
},
|
|
68
|
+
success: { kind: "json", status: 200 }
|
|
69
|
+
};
|
|
@@ -10,6 +10,7 @@ declare const createScheduleInput: z.ZodObject<{
|
|
|
10
10
|
overlap: z.ZodOptional<z.ZodUnknown>;
|
|
11
11
|
backfill: z.ZodOptional<z.ZodUnknown>;
|
|
12
12
|
jitter: z.ZodOptional<z.ZodUnknown>;
|
|
13
|
+
revisionPolicy: z.ZodOptional<z.ZodUnknown>;
|
|
13
14
|
}, z.core.$strip>;
|
|
14
15
|
declare const createScheduleOutput: z.ZodObject<{
|
|
15
16
|
id: z.ZodString;
|
|
@@ -26,6 +27,7 @@ export declare const createScheduleOperation: import("../operation-catalog.ts").
|
|
|
26
27
|
overlap?: unknown;
|
|
27
28
|
backfill?: unknown;
|
|
28
29
|
jitter?: unknown;
|
|
30
|
+
revisionPolicy?: unknown;
|
|
29
31
|
}, {
|
|
30
32
|
id: string;
|
|
31
33
|
}, unknown>;
|
|
@@ -19,7 +19,8 @@ const createScheduleInput = z.object({
|
|
|
19
19
|
description: z.unknown().optional().describe("Operator-facing schedule description. Runtime validation requires a string."),
|
|
20
20
|
overlap: z.unknown().optional(),
|
|
21
21
|
backfill: z.unknown().optional(),
|
|
22
|
-
jitter: z.unknown().optional()
|
|
22
|
+
jitter: z.unknown().optional(),
|
|
23
|
+
revisionPolicy: z.unknown().optional().describe('Revision policy (WFT-20). Runtime validation requires "active-at-fire" or "pinned"; defaults to "active-at-fire".')
|
|
23
24
|
}), createScheduleOutput = z.object({
|
|
24
25
|
id: z.string()
|
|
25
26
|
});
|
|
@@ -42,12 +43,13 @@ function validateOptionalScheduleFields(input) {
|
|
|
42
43
|
description: validatedOptions.description,
|
|
43
44
|
overlap: validatedOptions.overlap,
|
|
44
45
|
backfill: validatedOptions.backfill,
|
|
45
|
-
jitter: validatedOptions.jitter
|
|
46
|
+
jitter: validatedOptions.jitter,
|
|
47
|
+
revisionPolicy: validatedOptions.revisionPolicy
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
function validateCreateScheduleInput(input) {
|
|
49
|
-
const { type, spec } = validateRequiredScheduleFields(input), { id, description, overlap, backfill, jitter } = validateOptionalScheduleFields(input);
|
|
50
|
-
return { type, spec, id, description, overlap, backfill, jitter };
|
|
51
|
+
const { type, spec } = validateRequiredScheduleFields(input), { id, description, overlap, backfill, jitter, revisionPolicy } = validateOptionalScheduleFields(input);
|
|
52
|
+
return { type, spec, id, description, overlap, backfill, jitter, revisionPolicy };
|
|
51
53
|
}
|
|
52
54
|
export const createScheduleOperation = defineOperation({
|
|
53
55
|
name: "weft.schedules.create",
|
|
@@ -68,7 +70,8 @@ export const createScheduleOperation = defineOperation({
|
|
|
68
70
|
...validated.description !== void 0 ? { description: validated.description } : {},
|
|
69
71
|
...validated.overlap !== void 0 ? { overlap: validated.overlap } : {},
|
|
70
72
|
...validated.backfill !== void 0 ? { backfill: validated.backfill } : {},
|
|
71
|
-
...validated.jitter !== void 0 ? { jitter: validated.jitter } : {}
|
|
73
|
+
...validated.jitter !== void 0 ? { jitter: validated.jitter } : {},
|
|
74
|
+
...validated.revisionPolicy !== void 0 ? { revisionPolicy: validated.revisionPolicy } : {}
|
|
72
75
|
};
|
|
73
76
|
try {
|
|
74
77
|
return { id: (await typedEngine.schedule(validated.type, input.input, validated.spec, options)).id };
|
|
@@ -90,7 +93,8 @@ export const createScheduleOperation = defineOperation({
|
|
|
90
93
|
description: { kind: "body-field", bodyField: "description" },
|
|
91
94
|
overlap: { kind: "body-field", bodyField: "overlap" },
|
|
92
95
|
backfill: { kind: "body-field", bodyField: "backfill" },
|
|
93
|
-
jitter: { kind: "body-field", bodyField: "jitter" }
|
|
96
|
+
jitter: { kind: "body-field", bodyField: "jitter" },
|
|
97
|
+
revisionPolicy: { kind: "body-field", bodyField: "revisionPolicy" }
|
|
94
98
|
},
|
|
95
99
|
extractInput: async (request, _pathParams, context) => {
|
|
96
100
|
const record = await parseScheduleRestBodyRequestRecord(request, context);
|
|
@@ -85,7 +85,7 @@ function getFleetEventFeed(engine, transport) {
|
|
|
85
85
|
if (isFleetEventSubscriber(fleetFeed))
|
|
86
86
|
return fleetFeed;
|
|
87
87
|
}
|
|
88
|
-
raiseFault(fleetEventsSubscriptionOperation, {
|
|
88
|
+
return raiseFault(fleetEventsSubscriptionOperation, {
|
|
89
89
|
code: "UnsupportedTransport",
|
|
90
90
|
message: "Fleet event subscription requires a WebSocket fleet event feed",
|
|
91
91
|
data: { transport, supported: ["jsonRpcWebSocket"] }
|
|
@@ -54,7 +54,7 @@ export const forkWorkflowOperation = defineOperation({
|
|
|
54
54
|
try {
|
|
55
55
|
return { id: (await typedEngine.fork(input.workflowId, options)).id };
|
|
56
56
|
} catch (error) {
|
|
57
|
-
resolveForkAccess(error);
|
|
57
|
+
return resolveForkAccess(error);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
}), forkWorkflowRestBinding = {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `weft.workflows.active.get` operation + REST binding.
|
|
3
|
+
*
|
|
4
|
+
* Returns the currently active revision pointer for one workflow name.
|
|
5
|
+
* Named `active.get` rather than `revisions.getActive` — `OPERATION_NAME_PATTERN`
|
|
6
|
+
* forbids camelCase wire segments, and `getActive` is only this namespace
|
|
7
|
+
* method's TypeScript name (`engine.workflows.getActive`).
|
|
8
|
+
*
|
|
9
|
+
* In-memory only: matches `RegistrySnapshot.activeRevisions`' existing
|
|
10
|
+
* staleness contract exactly (see `engine-workflows-namespace.ts`'s
|
|
11
|
+
* `getActive` JSDoc), which is what makes "operations and the registry
|
|
12
|
+
* snapshot agree" true by construction.
|
|
13
|
+
*
|
|
14
|
+
* @module server/operations/get-active-workflow-revision
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
import type { WorkflowCatalogActivePointer } from '../../core/catalog/index.ts';
|
|
18
|
+
import type { UnknownRestBinding } from '../rest-bindings.ts';
|
|
19
|
+
declare const getActiveWorkflowRevisionInput: z.ZodObject<{
|
|
20
|
+
name: z.ZodUnknown;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export type GetActiveWorkflowRevisionInput = z.infer<typeof getActiveWorkflowRevisionInput>;
|
|
23
|
+
export type GetActiveWorkflowRevisionOutput = WorkflowCatalogActivePointer;
|
|
24
|
+
export declare const getActiveWorkflowRevisionOperation: import("../operation-catalog.ts").OperationDefinition<{
|
|
25
|
+
name: unknown;
|
|
26
|
+
}, Readonly<{
|
|
27
|
+
revision: string;
|
|
28
|
+
generation: number;
|
|
29
|
+
activatedAt: number;
|
|
30
|
+
}>, unknown>;
|
|
31
|
+
export declare const getActiveWorkflowRevisionRestBinding: UnknownRestBinding;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineOperation } from "../operation-registry.js";
|
|
3
|
+
import {
|
|
4
|
+
validateWorkflowNameField,
|
|
5
|
+
workflowsReadAccess
|
|
6
|
+
} from "./workflow-catalog-operation-helpers.js";
|
|
7
|
+
const getActiveWorkflowRevisionInput = z.object({
|
|
8
|
+
name: z.unknown().describe("Workflow name. Runtime validation requires a wire-safe identifier.")
|
|
9
|
+
}), getActiveWorkflowRevisionOutput = z.unknown();
|
|
10
|
+
export const getActiveWorkflowRevisionOperation = defineOperation({
|
|
11
|
+
name: "weft.workflows.active.get",
|
|
12
|
+
mcpExposable: !1,
|
|
13
|
+
summary: "Get the currently active revision pointer for a workflow",
|
|
14
|
+
description: "Read the current `{ revision, generation, activatedAt }` active pointer for `name`. Read-only, in-memory (matches `RegistrySnapshot.activeRevisions`' staleness contract exactly). Faults with NotFound when `name` has never been activated.",
|
|
15
|
+
destructive: !1,
|
|
16
|
+
tags: ["Workflow Catalog"],
|
|
17
|
+
inputSchema: getActiveWorkflowRevisionInput,
|
|
18
|
+
outputSchema: getActiveWorkflowRevisionOutput,
|
|
19
|
+
access: workflowsReadAccess,
|
|
20
|
+
producibleFaults: ["NotFound", "InvalidParams"],
|
|
21
|
+
discoverable: !0,
|
|
22
|
+
transports: { http: !0, jsonRpcHttp: !0, jsonRpcWebSocket: !0, jsonRpcStdio: !0 },
|
|
23
|
+
unknownKeyPolicy: { http: "strip", jsonRpc: "reject" },
|
|
24
|
+
invoke: async ({ input, engine }) => {
|
|
25
|
+
const e = engine, name = validateWorkflowNameField(input.name), pointer = await e.workflows.getActive(name);
|
|
26
|
+
if (pointer === null)
|
|
27
|
+
throw {
|
|
28
|
+
code: "NotFound",
|
|
29
|
+
message: `Workflow "${name}" has never been activated`,
|
|
30
|
+
data: { resource: "workflow-active-revision", identifier: name }
|
|
31
|
+
};
|
|
32
|
+
return pointer;
|
|
33
|
+
}
|
|
34
|
+
}), getActiveWorkflowRevisionRestBinding = {
|
|
35
|
+
method: "GET",
|
|
36
|
+
path: "/v1/registry/workflows/:name/active",
|
|
37
|
+
pathParamNames: ["name"],
|
|
38
|
+
operationName: "weft.workflows.active.get",
|
|
39
|
+
inputSources: {
|
|
40
|
+
name: { kind: "path", pathParam: "name" }
|
|
41
|
+
},
|
|
42
|
+
extractInput: async (_request, pathParams) => ({
|
|
43
|
+
name: pathParams.name ?? ""
|
|
44
|
+
}),
|
|
45
|
+
success: { kind: "json", status: 200 }
|
|
46
|
+
};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `weft.catalog.diagnostics` operation + REST binding (WFT-12).
|
|
3
|
+
*
|
|
4
|
+
* Read-only, bounded diagnostics for one `(name, revision)` workflow
|
|
5
|
+
* catalog entry: whether it is installed, whether it is currently active,
|
|
6
|
+
* its full reference-count breakdown, and whether it would currently be
|
|
7
|
+
* removable. No REST/JSON-RPC removal surface exists this batch — removal
|
|
8
|
+
* (`removeWorkflowRevision`) is a plain in-process function, not a wire
|
|
9
|
+
* operation, per the coordinator's "single bounded diagnostics operation"
|
|
10
|
+
* steer.
|
|
11
|
+
*
|
|
12
|
+
* Static, not factory-built — unlike `get-worker-diagnostics.ts`'s injected
|
|
13
|
+
* `WorkerRegistry`, this operation needs no per-server state beyond the
|
|
14
|
+
* live `engine` every `invoke` already receives, matching
|
|
15
|
+
* `get-retention-overview.ts`'s shape.
|
|
16
|
+
*
|
|
17
|
+
* @module server/operations/get-catalog-diagnostics
|
|
18
|
+
*/
|
|
19
|
+
import { z } from 'zod';
|
|
20
|
+
import type { UnknownRestBinding } from '../rest-bindings.ts';
|
|
21
|
+
declare const getCatalogDiagnosticsInput: z.ZodObject<{
|
|
22
|
+
name: z.ZodString;
|
|
23
|
+
revision: z.ZodString;
|
|
24
|
+
}, z.core.$strict>;
|
|
25
|
+
declare const getCatalogDiagnosticsOutput: z.ZodObject<{
|
|
26
|
+
name: z.ZodString;
|
|
27
|
+
revision: z.ZodString;
|
|
28
|
+
installed: z.ZodBoolean;
|
|
29
|
+
active: z.ZodBoolean;
|
|
30
|
+
activeRevision: z.ZodOptional<z.ZodString>;
|
|
31
|
+
references: z.ZodObject<{
|
|
32
|
+
registeredDefinitions: z.ZodNumber;
|
|
33
|
+
inFlightStarts: z.ZodNumber;
|
|
34
|
+
nonTerminalRuns: z.ZodNumber;
|
|
35
|
+
pinnedSchedules: z.ZodNumber;
|
|
36
|
+
pendingDispatches: z.ZodNumber;
|
|
37
|
+
activeExecutionRealms: z.ZodNumber;
|
|
38
|
+
retainedRecoveryRecords: z.ZodNumber;
|
|
39
|
+
}, z.core.$strict>;
|
|
40
|
+
removable: z.ZodBoolean;
|
|
41
|
+
source: z.ZodOptional<z.ZodObject<{
|
|
42
|
+
kind: z.ZodLiteral<"module">;
|
|
43
|
+
requestedRevision: z.ZodString;
|
|
44
|
+
state: z.ZodEnum<{
|
|
45
|
+
failed: "failed";
|
|
46
|
+
cancelled: "cancelled";
|
|
47
|
+
idle: "idle";
|
|
48
|
+
loading: "loading";
|
|
49
|
+
ready: "ready";
|
|
50
|
+
}>;
|
|
51
|
+
loadDurationMs: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
lastFailureCategory: z.ZodOptional<z.ZodEnum<{
|
|
53
|
+
application: "application";
|
|
54
|
+
timeout: "timeout";
|
|
55
|
+
cancellation: "cancellation";
|
|
56
|
+
resource: "resource";
|
|
57
|
+
system: "system";
|
|
58
|
+
}>>;
|
|
59
|
+
waiterCount: z.ZodNumber;
|
|
60
|
+
}, z.core.$strict>>;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
export type GetCatalogDiagnosticsInput = z.infer<typeof getCatalogDiagnosticsInput>;
|
|
63
|
+
export type GetCatalogDiagnosticsOutput = z.infer<typeof getCatalogDiagnosticsOutput>;
|
|
64
|
+
/**
|
|
65
|
+
* `weft.catalog.diagnostics`: bounded, per-`(name, revision)` diagnostics
|
|
66
|
+
* for the durable workflow catalog. Requires `system:read`. Never returns
|
|
67
|
+
* manifest or contract content — only identity, active-pointer state, and
|
|
68
|
+
* low-cardinality reference counts, matching the repository's "metrics
|
|
69
|
+
* remain low-cardinality" observability convention.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* import { HttpClient } from '@lostgradient/weft/client';
|
|
74
|
+
*
|
|
75
|
+
* const client = new HttpClient({ baseUrl: 'https://weft.example.com' });
|
|
76
|
+
* const diagnostics = await client.operations['weft.catalog.diagnostics']({
|
|
77
|
+
* name: 'checkout',
|
|
78
|
+
* revision: 'some-revision',
|
|
79
|
+
* });
|
|
80
|
+
* console.log(diagnostics.installed, diagnostics.removable);
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare const getCatalogDiagnosticsOperation: import("../operation-catalog.ts").OperationDefinition<{
|
|
84
|
+
name: string;
|
|
85
|
+
revision: string;
|
|
86
|
+
}, {
|
|
87
|
+
name: string;
|
|
88
|
+
revision: string;
|
|
89
|
+
installed: boolean;
|
|
90
|
+
active: boolean;
|
|
91
|
+
references: {
|
|
92
|
+
registeredDefinitions: number;
|
|
93
|
+
inFlightStarts: number;
|
|
94
|
+
nonTerminalRuns: number;
|
|
95
|
+
pinnedSchedules: number;
|
|
96
|
+
pendingDispatches: number;
|
|
97
|
+
activeExecutionRealms: number;
|
|
98
|
+
retainedRecoveryRecords: number;
|
|
99
|
+
};
|
|
100
|
+
removable: boolean;
|
|
101
|
+
activeRevision?: string | undefined;
|
|
102
|
+
source?: {
|
|
103
|
+
kind: "module";
|
|
104
|
+
requestedRevision: string;
|
|
105
|
+
state: "failed" | "cancelled" | "idle" | "loading" | "ready";
|
|
106
|
+
waiterCount: number;
|
|
107
|
+
loadDurationMs?: number | undefined;
|
|
108
|
+
lastFailureCategory?: "application" | "timeout" | "cancellation" | "resource" | "system" | undefined;
|
|
109
|
+
} | undefined;
|
|
110
|
+
}, unknown>;
|
|
111
|
+
/** REST binding for `weft.catalog.diagnostics`: `GET /v1/catalog/:name/revisions/:revision/diagnostics`. */
|
|
112
|
+
export declare const getCatalogDiagnosticsRestBinding: UnknownRestBinding;
|
|
113
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { getWorkflowRevisionDiagnostics } from "../../core/engine.js";
|
|
3
|
+
import { shapeOperationFaultAsJson } from "../operation-fault.js";
|
|
4
|
+
import { defineOperation } from "../operation-registry.js";
|
|
5
|
+
const workflowRevisionReferenceCountsSchema = z.object({
|
|
6
|
+
registeredDefinitions: z.number().int().nonnegative(),
|
|
7
|
+
inFlightStarts: z.number().int().nonnegative(),
|
|
8
|
+
nonTerminalRuns: z.number().int().nonnegative(),
|
|
9
|
+
pinnedSchedules: z.number().int().nonnegative(),
|
|
10
|
+
pendingDispatches: z.number().int().nonnegative(),
|
|
11
|
+
activeExecutionRealms: z.number().int().nonnegative(),
|
|
12
|
+
retainedRecoveryRecords: z.number().int().nonnegative()
|
|
13
|
+
}).strict(), getCatalogDiagnosticsInput = z.object({
|
|
14
|
+
name: z.string().min(1),
|
|
15
|
+
revision: z.string().min(1)
|
|
16
|
+
}).strict(), sourceLoadDiagnosticsSchema = z.object({
|
|
17
|
+
kind: z.literal("module"),
|
|
18
|
+
requestedRevision: z.string(),
|
|
19
|
+
state: z.enum(["idle", "loading", "ready", "failed", "cancelled"]),
|
|
20
|
+
loadDurationMs: z.number().nonnegative().optional(),
|
|
21
|
+
lastFailureCategory: z.enum(["application", "timeout", "cancellation", "resource", "system"]).optional(),
|
|
22
|
+
waiterCount: z.number().int().nonnegative()
|
|
23
|
+
}).strict(), getCatalogDiagnosticsOutput = z.object({
|
|
24
|
+
name: z.string(),
|
|
25
|
+
revision: z.string(),
|
|
26
|
+
installed: z.boolean(),
|
|
27
|
+
active: z.boolean(),
|
|
28
|
+
activeRevision: z.string().optional(),
|
|
29
|
+
references: workflowRevisionReferenceCountsSchema,
|
|
30
|
+
removable: z.boolean(),
|
|
31
|
+
source: sourceLoadDiagnosticsSchema.optional()
|
|
32
|
+
}).strict();
|
|
33
|
+
export const getCatalogDiagnosticsOperation = defineOperation({
|
|
34
|
+
name: "weft.catalog.diagnostics",
|
|
35
|
+
mcpExposable: !1,
|
|
36
|
+
summary: "Get bounded reference-count and removability diagnostics for one workflow revision",
|
|
37
|
+
description: "Report whether a `(name, revision)` workflow catalog entry is installed, whether it is currently the active revision, its full reference-count breakdown, and whether it's currently removable. When `name` was ever registered as a dynamic workflow source (`engine.registerSource()`), also reports its bounded load-state diagnostics: source kind, load state, load duration, last failure category, and outstanding waiter count. Never returns manifest or contract content.",
|
|
38
|
+
destructive: !1,
|
|
39
|
+
tags: ["Observability"],
|
|
40
|
+
inputSchema: getCatalogDiagnosticsInput,
|
|
41
|
+
outputSchema: getCatalogDiagnosticsOutput,
|
|
42
|
+
access: { kind: "scoped", scopes: { kind: "anyOf", scopes: ["system:read"] } },
|
|
43
|
+
producibleFaults: [],
|
|
44
|
+
discoverable: !0,
|
|
45
|
+
transports: { http: !0, jsonRpcHttp: !0, jsonRpcWebSocket: !0, jsonRpcStdio: !0 },
|
|
46
|
+
unknownKeyPolicy: { http: "strip", jsonRpc: "reject" },
|
|
47
|
+
invoke: async ({ engine, input }) => {
|
|
48
|
+
return getWorkflowRevisionDiagnostics(engine, input.name, input.revision);
|
|
49
|
+
}
|
|
50
|
+
}), getCatalogDiagnosticsRestBinding = {
|
|
51
|
+
method: "GET",
|
|
52
|
+
path: "/v1/catalog/:name/revisions/:revision/diagnostics",
|
|
53
|
+
pathParamNames: ["name", "revision"],
|
|
54
|
+
operationName: "weft.catalog.diagnostics",
|
|
55
|
+
inputSources: {
|
|
56
|
+
name: { kind: "path", pathParam: "name" },
|
|
57
|
+
revision: { kind: "path", pathParam: "revision" }
|
|
58
|
+
},
|
|
59
|
+
extractInput: async (_request, pathParams) => ({
|
|
60
|
+
name: pathParams.name ?? "",
|
|
61
|
+
revision: pathParams.revision ?? ""
|
|
62
|
+
}),
|
|
63
|
+
success: { kind: "json", status: 200 },
|
|
64
|
+
shapeFault: shapeOperationFaultAsJson
|
|
65
|
+
};
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import {
|
|
3
3
|
buildRegistrySnapshot,
|
|
4
|
-
|
|
4
|
+
REGISTRY_VERSION,
|
|
5
|
+
RegistryManifestLimitError,
|
|
6
|
+
RegistrySchemaConversionError,
|
|
7
|
+
RegistryWorkflowCountLimitError
|
|
5
8
|
} from "../../core/registry-snapshot.js";
|
|
6
9
|
import { defineOperation } from "../operation-registry.js";
|
|
7
10
|
const getRegistryInput = z.object({}), objectValue = z.unknown().refine((value) => typeof value === "object" && value !== null && !Array.isArray(value), {
|
|
8
11
|
message: "expected an object"
|
|
9
12
|
}), getRegistryOutput = z.object({
|
|
10
|
-
registryVersion: z.literal(
|
|
11
|
-
|
|
13
|
+
registryVersion: z.literal(REGISTRY_VERSION),
|
|
14
|
+
generatedAt: z.string(),
|
|
15
|
+
workflows: z.array(objectValue),
|
|
16
|
+
activeRevisions: objectValue,
|
|
12
17
|
activities: objectValue
|
|
13
18
|
}).strict();
|
|
14
19
|
export const getRegistryOperation = defineOperation({
|
|
@@ -28,7 +33,7 @@ export const getRegistryOperation = defineOperation({
|
|
|
28
33
|
unknownKeyPolicy: { http: "strip", jsonRpc: "reject" },
|
|
29
34
|
invoke: async ({ engine }) => {
|
|
30
35
|
try {
|
|
31
|
-
return buildRegistrySnapshot(engine);
|
|
36
|
+
return await buildRegistrySnapshot(engine);
|
|
32
37
|
} catch (error) {
|
|
33
38
|
if (error instanceof RegistrySchemaConversionError)
|
|
34
39
|
console.error(`[weft.system.registry] ${error.message}`, {
|
|
@@ -36,6 +41,14 @@ export const getRegistryOperation = defineOperation({
|
|
|
36
41
|
entityName: error.entityName,
|
|
37
42
|
direction: error.direction
|
|
38
43
|
});
|
|
44
|
+
else if (error instanceof RegistryManifestLimitError)
|
|
45
|
+
console.error(`[weft.system.registry] ${error.message}`, {
|
|
46
|
+
workflowType: error.workflowType
|
|
47
|
+
});
|
|
48
|
+
else if (error instanceof RegistryWorkflowCountLimitError)
|
|
49
|
+
console.error(`[weft.system.registry] ${error.message}`, {
|
|
50
|
+
count: error.count
|
|
51
|
+
});
|
|
39
52
|
throw error;
|
|
40
53
|
}
|
|
41
54
|
}
|
|
@@ -39,6 +39,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
39
39
|
operationId: z.ZodString;
|
|
40
40
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
41
41
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
42
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
42
43
|
workflowType: z.ZodString;
|
|
43
44
|
activityName: z.ZodString;
|
|
44
45
|
queue: z.ZodString;
|
|
@@ -77,6 +78,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
77
78
|
operationId: z.ZodString;
|
|
78
79
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
79
80
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
81
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
80
82
|
workflowType: z.ZodString;
|
|
81
83
|
activityName: z.ZodString;
|
|
82
84
|
queue: z.ZodString;
|
|
@@ -120,6 +122,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
120
122
|
operationId: z.ZodString;
|
|
121
123
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
122
124
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
125
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
123
126
|
workflowType: z.ZodString;
|
|
124
127
|
activityName: z.ZodString;
|
|
125
128
|
queue: z.ZodString;
|
|
@@ -160,6 +163,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
160
163
|
operationId: z.ZodString;
|
|
161
164
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
162
165
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
166
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
163
167
|
workflowType: z.ZodString;
|
|
164
168
|
activityName: z.ZodString;
|
|
165
169
|
queue: z.ZodString;
|
|
@@ -200,6 +204,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
200
204
|
operationId: z.ZodString;
|
|
201
205
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
202
206
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
207
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
203
208
|
workflowType: z.ZodString;
|
|
204
209
|
activityName: z.ZodString;
|
|
205
210
|
queue: z.ZodString;
|
|
@@ -235,6 +240,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
235
240
|
operationId: z.ZodString;
|
|
236
241
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
237
242
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
243
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
238
244
|
workflowType: z.ZodString;
|
|
239
245
|
activityName: z.ZodString;
|
|
240
246
|
queue: z.ZodString;
|
|
@@ -270,6 +276,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
270
276
|
operationId: z.ZodString;
|
|
271
277
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
272
278
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
279
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
273
280
|
workflowType: z.ZodString;
|
|
274
281
|
activityName: z.ZodString;
|
|
275
282
|
queue: z.ZodString;
|
|
@@ -311,6 +318,7 @@ export declare const getTaskDetailOutputSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
311
318
|
operationId: z.ZodString;
|
|
312
319
|
workflowId: z.ZodOptional<z.ZodString>;
|
|
313
320
|
workflowExecutionToken: z.ZodOptional<z.ZodString>;
|
|
321
|
+
workflowRevision: z.ZodOptional<z.ZodString>;
|
|
314
322
|
workflowType: z.ZodString;
|
|
315
323
|
activityName: z.ZodString;
|
|
316
324
|
queue: z.ZodString;
|
|
@@ -23,6 +23,7 @@ const taskDetailBaseFields = {
|
|
|
23
23
|
operationId: z.string(),
|
|
24
24
|
workflowId: z.string().optional(),
|
|
25
25
|
workflowExecutionToken: z.string().optional(),
|
|
26
|
+
workflowRevision: z.string().optional(),
|
|
26
27
|
workflowType: z.string(),
|
|
27
28
|
activityName: z.string(),
|
|
28
29
|
queue: z.string(),
|
|
@@ -60,6 +60,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
60
60
|
adoptedAt?: number | undefined;
|
|
61
61
|
workflowId?: string | undefined;
|
|
62
62
|
workflowExecutionToken?: string | undefined;
|
|
63
|
+
workflowRevision?: string | undefined;
|
|
63
64
|
priority?: number | undefined;
|
|
64
65
|
retryPolicy?: {
|
|
65
66
|
maxAttempts: number;
|
|
@@ -95,6 +96,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
95
96
|
adoptedAt?: number | undefined;
|
|
96
97
|
workflowId?: string | undefined;
|
|
97
98
|
workflowExecutionToken?: string | undefined;
|
|
99
|
+
workflowRevision?: string | undefined;
|
|
98
100
|
priority?: number | undefined;
|
|
99
101
|
retryPolicy?: {
|
|
100
102
|
maxAttempts: number;
|
|
@@ -130,6 +132,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
130
132
|
adoptedAt?: number | undefined;
|
|
131
133
|
workflowId?: string | undefined;
|
|
132
134
|
workflowExecutionToken?: string | undefined;
|
|
135
|
+
workflowRevision?: string | undefined;
|
|
133
136
|
priority?: number | undefined;
|
|
134
137
|
retryPolicy?: {
|
|
135
138
|
maxAttempts: number;
|
|
@@ -168,6 +171,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
168
171
|
lastRequeueReason?: string | undefined;
|
|
169
172
|
workflowId?: string | undefined;
|
|
170
173
|
workflowExecutionToken?: string | undefined;
|
|
174
|
+
workflowRevision?: string | undefined;
|
|
171
175
|
priority?: number | undefined;
|
|
172
176
|
retryPolicy?: {
|
|
173
177
|
maxAttempts: number;
|
|
@@ -206,6 +210,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
206
210
|
lastRequeueReason?: string | undefined;
|
|
207
211
|
workflowId?: string | undefined;
|
|
208
212
|
workflowExecutionToken?: string | undefined;
|
|
213
|
+
workflowRevision?: string | undefined;
|
|
209
214
|
priority?: number | undefined;
|
|
210
215
|
retryPolicy?: {
|
|
211
216
|
maxAttempts: number;
|
|
@@ -246,6 +251,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
246
251
|
lastRequeueReason?: string | undefined;
|
|
247
252
|
workflowId?: string | undefined;
|
|
248
253
|
workflowExecutionToken?: string | undefined;
|
|
254
|
+
workflowRevision?: string | undefined;
|
|
249
255
|
priority?: number | undefined;
|
|
250
256
|
retryPolicy?: {
|
|
251
257
|
maxAttempts: number;
|
|
@@ -286,6 +292,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
286
292
|
lastRequeueReason?: string | undefined;
|
|
287
293
|
workflowId?: string | undefined;
|
|
288
294
|
workflowExecutionToken?: string | undefined;
|
|
295
|
+
workflowRevision?: string | undefined;
|
|
289
296
|
priority?: number | undefined;
|
|
290
297
|
retryPolicy?: {
|
|
291
298
|
maxAttempts: number;
|
|
@@ -324,6 +331,7 @@ export declare const getTaskDetailOperation: import("../operation-catalog.ts").O
|
|
|
324
331
|
lastRequeueReason?: string | undefined;
|
|
325
332
|
workflowId?: string | undefined;
|
|
326
333
|
workflowExecutionToken?: string | undefined;
|
|
334
|
+
workflowRevision?: string | undefined;
|
|
327
335
|
priority?: number | undefined;
|
|
328
336
|
retryPolicy?: {
|
|
329
337
|
maxAttempts: number;
|