@temelj/workflow 0.0.0-alpha.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/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/attributes.d.mts +15 -0
- package/dist/attributes.mjs +30 -0
- package/dist/client/create.d.mts +31 -0
- package/dist/client/create.mjs +67 -0
- package/dist/client/facades.d.mts +21 -0
- package/dist/client/facades.mjs +142 -0
- package/dist/client/mod.d.mts +2 -0
- package/dist/client/mod.mjs +2 -0
- package/dist/client/run-handle.d.mts +66 -0
- package/dist/client/run-handle.mjs +156 -0
- package/dist/client/worker-options.d.mts +17 -0
- package/dist/client/worker-options.mjs +25 -0
- package/dist/collection.d.mts +15 -0
- package/dist/collection.mjs +33 -0
- package/dist/compiled-function.d.mts +27 -0
- package/dist/compiled-function.mjs +54 -0
- package/dist/definition.d.mts +37 -0
- package/dist/definition.mjs +83 -0
- package/dist/engine/child-workflow.d.mts +10 -0
- package/dist/engine/child-workflow.mjs +333 -0
- package/dist/engine/command-identity.d.mts +9 -0
- package/dist/engine/command-identity.mjs +14 -0
- package/dist/engine/create.d.mts +106 -0
- package/dist/engine/create.mjs +402 -0
- package/dist/engine/deterministic.d.mts +12 -0
- package/dist/engine/deterministic.mjs +102 -0
- package/dist/engine/durable-command.d.mts +10 -0
- package/dist/engine/durable-command.mjs +17 -0
- package/dist/engine/execution-api.d.mts +29 -0
- package/dist/engine/execution-api.mjs +33 -0
- package/dist/engine/execution-service.d.mts +41 -0
- package/dist/engine/execution-service.mjs +288 -0
- package/dist/engine/hooks.d.mts +56 -0
- package/dist/engine/hooks.mjs +237 -0
- package/dist/engine/inspection-api.d.mts +34 -0
- package/dist/engine/inspection-api.mjs +77 -0
- package/dist/engine/inspection.d.mts +18 -0
- package/dist/engine/inspection.mjs +149 -0
- package/dist/engine/lifecycle.d.mts +18 -0
- package/dist/engine/lifecycle.mjs +38 -0
- package/dist/engine/lock-replay.d.mts +30 -0
- package/dist/engine/lock-replay.mjs +38 -0
- package/dist/engine/lock.d.mts +21 -0
- package/dist/engine/lock.mjs +197 -0
- package/dist/engine/message.d.mts +47 -0
- package/dist/engine/message.mjs +357 -0
- package/dist/engine/mod.d.mts +4 -0
- package/dist/engine/mod.mjs +2 -0
- package/dist/engine/observation.d.mts +35 -0
- package/dist/engine/observation.mjs +201 -0
- package/dist/engine/recovery.d.mts +26 -0
- package/dist/engine/recovery.mjs +92 -0
- package/dist/engine/replay.d.mts +41 -0
- package/dist/engine/replay.mjs +122 -0
- package/dist/engine/retry-policy.d.mts +4 -0
- package/dist/engine/retry-policy.mjs +4 -0
- package/dist/engine/retry.d.mts +23 -0
- package/dist/engine/retry.mjs +75 -0
- package/dist/engine/run-data.d.mts +9 -0
- package/dist/engine/run-data.mjs +74 -0
- package/dist/engine/run-service.d.mts +38 -0
- package/dist/engine/run-service.mjs +133 -0
- package/dist/engine/run-utils.d.mts +16 -0
- package/dist/engine/run-utils.mjs +83 -0
- package/dist/engine/schedule.d.mts +25 -0
- package/dist/engine/schedule.mjs +207 -0
- package/dist/engine/serialization.d.mts +9 -0
- package/dist/engine/serialization.mjs +85 -0
- package/dist/engine/start-api.d.mts +30 -0
- package/dist/engine/start-api.mjs +98 -0
- package/dist/engine/state.d.mts +77 -0
- package/dist/engine/state.mjs +464 -0
- package/dist/engine/step-api.d.mts +9 -0
- package/dist/engine/step-api.mjs +25 -0
- package/dist/engine/stream.d.mts +55 -0
- package/dist/engine/stream.mjs +333 -0
- package/dist/engine/summary/active-events.d.mts +34 -0
- package/dist/engine/summary/active-events.mjs +69 -0
- package/dist/engine/summary/child-workflow-runs.d.mts +24 -0
- package/dist/engine/summary/child-workflow-runs.mjs +138 -0
- package/dist/engine/summary/child-workflow-waits.d.mts +21 -0
- package/dist/engine/summary/child-workflow-waits.mjs +67 -0
- package/dist/engine/summary/recovery-child-workflow-waits.d.mts +11 -0
- package/dist/engine/summary/recovery-child-workflow-waits.mjs +89 -0
- package/dist/engine/summary/recovery-due-runs.d.mts +16 -0
- package/dist/engine/summary/recovery-due-runs.mjs +52 -0
- package/dist/engine/summary/recovery-failed-runs.d.mts +14 -0
- package/dist/engine/summary/recovery-failed-runs.mjs +33 -0
- package/dist/engine/summary/recovery-lease-runs.d.mts +16 -0
- package/dist/engine/summary/recovery-lease-runs.mjs +69 -0
- package/dist/engine/summary/recovery-locks.d.mts +18 -0
- package/dist/engine/summary/recovery-locks.mjs +100 -0
- package/dist/engine/summary/recovery-message-waits.d.mts +11 -0
- package/dist/engine/summary/recovery-message-waits.mjs +74 -0
- package/dist/engine/summary/recovery-retry-runs.d.mts +17 -0
- package/dist/engine/summary/recovery-retry-runs.mjs +65 -0
- package/dist/engine/summary/recovery-run-timestamps.d.mts +13 -0
- package/dist/engine/summary/recovery-run-timestamps.mjs +18 -0
- package/dist/engine/summary/recovery-runs.d.mts +23 -0
- package/dist/engine/summary/recovery-runs.mjs +54 -0
- package/dist/engine/summary/recovery-schedules.d.mts +10 -0
- package/dist/engine/summary/recovery-schedules.mjs +46 -0
- package/dist/engine/summary/recovery-sleep-waits.d.mts +10 -0
- package/dist/engine/summary/recovery-sleep-waits.mjs +53 -0
- package/dist/engine/summary/recovery-waits.d.mts +21 -0
- package/dist/engine/summary/recovery-waits.mjs +29 -0
- package/dist/engine/summary/run-availability.d.mts +13 -0
- package/dist/engine/summary/run-availability.mjs +37 -0
- package/dist/engine/summary/run-cleanup.d.mts +14 -0
- package/dist/engine/summary/run-cleanup.mjs +44 -0
- package/dist/engine/summary/run-failure.d.mts +14 -0
- package/dist/engine/summary/run-failure.mjs +62 -0
- package/dist/engine/summary/run-hooks.d.mts +14 -0
- package/dist/engine/summary/run-hooks.mjs +63 -0
- package/dist/engine/summary/run-lease.d.mts +11 -0
- package/dist/engine/summary/run-lease.mjs +64 -0
- package/dist/engine/summary/run-message-waits.d.mts +15 -0
- package/dist/engine/summary/run-message-waits.mjs +62 -0
- package/dist/engine/summary/run-metrics.d.mts +31 -0
- package/dist/engine/summary/run-metrics.mjs +93 -0
- package/dist/engine/summary/run-retry.d.mts +9 -0
- package/dist/engine/summary/run-retry.mjs +69 -0
- package/dist/engine/summary/run-sleeps.d.mts +15 -0
- package/dist/engine/summary/run-sleeps.mjs +61 -0
- package/dist/engine/summary/run-state.d.mts +26 -0
- package/dist/engine/summary/run-state.mjs +48 -0
- package/dist/engine/summary/run-status.d.mts +16 -0
- package/dist/engine/summary/run-status.mjs +35 -0
- package/dist/engine/summary/run-streams.d.mts +14 -0
- package/dist/engine/summary/run-streams.mjs +46 -0
- package/dist/engine/summary/run-transition.d.mts +9 -0
- package/dist/engine/summary/run-transition.mjs +39 -0
- package/dist/engine/summary/run-workflow.d.mts +9 -0
- package/dist/engine/summary/run-workflow.mjs +47 -0
- package/dist/engine/summary/step-attempt-active-child-workflows.d.mts +13 -0
- package/dist/engine/summary/step-attempt-active-child-workflows.mjs +55 -0
- package/dist/engine/summary/step-attempt-active-fields.d.mts +23 -0
- package/dist/engine/summary/step-attempt-active-fields.mjs +14 -0
- package/dist/engine/summary/step-attempt-active-message-waits.d.mts +12 -0
- package/dist/engine/summary/step-attempt-active-message-waits.mjs +47 -0
- package/dist/engine/summary/step-attempt-active-sleeps.d.mts +19 -0
- package/dist/engine/summary/step-attempt-active-sleeps.mjs +44 -0
- package/dist/engine/summary/step-attempt-buckets.d.mts +22 -0
- package/dist/engine/summary/step-attempt-buckets.mjs +152 -0
- package/dist/engine/summary/step-attempt-failure.d.mts +12 -0
- package/dist/engine/summary/step-attempt-failure.mjs +61 -0
- package/dist/engine/summary/step-attempt-lifecycle.d.mts +13 -0
- package/dist/engine/summary/step-attempt-lifecycle.mjs +19 -0
- package/dist/engine/summary/step-attempts.d.mts +11 -0
- package/dist/engine/summary/step-attempts.mjs +43 -0
- package/dist/engine/summary.d.mts +32 -0
- package/dist/engine/summary.mjs +37 -0
- package/dist/engine/task.d.mts +6 -0
- package/dist/engine/task.mjs +207 -0
- package/dist/errors/base.d.mts +99 -0
- package/dist/errors/base.mjs +426 -0
- package/dist/errors/capability.d.mts +11 -0
- package/dist/errors/capability.mjs +23 -0
- package/dist/errors/definition.d.mts +21 -0
- package/dist/errors/definition.mjs +51 -0
- package/dist/errors/details.d.mts +13 -0
- package/dist/errors/details.mjs +65 -0
- package/dist/errors/failures.d.mts +81 -0
- package/dist/errors/failures.mjs +168 -0
- package/dist/errors/hook.d.mts +14 -0
- package/dist/errors/hook.mjs +30 -0
- package/dist/errors/implementation.d.mts +11 -0
- package/dist/errors/implementation.mjs +25 -0
- package/dist/errors/lock.d.mts +28 -0
- package/dist/errors/lock.mjs +70 -0
- package/dist/errors/message.d.mts +106 -0
- package/dist/errors/message.mjs +122 -0
- package/dist/errors/mod.d.mts +17 -0
- package/dist/errors/mod.mjs +17 -0
- package/dist/errors/record-view.d.mts +11 -0
- package/dist/errors/record-view.mjs +24 -0
- package/dist/errors/records.d.mts +7 -0
- package/dist/errors/records.mjs +280 -0
- package/dist/errors/run.d.mts +116 -0
- package/dist/errors/run.mjs +232 -0
- package/dist/errors/runtime.d.mts +12 -0
- package/dist/errors/runtime.mjs +24 -0
- package/dist/errors/schedule.d.mts +27 -0
- package/dist/errors/schedule.mjs +65 -0
- package/dist/errors/step.d.mts +76 -0
- package/dist/errors/step.mjs +113 -0
- package/dist/errors/stream.d.mts +24 -0
- package/dist/errors/stream.mjs +64 -0
- package/dist/esbuild.d.mts +7 -0
- package/dist/esbuild.mjs +6 -0
- package/dist/events/descriptors.d.mts +245 -0
- package/dist/events/descriptors.mjs +405 -0
- package/dist/events/mod.d.mts +3 -0
- package/dist/events/mod.mjs +2 -0
- package/dist/history/attempt-key.d.mts +6 -0
- package/dist/history/attempt-key.mjs +7 -0
- package/dist/history/mod.d.mts +71 -0
- package/dist/history/mod.mjs +195 -0
- package/dist/history/projection.d.mts +8 -0
- package/dist/history/projection.mjs +259 -0
- package/dist/history/replay-projection.d.mts +88 -0
- package/dist/history/replay-projection.mjs +369 -0
- package/dist/history/sequencer.d.mts +16 -0
- package/dist/history/sequencer.mjs +78 -0
- package/dist/history/step-attempts.d.mts +9 -0
- package/dist/history/step-attempts.mjs +50 -0
- package/dist/history/timeline.d.mts +16 -0
- package/dist/history/timeline.mjs +272 -0
- package/dist/history/validator.d.mts +9 -0
- package/dist/history/validator.mjs +110 -0
- package/dist/inspection/mod.d.mts +5 -0
- package/dist/inspection/mod.mjs +3 -0
- package/dist/message-options.d.mts +8 -0
- package/dist/message-options.mjs +25 -0
- package/dist/mod.d.mts +52 -0
- package/dist/mod.mjs +26 -0
- package/dist/otel/support.d.mts +18 -0
- package/dist/otel/support.mjs +102 -0
- package/dist/otel.d.mts +30 -0
- package/dist/otel.mjs +588 -0
- package/dist/pagination.d.mts +25 -0
- package/dist/pagination.mjs +73 -0
- package/dist/registry.d.mts +20 -0
- package/dist/registry.mjs +48 -0
- package/dist/rolldown.d.mts +7 -0
- package/dist/rolldown.mjs +6 -0
- package/dist/rollup.d.mts +7 -0
- package/dist/rollup.mjs +6 -0
- package/dist/rspack.d.mts +7 -0
- package/dist/rspack.mjs +6 -0
- package/dist/runtime.d.mts +34 -0
- package/dist/runtime.mjs +194 -0
- package/dist/step-definition.d.mts +10 -0
- package/dist/step-definition.mjs +15 -0
- package/dist/store/append-projection.d.mts +15 -0
- package/dist/store/append-projection.mjs +26 -0
- package/dist/store/capabilities.d.mts +14 -0
- package/dist/store/capabilities.mjs +42 -0
- package/dist/store/cleanup.d.mts +18 -0
- package/dist/store/cleanup.mjs +338 -0
- package/dist/store/compaction.d.mts +5 -0
- package/dist/store/compaction.mjs +8 -0
- package/dist/store/create.d.mts +52 -0
- package/dist/store/create.mjs +159 -0
- package/dist/store/event-append-project.d.mts +15 -0
- package/dist/store/event-append-project.mjs +77 -0
- package/dist/store/event-append.d.mts +37 -0
- package/dist/store/event-append.mjs +80 -0
- package/dist/store/event-history.d.mts +22 -0
- package/dist/store/event-history.mjs +75 -0
- package/dist/store/event.d.mts +10 -0
- package/dist/store/event.mjs +28 -0
- package/dist/store/idempotency.d.mts +10 -0
- package/dist/store/idempotency.mjs +167 -0
- package/dist/store/instrumentation.d.mts +7 -0
- package/dist/store/instrumentation.mjs +123 -0
- package/dist/store/lock.d.mts +8 -0
- package/dist/store/lock.mjs +28 -0
- package/dist/store/materialization.d.mts +30 -0
- package/dist/store/materialization.mjs +127 -0
- package/dist/store/message-index.d.mts +21 -0
- package/dist/store/message-index.mjs +121 -0
- package/dist/store/mod.d.mts +5 -0
- package/dist/store/mod.mjs +4 -0
- package/dist/store/query.d.mts +24 -0
- package/dist/store/query.mjs +82 -0
- package/dist/store/revision.d.mts +4 -0
- package/dist/store/revision.mjs +7 -0
- package/dist/store/run.d.mts +49 -0
- package/dist/store/run.mjs +236 -0
- package/dist/store/schedule.d.mts +12 -0
- package/dist/store/schedule.mjs +41 -0
- package/dist/store/schema.d.mts +14 -0
- package/dist/store/schema.mjs +17 -0
- package/dist/store/step-attempt.d.mts +14 -0
- package/dist/store/step-attempt.mjs +23 -0
- package/dist/store/storage-value.d.mts +5 -0
- package/dist/store/storage-value.mjs +6 -0
- package/dist/store/validation.d.mts +35 -0
- package/dist/store/validation.mjs +77 -0
- package/dist/store-keys.d.mts +49 -0
- package/dist/store-keys.mjs +63 -0
- package/dist/telemetry.d.mts +132 -0
- package/dist/telemetry.mjs +172 -0
- package/dist/temporal.d.mts +23 -0
- package/dist/temporal.mjs +59 -0
- package/dist/timer.d.mts +12 -0
- package/dist/timer.mjs +28 -0
- package/dist/types/cleanup.d.mts +112 -0
- package/dist/types/cleanup.mjs +22 -0
- package/dist/types/client.d.mts +270 -0
- package/dist/types/client.mjs +1 -0
- package/dist/types/common.d.mts +19 -0
- package/dist/types/common.mjs +15 -0
- package/dist/types/definition.d.mts +92 -0
- package/dist/types/definition.mjs +1 -0
- package/dist/types/engine-options.d.mts +76 -0
- package/dist/types/engine-options.mjs +1 -0
- package/dist/types/engine.d.mts +309 -0
- package/dist/types/engine.mjs +1 -0
- package/dist/types/error-code.d.mts +256 -0
- package/dist/types/error-code.mjs +131 -0
- package/dist/types/error.d.mts +236 -0
- package/dist/types/error.mjs +48 -0
- package/dist/types/events.d.mts +2869 -0
- package/dist/types/events.mjs +283 -0
- package/dist/types/hook.d.mts +149 -0
- package/dist/types/hook.mjs +66 -0
- package/dist/types/lock.d.mts +63 -0
- package/dist/types/lock.mjs +18 -0
- package/dist/types/message-id.d.mts +7 -0
- package/dist/types/message-id.mjs +5 -0
- package/dist/types/message.d.mts +87 -0
- package/dist/types/message.mjs +1 -0
- package/dist/types/observation.d.mts +146 -0
- package/dist/types/observation.mjs +1 -0
- package/dist/types/pagination.d.mts +32 -0
- package/dist/types/pagination.mjs +13 -0
- package/dist/types/result.d.mts +62 -0
- package/dist/types/result.mjs +1 -0
- package/dist/types/retry.d.mts +48 -0
- package/dist/types/retry.mjs +1 -0
- package/dist/types/run-id.d.mts +7 -0
- package/dist/types/run-id.mjs +5 -0
- package/dist/types/run-list.d.mts +43 -0
- package/dist/types/run-list.mjs +1 -0
- package/dist/types/run-options.d.mts +86 -0
- package/dist/types/run-options.mjs +1 -0
- package/dist/types/run.d.mts +355 -0
- package/dist/types/run.mjs +207 -0
- package/dist/types/runtime.d.mts +143 -0
- package/dist/types/runtime.mjs +21 -0
- package/dist/types/schedule.d.mts +127 -0
- package/dist/types/schedule.mjs +48 -0
- package/dist/types/step-attempts.d.mts +326 -0
- package/dist/types/step-attempts.mjs +43 -0
- package/dist/types/step-id.d.mts +7 -0
- package/dist/types/step-id.mjs +5 -0
- package/dist/types/step.d.mts +183 -0
- package/dist/types/step.mjs +5 -0
- package/dist/types/store.d.mts +254 -0
- package/dist/types/store.mjs +1 -0
- package/dist/types/stream-id.d.mts +7 -0
- package/dist/types/stream-id.mjs +5 -0
- package/dist/types/stream.d.mts +126 -0
- package/dist/types/stream.mjs +1 -0
- package/dist/types/summary.d.mts +318 -0
- package/dist/types/summary.mjs +1 -0
- package/dist/types/telemetry.d.mts +74 -0
- package/dist/types/telemetry.mjs +9 -0
- package/dist/types/timeline.d.mts +237 -0
- package/dist/types/timeline.mjs +1 -0
- package/dist/types/vite.d.mts +65 -0
- package/dist/types/vite.mjs +1 -0
- package/dist/types/worker-id.d.mts +7 -0
- package/dist/types/worker-id.mjs +5 -0
- package/dist/types/worker.d.mts +94 -0
- package/dist/types/worker.mjs +1 -0
- package/dist/utility.d.mts +49 -0
- package/dist/utility.mjs +122 -0
- package/dist/vite/ast.d.mts +23 -0
- package/dist/vite/ast.mjs +73 -0
- package/dist/vite/error.d.mts +19 -0
- package/dist/vite/error.mjs +47 -0
- package/dist/vite/generated-name.d.mts +7 -0
- package/dist/vite/generated-name.mjs +9 -0
- package/dist/vite/manifest.d.mts +7 -0
- package/dist/vite/manifest.mjs +106 -0
- package/dist/vite/plugin.d.mts +7 -0
- package/dist/vite/plugin.mjs +190 -0
- package/dist/vite/safety.d.mts +12 -0
- package/dist/vite/safety.mjs +96 -0
- package/dist/vite/source-edit.d.mts +12 -0
- package/dist/vite/source-edit.mjs +44 -0
- package/dist/vite/source-map.d.mts +11 -0
- package/dist/vite/source-map.mjs +53 -0
- package/dist/vite/source.d.mts +7 -0
- package/dist/vite/source.mjs +14 -0
- package/dist/vite/transform.d.mts +7 -0
- package/dist/vite/transform.mjs +405 -0
- package/dist/vite.d.mts +6 -0
- package/dist/vite.mjs +5 -0
- package/dist/webhook.d.mts +16 -0
- package/dist/webhook.mjs +17 -0
- package/dist/webpack.d.mts +7 -0
- package/dist/webpack.mjs +6 -0
- package/dist/worker/error.d.mts +11 -0
- package/dist/worker/error.mjs +40 -0
- package/dist/worker.d.mts +18 -0
- package/dist/worker.mjs +427 -0
- package/package.json +144 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { WorkflowError } from "../errors/base.mjs";
|
|
2
|
+
import { WorkflowSerializationError } from "../errors/failures.mjs";
|
|
3
|
+
import { sanitizedWorkflowErrorDetails } from "../types/error.mjs";
|
|
4
|
+
import { persistedValueIssue } from "../types/run.mjs";
|
|
5
|
+
import { WorkflowStepExecutionError } from "../errors/step.mjs";
|
|
6
|
+
import "../errors/mod.mjs";
|
|
7
|
+
import { createSuperJsonStorageCodec } from "@temelj/storage";
|
|
8
|
+
//#region src/engine/serialization.ts
|
|
9
|
+
const PERSISTED_VALUE_CODEC = createSuperJsonStorageCodec({ format: "bytes" });
|
|
10
|
+
function serializeError(error) {
|
|
11
|
+
if (error instanceof Error) {
|
|
12
|
+
const name = typeof error.name === "string" && error.name.trim() !== "" ? error.name : "Error";
|
|
13
|
+
const message = typeof error.message === "string" && error.message.trim() !== "" ? error.message : name;
|
|
14
|
+
const stack = typeof error.stack === "string" && error.stack.trim() !== "" ? error.stack : void 0;
|
|
15
|
+
return {
|
|
16
|
+
...error instanceof WorkflowError ? { code: error.code } : {},
|
|
17
|
+
name,
|
|
18
|
+
message,
|
|
19
|
+
...stack === void 0 ? {} : { stack },
|
|
20
|
+
...workflowErrorDetails(error)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
name: "Error",
|
|
25
|
+
message: String(error).trim() === "" ? "Error" : String(error)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function workflowErrorDetails(error) {
|
|
29
|
+
if (error instanceof WorkflowStepExecutionError) return { details: {
|
|
30
|
+
...sanitizedWorkflowErrorDetails(error.details),
|
|
31
|
+
...workflowErrorCauseDetails(error.cause)
|
|
32
|
+
} };
|
|
33
|
+
if (error instanceof WorkflowError && error.details !== void 0) {
|
|
34
|
+
const details = sanitizedWorkflowErrorDetails(error.details);
|
|
35
|
+
return details === void 0 ? {} : { details };
|
|
36
|
+
}
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
function workflowErrorCauseDetails(cause) {
|
|
40
|
+
if (!(cause instanceof Error)) return {};
|
|
41
|
+
const record = serializeError(cause);
|
|
42
|
+
return prefixWorkflowErrorCauseDetails({
|
|
43
|
+
...causeDetailsWithoutReservedIdentity(record.details),
|
|
44
|
+
...record.code === void 0 ? {} : { code: record.code },
|
|
45
|
+
name: record.name,
|
|
46
|
+
message: record.message,
|
|
47
|
+
...record.stack === void 0 ? {} : { stack: record.stack }
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function causeDetailsWithoutReservedIdentity(details) {
|
|
51
|
+
if (details === void 0) return {};
|
|
52
|
+
return Object.fromEntries(Object.entries(details).filter(([key]) => {
|
|
53
|
+
const prefixedKey = key.startsWith("cause") ? key : `cause${key[0]?.toUpperCase() ?? ""}${key.slice(1)}`;
|
|
54
|
+
return prefixedKey !== "causeName" && prefixedKey !== "causeMessage" && prefixedKey !== "causeStack";
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
function prefixWorkflowErrorCauseDetails(details) {
|
|
58
|
+
return Object.fromEntries(Object.entries(details).map(([key, value]) => [key.startsWith("cause") ? key : `cause${key[0]?.toUpperCase() ?? ""}${key.slice(1)}`, value]));
|
|
59
|
+
}
|
|
60
|
+
function toPersistedValue(value, path, limits) {
|
|
61
|
+
const issue = persistedValueIssue(value, path, /* @__PURE__ */ new WeakSet(), false);
|
|
62
|
+
if (issue !== void 0) WorkflowSerializationError.notSerializable(issue.path, issue.message);
|
|
63
|
+
enforceStorageValueSize(value, path, limits);
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
function toOptionalPersistedValue(value, path, limits) {
|
|
67
|
+
if (value === void 0) return;
|
|
68
|
+
return toPersistedValue(value, path, limits);
|
|
69
|
+
}
|
|
70
|
+
function enforceStorageValueSize(value, path, limits) {
|
|
71
|
+
if (limits?.maximumPersistedValueBytes === void 0) return;
|
|
72
|
+
if (value === void 0) return;
|
|
73
|
+
const bytes = persistedValueByteLength(value, path);
|
|
74
|
+
if (bytes > limits.maximumPersistedValueBytes) WorkflowSerializationError.notSerializable(path, `serialized size ${bytes} bytes exceeds maximumPersistedValueBytes ${limits.maximumPersistedValueBytes}`);
|
|
75
|
+
}
|
|
76
|
+
function persistedValueByteLength(value, path) {
|
|
77
|
+
try {
|
|
78
|
+
return PERSISTED_VALUE_CODEC.encode(value).byteLength;
|
|
79
|
+
} catch (error) {
|
|
80
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
81
|
+
WorkflowSerializationError.notSerializable(path, reason);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { serializeError, toOptionalPersistedValue, toPersistedValue };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { WorkflowStartTarget } from "../types/definition.mjs";
|
|
2
|
+
import { HandleOperations, WorkflowHandle } from "../types/result.mjs";
|
|
3
|
+
import { Telemetry } from "../types/telemetry.mjs";
|
|
4
|
+
import { WorkflowRunRecord } from "../types/run.mjs";
|
|
5
|
+
import { ResolvedScheduleNextOptions, ScheduleNextOptions, WorkflowBatchStartItem, WorkflowStartOptions } from "../types/run-options.mjs";
|
|
6
|
+
import { WorkflowEventReader, WorkflowIdempotencyIndex, WorkflowRunCreationRepository, WorkflowRunReaderRepository, WorkflowStoreNamespace } from "../types/store.mjs";
|
|
7
|
+
import { WorkflowExecutionLimits } from "../types/engine-options.mjs";
|
|
8
|
+
import { WorkflowRunStarter } from "../types/engine.mjs";
|
|
9
|
+
//#region src/engine/start-api.d.ts
|
|
10
|
+
interface WorkflowEngineStartApi {
|
|
11
|
+
startWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options?: WorkflowStartOptions): Promise<WorkflowHandle<TOutput>>;
|
|
12
|
+
startWorkflows<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, items: readonly WorkflowBatchStartItem<TRawInput>[]): Promise<readonly WorkflowHandle<TOutput>[]>;
|
|
13
|
+
scheduleNextWorkflow<TInput, TOutput, TRawInput = TInput>(workflow: WorkflowStartTarget<TInput, TOutput, TRawInput>, input: TRawInput, options: ScheduleNextOptions): Promise<WorkflowHandle<TOutput>>;
|
|
14
|
+
}
|
|
15
|
+
/** Resolves schedule-next options and derives the start time for the next run. */
|
|
16
|
+
declare function resolveScheduleNextOptions(options: ScheduleNextOptions, now: () => Temporal.Instant): ResolvedScheduleNextOptions;
|
|
17
|
+
type WorkflowEngineStartStore = WorkflowStoreNamespace & WorkflowRunCreationRepository & WorkflowRunReaderRepository & WorkflowIdempotencyIndex & WorkflowEventReader;
|
|
18
|
+
interface WorkflowEngineStartApiOptions {
|
|
19
|
+
readonly store: WorkflowEngineStartStore;
|
|
20
|
+
readonly now: () => Temporal.Instant;
|
|
21
|
+
readonly limits: WorkflowExecutionLimits;
|
|
22
|
+
readonly createRunId: () => string;
|
|
23
|
+
readonly telemetry?: Telemetry;
|
|
24
|
+
readonly emitRunEvent: (run: WorkflowRunRecord) => void;
|
|
25
|
+
readonly starter: WorkflowRunStarter;
|
|
26
|
+
readonly handleOperations: HandleOperations;
|
|
27
|
+
}
|
|
28
|
+
declare function createWorkflowEngineStartApi(service: WorkflowEngineStartApiOptions): WorkflowEngineStartApi;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { WorkflowEngineStartApi, createWorkflowEngineStartApi, resolveScheduleNextOptions };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { defineWorkflowFromTarget, parseWorkflowInput } from "../definition.mjs";
|
|
2
|
+
import { captureTelemetryContext } from "../telemetry.mjs";
|
|
3
|
+
import { toOptionalPersistedValue, toPersistedValue } from "./serialization.mjs";
|
|
4
|
+
import { workflowHandle } from "./run-utils.mjs";
|
|
5
|
+
import { resolveWorkflowStartSpec } from "./run-service.mjs";
|
|
6
|
+
//#region src/engine/start-api.ts
|
|
7
|
+
/** Resolves schedule-next options and derives the start time for the next run. */
|
|
8
|
+
function resolveScheduleNextOptions(options, now) {
|
|
9
|
+
const from = options.from ?? now();
|
|
10
|
+
const start = {
|
|
11
|
+
...options.id === void 0 ? {} : { id: options.id },
|
|
12
|
+
idempotencyKey: options.idempotencyKey,
|
|
13
|
+
...options.workflowVersion === void 0 ? {} : { workflowVersion: options.workflowVersion },
|
|
14
|
+
...options.workflowVersionResolver === void 0 ? {} : { workflowVersionResolver: options.workflowVersionResolver },
|
|
15
|
+
...options.context === void 0 ? {} : { context: options.context },
|
|
16
|
+
...options.parent === void 0 ? {} : { parent: options.parent },
|
|
17
|
+
availableAt: from.toZonedDateTimeISO("UTC").add(options.every).toInstant(),
|
|
18
|
+
...options.deadlineAt === void 0 ? {} : { deadlineAt: options.deadlineAt }
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
schedule: {
|
|
22
|
+
...options,
|
|
23
|
+
from
|
|
24
|
+
},
|
|
25
|
+
start
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function createWorkflowEngineStartApi(service) {
|
|
29
|
+
return {
|
|
30
|
+
async startWorkflow(workflow, input, startOptions) {
|
|
31
|
+
const resolvedDefinition = await resolveWorkflowStartSpec(defineWorkflowFromTarget(workflow), startOptions);
|
|
32
|
+
const parsedInput = await parseWorkflowInput(resolvedDefinition, input);
|
|
33
|
+
const idempotencyKey = startOptions?.idempotencyKey;
|
|
34
|
+
const explicitRunId = startOptions?.id;
|
|
35
|
+
const existingRun = idempotencyKey === void 0 ? void 0 : await service.store.getRunByIdempotencyKey({
|
|
36
|
+
workflowName: resolvedDefinition.name,
|
|
37
|
+
...resolvedDefinition.version === void 0 ? {} : { workflowVersion: resolvedDefinition.version },
|
|
38
|
+
idempotencyKey
|
|
39
|
+
});
|
|
40
|
+
if (existingRun !== void 0) return workflowStartHandle(service, resolvedDefinition, existingRun.id);
|
|
41
|
+
const runId = explicitRunId ?? service.createRunId();
|
|
42
|
+
const timestamp = service.now();
|
|
43
|
+
const availableAt = startOptions?.availableAt;
|
|
44
|
+
const deadlineAt = startOptions?.deadlineAt;
|
|
45
|
+
const parent = startOptions?.parent === void 0 ? void 0 : startOptions.parent;
|
|
46
|
+
const persistedInput = toOptionalPersistedValue(parsedInput, "workflow input", service.limits);
|
|
47
|
+
const run = {
|
|
48
|
+
id: runId,
|
|
49
|
+
namespace: service.store.namespace,
|
|
50
|
+
workflowName: resolvedDefinition.name,
|
|
51
|
+
...resolvedDefinition.version === void 0 ? {} : { workflowVersion: resolvedDefinition.version },
|
|
52
|
+
status: "pending",
|
|
53
|
+
...persistedInput === void 0 ? {} : { input: persistedInput },
|
|
54
|
+
...startOptions?.context === void 0 ? {} : { context: toPersistedValue(startOptions.context, "workflow context", service.limits) },
|
|
55
|
+
...(() => {
|
|
56
|
+
const telemetryContext = captureTelemetryContext(service.telemetry);
|
|
57
|
+
return telemetryContext === void 0 ? {} : { telemetryContext };
|
|
58
|
+
})(),
|
|
59
|
+
attempts: 0,
|
|
60
|
+
...idempotencyKey === void 0 ? {} : { idempotencyKey },
|
|
61
|
+
...parent === void 0 ? {} : {
|
|
62
|
+
parentRunId: parent.runId,
|
|
63
|
+
...parent.stepId === void 0 ? {} : { parentStepId: parent.stepId },
|
|
64
|
+
...parent.stepName === void 0 ? {} : { parentStepName: parent.stepName },
|
|
65
|
+
...parent.stepAttempt === void 0 ? {} : { parentStepAttempt: parent.stepAttempt }
|
|
66
|
+
},
|
|
67
|
+
createdAt: timestamp,
|
|
68
|
+
updatedAt: timestamp,
|
|
69
|
+
lastTransitionAt: timestamp,
|
|
70
|
+
lastTransitionReason: "created",
|
|
71
|
+
...availableAt === void 0 ? {} : { availableAt },
|
|
72
|
+
...deadlineAt === void 0 ? {} : { deadlineAt }
|
|
73
|
+
};
|
|
74
|
+
const createdRun = await service.store.createRun(run);
|
|
75
|
+
service.emitRunEvent(createdRun);
|
|
76
|
+
return workflowStartHandle(service, resolvedDefinition, createdRun.id);
|
|
77
|
+
},
|
|
78
|
+
async startWorkflows(workflow, items) {
|
|
79
|
+
const handles = [];
|
|
80
|
+
for (const item of items) handles.push(await service.starter.startWorkflow(workflow, item.input, item.options));
|
|
81
|
+
return handles;
|
|
82
|
+
},
|
|
83
|
+
async scheduleNextWorkflow(workflow, input, scheduleOptions) {
|
|
84
|
+
const options = resolveScheduleNextOptions(scheduleOptions, service.now).start;
|
|
85
|
+
return await service.starter.startWorkflow(workflow, input, options);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function workflowStartHandle(service, definition, runId) {
|
|
90
|
+
return workflowHandle(service.store, definition, runId, service.now, {
|
|
91
|
+
getTimeline: async (currentRunId) => await service.handleOperations.getTimeline(currentRunId),
|
|
92
|
+
setMetadata: async (currentRunId, metadata) => await service.handleOperations.setMetadata(currentRunId, metadata),
|
|
93
|
+
setAttributes: async (currentRunId, attributes) => await service.handleOperations.setAttributes(currentRunId, attributes),
|
|
94
|
+
cancel: async (currentRunId) => await service.handleOperations.cancel(currentRunId)
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
export { createWorkflowEngineStartApi, resolveScheduleNextOptions };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { RunId } from "../types/run-id.mjs";
|
|
2
|
+
import { WorkflowDefinition } from "../types/definition.mjs";
|
|
3
|
+
import { WorkflowStepAttemptRecord } from "../types/step-attempts.mjs";
|
|
4
|
+
import { ExecutionResult } from "../types/result.mjs";
|
|
5
|
+
import { WorkflowAttributePatch, WorkflowRunRecord, WorkflowRunRetryReason, WorkflowStepIdentity } from "../types/run.mjs";
|
|
6
|
+
import { WorkflowErrorRecord } from "../types/error.mjs";
|
|
7
|
+
import { EventRecord } from "../types/events.mjs";
|
|
8
|
+
import { WorkflowHistory } from "../history/mod.mjs";
|
|
9
|
+
import { WorkflowConditionalEventAppender, WorkflowEventReader, WorkflowLockConditionalWriterRepository, WorkflowLockListerRepository, WorkflowRunConditionalWriterRepository, WorkflowRunReaderRepository, WorkflowRunUnconditionalWriterRepository, WorkflowRunWriterRepository, WorkflowStepAttemptLookup } from "../types/store.mjs";
|
|
10
|
+
import { getRequiredRun } from "../utility.mjs";
|
|
11
|
+
import { StorageValue } from "@temelj/storage";
|
|
12
|
+
//#region src/engine/state.d.ts
|
|
13
|
+
interface WorkflowEngineStateLimits {
|
|
14
|
+
readonly maximumEventHistoryEvents?: number;
|
|
15
|
+
}
|
|
16
|
+
type WorkflowRunLookup = WorkflowRunReaderRepository;
|
|
17
|
+
type WorkflowRunWriter = WorkflowRunUnconditionalWriterRepository;
|
|
18
|
+
type WorkflowRunConditionalWriter = WorkflowRunConditionalWriterRepository;
|
|
19
|
+
type WorkflowRunStateStore = WorkflowRunLookup & WorkflowRunWriter & WorkflowRunWriterRepository;
|
|
20
|
+
type WorkflowCurrentEventAppender = WorkflowConditionalEventAppender;
|
|
21
|
+
type WorkflowLockReleaseStore = WorkflowLockListerRepository & WorkflowLockConditionalWriterRepository;
|
|
22
|
+
type WorkflowChildWakeStore = WorkflowRunStateStore & WorkflowEventReader & WorkflowStepAttemptLookup;
|
|
23
|
+
type WorkflowChildCascadeStore = WorkflowChildWakeStore & WorkflowLockReleaseStore;
|
|
24
|
+
type WorkflowChildRunStateStore = WorkflowChildCascadeStore & WorkflowCurrentEventAppender;
|
|
25
|
+
declare function requireDefinitionMatchesRun<TInput, TOutput, TRawInput = TInput>(definition: WorkflowDefinition<TInput, TOutput, TRawInput>, run: WorkflowRunRecord): void;
|
|
26
|
+
declare function appendEventIfCurrentExecution(store: WorkflowCurrentEventAppender, history: WorkflowHistory, event: EventRecord, executionOwner: WorkflowRunRecord, limits: WorkflowEngineStateLimits, beforeAppend?: () => void, afterAppend?: (event: EventRecord, events: readonly EventRecord[]) => void): Promise<void>;
|
|
27
|
+
declare function requireCurrentExecutionOwner(store: WorkflowRunLookup, runId: RunId, executionOwner: WorkflowRunRecord): Promise<void>;
|
|
28
|
+
declare function patchRun(store: WorkflowRunWriter, current: WorkflowRunRecord, patch: Partial<WorkflowRunRecord>): Promise<WorkflowRunRecord>;
|
|
29
|
+
declare function patchRunIfCurrent(store: WorkflowRunConditionalWriter, current: WorkflowRunRecord, patch: Partial<WorkflowRunRecord>): Promise<WorkflowRunRecord | undefined>;
|
|
30
|
+
declare function updateRunMetadataIfCurrent(store: WorkflowRunLookup & WorkflowRunConditionalWriter, runId: RunId, metadata: StorageValue, timestamp: Temporal.Instant): Promise<WorkflowRunRecord>;
|
|
31
|
+
declare function setRunAttributesIfCurrent(store: WorkflowRunLookup & WorkflowRunConditionalWriter, runId: RunId, attributes: WorkflowAttributePatch, timestamp: Temporal.Instant): Promise<WorkflowRunRecord>;
|
|
32
|
+
declare function patchCurrentExecutionRun(store: WorkflowRunLookup & WorkflowRunConditionalWriter, executionOwner: WorkflowRunRecord, patch: Partial<WorkflowRunRecord>): Promise<WorkflowRunRecord | undefined>;
|
|
33
|
+
declare function patchCurrentExecutionRunAttributes(store: WorkflowRunLookup & WorkflowRunConditionalWriter, executionOwner: WorkflowRunRecord, attributes: WorkflowAttributePatch, timestamp: Temporal.Instant): Promise<WorkflowRunRecord | undefined>;
|
|
34
|
+
declare function transitionRunToMissingImplementationWait(run: WorkflowRunRecord, error: WorkflowErrorRecord, timestamp: Temporal.Instant, availableAt: Temporal.Instant, retryAttempt: number): WorkflowRunRecord;
|
|
35
|
+
declare function transitionRunToFailed(run: WorkflowRunRecord, error: WorkflowErrorRecord, timestamp: Temporal.Instant, lastTransitionReason: "deadline" | "failed", deadlineAt?: Temporal.Instant): WorkflowRunRecord;
|
|
36
|
+
declare function transitionRunToRunning(run: WorkflowRunRecord, timestamp: Temporal.Instant, attempts: number | undefined): WorkflowRunRecord;
|
|
37
|
+
declare function transitionRunToCompleted(run: WorkflowRunRecord, output: StorageValue | undefined, timestamp: Temporal.Instant): WorkflowRunRecord;
|
|
38
|
+
declare function transitionRunToExecutionWait(run: WorkflowRunRecord, timestamp: Temporal.Instant, availableAt: Temporal.Instant, options?: {
|
|
39
|
+
readonly retryAt?: Temporal.Instant;
|
|
40
|
+
readonly retryReason?: WorkflowRunRetryReason;
|
|
41
|
+
readonly retryAttempt?: number;
|
|
42
|
+
readonly retryStepId?: string;
|
|
43
|
+
readonly retryStepName?: string;
|
|
44
|
+
readonly error?: WorkflowErrorRecord;
|
|
45
|
+
}): WorkflowRunRecord;
|
|
46
|
+
declare function transitionRunToWaiting(run: WorkflowRunRecord, timestamp: Temporal.Instant, availableAt: Temporal.Instant): WorkflowRunRecord;
|
|
47
|
+
declare function transitionRunToRescheduled(run: WorkflowRunRecord, timestamp: Temporal.Instant, availableAt: Temporal.Instant): WorkflowRunRecord;
|
|
48
|
+
declare function transitionRunAfterStaleLeaseRelease(run: WorkflowRunRecord, timestamp: Temporal.Instant, availableAt: Temporal.Instant): WorkflowRunRecord;
|
|
49
|
+
declare function transitionRunToManualRetry(run: WorkflowRunRecord, timestamp: Temporal.Instant, availableAt: Temporal.Instant, retryAttempt: number): WorkflowRunRecord;
|
|
50
|
+
declare function transitionRunToPermanentFailure(run: WorkflowRunRecord, error: WorkflowErrorRecord, timestamp: Temporal.Instant): WorkflowRunRecord;
|
|
51
|
+
declare function transitionRunToCanceled(run: WorkflowRunRecord, error: WorkflowErrorRecord, timestamp: Temporal.Instant): WorkflowRunRecord;
|
|
52
|
+
declare function transitionRunAfterParentWake(run: WorkflowRunRecord, timestamp: Temporal.Instant): WorkflowRunRecord;
|
|
53
|
+
declare function isCurrentExecutionOwner(current: WorkflowRunRecord, execution: WorkflowRunRecord): boolean;
|
|
54
|
+
declare function cancelRunWithChildren(store: WorkflowChildCascadeStore, runId: RunId, canceledAt: Temporal.Instant): Promise<WorkflowRunRecord>;
|
|
55
|
+
declare function cancelActiveChildRuns(store: WorkflowChildCascadeStore, parentRunId: RunId, canceledAt: Temporal.Instant): Promise<void>;
|
|
56
|
+
declare function wakeParentRunForTerminalChild(store: WorkflowChildWakeStore, childRun: WorkflowRunRecord, timestamp: Temporal.Instant): Promise<void>;
|
|
57
|
+
declare function wakeParentRunForWaitingChild(store: WorkflowChildWakeStore, childRun: WorkflowRunRecord, availableAt: Temporal.Instant): Promise<void>;
|
|
58
|
+
declare function parentHasActiveChildWorkflowAttemptForRun(store: WorkflowChildWakeStore, parentRunId: RunId, childRun: WorkflowRunRecord): Promise<boolean>;
|
|
59
|
+
declare function parentHasActiveChildWorkflowEventForAttempt(store: WorkflowEventReader, parentRunId: RunId, attempt: WorkflowStepAttemptRecord): Promise<boolean>;
|
|
60
|
+
declare function failRunForDeadline<TOutput>(store: WorkflowChildRunStateStore, run: WorkflowRunRecord, deadlineAt: Temporal.Instant, failedAt: Temporal.Instant, executionOwner?: WorkflowRunRecord): Promise<ExecutionResult<TOutput>>;
|
|
61
|
+
declare function releaseLocksForRun(store: WorkflowLockReleaseStore, runId: RunId, releasedAt: Temporal.Instant): Promise<void>;
|
|
62
|
+
declare class WorkflowSuspended extends Error {
|
|
63
|
+
readonly availableAt: Temporal.Instant;
|
|
64
|
+
readonly retryAt?: Temporal.Instant;
|
|
65
|
+
readonly retryReason?: "step";
|
|
66
|
+
readonly retryAttempt?: number;
|
|
67
|
+
readonly retryStep?: WorkflowStepIdentity;
|
|
68
|
+
constructor(availableAt: Temporal.Instant, context?: Function);
|
|
69
|
+
static until(this: void, availableAt: Temporal.Instant): never;
|
|
70
|
+
static forStepRetry(this: void, retryAt: Temporal.Instant, retryStep: WorkflowStepIdentity, retryAttempt: number): never;
|
|
71
|
+
}
|
|
72
|
+
declare class WorkflowStaleExecutionError extends Error {
|
|
73
|
+
constructor(runId: RunId, context?: Function);
|
|
74
|
+
static stale(this: void, runId: RunId): never;
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { WorkflowStaleExecutionError, WorkflowSuspended, appendEventIfCurrentExecution, cancelActiveChildRuns, cancelRunWithChildren, failRunForDeadline, getRequiredRun, isCurrentExecutionOwner, parentHasActiveChildWorkflowAttemptForRun, parentHasActiveChildWorkflowEventForAttempt, patchCurrentExecutionRun, patchCurrentExecutionRunAttributes, patchRun, patchRunIfCurrent, releaseLocksForRun, requireCurrentExecutionOwner, requireDefinitionMatchesRun, setRunAttributesIfCurrent, transitionRunAfterParentWake, transitionRunAfterStaleLeaseRelease, transitionRunToCanceled, transitionRunToCompleted, transitionRunToExecutionWait, transitionRunToFailed, transitionRunToManualRetry, transitionRunToMissingImplementationWait, transitionRunToPermanentFailure, transitionRunToRescheduled, transitionRunToRunning, transitionRunToWaiting, updateRunMetadataIfCurrent, wakeParentRunForTerminalChild, wakeParentRunForWaitingChild };
|