rivetkit 2.3.0-rc.5 → 2.3.0-rc.6

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.
Files changed (113) hide show
  1. package/dist/browser/client.d.ts +21 -18
  2. package/dist/browser/client.js +735 -170
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +1 -1
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/actor/errors.cjs +4 -2
  7. package/dist/tsup/actor/errors.cjs.map +1 -1
  8. package/dist/tsup/actor/errors.d.cts +1 -74
  9. package/dist/tsup/actor/errors.d.ts +1 -74
  10. package/dist/tsup/actor/errors.js +3 -1
  11. package/dist/tsup/agent-os/index.cjs +1 -1
  12. package/dist/tsup/agent-os/index.cjs.map +1 -1
  13. package/dist/tsup/agent-os/index.d.cts +18 -7
  14. package/dist/tsup/agent-os/index.d.ts +18 -7
  15. package/dist/tsup/agent-os/index.js +1 -1
  16. package/dist/tsup/agent-os/index.js.map +1 -1
  17. package/dist/tsup/{chunk-2GANBXVP.cjs → chunk-2G64KSZQ.cjs} +10 -10
  18. package/dist/tsup/{chunk-2GANBXVP.cjs.map → chunk-2G64KSZQ.cjs.map} +1 -1
  19. package/dist/tsup/{chunk-N2DQSJIW.js → chunk-6S25NVAP.js} +13 -46
  20. package/dist/tsup/chunk-6S25NVAP.js.map +1 -0
  21. package/dist/tsup/{chunk-NATOT3ET.js → chunk-CAF6JDJE.js} +4 -4
  22. package/dist/tsup/{chunk-PGYEMIOE.js → chunk-DEO7MMWQ.js} +2 -2
  23. package/dist/tsup/{chunk-SULB574D.js → chunk-EMO6E3PJ.js} +3 -3
  24. package/dist/tsup/{chunk-FTZIZ3JG.cjs → chunk-ENK7C66G.cjs} +838 -236
  25. package/dist/tsup/chunk-ENK7C66G.cjs.map +1 -0
  26. package/dist/tsup/{chunk-JY73X7VU.js → chunk-FLODVLYW.js} +690 -88
  27. package/dist/tsup/chunk-FLODVLYW.js.map +1 -0
  28. package/dist/tsup/{chunk-OVJX4IFY.cjs → chunk-HTR4YLNT.cjs} +4 -4
  29. package/dist/tsup/{chunk-OVJX4IFY.cjs.map → chunk-HTR4YLNT.cjs.map} +1 -1
  30. package/dist/tsup/{chunk-LELRJK66.cjs → chunk-JALSAX7Z.cjs} +3 -3
  31. package/dist/tsup/{chunk-LELRJK66.cjs.map → chunk-JALSAX7Z.cjs.map} +1 -1
  32. package/dist/tsup/{chunk-JRCZDHXT.cjs → chunk-K5BA2LEO.cjs} +19 -52
  33. package/dist/tsup/chunk-K5BA2LEO.cjs.map +1 -0
  34. package/dist/tsup/{chunk-K34B3OVG.js → chunk-KIWH5H3K.js} +30 -9
  35. package/dist/tsup/chunk-KIWH5H3K.js.map +1 -0
  36. package/dist/tsup/{chunk-NW2J4SOL.cjs → chunk-LIXXFXVR.cjs} +5 -5
  37. package/dist/tsup/{chunk-NW2J4SOL.cjs.map → chunk-LIXXFXVR.cjs.map} +1 -1
  38. package/dist/tsup/{chunk-HR547GVH.cjs → chunk-M5C7YNI5.cjs} +8 -8
  39. package/dist/tsup/{chunk-HR547GVH.cjs.map → chunk-M5C7YNI5.cjs.map} +1 -1
  40. package/dist/tsup/{chunk-V3QNBJ7N.cjs → chunk-QAZLM4WT.cjs} +31 -10
  41. package/dist/tsup/chunk-QAZLM4WT.cjs.map +1 -0
  42. package/dist/tsup/{chunk-LDTT6WKJ.js → chunk-RTC2AZGB.js} +2 -2
  43. package/dist/tsup/{chunk-UXTP4EBU.js → chunk-ZI5QJMKO.js} +2 -2
  44. package/dist/tsup/client/mod.cjs +7 -7
  45. package/dist/tsup/client/mod.d.cts +3 -4
  46. package/dist/tsup/client/mod.d.ts +3 -4
  47. package/dist/tsup/client/mod.js +6 -6
  48. package/dist/tsup/common/log.cjs +3 -3
  49. package/dist/tsup/common/log.js +2 -2
  50. package/dist/tsup/common/websocket.cjs +4 -4
  51. package/dist/tsup/common/websocket.js +3 -3
  52. package/dist/tsup/{config-CvQUtDp9.d.ts → config-0Ta55UV0.d.ts} +10 -9
  53. package/dist/tsup/{config-C-a9vrke.d.cts → config-Ca8dN4cS.d.cts} +10 -9
  54. package/dist/tsup/{context-A7R0bsZL.d.ts → context-B_IWbWne.d.ts} +1 -1
  55. package/dist/tsup/{context-CA3r-pf2.d.cts → context-CUrQ9MHc.d.cts} +1 -1
  56. package/dist/tsup/inspector/mod.cjs +6 -6
  57. package/dist/tsup/inspector/mod.js +5 -5
  58. package/dist/tsup/mod.cjs +252 -207
  59. package/dist/tsup/mod.cjs.map +1 -1
  60. package/dist/tsup/mod.d.cts +4 -5
  61. package/dist/tsup/mod.d.ts +4 -5
  62. package/dist/tsup/mod.js +183 -138
  63. package/dist/tsup/mod.js.map +1 -1
  64. package/dist/tsup/test/mod.cjs +10 -10
  65. package/dist/tsup/test/mod.d.cts +2 -3
  66. package/dist/tsup/test/mod.d.ts +2 -3
  67. package/dist/tsup/test/mod.js +6 -6
  68. package/dist/tsup/utils-DVekpm4I.d.cts +103 -0
  69. package/dist/tsup/utils-DVekpm4I.d.ts +103 -0
  70. package/dist/tsup/utils.cjs +3 -3
  71. package/dist/tsup/utils.d.cts +1 -1
  72. package/dist/tsup/utils.d.ts +1 -1
  73. package/dist/tsup/utils.js +2 -2
  74. package/dist/tsup/workflow/mod.cjs +9 -9
  75. package/dist/tsup/workflow/mod.d.cts +4 -5
  76. package/dist/tsup/workflow/mod.d.ts +4 -5
  77. package/dist/tsup/workflow/mod.js +5 -5
  78. package/package.json +8 -8
  79. package/src/actor/errors.ts +53 -7
  80. package/src/client/actor-conn.ts +52 -29
  81. package/src/client/actor-handle.ts +57 -23
  82. package/src/client/errors.ts +2 -1
  83. package/src/client/raw-utils.ts +2 -4
  84. package/src/client/utils.ts +32 -3
  85. package/src/common/actor-router-consts.ts +4 -0
  86. package/src/common/bare/generated/client-protocol/v4.ts +599 -0
  87. package/src/common/client-protocol-versioned.ts +125 -18
  88. package/src/common/client-protocol-zod.ts +7 -0
  89. package/src/common/client-protocol.ts +1 -1
  90. package/src/common/database/native-database.test.ts +35 -0
  91. package/src/common/database/native-database.ts +8 -4
  92. package/src/common/router.ts +38 -8
  93. package/src/common/utils.ts +9 -52
  94. package/src/drivers/engine/actor-driver.ts +18 -17
  95. package/src/registry/config/index.ts +3 -5
  96. package/src/registry/index.ts +156 -19
  97. package/src/registry/napi-runtime.ts +44 -6
  98. package/src/registry/native.ts +5 -152
  99. package/src/registry/runtime.ts +16 -5
  100. package/src/registry/wasm-runtime.ts +22 -2
  101. package/dist/tsup/chunk-FTZIZ3JG.cjs.map +0 -1
  102. package/dist/tsup/chunk-JRCZDHXT.cjs.map +0 -1
  103. package/dist/tsup/chunk-JY73X7VU.js.map +0 -1
  104. package/dist/tsup/chunk-K34B3OVG.js.map +0 -1
  105. package/dist/tsup/chunk-N2DQSJIW.js.map +0 -1
  106. package/dist/tsup/chunk-V3QNBJ7N.cjs.map +0 -1
  107. package/dist/tsup/utils-fwx3o3K9.d.cts +0 -18
  108. package/dist/tsup/utils-fwx3o3K9.d.ts +0 -18
  109. /package/dist/tsup/{chunk-NATOT3ET.js.map → chunk-CAF6JDJE.js.map} +0 -0
  110. /package/dist/tsup/{chunk-PGYEMIOE.js.map → chunk-DEO7MMWQ.js.map} +0 -0
  111. /package/dist/tsup/{chunk-SULB574D.js.map → chunk-EMO6E3PJ.js.map} +0 -0
  112. /package/dist/tsup/{chunk-LDTT6WKJ.js.map → chunk-RTC2AZGB.js.map} +0 -0
  113. /package/dist/tsup/{chunk-UXTP4EBU.js.map → chunk-ZI5QJMKO.js.map} +0 -0
