rivetkit 2.3.12-rc.1 → 2.3.12-rc.3
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 +116 -60
- 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-MT33DKU4.js → chunk-34Q4YVCX.js} +2 -2
- package/dist/tsup/{chunk-T4MKKCRF.cjs → chunk-4ESGNS3Z.cjs} +15 -10
- package/dist/tsup/chunk-4ESGNS3Z.cjs.map +1 -0
- package/dist/tsup/{chunk-VJ4KLJO5.cjs → chunk-EQKSWDIH.cjs} +3 -3
- package/dist/tsup/{chunk-VJ4KLJO5.cjs.map → chunk-EQKSWDIH.cjs.map} +1 -1
- package/dist/tsup/{chunk-BZX4LYYD.cjs → chunk-IJWTHKH6.cjs} +3 -3
- package/dist/tsup/{chunk-BZX4LYYD.cjs.map → chunk-IJWTHKH6.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-ZTPFJOBX.js → chunk-NHI5L7C7.js} +3 -3
- package/dist/tsup/{chunk-CMZBDX6Z.cjs → chunk-O6H3BUN4.cjs} +3 -3
- package/dist/tsup/{chunk-CMZBDX6Z.cjs.map → chunk-O6H3BUN4.cjs.map} +1 -1
- package/dist/tsup/{chunk-HVHDZDM2.js → chunk-OLGQYFUW.js} +8 -3
- package/dist/tsup/chunk-OLGQYFUW.js.map +1 -0
- package/dist/tsup/{chunk-BEPAAID2.cjs → chunk-OX6WVQE6.cjs} +10 -10
- package/dist/tsup/{chunk-BEPAAID2.cjs.map → chunk-OX6WVQE6.cjs.map} +1 -1
- package/dist/tsup/{chunk-KRPA4UOE.js → chunk-PSXMESQJ.js} +2 -2
- package/dist/tsup/{chunk-6ETWXXAZ.cjs → chunk-PZBWSCQR.cjs} +262 -213
- package/dist/tsup/chunk-PZBWSCQR.cjs.map +1 -0
- package/dist/tsup/{chunk-2D5PNV5A.cjs → chunk-QLOBB27M.cjs} +4 -4
- package/dist/tsup/{chunk-2D5PNV5A.cjs.map → chunk-QLOBB27M.cjs.map} +1 -1
- package/dist/tsup/{chunk-4FC7TVS6.cjs → chunk-SPJORZMM.cjs} +15 -4
- package/dist/tsup/chunk-SPJORZMM.cjs.map +1 -0
- package/dist/tsup/{chunk-DIHAXOB7.cjs → chunk-UBB32UOG.cjs} +7 -7
- package/dist/tsup/{chunk-DIHAXOB7.cjs.map → chunk-UBB32UOG.cjs.map} +1 -1
- package/dist/tsup/{chunk-OZWVDFCA.js → chunk-UN5JNDBT.js} +4 -4
- package/dist/tsup/{chunk-5UYNV4W6.js → chunk-WVFTFWJL.js} +2 -2
- package/dist/tsup/{chunk-JHHAMABO.js → chunk-XI4MEUUI.js} +2 -2
- package/dist/tsup/{chunk-A5BZEQOG.js → chunk-YYIDQBBM.js} +110 -61
- package/dist/tsup/chunk-YYIDQBBM.js.map +1 -0
- 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 +111 -110
- 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 +8 -7
- 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.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 +47 -19
- 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/engine-client/mod.ts +51 -20
- package/src/registry/native.ts +1 -0
- package/dist/tsup/chunk-4FC7TVS6.cjs.map +0 -1
- package/dist/tsup/chunk-6ETWXXAZ.cjs.map +0 -1
- package/dist/tsup/chunk-A5BZEQOG.js.map +0 -1
- package/dist/tsup/chunk-HVHDZDM2.js.map +0 -1
- package/dist/tsup/chunk-T4MKKCRF.cjs.map +0 -1
- package/dist/tsup/chunk-ZZ3WBRPD.js.map +0 -1
- /package/dist/tsup/{chunk-MT33DKU4.js.map → chunk-34Q4YVCX.js.map} +0 -0
- /package/dist/tsup/{chunk-ZTPFJOBX.js.map → chunk-NHI5L7C7.js.map} +0 -0
- /package/dist/tsup/{chunk-KRPA4UOE.js.map → chunk-PSXMESQJ.js.map} +0 -0
- /package/dist/tsup/{chunk-OZWVDFCA.js.map → chunk-UN5JNDBT.js.map} +0 -0
- /package/dist/tsup/{chunk-5UYNV4W6.js.map → chunk-WVFTFWJL.js.map} +0 -0
- /package/dist/tsup/{chunk-JHHAMABO.js.map → chunk-XI4MEUUI.js.map} +0 -0
package/dist/browser/client.d.ts
CHANGED
|
@@ -286,6 +286,7 @@ interface DeconstructedError {
|
|
|
286
286
|
code: string;
|
|
287
287
|
message: string;
|
|
288
288
|
metadata?: unknown;
|
|
289
|
+
rayId?: string;
|
|
289
290
|
actor?: ActorSpecifier;
|
|
290
291
|
}
|
|
291
292
|
|
|
@@ -294,6 +295,8 @@ interface RivetErrorOptions extends ErrorOptions {
|
|
|
294
295
|
public?: boolean;
|
|
295
296
|
/** Metadata associated with this error. */
|
|
296
297
|
metadata?: unknown;
|
|
298
|
+
/** Request identifier used to correlate this error with engine logs. */
|
|
299
|
+
rayId?: string;
|
|
297
300
|
/** Explicit HTTP status override for router responses. */
|
|
298
301
|
statusCode?: number;
|
|
299
302
|
/** Actor context associated with this error. */
|
|
@@ -321,6 +324,7 @@ declare class RivetError extends Error {
|
|
|
321
324
|
__type: "RivetError";
|
|
322
325
|
public: boolean;
|
|
323
326
|
metadata?: unknown;
|
|
327
|
+
readonly rayId?: string;
|
|
324
328
|
statusCode: number;
|
|
325
329
|
actor?: ActorSpecifier;
|
|
326
330
|
readonly group: string;
|
package/dist/browser/client.js
CHANGED
|
@@ -10,7 +10,7 @@ var INTERNAL_ERROR_CODE = "internal_error";
|
|
|
10
10
|
var INTERNAL_ERROR_DESCRIPTION = "An internal error occurred";
|
|
11
11
|
var USER_ERROR_CODE = "user_error";
|
|
12
12
|
function looksLikeRivetErrorOptions(value) {
|
|
13
|
-
return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "actor" in value || "cause" in value);
|
|
13
|
+
return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "rayId" in value || "statusCode" in value || "actor" in value || "cause" in value);
|
|
14
14
|
}
|
|
15
15
|
function isTypedErrorTag(value) {
|
|
16
16
|
return value === "ActorError" || value === "RivetError";
|
|
@@ -22,12 +22,13 @@ function errorMessage(error, fallback = String(error)) {
|
|
|
22
22
|
return fallback;
|
|
23
23
|
}
|
|
24
24
|
function isRivetErrorLike(error) {
|
|
25
|
-
return typeof error === "object" && error !== null && "group" in error && typeof error.group === "string" && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string" && (!("__type" in error) || isTypedErrorTag(error.__type));
|
|
25
|
+
return typeof error === "object" && error !== null && "group" in error && typeof error.group === "string" && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string" && (!("rayId" in error) || error.rayId === void 0 || typeof error.rayId === "string") && (!("__type" in error) || isTypedErrorTag(error.__type));
|
|
26
26
|
}
|
|
27
27
|
var RivetError = class extends Error {
|
|
28
28
|
__type = "RivetError";
|
|
29
29
|
public;
|
|
30
30
|
metadata;
|
|
31
|
+
rayId;
|
|
31
32
|
statusCode;
|
|
32
33
|
actor;
|
|
33
34
|
group;
|
|
@@ -46,6 +47,7 @@ var RivetError = class extends Error {
|
|
|
46
47
|
this.code = code;
|
|
47
48
|
this.public = normalized.public ?? false;
|
|
48
49
|
this.metadata = normalized.metadata;
|
|
50
|
+
this.rayId = normalized.rayId ?? void 0;
|
|
49
51
|
this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
|
|
50
52
|
this.actor = normalized.actor;
|
|
51
53
|
}
|
|
@@ -96,6 +98,7 @@ function deconstructError(error, exposeInternalError = false) {
|
|
|
96
98
|
let code;
|
|
97
99
|
let message;
|
|
98
100
|
let metadata;
|
|
101
|
+
let rayId;
|
|
99
102
|
let actor;
|
|
100
103
|
if (isCanonicalStructuredRivetError(error)) {
|
|
101
104
|
statusCode = typeof error.statusCode === "number" ? error.statusCode : error.public ? 400 : 500;
|
|
@@ -104,6 +107,7 @@ function deconstructError(error, exposeInternalError = false) {
|
|
|
104
107
|
code = error.code;
|
|
105
108
|
message = error.message;
|
|
106
109
|
metadata = error.metadata;
|
|
110
|
+
rayId = error.rayId;
|
|
107
111
|
actor = error.actor;
|
|
108
112
|
} else if (RivetError.isActorError(error) && error.public) {
|
|
109
113
|
statusCode = "statusCode" in error && error.statusCode ? error.statusCode : 400;
|
|
@@ -112,6 +116,7 @@ function deconstructError(error, exposeInternalError = false) {
|
|
|
112
116
|
code = error.code;
|
|
113
117
|
message = getErrorMessage(error);
|
|
114
118
|
metadata = error.metadata;
|
|
119
|
+
rayId = error.rayId;
|
|
115
120
|
actor = error.actor;
|
|
116
121
|
} else if (exposeInternalError) {
|
|
117
122
|
if (RivetError.isActorError(error)) {
|
|
@@ -121,6 +126,7 @@ function deconstructError(error, exposeInternalError = false) {
|
|
|
121
126
|
code = error.code;
|
|
122
127
|
message = getErrorMessage(error);
|
|
123
128
|
metadata = error.metadata;
|
|
129
|
+
rayId = error.rayId;
|
|
124
130
|
actor = error.actor;
|
|
125
131
|
} else {
|
|
126
132
|
statusCode = 500;
|
|
@@ -150,6 +156,7 @@ function deconstructError(error, exposeInternalError = false) {
|
|
|
150
156
|
code,
|
|
151
157
|
message,
|
|
152
158
|
metadata,
|
|
159
|
+
rayId,
|
|
153
160
|
actor
|
|
154
161
|
};
|
|
155
162
|
}
|
|
@@ -194,7 +201,7 @@ function noopNext() {
|
|
|
194
201
|
// package.json
|
|
195
202
|
var package_default = {
|
|
196
203
|
name: "rivetkit",
|
|
197
|
-
version: "2.3.12-rc.
|
|
204
|
+
version: "2.3.12-rc.3",
|
|
198
205
|
description: "Lightweight libraries for building stateful actors on edge platforms",
|
|
199
206
|
license: "Apache-2.0",
|
|
200
207
|
keywords: [
|
|
@@ -3689,12 +3696,12 @@ var ActorConnDisposed = class extends ActorClientError {
|
|
|
3689
3696
|
function isSchedulingError(group, code) {
|
|
3690
3697
|
return group === "guard" && (code === "actor_ready_timeout" || code === "actor_runner_failed");
|
|
3691
3698
|
}
|
|
3692
|
-
function actorSchedulingError(group, code, actorId, details) {
|
|
3699
|
+
function actorSchedulingError(group, code, actorId, details, rayId) {
|
|
3693
3700
|
return new RivetError(
|
|
3694
3701
|
group,
|
|
3695
3702
|
code,
|
|
3696
3703
|
`Actor failed to start (${actorId}): ${JSON.stringify(details)}`,
|
|
3697
|
-
{ metadata: { actorId, details } }
|
|
3704
|
+
{ metadata: { actorId, details }, rayId }
|
|
3698
3705
|
);
|
|
3699
3706
|
}
|
|
3700
3707
|
function internalClientError(message, opts) {
|
|
@@ -3813,6 +3820,7 @@ async function sendHttpRequest(opts) {
|
|
|
3813
3820
|
code: responseData.code,
|
|
3814
3821
|
message: responseData.message,
|
|
3815
3822
|
metadata: responseData.metadata,
|
|
3823
|
+
rayId,
|
|
3816
3824
|
actorId: responseData.actor?.actorId,
|
|
3817
3825
|
generation: responseData.actor?.generation,
|
|
3818
3826
|
actorKey: responseData.actor?.key
|
|
@@ -3823,6 +3831,7 @@ async function sendHttpRequest(opts) {
|
|
|
3823
3831
|
responseData.message,
|
|
3824
3832
|
{
|
|
3825
3833
|
metadata: responseData.metadata,
|
|
3834
|
+
rayId: rayId ?? void 0,
|
|
3826
3835
|
actor: responseData.actor
|
|
3827
3836
|
}
|
|
3828
3837
|
);
|
|
@@ -4235,24 +4244,45 @@ var RemoteEngineControlClient = class {
|
|
|
4235
4244
|
name,
|
|
4236
4245
|
key
|
|
4237
4246
|
});
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4247
|
+
try {
|
|
4248
|
+
const { actor, created } = await getOrCreateActor(this.#config, {
|
|
4249
|
+
datacenter: region,
|
|
4250
|
+
name,
|
|
4251
|
+
key: serializeActorKey(key),
|
|
4252
|
+
runner_name_selector: poolName ?? this.#config.poolName,
|
|
4253
|
+
input: actorInput ? uint8ArrayToBase64(
|
|
4254
|
+
encodeCborCompat(actorInput)
|
|
4255
|
+
) : void 0,
|
|
4256
|
+
crash_policy: crashPolicy ?? "sleep"
|
|
4257
|
+
});
|
|
4258
|
+
logger3().info({
|
|
4259
|
+
msg: "getOrCreateWithKey: actor ready",
|
|
4260
|
+
actorId: actor.actor_id,
|
|
4261
|
+
name,
|
|
4262
|
+
key,
|
|
4263
|
+
created
|
|
4264
|
+
});
|
|
4265
|
+
return apiActorToOutput(actor);
|
|
4266
|
+
} catch (error) {
|
|
4267
|
+
if (error instanceof RivetError && error.group === "actor" && error.code === "key_reserved_in_different_datacenter") {
|
|
4268
|
+
logger3().warn({
|
|
4269
|
+
msg: "getOrCreateWithKey: key reserved in different datacenter, retrying as get",
|
|
4270
|
+
name,
|
|
4271
|
+
key
|
|
4272
|
+
});
|
|
4273
|
+
const response = await getActorByKey(this.#config, name, key);
|
|
4274
|
+
const existing = response.actors[0];
|
|
4275
|
+
if (!existing) throw error;
|
|
4276
|
+
logger3().info({
|
|
4277
|
+
msg: "getOrCreateWithKey: resolved existing actor via get",
|
|
4278
|
+
actorId: existing.actor_id,
|
|
4279
|
+
name,
|
|
4280
|
+
key
|
|
4281
|
+
});
|
|
4282
|
+
return apiActorToOutput(existing);
|
|
4283
|
+
}
|
|
4284
|
+
throw error;
|
|
4285
|
+
}
|
|
4256
4286
|
}
|
|
4257
4287
|
async createActor({
|
|
4258
4288
|
name,
|
|
@@ -4489,7 +4519,7 @@ function getGatewayTarget(state) {
|
|
|
4489
4519
|
function isStaleResolvedActorError(group, code) {
|
|
4490
4520
|
return group === "actor" && (code === "not_found" || code === "starting" || code === "stopping" || code === "not_configured" || code === "dropped_reply" || code.startsWith("destroyed_"));
|
|
4491
4521
|
}
|
|
4492
|
-
async function checkForSchedulingError(group, code, actorId, query, driver) {
|
|
4522
|
+
async function checkForSchedulingError(group, code, actorId, query, driver, rayId) {
|
|
4493
4523
|
const name = getActorNameFromQuery(query);
|
|
4494
4524
|
try {
|
|
4495
4525
|
const actor = await driver.getForId({ name, actorId });
|
|
@@ -4499,7 +4529,13 @@ async function checkForSchedulingError(group, code, actorId, query, driver) {
|
|
|
4499
4529
|
actorId,
|
|
4500
4530
|
error: actor.error
|
|
4501
4531
|
});
|
|
4502
|
-
return actorSchedulingError(
|
|
4532
|
+
return actorSchedulingError(
|
|
4533
|
+
group,
|
|
4534
|
+
code,
|
|
4535
|
+
actorId,
|
|
4536
|
+
actor.error,
|
|
4537
|
+
rayId
|
|
4538
|
+
);
|
|
4503
4539
|
}
|
|
4504
4540
|
} catch (err) {
|
|
4505
4541
|
logger2().warn({
|
|
@@ -5328,7 +5364,7 @@ var ActorConnRaw = class {
|
|
|
5328
5364
|
const reason = closeEvent.reason || "";
|
|
5329
5365
|
const parsed = parseWebSocketCloseReason(reason);
|
|
5330
5366
|
if (parsed) {
|
|
5331
|
-
const { group, code } = parsed;
|
|
5367
|
+
const { group, code, rayId } = parsed;
|
|
5332
5368
|
if (this.#shouldReconnectForStaleActor(group, code)) {
|
|
5333
5369
|
this.#clearResolvedActorIdentity();
|
|
5334
5370
|
this.#onOpenPromise?.reject(
|
|
@@ -5336,7 +5372,7 @@ var ActorConnRaw = class {
|
|
|
5336
5372
|
group,
|
|
5337
5373
|
code,
|
|
5338
5374
|
`Connection closed: ${reason}`,
|
|
5339
|
-
|
|
5375
|
+
{ rayId }
|
|
5340
5376
|
)
|
|
5341
5377
|
);
|
|
5342
5378
|
return;
|
|
@@ -5347,7 +5383,8 @@ var ActorConnRaw = class {
|
|
|
5347
5383
|
code,
|
|
5348
5384
|
this.#actorId,
|
|
5349
5385
|
this.#actorResolutionState,
|
|
5350
|
-
this.#driver
|
|
5386
|
+
this.#driver,
|
|
5387
|
+
rayId
|
|
5351
5388
|
);
|
|
5352
5389
|
if (schedulingError) {
|
|
5353
5390
|
error = schedulingError;
|
|
@@ -5356,7 +5393,7 @@ var ActorConnRaw = class {
|
|
|
5356
5393
|
group,
|
|
5357
5394
|
code,
|
|
5358
5395
|
`Connection closed: ${reason}`,
|
|
5359
|
-
|
|
5396
|
+
{ rayId }
|
|
5360
5397
|
);
|
|
5361
5398
|
}
|
|
5362
5399
|
} else {
|
|
@@ -5364,7 +5401,7 @@ var ActorConnRaw = class {
|
|
|
5364
5401
|
group,
|
|
5365
5402
|
code,
|
|
5366
5403
|
`Connection closed: ${reason}`,
|
|
5367
|
-
|
|
5404
|
+
{ rayId }
|
|
5368
5405
|
);
|
|
5369
5406
|
}
|
|
5370
5407
|
this.#invalidateActorIfStale(group, code);
|
|
@@ -5946,11 +5983,8 @@ async function rawHttpFetch(driver, target, params, input, init, options = {}) {
|
|
|
5946
5983
|
});
|
|
5947
5984
|
return driver.sendRequest(target, proxyRequest, options);
|
|
5948
5985
|
} catch (err) {
|
|
5949
|
-
const { group, code, message, metadata, actor } = deconstructError(
|
|
5950
|
-
|
|
5951
|
-
true
|
|
5952
|
-
);
|
|
5953
|
-
throw new RivetError(group, code, message, { metadata, actor });
|
|
5986
|
+
const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
|
|
5987
|
+
throw new RivetError(group, code, message, { metadata, rayId, actor });
|
|
5954
5988
|
}
|
|
5955
5989
|
}
|
|
5956
5990
|
async function rawWebSocket(driver, target, params, path, _protocols, options = {}) {
|
|
@@ -6069,7 +6103,7 @@ var ActorHandleRaw = class {
|
|
|
6069
6103
|
async #sendQueueMessage(name, body, options) {
|
|
6070
6104
|
return await this.#queueSendMutex.run(async () => {
|
|
6071
6105
|
const maxAttempts = this.#getDynamicQueryMaxAttempts();
|
|
6072
|
-
let useQueryTarget =
|
|
6106
|
+
let useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
6073
6107
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
6074
6108
|
let actorId;
|
|
6075
6109
|
try {
|
|
@@ -6093,7 +6127,7 @@ var ActorHandleRaw = class {
|
|
|
6093
6127
|
}
|
|
6094
6128
|
}).send(name, body, options);
|
|
6095
6129
|
} catch (err) {
|
|
6096
|
-
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
6130
|
+
const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
|
|
6097
6131
|
if (this.#shouldRetryQueueDispatchOverload(
|
|
6098
6132
|
group,
|
|
6099
6133
|
code,
|
|
@@ -6109,7 +6143,8 @@ var ActorHandleRaw = class {
|
|
|
6109
6143
|
code,
|
|
6110
6144
|
actorId,
|
|
6111
6145
|
attempt,
|
|
6112
|
-
maxAttempts
|
|
6146
|
+
maxAttempts,
|
|
6147
|
+
rayId
|
|
6113
6148
|
)) {
|
|
6114
6149
|
useQueryTarget = true;
|
|
6115
6150
|
await this.#waitForRetryWindow();
|
|
@@ -6131,14 +6166,16 @@ var ActorHandleRaw = class {
|
|
|
6131
6166
|
code
|
|
6132
6167
|
);
|
|
6133
6168
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
6134
|
-
|
|
6135
|
-
|
|
6169
|
+
const waitForReady = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
6170
|
+
useQueryTarget = useQueryTarget || waitForReady;
|
|
6171
|
+
if (waitForReady) {
|
|
6136
6172
|
await this.#waitForRetryWindow();
|
|
6137
6173
|
}
|
|
6138
6174
|
continue;
|
|
6139
6175
|
}
|
|
6140
6176
|
throw new RivetError(group, code, message, {
|
|
6141
6177
|
metadata,
|
|
6178
|
+
rayId,
|
|
6142
6179
|
actor
|
|
6143
6180
|
});
|
|
6144
6181
|
}
|
|
@@ -6167,7 +6204,7 @@ var ActorHandleRaw = class {
|
|
|
6167
6204
|
}
|
|
6168
6205
|
async #sendActionNow(opts) {
|
|
6169
6206
|
const maxAttempts = this.#getDynamicQueryMaxAttempts();
|
|
6170
|
-
let useQueryTarget =
|
|
6207
|
+
let useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
6171
6208
|
const gatewayOptions = resolveActorGatewayOptions(
|
|
6172
6209
|
this.#gatewayOptions,
|
|
6173
6210
|
opts
|
|
@@ -6232,13 +6269,14 @@ var ActorHandleRaw = class {
|
|
|
6232
6269
|
}
|
|
6233
6270
|
return output;
|
|
6234
6271
|
} catch (err) {
|
|
6235
|
-
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
6272
|
+
const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
|
|
6236
6273
|
if (await this.#shouldRetrySchedulingError(
|
|
6237
6274
|
group,
|
|
6238
6275
|
code,
|
|
6239
6276
|
actorId,
|
|
6240
6277
|
attempt,
|
|
6241
|
-
maxAttempts
|
|
6278
|
+
maxAttempts,
|
|
6279
|
+
rayId
|
|
6242
6280
|
)) {
|
|
6243
6281
|
useQueryTarget = true;
|
|
6244
6282
|
await this.#waitForRetryWindow();
|
|
@@ -6260,7 +6298,7 @@ var ActorHandleRaw = class {
|
|
|
6260
6298
|
"actor",
|
|
6261
6299
|
"not_found",
|
|
6262
6300
|
"The actor does not exist or was destroyed.",
|
|
6263
|
-
{ metadata, actor }
|
|
6301
|
+
{ metadata, rayId, actor }
|
|
6264
6302
|
);
|
|
6265
6303
|
}
|
|
6266
6304
|
const invalidated = this.#invalidateResolvedActorId(
|
|
@@ -6276,7 +6314,11 @@ var ActorHandleRaw = class {
|
|
|
6276
6314
|
}
|
|
6277
6315
|
continue;
|
|
6278
6316
|
}
|
|
6279
|
-
throw new RivetError(group, code, message, {
|
|
6317
|
+
throw new RivetError(group, code, message, {
|
|
6318
|
+
metadata,
|
|
6319
|
+
rayId,
|
|
6320
|
+
actor
|
|
6321
|
+
});
|
|
6280
6322
|
}
|
|
6281
6323
|
}
|
|
6282
6324
|
throw new Error("unreachable action retry state");
|
|
@@ -6318,7 +6360,7 @@ var ActorHandleRaw = class {
|
|
|
6318
6360
|
this.#resolvedActorId = void 0;
|
|
6319
6361
|
this.#resolvingActorId = void 0;
|
|
6320
6362
|
}
|
|
6321
|
-
async #shouldRetrySchedulingError(group, code, actorId, attempt, maxAttempts) {
|
|
6363
|
+
async #shouldRetrySchedulingError(group, code, actorId, attempt, maxAttempts, rayId) {
|
|
6322
6364
|
if (!isDynamicActorQuery(this.#actorResolutionState) || !isSchedulingError(group, code) || attempt >= maxAttempts - 1) {
|
|
6323
6365
|
return false;
|
|
6324
6366
|
}
|
|
@@ -6328,7 +6370,8 @@ var ActorHandleRaw = class {
|
|
|
6328
6370
|
code,
|
|
6329
6371
|
actorId,
|
|
6330
6372
|
this.#actorResolutionState,
|
|
6331
|
-
this.#driver
|
|
6373
|
+
this.#driver,
|
|
6374
|
+
rayId
|
|
6332
6375
|
);
|
|
6333
6376
|
if (schedulingError) {
|
|
6334
6377
|
throw schedulingError;
|
|
@@ -6410,7 +6453,7 @@ var ActorHandleRaw = class {
|
|
|
6410
6453
|
}
|
|
6411
6454
|
async #fetchWithResolvedActor(input, init) {
|
|
6412
6455
|
const maxAttempts = this.#getDynamicQueryMaxAttempts();
|
|
6413
|
-
let useQueryTarget =
|
|
6456
|
+
let useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
|
|
6414
6457
|
const { skipReadyWait, ...requestInit } = init ?? {};
|
|
6415
6458
|
const gatewayOptions = resolveActorGatewayOptions(
|
|
6416
6459
|
this.#gatewayOptions,
|
|
@@ -6449,13 +6492,14 @@ var ActorHandleRaw = class {
|
|
|
6449
6492
|
}
|
|
6450
6493
|
return response;
|
|
6451
6494
|
} catch (err) {
|
|
6452
|
-
const { group, code, message, metadata, actor } = deconstructError(err, true);
|
|
6495
|
+
const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
|
|
6453
6496
|
if (await this.#shouldRetrySchedulingError(
|
|
6454
6497
|
group,
|
|
6455
6498
|
code,
|
|
6456
6499
|
actorId,
|
|
6457
6500
|
attempt,
|
|
6458
|
-
maxAttempts
|
|
6501
|
+
maxAttempts,
|
|
6502
|
+
rayId
|
|
6459
6503
|
)) {
|
|
6460
6504
|
useQueryTarget = true;
|
|
6461
6505
|
await this.#waitForRetryWindow();
|
|
@@ -6477,13 +6521,18 @@ var ActorHandleRaw = class {
|
|
|
6477
6521
|
code
|
|
6478
6522
|
);
|
|
6479
6523
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
6480
|
-
|
|
6481
|
-
|
|
6524
|
+
const waitForReady = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
6525
|
+
useQueryTarget = useQueryTarget || waitForReady;
|
|
6526
|
+
if (waitForReady) {
|
|
6482
6527
|
await this.#waitForRetryWindow();
|
|
6483
6528
|
}
|
|
6484
6529
|
continue;
|
|
6485
6530
|
}
|
|
6486
|
-
throw new RivetError(group, code, message, {
|
|
6531
|
+
throw new RivetError(group, code, message, {
|
|
6532
|
+
metadata,
|
|
6533
|
+
rayId,
|
|
6534
|
+
actor
|
|
6535
|
+
});
|
|
6487
6536
|
}
|
|
6488
6537
|
}
|
|
6489
6538
|
throw new Error("unreachable fetch retry state");
|
|
@@ -6496,13 +6545,14 @@ var ActorHandleRaw = class {
|
|
|
6496
6545
|
if (!error) {
|
|
6497
6546
|
return null;
|
|
6498
6547
|
}
|
|
6499
|
-
const { group, code } = error;
|
|
6548
|
+
const { group, code, rayId } = error;
|
|
6500
6549
|
if (await this.#shouldRetrySchedulingError(
|
|
6501
6550
|
group,
|
|
6502
6551
|
code,
|
|
6503
6552
|
actorId,
|
|
6504
6553
|
attempt,
|
|
6505
|
-
maxAttempts
|
|
6554
|
+
maxAttempts,
|
|
6555
|
+
rayId
|
|
6506
6556
|
)) {
|
|
6507
6557
|
return {
|
|
6508
6558
|
useQueryTarget: true,
|
|
@@ -6523,10 +6573,10 @@ var ActorHandleRaw = class {
|
|
|
6523
6573
|
}
|
|
6524
6574
|
const invalidated = this.#invalidateResolvedActorId(group, code);
|
|
6525
6575
|
if (invalidated && attempt < maxAttempts - 1) {
|
|
6526
|
-
const
|
|
6576
|
+
const waitForReady = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
|
|
6527
6577
|
return {
|
|
6528
|
-
useQueryTarget,
|
|
6529
|
-
waitForRetryWindow:
|
|
6578
|
+
useQueryTarget: true,
|
|
6579
|
+
waitForRetryWindow: waitForReady
|
|
6530
6580
|
};
|
|
6531
6581
|
}
|
|
6532
6582
|
return null;
|
|
@@ -6538,7 +6588,7 @@ var ActorHandleRaw = class {
|
|
|
6538
6588
|
const contentType = response.headers.get("content-type");
|
|
6539
6589
|
const encoding = contentType?.includes("application/json") ? "json" : this.#encoding;
|
|
6540
6590
|
try {
|
|
6541
|
-
|
|
6591
|
+
const error = deserializeWithEncoding(
|
|
6542
6592
|
encoding,
|
|
6543
6593
|
new Uint8Array(await response.clone().arrayBuffer()),
|
|
6544
6594
|
HTTP_RESPONSE_ERROR_VERSIONED,
|
|
@@ -6562,6 +6612,10 @@ var ActorHandleRaw = class {
|
|
|
6562
6612
|
} : void 0
|
|
6563
6613
|
})
|
|
6564
6614
|
);
|
|
6615
|
+
return {
|
|
6616
|
+
...error,
|
|
6617
|
+
rayId: response.headers.get("x-rivet-ray-id") ?? void 0
|
|
6618
|
+
};
|
|
6565
6619
|
} catch {
|
|
6566
6620
|
return null;
|
|
6567
6621
|
}
|
|
@@ -6625,7 +6679,9 @@ var ActorHandleRaw = class {
|
|
|
6625
6679
|
"actor",
|
|
6626
6680
|
"reload_failed",
|
|
6627
6681
|
`reload failed with status ${response.status}: ${body}`,
|
|
6628
|
-
{
|
|
6682
|
+
{
|
|
6683
|
+
rayId: response.headers.get("x-rivet-ray-id") ?? void 0
|
|
6684
|
+
}
|
|
6629
6685
|
);
|
|
6630
6686
|
}
|
|
6631
6687
|
}
|