rivetkit 2.3.0-rc.5 → 2.3.0-rc.7

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 (142) hide show
  1. package/dist/browser/client.d.ts +35 -3
  2. package/dist/browser/client.js +795 -200
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +4 -3
  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 +7 -5
  12. package/dist/tsup/agent-os/index.cjs.map +1 -1
  13. package/dist/tsup/agent-os/index.d.cts +35 -3
  14. package/dist/tsup/agent-os/index.d.ts +35 -3
  15. package/dist/tsup/agent-os/index.js +7 -5
  16. package/dist/tsup/agent-os/index.js.map +1 -1
  17. package/dist/tsup/{chunk-2GANBXVP.cjs → chunk-2H4ISA4Y.cjs} +10 -10
  18. package/dist/tsup/chunk-2H4ISA4Y.cjs.map +1 -0
  19. package/dist/tsup/{chunk-UXTP4EBU.js → chunk-4DJMFOSU.js} +2 -2
  20. package/dist/tsup/{chunk-LDTT6WKJ.js → chunk-4LTY5TOO.js} +132 -4
  21. package/dist/tsup/chunk-4LTY5TOO.js.map +1 -0
  22. package/dist/tsup/{chunk-PGYEMIOE.js → chunk-52TPEKEC.js} +2 -2
  23. package/dist/tsup/{chunk-OVJX4IFY.cjs → chunk-55E7IR6D.cjs} +4 -4
  24. package/dist/tsup/{chunk-OVJX4IFY.cjs.map → chunk-55E7IR6D.cjs.map} +1 -1
  25. package/dist/tsup/{chunk-V3QNBJ7N.cjs → chunk-63WNTDRC.cjs} +31 -10
  26. package/dist/tsup/chunk-63WNTDRC.cjs.map +1 -0
  27. package/dist/tsup/{chunk-SULB574D.js → chunk-CMV6N5OX.js} +3 -3
  28. package/dist/tsup/{chunk-T6YVRM4K.js → chunk-D5G75T7J.js} +3 -1
  29. package/dist/tsup/chunk-D5G75T7J.js.map +1 -0
  30. package/dist/tsup/{chunk-NW2J4SOL.cjs → chunk-FEOG44WH.cjs} +137 -9
  31. package/dist/tsup/chunk-FEOG44WH.cjs.map +1 -0
  32. package/dist/tsup/{chunk-HR547GVH.cjs → chunk-G5HUSWP4.cjs} +8 -8
  33. package/dist/tsup/{chunk-HR547GVH.cjs.map → chunk-G5HUSWP4.cjs.map} +1 -1
  34. package/dist/tsup/{chunk-N2DQSJIW.js → chunk-HERL2VQ2.js} +17 -48
  35. package/dist/tsup/chunk-HERL2VQ2.js.map +1 -0
  36. package/dist/tsup/{chunk-LELRJK66.cjs → chunk-SJLPZEA3.cjs} +3 -3
  37. package/dist/tsup/{chunk-LELRJK66.cjs.map → chunk-SJLPZEA3.cjs.map} +1 -1
  38. package/dist/tsup/{chunk-WQ4HNA4W.cjs → chunk-SRNOPUC6.cjs} +4 -2
  39. package/dist/tsup/chunk-SRNOPUC6.cjs.map +1 -0
  40. package/dist/tsup/{chunk-K34B3OVG.js → chunk-TMLOKTRB.js} +30 -9
  41. package/dist/tsup/chunk-TMLOKTRB.js.map +1 -0
  42. package/dist/tsup/{chunk-NATOT3ET.js → chunk-VFIY6GWO.js} +4 -4
  43. package/dist/tsup/chunk-VFIY6GWO.js.map +1 -0
  44. package/dist/tsup/{chunk-JY73X7VU.js → chunk-VJ4Y4WBT.js} +692 -114
  45. package/dist/tsup/chunk-VJ4Y4WBT.js.map +1 -0
  46. package/dist/tsup/{chunk-JRCZDHXT.cjs → chunk-X6HIFXNK.cjs} +23 -54
  47. package/dist/tsup/chunk-X6HIFXNK.cjs.map +1 -0
  48. package/dist/tsup/{chunk-FTZIZ3JG.cjs → chunk-ZGPX6KAH.cjs} +838 -260
  49. package/dist/tsup/chunk-ZGPX6KAH.cjs.map +1 -0
  50. package/dist/tsup/client/mod.cjs +7 -7
  51. package/dist/tsup/client/mod.d.cts +3 -4
  52. package/dist/tsup/client/mod.d.ts +3 -4
  53. package/dist/tsup/client/mod.js +6 -6
  54. package/dist/tsup/common/log.cjs +3 -3
  55. package/dist/tsup/common/log.js +2 -2
  56. package/dist/tsup/common/websocket.cjs +4 -4
  57. package/dist/tsup/common/websocket.js +3 -3
  58. package/dist/tsup/{config-CvQUtDp9.d.ts → config-Ak1lv4gF.d.ts} +27 -5
  59. package/dist/tsup/{config-C-a9vrke.d.cts → config-DU_xj4qZ.d.cts} +27 -5
  60. package/dist/tsup/{context-A7R0bsZL.d.ts → context-DAAp4Lpg.d.ts} +1 -1
  61. package/dist/tsup/{context-CA3r-pf2.d.cts → context-Dt_L55q8.d.cts} +1 -1
  62. package/dist/tsup/inspector/mod.cjs +6 -6
  63. package/dist/tsup/inspector/mod.js +5 -5
  64. package/dist/tsup/mod.cjs +507 -308
  65. package/dist/tsup/mod.cjs.map +1 -1
  66. package/dist/tsup/mod.d.cts +4 -5
  67. package/dist/tsup/mod.d.ts +4 -5
  68. package/dist/tsup/mod.js +432 -233
  69. package/dist/tsup/mod.js.map +1 -1
  70. package/dist/tsup/process-metrics-NW754INA.js +118 -0
  71. package/dist/tsup/process-metrics-NW754INA.js.map +1 -0
  72. package/dist/tsup/process-metrics-TYAGKCEJ.cjs +118 -0
  73. package/dist/tsup/process-metrics-TYAGKCEJ.cjs.map +1 -0
  74. package/dist/tsup/test/mod.cjs +10 -10
  75. package/dist/tsup/test/mod.d.cts +2 -3
  76. package/dist/tsup/test/mod.d.ts +2 -3
  77. package/dist/tsup/test/mod.js +6 -6
  78. package/dist/tsup/utils-DVekpm4I.d.cts +103 -0
  79. package/dist/tsup/utils-DVekpm4I.d.ts +103 -0
  80. package/dist/tsup/utils.cjs +3 -3
  81. package/dist/tsup/utils.d.cts +1 -1
  82. package/dist/tsup/utils.d.ts +1 -1
  83. package/dist/tsup/utils.js +2 -2
  84. package/dist/tsup/workflow/mod.cjs +41 -16
  85. package/dist/tsup/workflow/mod.cjs.map +1 -1
  86. package/dist/tsup/workflow/mod.d.cts +4 -5
  87. package/dist/tsup/workflow/mod.d.ts +4 -5
  88. package/dist/tsup/workflow/mod.js +35 -10
  89. package/dist/tsup/workflow/mod.js.map +1 -1
  90. package/package.json +11 -10
  91. package/src/actor/config.ts +3 -0
  92. package/src/actor/errors.ts +53 -7
  93. package/src/agent-os/actor/session.ts +2 -2
  94. package/src/client/actor-conn.ts +55 -60
  95. package/src/client/actor-handle.ts +59 -24
  96. package/src/client/errors.ts +2 -1
  97. package/src/client/queue.ts +2 -1
  98. package/src/client/raw-utils.ts +2 -4
  99. package/src/client/utils.ts +32 -4
  100. package/src/common/actor-router-consts.ts +4 -0
  101. package/src/common/bare/generated/client-protocol/v4.ts +599 -0
  102. package/src/common/client-protocol-versioned.ts +125 -18
  103. package/src/common/client-protocol-zod.ts +7 -0
  104. package/src/common/client-protocol.ts +1 -1
  105. package/src/common/database/native-database.test.ts +35 -0
  106. package/src/common/database/native-database.ts +8 -4
  107. package/src/common/encoding.ts +243 -5
  108. package/src/common/inline-websocket-adapter.ts +12 -12
  109. package/src/common/log.ts +1 -0
  110. package/src/common/router.ts +40 -10
  111. package/src/common/utils.ts +9 -200
  112. package/src/drivers/engine/actor-driver.ts +29 -28
  113. package/src/engine-client/actor-websocket-client.ts +2 -1
  114. package/src/engine-client/mod.ts +3 -2
  115. package/src/registry/config/index.ts +3 -5
  116. package/src/registry/index.ts +90 -16
  117. package/src/registry/napi-runtime.ts +15 -0
  118. package/src/registry/native.ts +197 -255
  119. package/src/registry/process-metrics.ts +183 -0
  120. package/src/registry/runtime.ts +4 -0
  121. package/src/registry/wasm-runtime.ts +9 -0
  122. package/src/registry/write-through-proxy.ts +40 -0
  123. package/src/serde.ts +2 -2
  124. package/src/workflow/context.ts +32 -5
  125. package/src/workflow/inspector.ts +2 -1
  126. package/dist/tsup/chunk-2GANBXVP.cjs.map +0 -1
  127. package/dist/tsup/chunk-FTZIZ3JG.cjs.map +0 -1
  128. package/dist/tsup/chunk-JRCZDHXT.cjs.map +0 -1
  129. package/dist/tsup/chunk-JY73X7VU.js.map +0 -1
  130. package/dist/tsup/chunk-K34B3OVG.js.map +0 -1
  131. package/dist/tsup/chunk-LDTT6WKJ.js.map +0 -1
  132. package/dist/tsup/chunk-N2DQSJIW.js.map +0 -1
  133. package/dist/tsup/chunk-NATOT3ET.js.map +0 -1
  134. package/dist/tsup/chunk-NW2J4SOL.cjs.map +0 -1
  135. package/dist/tsup/chunk-T6YVRM4K.js.map +0 -1
  136. package/dist/tsup/chunk-V3QNBJ7N.cjs.map +0 -1
  137. package/dist/tsup/chunk-WQ4HNA4W.cjs.map +0 -1
  138. package/dist/tsup/utils-fwx3o3K9.d.cts +0 -18
  139. package/dist/tsup/utils-fwx3o3K9.d.ts +0 -18
  140. /package/dist/tsup/{chunk-UXTP4EBU.js.map → chunk-4DJMFOSU.js.map} +0 -0
  141. /package/dist/tsup/{chunk-PGYEMIOE.js.map → chunk-52TPEKEC.js.map} +0 -0
  142. /package/dist/tsup/{chunk-SULB574D.js.map → chunk-CMV6N5OX.js.map} +0 -0
