rivetkit 2.3.11 → 2.3.12-rc.2
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/browser/client.d.ts +4 -0
- package/dist/browser/client.js +65 -32
- package/dist/browser/client.js.map +1 -1
- package/dist/browser/inspector/client.js +1 -1
- package/dist/browser/inspector/client.js.map +1 -1
- package/dist/tsup/actor/errors.cjs +2 -2
- package/dist/tsup/actor/errors.d.cts +1 -1
- package/dist/tsup/actor/errors.d.ts +1 -1
- package/dist/tsup/actor/errors.js +1 -1
- package/dist/tsup/agent-os/index.cjs +2 -2
- package/dist/tsup/agent-os/index.cjs.map +1 -1
- package/dist/tsup/agent-os/index.d.cts +4 -0
- package/dist/tsup/agent-os/index.d.ts +4 -0
- package/dist/tsup/agent-os/index.js +2 -2
- package/dist/tsup/agent-os/index.js.map +1 -1
- package/dist/tsup/{chunk-MO2SSUOR.js → chunk-3JBE7REK.js} +4 -4
- package/dist/tsup/{chunk-5UYWLCRO.js → chunk-6XR7IKBZ.js} +2 -2
- package/dist/tsup/{chunk-GU7ML3KE.cjs → chunk-APQQFCPR.cjs} +15 -10
- package/dist/tsup/chunk-APQQFCPR.cjs.map +1 -0
- package/dist/tsup/{chunk-3ZR542SK.js → chunk-BK2JOGQQ.js} +62 -36
- package/dist/tsup/chunk-BK2JOGQQ.js.map +1 -0
- package/dist/tsup/{chunk-VBJQIBXI.cjs → chunk-CZKQ2UR5.cjs} +4 -4
- package/dist/tsup/{chunk-VBJQIBXI.cjs.map → chunk-CZKQ2UR5.cjs.map} +1 -1
- package/dist/tsup/{chunk-RXXDNJXB.cjs → chunk-DXN6RPPQ.cjs} +214 -188
- package/dist/tsup/chunk-DXN6RPPQ.cjs.map +1 -0
- package/dist/tsup/{chunk-GLIPKKEC.cjs → chunk-GGGZ4TN7.cjs} +7 -7
- package/dist/tsup/{chunk-GLIPKKEC.cjs.map → chunk-GGGZ4TN7.cjs.map} +1 -1
- package/dist/tsup/{chunk-LWQFXGKS.cjs → chunk-HRJHLVHZ.cjs} +3 -3
- package/dist/tsup/{chunk-LWQFXGKS.cjs.map → chunk-HRJHLVHZ.cjs.map} +1 -1
- package/dist/tsup/{chunk-PUZY2XCD.cjs → chunk-IU6TTH6L.cjs} +10 -10
- package/dist/tsup/{chunk-PUZY2XCD.cjs.map → chunk-IU6TTH6L.cjs.map} +1 -1
- package/dist/tsup/{chunk-ZZ3WBRPD.js → chunk-IXBD7BXC.js} +15 -4
- package/dist/tsup/chunk-IXBD7BXC.js.map +1 -0
- package/dist/tsup/{chunk-JQ2AZ5FN.js → chunk-JZGMOEEI.js} +3 -3
- package/dist/tsup/{chunk-QFJ24MBU.js → chunk-KPZQI3TG.js} +2 -2
- package/dist/tsup/{chunk-6WYATRS4.js → chunk-KRQI5GXM.js} +2 -2
- package/dist/tsup/{chunk-4FC7TVS6.cjs → chunk-SPJORZMM.cjs} +15 -4
- package/dist/tsup/chunk-SPJORZMM.cjs.map +1 -0
- package/dist/tsup/{chunk-B3W74FBB.cjs → chunk-WTD54OHL.cjs} +3 -3
- package/dist/tsup/{chunk-B3W74FBB.cjs.map → chunk-WTD54OHL.cjs.map} +1 -1
- package/dist/tsup/{chunk-GN2EUMEW.cjs → chunk-XBPOYV4E.cjs} +3 -3
- package/dist/tsup/{chunk-GN2EUMEW.cjs.map → chunk-XBPOYV4E.cjs.map} +1 -1
- package/dist/tsup/{chunk-OUENKQHB.js → chunk-YW75TS76.js} +8 -3
- package/dist/tsup/chunk-YW75TS76.js.map +1 -0
- package/dist/tsup/{chunk-FWROC5LA.js → chunk-ZEIH7S4M.js} +2 -2
- package/dist/tsup/client/mod.cjs +6 -6
- package/dist/tsup/client/mod.d.cts +5 -5
- package/dist/tsup/client/mod.d.ts +5 -5
- package/dist/tsup/client/mod.js +5 -5
- package/dist/tsup/common/log.cjs +3 -3
- package/dist/tsup/common/log.js +2 -2
- package/dist/tsup/common/websocket.cjs +4 -4
- package/dist/tsup/common/websocket.js +3 -3
- package/dist/tsup/{config-DTGoWdkG.d.cts → config-BXSV17G7.d.cts} +2 -2
- package/dist/tsup/{config-C4OSv0QP.d.ts → config-Bi1r6gI7.d.ts} +2 -2
- package/dist/tsup/{context-C6cvDNyk.d.cts → context-4fJemY0D.d.cts} +1 -1
- package/dist/tsup/{context-CMygeBxS.d.ts → context-D4sNYboo.d.ts} +1 -1
- package/dist/tsup/db/drizzle.cjs +3 -3
- package/dist/tsup/db/drizzle.js +2 -2
- package/dist/tsup/db/mod.cjs +4 -4
- package/dist/tsup/db/mod.js +3 -3
- package/dist/tsup/dynamic/mod.d.cts +3 -3
- package/dist/tsup/dynamic/mod.d.ts +3 -3
- package/dist/tsup/inspector/mod.cjs +6 -6
- package/dist/tsup/inspector/mod.js +5 -5
- package/dist/tsup/inspector/workflow.cjs +5 -5
- package/dist/tsup/inspector/workflow.js +4 -4
- package/dist/tsup/inspector-tab/mod.d.cts +4 -4
- package/dist/tsup/inspector-tab/mod.d.ts +4 -4
- package/dist/tsup/mod.cjs +112 -111
- package/dist/tsup/mod.cjs.map +1 -1
- package/dist/tsup/mod.d.cts +5 -5
- package/dist/tsup/mod.d.ts +5 -5
- package/dist/tsup/mod.js +10 -9
- package/dist/tsup/mod.js.map +1 -1
- package/dist/tsup/test/mod.cjs +7 -7
- package/dist/tsup/test/mod.d.cts +3 -3
- package/dist/tsup/test/mod.d.ts +3 -3
- package/dist/tsup/test/mod.js +5 -5
- package/dist/tsup/{utils-DQDCphrl.d.cts → utils-Bbz-3411.d.cts} +1 -1
- package/dist/tsup/{utils-CV0akuDD.d.ts → utils-BqdWVlzm.d.ts} +1 -1
- package/dist/tsup/{utils-CqDnC_PS.d.cts → utils-vvJQyygr.d.cts} +5 -0
- package/dist/tsup/{utils-CqDnC_PS.d.ts → utils-vvJQyygr.d.ts} +5 -0
- package/dist/tsup/utils.cjs +3 -3
- package/dist/tsup/utils.d.cts +2 -2
- package/dist/tsup/utils.d.ts +2 -2
- package/dist/tsup/utils.js +2 -2
- package/dist/tsup/workflow/mod.cjs +11 -11
- package/dist/tsup/workflow/mod.cjs.map +1 -1
- package/dist/tsup/workflow/mod.d.cts +5 -5
- package/dist/tsup/workflow/mod.d.ts +5 -5
- package/dist/tsup/workflow/mod.js +5 -5
- package/package.json +8 -8
- package/src/actor/errors.ts +29 -2
- package/src/client/actor-conn.ts +5 -4
- package/src/client/actor-handle.ts +32 -9
- package/src/client/actor-query.ts +8 -1
- package/src/client/errors.ts +2 -1
- package/src/client/raw-utils.ts +3 -5
- package/src/client/utils.ts +2 -0
- package/src/common/utils.ts +6 -0
- package/src/registry/native.ts +1 -0
- package/dist/tsup/chunk-3ZR542SK.js.map +0 -1
- package/dist/tsup/chunk-4FC7TVS6.cjs.map +0 -1
- package/dist/tsup/chunk-GU7ML3KE.cjs.map +0 -1
- package/dist/tsup/chunk-OUENKQHB.js.map +0 -1
- package/dist/tsup/chunk-RXXDNJXB.cjs.map +0 -1
- package/dist/tsup/chunk-ZZ3WBRPD.js.map +0 -1
- /package/dist/tsup/{chunk-MO2SSUOR.js.map → chunk-3JBE7REK.js.map} +0 -0
- /package/dist/tsup/{chunk-5UYWLCRO.js.map → chunk-6XR7IKBZ.js.map} +0 -0
- /package/dist/tsup/{chunk-JQ2AZ5FN.js.map → chunk-JZGMOEEI.js.map} +0 -0
- /package/dist/tsup/{chunk-QFJ24MBU.js.map → chunk-KPZQI3TG.js.map} +0 -0
- /package/dist/tsup/{chunk-6WYATRS4.js.map → chunk-KRQI5GXM.js.map} +0 -0
- /package/dist/tsup/{chunk-FWROC5LA.js.map → chunk-ZEIH7S4M.js.map} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { WorkflowErrorEvent } from '@rivetkit/workflow-engine';
|
|
2
2
|
export { Loop, TryBlockCatchKind, TryBlockConfig, TryBlockFailure, TryBlockResult, TryStepCatchKind, TryStepConfig, TryStepFailure, TryStepResult, WorkflowError, WorkflowErrorEvent } from '@rivetkit/workflow-engine';
|
|
3
|
-
import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-
|
|
3
|
+
import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-BXSV17G7.cjs';
|
|
4
4
|
import { A as AnyDatabaseProvider } from '../config-ey2I2zz5.cjs';
|
|
5
|
-
import { d as WorkflowContext } from '../context-
|
|
6
|
-
export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-
|
|
5
|
+
import { d as WorkflowContext } from '../context-4fJemY0D.cjs';
|
|
6
|
+
export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-4fJemY0D.cjs';
|
|
7
7
|
import 'zod/v4';
|
|
8
8
|
import '@rivetkit/rivetkit-wasm';
|
|
9
9
|
import 'zod';
|
|
@@ -11,9 +11,9 @@ import 'pino';
|
|
|
11
11
|
import '@rivetkit/virtual-websocket';
|
|
12
12
|
import '../inspector/workflow.cjs';
|
|
13
13
|
import '@standard-schema/spec';
|
|
14
|
-
import '../utils-
|
|
14
|
+
import '../utils-Bbz-3411.cjs';
|
|
15
15
|
import 'hono';
|
|
16
|
-
import '../utils-
|
|
16
|
+
import '../utils-vvJQyygr.cjs';
|
|
17
17
|
import 'hono/utils/http-status';
|
|
18
18
|
|
|
19
19
|
interface WorkflowOptions<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>> {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { WorkflowErrorEvent } from '@rivetkit/workflow-engine';
|
|
2
2
|
export { Loop, TryBlockCatchKind, TryBlockConfig, TryBlockFailure, TryBlockResult, TryStepCatchKind, TryStepConfig, TryStepFailure, TryStepResult, WorkflowError, WorkflowErrorEvent } from '@rivetkit/workflow-engine';
|
|
3
|
-
import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-
|
|
3
|
+
import { E as EventSchemaConfig, Q as QueueSchemaConfig, h as RunContext } from '../config-Bi1r6gI7.js';
|
|
4
4
|
import { A as AnyDatabaseProvider } from '../config-ey2I2zz5.js';
|
|
5
|
-
import { d as WorkflowContext } from '../context-
|
|
6
|
-
export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-
|
|
5
|
+
import { d as WorkflowContext } from '../context-D4sNYboo.js';
|
|
6
|
+
export { e as WorkflowBranchConfig, W as WorkflowBranchContextOf, a as WorkflowContextOf, f as WorkflowLoopConfig, b as WorkflowLoopContextOf, g as WorkflowStepConfig, h as WorkflowStepContext, c as WorkflowStepContextOf, i as WorkflowTryConfig, j as WorkflowTryStepConfig } from '../context-D4sNYboo.js';
|
|
7
7
|
import 'zod/v4';
|
|
8
8
|
import '@rivetkit/rivetkit-wasm';
|
|
9
9
|
import 'zod';
|
|
@@ -11,9 +11,9 @@ import 'pino';
|
|
|
11
11
|
import '@rivetkit/virtual-websocket';
|
|
12
12
|
import '../inspector/workflow.js';
|
|
13
13
|
import '@standard-schema/spec';
|
|
14
|
-
import '../utils-
|
|
14
|
+
import '../utils-BqdWVlzm.js';
|
|
15
15
|
import 'hono';
|
|
16
|
-
import '../utils-
|
|
16
|
+
import '../utils-vvJQyygr.js';
|
|
17
17
|
import 'hono/utils/http-status';
|
|
18
18
|
|
|
19
19
|
interface WorkflowOptions<TState, TConnParams, TConnState, TVars, TInput, TDatabase extends AnyDatabaseProvider, TEvents extends EventSchemaConfig = Record<never, never>, TQueues extends QueueSchemaConfig = Record<never, never>> {
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createWorkflowInspectorAdapter
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-QFJ24MBU.js";
|
|
3
|
+
} from "../chunk-3JBE7REK.js";
|
|
4
|
+
import "../chunk-6XR7IKBZ.js";
|
|
6
5
|
import {
|
|
7
6
|
ACTOR_CONTEXT_INTERNAL_SYMBOL,
|
|
8
7
|
defineRunHandler
|
|
9
8
|
} from "../chunk-6W5VGLFT.js";
|
|
9
|
+
import "../chunk-KPZQI3TG.js";
|
|
10
10
|
import {
|
|
11
11
|
makeWorkflowKey,
|
|
12
12
|
workflowStoragePrefix
|
|
13
13
|
} from "../chunk-JI6GZ2C2.js";
|
|
14
14
|
import {
|
|
15
15
|
stringifyError
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-YW75TS76.js";
|
|
17
17
|
import {
|
|
18
18
|
RivetError,
|
|
19
19
|
isActorAbortedError
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-IXBD7BXC.js";
|
|
21
21
|
|
|
22
22
|
// src/workflow/mod.ts
|
|
23
23
|
import {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rivetkit",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.12-rc.2",
|
|
4
4
|
"description": "Lightweight libraries for building stateful actors on edge platforms",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"keywords": [
|
|
@@ -211,14 +211,14 @@
|
|
|
211
211
|
"@hono/zod-openapi": "^1.1.5",
|
|
212
212
|
"@rivet-dev/agent-os-core": "^0.1.1",
|
|
213
213
|
"@rivetkit/bare-ts": "^0.6.2",
|
|
214
|
-
"@rivetkit/engine-cli": "2.3.
|
|
215
|
-
"@rivetkit/engine-envoy-protocol": "2.3.
|
|
214
|
+
"@rivetkit/engine-cli": "2.3.12-rc.2",
|
|
215
|
+
"@rivetkit/engine-envoy-protocol": "2.3.12-rc.2",
|
|
216
216
|
"@rivetkit/on-change": "6.0.1",
|
|
217
|
-
"@rivetkit/rivetkit-napi": "2.3.
|
|
218
|
-
"@rivetkit/rivetkit-wasm": "2.3.
|
|
219
|
-
"@rivetkit/traces": "2.3.
|
|
220
|
-
"@rivetkit/virtual-websocket": "2.3.
|
|
221
|
-
"@rivetkit/workflow-engine": "2.3.
|
|
217
|
+
"@rivetkit/rivetkit-napi": "2.3.12-rc.2",
|
|
218
|
+
"@rivetkit/rivetkit-wasm": "2.3.12-rc.2",
|
|
219
|
+
"@rivetkit/traces": "2.3.12-rc.2",
|
|
220
|
+
"@rivetkit/virtual-websocket": "2.3.12-rc.2",
|
|
221
|
+
"@rivetkit/workflow-engine": "2.3.12-rc.2",
|
|
222
222
|
"cbor-x": "^1.6.0",
|
|
223
223
|
"drizzle-orm": "^0.44.2",
|
|
224
224
|
"hono": "^4.7.0",
|
package/src/actor/errors.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface RivetErrorOptions extends ErrorOptions {
|
|
|
12
12
|
public?: boolean;
|
|
13
13
|
/** Metadata associated with this error. */
|
|
14
14
|
metadata?: unknown;
|
|
15
|
+
/** Request identifier used to correlate this error with engine logs. */
|
|
16
|
+
rayId?: string;
|
|
15
17
|
/** Explicit HTTP status override for router responses. */
|
|
16
18
|
statusCode?: number;
|
|
17
19
|
/** Actor context associated with this error. */
|
|
@@ -31,6 +33,7 @@ export interface RivetErrorLike {
|
|
|
31
33
|
code: string;
|
|
32
34
|
message: string;
|
|
33
35
|
metadata?: unknown;
|
|
36
|
+
rayId?: string;
|
|
34
37
|
public?: boolean;
|
|
35
38
|
statusCode?: number;
|
|
36
39
|
actor?: ActorSpecifier;
|
|
@@ -38,6 +41,14 @@ export interface RivetErrorLike {
|
|
|
38
41
|
|
|
39
42
|
export interface BridgeRivetErrorPayload extends RivetErrorLike {}
|
|
40
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Shape as it arrives from the native bridge, where an absent ray ID serializes
|
|
46
|
+
* to null. Normalized to a BridgeRivetErrorPayload before validation.
|
|
47
|
+
*/
|
|
48
|
+
interface NativeBridgeErrorPayload extends Omit<BridgeRivetErrorPayload, "rayId"> {
|
|
49
|
+
rayId?: string | null;
|
|
50
|
+
}
|
|
51
|
+
|
|
41
52
|
export interface UserErrorOptions extends ErrorOptions {
|
|
42
53
|
/**
|
|
43
54
|
* Machine readable code for this error. Useful for catching different types of
|
|
@@ -59,6 +70,7 @@ function looksLikeRivetErrorOptions(
|
|
|
59
70
|
value !== null &&
|
|
60
71
|
("public" in value ||
|
|
61
72
|
"metadata" in value ||
|
|
73
|
+
"rayId" in value ||
|
|
62
74
|
"statusCode" in value ||
|
|
63
75
|
"actor" in value ||
|
|
64
76
|
"cause" in value)
|
|
@@ -94,6 +106,9 @@ export function isRivetErrorLike(
|
|
|
94
106
|
typeof error.code === "string" &&
|
|
95
107
|
"message" in error &&
|
|
96
108
|
typeof error.message === "string" &&
|
|
109
|
+
(!("rayId" in error) ||
|
|
110
|
+
error.rayId === undefined ||
|
|
111
|
+
typeof error.rayId === "string") &&
|
|
97
112
|
(!("__type" in error) || isTypedErrorTag(error.__type))
|
|
98
113
|
);
|
|
99
114
|
}
|
|
@@ -128,6 +143,7 @@ export class RivetError extends Error {
|
|
|
128
143
|
|
|
129
144
|
public public: boolean;
|
|
130
145
|
public metadata?: unknown;
|
|
146
|
+
public readonly rayId?: string;
|
|
131
147
|
public statusCode: number;
|
|
132
148
|
public actor?: ActorSpecifier;
|
|
133
149
|
public readonly group: string;
|
|
@@ -161,6 +177,7 @@ export class RivetError extends Error {
|
|
|
161
177
|
this.code = code;
|
|
162
178
|
this.public = normalized.public ?? false;
|
|
163
179
|
this.metadata = normalized.metadata;
|
|
180
|
+
this.rayId = normalized.rayId ?? undefined;
|
|
164
181
|
this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
|
|
165
182
|
this.actor = normalized.actor;
|
|
166
183
|
}
|
|
@@ -205,6 +222,7 @@ export function toRivetError(
|
|
|
205
222
|
public: error.public,
|
|
206
223
|
statusCode: error.statusCode,
|
|
207
224
|
metadata: error.metadata,
|
|
225
|
+
rayId: error.rayId,
|
|
208
226
|
actor: error.actor,
|
|
209
227
|
cause: error instanceof Error ? error.cause : undefined,
|
|
210
228
|
});
|
|
@@ -218,6 +236,7 @@ export function toRivetError(
|
|
|
218
236
|
public: fallback?.public,
|
|
219
237
|
statusCode: fallback?.statusCode,
|
|
220
238
|
metadata: fallback?.metadata,
|
|
239
|
+
rayId: fallback?.rayId,
|
|
221
240
|
actor: fallback?.actor,
|
|
222
241
|
cause: error instanceof Error ? error : undefined,
|
|
223
242
|
},
|
|
@@ -230,6 +249,7 @@ export function encodeBridgeRivetError(error: RivetErrorLike): string {
|
|
|
230
249
|
code: error.code,
|
|
231
250
|
message: error.message,
|
|
232
251
|
metadata: error.metadata,
|
|
252
|
+
rayId: error.rayId,
|
|
233
253
|
public: error.public,
|
|
234
254
|
statusCode: error.statusCode,
|
|
235
255
|
actor: error.actor,
|
|
@@ -244,9 +264,14 @@ export function decodeBridgeRivetErrorPayload(
|
|
|
244
264
|
}
|
|
245
265
|
|
|
246
266
|
try {
|
|
247
|
-
const
|
|
267
|
+
const raw = JSON.parse(
|
|
248
268
|
value.slice(BRIDGE_RIVET_ERROR_PREFIX.length),
|
|
249
|
-
) as
|
|
269
|
+
) as NativeBridgeErrorPayload;
|
|
270
|
+
// Coerce the native bridge's null ray ID to undefined before validation.
|
|
271
|
+
const payload: BridgeRivetErrorPayload = {
|
|
272
|
+
...raw,
|
|
273
|
+
rayId: raw.rayId ?? undefined,
|
|
274
|
+
};
|
|
250
275
|
if (!isRivetErrorLike(payload)) {
|
|
251
276
|
return undefined;
|
|
252
277
|
}
|
|
@@ -272,6 +297,7 @@ export function decodeBridgeRivetError(value: string): RivetError | undefined {
|
|
|
272
297
|
|
|
273
298
|
return new RivetError(payload.group, payload.code, payload.message, {
|
|
274
299
|
metadata: payload.metadata,
|
|
300
|
+
rayId: payload.rayId,
|
|
275
301
|
public: payload.public,
|
|
276
302
|
statusCode: payload.statusCode,
|
|
277
303
|
actor: payload.actor ?? undefined,
|
|
@@ -303,6 +329,7 @@ export function internalError(
|
|
|
303
329
|
public: options?.public,
|
|
304
330
|
statusCode: options?.statusCode,
|
|
305
331
|
metadata: options?.metadata,
|
|
332
|
+
rayId: options?.rayId,
|
|
306
333
|
actor: options?.actor,
|
|
307
334
|
cause: options?.cause,
|
|
308
335
|
},
|
package/src/client/actor-conn.ts
CHANGED
|
@@ -874,7 +874,7 @@ export class ActorConnRaw {
|
|
|
874
874
|
const parsed = parseWebSocketCloseReason(reason);
|
|
875
875
|
|
|
876
876
|
if (parsed) {
|
|
877
|
-
const { group, code } = parsed;
|
|
877
|
+
const { group, code, rayId } = parsed;
|
|
878
878
|
|
|
879
879
|
if (this.#shouldReconnectForStaleActor(group, code)) {
|
|
880
880
|
this.#clearResolvedActorIdentity();
|
|
@@ -883,7 +883,7 @@ export class ActorConnRaw {
|
|
|
883
883
|
group,
|
|
884
884
|
code,
|
|
885
885
|
`Connection closed: ${reason}`,
|
|
886
|
-
|
|
886
|
+
{ rayId },
|
|
887
887
|
),
|
|
888
888
|
);
|
|
889
889
|
return;
|
|
@@ -897,6 +897,7 @@ export class ActorConnRaw {
|
|
|
897
897
|
this.#actorId,
|
|
898
898
|
this.#actorResolutionState,
|
|
899
899
|
this.#driver,
|
|
900
|
+
rayId,
|
|
900
901
|
);
|
|
901
902
|
if (schedulingError) {
|
|
902
903
|
error = schedulingError;
|
|
@@ -905,7 +906,7 @@ export class ActorConnRaw {
|
|
|
905
906
|
group,
|
|
906
907
|
code,
|
|
907
908
|
`Connection closed: ${reason}`,
|
|
908
|
-
|
|
909
|
+
{ rayId },
|
|
909
910
|
);
|
|
910
911
|
}
|
|
911
912
|
} else {
|
|
@@ -913,7 +914,7 @@ export class ActorConnRaw {
|
|
|
913
914
|
group,
|
|
914
915
|
code,
|
|
915
916
|
`Connection closed: ${reason}`,
|
|
916
|
-
|
|
917
|
+
{ rayId },
|
|
917
918
|
);
|
|
918
919
|
}
|
|
919
920
|
|
|
@@ -166,7 +166,7 @@ export class ActorHandleRaw {
|
|
|
166
166
|
},
|
|
167
167
|
}).send(name, body, options as any);
|
|
168
168
|
} catch (err) {
|
|
169
|
-
const { group, code, message, metadata, actor } =
|
|
169
|
+
const { group, code, message, metadata, rayId, actor } =
|
|
170
170
|
deconstructError(err, true);
|
|
171
171
|
|
|
172
172
|
if (
|
|
@@ -189,6 +189,7 @@ export class ActorHandleRaw {
|
|
|
189
189
|
actorId,
|
|
190
190
|
attempt,
|
|
191
191
|
maxAttempts,
|
|
192
|
+
rayId,
|
|
192
193
|
)
|
|
193
194
|
) {
|
|
194
195
|
useQueryTarget = true;
|
|
@@ -227,6 +228,7 @@ export class ActorHandleRaw {
|
|
|
227
228
|
|
|
228
229
|
throw new ActorError(group, code, message, {
|
|
229
230
|
metadata,
|
|
231
|
+
rayId,
|
|
230
232
|
actor,
|
|
231
233
|
});
|
|
232
234
|
}
|
|
@@ -357,7 +359,7 @@ export class ActorHandleRaw {
|
|
|
357
359
|
}
|
|
358
360
|
return output;
|
|
359
361
|
} catch (err) {
|
|
360
|
-
const { group, code, message, metadata, actor } =
|
|
362
|
+
const { group, code, message, metadata, rayId, actor } =
|
|
361
363
|
deconstructError(err, true);
|
|
362
364
|
|
|
363
365
|
if (
|
|
@@ -367,6 +369,7 @@ export class ActorHandleRaw {
|
|
|
367
369
|
actorId,
|
|
368
370
|
attempt,
|
|
369
371
|
maxAttempts,
|
|
372
|
+
rayId,
|
|
370
373
|
)
|
|
371
374
|
) {
|
|
372
375
|
useQueryTarget = true;
|
|
@@ -398,7 +401,7 @@ export class ActorHandleRaw {
|
|
|
398
401
|
"actor",
|
|
399
402
|
"not_found",
|
|
400
403
|
"The actor does not exist or was destroyed.",
|
|
401
|
-
{ metadata, actor },
|
|
404
|
+
{ metadata, rayId, actor },
|
|
402
405
|
);
|
|
403
406
|
}
|
|
404
407
|
|
|
@@ -419,7 +422,11 @@ export class ActorHandleRaw {
|
|
|
419
422
|
continue;
|
|
420
423
|
}
|
|
421
424
|
|
|
422
|
-
throw new ActorError(group, code, message, {
|
|
425
|
+
throw new ActorError(group, code, message, {
|
|
426
|
+
metadata,
|
|
427
|
+
rayId,
|
|
428
|
+
actor,
|
|
429
|
+
});
|
|
423
430
|
}
|
|
424
431
|
}
|
|
425
432
|
|
|
@@ -514,6 +521,7 @@ export class ActorHandleRaw {
|
|
|
514
521
|
actorId: string | undefined,
|
|
515
522
|
attempt: number,
|
|
516
523
|
maxAttempts: number,
|
|
524
|
+
rayId?: string,
|
|
517
525
|
): Promise<boolean> {
|
|
518
526
|
if (
|
|
519
527
|
!isDynamicActorQuery(this.#actorResolutionState) ||
|
|
@@ -530,6 +538,7 @@ export class ActorHandleRaw {
|
|
|
530
538
|
actorId,
|
|
531
539
|
this.#actorResolutionState,
|
|
532
540
|
this.#driver,
|
|
541
|
+
rayId,
|
|
533
542
|
);
|
|
534
543
|
if (schedulingError) {
|
|
535
544
|
throw schedulingError;
|
|
@@ -679,7 +688,7 @@ export class ActorHandleRaw {
|
|
|
679
688
|
}
|
|
680
689
|
return response;
|
|
681
690
|
} catch (err) {
|
|
682
|
-
const { group, code, message, metadata, actor } =
|
|
691
|
+
const { group, code, message, metadata, rayId, actor } =
|
|
683
692
|
deconstructError(err, true);
|
|
684
693
|
|
|
685
694
|
if (
|
|
@@ -689,6 +698,7 @@ export class ActorHandleRaw {
|
|
|
689
698
|
actorId,
|
|
690
699
|
attempt,
|
|
691
700
|
maxAttempts,
|
|
701
|
+
rayId,
|
|
692
702
|
)
|
|
693
703
|
) {
|
|
694
704
|
useQueryTarget = true;
|
|
@@ -725,7 +735,11 @@ export class ActorHandleRaw {
|
|
|
725
735
|
continue;
|
|
726
736
|
}
|
|
727
737
|
|
|
728
|
-
throw new ActorError(group, code, message, {
|
|
738
|
+
throw new ActorError(group, code, message, {
|
|
739
|
+
metadata,
|
|
740
|
+
rayId,
|
|
741
|
+
actor,
|
|
742
|
+
});
|
|
729
743
|
}
|
|
730
744
|
}
|
|
731
745
|
|
|
@@ -750,7 +764,7 @@ export class ActorHandleRaw {
|
|
|
750
764
|
return null;
|
|
751
765
|
}
|
|
752
766
|
|
|
753
|
-
const { group, code } = error;
|
|
767
|
+
const { group, code, rayId } = error;
|
|
754
768
|
|
|
755
769
|
if (
|
|
756
770
|
await this.#shouldRetrySchedulingError(
|
|
@@ -759,6 +773,7 @@ export class ActorHandleRaw {
|
|
|
759
773
|
actorId,
|
|
760
774
|
attempt,
|
|
761
775
|
maxAttempts,
|
|
776
|
+
rayId,
|
|
762
777
|
)
|
|
763
778
|
) {
|
|
764
779
|
return {
|
|
@@ -802,6 +817,7 @@ export class ActorHandleRaw {
|
|
|
802
817
|
code: string;
|
|
803
818
|
message: string;
|
|
804
819
|
metadata?: unknown;
|
|
820
|
+
rayId?: string;
|
|
805
821
|
actor?: ActorSpecifier;
|
|
806
822
|
} | null> {
|
|
807
823
|
if (response.ok) {
|
|
@@ -814,7 +830,7 @@ export class ActorHandleRaw {
|
|
|
814
830
|
: this.#encoding;
|
|
815
831
|
|
|
816
832
|
try {
|
|
817
|
-
|
|
833
|
+
const error = deserializeWithEncoding<
|
|
818
834
|
protocol.HttpResponseError,
|
|
819
835
|
HttpResponseErrorJson,
|
|
820
836
|
{
|
|
@@ -822,6 +838,7 @@ export class ActorHandleRaw {
|
|
|
822
838
|
code: string;
|
|
823
839
|
message: string;
|
|
824
840
|
metadata?: unknown;
|
|
841
|
+
rayId?: string;
|
|
825
842
|
actor?: ActorSpecifier;
|
|
826
843
|
}
|
|
827
844
|
>(
|
|
@@ -854,6 +871,10 @@ export class ActorHandleRaw {
|
|
|
854
871
|
: undefined,
|
|
855
872
|
}),
|
|
856
873
|
);
|
|
874
|
+
return {
|
|
875
|
+
...error,
|
|
876
|
+
rayId: response.headers.get("x-rivet-ray-id") ?? undefined,
|
|
877
|
+
};
|
|
857
878
|
} catch {
|
|
858
879
|
return null;
|
|
859
880
|
}
|
|
@@ -927,7 +948,9 @@ export class ActorHandleRaw {
|
|
|
927
948
|
"actor",
|
|
928
949
|
"reload_failed",
|
|
929
950
|
`reload failed with status ${response.status}: ${body}`,
|
|
930
|
-
{
|
|
951
|
+
{
|
|
952
|
+
rayId: response.headers.get("x-rivet-ray-id") ?? undefined,
|
|
953
|
+
},
|
|
931
954
|
);
|
|
932
955
|
}
|
|
933
956
|
}
|
|
@@ -67,6 +67,7 @@ export async function checkForSchedulingError(
|
|
|
67
67
|
actorId: string,
|
|
68
68
|
query: ActorQuery,
|
|
69
69
|
driver: EngineControlClient,
|
|
70
|
+
rayId?: string,
|
|
70
71
|
): Promise<ActorSchedulingError | null> {
|
|
71
72
|
const name = getActorNameFromQuery(query);
|
|
72
73
|
|
|
@@ -79,7 +80,13 @@ export async function checkForSchedulingError(
|
|
|
79
80
|
actorId,
|
|
80
81
|
error: actor.error,
|
|
81
82
|
});
|
|
82
|
-
return actorSchedulingError(
|
|
83
|
+
return actorSchedulingError(
|
|
84
|
+
group,
|
|
85
|
+
code,
|
|
86
|
+
actorId,
|
|
87
|
+
actor.error,
|
|
88
|
+
rayId,
|
|
89
|
+
);
|
|
83
90
|
}
|
|
84
91
|
} catch (err) {
|
|
85
92
|
logger().warn({
|
package/src/client/errors.ts
CHANGED
|
@@ -51,12 +51,13 @@ export function actorSchedulingError(
|
|
|
51
51
|
code: string,
|
|
52
52
|
actorId: string,
|
|
53
53
|
details: unknown,
|
|
54
|
+
rayId?: string,
|
|
54
55
|
): RivetError {
|
|
55
56
|
return new RivetError(
|
|
56
57
|
group,
|
|
57
58
|
code,
|
|
58
59
|
`Actor failed to start (${actorId}): ${JSON.stringify(details)}`,
|
|
59
|
-
{ metadata: { actorId, details } },
|
|
60
|
+
{ metadata: { actorId, details }, rayId },
|
|
60
61
|
);
|
|
61
62
|
}
|
|
62
63
|
|
package/src/client/raw-utils.ts
CHANGED
|
@@ -99,11 +99,9 @@ export async function rawHttpFetch(
|
|
|
99
99
|
return driver.sendRequest(target, proxyRequest, options);
|
|
100
100
|
} catch (err) {
|
|
101
101
|
// Standardize to ClientActorError instead of the native backend error
|
|
102
|
-
const { group, code, message, metadata, actor } =
|
|
103
|
-
err,
|
|
104
|
-
|
|
105
|
-
);
|
|
106
|
-
throw new ActorError(group, code, message, { metadata, actor });
|
|
102
|
+
const { group, code, message, metadata, rayId, actor } =
|
|
103
|
+
deconstructError(err, true);
|
|
104
|
+
throw new ActorError(group, code, message, { metadata, rayId, actor });
|
|
107
105
|
}
|
|
108
106
|
}
|
|
109
107
|
|
package/src/client/utils.ts
CHANGED
|
@@ -215,6 +215,7 @@ export async function sendHttpRequest<
|
|
|
215
215
|
code: responseData.code,
|
|
216
216
|
message: responseData.message,
|
|
217
217
|
metadata: responseData.metadata,
|
|
218
|
+
rayId,
|
|
218
219
|
actorId: responseData.actor?.actorId,
|
|
219
220
|
generation: responseData.actor?.generation,
|
|
220
221
|
actorKey: responseData.actor?.key,
|
|
@@ -226,6 +227,7 @@ export async function sendHttpRequest<
|
|
|
226
227
|
responseData.message,
|
|
227
228
|
{
|
|
228
229
|
metadata: responseData.metadata,
|
|
230
|
+
rayId: rayId ?? undefined,
|
|
229
231
|
actor: responseData.actor,
|
|
230
232
|
},
|
|
231
233
|
);
|
package/src/common/utils.ts
CHANGED
|
@@ -44,6 +44,7 @@ export interface DeconstructedError {
|
|
|
44
44
|
code: string;
|
|
45
45
|
message: string;
|
|
46
46
|
metadata?: unknown;
|
|
47
|
+
rayId?: string;
|
|
47
48
|
actor?: errors.ActorSpecifier;
|
|
48
49
|
}
|
|
49
50
|
|
|
@@ -80,6 +81,7 @@ export function deconstructError(
|
|
|
80
81
|
let code: string;
|
|
81
82
|
let message: string;
|
|
82
83
|
let metadata: unknown;
|
|
84
|
+
let rayId: string | undefined;
|
|
83
85
|
let actor: errors.ActorSpecifier | undefined;
|
|
84
86
|
// Structured errors from core or from pre-built `RivetError` instances are canonical.
|
|
85
87
|
// Only unstructured errors go through the classifier below.
|
|
@@ -96,6 +98,7 @@ export function deconstructError(
|
|
|
96
98
|
code = error.code;
|
|
97
99
|
message = error.message;
|
|
98
100
|
metadata = error.metadata;
|
|
101
|
+
rayId = error.rayId;
|
|
99
102
|
actor = error.actor;
|
|
100
103
|
} else if (errors.ActorError.isActorError(error) && error.public) {
|
|
101
104
|
// Check if error has statusCode (could be ActorError instance or DeconstructedError)
|
|
@@ -107,6 +110,7 @@ export function deconstructError(
|
|
|
107
110
|
code = error.code;
|
|
108
111
|
message = getErrorMessage(error);
|
|
109
112
|
metadata = error.metadata;
|
|
113
|
+
rayId = error.rayId;
|
|
110
114
|
actor = error.actor;
|
|
111
115
|
} else if (exposeInternalError) {
|
|
112
116
|
if (errors.ActorError.isActorError(error)) {
|
|
@@ -116,6 +120,7 @@ export function deconstructError(
|
|
|
116
120
|
code = error.code;
|
|
117
121
|
message = getErrorMessage(error);
|
|
118
122
|
metadata = error.metadata;
|
|
123
|
+
rayId = error.rayId;
|
|
119
124
|
actor = error.actor;
|
|
120
125
|
} else {
|
|
121
126
|
statusCode = 500;
|
|
@@ -146,6 +151,7 @@ export function deconstructError(
|
|
|
146
151
|
code,
|
|
147
152
|
message,
|
|
148
153
|
metadata,
|
|
154
|
+
rayId,
|
|
149
155
|
actor,
|
|
150
156
|
};
|
|
151
157
|
}
|
package/src/registry/native.ts
CHANGED