rivetkit 2.3.0-rc.10 → 2.3.0-rc.11

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 (205) hide show
  1. package/dist/browser/client.d.ts +105 -56
  2. package/dist/browser/client.js +128 -87
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +40 -20
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/actor/errors.cjs +2 -2
  7. package/dist/tsup/actor/errors.js +1 -1
  8. package/dist/tsup/agent-os/index.cjs +2103 -2090
  9. package/dist/tsup/agent-os/index.cjs.map +1 -1
  10. package/dist/tsup/agent-os/index.d.cts +106 -66
  11. package/dist/tsup/agent-os/index.d.ts +106 -66
  12. package/dist/tsup/agent-os/index.js +2102 -2089
  13. package/dist/tsup/agent-os/index.js.map +1 -1
  14. package/dist/tsup/{chunk-4K3MV2MW.cjs → chunk-2NXFKPRB.cjs} +10 -10
  15. package/dist/tsup/chunk-2NXFKPRB.cjs.map +1 -0
  16. package/dist/tsup/{chunk-6BI2MS3S.js → chunk-3P2JUHWJ.js} +2 -2
  17. package/dist/tsup/{chunk-KU6VKVEK.js → chunk-4FP4FFB5.js} +18 -6
  18. package/dist/tsup/chunk-4FP4FFB5.js.map +1 -0
  19. package/dist/tsup/{chunk-KIWH5H3K.js → chunk-BRP62GZC.js} +3 -3
  20. package/dist/tsup/chunk-BRP62GZC.js.map +1 -0
  21. package/dist/tsup/{chunk-G34LIR7S.js → chunk-GRFBV2U7.js} +22 -7
  22. package/dist/tsup/chunk-GRFBV2U7.js.map +1 -0
  23. package/dist/tsup/{chunk-PWFGP2US.cjs → chunk-GX6W4MW3.cjs} +138 -24
  24. package/dist/tsup/chunk-GX6W4MW3.cjs.map +1 -0
  25. package/dist/tsup/{chunk-3YY5S6TV.js → chunk-HXUEHHJF.js} +2 -2
  26. package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
  27. package/dist/tsup/{chunk-PCBNKI2J.js → chunk-JZ7TWV65.js} +1 -1
  28. package/dist/tsup/chunk-JZ7TWV65.js.map +1 -0
  29. package/dist/tsup/{chunk-QAZLM4WT.cjs → chunk-KORQB2IR.cjs} +3 -3
  30. package/dist/tsup/{chunk-QAZLM4WT.cjs.map → chunk-KORQB2IR.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-BM3EOY7M.js → chunk-KRC4L3YB.js} +134 -20
  32. package/dist/tsup/chunk-KRC4L3YB.js.map +1 -0
  33. package/dist/tsup/{chunk-G5RULGYQ.cjs → chunk-LNP7Q6I6.cjs} +24 -9
  34. package/dist/tsup/chunk-LNP7Q6I6.cjs.map +1 -0
  35. package/dist/tsup/{chunk-Z4C3W2CQ.cjs → chunk-LW5HNCWD.cjs} +3 -3
  36. package/dist/tsup/{chunk-Z4C3W2CQ.cjs.map → chunk-LW5HNCWD.cjs.map} +1 -1
  37. package/dist/tsup/{chunk-J5P6S2LC.cjs → chunk-RDBGKI66.cjs} +25 -13
  38. package/dist/tsup/chunk-RDBGKI66.cjs.map +1 -0
  39. package/dist/tsup/{chunk-T6YVRM4K.js → chunk-T3VCJ4PV.js} +3 -1
  40. package/dist/tsup/chunk-T3VCJ4PV.js.map +1 -0
  41. package/dist/tsup/{chunk-WU2O2KIE.js → chunk-TTLUIDVH.js} +61 -77
  42. package/dist/tsup/chunk-TTLUIDVH.js.map +1 -0
  43. package/dist/tsup/{chunk-LD5YASJU.cjs → chunk-VE2X4KMG.cjs} +2 -2
  44. package/dist/tsup/{chunk-LD5YASJU.cjs.map → chunk-VE2X4KMG.cjs.map} +1 -1
  45. package/dist/tsup/{chunk-XV52XUWU.js → chunk-WXYWDLJY.js} +4 -4
  46. package/dist/tsup/chunk-WXYWDLJY.js.map +1 -0
  47. package/dist/tsup/{chunk-WQ4HNA4W.cjs → chunk-XCDCURZ4.cjs} +4 -2
  48. package/dist/tsup/chunk-XCDCURZ4.cjs.map +1 -0
  49. package/dist/tsup/{chunk-TE4VCDNY.cjs → chunk-XG25CGSW.cjs} +217 -233
  50. package/dist/tsup/chunk-XG25CGSW.cjs.map +1 -0
  51. package/dist/tsup/{chunk-3LGP4JSO.cjs → chunk-Y3JBOFBG.cjs} +8 -8
  52. package/dist/tsup/{chunk-3LGP4JSO.cjs.map → chunk-Y3JBOFBG.cjs.map} +1 -1
  53. package/dist/tsup/{chunk-CMYS77J6.js → chunk-YRQ4F5CD.js} +3 -3
  54. package/dist/tsup/{chunk-2NDZ7JCR.cjs → chunk-ZA7FLHKH.cjs} +1 -1
  55. package/dist/tsup/chunk-ZA7FLHKH.cjs.map +1 -0
  56. package/dist/tsup/client/mod.cjs +9 -9
  57. package/dist/tsup/client/mod.d.cts +4 -4
  58. package/dist/tsup/client/mod.d.ts +4 -4
  59. package/dist/tsup/client/mod.js +8 -8
  60. package/dist/tsup/common/log.cjs +3 -3
  61. package/dist/tsup/common/log.js +2 -2
  62. package/dist/tsup/common/websocket.cjs +4 -4
  63. package/dist/tsup/common/websocket.js +3 -3
  64. package/dist/tsup/{config-Ca8dN4cS.d.cts → config-CTwe3WwC.d.cts} +69 -19
  65. package/dist/tsup/{config-CxjGYf4K.d.cts → config-D49x8NpL.d.cts} +1 -2
  66. package/dist/tsup/{config-CxjGYf4K.d.ts → config-D49x8NpL.d.ts} +1 -2
  67. package/dist/tsup/{config-0Ta55UV0.d.ts → config-De5UVu0V.d.ts} +69 -19
  68. package/dist/tsup/{context-B_IWbWne.d.ts → context-DPHISlUi.d.ts} +8 -8
  69. package/dist/tsup/{context-CUrQ9MHc.d.cts → context-Dmj477Uh.d.cts} +8 -8
  70. package/dist/tsup/db/drizzle.cjs +3 -3
  71. package/dist/tsup/db/drizzle.d.cts +1 -1
  72. package/dist/tsup/db/drizzle.d.ts +1 -1
  73. package/dist/tsup/db/drizzle.js +1 -1
  74. package/dist/tsup/db/mod.cjs +2 -2
  75. package/dist/tsup/db/mod.d.cts +2 -2
  76. package/dist/tsup/db/mod.d.ts +2 -2
  77. package/dist/tsup/db/mod.js +1 -1
  78. package/dist/tsup/dynamic/mod.cjs +24 -0
  79. package/dist/tsup/dynamic/mod.cjs.map +1 -0
  80. package/dist/tsup/dynamic/mod.d.cts +37 -0
  81. package/dist/tsup/dynamic/mod.d.ts +37 -0
  82. package/dist/tsup/dynamic/mod.js +24 -0
  83. package/dist/tsup/dynamic/mod.js.map +1 -0
  84. package/dist/tsup/inspector/mod.cjs +6 -6
  85. package/dist/tsup/inspector/mod.js +5 -5
  86. package/dist/tsup/mod.cjs +501 -315
  87. package/dist/tsup/mod.cjs.map +1 -1
  88. package/dist/tsup/mod.d.cts +4 -4
  89. package/dist/tsup/mod.d.ts +4 -4
  90. package/dist/tsup/mod.js +405 -219
  91. package/dist/tsup/mod.js.map +1 -1
  92. package/dist/tsup/test/mod.cjs +21 -18
  93. package/dist/tsup/test/mod.cjs.map +1 -1
  94. package/dist/tsup/test/mod.d.cts +3 -3
  95. package/dist/tsup/test/mod.d.ts +3 -3
  96. package/dist/tsup/test/mod.js +18 -15
  97. package/dist/tsup/test/mod.js.map +1 -1
  98. package/dist/tsup/utils.cjs +3 -3
  99. package/dist/tsup/utils.d.cts +1 -1
  100. package/dist/tsup/utils.d.ts +1 -1
  101. package/dist/tsup/utils.js +2 -2
  102. package/dist/tsup/workflow/mod.cjs +307 -282
  103. package/dist/tsup/workflow/mod.cjs.map +1 -1
  104. package/dist/tsup/workflow/mod.d.cts +5 -5
  105. package/dist/tsup/workflow/mod.d.ts +5 -5
  106. package/dist/tsup/workflow/mod.js +501 -476
  107. package/dist/tsup/workflow/mod.js.map +1 -1
  108. package/package.json +22 -11
  109. package/src/actor/config.ts +48 -41
  110. package/src/actor/contexts/index.ts +7 -2
  111. package/src/actor/definition.ts +11 -14
  112. package/src/actor/driver.ts +3 -3
  113. package/src/actor/errors.ts +9 -3
  114. package/src/actor/instance/mod.ts +22 -30
  115. package/src/actor/keys.ts +1 -1
  116. package/src/actor/mod.ts +20 -20
  117. package/src/actor/schema.ts +2 -2
  118. package/src/agent-os/actor/index.ts +38 -18
  119. package/src/agent-os/actor/preview.ts +1 -2
  120. package/src/agent-os/actor/session.ts +2 -2
  121. package/src/agent-os/config.ts +1 -1
  122. package/src/agent-os/fs/database-vfs.ts +1 -1
  123. package/src/agent-os/index.ts +16 -15
  124. package/src/client/actor-common.ts +90 -54
  125. package/src/client/actor-conn.ts +8 -36
  126. package/src/client/actor-handle.ts +67 -50
  127. package/src/client/actor-query.ts +5 -5
  128. package/src/client/errors.ts +1 -1
  129. package/src/client/lifecycle-errors.ts +2 -4
  130. package/src/client/query.ts +1 -1
  131. package/src/client/queue.ts +8 -3
  132. package/src/client/raw-utils.ts +8 -6
  133. package/src/client/resolve-gateway-target.ts +1 -1
  134. package/src/client/utils.ts +2 -7
  135. package/src/common/actor-websocket.ts +3 -1
  136. package/src/common/bare/actor-persist/v1.ts +205 -163
  137. package/src/common/bare/actor-persist/v2.ts +265 -213
  138. package/src/common/bare/actor-persist/v3.ts +176 -172
  139. package/src/common/bare/actor-persist/v4.ts +254 -253
  140. package/src/common/bare/transport/v1.ts +659 -543
  141. package/src/common/client-protocol-versioned.ts +66 -64
  142. package/src/common/database/config.ts +2 -8
  143. package/src/common/database/native-database.ts +1 -1
  144. package/src/common/database/shared.ts +1 -0
  145. package/src/common/encoding.ts +250 -16
  146. package/src/common/eventsource.ts +1 -1
  147. package/src/common/inline-websocket-adapter.ts +14 -13
  148. package/src/common/log.ts +1 -0
  149. package/src/common/router.ts +13 -17
  150. package/src/common/utils.ts +0 -149
  151. package/src/common/websocket-interface.ts +1 -1
  152. package/src/db/mod.ts +1 -1
  153. package/src/drivers/engine/actor-driver.ts +63 -72
  154. package/src/dynamic/instance.ts +32 -0
  155. package/src/dynamic/internal.ts +50 -0
  156. package/src/dynamic/isolate-runtime.ts +66 -0
  157. package/src/dynamic/mod.ts +32 -0
  158. package/src/engine-client/actor-http-client.ts +1 -1
  159. package/src/engine-client/actor-websocket-client.ts +6 -5
  160. package/src/engine-client/api-endpoints.ts +47 -2
  161. package/src/engine-client/api-utils.ts +2 -2
  162. package/src/engine-client/driver.ts +1 -1
  163. package/src/engine-client/mod.ts +6 -3
  164. package/src/engine-client/ws-proxy.ts +4 -4
  165. package/src/inspector/client.browser.ts +5 -11
  166. package/src/inspector/mod.ts +1 -3
  167. package/src/registry/config/envoy.ts +1 -2
  168. package/src/registry/config/index.ts +7 -7
  169. package/src/registry/index.ts +70 -71
  170. package/src/registry/napi-runtime.ts +7 -2
  171. package/src/registry/native-validation.ts +10 -12
  172. package/src/registry/native.ts +179 -153
  173. package/src/registry/process-metrics.ts +238 -0
  174. package/src/registry/runtime.ts +1 -3
  175. package/src/registry/wasm-runtime.ts +3 -2
  176. package/src/registry/write-through-proxy.ts +40 -0
  177. package/src/serde.ts +2 -2
  178. package/src/serverless/configure.ts +18 -7
  179. package/src/test/mod.ts +11 -8
  180. package/src/utils/endpoint-parser.ts +1 -1
  181. package/src/utils/router.ts +1 -1
  182. package/src/utils/serve.ts +4 -5
  183. package/src/utils.ts +1 -2
  184. package/src/workflow/context.ts +61 -33
  185. package/src/workflow/driver.ts +4 -6
  186. package/src/workflow/inspector.ts +4 -3
  187. package/src/workflow/mod.ts +15 -17
  188. package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
  189. package/dist/tsup/chunk-3YY5S6TV.js.map +0 -1
  190. package/dist/tsup/chunk-4K3MV2MW.cjs.map +0 -1
  191. package/dist/tsup/chunk-BM3EOY7M.js.map +0 -1
  192. package/dist/tsup/chunk-G34LIR7S.js.map +0 -1
  193. package/dist/tsup/chunk-G5RULGYQ.cjs.map +0 -1
  194. package/dist/tsup/chunk-J5P6S2LC.cjs.map +0 -1
  195. package/dist/tsup/chunk-KIWH5H3K.js.map +0 -1
  196. package/dist/tsup/chunk-KU6VKVEK.js.map +0 -1
  197. package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
  198. package/dist/tsup/chunk-PWFGP2US.cjs.map +0 -1
  199. package/dist/tsup/chunk-T6YVRM4K.js.map +0 -1
  200. package/dist/tsup/chunk-TE4VCDNY.cjs.map +0 -1
  201. package/dist/tsup/chunk-WQ4HNA4W.cjs.map +0 -1
  202. package/dist/tsup/chunk-WU2O2KIE.js.map +0 -1
  203. package/dist/tsup/chunk-XV52XUWU.js.map +0 -1
  204. /package/dist/tsup/{chunk-6BI2MS3S.js.map → chunk-3P2JUHWJ.js.map} +0 -0
  205. /package/dist/tsup/{chunk-CMYS77J6.js.map → chunk-YRQ4F5CD.js.map} +0 -0