@@ -12,14 +12,14 @@ import {
12
12
  jsonStringifyCompat,
13
13
  serializeWithEncoding,
14
14
  uint8ArrayToBase64
15
- } from "./chunk-LDTT6WKJ.js";
15
+ } from "./chunk-RTC2AZGB.js";
16
16
  import {
17
17
  AsyncMutex
18
18
  } from "./chunk-PCBNKI2J.js";
19
19
  import {
20
20
  importWebSocket,
21
21
  logger
22
- } from "./chunk-UXTP4EBU.js";
22
+ } from "./chunk-ZI5QJMKO.js";
23
23
  import {
24
24
  assertUnreachable,
25
25
  bufferToArrayBuffer,
@@ -37,13 +37,13 @@ import {
37
37
  noopNext,
38
38
  promiseWithResolvers,
39
39
  stringifyError
40
- } from "./chunk-N2DQSJIW.js";
40
+ } from "./chunk-6S25NVAP.js";
41
41
  import {
42
42
  INTERNAL_ERROR_CODE,
43
43
  RivetError,
44
44
  actorNotFound,
45
45
  invalidRequest
46
- } from "./chunk-K34B3OVG.js";
46
+ } from "./chunk-KIWH5H3K.js";
47
47
 
48
48
  // src/common/actor-router-consts.ts
49
49
  var PATH_CONNECT = "/connect";
@@ -53,6 +53,8 @@ var HEADER_ACTOR_QUERY = "x-rivet-query";
53
53
  var HEADER_ENCODING = "x-rivet-encoding";
54
54
  var HEADER_CONN_PARAMS = "x-rivet-conn-params";
55
55
  var HEADER_ACTOR_ID = "x-rivet-actor";
56
+ var HEADER_ACTOR_GENERATION = "x-rivet-actor-generation";
57
+ var HEADER_ACTOR_KEY = "x-rivet-actor-key";
56
58
  var HEADER_RIVET_TOKEN = "x-rivet-token";
57
59
  var HEADER_RIVET_TARGET = "x-rivet-target";
58
60
  var HEADER_RIVET_ACTOR = "x-rivet-actor";