@@ -3,7 +3,7 @@ var INTERNAL_ERROR_CODE = "internal_error";
3
3
  var INTERNAL_ERROR_DESCRIPTION = "An internal error occurred";
4
4
  var USER_ERROR_CODE = "user_error";
5
5
  function looksLikeRivetErrorOptions(value) {
6
- return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "cause" in value);
6
+ return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "actor" in value || "cause" in value);
7
7
  }
8
8
  function isTypedErrorTag(value) {
9
9
  return value === "ActorError" || value === "RivetError";
@@ -22,6 +22,7 @@ var RivetError = class extends Error {
22
22
  public;
23
23
  metadata;
24
24
  statusCode;
25
+ actor;
25
26
  group;
26
27
  code;
27
28
  static isRivetError(error) {
@@ -39,6 +40,7 @@ var RivetError = class extends Error {
39
40
  this.public = normalized.public ?? false;
40
41
  this.metadata = normalized.metadata;
41
42
  this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
43
+ this.actor = normalized.actor;
42
44
  }
43
45
  toString() {
44
46
  return this.message;
@@ -93,13 +95,14 @@ function assertUnreachable(x) {
93
95
  function isCanonicalStructuredRivetError(error) {
94
96
  return error instanceof RivetError || typeof error === "object" && error !== null && "__type" in error && error.__type === "RivetError" && "group" in error && typeof error.group === "string" && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string";
95
97
  }
96
- function deconstructError(error, logger4, extraLog, exposeInternalError = false) {
98
+ function deconstructError(error, exposeInternalError = false) {
97
99
  let statusCode;
98
100
  let public_;
99
101
  let group;
100
102
  let code;
101
103
  let message;
102
104
  let metadata;
105
+ let actor;
103
106
  if (isCanonicalStructuredRivetError(error)) {
104
107
  statusCode = typeof error.statusCode === "number" ? error.statusCode : error.public ? 400 : 500;
105
108
  public_ = error.public ?? false;
@@ -107,14 +110,7 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
107
110
  code = error.code;
108
111
  message = error.message;
109
112
  metadata = error.metadata;
110
- logger4.info({
111
- msg: "structured error passthrough",
112
- group,
113
- code,
114
- message,
115
- ...EXTRA_ERROR_LOG,
116
- ...extraLog
117
- });
113
+ actor = error.actor;
118
114
  } else if (RivetError.isActorError(error) && error.public) {
119
115
  statusCode = "statusCode" in error && error.statusCode ? error.statusCode : 400;
120
116
  public_ = true;
@@ -122,14 +118,7 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
122
118
  code = error.code;
123
119
  message = getErrorMessage(error);
124
120
  metadata = error.metadata;
125
- logger4.info({
126
- msg: "public error",
127
- group,
128
- code,
129
- message,
130
- ...EXTRA_ERROR_LOG,
131
- ...extraLog
132
- });
121
+ actor = error.actor;
133
122
  } else if (exposeInternalError) {
134
123
  if (RivetError.isActorError(error)) {
135
124
  statusCode = 500;
@@ -138,30 +127,13 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
138
127
  code = error.code;
139
128
  message = getErrorMessage(error);
140
129
  metadata = error.metadata;
141
- logger4.info({
142
- msg: "internal error",
143
- group,
144
- code,
145
- message,
146
- stack: error?.stack,
147
- ...EXTRA_ERROR_LOG,
148
- ...extraLog
149
- });
130
+ actor = error.actor;
150
131
  } else {
151
132
  statusCode = 500;
152
133
  public_ = false;
153
134
  group = "rivetkit";
154
135
  code = INTERNAL_ERROR_CODE;
155
136
  message = getErrorMessage(error);
156
- logger4.info({
157
- msg: "internal error",
158
- group,
159
- code,
160
- message,
161
- stack: error?.stack,
162
- ...EXTRA_ERROR_LOG,
163
- ...extraLog
164
- });
165
137
  }
166
138
  } else {
167
139
  statusCode = 500;
@@ -169,16 +141,12 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
169
141
  group = "rivetkit";
170
142
  code = INTERNAL_ERROR_CODE;
171
143
  message = INTERNAL_ERROR_DESCRIPTION;
144
+ if (RivetError.isActorError(error)) {
145
+ actor = error.actor;
146
+ }
172
147
  metadata = {
173
148
  //url: `https://hub.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
174
149
  };
175
- logger4.warn({
176
- msg: "internal error",
177
- error: getErrorMessage(error),
178
- stack: error?.stack,
179
- ...EXTRA_ERROR_LOG,
180
- ...extraLog
181
- });
182
150
  }
183
151
  return {
184
152
  __type: "ActorError",
@@ -187,7 +155,8 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
187
155
  group,
188
156
  code,
189
157
  message,
190
- metadata
158
+ metadata,
159
+ actor
191
160
  };
192
161
  }
193
162
  function stringifyError(error) {
@@ -231,7 +200,7 @@ function noopNext() {
231
200
  // package.json
232
201
  var package_default = {
233
202
  name: "rivetkit",
234
- version: "2.3.0-rc.5",
203
+ version: "2.3.0-rc.7",
235
204
  description: "Lightweight libraries for building stateful actors on edge platforms",
236
205
  license: "Apache-2.0",
237
206
  keywords: [
@@ -399,13 +368,14 @@ var package_default = {
399
368
  "actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts"
400
369
  },
401
370
  dependencies: {
402
- "@rivet-dev/agent-os-core": "^0.1.1",
403
371
  "@hono/node-server": "^1.18.2",
404
372
  "@hono/node-ws": "^1.1.1",
405
373
  "@hono/zod-openapi": "^1.1.5",
374
+ "@rivet-dev/agent-os-core": "^0.1.1",
406
375
  "@rivetkit/bare-ts": "^0.6.2",
407
376
  "@rivetkit/engine-cli": "workspace:*",
408
377
  "@rivetkit/engine-envoy-protocol": "workspace:*",
378
+ "@rivetkit/on-change": "6.0.1",
409
379
  "@rivetkit/rivetkit-napi": "workspace:*",
410
380
  "@rivetkit/rivetkit-wasm": "workspace:*",
411
381
  "@rivetkit/traces": "workspace:*",
@@ -423,10 +393,10 @@ var package_default = {
423
393
  zod: "^4.1.0"
424
394
  },
425
395
  devDependencies: {
396
+ "@biomejs/biome": "^2.3",
426
397
  "@copilotkit/llmock": "^1.6.0",
427
398
  "@rivet-dev/agent-os-common": "*",
428
399
  "@rivet-dev/agent-os-pi": "^0.1.1",
429
- "@biomejs/biome": "^2.3",
430
400
  "@standard-schema/spec": "^1.0.0",
431
401
  "@types/invariant": "^2",
432
402
  "@types/node": "^22.13.1",
@@ -502,6 +472,7 @@ function configureDefaultLogger(logLevel) {
502
472
  messageKey: "msg",
503
473
  // Do not include pid/hostname in output
504
474
  base: {},
475
+ errorKey: "error",
505
476
  // Keep the numeric level so the logfmt sink can match Pino's levels.
506
477
  formatters: {
507
478
  level(_label, number) {
@@ -666,11 +637,6 @@ function combineUrlPath(endpoint, path, queryParams) {
666
637
  const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
667
638
  return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
668
639
  }
669
- var EXTRA_ERROR_LOG = {
670
- issues: "https://github.com/rivet-dev/rivet/issues",
671
- support: "https://rivet.dev/discord",
672
- version: VERSION
673
- };
674
640
 
675
641
  // src/devtools-loader/log.ts
676
642
  function logger() {
@@ -841,6 +807,10 @@ var JSON_COMPAT_BIGINT = "$BigInt";
841
807
  var JSON_COMPAT_ARRAY_BUFFER = "$ArrayBuffer";
842
808
  var JSON_COMPAT_UINT8_ARRAY = "$Uint8Array";
843
809
  var JSON_COMPAT_UNDEFINED = "$Undefined";
810
+ var JSON_COMPAT_SET = "$Set";
811
+ function isTypedArray(value) {
812
+ return value instanceof Uint8ClampedArray || value instanceof Uint16Array || value instanceof Uint32Array || value instanceof BigUint64Array || value instanceof Int8Array || value instanceof Int16Array || value instanceof Int32Array || value instanceof BigInt64Array || value instanceof Float32Array || value instanceof Float64Array;
813
+ }
844
814
  var EncodingSchema = z2.enum(["json", "cbor", "bare"]);
845
815
  async function inputDataToBuffer(data) {
846
816
  if (typeof data === "string") {
@@ -875,9 +845,15 @@ function isPlainObject(value) {
875
845
  return proto === Object.prototype || proto === null;
876
846
  }
877
847
  function encodeJsonCompatValue(input) {
848
+ if (input === null) {
849
+ return input;
850
+ }
878
851
  if (input === void 0) {
879
852
  return [JSON_COMPAT_UNDEFINED, 0];
880
853
  }
854
+ if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
855
+ return input;
856
+ }
881
857
  if (typeof input === "bigint") {
882
858
  return [JSON_COMPAT_BIGINT, input.toString()];
883
859
  }
@@ -887,8 +863,32 @@ function encodeJsonCompatValue(input) {
887
863
  if (input instanceof Uint8Array) {
888
864
  return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(input)];
889
865
  }
866
+ if (isTypedArray(input)) {
867
+ return input;
868
+ }
869
+ if (input instanceof Date || input instanceof RegExp || input instanceof Error) {
870
+ return input;
871
+ }
872
+ if (input instanceof Set) {
873
+ const encoded = [...input.values()].map(
874
+ (v) => encodeJsonCompatValue(v)
875
+ );
876
+ return [JSON_COMPAT_SET, encoded];
877
+ }
878
+ if (input instanceof Map) {
879
+ const encoded = /* @__PURE__ */ new Map();
880
+ for (const [k, v] of input.entries()) {
881
+ encoded.set(
882
+ encodeJsonCompatValue(k),
883
+ encodeJsonCompatValue(v)
884
+ );
885
+ }
886
+ return encoded;
887
+ }
890
888
  if (Array.isArray(input)) {
891
- const encoded = input.map((value) => encodeJsonCompatValue(value));
889
+ const encoded = input.map(
890
+ (value) => encodeJsonCompatValue(value)
891
+ );
892
892
  if (encoded.length === 2 && typeof encoded[0] === "string" && encoded[0].startsWith("$")) {
893
893
  return ["$" + encoded[0], encoded[1]];
894
894
  }
@@ -901,7 +901,10 @@ function encodeJsonCompatValue(input) {
901
901
  }
902
902
  return encoded;
903
903
  }
904
- return input;
904
+ const typeName = typeof input === "object" && input !== null ? input.constructor?.name ?? typeof input : typeof input;
905
+ throw new TypeError(
906
+ `Value of type "${typeName}" is not CBOR serializable`
907
+ );
905
908
  }
906
909
  function reviveJsonCompatValue(input, options = {}) {
907
910
  if (typeof input === "bigint") {
@@ -910,6 +913,16 @@ function reviveJsonCompatValue(input, options = {}) {
910
913
  }
911
914
  return input;
912
915
  }
916
+ if (input instanceof Map) {
917
+ const revived = /* @__PURE__ */ new Map();
918
+ for (const [k, v] of input.entries()) {
919
+ revived.set(
920
+ reviveJsonCompatValue(k, options),
921
+ reviveJsonCompatValue(v, options)
922
+ );
923
+ }
924
+ return revived;
925
+ }
913
926
  if (Array.isArray(input)) {
914
927
  if (input.length === 2 && typeof input[0] === "string" && input[0].startsWith("$")) {
915
928
  if (input[0] === JSON_COMPAT_BIGINT) {
@@ -924,6 +937,12 @@ function reviveJsonCompatValue(input, options = {}) {
924
937
  if (input[0] === JSON_COMPAT_UNDEFINED) {
925
938
  return void 0;
926
939
  }
940
+ if (input[0] === JSON_COMPAT_SET) {
941
+ const items = input[1].map(
942
+ (v) => reviveJsonCompatValue(v, options)
943
+ );
944
+ return new Set(items);
945
+ }
927
946
  if (input[0].startsWith("$$")) {
928
947
  return [
929
948
  input[0].substring(1),
@@ -2694,8 +2713,440 @@ function decodeHttpResolveResponse3(bytes) {
2694
2713
  return result;
2695
2714
  }
2696
2715
 
2716
+ // src/common/bare/generated/client-protocol/v4.ts
2717
+ import * as bare4 from "@rivetkit/bare-ts";
2718
+ var DEFAULT_CONFIG4 = /* @__PURE__ */ bare4.Config({});
2719
+ function readCbor4(bc) {
2720
+ return bare4.readData(bc);
2721
+ }
2722
+ function writeCbor4(bc, x) {
2723
+ bare4.writeData(bc, x);
2724
+ }
2725
+ function read04(bc) {
2726
+ return bare4.readBool(bc) ? bare4.readString(bc) : null;
2727
+ }
2728
+ function write04(bc, x) {
2729
+ bare4.writeBool(bc, x != null);
2730
+ if (x != null) {
2731
+ bare4.writeString(bc, x);
2732
+ }
2733
+ }
2734
+ function readActorSpecifier(bc) {
2735
+ return {
2736
+ actorId: bare4.readString(bc),
2737
+ generation: bare4.readUint(bc),
2738
+ key: read04(bc)
2739
+ };
2740
+ }
2741
+ function writeActorSpecifier(bc, x) {
2742
+ bare4.writeString(bc, x.actorId);
2743
+ bare4.writeUint(bc, x.generation);
2744
+ write04(bc, x.key);
2745
+ }
2746
+ function readInit4(bc) {
2747
+ return {
2748
+ actorId: bare4.readString(bc),
2749
+ connectionId: bare4.readString(bc)
2750
+ };
2751
+ }
2752
+ function writeInit4(bc, x) {
2753
+ bare4.writeString(bc, x.actorId);
2754
+ bare4.writeString(bc, x.connectionId);
2755
+ }
2756
+ function read14(bc) {
2757
+ return bare4.readBool(bc) ? readCbor4(bc) : null;
2758
+ }
2759
+ function write14(bc, x) {
2760
+ bare4.writeBool(bc, x != null);
2761
+ if (x != null) {
2762
+ writeCbor4(bc, x);
2763
+ }
2764
+ }
2765
+ function read22(bc) {
2766
+ return bare4.readBool(bc) ? bare4.readUint(bc) : null;
2767
+ }
2768
+ function write22(bc, x) {
2769
+ bare4.writeBool(bc, x != null);
2770
+ if (x != null) {
2771
+ bare4.writeUint(bc, x);
2772
+ }
2773
+ }
2774
+ function read32(bc) {
2775
+ return bare4.readBool(bc) ? readActorSpecifier(bc) : null;
2776
+ }
2777
+ function write32(bc, x) {
2778
+ bare4.writeBool(bc, x != null);
2779
+ if (x != null) {
2780
+ writeActorSpecifier(bc, x);
2781
+ }
2782
+ }
2783
+ function readError4(bc) {
2784
+ return {
2785
+ group: bare4.readString(bc),
2786
+ code: bare4.readString(bc),
2787
+ message: bare4.readString(bc),
2788
+ metadata: read14(bc),
2789
+ actionId: read22(bc),
2790
+ actor: read32(bc)
2791
+ };
2792
+ }
2793
+ function writeError4(bc, x) {
2794
+ bare4.writeString(bc, x.group);
2795
+ bare4.writeString(bc, x.code);
2796
+ bare4.writeString(bc, x.message);
2797
+ write14(bc, x.metadata);
2798
+ write22(bc, x.actionId);
2799
+ write32(bc, x.actor);
2800
+ }
2801
+ function readActionResponse4(bc) {
2802
+ return {
2803
+ id: bare4.readUint(bc),
2804
+ output: readCbor4(bc)
2805
+ };
2806
+ }
2807
+ function writeActionResponse4(bc, x) {
2808
+ bare4.writeUint(bc, x.id);
2809
+ writeCbor4(bc, x.output);
2810
+ }
2811
+ function readEvent4(bc) {
2812
+ return {
2813
+ name: bare4.readString(bc),
2814
+ args: readCbor4(bc)
2815
+ };
2816
+ }
2817
+ function writeEvent4(bc, x) {
2818
+ bare4.writeString(bc, x.name);
2819
+ writeCbor4(bc, x.args);
2820
+ }
2821
+ function readToClientBody4(bc) {
2822
+ const offset = bc.offset;
2823
+ const tag = bare4.readU8(bc);
2824
+ switch (tag) {
2825
+ case 0:
2826
+ return { tag: "Init", val: readInit4(bc) };
2827
+ case 1:
2828
+ return { tag: "Error", val: readError4(bc) };
2829
+ case 2:
2830
+ return { tag: "ActionResponse", val: readActionResponse4(bc) };
2831
+ case 3:
2832
+ return { tag: "Event", val: readEvent4(bc) };
2833
+ default: {
2834
+ bc.offset = offset;
2835
+ throw new bare4.BareError(offset, "invalid tag");
2836
+ }
2837
+ }
2838
+ }
2839
+ function writeToClientBody4(bc, x) {
2840
+ switch (x.tag) {
2841
+ case "Init": {
2842
+ bare4.writeU8(bc, 0);
2843
+ writeInit4(bc, x.val);
2844
+ break;
2845
+ }
2846
+ case "Error": {
2847
+ bare4.writeU8(bc, 1);
2848
+ writeError4(bc, x.val);
2849
+ break;
2850
+ }
2851
+ case "ActionResponse": {
2852
+ bare4.writeU8(bc, 2);
2853
+ writeActionResponse4(bc, x.val);
2854
+ break;
2855
+ }
2856
+ case "Event": {
2857
+ bare4.writeU8(bc, 3);
2858
+ writeEvent4(bc, x.val);
2859
+ break;
2860
+ }
2861
+ }
2862
+ }
2863
+ function readToClient4(bc) {
2864
+ return {
2865
+ body: readToClientBody4(bc)
2866
+ };
2867
+ }
2868
+ function writeToClient4(bc, x) {
2869
+ writeToClientBody4(bc, x.body);
2870
+ }
2871
+ function encodeToClient4(x, config) {
2872
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
2873
+ const bc = new bare4.ByteCursor(
2874
+ new Uint8Array(fullConfig.initialBufferLength),
2875
+ fullConfig
2876
+ );
2877
+ writeToClient4(bc, x);
2878
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2879
+ }
2880
+ function decodeToClient4(bytes) {
2881
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
2882
+ const result = readToClient4(bc);
2883
+ if (bc.offset < bc.view.byteLength) {
2884
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2885
+ }
2886
+ return result;
2887
+ }
2888
+ function readActionRequest4(bc) {
2889
+ return {
2890
+ id: bare4.readUint(bc),
2891
+ name: bare4.readString(bc),
2892
+ args: readCbor4(bc)
2893
+ };
2894
+ }
2895
+ function writeActionRequest4(bc, x) {
2896
+ bare4.writeUint(bc, x.id);
2897
+ bare4.writeString(bc, x.name);
2898
+ writeCbor4(bc, x.args);
2899
+ }
2900
+ function readSubscriptionRequest4(bc) {
2901
+ return {
2902
+ eventName: bare4.readString(bc),
2903
+ subscribe: bare4.readBool(bc)
2904
+ };
2905
+ }
2906
+ function writeSubscriptionRequest4(bc, x) {
2907
+ bare4.writeString(bc, x.eventName);
2908
+ bare4.writeBool(bc, x.subscribe);
2909
+ }
2910
+ function readToServerBody4(bc) {
2911
+ const offset = bc.offset;
2912
+ const tag = bare4.readU8(bc);
2913
+ switch (tag) {
2914
+ case 0:
2915
+ return { tag: "ActionRequest", val: readActionRequest4(bc) };
2916
+ case 1:
2917
+ return { tag: "SubscriptionRequest", val: readSubscriptionRequest4(bc) };
2918
+ default: {
2919
+ bc.offset = offset;
2920
+ throw new bare4.BareError(offset, "invalid tag");
2921
+ }
2922
+ }
2923
+ }
2924
+ function writeToServerBody4(bc, x) {
2925
+ switch (x.tag) {
2926
+ case "ActionRequest": {
2927
+ bare4.writeU8(bc, 0);
2928
+ writeActionRequest4(bc, x.val);
2929
+ break;
2930
+ }
2931
+ case "SubscriptionRequest": {
2932
+ bare4.writeU8(bc, 1);
2933
+ writeSubscriptionRequest4(bc, x.val);
2934
+ break;
2935
+ }
2936
+ }
2937
+ }
2938
+ function readToServer4(bc) {
2939
+ return {
2940
+ body: readToServerBody4(bc)
2941
+ };
2942
+ }
2943
+ function writeToServer4(bc, x) {
2944
+ writeToServerBody4(bc, x.body);
2945
+ }
2946
+ function encodeToServer4(x, config) {
2947
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
2948
+ const bc = new bare4.ByteCursor(
2949
+ new Uint8Array(fullConfig.initialBufferLength),
2950
+ fullConfig
2951
+ );
2952
+ writeToServer4(bc, x);
2953
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2954
+ }
2955
+ function decodeToServer4(bytes) {
2956
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
2957
+ const result = readToServer4(bc);
2958
+ if (bc.offset < bc.view.byteLength) {
2959
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2960
+ }
2961
+ return result;
2962
+ }
2963
+ function readHttpActionRequest4(bc) {
2964
+ return {
2965
+ args: readCbor4(bc)
2966
+ };
2967
+ }
2968
+ function writeHttpActionRequest4(bc, x) {
2969
+ writeCbor4(bc, x.args);
2970
+ }
2971
+ function encodeHttpActionRequest4(x, config) {
2972
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
2973
+ const bc = new bare4.ByteCursor(
2974
+ new Uint8Array(fullConfig.initialBufferLength),
2975
+ fullConfig
2976
+ );
2977
+ writeHttpActionRequest4(bc, x);
2978
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2979
+ }
2980
+ function decodeHttpActionRequest4(bytes) {
2981
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
2982
+ const result = readHttpActionRequest4(bc);
2983
+ if (bc.offset < bc.view.byteLength) {
2984
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2985
+ }
2986
+ return result;
2987
+ }
2988
+ function readHttpActionResponse4(bc) {
2989
+ return {
2990
+ output: readCbor4(bc)
2991
+ };
2992
+ }
2993
+ function writeHttpActionResponse4(bc, x) {
2994
+ writeCbor4(bc, x.output);
2995
+ }
2996
+ function encodeHttpActionResponse4(x, config) {
2997
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
2998
+ const bc = new bare4.ByteCursor(
2999
+ new Uint8Array(fullConfig.initialBufferLength),
3000
+ fullConfig
3001
+ );
3002
+ writeHttpActionResponse4(bc, x);
3003
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
3004
+ }
3005
+ function decodeHttpActionResponse4(bytes) {
3006
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3007
+ const result = readHttpActionResponse4(bc);
3008
+ if (bc.offset < bc.view.byteLength) {
3009
+ throw new bare4.BareError(bc.offset, "remaining bytes");
3010
+ }
3011
+ return result;
3012
+ }
3013
+ function read42(bc) {
3014
+ return bare4.readBool(bc) ? bare4.readBool(bc) : null;
3015
+ }
3016
+ function write42(bc, x) {
3017
+ bare4.writeBool(bc, x != null);
3018
+ if (x != null) {
3019
+ bare4.writeBool(bc, x);
3020
+ }
3021
+ }
3022
+ function read5(bc) {
3023
+ return bare4.readBool(bc) ? bare4.readU64(bc) : null;
3024
+ }
3025
+ function write5(bc, x) {
3026
+ bare4.writeBool(bc, x != null);
3027
+ if (x != null) {
3028
+ bare4.writeU64(bc, x);
3029
+ }
3030
+ }
3031
+ function readHttpQueueSendRequest2(bc) {
3032
+ return {
3033
+ body: readCbor4(bc),
3034
+ name: read04(bc),
3035
+ wait: read42(bc),
3036
+ timeout: read5(bc)
3037
+ };
3038
+ }
3039
+ function writeHttpQueueSendRequest2(bc, x) {
3040
+ writeCbor4(bc, x.body);
3041
+ write04(bc, x.name);
3042
+ write42(bc, x.wait);
3043
+ write5(bc, x.timeout);
3044
+ }
3045
+ function encodeHttpQueueSendRequest2(x, config) {
3046
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3047
+ const bc = new bare4.ByteCursor(
3048
+ new Uint8Array(fullConfig.initialBufferLength),
3049
+ fullConfig
3050
+ );
3051
+ writeHttpQueueSendRequest2(bc, x);
3052
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
3053
+ }
3054
+ function decodeHttpQueueSendRequest2(bytes) {
3055
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3056
+ const result = readHttpQueueSendRequest2(bc);
3057
+ if (bc.offset < bc.view.byteLength) {
3058
+ throw new bare4.BareError(bc.offset, "remaining bytes");
3059
+ }
3060
+ return result;
3061
+ }
3062
+ function readHttpQueueSendResponse2(bc) {
3063
+ return {
3064
+ status: bare4.readString(bc),
3065
+ response: read14(bc)
3066
+ };
3067
+ }
3068
+ function writeHttpQueueSendResponse2(bc, x) {
3069
+ bare4.writeString(bc, x.status);
3070
+ write14(bc, x.response);
3071
+ }
3072
+ function encodeHttpQueueSendResponse2(x, config) {
3073
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3074
+ const bc = new bare4.ByteCursor(
3075
+ new Uint8Array(fullConfig.initialBufferLength),
3076
+ fullConfig
3077
+ );
3078
+ writeHttpQueueSendResponse2(bc, x);
3079
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
3080
+ }
3081
+ function decodeHttpQueueSendResponse2(bytes) {
3082
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3083
+ const result = readHttpQueueSendResponse2(bc);
3084
+ if (bc.offset < bc.view.byteLength) {
3085
+ throw new bare4.BareError(bc.offset, "remaining bytes");
3086
+ }
3087
+ return result;
3088
+ }
3089
+ function readHttpResponseError4(bc) {
3090
+ return {
3091
+ group: bare4.readString(bc),
3092
+ code: bare4.readString(bc),
3093
+ message: bare4.readString(bc),
3094
+ metadata: read14(bc),
3095
+ actor: read32(bc)
3096
+ };
3097
+ }
3098
+ function writeHttpResponseError4(bc, x) {
3099
+ bare4.writeString(bc, x.group);
3100
+ bare4.writeString(bc, x.code);
3101
+ bare4.writeString(bc, x.message);
3102
+ write14(bc, x.metadata);
3103
+ write32(bc, x.actor);
3104
+ }
3105
+ function encodeHttpResponseError4(x, config) {
3106
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3107
+ const bc = new bare4.ByteCursor(
3108
+ new Uint8Array(fullConfig.initialBufferLength),
3109
+ fullConfig
3110
+ );
3111
+ writeHttpResponseError4(bc, x);
3112
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
3113
+ }
3114
+ function decodeHttpResponseError4(bytes) {
3115
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3116
+ const result = readHttpResponseError4(bc);
3117
+ if (bc.offset < bc.view.byteLength) {
3118
+ throw new bare4.BareError(bc.offset, "remaining bytes");
3119
+ }
3120
+ return result;
3121
+ }
3122
+ function readHttpResolveResponse4(bc) {
3123
+ return {
3124
+ actorId: bare4.readString(bc)
3125
+ };
3126
+ }
3127
+ function writeHttpResolveResponse4(bc, x) {
3128
+ bare4.writeString(bc, x.actorId);
3129
+ }
3130
+ function encodeHttpResolveResponse4(x, config) {
3131
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3132
+ const bc = new bare4.ByteCursor(
3133
+ new Uint8Array(fullConfig.initialBufferLength),
3134
+ fullConfig
3135
+ );
3136
+ writeHttpResolveResponse4(bc, x);
3137
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
3138
+ }
3139
+ function decodeHttpResolveResponse4(bytes) {
3140
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3141
+ const result = readHttpResolveResponse4(bc);
3142
+ if (bc.offset < bc.view.byteLength) {
3143
+ throw new bare4.BareError(bc.offset, "remaining bytes");
3144
+ }
3145
+ return result;
3146
+ }
3147
+
2697
3148
  // src/common/client-protocol-versioned.ts
2698
- var CURRENT_VERSION = 3;
3149
+ var CURRENT_VERSION = 4;
2699
3150
  var v1ToV2 = (v1Data) => {
2700
3151
  if (v1Data.body.tag === "Init") {
2701
3152
  const { actorId, connectionId } = v1Data.body.val;
@@ -2731,6 +3182,32 @@ var v2ToV1 = (v2Data) => {
2731
3182
  var v2ToV3 = (v2Data) => {
2732
3183
  return v2Data;
2733
3184
  };
3185
+ var v3ToV4 = (v3Data) => {
3186
+ if (v3Data.body.tag === "Error") {
3187
+ return {
3188
+ body: {
3189
+ tag: "Error",
3190
+ val: {
3191
+ ...v3Data.body.val,
3192
+ actor: null
3193
+ }
3194
+ }
3195
+ };
3196
+ }
3197
+ return v3Data;
3198
+ };
3199
+ var v4ToV3 = (v4Data) => {
3200
+ if (v4Data.body.tag === "Error") {
3201
+ const { actor: _, ...val } = v4Data.body.val;
3202
+ return {
3203
+ body: {
3204
+ tag: "Error",
3205
+ val
3206
+ }
3207
+ };
3208
+ }
3209
+ return v4Data;
3210
+ };
2734
3211
  var v3ToV2 = (v3Data) => {
2735
3212
  return v3Data;
2736
3213
  };
@@ -2740,12 +3217,26 @@ var v1ToServerV2 = (v1Data) => {
2740
3217
  var v2ToServerV3 = (v2Data) => {
2741
3218
  return v2Data;
2742
3219
  };
3220
+ var v3ToServerV4 = (v3Data) => {
3221
+ return v3Data;
3222
+ };
3223
+ var v4ToServerV3 = (v4Data) => {
3224
+ return v4Data;
3225
+ };
2743
3226
  var v3ToServerV2 = (v3Data) => {
2744
3227
  return v3Data;
2745
3228
  };
2746
3229
  var v2ToServerV1 = (v2Data) => {
2747
3230
  return v2Data;
2748
3231
  };
3232
+ var v3HttpResponseErrorToV4 = (v3Data) => ({
3233
+ ...v3Data,
3234
+ actor: null
3235
+ });
3236
+ var v4HttpResponseErrorToV3 = (v4Data) => {
3237
+ const { actor: _, ...rest } = v4Data;
3238
+ return rest;
3239
+ };
2749
3240
  var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
2750
3241
  deserializeVersion: (bytes, version) => {
2751
3242
  switch (version) {
@@ -2755,6 +3246,8 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
2755
3246
  return decodeToServer2(bytes);
2756
3247
  case 3:
2757
3248
  return decodeToServer3(bytes);
3249
+ case 4:
3250
+ return decodeToServer4(bytes);
2758
3251
  default:
2759
3252
  throw new Error(`Unknown version ${version}`);
2760
3253
  }
@@ -2767,12 +3260,14 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
2767
3260
  return encodeToServer2(data);
2768
3261
  case 3:
2769
3262
  return encodeToServer3(data);
3263
+ case 4:
3264
+ return encodeToServer4(data);
2770
3265
  default:
2771
3266
  throw new Error(`Unknown version ${version}`);
2772
3267
  }
2773
3268
  },
2774
- deserializeConverters: () => [v1ToServerV2, v2ToServerV3],
2775
- serializeConverters: () => [v3ToServerV2, v2ToServerV1]
3269
+ deserializeConverters: () => [v1ToServerV2, v2ToServerV3, v3ToServerV4],
3270
+ serializeConverters: () => [v4ToServerV3, v3ToServerV2, v2ToServerV1]
2776
3271
  });
2777
3272
  var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
2778
3273
  deserializeVersion: (bytes, version) => {
@@ -2783,6 +3278,8 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
2783
3278
  return decodeToClient2(bytes);
2784
3279
  case 3:
2785
3280
  return decodeToClient3(bytes);
3281
+ case 4:
3282
+ return decodeToClient4(bytes);
2786
3283
  default:
2787
3284
  throw new Error(`Unknown version ${version}`);
2788
3285
  }
@@ -2795,12 +3292,14 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
2795
3292
  return encodeToClient2(data);
2796
3293
  case 3:
2797
3294
  return encodeToClient3(data);
3295
+ case 4:
3296
+ return encodeToClient4(data);
2798
3297
  default:
2799
3298
  throw new Error(`Unknown version ${version}`);
2800
3299
  }
2801
3300
  },
2802
- deserializeConverters: () => [v1ToV2, v2ToV3],
2803
- serializeConverters: () => [v3ToV2, v2ToV1]
3301
+ deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
3302
+ serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1]
2804
3303
  });
2805
3304
  var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
2806
3305
  deserializeVersion: (bytes, version) => {
@@ -2811,6 +3310,8 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
2811
3310
  return decodeHttpActionRequest2(bytes);
2812
3311
  case 3:
2813
3312
  return decodeHttpActionRequest3(bytes);
3313
+ case 4:
3314
+ return decodeHttpActionRequest4(bytes);
2814
3315
  default:
2815
3316
  throw new Error(`Unknown version ${version}`);
2816
3317
  }
@@ -2829,6 +3330,10 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
2829
3330
  return encodeHttpActionRequest3(
2830
3331
  data
2831
3332
  );
3333
+ case 4:
3334
+ return encodeHttpActionRequest4(
3335
+ data
3336
+ );
2832
3337
  default:
2833
3338
  throw new Error(`Unknown version ${version}`);
2834
3339
  }
@@ -2845,6 +3350,8 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
2845
3350
  return decodeHttpActionResponse2(bytes);
2846
3351
  case 3:
2847
3352
  return decodeHttpActionResponse3(bytes);
3353
+ case 4:
3354
+ return decodeHttpActionResponse4(bytes);
2848
3355
  default:
2849
3356
  throw new Error(`Unknown version ${version}`);
2850
3357
  }
@@ -2863,6 +3370,10 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
2863
3370
  return encodeHttpActionResponse3(
2864
3371
  data
2865
3372
  );
3373
+ case 4:
3374
+ return encodeHttpActionResponse4(
3375
+ data
3376
+ );
2866
3377
  default:
2867
3378
  throw new Error(`Unknown version ${version}`);
2868
3379
  }
@@ -2875,6 +3386,8 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
2875
3386
  switch (version) {
2876
3387
  case 3:
2877
3388
  return decodeHttpQueueSendRequest(bytes);
3389
+ case 4:
3390
+ return decodeHttpQueueSendRequest2(bytes);
2878
3391
  default:
2879
3392
  throw new Error(
2880
3393
  `HttpQueueSendRequest only exists in version 3+, got version ${version}`
@@ -2887,6 +3400,10 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
2887
3400
  return encodeHttpQueueSendRequest(
2888
3401
  data
2889
3402
  );
3403
+ case 4:
3404
+ return encodeHttpQueueSendRequest2(
3405
+ data
3406
+ );
2890
3407
  default:
2891
3408
  throw new Error(
2892
3409
  `HttpQueueSendRequest only exists in version 3+, got version ${version}`
@@ -2901,6 +3418,8 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
2901
3418
  switch (version) {
2902
3419
  case 3:
2903
3420
  return decodeHttpQueueSendResponse(bytes);
3421
+ case 4:
3422
+ return decodeHttpQueueSendResponse2(bytes);
2904
3423
  default:
2905
3424
  throw new Error(
2906
3425
  `HttpQueueSendResponse only exists in version 3+, got version ${version}`
@@ -2913,6 +3432,10 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
2913
3432
  return encodeHttpQueueSendResponse(
2914
3433
  data
2915
3434
  );
3435
+ case 4:
3436
+ return encodeHttpQueueSendResponse2(
3437
+ data
3438
+ );
2916
3439
  default:
2917
3440
  throw new Error(
2918
3441
  `HttpQueueSendResponse only exists in version 3+, got version ${version}`
@@ -2931,6 +3454,8 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
2931
3454
  return decodeHttpResponseError2(bytes);
2932
3455
  case 3:
2933
3456
  return decodeHttpResponseError3(bytes);
3457
+ case 4:
3458
+ return decodeHttpResponseError4(bytes);
2934
3459
  default:
2935
3460
  throw new Error(`Unknown version ${version}`);
2936
3461
  }
@@ -2949,12 +3474,24 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
2949
3474
  return encodeHttpResponseError3(
2950
3475
  data
2951
3476
  );
3477
+ case 4:
3478
+ return encodeHttpResponseError4(
3479
+ data
3480
+ );
2952
3481
  default:
2953
3482
  throw new Error(`Unknown version ${version}`);
2954
3483
  }
2955
3484
  },
2956
- deserializeConverters: () => [],
2957
- serializeConverters: () => []
3485
+ deserializeConverters: () => [
3486
+ (data) => data,
3487
+ (data) => data,
3488
+ v3HttpResponseErrorToV4
3489
+ ],
3490
+ serializeConverters: () => [
3491
+ v4HttpResponseErrorToV3,
3492
+ (data) => data,
3493
+ (data) => data
3494
+ ]
2958
3495
  });
2959
3496
  var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2960
3497
  deserializeVersion: (bytes, version) => {
@@ -2965,6 +3502,8 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2965
3502
  return decodeHttpResolveResponse2(bytes);
2966
3503
  case 3:
2967
3504
  return decodeHttpResolveResponse3(bytes);
3505
+ case 4:
3506
+ return decodeHttpResolveResponse4(bytes);
2968
3507
  default:
2969
3508
  throw new Error(`Unknown version ${version}`);
2970
3509
  }
@@ -2983,6 +3522,10 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2983
3522
  return encodeHttpResolveResponse3(
2984
3523
  data
2985
3524
  );
3525
+ case 4:
3526
+ return encodeHttpResolveResponse4(
3527
+ data
3528
+ );
2986
3529
  default:
2987
3530
  throw new Error(`Unknown version ${version}`);
2988
3531
  }
@@ -2995,6 +3538,11 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2995
3538
  import { z as z4 } from "zod/v4";
2996
3539
  var UintSchema = z4.bigint();
2997
3540
  var OptionalUintSchema = UintSchema.nullable();
3541
+ var ActorSpecifierSchema = z4.object({
3542
+ actorId: z4.string(),
3543
+ generation: z4.union([z4.number(), z4.bigint()]),
3544
+ key: z4.string().optional()
3545
+ });
2998
3546
  var InitSchema = z4.object({
2999
3547
  actorId: z4.string(),
3000
3548
  connectionId: z4.string()
@@ -3004,7 +3552,8 @@ var ErrorSchema = z4.object({
3004
3552
  code: z4.string(),
3005
3553
  message: z4.string(),
3006
3554
  metadata: z4.unknown().optional(),
3007
- actionId: OptionalUintSchema
3555
+ actionId: OptionalUintSchema,
3556
+ actor: ActorSpecifierSchema.optional()
3008
3557
  });
3009
3558
  var ActionResponseSchema = z4.object({
3010
3559
  id: UintSchema,
@@ -3062,7 +3611,8 @@ var HttpResponseErrorSchema = z4.object({
3062
3611
  group: z4.string(),
3063
3612
  code: z4.string(),
3064
3613
  message: z4.string(),
3065
- metadata: z4.unknown().optional()
3614
+ metadata: z4.unknown().optional(),
3615
+ actor: ActorSpecifierSchema.optional()
3066
3616
  });
3067
3617
  var HttpResolveRequestSchema = z4.null();
3068
3618
  var HttpResolveResponseSchema = z4.object({
@@ -3192,21 +3742,45 @@ async function sendHttpRequest(opts) {
3192
3742
  new Uint8Array(bufferResponse),
3193
3743
  HTTP_RESPONSE_ERROR_VERSIONED,
3194
3744
  HttpResponseErrorSchema,
3195
- // JSON: metadata is already unknown
3196
- (json) => json,
3745
+ // JSON/CBOR: normalize actor generation to the public number shape.
3746
+ (json) => ({
3747
+ ...json,
3748
+ actor: json.actor ? {
3749
+ ...json.actor,
3750
+ generation: Number(json.actor.generation)
3751
+ } : void 0
3752
+ }),
3197
3753
  // BARE: decode ArrayBuffer metadata to unknown
3198
- (bare4) => ({
3199
- group: bare4.group,
3200
- code: bare4.code,
3201
- message: bare4.message,
3202
- metadata: bare4.metadata ? decodeCborCompat(new Uint8Array(bare4.metadata)) : void 0
3754
+ (bare5) => ({
3755
+ group: bare5.group,
3756
+ code: bare5.code,
3757
+ message: bare5.message,
3758
+ metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
3759
+ actor: bare5.actor ? {
3760
+ actorId: bare5.actor.actorId,
3761
+ generation: Number(bare5.actor.generation),
3762
+ key: bare5.actor.key ?? void 0
3763
+ } : void 0
3203
3764
  })
3204
3765
  );
3766
+ logger2().warn({
3767
+ msg: "http error response",
3768
+ group: responseData.group,
3769
+ code: responseData.code,
3770
+ message: responseData.message,
3771
+ metadata: responseData.metadata,
3772
+ actorId: responseData.actor?.actorId,
3773
+ generation: responseData.actor?.generation,
3774
+ actorKey: responseData.actor?.key
3775
+ });
3205
3776
  throw new RivetError(
3206
3777
  responseData.group,
3207
3778
  responseData.code,
3208
3779
  responseData.message,
3209
- responseData.metadata
3780
+ {
3781
+ metadata: responseData.metadata,
3782
+ actor: responseData.actor
3783
+ }
3210
3784
  );
3211
3785
  } catch (error) {
3212
3786
  if (error instanceof RivetError) {
@@ -4155,13 +4729,13 @@ function createQueueSender(senderOptions) {
4155
4729
  response: json.response
4156
4730
  };
4157
4731
  },
4158
- responseFromBare: (bare4) => {
4159
- if (bare4.response === null || bare4.response === void 0) {
4160
- return { status: bare4.status };
4732
+ responseFromBare: (bare5) => {
4733
+ if (bare5.response === null || bare5.response === void 0) {
4734
+ return { status: bare5.status };
4161
4735
  }
4162
4736
  return {
4163
- status: bare4.status,
4164
- response: decodeCborCompat(new Uint8Array(bare4.response))
4737
+ status: bare5.status,
4738
+ response: decodeCborCompat(new Uint8Array(bare5.response))
4165
4739
  };
4166
4740
  }
4167
4741
  });
@@ -4175,49 +4749,7 @@ function createQueueSender(senderOptions) {
4175
4749
  };
4176
4750
  }
4177
4751
 
4178
- // src/client/resolve-gateway-target.ts
4179
- async function resolveGatewayTarget(driver, target) {
4180
- if ("directId" in target) {
4181
- return target.directId;
4182
- }
4183
- if ("getForId" in target) {
4184
- return target.getForId.actorId;
4185
- }
4186
- if ("getForKey" in target) {
4187
- const output = await driver.getWithKey({
4188
- name: target.getForKey.name,
4189
- key: target.getForKey.key
4190
- });
4191
- if (!output) {
4192
- throw actorNotFound(
4193
- `${target.getForKey.name}:${JSON.stringify(target.getForKey.key)}`
4194
- );
4195
- }
4196
- return output.actorId;
4197
- }
4198
- if ("getOrCreateForKey" in target) {
4199
- const output = await driver.getOrCreateWithKey({
4200
- name: target.getOrCreateForKey.name,
4201
- key: target.getOrCreateForKey.key,
4202
- input: target.getOrCreateForKey.input,
4203
- region: target.getOrCreateForKey.region
4204
- });
4205
- return output.actorId;
4206
- }
4207
- if ("create" in target) {
4208
- const output = await driver.createActor({
4209
- name: target.create.name,
4210
- key: target.create.key,
4211
- input: target.create.input,
4212
- region: target.create.region
4213
- });
4214
- return output.actorId;
4215
- }
4216
- throw invalidRequest("Invalid query format");
4217
- }
4218
-
4219
4752
  // src/client/actor-conn.ts
4220
- var DEFAULT_MAX_INCOMING_MESSAGE_SIZE = 65536;
4221
4753
  var CONNECT_SYMBOL = /* @__PURE__ */ Symbol("connect");
4222
4754
  var ActorConnRaw = class {
4223
4755
  #disposed = false;
@@ -4286,7 +4818,9 @@ var ActorConnRaw = class {
4286
4818
  );
4287
4819
  }
4288
4820
  });
4289
- this.#keepNodeAliveInterval = setInterval(() => 6e4);
4821
+ this.#keepNodeAliveInterval = setInterval(() => {
4822
+ }, 6e4);
4823
+ this.#keepNodeAliveInterval.unref?.();
4290
4824
  }
4291
4825
  #clearResolvedActorIdentity() {
4292
4826
  this.#actorId = void 0;
@@ -4519,7 +5053,7 @@ var ActorConnRaw = class {
4519
5053
  }
4520
5054
  async #connectWebSocket() {
4521
5055
  const params = await this.#resolveConnectionParams();
4522
- const target = this.#gatewayOptions.skipReadyWait ? await this.#resolveGatewayTargetForSkipReadyWait() : getGatewayTarget(this.#actorResolutionState);
5056
+ const target = getGatewayTarget(this.#actorResolutionState);
4523
5057
  const ws = await this.#driver.openWebSocket(
4524
5058
  PATH_CONNECT,
4525
5059
  target,
@@ -4572,22 +5106,6 @@ var ActorConnRaw = class {
4572
5106
  }
4573
5107
  });
4574
5108
  }
4575
- async #resolveGatewayTargetForSkipReadyWait() {
4576
- if ("getForId" in this.#actorResolutionState) {
4577
- return {
4578
- directId: this.#actorResolutionState.getForId.actorId
4579
- };
4580
- }
4581
- if (this.#actorId) {
4582
- return { directId: this.#actorId };
4583
- }
4584
- return {
4585
- directId: await resolveGatewayTarget(
4586
- this.#driver,
4587
- this.#actorResolutionState
4588
- )
4589
- };
4590
- }
4591
5109
  /** Called by the onopen event from drivers. */
4592
5110
  #handleOnOpen() {
4593
5111
  if (this.#disposed) {
@@ -4666,7 +5184,7 @@ var ActorConnRaw = class {
4666
5184
  });
4667
5185
  this.#handleOnOpen();
4668
5186
  } else if (response.body.tag === "Error") {
4669
- const { group, code, message, metadata, actionId } = response.body.val;
5187
+ const { group, code, message, metadata, actionId, actor } = response.body.val;
4670
5188
  if (actionId !== null) {
4671
5189
  const inFlight = this.#takeActionInFlight(Number(actionId));
4672
5190
  this.#invalidateActorIfStale(group, code);
@@ -4677,10 +5195,16 @@ var ActorConnRaw = class {
4677
5195
  group,
4678
5196
  code,
4679
5197
  message,
4680
- metadata
5198
+ metadata,
5199
+ actorId: actor?.actorId,
5200
+ generation: actor?.generation,
5201
+ actorKey: actor?.key
4681
5202
  });
4682
5203
  inFlight.reject(
4683
- new RivetError(group, code, message, metadata)
5204
+ new RivetError(group, code, message, {
5205
+ metadata,
5206
+ actor
5207
+ })
4684
5208
  );
4685
5209
  } else {
4686
5210
  logger2().warn({
@@ -4688,12 +5212,18 @@ var ActorConnRaw = class {
4688
5212
  group,
4689
5213
  code,
4690
5214
  message,
4691
- metadata
5215
+ metadata,
5216
+ actorId: actor?.actorId,
5217
+ generation: actor?.generation,
5218
+ actorKey: actor?.key
4692
5219
  });
4693
5220
  if (this.#shouldReconnectForStaleActor(group, code)) {
4694
5221
  this.#clearResolvedActorIdentity();
4695
5222
  this.#onOpenPromise?.reject(
4696
- new RivetError(group, code, message, metadata)
5223
+ new RivetError(group, code, message, {
5224
+ metadata,
5225
+ actor
5226
+ })
4697
5227
  );
4698
5228
  return;
4699
5229
  }
@@ -4701,7 +5231,7 @@ var ActorConnRaw = class {
4701
5231
  group,
4702
5232
  code,
4703
5233
  message,
4704
- metadata
5234
+ { metadata, actor }
4705
5235
  );
4706
5236
  if (isSchedulingError(group, code) && this.#actorId) {
4707
5237
  const schedulingError = await checkForSchedulingError(
@@ -5098,31 +5628,8 @@ var ActorConnRaw = class {
5098
5628
  }
5099
5629
  }
5100
5630
  );
5101
- const serializedLength = messageLength(messageSerialized);
5102
- if (serializedLength > DEFAULT_MAX_INCOMING_MESSAGE_SIZE && message.body.tag === "ActionRequest") {
5103
- const actionId = Number(message.body.val.id);
5104
- const inFlight = this.#takeActionInFlight(actionId);
5105
- const error = new RivetError(
5106
- "message",
5107
- "incoming_too_long",
5108
- "Incoming message too long",
5109
- {
5110
- maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE,
5111
- actualSize: serializedLength
5112
- }
5113
- );
5114
- logger2().warn({
5115
- msg: "rejecting oversized connection action request",
5116
- actionId,
5117
- actionName: inFlight.name,
5118
- actualSize: serializedLength,
5119
- maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE
5120
- });
5121
- inFlight.reject(error);
5122
- this.#dispatchActorError(error);
5123
- return;
5124
- }
5125
5631
  this.#websocket.send(messageSerialized);
5632
+ const serializedLength = messageLength(messageSerialized);
5126
5633
  logger2().trace({
5127
5634
  msg: "sent websocket message",
5128
5635
  len: serializedLength
@@ -5165,8 +5672,26 @@ var ActorConnRaw = class {
5165
5672
  buffer,
5166
5673
  CLIENT_PROTOCOL_TO_CLIENT,
5167
5674
  ToClientSchema,
5168
- // JSON: values are already the correct type
5169
- (msg) => msg,
5675
+ // JSON/CBOR: normalize actor generation to the public number shape.
5676
+ (msg) => {
5677
+ if (msg.body.tag !== "Error" || !msg.body.val.actor) {
5678
+ return msg;
5679
+ }
5680
+ return {
5681
+ body: {
5682
+ tag: "Error",
5683
+ val: {
5684
+ ...msg.body.val,
5685
+ actor: {
5686
+ ...msg.body.val.actor,
5687
+ generation: Number(
5688
+ msg.body.val.actor.generation
5689
+ )
5690
+ }
5691
+ }
5692
+ }
5693
+ };
5694
+ },
5170
5695
  // BARE: need to decode ArrayBuffer fields back to unknown
5171
5696
  (msg) => {
5172
5697
  if (msg.body.tag === "Error") {
@@ -5182,7 +5707,14 @@ var ActorConnRaw = class {
5182
5707
  msg.body.val.metadata
5183
5708
  )
5184
5709
  ) : null,
5185
- actionId: msg.body.val.actionId
5710
+ actionId: msg.body.val.actionId,
5711
+ actor: msg.body.val.actor ? {
5712
+ actorId: msg.body.val.actor.actorId,
5713
+ generation: Number(
5714
+ msg.body.val.actor.generation
5715
+ ),
5716
+ key: msg.body.val.actor.key ?? void 0
5717
+ } : void 0
5186
5718
  }
5187
5719
  }
5188
5720
  };
@@ -5376,13 +5908,11 @@ async function rawHttpFetch(driver, target, params, input, init, options = {}) {
5376
5908
  });
5377
5909
  return driver.sendRequest(target, proxyRequest, options);
5378
5910
  } catch (err) {
5379
- const { group, code, message, metadata } = deconstructError(
5911
+ const { group, code, message, metadata, actor } = deconstructError(
5380
5912
  err,
5381
- logger2(),
5382
- {},
5383
5913
  true
5384
5914
  );
5385
- throw new RivetError(group, code, message, metadata);
5915
+ throw new RivetError(group, code, message, { metadata, actor });
5386
5916
  }
5387
5917
  }
5388
5918
  async function rawWebSocket(driver, target, params, path, _protocols, options = {}) {
@@ -5418,6 +5948,47 @@ async function rawWebSocket(driver, target, params, path, _protocols, options =
5418
5948
  return ws;
5419
5949
  }
5420
5950
 
5951
+ // src/client/resolve-gateway-target.ts
5952
+ async function resolveGatewayTarget(driver, target) {
5953
+ if ("directId" in target) {
5954
+ return target.directId;
5955
+ }
5956
+ if ("getForId" in target) {
5957
+ return target.getForId.actorId;
5958
+ }
5959
+ if ("getForKey" in target) {
5960
+ const output = await driver.getWithKey({
5961
+ name: target.getForKey.name,
5962
+ key: target.getForKey.key
5963
+ });
5964
+ if (!output) {
5965
+ throw actorNotFound(
5966
+ `${target.getForKey.name}:${JSON.stringify(target.getForKey.key)}`
5967
+ );
5968
+ }
5969
+ return output.actorId;
5970
+ }
5971
+ if ("getOrCreateForKey" in target) {
5972
+ const output = await driver.getOrCreateWithKey({
5973
+ name: target.getOrCreateForKey.name,
5974
+ key: target.getOrCreateForKey.key,
5975
+ input: target.getOrCreateForKey.input,
5976
+ region: target.getOrCreateForKey.region
5977
+ });
5978
+ return output.actorId;
5979
+ }
5980
+ if ("create" in target) {
5981
+ const output = await driver.createActor({
5982
+ name: target.create.name,
5983
+ key: target.create.key,
5984
+ input: target.create.input,
5985
+ region: target.create.region
5986
+ });
5987
+ return output.actorId;
5988
+ }
5989
+ throw invalidRequest("Invalid query format");
5990
+ }
5991
+
5421
5992
  // src/client/actor-handle.ts
5422
5993
  var ActorHandleRaw = class {
5423
5994
  #client;
@@ -5462,7 +6033,13 @@ var ActorHandleRaw = class {
5462
6033
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
5463
6034
  let actorId;
5464
6035
  try {
5465
- const target = await this.#resolveActionTarget(useQueryTarget);
6036
+ const gatewayOptions = resolveActorGatewayOptions(
6037
+ this.#gatewayOptions
6038
+ );
6039
+ const target = await this.#resolveGatewayRequestTarget(
6040
+ useQueryTarget,
6041
+ gatewayOptions
6042
+ );
5466
6043
  actorId = "directId" in target ? target.directId : void 0;
5467
6044
  return await createQueueSender({
5468
6045
  encoding: this.#encoding,
@@ -5471,17 +6048,13 @@ var ActorHandleRaw = class {
5471
6048
  return await this.#driver.sendRequest(
5472
6049
  target,
5473
6050
  request,
5474
- resolveActorGatewayOptions(
5475
- this.#gatewayOptions
5476
- )
6051
+ gatewayOptions
5477
6052
  );
5478
6053
  }
5479
6054
  }).send(name, body, options);
5480
6055
  } catch (err) {
5481
- const { group, code, message, metadata } = deconstructError(
6056
+ const { group, code, message, metadata, actor } = deconstructError(
5482
6057
  err,
5483
- logger2(),
5484
- {},
5485
6058
  true
5486
6059
  );
5487
6060
  if (this.#shouldRetryQueueDispatchOverload(
@@ -5524,7 +6097,7 @@ var ActorHandleRaw = class {
5524
6097
  }
5525
6098
  continue;
5526
6099
  }
5527
- throw new RivetError(group, code, message, metadata);
6100
+ throw new RivetError(group, code, message, { metadata, actor });
5528
6101
  }
5529
6102
  }
5530
6103
  throw new Error("unreachable queue retry state");
@@ -5559,7 +6132,10 @@ var ActorHandleRaw = class {
5559
6132
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
5560
6133
  let actorId;
5561
6134
  try {
5562
- const target = await this.#resolveActionTarget(useQueryTarget);
6135
+ const target = await this.#resolveGatewayRequestTarget(
6136
+ useQueryTarget,
6137
+ gatewayOptions
6138
+ );
5563
6139
  actorId = "directId" in target ? target.directId : void 0;
5564
6140
  logger2().debug(
5565
6141
  actorId ? { msg: "using direct actor gateway target", actorId } : {
@@ -5604,17 +6180,15 @@ var ActorHandleRaw = class {
5604
6180
  args: bufferToArrayBuffer(encodeCborCompat(args))
5605
6181
  }),
5606
6182
  responseFromJson: (json) => json.output,
5607
- responseFromBare: (bare4) => decodeCborCompat(new Uint8Array(bare4.output))
6183
+ responseFromBare: (bare5) => decodeCborCompat(new Uint8Array(bare5.output))
5608
6184
  });
5609
6185
  if (opts.name === "destroy" && actorId) {
5610
6186
  await this.#waitForDestroyActionToSettle(actorId);
5611
6187
  }
5612
6188
  return output;
5613
6189
  } catch (err) {
5614
- const { group, code, message, metadata } = deconstructError(
6190
+ const { group, code, message, metadata, actor } = deconstructError(
5615
6191
  err,
5616
- logger2(),
5617
- {},
5618
6192
  true
5619
6193
  );
5620
6194
  if (await this.#shouldRetrySchedulingError(
@@ -5644,7 +6218,7 @@ var ActorHandleRaw = class {
5644
6218
  "actor",
5645
6219
  "not_found",
5646
6220
  "The actor does not exist or was destroyed.",
5647
- metadata
6221
+ { metadata, actor }
5648
6222
  );
5649
6223
  }
5650
6224
  const invalidated = this.#invalidateResolvedActorId(group, code);
@@ -5655,7 +6229,7 @@ var ActorHandleRaw = class {
5655
6229
  }
5656
6230
  continue;
5657
6231
  }
5658
- throw new RivetError(group, code, message, metadata);
6232
+ throw new RivetError(group, code, message, { metadata, actor });
5659
6233
  }
5660
6234
  }
5661
6235
  throw new Error("unreachable action retry state");
@@ -5748,6 +6322,12 @@ var ActorHandleRaw = class {
5748
6322
  this.#resolvingActorId = void 0;
5749
6323
  }
5750
6324
  }
6325
+ async #resolveGatewayRequestTarget(useQueryTarget, gatewayOptions) {
6326
+ if (gatewayOptions.skipReadyWait) {
6327
+ return getGatewayTarget(this.#actorResolutionState);
6328
+ }
6329
+ return await this.#resolveActionTarget(useQueryTarget);
6330
+ }
5751
6331
  /**
5752
6332
  * Establishes a persistent connection to the actor.
5753
6333
  *
@@ -5794,7 +6374,10 @@ var ActorHandleRaw = class {
5794
6374
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
5795
6375
  let actorId;
5796
6376
  try {
5797
- const target = await this.#resolveActionTarget(useQueryTarget);
6377
+ const target = await this.#resolveGatewayRequestTarget(
6378
+ useQueryTarget,
6379
+ gatewayOptions
6380
+ );
5798
6381
  actorId = "directId" in target ? target.directId : void 0;
5799
6382
  const response = await rawHttpFetch(
5800
6383
  this.#driver,
@@ -5819,10 +6402,8 @@ var ActorHandleRaw = class {
5819
6402
  }
5820
6403
  return response;
5821
6404
  } catch (err) {
5822
- const { group, code, message, metadata } = deconstructError(
6405
+ const { group, code, message, metadata, actor } = deconstructError(
5823
6406
  err,
5824
- logger2(),
5825
- {},
5826
6407
  true
5827
6408
  );
5828
6409
  if (await this.#shouldRetrySchedulingError(
@@ -5855,7 +6436,7 @@ var ActorHandleRaw = class {
5855
6436
  }
5856
6437
  continue;
5857
6438
  }
5858
- throw new RivetError(group, code, message, metadata);
6439
+ throw new RivetError(group, code, message, { metadata, actor });
5859
6440
  }
5860
6441
  }
5861
6442
  throw new Error("unreachable fetch retry state");
@@ -5915,12 +6496,23 @@ var ActorHandleRaw = class {
5915
6496
  new Uint8Array(await response.clone().arrayBuffer()),
5916
6497
  HTTP_RESPONSE_ERROR_VERSIONED,
5917
6498
  HttpResponseErrorSchema,
5918
- (json) => json,
5919
- (bare4) => ({
5920
- group: bare4.group,
5921
- code: bare4.code,
5922
- message: bare4.message,
5923
- metadata: bare4.metadata ? decodeCborCompat(new Uint8Array(bare4.metadata)) : void 0
6499
+ (json) => ({
6500
+ ...json,
6501
+ actor: json.actor ? {
6502
+ ...json.actor,
6503
+ generation: Number(json.actor.generation)
6504
+ } : void 0
6505
+ }),
6506
+ (bare5) => ({
6507
+ group: bare5.group,
6508
+ code: bare5.code,
6509
+ message: bare5.message,
6510
+ metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
6511
+ actor: bare5.actor ? {
6512
+ actorId: bare5.actor.actorId,
6513
+ generation: Number(bare5.actor.generation),
6514
+ key: bare5.actor.key ?? void 0
6515
+ } : void 0
5924
6516
  })
5925
6517
  );
5926
6518
  } catch {
@@ -5936,7 +6528,10 @@ var ActorHandleRaw = class {
5936
6528
  this.#gatewayOptions,
5937
6529
  options
5938
6530
  );
5939
- const target = gatewayOptions.skipReadyWait ? await this.#resolveActionTarget(false) : getGatewayTarget(this.#actorResolutionState);
6531
+ const target = await this.#resolveGatewayRequestTarget(
6532
+ false,
6533
+ gatewayOptions
6534
+ );
5940
6535
  return await rawWebSocket(
5941
6536
  this.#driver,
5942
6537
  target,