@@ -200,7 +200,7 @@ function noopNext() {
200
200
  // package.json
201
201
  var package_default = {
202
202
  name: "rivetkit",
203
- version: "2.3.0-rc.10",
203
+ version: "2.3.0-rc.11",
204
204
  description: "Lightweight libraries for building stateful actors on edge platforms",
205
205
  license: "Apache-2.0",
206
206
  keywords: [
@@ -272,6 +272,16 @@ var package_default = {
272
272
  default: "./dist/tsup/db/drizzle.cjs"
273
273
  }
274
274
  },
275
+ "./dynamic": {
276
+ import: {
277
+ types: "./dist/tsup/dynamic/mod.d.ts",
278
+ default: "./dist/tsup/dynamic/mod.js"
279
+ },
280
+ require: {
281
+ types: "./dist/tsup/dynamic/mod.d.cts",
282
+ default: "./dist/tsup/dynamic/mod.cjs"
283
+ }
284
+ },
275
285
  "./client": {
276
286
  import: {
277
287
  browser: {
@@ -351,7 +361,7 @@ var package_default = {
351
361
  "./dist/tsup/chunk-*.cjs"
352
362
  ],
353
363
  scripts: {
354
- build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/db/mod.ts src/db/drizzle.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
364
+ build: "tsup src/mod.ts src/client/mod.ts src/common/log.ts src/common/websocket.ts src/actor/errors.ts src/utils.ts src/workflow/mod.ts src/test/mod.ts src/inspector/mod.ts src/db/mod.ts src/db/drizzle.ts src/dynamic/mod.ts && tsup src/agent-os/index.ts --no-clean --out-dir dist/tsup/agent-os",
355
365
  "build:browser": "tsup --config tsup.browser.config.ts",
356
366
  "check-types": "tsc --noEmit",
357
367
  lint: "biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments",
@@ -368,13 +378,14 @@ var package_default = {
368
378
  "actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts"
369
379
  },
370
380
  dependencies: {
371
- "@rivet-dev/agent-os-core": "^0.1.1",
372
381
  "@hono/node-server": "^1.18.2",
373
382
  "@hono/node-ws": "^1.1.1",
374
383
  "@hono/zod-openapi": "^1.1.5",
384
+ "@rivet-dev/agent-os-core": "^0.1.1",
375
385
  "@rivetkit/bare-ts": "^0.6.2",
376
386
  "@rivetkit/engine-cli": "workspace:*",
377
387
  "@rivetkit/engine-envoy-protocol": "workspace:*",
388
+ "@rivetkit/on-change": "6.0.1",
378
389
  "@rivetkit/rivetkit-napi": "workspace:*",
379
390
  "@rivetkit/rivetkit-wasm": "workspace:*",
380
391
  "@rivetkit/traces": "workspace:*",
@@ -392,10 +403,10 @@ var package_default = {
392
403
  zod: "^4.1.0"
393
404
  },
394
405
  devDependencies: {
406
+ "@biomejs/biome": "^2.3",
395
407
  "@copilotkit/llmock": "^1.6.0",
396
408
  "@rivet-dev/agent-os-common": "*",
397
409
  "@rivet-dev/agent-os-pi": "^0.1.1",
398
- "@biomejs/biome": "^2.3",
399
410
  "@standard-schema/spec": "^1.0.0",
400
411
  "@types/invariant": "^2",
401
412
  "@types/node": "^22.13.1",
@@ -471,6 +482,7 @@ function configureDefaultLogger(logLevel) {
471
482
  messageKey: "msg",
472
483
  // Do not include pid/hostname in output
473
484
  base: {},
485
+ errorKey: "error",
474
486
  // Keep the numeric level so the logfmt sink can match Pino's levels.
475
487
  formatters: {
476
488
  level(_label, number) {
@@ -762,7 +774,7 @@ function deserializeActorKey(keyString) {
762
774
  }
763
775
  }
764
776
  if (escaping) {
765
- parts.push(currentPart + "\\");
777
+ parts.push(`${currentPart}\\`);
766
778
  } else if (isEmptyStringMarker) {
767
779
  parts.push("");
768
780
  } else if (currentPart !== "" || parts.length > 0) {
@@ -805,6 +817,10 @@ var JSON_COMPAT_BIGINT = "$BigInt";
805
817
  var JSON_COMPAT_ARRAY_BUFFER = "$ArrayBuffer";
806
818
  var JSON_COMPAT_UINT8_ARRAY = "$Uint8Array";
807
819
  var JSON_COMPAT_UNDEFINED = "$Undefined";
820
+ var JSON_COMPAT_SET = "$Set";
821
+ function isTypedArray(value) {
822
+ 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;
823
+ }
808
824
  var EncodingSchema = z2.enum(["json", "cbor", "bare"]);
809
825
  async function inputDataToBuffer(data) {
810
826
  if (typeof data === "string") {
@@ -839,9 +855,15 @@ function isPlainObject(value) {
839
855
  return proto === Object.prototype || proto === null;
840
856
  }
841
857
  function encodeJsonCompatValue(input) {
858
+ if (input === null) {
859
+ return input;
860
+ }
842
861
  if (input === void 0) {
843
862
  return [JSON_COMPAT_UNDEFINED, 0];
844
863
  }
864
+ if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
865
+ return input;
866
+ }
845
867
  if (typeof input === "bigint") {
846
868
  return [JSON_COMPAT_BIGINT, input.toString()];
847
869
  }
@@ -851,10 +873,34 @@ function encodeJsonCompatValue(input) {
851
873
  if (input instanceof Uint8Array) {
852
874
  return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(input)];
853
875
  }
876
+ if (isTypedArray(input)) {
877
+ return input;
878
+ }
879
+ if (input instanceof Date || input instanceof RegExp || input instanceof Error) {
880
+ return input;
881
+ }
882
+ if (input instanceof Set) {
883
+ const encoded = [...input.values()].map(
884
+ (v) => encodeJsonCompatValue(v)
885
+ );
886
+ return [JSON_COMPAT_SET, encoded];
887
+ }
888
+ if (input instanceof Map) {
889
+ const encoded = /* @__PURE__ */ new Map();
890
+ for (const [k, v] of input.entries()) {
891
+ encoded.set(
892
+ encodeJsonCompatValue(k),
893
+ encodeJsonCompatValue(v)
894
+ );
895
+ }
896
+ return encoded;
897
+ }
854
898
  if (Array.isArray(input)) {
855
- const encoded = input.map((value) => encodeJsonCompatValue(value));
899
+ const encoded = input.map(
900
+ (value) => encodeJsonCompatValue(value)
901
+ );
856
902
  if (encoded.length === 2 && typeof encoded[0] === "string" && encoded[0].startsWith("$")) {
857
- return ["$" + encoded[0], encoded[1]];
903
+ return [`$${encoded[0]}`, encoded[1]];
858
904
  }
859
905
  return encoded;
860
906
  }
@@ -865,7 +911,8 @@ function encodeJsonCompatValue(input) {
865
911
  }
866
912
  return encoded;
867
913
  }
868
- return input;
914
+ const typeName = typeof input === "object" && input !== null ? input.constructor?.name ?? typeof input : typeof input;
915
+ throw new TypeError(`Value of type "${typeName}" is not CBOR serializable`);
869
916
  }
870
917
  function reviveJsonCompatValue(input, options = {}) {
871
918
  if (typeof input === "bigint") {
@@ -874,6 +921,16 @@ function reviveJsonCompatValue(input, options = {}) {
874
921
  }
875
922
  return input;
876
923
  }
924
+ if (input instanceof Map) {
925
+ const revived = /* @__PURE__ */ new Map();
926
+ for (const [k, v] of input.entries()) {
927
+ revived.set(
928
+ reviveJsonCompatValue(k, options),
929
+ reviveJsonCompatValue(v, options)
930
+ );
931
+ }
932
+ return revived;
933
+ }
877
934
  if (Array.isArray(input)) {
878
935
  if (input.length === 2 && typeof input[0] === "string" && input[0].startsWith("$")) {
879
936
  if (input[0] === JSON_COMPAT_BIGINT) {
@@ -888,6 +945,12 @@ function reviveJsonCompatValue(input, options = {}) {
888
945
  if (input[0] === JSON_COMPAT_UNDEFINED) {
889
946
  return void 0;
890
947
  }
948
+ if (input[0] === JSON_COMPAT_SET) {
949
+ const items = input[1].map(
950
+ (v) => reviveJsonCompatValue(v, options)
951
+ );
952
+ return new Set(items);
953
+ }
891
954
  if (input[0].startsWith("$$")) {
892
955
  return [
893
956
  input[0].substring(1),
@@ -929,19 +992,13 @@ function jsonStringifyCompat(input) {
929
992
  return [JSON_COMPAT_BIGINT, value.toString()];
930
993
  }
931
994
  if (value instanceof ArrayBuffer) {
932
- return [
933
- JSON_COMPAT_ARRAY_BUFFER,
934
- base64EncodeArrayBuffer(value)
935
- ];
995
+ return [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(value)];
936
996
  }
937
997
  if (value instanceof Uint8Array) {
938
- return [
939
- JSON_COMPAT_UINT8_ARRAY,
940
- base64EncodeUint8Array(value)
941
- ];
998
+ return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(value)];
942
999
  }
943
1000
  if (Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && value[0].startsWith("$")) {
944
- return ["$" + value[0], value[1]];
1001
+ return [`$${value[0]}`, value[1]];
945
1002
  }
946
1003
  return value;
947
1004
  });
@@ -3905,11 +3962,11 @@ async function lookupMetadataCached(config) {
3905
3962
  }
3906
3963
 
3907
3964
  // src/engine-client/ws-proxy.ts
3908
- async function createWebSocketProxy(c, targetUrl, protocols) {
3965
+ async function createWebSocketProxy(_c, targetUrl, protocols) {
3909
3966
  const WebSocket2 = await importWebSocket();
3910
3967
  const state = {};
3911
3968
  return {
3912
- onOpen: async (event, clientWs) => {
3969
+ onOpen: async (_event, clientWs) => {
3913
3970
  logger3().debug({ msg: "client websocket connected", targetUrl });
3914
3971
  if (clientWs.readyState !== 1) {
3915
3972
  logger3().warn({
@@ -3947,23 +4004,23 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
3947
4004
  reject(error);
3948
4005
  });
3949
4006
  });
3950
- state.targetWs.addEventListener("message", (event2) => {
3951
- if (typeof event2.data === "string" || event2.data instanceof ArrayBuffer) {
3952
- clientWs.send(event2.data);
3953
- } else if (event2.data instanceof Blob) {
3954
- event2.data.arrayBuffer().then((buffer) => {
4007
+ state.targetWs.addEventListener("message", (event) => {
4008
+ if (typeof event.data === "string" || event.data instanceof ArrayBuffer) {
4009
+ clientWs.send(event.data);
4010
+ } else if (event.data instanceof Blob) {
4011
+ event.data.arrayBuffer().then((buffer) => {
3955
4012
  clientWs.send(buffer);
3956
4013
  });
3957
4014
  }
3958
4015
  });
3959
- state.targetWs.addEventListener("close", (event2) => {
4016
+ state.targetWs.addEventListener("close", (event) => {
3960
4017
  logger3().debug({
3961
4018
  msg: "target websocket closed",
3962
4019
  targetUrl,
3963
- code: event2.code,
3964
- reason: event2.reason
4020
+ code: event.code,
4021
+ reason: event.reason
3965
4022
  });
3966
- closeWebSocketIfOpen(clientWs, event2.code, event2.reason);
4023
+ closeWebSocketIfOpen(clientWs, event.code, event.reason);
3967
4024
  });
3968
4025
  state.targetWs.addEventListener("error", (error) => {
3969
4026
  logger3().error({
@@ -4006,7 +4063,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
4006
4063
  );
4007
4064
  }
4008
4065
  },
4009
- onClose: (event, clientWs) => {
4066
+ onClose: (event, _clientWs) => {
4010
4067
  logger3().debug({
4011
4068
  msg: "client websocket closed",
4012
4069
  targetUrl,
@@ -4023,7 +4080,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
4023
4080
  }
4024
4081
  }
4025
4082
  },
4026
- onError: (event, clientWs) => {
4083
+ onError: (event, _clientWs) => {
4027
4084
  logger3().error({ msg: "client websocket error", targetUrl, event });
4028
4085
  if (state.targetWs) {
4029
4086
  if (state.targetWs.readyState === WebSocket2.OPEN) {
@@ -4139,7 +4196,9 @@ var RemoteEngineControlClient = class {
4139
4196
  name,
4140
4197
  key: serializeActorKey(key),
4141
4198
  runner_name_selector: this.#config.poolName,
4142
- input: actorInput ? uint8ArrayToBase64(encodeCborCompat(actorInput)) : void 0,
4199
+ input: actorInput ? uint8ArrayToBase64(
4200
+ encodeCborCompat(actorInput)
4201
+ ) : void 0,
4143
4202
  crash_policy: crashPolicy ?? "sleep"
4144
4203
  });
4145
4204
  logger3().info({
@@ -4530,7 +4589,7 @@ function classifyActorError(error) {
4530
4589
  return void 0;
4531
4590
  }
4532
4591
  function isRetryableGuardGatewayHttpError(code) {
4533
- return code === "service_unavailable" || code === "actor_stopped_while_waiting" || code === "tunnel_request_aborted" || code === "tunnel_message_timeout" || code === "tunnel_response_closed" || code === "gateway_response_start_timeout";
4592
+ return code === "service_unavailable" || code === "actor_wake_retries_exceeded" || code === "actor_stopped_while_waiting" || code === "tunnel_request_aborted" || code === "tunnel_message_timeout" || code === "tunnel_response_closed" || code === "gateway_response_start_timeout";
4534
4593
  }
4535
4594
  function classifyTransportError(error) {
4536
4595
  if (error.message.includes("database accessed after actor stopped")) {
@@ -4619,10 +4678,7 @@ async function retryOnLifecycleBoundary(run, opts) {
4619
4678
  if (attempt === maxAttempts - 1) {
4620
4679
  break;
4621
4680
  }
4622
- const delayMs = Math.min(
4623
- initialDelayMs * 2 ** attempt,
4624
- maxDelayMs
4625
- );
4681
+ const delayMs = Math.min(initialDelayMs * 2 ** attempt, maxDelayMs);
4626
4682
  await waitWithSignal(delayMs, opts?.signal);
4627
4683
  }
4628
4684
  }
@@ -4661,7 +4717,9 @@ function createQueueSender(senderOptions) {
4661
4717
  }),
4662
4718
  requestToBare: (value) => ({
4663
4719
  name: value.name ?? name,
4664
- body: bufferToArrayBuffer(encodeCborCompat(value.body)),
4720
+ body: bufferToArrayBuffer(
4721
+ encodeCborCompat(value.body)
4722
+ ),
4665
4723
  wait: value.wait ?? false,
4666
4724
  timeout: value.timeout !== void 0 ? BigInt(value.timeout) : null
4667
4725
  }),
@@ -4695,7 +4753,6 @@ function createQueueSender(senderOptions) {
4695
4753
  }
4696
4754
 
4697
4755
  // src/client/actor-conn.ts
4698
- var DEFAULT_MAX_INCOMING_MESSAGE_SIZE = 65536;
4699
4756
  var CONNECT_SYMBOL = /* @__PURE__ */ Symbol("connect");
4700
4757
  var ActorConnRaw = class {
4701
4758
  #disposed = false;
@@ -5174,12 +5231,10 @@ var ActorConnRaw = class {
5174
5231
  );
5175
5232
  return;
5176
5233
  }
5177
- let errorToThrow = new RivetError(
5178
- group,
5179
- code,
5180
- message,
5181
- { metadata, actor }
5182
- );
5234
+ let errorToThrow = new RivetError(group, code, message, {
5235
+ metadata,
5236
+ actor
5237
+ });
5183
5238
  if (isSchedulingError(group, code) && this.#actorId) {
5184
5239
  const schedulingError = await checkForSchedulingError(
5185
5240
  group,
@@ -5575,31 +5630,8 @@ var ActorConnRaw = class {
5575
5630
  }
5576
5631
  }
5577
5632
  );
5578
- const serializedLength = messageLength(messageSerialized);
5579
- if (serializedLength > DEFAULT_MAX_INCOMING_MESSAGE_SIZE && message.body.tag === "ActionRequest") {
5580
- const actionId = Number(message.body.val.id);
5581
- const inFlight = this.#takeActionInFlight(actionId);
5582
- const error = new RivetError(
5583
- "message",
5584
- "incoming_too_long",
5585
- "Incoming message too long",
5586
- {
5587
- maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE,
5588
- actualSize: serializedLength
5589
- }
5590
- );
5591
- logger2().warn({
5592
- msg: "rejecting oversized connection action request",
5593
- actionId,
5594
- actionName: inFlight.name,
5595
- actualSize: serializedLength,
5596
- maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE
5597
- });
5598
- inFlight.reject(error);
5599
- this.#dispatchActorError(error);
5600
- return;
5601
- }
5602
5633
  this.#websocket.send(messageSerialized);
5634
+ const serializedLength = messageLength(messageSerialized);
5603
5635
  logger2().trace({
5604
5636
  msg: "sent websocket message",
5605
5637
  len: serializedLength
@@ -6023,10 +6055,7 @@ var ActorHandleRaw = class {
6023
6055
  }
6024
6056
  }).send(name, body, options);
6025
6057
  } catch (err) {
6026
- const { group, code, message, metadata, actor } = deconstructError(
6027
- err,
6028
- true
6029
- );
6058
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
6030
6059
  if (this.#shouldRetryQueueDispatchOverload(
6031
6060
  group,
6032
6061
  code,
@@ -6059,7 +6088,10 @@ var ActorHandleRaw = class {
6059
6088
  await this.#waitForRetryWindow();
6060
6089
  continue;
6061
6090
  }
6062
- const invalidated = this.#invalidateResolvedActorId(group, code);
6091
+ const invalidated = this.#invalidateResolvedActorId(
6092
+ group,
6093
+ code
6094
+ );
6063
6095
  if (invalidated && attempt < maxAttempts - 1) {
6064
6096
  useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
6065
6097
  if (useQueryTarget) {
@@ -6067,7 +6099,10 @@ var ActorHandleRaw = class {
6067
6099
  }
6068
6100
  continue;
6069
6101
  }
6070
- throw new RivetError(group, code, message, { metadata, actor });
6102
+ throw new RivetError(group, code, message, {
6103
+ metadata,
6104
+ actor
6105
+ });
6071
6106
  }
6072
6107
  }
6073
6108
  throw new Error("unreachable queue retry state");
@@ -6147,7 +6182,9 @@ var ActorHandleRaw = class {
6147
6182
  args
6148
6183
  }),
6149
6184
  requestToBare: (args) => ({
6150
- args: bufferToArrayBuffer(encodeCborCompat(args))
6185
+ args: bufferToArrayBuffer(
6186
+ encodeCborCompat(args)
6187
+ )
6151
6188
  }),
6152
6189
  responseFromJson: (json) => json.output,
6153
6190
  responseFromBare: (bare5) => decodeCborCompat(new Uint8Array(bare5.output))
@@ -6157,10 +6194,7 @@ var ActorHandleRaw = class {
6157
6194
  }
6158
6195
  return output;
6159
6196
  } catch (err) {
6160
- const { group, code, message, metadata, actor } = deconstructError(
6161
- err,
6162
- true
6163
- );
6197
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
6164
6198
  if (await this.#shouldRetrySchedulingError(
6165
6199
  group,
6166
6200
  code,
@@ -6191,11 +6225,16 @@ var ActorHandleRaw = class {
6191
6225
  { metadata, actor }
6192
6226
  );
6193
6227
  }
6194
- const invalidated = this.#invalidateResolvedActorId(group, code);
6228
+ const invalidated = this.#invalidateResolvedActorId(
6229
+ group,
6230
+ code
6231
+ );
6195
6232
  if (invalidated && attempt < maxAttempts - 1) {
6196
6233
  if (group === "actor" && (code === "starting" || code === "stopping")) {
6197
6234
  useQueryTarget = true;
6198
- await new Promise((resolve) => setTimeout(resolve, 100));
6235
+ await new Promise(
6236
+ (resolve) => setTimeout(resolve, 100)
6237
+ );
6199
6238
  }
6200
6239
  continue;
6201
6240
  }
@@ -6372,10 +6411,7 @@ var ActorHandleRaw = class {
6372
6411
  }
6373
6412
  return response;
6374
6413
  } catch (err) {
6375
- const { group, code, message, metadata, actor } = deconstructError(
6376
- err,
6377
- true
6378
- );
6414
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
6379
6415
  if (await this.#shouldRetrySchedulingError(
6380
6416
  group,
6381
6417
  code,
@@ -6398,7 +6434,10 @@ var ActorHandleRaw = class {
6398
6434
  await this.#waitForRetryWindow();
6399
6435
  continue;
6400
6436
  }
6401
- const invalidated = this.#invalidateResolvedActorId(group, code);
6437
+ const invalidated = this.#invalidateResolvedActorId(
6438
+ group,
6439
+ code
6440
+ );
6402
6441
  if (invalidated && attempt < maxAttempts - 1) {
6403
6442
  useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
6404
6443
  if (useQueryTarget) {
@@ -6522,7 +6561,9 @@ var ActorHandleRaw = class {
6522
6561
  if ("directId" in target) {
6523
6562
  return target.directId;
6524
6563
  }
6525
- throw new Error("dynamic actor resolution did not produce a direct actor id");
6564
+ throw new Error(
6565
+ "dynamic actor resolution did not produce a direct actor id"
6566
+ );
6526
6567
  }
6527
6568
  /**
6528
6569
  * Returns the raw URL for routing traffic to the actor.