@@ -73,6 +75,8 @@ var ALLOWED_PUBLIC_HEADERS = [
73
75
  HEADER_ENCODING,
74
76
  HEADER_CONN_PARAMS,
75
77
  HEADER_ACTOR_ID,
78
+ HEADER_ACTOR_GENERATION,
79
+ HEADER_ACTOR_KEY,
76
80
  HEADER_RIVET_TARGET,
77
81
  HEADER_RIVET_ACTOR,
78
82
  HEADER_RIVET_NAMESPACE,
@@ -1180,8 +1184,440 @@ function decodeHttpResolveResponse3(bytes) {
1180
1184
  return result;
1181
1185
  }
1182
1186
 
1187
+ // src/common/bare/generated/client-protocol/v4.ts
1188
+ import * as bare4 from "@rivetkit/bare-ts";
1189
+ var DEFAULT_CONFIG4 = /* @__PURE__ */ bare4.Config({});
1190
+ function readCbor4(bc) {
1191
+ return bare4.readData(bc);
1192
+ }
1193
+ function writeCbor4(bc, x) {
1194
+ bare4.writeData(bc, x);
1195
+ }
1196
+ function read04(bc) {
1197
+ return bare4.readBool(bc) ? bare4.readString(bc) : null;
1198
+ }
1199
+ function write04(bc, x) {
1200
+ bare4.writeBool(bc, x != null);
1201
+ if (x != null) {
1202
+ bare4.writeString(bc, x);
1203
+ }
1204
+ }
1205
+ function readActorSpecifier(bc) {
1206
+ return {
1207
+ actorId: bare4.readString(bc),
1208
+ generation: bare4.readUint(bc),
1209
+ key: read04(bc)
1210
+ };
1211
+ }
1212
+ function writeActorSpecifier(bc, x) {
1213
+ bare4.writeString(bc, x.actorId);
1214
+ bare4.writeUint(bc, x.generation);
1215
+ write04(bc, x.key);
1216
+ }
1217
+ function readInit4(bc) {
1218
+ return {
1219
+ actorId: bare4.readString(bc),
1220
+ connectionId: bare4.readString(bc)
1221
+ };
1222
+ }
1223
+ function writeInit4(bc, x) {
1224
+ bare4.writeString(bc, x.actorId);
1225
+ bare4.writeString(bc, x.connectionId);
1226
+ }
1227
+ function read14(bc) {
1228
+ return bare4.readBool(bc) ? readCbor4(bc) : null;
1229
+ }
1230
+ function write14(bc, x) {
1231
+ bare4.writeBool(bc, x != null);
1232
+ if (x != null) {
1233
+ writeCbor4(bc, x);
1234
+ }
1235
+ }
1236
+ function read22(bc) {
1237
+ return bare4.readBool(bc) ? bare4.readUint(bc) : null;
1238
+ }
1239
+ function write22(bc, x) {
1240
+ bare4.writeBool(bc, x != null);
1241
+ if (x != null) {
1242
+ bare4.writeUint(bc, x);
1243
+ }
1244
+ }
1245
+ function read32(bc) {
1246
+ return bare4.readBool(bc) ? readActorSpecifier(bc) : null;
1247
+ }
1248
+ function write32(bc, x) {
1249
+ bare4.writeBool(bc, x != null);
1250
+ if (x != null) {
1251
+ writeActorSpecifier(bc, x);
1252
+ }
1253
+ }
1254
+ function readError4(bc) {
1255
+ return {
1256
+ group: bare4.readString(bc),
1257
+ code: bare4.readString(bc),
1258
+ message: bare4.readString(bc),
1259
+ metadata: read14(bc),
1260
+ actionId: read22(bc),
1261
+ actor: read32(bc)
1262
+ };
1263
+ }
1264
+ function writeError4(bc, x) {
1265
+ bare4.writeString(bc, x.group);
1266
+ bare4.writeString(bc, x.code);
1267
+ bare4.writeString(bc, x.message);
1268
+ write14(bc, x.metadata);
1269
+ write22(bc, x.actionId);
1270
+ write32(bc, x.actor);
1271
+ }
1272
+ function readActionResponse4(bc) {
1273
+ return {
1274
+ id: bare4.readUint(bc),
1275
+ output: readCbor4(bc)
1276
+ };
1277
+ }
1278
+ function writeActionResponse4(bc, x) {
1279
+ bare4.writeUint(bc, x.id);
1280
+ writeCbor4(bc, x.output);
1281
+ }
1282
+ function readEvent4(bc) {
1283
+ return {
1284
+ name: bare4.readString(bc),
1285
+ args: readCbor4(bc)
1286
+ };
1287
+ }
1288
+ function writeEvent4(bc, x) {
1289
+ bare4.writeString(bc, x.name);
1290
+ writeCbor4(bc, x.args);
1291
+ }
1292
+ function readToClientBody4(bc) {
1293
+ const offset = bc.offset;
1294
+ const tag = bare4.readU8(bc);
1295
+ switch (tag) {
1296
+ case 0:
1297
+ return { tag: "Init", val: readInit4(bc) };
1298
+ case 1:
1299
+ return { tag: "Error", val: readError4(bc) };
1300
+ case 2:
1301
+ return { tag: "ActionResponse", val: readActionResponse4(bc) };
1302
+ case 3:
1303
+ return { tag: "Event", val: readEvent4(bc) };
1304
+ default: {
1305
+ bc.offset = offset;
1306
+ throw new bare4.BareError(offset, "invalid tag");
1307
+ }
1308
+ }
1309
+ }
1310
+ function writeToClientBody4(bc, x) {
1311
+ switch (x.tag) {
1312
+ case "Init": {
1313
+ bare4.writeU8(bc, 0);
1314
+ writeInit4(bc, x.val);
1315
+ break;
1316
+ }
1317
+ case "Error": {
1318
+ bare4.writeU8(bc, 1);
1319
+ writeError4(bc, x.val);
1320
+ break;
1321
+ }
1322
+ case "ActionResponse": {
1323
+ bare4.writeU8(bc, 2);
1324
+ writeActionResponse4(bc, x.val);
1325
+ break;
1326
+ }
1327
+ case "Event": {
1328
+ bare4.writeU8(bc, 3);
1329
+ writeEvent4(bc, x.val);
1330
+ break;
1331
+ }
1332
+ }
1333
+ }
1334
+ function readToClient4(bc) {
1335
+ return {
1336
+ body: readToClientBody4(bc)
1337
+ };
1338
+ }
1339
+ function writeToClient4(bc, x) {
1340
+ writeToClientBody4(bc, x.body);
1341
+ }
1342
+ function encodeToClient4(x, config) {
1343
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1344
+ const bc = new bare4.ByteCursor(
1345
+ new Uint8Array(fullConfig.initialBufferLength),
1346
+ fullConfig
1347
+ );
1348
+ writeToClient4(bc, x);
1349
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1350
+ }
1351
+ function decodeToClient4(bytes) {
1352
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1353
+ const result = readToClient4(bc);
1354
+ if (bc.offset < bc.view.byteLength) {
1355
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1356
+ }
1357
+ return result;
1358
+ }
1359
+ function readActionRequest4(bc) {
1360
+ return {
1361
+ id: bare4.readUint(bc),
1362
+ name: bare4.readString(bc),
1363
+ args: readCbor4(bc)
1364
+ };
1365
+ }
1366
+ function writeActionRequest4(bc, x) {
1367
+ bare4.writeUint(bc, x.id);
1368
+ bare4.writeString(bc, x.name);
1369
+ writeCbor4(bc, x.args);
1370
+ }
1371
+ function readSubscriptionRequest4(bc) {
1372
+ return {
1373
+ eventName: bare4.readString(bc),
1374
+ subscribe: bare4.readBool(bc)
1375
+ };
1376
+ }
1377
+ function writeSubscriptionRequest4(bc, x) {
1378
+ bare4.writeString(bc, x.eventName);
1379
+ bare4.writeBool(bc, x.subscribe);
1380
+ }
1381
+ function readToServerBody4(bc) {
1382
+ const offset = bc.offset;
1383
+ const tag = bare4.readU8(bc);
1384
+ switch (tag) {
1385
+ case 0:
1386
+ return { tag: "ActionRequest", val: readActionRequest4(bc) };
1387
+ case 1:
1388
+ return { tag: "SubscriptionRequest", val: readSubscriptionRequest4(bc) };
1389
+ default: {
1390
+ bc.offset = offset;
1391
+ throw new bare4.BareError(offset, "invalid tag");
1392
+ }
1393
+ }
1394
+ }
1395
+ function writeToServerBody4(bc, x) {
1396
+ switch (x.tag) {
1397
+ case "ActionRequest": {
1398
+ bare4.writeU8(bc, 0);
1399
+ writeActionRequest4(bc, x.val);
1400
+ break;
1401
+ }
1402
+ case "SubscriptionRequest": {
1403
+ bare4.writeU8(bc, 1);
1404
+ writeSubscriptionRequest4(bc, x.val);
1405
+ break;
1406
+ }
1407
+ }
1408
+ }
1409
+ function readToServer4(bc) {
1410
+ return {
1411
+ body: readToServerBody4(bc)
1412
+ };
1413
+ }
1414
+ function writeToServer4(bc, x) {
1415
+ writeToServerBody4(bc, x.body);
1416
+ }
1417
+ function encodeToServer4(x, config) {
1418
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1419
+ const bc = new bare4.ByteCursor(
1420
+ new Uint8Array(fullConfig.initialBufferLength),
1421
+ fullConfig
1422
+ );
1423
+ writeToServer4(bc, x);
1424
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1425
+ }
1426
+ function decodeToServer4(bytes) {
1427
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1428
+ const result = readToServer4(bc);
1429
+ if (bc.offset < bc.view.byteLength) {
1430
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1431
+ }
1432
+ return result;
1433
+ }
1434
+ function readHttpActionRequest4(bc) {
1435
+ return {
1436
+ args: readCbor4(bc)
1437
+ };
1438
+ }
1439
+ function writeHttpActionRequest4(bc, x) {
1440
+ writeCbor4(bc, x.args);
1441
+ }
1442
+ function encodeHttpActionRequest4(x, config) {
1443
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1444
+ const bc = new bare4.ByteCursor(
1445
+ new Uint8Array(fullConfig.initialBufferLength),
1446
+ fullConfig
1447
+ );
1448
+ writeHttpActionRequest4(bc, x);
1449
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1450
+ }
1451
+ function decodeHttpActionRequest4(bytes) {
1452
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1453
+ const result = readHttpActionRequest4(bc);
1454
+ if (bc.offset < bc.view.byteLength) {
1455
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1456
+ }
1457
+ return result;
1458
+ }
1459
+ function readHttpActionResponse4(bc) {
1460
+ return {
1461
+ output: readCbor4(bc)
1462
+ };
1463
+ }
1464
+ function writeHttpActionResponse4(bc, x) {
1465
+ writeCbor4(bc, x.output);
1466
+ }
1467
+ function encodeHttpActionResponse4(x, config) {
1468
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1469
+ const bc = new bare4.ByteCursor(
1470
+ new Uint8Array(fullConfig.initialBufferLength),
1471
+ fullConfig
1472
+ );
1473
+ writeHttpActionResponse4(bc, x);
1474
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1475
+ }
1476
+ function decodeHttpActionResponse4(bytes) {
1477
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1478
+ const result = readHttpActionResponse4(bc);
1479
+ if (bc.offset < bc.view.byteLength) {
1480
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1481
+ }
1482
+ return result;
1483
+ }
1484
+ function read42(bc) {
1485
+ return bare4.readBool(bc) ? bare4.readBool(bc) : null;
1486
+ }
1487
+ function write42(bc, x) {
1488
+ bare4.writeBool(bc, x != null);
1489
+ if (x != null) {
1490
+ bare4.writeBool(bc, x);
1491
+ }
1492
+ }
1493
+ function read5(bc) {
1494
+ return bare4.readBool(bc) ? bare4.readU64(bc) : null;
1495
+ }
1496
+ function write5(bc, x) {
1497
+ bare4.writeBool(bc, x != null);
1498
+ if (x != null) {
1499
+ bare4.writeU64(bc, x);
1500
+ }
1501
+ }
1502
+ function readHttpQueueSendRequest2(bc) {
1503
+ return {
1504
+ body: readCbor4(bc),
1505
+ name: read04(bc),
1506
+ wait: read42(bc),
1507
+ timeout: read5(bc)
1508
+ };
1509
+ }
1510
+ function writeHttpQueueSendRequest2(bc, x) {
1511
+ writeCbor4(bc, x.body);
1512
+ write04(bc, x.name);
1513
+ write42(bc, x.wait);
1514
+ write5(bc, x.timeout);
1515
+ }
1516
+ function encodeHttpQueueSendRequest2(x, config) {
1517
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1518
+ const bc = new bare4.ByteCursor(
1519
+ new Uint8Array(fullConfig.initialBufferLength),
1520
+ fullConfig
1521
+ );
1522
+ writeHttpQueueSendRequest2(bc, x);
1523
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1524
+ }
1525
+ function decodeHttpQueueSendRequest2(bytes) {
1526
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1527
+ const result = readHttpQueueSendRequest2(bc);
1528
+ if (bc.offset < bc.view.byteLength) {
1529
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1530
+ }
1531
+ return result;
1532
+ }
1533
+ function readHttpQueueSendResponse2(bc) {
1534
+ return {
1535
+ status: bare4.readString(bc),
1536
+ response: read14(bc)
1537
+ };
1538
+ }
1539
+ function writeHttpQueueSendResponse2(bc, x) {
1540
+ bare4.writeString(bc, x.status);
1541
+ write14(bc, x.response);
1542
+ }
1543
+ function encodeHttpQueueSendResponse2(x, config) {
1544
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1545
+ const bc = new bare4.ByteCursor(
1546
+ new Uint8Array(fullConfig.initialBufferLength),
1547
+ fullConfig
1548
+ );
1549
+ writeHttpQueueSendResponse2(bc, x);
1550
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1551
+ }
1552
+ function decodeHttpQueueSendResponse2(bytes) {
1553
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1554
+ const result = readHttpQueueSendResponse2(bc);
1555
+ if (bc.offset < bc.view.byteLength) {
1556
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1557
+ }
1558
+ return result;
1559
+ }
1560
+ function readHttpResponseError4(bc) {
1561
+ return {
1562
+ group: bare4.readString(bc),
1563
+ code: bare4.readString(bc),
1564
+ message: bare4.readString(bc),
1565
+ metadata: read14(bc),
1566
+ actor: read32(bc)
1567
+ };
1568
+ }
1569
+ function writeHttpResponseError4(bc, x) {
1570
+ bare4.writeString(bc, x.group);
1571
+ bare4.writeString(bc, x.code);
1572
+ bare4.writeString(bc, x.message);
1573
+ write14(bc, x.metadata);
1574
+ write32(bc, x.actor);
1575
+ }
1576
+ function encodeHttpResponseError4(x, config) {
1577
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1578
+ const bc = new bare4.ByteCursor(
1579
+ new Uint8Array(fullConfig.initialBufferLength),
1580
+ fullConfig
1581
+ );
1582
+ writeHttpResponseError4(bc, x);
1583
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1584
+ }
1585
+ function decodeHttpResponseError4(bytes) {
1586
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1587
+ const result = readHttpResponseError4(bc);
1588
+ if (bc.offset < bc.view.byteLength) {
1589
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1590
+ }
1591
+ return result;
1592
+ }
1593
+ function readHttpResolveResponse4(bc) {
1594
+ return {
1595
+ actorId: bare4.readString(bc)
1596
+ };
1597
+ }
1598
+ function writeHttpResolveResponse4(bc, x) {
1599
+ bare4.writeString(bc, x.actorId);
1600
+ }
1601
+ function encodeHttpResolveResponse4(x, config) {
1602
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
1603
+ const bc = new bare4.ByteCursor(
1604
+ new Uint8Array(fullConfig.initialBufferLength),
1605
+ fullConfig
1606
+ );
1607
+ writeHttpResolveResponse4(bc, x);
1608
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
1609
+ }
1610
+ function decodeHttpResolveResponse4(bytes) {
1611
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
1612
+ const result = readHttpResolveResponse4(bc);
1613
+ if (bc.offset < bc.view.byteLength) {
1614
+ throw new bare4.BareError(bc.offset, "remaining bytes");
1615
+ }
1616
+ return result;
1617
+ }
1618
+
1183
1619
  // src/common/client-protocol-versioned.ts
1184
- var CURRENT_VERSION = 3;
1620
+ var CURRENT_VERSION = 4;
1185
1621
  var v1ToV2 = (v1Data) => {
1186
1622
  if (v1Data.body.tag === "Init") {
1187
1623
  const { actorId, connectionId } = v1Data.body.val;
@@ -1217,6 +1653,32 @@ var v2ToV1 = (v2Data) => {
1217
1653
  var v2ToV3 = (v2Data) => {
1218
1654
  return v2Data;
1219
1655
  };
1656
+ var v3ToV4 = (v3Data) => {
1657
+ if (v3Data.body.tag === "Error") {
1658
+ return {
1659
+ body: {
1660
+ tag: "Error",
1661
+ val: {
1662
+ ...v3Data.body.val,
1663
+ actor: null
1664
+ }
1665
+ }
1666
+ };
1667
+ }
1668
+ return v3Data;
1669
+ };
1670
+ var v4ToV3 = (v4Data) => {
1671
+ if (v4Data.body.tag === "Error") {
1672
+ const { actor: _, ...val } = v4Data.body.val;
1673
+ return {
1674
+ body: {
1675
+ tag: "Error",
1676
+ val
1677
+ }
1678
+ };
1679
+ }
1680
+ return v4Data;
1681
+ };
1220
1682
  var v3ToV2 = (v3Data) => {
1221
1683
  return v3Data;
1222
1684
  };
@@ -1226,12 +1688,26 @@ var v1ToServerV2 = (v1Data) => {
1226
1688
  var v2ToServerV3 = (v2Data) => {
1227
1689
  return v2Data;
1228
1690
  };
1691
+ var v3ToServerV4 = (v3Data) => {
1692
+ return v3Data;
1693
+ };
1694
+ var v4ToServerV3 = (v4Data) => {
1695
+ return v4Data;
1696
+ };
1229
1697
  var v3ToServerV2 = (v3Data) => {
1230
1698
  return v3Data;
1231
1699
  };
1232
1700
  var v2ToServerV1 = (v2Data) => {
1233
1701
  return v2Data;
1234
1702
  };
1703
+ var v3HttpResponseErrorToV4 = (v3Data) => ({
1704
+ ...v3Data,
1705
+ actor: null
1706
+ });
1707
+ var v4HttpResponseErrorToV3 = (v4Data) => {
1708
+ const { actor: _, ...rest } = v4Data;
1709
+ return rest;
1710
+ };
1235
1711
  var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
1236
1712
  deserializeVersion: (bytes, version) => {
1237
1713
  switch (version) {
@@ -1241,6 +1717,8 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
1241
1717
  return decodeToServer2(bytes);
1242
1718
  case 3:
1243
1719
  return decodeToServer3(bytes);
1720
+ case 4:
1721
+ return decodeToServer4(bytes);
1244
1722
  default:
1245
1723
  throw new Error(`Unknown version ${version}`);
1246
1724
  }
@@ -1253,12 +1731,14 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
1253
1731
  return encodeToServer2(data);
1254
1732
  case 3:
1255
1733
  return encodeToServer3(data);
1734
+ case 4:
1735
+ return encodeToServer4(data);
1256
1736
  default:
1257
1737
  throw new Error(`Unknown version ${version}`);
1258
1738
  }
1259
1739
  },
1260
- deserializeConverters: () => [v1ToServerV2, v2ToServerV3],
1261
- serializeConverters: () => [v3ToServerV2, v2ToServerV1]
1740
+ deserializeConverters: () => [v1ToServerV2, v2ToServerV3, v3ToServerV4],
1741
+ serializeConverters: () => [v4ToServerV3, v3ToServerV2, v2ToServerV1]
1262
1742
  });
1263
1743
  var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
1264
1744
  deserializeVersion: (bytes, version) => {
@@ -1269,6 +1749,8 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
1269
1749
  return decodeToClient2(bytes);
1270
1750
  case 3:
1271
1751
  return decodeToClient3(bytes);
1752
+ case 4:
1753
+ return decodeToClient4(bytes);
1272
1754
  default:
1273
1755
  throw new Error(`Unknown version ${version}`);
1274
1756
  }
@@ -1281,12 +1763,14 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
1281
1763
  return encodeToClient2(data);
1282
1764
  case 3:
1283
1765
  return encodeToClient3(data);
1766
+ case 4:
1767
+ return encodeToClient4(data);
1284
1768
  default:
1285
1769
  throw new Error(`Unknown version ${version}`);
1286
1770
  }
1287
1771
  },
