@workflow/core 5.0.0-beta.5 → 5.0.0-beta.50
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/dist/attribute-changes.d.ts +5 -0
- package/dist/attribute-changes.d.ts.map +1 -0
- package/dist/attribute-changes.js +25 -0
- package/dist/capabilities.d.ts +35 -2
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +74 -5
- package/dist/capture-stack.d.ts +1 -1
- package/dist/capture-stack.js +2 -2
- package/dist/class-serialization.d.ts +32 -0
- package/dist/class-serialization.d.ts.map +1 -1
- package/dist/class-serialization.js +37 -1
- package/dist/classify-error.d.ts +19 -3
- package/dist/classify-error.d.ts.map +1 -1
- package/dist/classify-error.js +98 -6
- package/dist/context-violation-error.d.ts +5 -5
- package/dist/context-violation-error.d.ts.map +1 -1
- package/dist/context-violation-error.js +8 -6
- package/dist/create-hook.d.ts +72 -7
- package/dist/create-hook.d.ts.map +1 -1
- package/dist/create-hook.js +1 -1
- package/dist/define-hook.js +2 -2
- package/dist/describe-error.d.ts +7 -7
- package/dist/describe-error.d.ts.map +1 -1
- package/dist/describe-error.js +97 -12
- package/dist/encryption.d.ts +38 -4
- package/dist/encryption.d.ts.map +1 -1
- package/dist/encryption.js +96 -14
- package/dist/events-consumer.d.ts +271 -0
- package/dist/events-consumer.d.ts.map +1 -1
- package/dist/events-consumer.js +646 -42
- package/dist/flushable-stream.d.ts +56 -1
- package/dist/flushable-stream.d.ts.map +1 -1
- package/dist/flushable-stream.js +123 -11
- package/dist/global.d.ts +36 -2
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js +21 -6
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/log-format.d.ts +2 -2
- package/dist/log-format.js +7 -7
- package/dist/logger.d.ts +1 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +10 -6
- package/dist/private.d.ts +226 -9
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +626 -7
- package/dist/replay-payload-cache.d.ts +64 -0
- package/dist/replay-payload-cache.d.ts.map +1 -0
- package/dist/replay-payload-cache.js +158 -0
- package/dist/runtime/compute-instance.d.ts +13 -0
- package/dist/runtime/compute-instance.d.ts.map +1 -0
- package/dist/runtime/compute-instance.js +14 -0
- package/dist/runtime/constants.d.ts +315 -0
- package/dist/runtime/constants.d.ts.map +1 -1
- package/dist/runtime/constants.js +502 -16
- package/dist/runtime/count-step-started-events.d.ts +52 -0
- package/dist/runtime/count-step-started-events.d.ts.map +1 -0
- package/dist/runtime/count-step-started-events.js +72 -0
- package/dist/runtime/deployment-guard.d.ts +99 -0
- package/dist/runtime/deployment-guard.d.ts.map +1 -0
- package/dist/runtime/deployment-guard.js +154 -0
- package/dist/runtime/get-port-lazy.d.ts +15 -0
- package/dist/runtime/get-port-lazy.d.ts.map +1 -1
- package/dist/runtime/get-port-lazy.js +75 -6
- package/dist/runtime/get-world-lazy.d.ts +5 -14
- package/dist/runtime/get-world-lazy.d.ts.map +1 -1
- package/dist/runtime/get-world-lazy.js +19 -29
- package/dist/runtime/helpers.d.ts +341 -29
- package/dist/runtime/helpers.d.ts.map +1 -1
- package/dist/runtime/helpers.js +559 -57
- package/dist/runtime/quickjs-assets.generated.d.ts +14 -0
- package/dist/runtime/quickjs-assets.generated.d.ts.map +1 -0
- package/dist/runtime/quickjs-assets.generated.js +30 -0
- package/dist/runtime/quickjs-entrypoint.d.ts +136 -0
- package/dist/runtime/quickjs-entrypoint.d.ts.map +1 -0
- package/dist/runtime/quickjs-entrypoint.js +1686 -0
- package/dist/runtime/quickjs-runtime.d.ts +244 -0
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
- package/dist/runtime/quickjs-runtime.js +2427 -0
- package/dist/runtime/quickjs-serde.d.ts +107 -0
- package/dist/runtime/quickjs-serde.d.ts.map +1 -0
- package/dist/runtime/quickjs-serde.js +2159 -0
- package/dist/runtime/replay-budget.d.ts +97 -0
- package/dist/runtime/replay-budget.d.ts.map +1 -0
- package/dist/runtime/replay-budget.js +139 -0
- package/dist/runtime/replay-recovery-reporter.d.ts +36 -0
- package/dist/runtime/replay-recovery-reporter.d.ts.map +1 -0
- package/dist/runtime/replay-recovery-reporter.js +64 -0
- package/dist/runtime/resume-hook.d.ts +91 -8
- package/dist/runtime/resume-hook.d.ts.map +1 -1
- package/dist/runtime/resume-hook.js +512 -89
- package/dist/runtime/resume-latency.d.ts +150 -0
- package/dist/runtime/resume-latency.d.ts.map +1 -0
- package/dist/runtime/resume-latency.js +155 -0
- package/dist/runtime/run-id-time.d.ts +19 -0
- package/dist/runtime/run-id-time.d.ts.map +1 -0
- package/dist/runtime/run-id-time.js +42 -0
- package/dist/runtime/run.d.ts +72 -7
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +280 -53
- package/dist/runtime/runs.d.ts +54 -3
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +126 -16
- package/dist/runtime/start.d.ts +101 -2
- package/dist/runtime/start.d.ts.map +1 -1
- package/dist/runtime/start.js +352 -61
- package/dist/runtime/step-executor.d.ts +205 -5
- package/dist/runtime/step-executor.d.ts.map +1 -1
- package/dist/runtime/step-executor.js +760 -127
- package/dist/runtime/step-latency.d.ts +220 -0
- package/dist/runtime/step-latency.d.ts.map +1 -0
- package/dist/runtime/step-latency.js +215 -0
- package/dist/runtime/step-ownership.d.ts +72 -0
- package/dist/runtime/step-ownership.d.ts.map +1 -0
- package/dist/runtime/step-ownership.js +114 -0
- package/dist/runtime/step-single-flight.d.ts +12 -0
- package/dist/runtime/step-single-flight.d.ts.map +1 -0
- package/dist/runtime/step-single-flight.js +75 -0
- package/dist/runtime/suspension-handler.d.ts +269 -7
- package/dist/runtime/suspension-handler.d.ts.map +1 -1
- package/dist/runtime/suspension-handler.js +1253 -125
- package/dist/runtime/unserializable-step.d.ts +34 -0
- package/dist/runtime/unserializable-step.d.ts.map +1 -0
- package/dist/runtime/unserializable-step.js +52 -0
- package/dist/runtime/vm-mode.d.ts +44 -0
- package/dist/runtime/vm-mode.d.ts.map +1 -0
- package/dist/runtime/vm-mode.js +62 -0
- package/dist/runtime/vm-serde-bundle.generated.d.ts +14 -0
- package/dist/runtime/vm-serde-bundle.generated.d.ts.map +1 -0
- package/dist/runtime/vm-serde-bundle.generated.js +16 -0
- package/dist/runtime/wait-continuation.d.ts +106 -0
- package/dist/runtime/wait-continuation.d.ts.map +1 -0
- package/dist/runtime/wait-continuation.js +136 -0
- package/dist/runtime/wait-until.d.ts +18 -0
- package/dist/runtime/wait-until.d.ts.map +1 -0
- package/dist/runtime/wait-until.js +42 -0
- package/dist/runtime/world-compatibility.d.ts +32 -0
- package/dist/runtime/world-compatibility.d.ts.map +1 -0
- package/dist/runtime/world-compatibility.js +44 -0
- package/dist/runtime/world-init.d.ts +17 -42
- package/dist/runtime/world-init.d.ts.map +1 -1
- package/dist/runtime/world-init.js +18 -43
- package/dist/runtime/world.d.ts +14 -2
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +75 -19
- package/dist/runtime.d.ts +10 -6
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +3741 -490
- package/dist/sealed-box.d.ts +167 -0
- package/dist/sealed-box.d.ts.map +1 -0
- package/dist/sealed-box.js +571 -0
- package/dist/serialization/client.d.ts +3 -3
- package/dist/serialization/client.d.ts.map +1 -1
- package/dist/serialization/client.js +8 -4
- package/dist/serialization/codec-devalue-vm.d.ts +16 -0
- package/dist/serialization/codec-devalue-vm.d.ts.map +1 -0
- package/dist/serialization/codec-devalue-vm.js +148 -0
- package/dist/serialization/codec-devalue.d.ts +1 -1
- package/dist/serialization/codec-devalue.d.ts.map +1 -1
- package/dist/serialization/codec-devalue.js +24 -6
- package/dist/serialization/codec.d.ts +37 -2
- package/dist/serialization/codec.d.ts.map +1 -1
- package/dist/serialization/codec.js +2 -2
- package/dist/serialization/compression.d.ts +105 -0
- package/dist/serialization/compression.d.ts.map +1 -0
- package/dist/serialization/compression.js +261 -0
- package/dist/serialization/encryption.d.ts +119 -17
- package/dist/serialization/encryption.d.ts.map +1 -1
- package/dist/serialization/encryption.js +152 -17
- package/dist/serialization/errors.d.ts +13 -0
- package/dist/serialization/errors.d.ts.map +1 -1
- package/dist/serialization/errors.js +20 -2
- package/dist/serialization/format.d.ts +6 -6
- package/dist/serialization/format.js +7 -7
- package/dist/serialization/hardened.d.ts +156 -0
- package/dist/serialization/hardened.d.ts.map +1 -0
- package/dist/serialization/hardened.js +538 -0
- package/dist/serialization/index.d.ts +10 -8
- package/dist/serialization/index.d.ts.map +1 -1
- package/dist/serialization/index.js +10 -8
- package/dist/serialization/reducers/class-vm.d.ts +20 -0
- package/dist/serialization/reducers/class-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/class-vm.js +77 -0
- package/dist/serialization/reducers/class.d.ts.map +1 -1
- package/dist/serialization/reducers/class.js +11 -6
- package/dist/serialization/reducers/common-vm.d.ts +15 -0
- package/dist/serialization/reducers/common-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/common-vm.js +616 -0
- package/dist/serialization/reducers/common.d.ts +1 -1
- package/dist/serialization/reducers/common.d.ts.map +1 -1
- package/dist/serialization/reducers/common.js +202 -62
- package/dist/serialization/reducers/step-function-vm.d.ts +44 -0
- package/dist/serialization/reducers/step-function-vm.d.ts.map +1 -0
- package/dist/serialization/reducers/step-function-vm.js +97 -0
- package/dist/serialization/reducers/step-function.d.ts.map +1 -1
- package/dist/serialization/reducers/step-function.js +25 -9
- package/dist/serialization/step.d.ts +4 -4
- package/dist/serialization/step.d.ts.map +1 -1
- package/dist/serialization/step.js +9 -5
- package/dist/serialization/types.d.ts +80 -1
- package/dist/serialization/types.d.ts.map +1 -1
- package/dist/serialization/types.js +15 -1
- package/dist/serialization/workflow-vm.d.ts +29 -0
- package/dist/serialization/workflow-vm.d.ts.map +1 -0
- package/dist/serialization/workflow-vm.js +74 -0
- package/dist/serialization-format.d.ts +64 -8
- package/dist/serialization-format.d.ts.map +1 -1
- package/dist/serialization-format.js +225 -73
- package/dist/serialization.d.ts +262 -34
- package/dist/serialization.d.ts.map +1 -1
- package/dist/serialization.js +1879 -274
- package/dist/set-attributes.d.ts +13 -0
- package/dist/set-attributes.d.ts.map +1 -0
- package/dist/set-attributes.js +60 -0
- package/dist/source-map.d.ts +25 -0
- package/dist/source-map.d.ts.map +1 -1
- package/dist/source-map.js +154 -10
- package/dist/step/context-storage.d.ts +61 -2
- package/dist/step/context-storage.d.ts.map +1 -1
- package/dist/step/context-storage.js +7 -5
- package/dist/step/writable-stream.d.ts +3 -3
- package/dist/step/writable-stream.d.ts.map +1 -1
- package/dist/step/writable-stream.js +72 -9
- package/dist/step.d.ts.map +1 -1
- package/dist/step.js +148 -27
- package/dist/symbols.d.ts +50 -0
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +51 -1
- package/dist/telemetry/semantic-conventions.d.ts +397 -2
- package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
- package/dist/telemetry/semantic-conventions.js +297 -3
- package/dist/telemetry.d.ts +91 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +244 -17
- package/dist/test-support/orchestrator-context.d.ts +25 -0
- package/dist/test-support/orchestrator-context.d.ts.map +1 -0
- package/dist/test-support/orchestrator-context.js +101 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +23 -1
- package/dist/util.d.ts +0 -5
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +1 -15
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/vm/index.d.ts.map +1 -1
- package/dist/vm/index.js +84 -14
- package/dist/vm/script-cache.d.ts +26 -0
- package/dist/vm/script-cache.d.ts.map +1 -0
- package/dist/vm/script-cache.js +131 -0
- package/dist/vm/uint8array-base64.js +1 -1
- package/dist/workflow/abort-controller.d.ts +2 -2
- package/dist/workflow/abort-controller.d.ts.map +1 -1
- package/dist/workflow/abort-controller.js +88 -21
- package/dist/workflow/attribute-dispatcher.d.ts +6 -0
- package/dist/workflow/attribute-dispatcher.d.ts.map +1 -0
- package/dist/workflow/attribute-dispatcher.js +45 -0
- package/dist/workflow/create-hook.d.ts.map +1 -1
- package/dist/workflow/create-hook.js +24 -3
- package/dist/workflow/get-workflow-metadata.js +2 -2
- package/dist/workflow/hook.d.ts.map +1 -1
- package/dist/workflow/hook.js +304 -47
- package/dist/workflow/index.d.ts +1 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +2 -1
- package/dist/workflow/set-attributes.d.ts +68 -0
- package/dist/workflow/set-attributes.d.ts.map +1 -0
- package/dist/workflow/set-attributes.js +60 -0
- package/dist/workflow/sleep.d.ts.map +1 -1
- package/dist/workflow/sleep.js +58 -12
- package/dist/workflow/world-init-stub.d.ts +3 -3
- package/dist/workflow/world-init-stub.js +4 -4
- package/dist/workflow.d.ts +95 -3
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +895 -561
- package/docs/api-reference/create-hook.mdx +89 -10
- package/docs/api-reference/create-webhook.mdx +16 -15
- package/docs/api-reference/define-hook.mdx +35 -33
- package/docs/api-reference/fatal-error.mdx +30 -8
- package/docs/api-reference/fetch.mdx +14 -10
- package/docs/api-reference/get-step-metadata.mdx +2 -2
- package/docs/api-reference/get-workflow-metadata.mdx +3 -3
- package/docs/api-reference/get-writable.mdx +7 -7
- package/docs/api-reference/index.mdx +4 -1
- package/docs/api-reference/retryable-error.mdx +1 -1
- package/docs/api-reference/set-attributes.mdx +61 -0
- package/docs/api-reference/sleep.mdx +4 -4
- package/docs/foundations/cancellation.mdx +31 -32
- package/docs/foundations/errors-and-retries.mdx +42 -11
- package/docs/foundations/hooks.mdx +64 -35
- package/docs/foundations/idempotency.mdx +244 -12
- package/docs/foundations/index.mdx +1 -23
- package/docs/foundations/meta.json +2 -1
- package/docs/foundations/serialization.mdx +21 -22
- package/docs/foundations/starting-workflows.mdx +106 -30
- package/docs/foundations/streaming.mdx +107 -59
- package/docs/foundations/versioning.mdx +263 -0
- package/docs/foundations/workflows-and-steps.mdx +9 -9
- package/docs/how-it-works/cancellation.mdx +63 -63
- package/docs/how-it-works/code-transform.mdx +83 -67
- package/docs/how-it-works/encryption.mdx +30 -26
- package/docs/how-it-works/event-sourcing.mdx +98 -34
- package/docs/how-it-works/framework-integrations.mdx +96 -337
- package/docs/how-it-works/understanding-directives.mdx +22 -22
- package/package.json +24 -15
- package/dist/runtime/step-handler.d.ts +0 -2
- package/dist/runtime/step-handler.d.ts.map +0 -1
- package/dist/runtime/step-handler.js +0 -776
package/dist/symbols.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const WORKFLOW_USE_STEP: unique symbol;
|
|
2
|
+
export declare const WORKFLOW_SET_ATTRIBUTES: unique symbol;
|
|
2
3
|
export declare const WORKFLOW_CREATE_HOOK: unique symbol;
|
|
3
4
|
export declare const WORKFLOW_SLEEP: unique symbol;
|
|
4
5
|
export declare const WORKFLOW_CONTEXT: unique symbol;
|
|
@@ -6,6 +7,55 @@ export declare const WORKFLOW_GET_STREAM_ID: unique symbol;
|
|
|
6
7
|
export declare const STABLE_ULID: unique symbol;
|
|
7
8
|
export declare const STREAM_NAME_SYMBOL: unique symbol;
|
|
8
9
|
export declare const STREAM_TYPE_SYMBOL: unique symbol;
|
|
10
|
+
export declare const STREAM_FRAMING_SYMBOL: unique symbol;
|
|
11
|
+
/**
|
|
12
|
+
* Stamped on a real `WritableStream` (the user-visible `serialize.writable`
|
|
13
|
+
* returned from a step-side reviver or step-context `getWritable()`) to
|
|
14
|
+
* record the `runId` of the workflow run that owns the underlying server
|
|
15
|
+
* stream. Used together with `STREAM_NAME_SYMBOL`.
|
|
16
|
+
*
|
|
17
|
+
* When `getExternalReducers.WritableStream` (the dehydration path used by
|
|
18
|
+
* `start()`) sees both symbols on a writable, it includes the `runId` in
|
|
19
|
+
* the descriptor it emits. The child run's step-side reviver then opens
|
|
20
|
+
* a server writable against the original `(runId, name)` and resolves
|
|
21
|
+
* that run's encryption key directly, so the child's writes land on
|
|
22
|
+
* the parent's stream as-is, with no client process in the loop. That
|
|
23
|
+
* keeps the forwarding alive for the full lifetime of the child run,
|
|
24
|
+
* not just for the parent step that initiated `start()`.
|
|
25
|
+
*/
|
|
26
|
+
export declare const STREAM_SERVER_RUN_ID_SYMBOL: unique symbol;
|
|
27
|
+
/**
|
|
28
|
+
* Stamped alongside `STREAM_SERVER_RUN_ID_SYMBOL` when the deployment that
|
|
29
|
+
* owns a forwarded writable stream is known. Cross-deployment consumers use
|
|
30
|
+
* it to resolve the owning run's encryption key without loading the run first.
|
|
31
|
+
*/
|
|
32
|
+
export declare const STREAM_SERVER_DEPLOYMENT_ID_SYMBOL: unique symbol;
|
|
33
|
+
/**
|
|
34
|
+
* Stamped alongside `STREAM_SERVER_RUN_ID_SYMBOL` with the owning run's
|
|
35
|
+
* X25519 public key (base64), when the run has one.
|
|
36
|
+
*
|
|
37
|
+
* This is what lets a forwarded writable be written to across a deployment
|
|
38
|
+
* boundary at zero cost. The owning run derives its own public key locally
|
|
39
|
+
* when it creates the stream, so the key travels inside the serialized
|
|
40
|
+
* descriptor; a child on another deployment can then seal frames immediately.
|
|
41
|
+
* Without it the child would have to either fetch the owning run or fetch its
|
|
42
|
+
* symmetric key from the API, the round trip this whole mechanism exists to
|
|
43
|
+
* avoid.
|
|
44
|
+
*/
|
|
45
|
+
export declare const STREAM_SERVER_PUBLIC_KEY_SYMBOL: unique symbol;
|
|
46
|
+
/**
|
|
47
|
+
* Stamped on a `WorkflowServerWritableStream` instance to expose its
|
|
48
|
+
* durability barrier: `() => Promise<void>` that resolves once every accepted
|
|
49
|
+
* chunk has durably reached the server (nothing buffered, nothing in flight)
|
|
50
|
+
* and rejects if any dispatch failed.
|
|
51
|
+
*
|
|
52
|
+
* The sink acks `write()` on buffer entry (group-commit batching), so
|
|
53
|
+
* durability tracking lives here instead: `flushablePipe` feature-detects
|
|
54
|
+
* this and awaits it before resolving its lock-release completion, keeping
|
|
55
|
+
* the invariant that a step cannot complete while stream data is still
|
|
56
|
+
* client-side. Sinks without it are fully durable per `write()` already.
|
|
57
|
+
*/
|
|
58
|
+
export declare const STREAM_DRAIN_SYMBOL: unique symbol;
|
|
9
59
|
export declare const BODY_INIT_SYMBOL: unique symbol;
|
|
10
60
|
export declare const WEBHOOK_RESPONSE_WRITABLE: unique symbol;
|
|
11
61
|
/**
|
package/dist/symbols.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,eAAkC,CAAC;AACjE,eAAO,MAAM,oBAAoB,eAAqC,CAAC;AACvE,eAAO,MAAM,cAAc,eAA+B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,eAAiC,CAAC;AAC/D,eAAO,MAAM,sBAAsB,eAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,eAAqC,CAAC;AAC9D,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE,eAAO,MAAM,gBAAgB,eAA0B,CAAC;AACxD,eAAO,MAAM,yBAAyB,eAErC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAwC,CAAC;AAE7E,eAAO,MAAM,iBAAiB,eAA2C,CAAC;AAC1E,eAAO,MAAM,gBAAgB,eAA0C,CAAC;AACxE,eAAO,MAAM,uBAAuB,eAEnC,CAAC;AACF,eAAO,MAAM,mBAAmB,eAA6C,CAAC"}
|
|
1
|
+
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../src/symbols.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,eAAkC,CAAC;AACjE,eAAO,MAAM,uBAAuB,eAAwC,CAAC;AAC7E,eAAO,MAAM,oBAAoB,eAAqC,CAAC;AACvE,eAAO,MAAM,cAAc,eAA+B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,eAAiC,CAAC;AAC/D,eAAO,MAAM,sBAAsB,eAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,eAAqC,CAAC;AAC9D,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE,eAAO,MAAM,kBAAkB,eAAqC,CAAC;AACrE,eAAO,MAAM,qBAAqB,eAAwC,CAAC;AAC3E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,2BAA2B,eAEvC,CAAC;AACF;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,eAE9C,CAAC;AACF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,+BAA+B,eAE3C,CAAC;AACF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,eAAsC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,eAA0B,CAAC;AACxD,eAAO,MAAM,yBAAyB,eAErC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAwC,CAAC;AAE7E,eAAO,MAAM,iBAAiB,eAA2C,CAAC;AAC1E,eAAO,MAAM,gBAAgB,eAA0C,CAAC;AACxE,eAAO,MAAM,uBAAuB,eAEnC,CAAC;AACF,eAAO,MAAM,mBAAmB,eAA6C,CAAC"}
|
package/dist/symbols.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export const WORKFLOW_USE_STEP = Symbol.for('WORKFLOW_USE_STEP');
|
|
2
|
+
export const WORKFLOW_SET_ATTRIBUTES = Symbol.for('WORKFLOW_SET_ATTRIBUTES');
|
|
2
3
|
export const WORKFLOW_CREATE_HOOK = Symbol.for('WORKFLOW_CREATE_HOOK');
|
|
3
4
|
export const WORKFLOW_SLEEP = Symbol.for('WORKFLOW_SLEEP');
|
|
4
5
|
export const WORKFLOW_CONTEXT = Symbol.for('WORKFLOW_CONTEXT');
|
|
@@ -6,6 +7,55 @@ export const WORKFLOW_GET_STREAM_ID = Symbol.for('WORKFLOW_GET_STREAM_ID');
|
|
|
6
7
|
export const STABLE_ULID = Symbol.for('WORKFLOW_STABLE_ULID');
|
|
7
8
|
export const STREAM_NAME_SYMBOL = Symbol.for('WORKFLOW_STREAM_NAME');
|
|
8
9
|
export const STREAM_TYPE_SYMBOL = Symbol.for('WORKFLOW_STREAM_TYPE');
|
|
10
|
+
export const STREAM_FRAMING_SYMBOL = Symbol.for('WORKFLOW_STREAM_FRAMING');
|
|
11
|
+
/**
|
|
12
|
+
* Stamped on a real `WritableStream` (the user-visible `serialize.writable`
|
|
13
|
+
* returned from a step-side reviver or step-context `getWritable()`) to
|
|
14
|
+
* record the `runId` of the workflow run that owns the underlying server
|
|
15
|
+
* stream. Used together with `STREAM_NAME_SYMBOL`.
|
|
16
|
+
*
|
|
17
|
+
* When `getExternalReducers.WritableStream` (the dehydration path used by
|
|
18
|
+
* `start()`) sees both symbols on a writable, it includes the `runId` in
|
|
19
|
+
* the descriptor it emits. The child run's step-side reviver then opens
|
|
20
|
+
* a server writable against the original `(runId, name)` and resolves
|
|
21
|
+
* that run's encryption key directly, so the child's writes land on
|
|
22
|
+
* the parent's stream as-is, with no client process in the loop. That
|
|
23
|
+
* keeps the forwarding alive for the full lifetime of the child run,
|
|
24
|
+
* not just for the parent step that initiated `start()`.
|
|
25
|
+
*/
|
|
26
|
+
export const STREAM_SERVER_RUN_ID_SYMBOL = Symbol.for('WORKFLOW_STREAM_SERVER_RUN_ID');
|
|
27
|
+
/**
|
|
28
|
+
* Stamped alongside `STREAM_SERVER_RUN_ID_SYMBOL` when the deployment that
|
|
29
|
+
* owns a forwarded writable stream is known. Cross-deployment consumers use
|
|
30
|
+
* it to resolve the owning run's encryption key without loading the run first.
|
|
31
|
+
*/
|
|
32
|
+
export const STREAM_SERVER_DEPLOYMENT_ID_SYMBOL = Symbol.for('WORKFLOW_STREAM_SERVER_DEPLOYMENT_ID');
|
|
33
|
+
/**
|
|
34
|
+
* Stamped alongside `STREAM_SERVER_RUN_ID_SYMBOL` with the owning run's
|
|
35
|
+
* X25519 public key (base64), when the run has one.
|
|
36
|
+
*
|
|
37
|
+
* This is what lets a forwarded writable be written to across a deployment
|
|
38
|
+
* boundary at zero cost. The owning run derives its own public key locally
|
|
39
|
+
* when it creates the stream, so the key travels inside the serialized
|
|
40
|
+
* descriptor; a child on another deployment can then seal frames immediately.
|
|
41
|
+
* Without it the child would have to either fetch the owning run or fetch its
|
|
42
|
+
* symmetric key from the API, the round trip this whole mechanism exists to
|
|
43
|
+
* avoid.
|
|
44
|
+
*/
|
|
45
|
+
export const STREAM_SERVER_PUBLIC_KEY_SYMBOL = Symbol.for('WORKFLOW_STREAM_SERVER_PUBLIC_KEY');
|
|
46
|
+
/**
|
|
47
|
+
* Stamped on a `WorkflowServerWritableStream` instance to expose its
|
|
48
|
+
* durability barrier: `() => Promise<void>` that resolves once every accepted
|
|
49
|
+
* chunk has durably reached the server (nothing buffered, nothing in flight)
|
|
50
|
+
* and rejects if any dispatch failed.
|
|
51
|
+
*
|
|
52
|
+
* The sink acks `write()` on buffer entry (group-commit batching), so
|
|
53
|
+
* durability tracking lives here instead: `flushablePipe` feature-detects
|
|
54
|
+
* this and awaits it before resolving its lock-release completion, keeping
|
|
55
|
+
* the invariant that a step cannot complete while stream data is still
|
|
56
|
+
* client-side. Sinks without it are fully durable per `write()` already.
|
|
57
|
+
*/
|
|
58
|
+
export const STREAM_DRAIN_SYMBOL = Symbol.for('WORKFLOW_STREAM_DRAIN');
|
|
9
59
|
export const BODY_INIT_SYMBOL = Symbol.for('BODY_INIT');
|
|
10
60
|
export const WEBHOOK_RESPONSE_WRITABLE = Symbol.for('WEBHOOK_RESPONSE_WRITABLE');
|
|
11
61
|
/**
|
|
@@ -17,4 +67,4 @@ export const ABORT_STREAM_NAME = Symbol.for('WORKFLOW_ABORT_STREAM_NAME');
|
|
|
17
67
|
export const ABORT_HOOK_TOKEN = Symbol.for('WORKFLOW_ABORT_HOOK_TOKEN');
|
|
18
68
|
export const ABORT_LISTENER_ATTACHED = Symbol.for('WORKFLOW_ABORT_LISTENER_ATTACHED');
|
|
19
69
|
export const ABORT_READER_CANCEL = Symbol.for('WORKFLOW_ABORT_READER_CANCEL');
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDN0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUMzRSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzlELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQzNFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDbkQsK0JBQStCLENBQ2hDLENBQUM7QUFDRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDMUQsc0NBQXNDLENBQ3ZDLENBQUM7QUFDRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQ3ZELG1DQUFtQyxDQUNwQyxDQUFDO0FBQ0Y7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFFdkUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUN4RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUNqRCwyQkFBMkIsQ0FDNUIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDMUUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQy9DLGtDQUFrQyxDQUNuQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFdPUktGTE9XX1VTRV9TVEVQID0gU3ltYm9sLmZvcignV09SS0ZMT1dfVVNFX1NURVAnKTtcbmV4cG9ydCBjb25zdCBXT1JLRkxPV19TRVRfQVRUUklCVVRFUyA9IFN5bWJvbC5mb3IoJ1dPUktGTE9XX1NFVF9BVFRSSUJVVEVTJyk7XG5leHBvcnQgY29uc3QgV09SS0ZMT1dfQ1JFQVRFX0hPT0sgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19DUkVBVEVfSE9PSycpO1xuZXhwb3J0IGNvbnN0IFdPUktGTE9XX1NMRUVQID0gU3ltYm9sLmZvcignV09SS0ZMT1dfU0xFRVAnKTtcbmV4cG9ydCBjb25zdCBXT1JLRkxPV19DT05URVhUID0gU3ltYm9sLmZvcignV09SS0ZMT1dfQ09OVEVYVCcpO1xuZXhwb3J0IGNvbnN0IFdPUktGTE9XX0dFVF9TVFJFQU1fSUQgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19HRVRfU1RSRUFNX0lEJyk7XG5leHBvcnQgY29uc3QgU1RBQkxFX1VMSUQgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19TVEFCTEVfVUxJRCcpO1xuZXhwb3J0IGNvbnN0IFNUUkVBTV9OQU1FX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ1dPUktGTE9XX1NUUkVBTV9OQU1FJyk7XG5leHBvcnQgY29uc3QgU1RSRUFNX1RZUEVfU1lNQk9MID0gU3ltYm9sLmZvcignV09SS0ZMT1dfU1RSRUFNX1RZUEUnKTtcbmV4cG9ydCBjb25zdCBTVFJFQU1fRlJBTUlOR19TWU1CT0wgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19TVFJFQU1fRlJBTUlORycpO1xuLyoqXG4gKiBTdGFtcGVkIG9uIGEgcmVhbCBgV3JpdGFibGVTdHJlYW1gICh0aGUgdXNlci12aXNpYmxlIGBzZXJpYWxpemUud3JpdGFibGVgXG4gKiByZXR1cm5lZCBmcm9tIGEgc3RlcC1zaWRlIHJldml2ZXIgb3Igc3RlcC1jb250ZXh0IGBnZXRXcml0YWJsZSgpYCkgdG9cbiAqIHJlY29yZCB0aGUgYHJ1bklkYCBvZiB0aGUgd29ya2Zsb3cgcnVuIHRoYXQgb3ducyB0aGUgdW5kZXJseWluZyBzZXJ2ZXJcbiAqIHN0cmVhbS4gVXNlZCB0b2dldGhlciB3aXRoIGBTVFJFQU1fTkFNRV9TWU1CT0xgLlxuICpcbiAqIFdoZW4gYGdldEV4dGVybmFsUmVkdWNlcnMuV3JpdGFibGVTdHJlYW1gICh0aGUgZGVoeWRyYXRpb24gcGF0aCB1c2VkIGJ5XG4gKiBgc3RhcnQoKWApIHNlZXMgYm90aCBzeW1ib2xzIG9uIGEgd3JpdGFibGUsIGl0IGluY2x1ZGVzIHRoZSBgcnVuSWRgIGluXG4gKiB0aGUgZGVzY3JpcHRvciBpdCBlbWl0cy4gVGhlIGNoaWxkIHJ1bidzIHN0ZXAtc2lkZSByZXZpdmVyIHRoZW4gb3BlbnNcbiAqIGEgc2VydmVyIHdyaXRhYmxlIGFnYWluc3QgdGhlIG9yaWdpbmFsIGAocnVuSWQsIG5hbWUpYCBhbmQgcmVzb2x2ZXNcbiAqIHRoYXQgcnVuJ3MgZW5jcnlwdGlvbiBrZXkgZGlyZWN0bHksIHNvIHRoZSBjaGlsZCdzIHdyaXRlcyBsYW5kIG9uXG4gKiB0aGUgcGFyZW50J3Mgc3RyZWFtIGFzLWlzLCB3aXRoIG5vIGNsaWVudCBwcm9jZXNzIGluIHRoZSBsb29wLiBUaGF0XG4gKiBrZWVwcyB0aGUgZm9yd2FyZGluZyBhbGl2ZSBmb3IgdGhlIGZ1bGwgbGlmZXRpbWUgb2YgdGhlIGNoaWxkIHJ1bixcbiAqIG5vdCBqdXN0IGZvciB0aGUgcGFyZW50IHN0ZXAgdGhhdCBpbml0aWF0ZWQgYHN0YXJ0KClgLlxuICovXG5leHBvcnQgY29uc3QgU1RSRUFNX1NFUlZFUl9SVU5fSURfU1lNQk9MID0gU3ltYm9sLmZvcihcbiAgJ1dPUktGTE9XX1NUUkVBTV9TRVJWRVJfUlVOX0lEJ1xuKTtcbi8qKlxuICogU3RhbXBlZCBhbG9uZ3NpZGUgYFNUUkVBTV9TRVJWRVJfUlVOX0lEX1NZTUJPTGAgd2hlbiB0aGUgZGVwbG95bWVudCB0aGF0XG4gKiBvd25zIGEgZm9yd2FyZGVkIHdyaXRhYmxlIHN0cmVhbSBpcyBrbm93bi4gQ3Jvc3MtZGVwbG95bWVudCBjb25zdW1lcnMgdXNlXG4gKiBpdCB0byByZXNvbHZlIHRoZSBvd25pbmcgcnVuJ3MgZW5jcnlwdGlvbiBrZXkgd2l0aG91dCBsb2FkaW5nIHRoZSBydW4gZmlyc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBTVFJFQU1fU0VSVkVSX0RFUExPWU1FTlRfSURfU1lNQk9MID0gU3ltYm9sLmZvcihcbiAgJ1dPUktGTE9XX1NUUkVBTV9TRVJWRVJfREVQTE9ZTUVOVF9JRCdcbik7XG4vKipcbiAqIFN0YW1wZWQgYWxvbmdzaWRlIGBTVFJFQU1fU0VSVkVSX1JVTl9JRF9TWU1CT0xgIHdpdGggdGhlIG93bmluZyBydW4nc1xuICogWDI1NTE5IHB1YmxpYyBrZXkgKGJhc2U2NCksIHdoZW4gdGhlIHJ1biBoYXMgb25lLlxuICpcbiAqIFRoaXMgaXMgd2hhdCBsZXRzIGEgZm9yd2FyZGVkIHdyaXRhYmxlIGJlIHdyaXR0ZW4gdG8gYWNyb3NzIGEgZGVwbG95bWVudFxuICogYm91bmRhcnkgYXQgemVybyBjb3N0LiBUaGUgb3duaW5nIHJ1biBkZXJpdmVzIGl0cyBvd24gcHVibGljIGtleSBsb2NhbGx5XG4gKiB3aGVuIGl0IGNyZWF0ZXMgdGhlIHN0cmVhbSwgc28gdGhlIGtleSB0cmF2ZWxzIGluc2lkZSB0aGUgc2VyaWFsaXplZFxuICogZGVzY3JpcHRvcjsgYSBjaGlsZCBvbiBhbm90aGVyIGRlcGxveW1lbnQgY2FuIHRoZW4gc2VhbCBmcmFtZXMgaW1tZWRpYXRlbHkuXG4gKiBXaXRob3V0IGl0IHRoZSBjaGlsZCB3b3VsZCBoYXZlIHRvIGVpdGhlciBmZXRjaCB0aGUgb3duaW5nIHJ1biBvciBmZXRjaCBpdHNcbiAqIHN5bW1ldHJpYyBrZXkgZnJvbSB0aGUgQVBJLCB0aGUgcm91bmQgdHJpcCB0aGlzIHdob2xlIG1lY2hhbmlzbSBleGlzdHMgdG9cbiAqIGF2b2lkLlxuICovXG5leHBvcnQgY29uc3QgU1RSRUFNX1NFUlZFUl9QVUJMSUNfS0VZX1NZTUJPTCA9IFN5bWJvbC5mb3IoXG4gICdXT1JLRkxPV19TVFJFQU1fU0VSVkVSX1BVQkxJQ19LRVknXG4pO1xuLyoqXG4gKiBTdGFtcGVkIG9uIGEgYFdvcmtmbG93U2VydmVyV3JpdGFibGVTdHJlYW1gIGluc3RhbmNlIHRvIGV4cG9zZSBpdHNcbiAqIGR1cmFiaWxpdHkgYmFycmllcjogYCgpID0+IFByb21pc2U8dm9pZD5gIHRoYXQgcmVzb2x2ZXMgb25jZSBldmVyeSBhY2NlcHRlZFxuICogY2h1bmsgaGFzIGR1cmFibHkgcmVhY2hlZCB0aGUgc2VydmVyIChub3RoaW5nIGJ1ZmZlcmVkLCBub3RoaW5nIGluIGZsaWdodClcbiAqIGFuZCByZWplY3RzIGlmIGFueSBkaXNwYXRjaCBmYWlsZWQuXG4gKlxuICogVGhlIHNpbmsgYWNrcyBgd3JpdGUoKWAgb24gYnVmZmVyIGVudHJ5IChncm91cC1jb21taXQgYmF0Y2hpbmcpLCBzb1xuICogZHVyYWJpbGl0eSB0cmFja2luZyBsaXZlcyBoZXJlIGluc3RlYWQ6IGBmbHVzaGFibGVQaXBlYCBmZWF0dXJlLWRldGVjdHNcbiAqIHRoaXMgYW5kIGF3YWl0cyBpdCBiZWZvcmUgcmVzb2x2aW5nIGl0cyBsb2NrLXJlbGVhc2UgY29tcGxldGlvbiwga2VlcGluZ1xuICogdGhlIGludmFyaWFudCB0aGF0IGEgc3RlcCBjYW5ub3QgY29tcGxldGUgd2hpbGUgc3RyZWFtIGRhdGEgaXMgc3RpbGxcbiAqIGNsaWVudC1zaWRlLiBTaW5rcyB3aXRob3V0IGl0IGFyZSBmdWxseSBkdXJhYmxlIHBlciBgd3JpdGUoKWAgYWxyZWFkeS5cbiAqL1xuZXhwb3J0IGNvbnN0IFNUUkVBTV9EUkFJTl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19TVFJFQU1fRFJBSU4nKTtcblxuZXhwb3J0IGNvbnN0IEJPRFlfSU5JVF9TWU1CT0wgPSBTeW1ib2wuZm9yKCdCT0RZX0lOSVQnKTtcbmV4cG9ydCBjb25zdCBXRUJIT09LX1JFU1BPTlNFX1dSSVRBQkxFID0gU3ltYm9sLmZvcihcbiAgJ1dFQkhPT0tfUkVTUE9OU0VfV1JJVEFCTEUnXG4pO1xuXG4vKipcbiAqIFN5bWJvbCB1c2VkIHRvIHN0b3JlIHRoZSBjbGFzcyByZWdpc3RyeSBvbiBnbG9iYWxUaGlzIGluIHdvcmtmbG93IG1vZGUuXG4gKiBUaGlzIGFsbG93cyB0aGUgZGVzZXJpYWxpemVyIHRvIGZpbmQgY2xhc3NlcyBieSBjbGFzc0lkIGluIHRoZSBWTSBjb250ZXh0LlxuICovXG5leHBvcnQgY29uc3QgV09SS0ZMT1dfQ0xBU1NfUkVHSVNUUlkgPSBTeW1ib2wuZm9yKCd3b3JrZmxvdy1jbGFzcy1yZWdpc3RyeScpO1xuXG5leHBvcnQgY29uc3QgQUJPUlRfU1RSRUFNX05BTUUgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19BQk9SVF9TVFJFQU1fTkFNRScpO1xuZXhwb3J0IGNvbnN0IEFCT1JUX0hPT0tfVE9LRU4gPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19BQk9SVF9IT09LX1RPS0VOJyk7XG5leHBvcnQgY29uc3QgQUJPUlRfTElTVEVORVJfQVRUQUNIRUQgPSBTeW1ib2wuZm9yKFxuICAnV09SS0ZMT1dfQUJPUlRfTElTVEVORVJfQVRUQUNIRUQnXG4pO1xuZXhwb3J0IGNvbnN0IEFCT1JUX1JFQURFUl9DQU5DRUwgPSBTeW1ib2wuZm9yKCdXT1JLRkxPV19BQk9SVF9SRUFERVJfQ0FOQ0VMJyk7XG4iXX0=
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module provides standardized telemetry attributes following OpenTelemetry semantic conventions
|
|
5
5
|
* for instrumenting workflow execution, step processing, and related operations. Each exported function
|
|
6
|
-
* creates a properly formatted attribute object
|
|
6
|
+
* creates a properly formatted attribute object for use with OpenTelemetry spans.
|
|
7
7
|
*
|
|
8
8
|
* The semantic conventions are organized into several categories:
|
|
9
9
|
* - **Workflow attributes**: Track workflow lifecycle, status, and metadata
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* - **Queue attributes**: Instrument message queue operations
|
|
12
12
|
* - **Deployment attributes**: Capture deployment environment information
|
|
13
13
|
*
|
|
14
|
-
* All attribute functions are type-safe and
|
|
14
|
+
* All attribute functions are type-safe and use existing backend types to ensure
|
|
15
15
|
* consistency between telemetry data and actual system state.
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
@@ -60,6 +60,42 @@ export declare const WorkflowStartedAt: (value: number) => {
|
|
|
60
60
|
export declare const WorkflowEventsCount: (value: number) => {
|
|
61
61
|
[k: string]: number;
|
|
62
62
|
};
|
|
63
|
+
/** Whether workflow execution starts with replay or resumes a retained VM */
|
|
64
|
+
export declare const WorkflowExecutionMode: (value: "replay" | "retained") => {
|
|
65
|
+
[k: string]: "replay" | "retained";
|
|
66
|
+
};
|
|
67
|
+
/** Whether the compiled application workflow bundle was cached. */
|
|
68
|
+
export declare const WorkflowBundleCompileCacheHit: (value: boolean) => {
|
|
69
|
+
[k: string]: boolean;
|
|
70
|
+
};
|
|
71
|
+
/** Operation that supplied events to the current replay. */
|
|
72
|
+
export type WorkflowReplayLoadSource = 'run_started' | 'hook_preload' | 'events_list' | 'events_list_incremental';
|
|
73
|
+
export declare const WorkflowReplayLoadSource: (value: WorkflowReplayLoadSource) => {
|
|
74
|
+
[k: string]: WorkflowReplayLoadSource;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Events the replay walked past that no consumer claimed, still held when the
|
|
78
|
+
* replay stopped.
|
|
79
|
+
*
|
|
80
|
+
* A non-zero count on a suspension is ordinary: an out-of-band delivery that
|
|
81
|
+
* landed ahead of the code that reads it waits for the replay that gets there.
|
|
82
|
+
* From inside one replay that is indistinguishable from an event no replay will
|
|
83
|
+
* ever claim, because the two differ only in what the next replay does. So the
|
|
84
|
+
* count goes on the span instead of failing the run, and the case worth acting
|
|
85
|
+
* on is a query across a run's spans: the same
|
|
86
|
+
* {@link WorkflowParkedEventId} held on suspension after suspension.
|
|
87
|
+
*/
|
|
88
|
+
export declare const WorkflowParkedEventsCount: (value: number) => {
|
|
89
|
+
[k: string]: number;
|
|
90
|
+
};
|
|
91
|
+
/** Oldest event still held unclaimed when the replay stopped. */
|
|
92
|
+
export declare const WorkflowParkedEventId: (value: string) => {
|
|
93
|
+
[k: string]: string;
|
|
94
|
+
};
|
|
95
|
+
/** Type of the oldest event still held unclaimed when the replay stopped. */
|
|
96
|
+
export declare const WorkflowParkedEventType: (value: string) => {
|
|
97
|
+
[k: string]: string;
|
|
98
|
+
};
|
|
63
99
|
/** Number of arguments passed to the workflow */
|
|
64
100
|
export declare const WorkflowArgumentsCount: (value: number) => {
|
|
65
101
|
[k: string]: number;
|
|
@@ -72,6 +108,42 @@ export declare const WorkflowResultType: (value: string) => {
|
|
|
72
108
|
export declare const WorkflowTracePropagated: (value: boolean) => {
|
|
73
109
|
[k: string]: boolean;
|
|
74
110
|
};
|
|
111
|
+
/** The VM engine executing the workflow function for this invocation */
|
|
112
|
+
export declare const WorkflowVm: (value: "node" | "quickjs") => {
|
|
113
|
+
[k: string]: "node" | "quickjs";
|
|
114
|
+
};
|
|
115
|
+
/** Outcome of a QuickJS VM workflow invocation */
|
|
116
|
+
export declare const QuickJSOutcome: (value: "completed" | "failed" | "suspended") => {
|
|
117
|
+
[k: string]: "completed" | "failed" | "suspended";
|
|
118
|
+
};
|
|
119
|
+
/** Whether preloaded events from `events.create('run_started')` were used */
|
|
120
|
+
export declare const QuickJSEventsPreloaded: (value: boolean) => {
|
|
121
|
+
[k: string]: boolean;
|
|
122
|
+
};
|
|
123
|
+
/** Total number of events fetched from the world for this invocation */
|
|
124
|
+
export declare const QuickJSEventsFetchedCount: (value: number) => {
|
|
125
|
+
[k: string]: number;
|
|
126
|
+
};
|
|
127
|
+
/** Number of pages required to fetch all events */
|
|
128
|
+
export declare const QuickJSEventsFetchedPages: (value: number) => {
|
|
129
|
+
[k: string]: number;
|
|
130
|
+
};
|
|
131
|
+
/** Number of pending VM operations captured at suspension */
|
|
132
|
+
export declare const QuickJSPendingOpsCount: (value: number) => {
|
|
133
|
+
[k: string]: number;
|
|
134
|
+
};
|
|
135
|
+
/** Number of steps executed inline (live-VM continuation) this invocation */
|
|
136
|
+
export declare const QuickJSInlineSteps: (value: number) => {
|
|
137
|
+
[k: string]: number;
|
|
138
|
+
};
|
|
139
|
+
/** Active trace-correlation mode for this invocation (linked or continuous) */
|
|
140
|
+
export declare const WorkflowTraceMode: (value: "linked" | "continuous") => {
|
|
141
|
+
[k: string]: "linked" | "continuous";
|
|
142
|
+
};
|
|
143
|
+
/** Whether this workflow invocation is using the turbo first-delivery path */
|
|
144
|
+
export declare const WorkflowTurbo: (value: boolean) => {
|
|
145
|
+
[k: string]: boolean;
|
|
146
|
+
};
|
|
75
147
|
/** Name of the error that caused workflow failure */
|
|
76
148
|
export declare const WorkflowErrorName: (value: string) => {
|
|
77
149
|
[k: string]: string;
|
|
@@ -96,6 +168,59 @@ export declare const WorkflowHooksCreated: (value: number) => {
|
|
|
96
168
|
export declare const WorkflowWaitsCreated: (value: number) => {
|
|
97
169
|
[k: string]: number;
|
|
98
170
|
};
|
|
171
|
+
/**
|
|
172
|
+
* Number of steps this suspension finalized as failed because their
|
|
173
|
+
* arguments refused to serialize (step_created placeholder + step_failed
|
|
174
|
+
* carrying the SerializationError; see finalizeUnserializableStep).
|
|
175
|
+
*/
|
|
176
|
+
export declare const WorkflowStepsFailedSerialization: (value: number) => {
|
|
177
|
+
[k: string]: number;
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* Number of inline-owned steps this invocation re-executed because it is a
|
|
181
|
+
* redelivery of their owning queue message (crash recovery for inline
|
|
182
|
+
* steps; see the inline step ownership changelog, workflow#2780).
|
|
183
|
+
*/
|
|
184
|
+
export declare const WorkflowOwnedRecoverySteps: (value: number) => {
|
|
185
|
+
[k: string]: number;
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Number of pending steps for which this replay suppressed the immediate
|
|
189
|
+
* requeue (another invocation inline-owns them under a live lease) and
|
|
190
|
+
* ensured a delayed backstop wake instead.
|
|
191
|
+
*/
|
|
192
|
+
export declare const WorkflowBackstopWakesArmed: (value: number) => {
|
|
193
|
+
[k: string]: number;
|
|
194
|
+
};
|
|
195
|
+
/** The workflow runtime route being handled */
|
|
196
|
+
export declare const WorkflowRouteType: (value: "flow") => {
|
|
197
|
+
[k: string]: "flow";
|
|
198
|
+
};
|
|
199
|
+
/** Whether this route invocation reused an already-created request handler */
|
|
200
|
+
export declare const WorkflowRouteHandlerCached: (value: boolean) => {
|
|
201
|
+
[k: string]: boolean;
|
|
202
|
+
};
|
|
203
|
+
/** Number of times this in-memory route handler has been invoked */
|
|
204
|
+
export declare const WorkflowRouteInvocationCount: (value: number) => {
|
|
205
|
+
[k: string]: number;
|
|
206
|
+
};
|
|
207
|
+
/** Time since this route entrypoint was constructed, in milliseconds */
|
|
208
|
+
export declare const WorkflowRouteEntrypointAgeMs: (value: number) => {
|
|
209
|
+
[k: string]: number;
|
|
210
|
+
};
|
|
211
|
+
/** Time spent evaluating the generated route module body before creating the entrypoint */
|
|
212
|
+
export declare const WorkflowRouteModuleBodyInitMs: (value: number) => {
|
|
213
|
+
[k: string]: number;
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Compute instance handling this route: the synthesized `COMPUTE_INSTANCE_ID`.
|
|
217
|
+
* Uses OTEL `faas.instance` (execution-environment id, reused across
|
|
218
|
+
* invocations to the same function):
|
|
219
|
+
* https://opentelemetry.io/docs/specs/semconv/attributes-registry/faas/
|
|
220
|
+
*/
|
|
221
|
+
export declare const FaasInstance: (value: string) => {
|
|
222
|
+
[k: string]: string;
|
|
223
|
+
};
|
|
99
224
|
/** Name of the step function being executed */
|
|
100
225
|
export declare const StepName: (value: string) => {
|
|
101
226
|
[k: string]: string;
|
|
@@ -120,6 +245,55 @@ export declare const StepMaxRetries: (value: number) => {
|
|
|
120
245
|
export declare const StepTracePropagated: (value: boolean) => {
|
|
121
246
|
[k: string]: boolean;
|
|
122
247
|
};
|
|
248
|
+
/**
|
|
249
|
+
* Client-measured time-to-first-step latency in milliseconds: run creation →
|
|
250
|
+
* this step's body beginning to execute, minus pre-step hook-creation time.
|
|
251
|
+
* Only present on the run's first step execution when it qualified for
|
|
252
|
+
* measurement (see runtime/step-latency.ts).
|
|
253
|
+
*/
|
|
254
|
+
export declare const StepTtfsMs: (value: number) => {
|
|
255
|
+
[k: string]: number;
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Client-measured step-to-step overhead in milliseconds: the previous step's
|
|
259
|
+
* terminal event → this step's body beginning to execute. Only present when
|
|
260
|
+
* the two steps ran back-to-back.
|
|
261
|
+
*/
|
|
262
|
+
export declare const StepStsoMs: (value: number) => {
|
|
263
|
+
[k: string]: number;
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Client-measured run_started-to-first-step latency in milliseconds: the
|
|
267
|
+
* `run_started` response landing (or, under turbo, the local run synthesis
|
|
268
|
+
* instant) → this step's start POST being issued. A sub-window of ttfs that
|
|
269
|
+
* isolates replay overhead from the run-creation queue hop. Only present on
|
|
270
|
+
* the run's first step execution when it qualified for measurement (see
|
|
271
|
+
* runtime/step-latency.ts).
|
|
272
|
+
*/
|
|
273
|
+
export declare const StepRsfsMs: (value: number) => {
|
|
274
|
+
[k: string]: number;
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Client-measured synchronous workflow-function replay duration in
|
|
278
|
+
* milliseconds, excluding awaited network I/O, of only the FINAL replay pass
|
|
279
|
+
* within the rsfs window: the pass that reached and scheduled the first
|
|
280
|
+
* step. Not accumulated across earlier pre-first-step passes (e.g. a
|
|
281
|
+
* workflow-body `setAttributes()` detour replays more than once, and a
|
|
282
|
+
* redelivery omits earlier invocations' work entirely), so this must not be
|
|
283
|
+
* read as "the replay portion of rsfs"; step.rsfs_ms covers the whole
|
|
284
|
+
* window. Only present alongside step.rsfs_ms and only for the run's first
|
|
285
|
+
* step (see runtime/step-latency.ts).
|
|
286
|
+
*/
|
|
287
|
+
export declare const StepFinalSchedulingReplayMs: (value: number) => {
|
|
288
|
+
[k: string]: number;
|
|
289
|
+
};
|
|
290
|
+
/**
|
|
291
|
+
* Runtime startup-latency optimizations active for the ttfs/stso measurement
|
|
292
|
+
* (e.g. 'turbo', 'lazyStepStart', 'optimisticStart').
|
|
293
|
+
*/
|
|
294
|
+
export declare const StepLatencyOptimizations: (value: string[]) => {
|
|
295
|
+
[k: string]: string[];
|
|
296
|
+
};
|
|
123
297
|
/** Whether the step was skipped during execution */
|
|
124
298
|
export declare const StepSkipped: (value: boolean) => {
|
|
125
299
|
[k: string]: boolean;
|
|
@@ -184,6 +358,18 @@ export declare const QueueOverheadMs: (value: number) => {
|
|
|
184
358
|
export declare const DeploymentId: (value: string) => {
|
|
185
359
|
[k: string]: string;
|
|
186
360
|
};
|
|
361
|
+
/** The deployment a run is pinned to, set only on a misrouted delivery. */
|
|
362
|
+
export declare const WorkflowRunPinnedDeploymentId: (value: string) => {
|
|
363
|
+
[k: string]: string;
|
|
364
|
+
};
|
|
365
|
+
/** Re-route attempts for this misrouted delivery, including this one. */
|
|
366
|
+
export declare const WorkflowDeploymentMismatchRetryCount: (value: number) => {
|
|
367
|
+
[k: string]: number;
|
|
368
|
+
};
|
|
369
|
+
/** Whether the misrouted delivery was re-routed instead of failing the run. */
|
|
370
|
+
export declare const WorkflowDeploymentMismatchRecovered: (value: boolean) => {
|
|
371
|
+
[k: string]: boolean;
|
|
372
|
+
};
|
|
187
373
|
/** Token identifying a specific hook */
|
|
188
374
|
export declare const HookToken: (value: string) => {
|
|
189
375
|
[k: string]: string;
|
|
@@ -196,6 +382,173 @@ export declare const HookId: (value: string) => {
|
|
|
196
382
|
export declare const HookFound: (value: boolean) => {
|
|
197
383
|
[k: string]: boolean;
|
|
198
384
|
};
|
|
385
|
+
/**
|
|
386
|
+
* Producer-side signal (on the `hook.resume` span) that the direct
|
|
387
|
+
* `hook_received` write failed transiently but the queue dispatch succeeded, so
|
|
388
|
+
* the resume is recovered via the consumer's re-ensure. Corresponds to
|
|
389
|
+
* `ResumedHook.resilientResume === true`.
|
|
390
|
+
*
|
|
391
|
+
* No longer emitted: current producers require the durable event write to
|
|
392
|
+
* succeed. Retained so dashboards and queries built on the attribute keep
|
|
393
|
+
* resolving while older producers are still deployed.
|
|
394
|
+
*/
|
|
395
|
+
export declare const HookResilientResume: (value: boolean) => {
|
|
396
|
+
[k: string]: boolean;
|
|
397
|
+
};
|
|
398
|
+
/**
|
|
399
|
+
* Producer-side signal (on the `hook.resume` span) that the durable
|
|
400
|
+
* `hook_received` write COMMITTED. Stamped after the write resolves, so it
|
|
401
|
+
* distinguishes a committed resume from an attempted one — an entry-time
|
|
402
|
+
* attribute cannot, because a span that later records an exception may have
|
|
403
|
+
* failed either before or after the commit.
|
|
404
|
+
*/
|
|
405
|
+
export declare const HookResumeCommitted: (value: boolean) => {
|
|
406
|
+
[k: string]: boolean;
|
|
407
|
+
};
|
|
408
|
+
/**
|
|
409
|
+
* Producer-side signal (on the `hook.resume` span) that the workflow wake was
|
|
410
|
+
* ACCEPTED by the queue, stamped after the publish resolves.
|
|
411
|
+
*
|
|
412
|
+
* Together with {@link HookResumeCommitted} this makes stranded resumes
|
|
413
|
+
* queryable: `resume_committed=true` with `wake_published` absent is a resume
|
|
414
|
+
* whose durable event exists but whose wake publish failed (the caller was
|
|
415
|
+
* told, but nothing re-drives it), and `resume_committed=true` +
|
|
416
|
+
* `wake_published=true` with no subsequent workflow execution for the run is
|
|
417
|
+
* a wake the queue accepted but never delivered. Both are detection-only
|
|
418
|
+
* signals — nothing recovers such a run automatically today beyond a later
|
|
419
|
+
* wake from any other source.
|
|
420
|
+
*/
|
|
421
|
+
export declare const HookWakePublished: (value: boolean) => {
|
|
422
|
+
[k: string]: boolean;
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* Consumer-side signal (on the workflow execution span) that this replay
|
|
426
|
+
* materialized the `hook_received` event from the queue message's `hookInput`
|
|
427
|
+
* because no committed event was found, which completes the recovery path
|
|
428
|
+
* {@link HookResilientResume} began.
|
|
429
|
+
*
|
|
430
|
+
* Legacy / non-atomic re-ensure signal only. Legacy atomic lazy resumes
|
|
431
|
+
* (resumeId + digest) go through the hoisted preload write instead, whose
|
|
432
|
+
* response cannot tell whether the producer or the consumer won the
|
|
433
|
+
* `(runId, resumeId)` claim, so this attribute is deliberately NOT emitted
|
|
434
|
+
* for them (emitting `true` unconditionally would count every producer-won
|
|
435
|
+
* resume as a recovery). The producer-begin ({@link HookResilientResume}) /
|
|
436
|
+
* consumer-materialized pairing is therefore no longer complete for atomic
|
|
437
|
+
* lazy resumptions; use {@link HookResumeSetupSource} to observe that path.
|
|
438
|
+
*/
|
|
439
|
+
export declare const HookResilientResumeMaterialized: (value: boolean) => {
|
|
440
|
+
[k: string]: boolean;
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* Consumer-side signal (on the workflow execution span) of how a lazy hook
|
|
444
|
+
* resume initialized its replay state:
|
|
445
|
+
*
|
|
446
|
+
* - `hook_received_stream`: the hoisted `hook_received` write returned a
|
|
447
|
+
* usable replay preload (run + complete event log), so the invocation
|
|
448
|
+
* skipped both the `run_started` write and the initial `events.list`.
|
|
449
|
+
* - `hook_received_fallback`: the hoisted write succeeded but returned no
|
|
450
|
+
* usable preload (a CBOR response from an older server, a World that
|
|
451
|
+
* ignored the opt-in, a bounded `hasMore` page, or a preload that failed
|
|
452
|
+
* validation); the invocation fell back to the `run_started` setup without
|
|
453
|
+
* re-posting the hook.
|
|
454
|
+
*
|
|
455
|
+
* Absent on legacy hook deliveries (no resumeId/digest) and on every other
|
|
456
|
+
* delivery kind, which take the `run_started` setup unconditionally.
|
|
457
|
+
*
|
|
458
|
+
* This is a latency/setup-path signal: it says which requests initialized
|
|
459
|
+
* the invocation, NOT that this consumer created the `hook_received` event
|
|
460
|
+
* (the hoisted write may equally have converged on the producer's, since
|
|
461
|
+
* claim ownership is not observable client-side; cf.
|
|
462
|
+
* {@link HookResilientResumeMaterialized}).
|
|
463
|
+
*/
|
|
464
|
+
export declare const HookResumeSetupSource: (value: string) => {
|
|
465
|
+
[k: string]: string;
|
|
466
|
+
};
|
|
467
|
+
/**
|
|
468
|
+
* Producer-side signal (on the suspension span) counting steps whose direct
|
|
469
|
+
* `step_created` write failed transiently while their `stepInput`-carrying
|
|
470
|
+
* queue publish succeeded, so step creation is recovered via the consumer's
|
|
471
|
+
* re-ensure. Mirrors {@link HookResilientResume}.
|
|
472
|
+
*/
|
|
473
|
+
export declare const StepResilientDispatchRecovered: (value: number) => {
|
|
474
|
+
[k: string]: number;
|
|
475
|
+
};
|
|
476
|
+
/**
|
|
477
|
+
* Consumer-side signal (on the workflow execution span) that this delivery
|
|
478
|
+
* materialized the `step_created` event from the queue message's `stepInput`
|
|
479
|
+
* because the producer's direct write had not landed, which completes the
|
|
480
|
+
* recovery path {@link StepResilientDispatchRecovered} began.
|
|
481
|
+
*/
|
|
482
|
+
export declare const StepResilientDispatchMaterialized: (value: boolean) => {
|
|
483
|
+
[k: string]: boolean;
|
|
484
|
+
};
|
|
485
|
+
/** Total TTR: entry into `resumeHook()` → immediately before `stepFn.apply()`. */
|
|
486
|
+
export declare const ResumeTotalMs: (value: number) => {
|
|
487
|
+
[k: string]: number;
|
|
488
|
+
};
|
|
489
|
+
/** Phase: `resumeHook()` entry → the queue publish being requested. */
|
|
490
|
+
export declare const ResumeProducerPrepMs: (value: number) => {
|
|
491
|
+
[k: string]: number;
|
|
492
|
+
};
|
|
493
|
+
/** Phase: queue publish requested → the final consumer's handler being entered. */
|
|
494
|
+
export declare const ResumeQueueDeliveryMs: (value: number) => {
|
|
495
|
+
[k: string]: number;
|
|
496
|
+
};
|
|
497
|
+
/** Phase: consumer entry → replay beginning. */
|
|
498
|
+
export declare const ResumeSetupMs: (value: number) => {
|
|
499
|
+
[k: string]: number;
|
|
500
|
+
};
|
|
501
|
+
/** Phase: replay beginning → the next durable step being encountered. */
|
|
502
|
+
export declare const ResumeReplayMs: (value: number) => {
|
|
503
|
+
[k: string]: number;
|
|
504
|
+
};
|
|
505
|
+
/** Phase: step encountered → the `step_started` request beginning. */
|
|
506
|
+
export declare const ResumeStepDispatchMs: (value: number) => {
|
|
507
|
+
[k: string]: number;
|
|
508
|
+
};
|
|
509
|
+
/**
|
|
510
|
+
* Phase: `step_started` request beginning → its response returning. Omitted
|
|
511
|
+
* under optimistic inline start, where the claim is not awaited before the
|
|
512
|
+
* body runs and therefore has no completion instant at that point; the time
|
|
513
|
+
* is then reported entirely as {@link ResumeStepPrepareMs}.
|
|
514
|
+
*/
|
|
515
|
+
export declare const ResumeStepClaimMs: (value: number) => {
|
|
516
|
+
[k: string]: number;
|
|
517
|
+
};
|
|
518
|
+
/**
|
|
519
|
+
* Phase: claim returning → immediately before `stepFn.apply()`. Deliberately
|
|
520
|
+
* includes encryption-key resolution, argument hydration, and step-context
|
|
521
|
+
* setup; `workflow.queue.deserialize_time_ms` still isolates hydration.
|
|
522
|
+
*/
|
|
523
|
+
export declare const ResumeStepPrepareMs: (value: number) => {
|
|
524
|
+
[k: string]: number;
|
|
525
|
+
};
|
|
526
|
+
/** What triggered the measured resumption. */
|
|
527
|
+
export declare const ResumeTrigger: (value: "hook") => {
|
|
528
|
+
[k: string]: "hook";
|
|
529
|
+
};
|
|
530
|
+
/**
|
|
531
|
+
* Which `resumeHook()` dispatch path produced this resume. `parallel` only
|
|
532
|
+
* appears for messages published by an older producer, which wrote
|
|
533
|
+
* `hook_received` itself in parallel with the publish.
|
|
534
|
+
*/
|
|
535
|
+
export declare const ResumeStrategy: (value: "lazy" | "parallel" | "sequential") => {
|
|
536
|
+
[k: string]: "lazy" | "parallel" | "sequential";
|
|
537
|
+
};
|
|
538
|
+
/**
|
|
539
|
+
* How the consuming invocation initialized replay state. Distinct from the
|
|
540
|
+
* pre-existing {@link HookResumeSetupSource} (`workflow.resume_setup_source`,
|
|
541
|
+
* on the workflow execution span), which reports the finer-grained
|
|
542
|
+
* hoisted-write outcome; this one is the TTR dimension and shares the metric's
|
|
543
|
+
* three-value vocabulary.
|
|
544
|
+
*/
|
|
545
|
+
export declare const ResumeSetupSource: (value: "run_started" | "hook_preload" | "event_load") => {
|
|
546
|
+
[k: string]: "run_started" | "hook_preload" | "event_load";
|
|
547
|
+
};
|
|
548
|
+
/** Whether the measured step ran in the resuming invocation or a queued one. */
|
|
549
|
+
export declare const ResumeStepExecution: (value: "inline" | "dispatched") => {
|
|
550
|
+
[k: string]: "inline" | "dispatched";
|
|
551
|
+
};
|
|
199
552
|
/** Number of webhook handlers triggered */
|
|
200
553
|
export declare const WebhookHandlersTriggered: (value: number) => {
|
|
201
554
|
[k: string]: number;
|
|
@@ -216,6 +569,10 @@ export declare const WorkflowSuspensionWaitCount: (value: number) => {
|
|
|
216
569
|
export declare const HttpRequestMethod: (value: string) => {
|
|
217
570
|
[k: string]: string;
|
|
218
571
|
};
|
|
572
|
+
/** Route pattern for the request (standard OTEL: http.route) */
|
|
573
|
+
export declare const HttpRoute: (value: string) => {
|
|
574
|
+
[k: string]: string;
|
|
575
|
+
};
|
|
219
576
|
/** Full URL of the request (standard OTEL: url.full) */
|
|
220
577
|
export declare const UrlFull: (value: string) => {
|
|
221
578
|
[k: string]: string;
|
|
@@ -256,6 +613,44 @@ export declare const QueueExecutionTimeMs: (value: number) => {
|
|
|
256
613
|
export declare const QueueSerializeTimeMs: (value: number) => {
|
|
257
614
|
[k: string]: number;
|
|
258
615
|
};
|
|
616
|
+
/** Whether this serialize/deserialize was a write or read. */
|
|
617
|
+
export declare const SerializationOperation: (value: "serialize" | "deserialize") => {
|
|
618
|
+
[k: string]: "serialize" | "deserialize";
|
|
619
|
+
};
|
|
620
|
+
/** Whether a compression codec was applied (write) / present (read). */
|
|
621
|
+
export declare const SerializationCompressed: (value: boolean) => {
|
|
622
|
+
[k: string]: boolean;
|
|
623
|
+
};
|
|
624
|
+
/** Which compression codec applied / was present (`zstd`, `gzip`, or `none`). */
|
|
625
|
+
export declare const SerializationCodec: (value: "zstd" | "gzip" | "none") => {
|
|
626
|
+
[k: string]: "zstd" | "gzip" | "none";
|
|
627
|
+
};
|
|
628
|
+
/** Logical (uncompressed, devalue-prefixed) payload size in bytes. */
|
|
629
|
+
export declare const SerializationUncompressedBytes: (value: number) => {
|
|
630
|
+
[k: string]: number;
|
|
631
|
+
};
|
|
632
|
+
/** Stored (post-compression, pre-encryption) payload size in bytes. */
|
|
633
|
+
export declare const SerializationStoredBytes: (value: number) => {
|
|
634
|
+
[k: string]: number;
|
|
635
|
+
};
|
|
636
|
+
/** Fraction of bytes saved by compression (0..1); set only when compressed. */
|
|
637
|
+
export declare const SerializationCompressionRatio: (value: number) => {
|
|
638
|
+
[k: string]: number;
|
|
639
|
+
};
|
|
640
|
+
/**
|
|
641
|
+
* Number of workflow (guest) code executions serialization could not avoid
|
|
642
|
+
* (getters, proxies, custom serializers); set only when non-zero.
|
|
643
|
+
*/
|
|
644
|
+
export declare const SerializationGuestCodeExecutions: (value: number) => {
|
|
645
|
+
[k: string]: number;
|
|
646
|
+
};
|
|
647
|
+
/**
|
|
648
|
+
* Deduplicated `kind (detail)` descriptions of the guest-code executions;
|
|
649
|
+
* set only when non-zero.
|
|
650
|
+
*/
|
|
651
|
+
export declare const SerializationGuestCodeDetails: (value: string[]) => {
|
|
652
|
+
[k: string]: string[];
|
|
653
|
+
};
|
|
259
654
|
/** The remote service name for Datadog service maps (Datadog-specific: peer.service) */
|
|
260
655
|
export declare const PeerService: (value: string) => {
|
|
261
656
|
[k: string]: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-conventions.d.ts","sourceRoot":"","sources":["../../src/telemetry/semantic-conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAgBH,8CAA8C;AAC9C,eAAO,MAAM,YAAY;;CAA8C,CAAC;AAExE,oDAAoD;AACpD,eAAO,MAAM,iBAAiB;;CAEP,CAAC;AAExB,6DAA6D;AAC7D,eAAO,MAAM,aAAa;;CAAgD,CAAC;AAE3E,yCAAyC;AACzC,eAAO,MAAM,iBAAiB;;CAEN,CAAC;AAEzB,qEAAqE;AACrE,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,sBAAsB;;CAElC,CAAC;AAEF,kCAAkC;AAClC,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,uBAAuB;;CAEnC,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,iBAAiB;;CAE7B,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAIF,+CAA+C;AAC/C,eAAO,MAAM,QAAQ;;CAA0C,CAAC;AAEhE,8CAA8C;AAC9C,eAAO,MAAM,MAAM;;CAAwC,CAAC;AAE5D,8DAA8D;AAC9D,eAAO,MAAM,WAAW;;CAA6C,CAAC;AAEtE,iCAAiC;AACjC,eAAO,MAAM,UAAU;;CAAoD,CAAC;AAE5E,sDAAsD;AACtD,eAAO,MAAM,cAAc;;CAAiD,CAAC;AAE7E,kEAAkE;AAClE,eAAO,MAAM,mBAAmB;;CAE/B,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,WAAW;;CAA8C,CAAC;AAEvE,sCAAsC;AACtC,eAAO,MAAM,cAAc;;CAC6B,CAAC;AAEzD,sDAAsD;AACtD,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,cAAc;;CAAiD,CAAC;AAE7E,iDAAiD;AACjD,eAAO,MAAM,aAAa;;CAAgD,CAAC;AAE3E,oCAAoC;AACpC,eAAO,MAAM,gBAAgB;;CACqB,CAAC;AAEnD,8DAA8D;AAC9D,eAAO,MAAM,cAAc;;CAAkD,CAAC;AAE9E,qDAAqD;AACrD,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB;;CAEnC,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAKF,oEAAoE;AACpE,eAAO,MAAM,eAAe;;CAAiD,CAAC;AAE9E,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB;;CAEpC,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,sBAAsB;;CAEN,CAAC;AAE9B,4EAA4E;AAC5E,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAIF,uDAAuD;AACvD,eAAO,MAAM,YAAY;;CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"semantic-conventions.d.ts","sourceRoot":"","sources":["../../src/telemetry/semantic-conventions.ts"],"names":[],"mappings":"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"}
|