1288
- deserializeConverters: () => [v1ToV2, v2ToV3],
1289
- serializeConverters: () => [v3ToV2, v2ToV1]
1772
+ deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
1773
+ serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1]
1290
1774
  });
1291
1775
  var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
1292
1776
  deserializeVersion: (bytes, version) => {
@@ -1297,6 +1781,8 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
1297
1781
  return decodeHttpActionRequest2(bytes);
1298
1782
  case 3:
1299
1783
  return decodeHttpActionRequest3(bytes);
1784
+ case 4:
1785
+ return decodeHttpActionRequest4(bytes);
1300
1786
  default:
1301
1787
  throw new Error(`Unknown version ${version}`);
1302
1788
  }
@@ -1315,6 +1801,10 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
1315
1801
  return encodeHttpActionRequest3(
1316
1802
  data
1317
1803
  );
1804
+ case 4:
1805
+ return encodeHttpActionRequest4(
1806
+ data
1807
+ );
1318
1808
  default:
1319
1809
  throw new Error(`Unknown version ${version}`);
1320
1810
  }
@@ -1331,6 +1821,8 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
1331
1821
  return decodeHttpActionResponse2(bytes);
1332
1822
  case 3:
1333
1823
  return decodeHttpActionResponse3(bytes);
1824
+ case 4:
1825
+ return decodeHttpActionResponse4(bytes);
1334
1826
  default:
1335
1827
  throw new Error(`Unknown version ${version}`);
1336
1828
  }
@@ -1349,6 +1841,10 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
1349
1841
  return encodeHttpActionResponse3(
1350
1842
  data
1351
1843
  );
1844
+ case 4:
1845
+ return encodeHttpActionResponse4(
1846
+ data
1847
+ );
1352
1848
  default:
1353
1849
  throw new Error(`Unknown version ${version}`);
1354
1850
  }
@@ -1361,6 +1857,8 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
1361
1857
  switch (version) {
1362
1858
  case 3:
1363
1859
  return decodeHttpQueueSendRequest(bytes);
1860
+ case 4:
1861
+ return decodeHttpQueueSendRequest2(bytes);
1364
1862
  default:
1365
1863
  throw new Error(
1366
1864
  `HttpQueueSendRequest only exists in version 3+, got version ${version}`
@@ -1373,6 +1871,10 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
1373
1871
  return encodeHttpQueueSendRequest(
1374
1872
  data
1375
1873
  );
1874
+ case 4:
1875
+ return encodeHttpQueueSendRequest2(
1876
+ data
1877
+ );
1376
1878
  default:
1377
1879
  throw new Error(
1378
1880
  `HttpQueueSendRequest only exists in version 3+, got version ${version}`
@@ -1387,6 +1889,8 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
1387
1889
  switch (version) {
1388
1890
  case 3:
1389
1891
  return decodeHttpQueueSendResponse(bytes);
1892
+ case 4:
1893
+ return decodeHttpQueueSendResponse2(bytes);
1390
1894
  default:
1391
1895
  throw new Error(
1392
1896
  `HttpQueueSendResponse only exists in version 3+, got version ${version}`
@@ -1399,6 +1903,10 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
1399
1903
  return encodeHttpQueueSendResponse(
1400
1904
  data
1401
1905
  );
1906
+ case 4:
1907
+ return encodeHttpQueueSendResponse2(
1908
+ data
1909
+ );
1402
1910
  default:
1403
1911
  throw new Error(
1404
1912
  `HttpQueueSendResponse only exists in version 3+, got version ${version}`
@@ -1417,6 +1925,8 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
1417
1925
  return decodeHttpResponseError2(bytes);
1418
1926
  case 3:
1419
1927
  return decodeHttpResponseError3(bytes);
1928
+ case 4:
1929
+ return decodeHttpResponseError4(bytes);
1420
1930
  default:
1421
1931
  throw new Error(`Unknown version ${version}`);
1422
1932
  }
@@ -1435,12 +1945,24 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
1435
1945
  return encodeHttpResponseError3(
1436
1946
  data
1437
1947
  );
1948
+ case 4:
1949
+ return encodeHttpResponseError4(
1950
+ data
1951
+ );
1438
1952
  default:
1439
1953
  throw new Error(`Unknown version ${version}`);
1440
1954
  }
1441
1955
  },
1442
- deserializeConverters: () => [],
1443
- serializeConverters: () => []
1956
+ deserializeConverters: () => [
1957
+ (data) => data,
1958
+ (data) => data,
1959
+ v3HttpResponseErrorToV4
1960
+ ],
1961
+ serializeConverters: () => [
1962
+ v4HttpResponseErrorToV3,
1963
+ (data) => data,
1964
+ (data) => data
1965
+ ]
1444
1966
  });
1445
1967
  var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
1446
1968
  deserializeVersion: (bytes, version) => {
@@ -1451,6 +1973,8 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
1451
1973
  return decodeHttpResolveResponse2(bytes);
1452
1974
  case 3:
1453
1975
  return decodeHttpResolveResponse3(bytes);
1976
+ case 4:
1977
+ return decodeHttpResolveResponse4(bytes);
1454
1978
  default:
1455
1979
  throw new Error(`Unknown version ${version}`);
1456
1980
  }
@@ -1469,6 +1993,10 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
1469
1993
  return encodeHttpResolveResponse3(
1470
1994
  data
1471
1995
  );
1996
+ case 4:
1997
+ return encodeHttpResolveResponse4(
1998
+ data
1999
+ );
1472
2000
  default:
1473
2001
  throw new Error(`Unknown version ${version}`);
1474
2002
  }
@@ -1481,6 +2009,11 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
1481
2009
  import { z } from "zod/v4";
1482
2010
  var UintSchema = z.bigint();
1483
2011
  var OptionalUintSchema = UintSchema.nullable();
2012
+ var ActorSpecifierSchema = z.object({
2013
+ actorId: z.string(),
2014
+ generation: z.union([z.number(), z.bigint()]),
2015
+ key: z.string().optional()
2016
+ });
1484
2017
  var InitSchema = z.object({
1485
2018
  actorId: z.string(),
1486
2019
  connectionId: z.string()
@@ -1490,7 +2023,8 @@ var ErrorSchema = z.object({
1490
2023
  code: z.string(),
1491
2024
  message: z.string(),
1492
2025
  metadata: z.unknown().optional(),
1493
- actionId: OptionalUintSchema
2026
+ actionId: OptionalUintSchema,
2027
+ actor: ActorSpecifierSchema.optional()
1494
2028
  });
1495
2029
  var ActionResponseSchema = z.object({
1496
2030
  id: UintSchema,
@@ -1548,7 +2082,8 @@ var HttpResponseErrorSchema = z.object({
1548
2082
  group: z.string(),
1549
2083
  code: z.string(),
1550
2084
  message: z.string(),
1551
- metadata: z.unknown().optional()
2085
+ metadata: z.unknown().optional(),
2086
+ actor: ActorSpecifierSchema.optional()
1552
2087
  });
1553
2088
  var HttpResolveRequestSchema = z.null();
1554
2089
  var HttpResolveResponseSchema = z.object({
@@ -1842,6 +2377,7 @@ function messageLength(message) {
1842
2377
  assertUnreachable(message);
1843
2378
  }
1844
2379
  async function sendHttpRequest(opts) {
2380
+ var _a, _b, _c;
1845
2381
  logger().debug({
1846
2382
  msg: "sending http request",
1847
2383
  url: opts.url,
@@ -1895,21 +2431,45 @@ async function sendHttpRequest(opts) {
1895
2431
  new Uint8Array(bufferResponse),
1896
2432
  HTTP_RESPONSE_ERROR_VERSIONED,
1897
2433
  HttpResponseErrorSchema,
1898
- // JSON: metadata is already unknown
1899
- (json) => json,
2434
+ // JSON/CBOR: normalize actor generation to the public number shape.
2435
+ (json) => ({
2436
+ ...json,
2437
+ actor: json.actor ? {
2438
+ ...json.actor,
2439
+ generation: Number(json.actor.generation)
2440
+ } : void 0
2441
+ }),
1900
2442
  // BARE: decode ArrayBuffer metadata to unknown
1901
- (bare4) => ({
1902
- group: bare4.group,
1903
- code: bare4.code,
1904
- message: bare4.message,
1905
- metadata: bare4.metadata ? decodeCborCompat(new Uint8Array(bare4.metadata)) : void 0
2443
+ (bare5) => ({
2444
+ group: bare5.group,
2445
+ code: bare5.code,
2446
+ message: bare5.message,
2447
+ metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
2448
+ actor: bare5.actor ? {
2449
+ actorId: bare5.actor.actorId,
2450
+ generation: Number(bare5.actor.generation),
2451
+ key: bare5.actor.key ?? void 0
2452
+ } : void 0
1906
2453
  })
1907
2454
  );
2455
+ logger().warn({
2456
+ msg: "http error response",
2457
+ group: responseData.group,
2458
+ code: responseData.code,
2459
+ message: responseData.message,
2460
+ metadata: responseData.metadata,
2461
+ actorId: (_a = responseData.actor) == null ? void 0 : _a.actorId,
2462
+ generation: (_b = responseData.actor) == null ? void 0 : _b.generation,
2463
+ actorKey: (_c = responseData.actor) == null ? void 0 : _c.key
2464
+ });
1908
2465
  throw new RivetError(
1909
2466
  responseData.group,
1910
2467
  responseData.code,
1911
2468
  responseData.message,
1912
- responseData.metadata
2469
+ {
2470
+ metadata: responseData.metadata,
2471
+ actor: responseData.actor
2472
+ }
1913
2473
  );
1914
2474
  } catch (error) {
1915
2475
  if (error instanceof RivetError) {
@@ -1996,13 +2556,13 @@ function createQueueSender(senderOptions) {
1996
2556
  response: json.response
1997
2557
  };
1998
2558
  },
1999
- responseFromBare: (bare4) => {
2000
- if (bare4.response === null || bare4.response === void 0) {
2001
- return { status: bare4.status };
2559
+ responseFromBare: (bare5) => {
2560
+ if (bare5.response === null || bare5.response === void 0) {
2561
+ return { status: bare5.status };
2002
2562
  }
2003
2563
  return {
2004
- status: bare4.status,
2005
- response: decodeCborCompat(new Uint8Array(bare4.response))
2564
+ status: bare5.status,
2565
+ response: decodeCborCompat(new Uint8Array(bare5.response))
2006
2566
  };
2007
2567
  }
2008
2568
  });
@@ -2077,13 +2637,11 @@ async function rawHttpFetch(driver, target, params, input, init, options = {}) {
2077
2637
  });
2078
2638
  return driver.sendRequest(target, proxyRequest, options);
2079
2639
  } catch (err) {
2080
- const { group, code, message, metadata } = deconstructError(
2640
+ const { group, code, message, metadata, actor } = deconstructError(
2081
2641
  err,
2082
- logger(),
2083
- {},
2084
2642
  true
2085
2643
  );
2086
- throw new RivetError(group, code, message, metadata);
2644
+ throw new RivetError(group, code, message, { metadata, actor });
2087
2645
  }
2088
2646
  }
2089
2647
  async function rawWebSocket(driver, target, params, path, _protocols, options = {}) {
@@ -2204,7 +2762,13 @@ var ActorHandleRaw = class {
2204
2762
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
2205
2763
  let actorId;
2206
2764
  try {
2207
- const target = await this.#resolveActionTarget(useQueryTarget);
2765
+ const gatewayOptions = resolveActorGatewayOptions(
2766
+ this.#gatewayOptions
2767
+ );
2768
+ const target = await this.#resolveGatewayRequestTarget(
2769
+ useQueryTarget,
2770
+ gatewayOptions
2771
+ );
2208
2772
  actorId = "directId" in target ? target.directId : void 0;
2209
2773
  return await createQueueSender({
2210
2774
  encoding: this.#encoding,
@@ -2213,17 +2777,13 @@ var ActorHandleRaw = class {
2213
2777
  return await this.#driver.sendRequest(
2214
2778
  target,
2215
2779
  request,
2216
- resolveActorGatewayOptions(
2217
- this.#gatewayOptions
2218
- )
2780
+ gatewayOptions
2219
2781
  );
2220
2782
  }
2221
2783
  }).send(name, body, options);
2222
2784
  } catch (err) {
2223
- const { group, code, message, metadata } = deconstructError(
2785
+ const { group, code, message, metadata, actor } = deconstructError(
2224
2786
  err,
2225
- logger(),
2226
- {},
2227
2787
  true
2228
2788
  );
2229
2789
  if (this.#shouldRetryQueueDispatchOverload(
@@ -2266,7 +2826,7 @@ var ActorHandleRaw = class {
2266
2826
  }
2267
2827
  continue;
2268
2828
  }
2269
- throw new RivetError(group, code, message, metadata);
2829
+ throw new RivetError(group, code, message, { metadata, actor });
2270
2830
  }
2271
2831
  }
2272
2832
  throw new Error("unreachable queue retry state");
@@ -2301,7 +2861,10 @@ var ActorHandleRaw = class {
2301
2861
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
2302
2862
  let actorId;
2303
2863
  try {
2304
- const target = await this.#resolveActionTarget(useQueryTarget);
2864
+ const target = await this.#resolveGatewayRequestTarget(
2865
+ useQueryTarget,
2866
+ gatewayOptions
2867
+ );
2305
2868
  actorId = "directId" in target ? target.directId : void 0;
2306
2869
  logger().debug(
2307
2870
  actorId ? { msg: "using direct actor gateway target", actorId } : {
@@ -2346,17 +2909,15 @@ var ActorHandleRaw = class {
2346
2909
  args: bufferToArrayBuffer(encodeCborCompat(args))
2347
2910
  }),
2348
2911
  responseFromJson: (json) => json.output,
2349
- responseFromBare: (bare4) => decodeCborCompat(new Uint8Array(bare4.output))
2912
+ responseFromBare: (bare5) => decodeCborCompat(new Uint8Array(bare5.output))
2350
2913
  });
2351
2914
  if (opts.name === "destroy" && actorId) {
2352
2915
  await this.#waitForDestroyActionToSettle(actorId);
2353
2916
  }
2354
2917
  return output;
2355
2918
  } catch (err) {
2356
- const { group, code, message, metadata } = deconstructError(
2919
+ const { group, code, message, metadata, actor } = deconstructError(
2357
2920
  err,
2358
- logger(),
2359
- {},
2360
2921
  true
2361
2922
  );
2362
2923
  if (await this.#shouldRetrySchedulingError(
@@ -2386,7 +2947,7 @@ var ActorHandleRaw = class {
2386
2947
  "actor",
2387
2948
  "not_found",
2388
2949
  "The actor does not exist or was destroyed.",
2389
- metadata
2950
+ { metadata, actor }
2390
2951
  );
2391
2952
  }
2392
2953
  const invalidated = this.#invalidateResolvedActorId(group, code);
@@ -2397,7 +2958,7 @@ var ActorHandleRaw = class {
2397
2958
  }
2398
2959
  continue;
2399
2960
  }
2400
- throw new RivetError(group, code, message, metadata);
2961
+ throw new RivetError(group, code, message, { metadata, actor });
2401
2962
  }
2402
2963
  }
2403
2964
  throw new Error("unreachable action retry state");
@@ -2490,6 +3051,12 @@ var ActorHandleRaw = class {
2490
3051
  this.#resolvingActorId = void 0;
2491
3052
  }
2492
3053
  }
3054
+ async #resolveGatewayRequestTarget(useQueryTarget, gatewayOptions) {
3055
+ if (gatewayOptions.skipReadyWait) {
3056
+ return getGatewayTarget(this.#actorResolutionState);
3057
+ }
3058
+ return await this.#resolveActionTarget(useQueryTarget);
3059
+ }
2493
3060
  /**
2494
3061
  * Establishes a persistent connection to the actor.
2495
3062
  *
@@ -2536,7 +3103,10 @@ var ActorHandleRaw = class {
2536
3103
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
2537
3104
  let actorId;
2538
3105
  try {
2539
- const target = await this.#resolveActionTarget(useQueryTarget);
3106
+ const target = await this.#resolveGatewayRequestTarget(
3107
+ useQueryTarget,
3108
+ gatewayOptions
3109
+ );
2540
3110
  actorId = "directId" in target ? target.directId : void 0;
2541
3111
  const response = await rawHttpFetch(
2542
3112
  this.#driver,
@@ -2561,10 +3131,8 @@ var ActorHandleRaw = class {
2561
3131
  }
2562
3132
  return response;
2563
3133
  } catch (err) {
2564
- const { group, code, message, metadata } = deconstructError(
3134
+ const { group, code, message, metadata, actor } = deconstructError(
2565
3135
  err,
2566
- logger(),
2567
- {},
2568
3136
  true
2569
3137
  );
2570
3138
  if (await this.#shouldRetrySchedulingError(
@@ -2597,7 +3165,7 @@ var ActorHandleRaw = class {
2597
3165
  }
2598
3166
  continue;
2599
3167
  }
2600
- throw new RivetError(group, code, message, metadata);
3168
+ throw new RivetError(group, code, message, { metadata, actor });
2601
3169
  }
2602
3170
  }
2603
3171
  throw new Error("unreachable fetch retry state");
@@ -2657,12 +3225,23 @@ var ActorHandleRaw = class {
2657
3225
  new Uint8Array(await response.clone().arrayBuffer()),
2658
3226
  HTTP_RESPONSE_ERROR_VERSIONED,
2659
3227
  HttpResponseErrorSchema,
2660
- (json) => json,
2661
- (bare4) => ({
2662
- group: bare4.group,
2663
- code: bare4.code,
2664
- message: bare4.message,
2665
- metadata: bare4.metadata ? decodeCborCompat(new Uint8Array(bare4.metadata)) : void 0
3228
+ (json) => ({
3229
+ ...json,
3230
+ actor: json.actor ? {
3231
+ ...json.actor,
3232
+ generation: Number(json.actor.generation)
3233
+ } : void 0
3234
+ }),
3235
+ (bare5) => ({
3236
+ group: bare5.group,
3237
+ code: bare5.code,
3238
+ message: bare5.message,
3239
+ metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
3240
+ actor: bare5.actor ? {
3241
+ actorId: bare5.actor.actorId,
3242
+ generation: Number(bare5.actor.generation),
3243
+ key: bare5.actor.key ?? void 0
3244
+ } : void 0
2666
3245
  })
2667
3246
  );
2668
3247
  } catch {
@@ -2678,7 +3257,10 @@ var ActorHandleRaw = class {
2678
3257
  this.#gatewayOptions,
2679
3258
  options
2680
3259
  );
2681
- const target = gatewayOptions.skipReadyWait ? await this.#resolveActionTarget(false) : getGatewayTarget(this.#actorResolutionState);
3260
+ const target = await this.#resolveGatewayRequestTarget(
3261
+ false,
3262
+ gatewayOptions
3263
+ );
2682
3264
  return await rawWebSocket(
2683
3265
  this.#driver,
2684
3266
  target,
@@ -3064,6 +3646,9 @@ var ActorConnRaw = class {
3064
3646
  this.#encoding = encoding;
3065
3647
  this.#actorResolutionState = actorResolutionState;
3066
3648
  this.#gatewayOptions = resolveActorGatewayOptions(gatewayOptions);
3649
+ if ("getForId" in actorResolutionState) {
3650
+ this.#actorId = actorResolutionState.getForId.actorId;
3651
+ }
3067
3652
  this.#readyPromise = promiseWithResolvers(
3068
3653
  (reason) => logger().warn({
3069
3654
  msg: "unhandled ready promise rejection",
@@ -3314,7 +3899,7 @@ var ActorConnRaw = class {
3314
3899
  }
3315
3900
  async #connectWebSocket() {
3316
3901
  const params = await this.#resolveConnectionParams();
3317
- const target = this.#gatewayOptions.skipReadyWait ? await this.#resolveGatewayTargetForSkipReadyWait() : getGatewayTarget(this.#actorResolutionState);
3902
+ const target = getGatewayTarget(this.#actorResolutionState);
3318
3903
  const ws = await this.#driver.openWebSocket(
3319
3904
  PATH_CONNECT,
3320
3905
  target,
@@ -3367,22 +3952,6 @@ var ActorConnRaw = class {
3367
3952
  }
3368
3953
  });
3369
3954
  }
3370
- async #resolveGatewayTargetForSkipReadyWait() {
3371
- if ("getForId" in this.#actorResolutionState) {
3372
- return {
3373
- directId: this.#actorResolutionState.getForId.actorId
3374
- };
3375
- }
3376
- if (this.#actorId) {
3377
- return { directId: this.#actorId };
3378
- }
3379
- return {
3380
- directId: await resolveGatewayTarget(
3381
- this.#driver,
3382
- this.#actorResolutionState
3383
- )
3384
- };
3385
- }
3386
3955
  /** Called by the onopen event from drivers. */
3387
3956
  #handleOnOpen() {
3388
3957
  if (this.#disposed) {
@@ -3462,7 +4031,7 @@ var ActorConnRaw = class {
3462
4031
  });
3463
4032
  this.#handleOnOpen();
3464
4033
  } else if (response.body.tag === "Error") {
3465
- const { group, code, message, metadata, actionId } = response.body.val;
4034
+ const { group, code, message, metadata, actionId, actor } = response.body.val;
3466
4035
  if (actionId !== null) {
3467
4036
  const inFlight = this.#takeActionInFlight(Number(actionId));
3468
4037
  this.#invalidateActorIfStale(group, code);
@@ -3473,10 +4042,16 @@ var ActorConnRaw = class {
3473
4042
  group,
3474
4043
  code,
3475
4044
  message,
3476
- metadata
4045
+ metadata,
4046
+ actorId: actor == null ? void 0 : actor.actorId,
4047
+ generation: actor == null ? void 0 : actor.generation,
4048
+ actorKey: actor == null ? void 0 : actor.key
3477
4049
  });
3478
4050
  inFlight.reject(
3479
- new RivetError(group, code, message, metadata)
4051
+ new RivetError(group, code, message, {
4052
+ metadata,
4053
+ actor
4054
+ })
3480
4055
  );
3481
4056
  } else {
3482
4057
  logger().warn({
@@ -3484,12 +4059,18 @@ var ActorConnRaw = class {
3484
4059
  group,
3485
4060
  code,
3486
4061
  message,
3487
- metadata
4062
+ metadata,
4063
+ actorId: actor == null ? void 0 : actor.actorId,
4064
+ generation: actor == null ? void 0 : actor.generation,
4065
+ actorKey: actor == null ? void 0 : actor.key
3488
4066
  });
3489
4067
  if (this.#shouldReconnectForStaleActor(group, code)) {
3490
4068
  this.#clearResolvedActorIdentity();
3491
4069
  (_a = this.#onOpenPromise) == null ? void 0 : _a.reject(
3492
- new RivetError(group, code, message, metadata)
4070
+ new RivetError(group, code, message, {
4071
+ metadata,
4072
+ actor
4073
+ })
3493
4074
  );
3494
4075
  return;
3495
4076
  }
@@ -3497,7 +4078,7 @@ var ActorConnRaw = class {
3497
4078
  group,
3498
4079
  code,
3499
4080
  message,
3500
- metadata
4081
+ { metadata, actor }
3501
4082
  );
3502
4083
  if (isSchedulingError(group, code) && this.#actorId) {
3503
4084
  const schedulingError = await checkForSchedulingError(
@@ -3963,8 +4544,26 @@ var ActorConnRaw = class {
3963
4544
  buffer,
3964
4545
  CLIENT_PROTOCOL_TO_CLIENT,
3965
4546
  ToClientSchema,
3966
- // JSON: values are already the correct type
3967
- (msg) => msg,
4547
+ // JSON/CBOR: normalize actor generation to the public number shape.
4548
+ (msg) => {
4549
+ if (msg.body.tag !== "Error" || !msg.body.val.actor) {
4550
+ return msg;
4551
+ }
4552
+ return {
4553
+ body: {
4554
+ tag: "Error",
4555
+ val: {
4556
+ ...msg.body.val,
4557
+ actor: {
4558
+ ...msg.body.val.actor,
4559
+ generation: Number(
4560
+ msg.body.val.actor.generation
4561
+ )
4562
+ }
4563
+ }
4564
+ }
4565
+ };
4566
+ },
3968
4567
  // BARE: need to decode ArrayBuffer fields back to unknown
3969
4568
  (msg) => {
3970
4569
  if (msg.body.tag === "Error") {
@@ -3980,7 +4579,14 @@ var ActorConnRaw = class {
3980
4579
  msg.body.val.metadata
3981
4580
  )
3982
4581
  ) : null,
3983
- actionId: msg.body.val.actionId
4582
+ actionId: msg.body.val.actionId,
4583
+ actor: msg.body.val.actor ? {
4584
+ actorId: msg.body.val.actor.actorId,
4585
+ generation: Number(
4586
+ msg.body.val.actor.generation
4587
+ ),
4588
+ key: msg.body.val.actor.key ?? void 0
4589
+ } : void 0
3984
4590
  }
3985
4591
  }
3986
4592
  };
@@ -5250,12 +5856,8 @@ function apiActorToOutput(actor) {
5250
5856
  }
5251
5857
 
5252
5858
  export {
5253
- HEADER_ENCODING,
5254
5859
  HEADER_CONN_PARAMS,
5255
5860
  ALLOWED_PUBLIC_HEADERS,
5256
- CURRENT_VERSION,
5257
- HTTP_RESPONSE_ERROR_VERSIONED,
5258
- HttpResponseErrorSchema,
5259
5861
  ActorClientError,
5260
5862
  ManagerError,
5261
5863
  MalformedResponseMessage,
@@ -5271,4 +5873,4 @@ export {
5271
5873
  updateRunnerConfig,
5272
5874
  RemoteEngineControlClient
5273
5875
  };
5274
- //# sourceMappingURL=chunk-JY73X7VU.js.map
5876
+ //# sourceMappingURL=chunk-FLODVLYW.js.map