rivetkit 2.3.0-rc.9 → 2.3.0

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 (222) hide show
  1. package/dist/browser/client.d.ts +498 -62
  2. package/dist/browser/client.js +227 -171
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +50 -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.d.cts +1 -1
  8. package/dist/tsup/actor/errors.d.ts +1 -1
  9. package/dist/tsup/actor/errors.js +1 -1
  10. package/dist/tsup/agent-os/index.cjs +2163 -2087
  11. package/dist/tsup/agent-os/index.cjs.map +1 -1
  12. package/dist/tsup/agent-os/index.d.cts +496 -69
  13. package/dist/tsup/agent-os/index.d.ts +496 -69
  14. package/dist/tsup/agent-os/index.js +2163 -2087
  15. package/dist/tsup/agent-os/index.js.map +1 -1
  16. package/dist/tsup/{chunk-W7EYSYVI.js → chunk-2OTRTA3J.js} +134 -20
  17. package/dist/tsup/chunk-2OTRTA3J.js.map +1 -0
  18. package/dist/tsup/{chunk-VJFRBJVQ.cjs → chunk-3677IIOV.cjs} +138 -24
  19. package/dist/tsup/chunk-3677IIOV.cjs.map +1 -0
  20. package/dist/tsup/{chunk-4CGA6QJO.cjs → chunk-47HHIEXH.cjs} +24 -9
  21. package/dist/tsup/chunk-47HHIEXH.cjs.map +1 -0
  22. package/dist/tsup/{chunk-F3Q5BFQ6.js → chunk-4JDSFJS5.js} +66 -79
  23. package/dist/tsup/chunk-4JDSFJS5.js.map +1 -0
  24. package/dist/tsup/{chunk-GVTOE34S.cjs → chunk-7QKCIVAY.cjs} +222 -235
  25. package/dist/tsup/chunk-7QKCIVAY.cjs.map +1 -0
  26. package/dist/tsup/{chunk-CPA4Y3RG.cjs → chunk-B6VUNZUD.cjs} +10 -10
  27. package/dist/tsup/chunk-B6VUNZUD.cjs.map +1 -0
  28. package/dist/tsup/{chunk-H37XQU3I.js → chunk-BEI24WTI.js} +2 -2
  29. package/dist/tsup/{chunk-KIWH5H3K.js → chunk-BRP62GZC.js} +3 -3
  30. package/dist/tsup/chunk-BRP62GZC.js.map +1 -0
  31. package/dist/tsup/{chunk-T6YVRM4K.js → chunk-DPIMKYNB.js} +63 -2
  32. package/dist/tsup/chunk-DPIMKYNB.js.map +1 -0
  33. package/dist/tsup/{chunk-Y5NSCZA2.cjs → chunk-DXXJPH55.cjs} +44 -15
  34. package/dist/tsup/chunk-DXXJPH55.cjs.map +1 -0
  35. package/dist/tsup/{chunk-3YY5S6TV.js → chunk-HXUEHHJF.js} +2 -2
  36. package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
  37. package/dist/tsup/{chunk-4WPEZBK4.cjs → chunk-I4LN3FNT.cjs} +10 -10
  38. package/dist/tsup/chunk-I4LN3FNT.cjs.map +1 -0
  39. package/dist/tsup/{chunk-PCBNKI2J.js → chunk-JZ7TWV65.js} +1 -1
  40. package/dist/tsup/chunk-JZ7TWV65.js.map +1 -0
  41. package/dist/tsup/{chunk-QAZLM4WT.cjs → chunk-KORQB2IR.cjs} +3 -3
  42. package/dist/tsup/{chunk-QAZLM4WT.cjs.map → chunk-KORQB2IR.cjs.map} +1 -1
  43. package/dist/tsup/{chunk-MALSPBAF.cjs → chunk-LVTBW2RE.cjs} +3 -3
  44. package/dist/tsup/{chunk-MALSPBAF.cjs.map → chunk-LVTBW2RE.cjs.map} +1 -1
  45. package/dist/tsup/{chunk-H7P7WR2Y.js → chunk-MEHBWPLJ.js} +6 -6
  46. package/dist/tsup/chunk-MEHBWPLJ.js.map +1 -0
  47. package/dist/tsup/{chunk-WQ4HNA4W.cjs → chunk-NIY3RSPX.cjs} +64 -3
  48. package/dist/tsup/chunk-NIY3RSPX.cjs.map +1 -0
  49. package/dist/tsup/{chunk-MMMEZM5J.js → chunk-P2GNQ4RN.js} +4 -4
  50. package/dist/tsup/chunk-P2GNQ4RN.js.map +1 -0
  51. package/dist/tsup/{chunk-KJTA3ATT.js → chunk-UMZVD6DQ.js} +22 -7
  52. package/dist/tsup/chunk-UMZVD6DQ.js.map +1 -0
  53. package/dist/tsup/{chunk-LD5YASJU.cjs → chunk-VE2X4KMG.cjs} +2 -2
  54. package/dist/tsup/{chunk-LD5YASJU.cjs.map → chunk-VE2X4KMG.cjs.map} +1 -1
  55. package/dist/tsup/{chunk-VRCIXJRN.js → chunk-VTTFNQQI.js} +36 -7
  56. package/dist/tsup/chunk-VTTFNQQI.js.map +1 -0
  57. package/dist/tsup/{chunk-2NDZ7JCR.cjs → chunk-ZA7FLHKH.cjs} +1 -1
  58. package/dist/tsup/chunk-ZA7FLHKH.cjs.map +1 -0
  59. package/dist/tsup/client/mod.cjs +9 -9
  60. package/dist/tsup/client/mod.d.cts +5 -5
  61. package/dist/tsup/client/mod.d.ts +5 -5
  62. package/dist/tsup/client/mod.js +8 -8
  63. package/dist/tsup/common/log.cjs +3 -3
  64. package/dist/tsup/common/log.js +2 -2
  65. package/dist/tsup/common/websocket.cjs +4 -4
  66. package/dist/tsup/common/websocket.js +3 -3
  67. package/dist/tsup/{config-0Ta55UV0.d.ts → config-BxWAw3iH.d.ts} +529 -23
  68. package/dist/tsup/{config-Ca8dN4cS.d.cts → config-CZQQ-mso.d.cts} +529 -23
  69. package/dist/tsup/{config-CxjGYf4K.d.cts → config-D49x8NpL.d.cts} +1 -2
  70. package/dist/tsup/{config-CxjGYf4K.d.ts → config-D49x8NpL.d.ts} +1 -2
  71. package/dist/tsup/{context-B_IWbWne.d.ts → context-Bw7xq8w3.d.cts} +8 -8
  72. package/dist/tsup/{context-CUrQ9MHc.d.cts → context-D8QA76sV.d.ts} +8 -8
  73. package/dist/tsup/db/drizzle.cjs +3 -3
  74. package/dist/tsup/db/drizzle.d.cts +1 -1
  75. package/dist/tsup/db/drizzle.d.ts +1 -1
  76. package/dist/tsup/db/drizzle.js +1 -1
  77. package/dist/tsup/db/mod.cjs +2 -2
  78. package/dist/tsup/db/mod.d.cts +2 -2
  79. package/dist/tsup/db/mod.d.ts +2 -2
  80. package/dist/tsup/db/mod.js +1 -1
  81. package/dist/tsup/dynamic/mod.cjs +24 -0
  82. package/dist/tsup/dynamic/mod.cjs.map +1 -0
  83. package/dist/tsup/dynamic/mod.d.cts +37 -0
  84. package/dist/tsup/dynamic/mod.d.ts +37 -0
  85. package/dist/tsup/dynamic/mod.js +24 -0
  86. package/dist/tsup/dynamic/mod.js.map +1 -0
  87. package/dist/tsup/inspector/mod.cjs +6 -6
  88. package/dist/tsup/inspector/mod.js +5 -5
  89. package/dist/tsup/inspector-tab/mod.cjs +173 -0
  90. package/dist/tsup/inspector-tab/mod.cjs.map +1 -0
  91. package/dist/tsup/inspector-tab/mod.d.cts +250 -0
  92. package/dist/tsup/inspector-tab/mod.d.ts +250 -0
  93. package/dist/tsup/inspector-tab/mod.js +173 -0
  94. package/dist/tsup/inspector-tab/mod.js.map +1 -0
  95. package/dist/tsup/mod.cjs +730 -336
  96. package/dist/tsup/mod.cjs.map +1 -1
  97. package/dist/tsup/mod.d.cts +5 -5
  98. package/dist/tsup/mod.d.ts +5 -5
  99. package/dist/tsup/mod.js +633 -239
  100. package/dist/tsup/mod.js.map +1 -1
  101. package/dist/tsup/test/mod.cjs +21 -18
  102. package/dist/tsup/test/mod.cjs.map +1 -1
  103. package/dist/tsup/test/mod.d.cts +4 -4
  104. package/dist/tsup/test/mod.d.ts +4 -4
  105. package/dist/tsup/test/mod.js +18 -15
  106. package/dist/tsup/test/mod.js.map +1 -1
  107. package/dist/tsup/{utils-DVekpm4I.d.cts → utils-DQosb24I.d.cts} +1 -1
  108. package/dist/tsup/{utils-DVekpm4I.d.ts → utils-DQosb24I.d.ts} +1 -1
  109. package/dist/tsup/utils.cjs +3 -3
  110. package/dist/tsup/utils.d.cts +1 -1
  111. package/dist/tsup/utils.d.ts +1 -1
  112. package/dist/tsup/utils.js +2 -2
  113. package/dist/tsup/workflow/mod.cjs +307 -282
  114. package/dist/tsup/workflow/mod.cjs.map +1 -1
  115. package/dist/tsup/workflow/mod.d.cts +6 -6
  116. package/dist/tsup/workflow/mod.d.ts +6 -6
  117. package/dist/tsup/workflow/mod.js +501 -476
  118. package/dist/tsup/workflow/mod.js.map +1 -1
  119. package/package.json +32 -11
  120. package/src/actor/config.ts +159 -51
  121. package/src/actor/contexts/index.ts +7 -2
  122. package/src/actor/definition.ts +17 -19
  123. package/src/actor/driver.ts +3 -3
  124. package/src/actor/errors.ts +9 -3
  125. package/src/actor/instance/mod.ts +26 -34
  126. package/src/actor/keys.ts +1 -1
  127. package/src/actor/mod.ts +22 -20
  128. package/src/actor/schema.ts +2 -2
  129. package/src/agent-os/actor/index.ts +38 -18
  130. package/src/agent-os/actor/preview.ts +1 -2
  131. package/src/agent-os/actor/session.ts +2 -2
  132. package/src/agent-os/config.ts +1 -1
  133. package/src/agent-os/fs/database-vfs.ts +1 -1
  134. package/src/agent-os/index.ts +16 -15
  135. package/src/client/actor-common.ts +87 -54
  136. package/src/client/actor-conn.ts +8 -36
  137. package/src/client/actor-handle.ts +69 -51
  138. package/src/client/actor-query.ts +5 -5
  139. package/src/client/errors.ts +1 -1
  140. package/src/client/lifecycle-errors.ts +2 -4
  141. package/src/client/query.ts +1 -1
  142. package/src/client/queue.ts +8 -3
  143. package/src/client/raw-utils.ts +8 -6
  144. package/src/client/resolve-gateway-target.ts +1 -1
  145. package/src/client/utils.ts +2 -7
  146. package/src/common/actor-websocket.ts +3 -1
  147. package/src/common/bare/actor-persist/v1.ts +205 -163
  148. package/src/common/bare/actor-persist/v2.ts +265 -213
  149. package/src/common/bare/actor-persist/v3.ts +176 -172
  150. package/src/common/bare/actor-persist/v4.ts +254 -253
  151. package/src/common/bare/transport/v1.ts +659 -543
  152. package/src/common/client-protocol-versioned.ts +66 -64
  153. package/src/common/database/config.ts +2 -8
  154. package/src/common/database/native-database.ts +1 -1
  155. package/src/common/database/shared.ts +1 -0
  156. package/src/common/encoding.ts +250 -16
  157. package/src/common/engine.ts +28 -1
  158. package/src/common/eventsource.ts +1 -1
  159. package/src/common/inline-websocket-adapter.ts +14 -13
  160. package/src/common/log.ts +1 -0
  161. package/src/common/router.ts +13 -17
  162. package/src/common/utils.ts +1 -150
  163. package/src/common/websocket-interface.ts +1 -1
  164. package/src/db/mod.ts +1 -1
  165. package/src/devtools-loader/index.ts +4 -7
  166. package/src/devtools-loader/serve-devtools.ts +26 -0
  167. package/src/drivers/engine/actor-driver.ts +58 -56
  168. package/src/dynamic/instance.ts +32 -0
  169. package/src/dynamic/internal.ts +50 -0
  170. package/src/dynamic/isolate-runtime.ts +66 -0
  171. package/src/dynamic/mod.ts +32 -0
  172. package/src/engine-client/actor-http-client.ts +3 -3
  173. package/src/engine-client/actor-websocket-client.ts +6 -5
  174. package/src/engine-client/api-endpoints.ts +51 -2
  175. package/src/engine-client/api-utils.ts +2 -2
  176. package/src/engine-client/driver.ts +1 -1
  177. package/src/engine-client/mod.ts +6 -3
  178. package/src/engine-client/ws-proxy.ts +9 -4
  179. package/src/inspector/client.browser.ts +5 -11
  180. package/src/inspector/mod.ts +1 -3
  181. package/src/inspector-tab/mod.ts +315 -0
  182. package/src/registry/config/envoy.ts +1 -2
  183. package/src/registry/config/index.ts +40 -16
  184. package/src/registry/index.ts +154 -74
  185. package/src/registry/napi-runtime.ts +13 -2
  186. package/src/registry/native-validation.ts +10 -12
  187. package/src/registry/native.ts +367 -181
  188. package/src/registry/process-metrics.ts +250 -0
  189. package/src/registry/runtime.ts +41 -1
  190. package/src/registry/wasm-runtime.ts +18 -2
  191. package/src/registry/write-through-proxy.ts +40 -0
  192. package/src/serde.ts +2 -2
  193. package/src/serverless/configure.ts +18 -7
  194. package/src/test/mod.ts +11 -8
  195. package/src/utils/endpoint-parser.ts +1 -1
  196. package/src/utils/env-vars.ts +6 -0
  197. package/src/utils/router.ts +1 -1
  198. package/src/utils/serve.ts +4 -5
  199. package/src/utils.ts +1 -2
  200. package/src/workflow/context.ts +61 -33
  201. package/src/workflow/driver.ts +4 -6
  202. package/src/workflow/inspector.ts +4 -3
  203. package/src/workflow/mod.ts +15 -17
  204. package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
  205. package/dist/tsup/chunk-3YY5S6TV.js.map +0 -1
  206. package/dist/tsup/chunk-4CGA6QJO.cjs.map +0 -1
  207. package/dist/tsup/chunk-4WPEZBK4.cjs.map +0 -1
  208. package/dist/tsup/chunk-CPA4Y3RG.cjs.map +0 -1
  209. package/dist/tsup/chunk-F3Q5BFQ6.js.map +0 -1
  210. package/dist/tsup/chunk-GVTOE34S.cjs.map +0 -1
  211. package/dist/tsup/chunk-H7P7WR2Y.js.map +0 -1
  212. package/dist/tsup/chunk-KIWH5H3K.js.map +0 -1
  213. package/dist/tsup/chunk-KJTA3ATT.js.map +0 -1
  214. package/dist/tsup/chunk-MMMEZM5J.js.map +0 -1
  215. package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
  216. package/dist/tsup/chunk-T6YVRM4K.js.map +0 -1
  217. package/dist/tsup/chunk-VJFRBJVQ.cjs.map +0 -1
  218. package/dist/tsup/chunk-VRCIXJRN.js.map +0 -1
  219. package/dist/tsup/chunk-W7EYSYVI.js.map +0 -1
  220. package/dist/tsup/chunk-WQ4HNA4W.cjs.map +0 -1
  221. package/dist/tsup/chunk-Y5NSCZA2.cjs.map +0 -1
  222. /package/dist/tsup/{chunk-H37XQU3I.js.map → chunk-BEI24WTI.js.map} +0 -0
@@ -1,3 +1,10 @@
1
+ // src/common/log.ts
2
+ import {
3
+ pino,
4
+ stdTimeFunctions
5
+ } from "pino";
6
+ import { z } from "zod/v4";
7
+
1
8
  // src/actor/errors.ts
2
9
  var INTERNAL_ERROR_CODE = "internal_error";
3
10
  var INTERNAL_ERROR_DESCRIPTION = "An internal error occurred";
@@ -75,19 +82,6 @@ function actorNotFound(identifier) {
75
82
  );
76
83
  }
77
84
 
78
- // src/utils/env-vars.ts
79
- var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
80
- var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
81
- var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
82
- var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
83
- var getRivetPool = () => getEnvUniversal("RIVET_POOL");
84
- var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
85
- var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
86
- var getLogTimestamp = () => getEnvUniversal("RIVET_LOG_TIMESTAMP") === "1";
87
- var getLogMessage = () => getEnvUniversal("RIVET_LOG_MESSAGE") === "1";
88
- var getLogErrorStack = () => getEnvUniversal("RIVET_LOG_ERROR_STACK") === "1";
89
- var getNextPhase = () => getEnvUniversal("NEXT_PHASE");
90
-
91
85
  // src/common/utils.ts
92
86
  function assertUnreachable(x) {
93
87
  throw new Error(`Unreachable case: ${x}`);
@@ -145,7 +139,7 @@ function deconstructError(error, exposeInternalError = false) {
145
139
  actor = error.actor;
146
140
  }
147
141
  metadata = {
148
- //url: `https://hub.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
142
+ //url: `https://dashboard.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
149
143
  };
150
144
  }
151
145
  return {
@@ -200,7 +194,7 @@ function noopNext() {
200
194
  // package.json
201
195
  var package_default = {
202
196
  name: "rivetkit",
203
- version: "2.3.0-rc.9",
197
+ version: "2.3.0",
204
198
  description: "Lightweight libraries for building stateful actors on edge platforms",
205
199
  license: "Apache-2.0",
206
200
  keywords: [
@@ -272,6 +266,16 @@ var package_default = {
272
266
  default: "./dist/tsup/db/drizzle.cjs"
273
267
  }
274
268
  },
269
+ "./dynamic": {
270
+ import: {
271
+ types: "./dist/tsup/dynamic/mod.d.ts",
272
+ default: "./dist/tsup/dynamic/mod.js"
273
+ },
274
+ require: {
275
+ types: "./dist/tsup/dynamic/mod.d.cts",
276
+ default: "./dist/tsup/dynamic/mod.cjs"
277
+ }
278
+ },
275
279
  "./client": {
276
280
  import: {
277
281
  browser: {
@@ -316,6 +320,16 @@ var package_default = {
316
320
  default: "./dist/tsup/inspector/mod.cjs"
317
321
  }
318
322
  },
323
+ "./inspector-tab": {
324
+ import: {
325
+ types: "./dist/tsup/inspector-tab/mod.d.ts",
326
+ default: "./dist/tsup/inspector-tab/mod.js"
327
+ },
328
+ require: {
329
+ types: "./dist/tsup/inspector-tab/mod.d.cts",
330
+ default: "./dist/tsup/inspector-tab/mod.cjs"
331
+ }
332
+ },
319
333
  "./inspector/client": {
320
334
  import: {
321
335
  types: "./dist/browser/inspector/client.d.ts",
@@ -351,7 +365,7 @@ var package_default = {
351
365
  "./dist/tsup/chunk-*.cjs"
352
366
  ],
353
367
  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",
368
+ 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/inspector-tab/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
369
  "build:browser": "tsup --config tsup.browser.config.ts",
356
370
  "check-types": "tsc --noEmit",
357
371
  lint: "biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments",
@@ -368,13 +382,14 @@ var package_default = {
368
382
  "actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts"
369
383
  },
370
384
  dependencies: {
371
- "@rivet-dev/agent-os-core": "^0.1.1",
372
385
  "@hono/node-server": "^1.18.2",
373
386
  "@hono/node-ws": "^1.1.1",
374
387
  "@hono/zod-openapi": "^1.1.5",
388
+ "@rivet-dev/agent-os-core": "^0.1.1",
375
389
  "@rivetkit/bare-ts": "^0.6.2",
376
390
  "@rivetkit/engine-cli": "workspace:*",
377
391
  "@rivetkit/engine-envoy-protocol": "workspace:*",
392
+ "@rivetkit/on-change": "6.0.1",
378
393
  "@rivetkit/rivetkit-napi": "workspace:*",
379
394
  "@rivetkit/rivetkit-wasm": "workspace:*",
380
395
  "@rivetkit/traces": "workspace:*",
@@ -392,10 +407,10 @@ var package_default = {
392
407
  zod: "^4.1.0"
393
408
  },
394
409
  devDependencies: {
410
+ "@biomejs/biome": "^2.3",
395
411
  "@copilotkit/llmock": "^1.6.0",
396
412
  "@rivet-dev/agent-os-common": "*",
397
413
  "@rivet-dev/agent-os-pi": "^0.1.1",
398
- "@biomejs/biome": "^2.3",
399
414
  "@standard-schema/spec": "^1.0.0",
400
415
  "@types/invariant": "^2",
401
416
  "@types/node": "^22.13.1",
@@ -426,12 +441,81 @@ var package_default = {
426
441
  stableVersion: "0.8.0"
427
442
  };
428
443
 
444
+ // src/utils.ts
445
+ var VERSION = package_default.version;
446
+ var _userAgent;
447
+ function httpUserAgent() {
448
+ if (_userAgent !== void 0) {
449
+ return _userAgent;
450
+ }
451
+ let userAgent = `RivetKit/${VERSION}`;
452
+ const navigatorObj = typeof navigator !== "undefined" ? navigator : void 0;
453
+ if (navigatorObj?.userAgent) userAgent += ` ${navigatorObj.userAgent}`;
454
+ _userAgent = userAgent;
455
+ return userAgent;
456
+ }
457
+ function getEnvUniversal(key) {
458
+ if (typeof Deno !== "undefined") {
459
+ return Deno.env.get(key);
460
+ } else if (typeof process !== "undefined") {
461
+ return process.env[key];
462
+ }
463
+ }
464
+ function promiseWithResolvers(onReject) {
465
+ let resolve;
466
+ let reject;
467
+ const promise = new Promise((res, rej) => {
468
+ resolve = res;
469
+ reject = rej;
470
+ });
471
+ promise.catch(onReject);
472
+ return { promise, resolve, reject };
473
+ }
474
+ function bufferToArrayBuffer(buf) {
475
+ return buf.buffer.slice(
476
+ buf.byteOffset,
477
+ buf.byteOffset + buf.byteLength
478
+ );
479
+ }
480
+ function combineUrlPath(endpoint, path, queryParams) {
481
+ const baseUrl = new URL(endpoint);
482
+ const pathParts = path.split("?");
483
+ const pathOnly = pathParts[0];
484
+ const existingQuery = pathParts[1] || "";
485
+ const basePath = baseUrl.pathname.replace(/\/$/, "");
486
+ const cleanPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
487
+ const fullPath = (basePath + cleanPath).replace(/\/\//g, "/");
488
+ const queryParts = [];
489
+ if (existingQuery) {
490
+ queryParts.push(existingQuery);
491
+ }
492
+ if (queryParams) {
493
+ for (const [key, value] of Object.entries(queryParams)) {
494
+ if (value !== void 0) {
495
+ queryParts.push(
496
+ `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
497
+ );
498
+ }
499
+ }
500
+ }
501
+ const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
502
+ return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
503
+ }
504
+
505
+ // src/utils/env-vars.ts
506
+ var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
507
+ var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
508
+ var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
509
+ var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
510
+ var getRivetPool = () => getEnvUniversal("RIVET_POOL");
511
+ var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
512
+ var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
513
+ var getLogTimestamp = () => getEnvUniversal("RIVET_LOG_TIMESTAMP") === "1";
514
+ var getLogMessage = () => getEnvUniversal("RIVET_LOG_MESSAGE") === "1";
515
+ var getLogErrorStack = () => getEnvUniversal("RIVET_LOG_ERROR_STACK") === "1";
516
+ var getNextPhase = () => getEnvUniversal("NEXT_PHASE");
517
+
429
518
  // src/common/log.ts
430
- import {
431
- pino,
432
- stdTimeFunctions
433
- } from "pino";
434
- import { z } from "zod/v4";
435
519
  var baseLogger;
436
520
  var configuredLogLevel;
437
521
  var loggerCache = /* @__PURE__ */ new Map();
@@ -471,6 +555,7 @@ function configureDefaultLogger(logLevel) {
471
555
  messageKey: "msg",
472
556
  // Do not include pid/hostname in output
473
557
  base: {},
558
+ errorKey: "error",
474
559
  // Keep the numeric level so the logfmt sink can match Pino's levels.
475
560
  formatters: {
476
561
  level(_label, number) {
@@ -575,74 +660,12 @@ function quoteLogfmtString(value) {
575
660
  return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n")}"`;
576
661
  }
577
662
 
578
- // src/utils.ts
579
- var VERSION = package_default.version;
580
- var _userAgent;
581
- function httpUserAgent() {
582
- if (_userAgent !== void 0) {
583
- return _userAgent;
584
- }
585
- let userAgent = `RivetKit/${VERSION}`;
586
- const navigatorObj = typeof navigator !== "undefined" ? navigator : void 0;
587
- if (navigatorObj?.userAgent) userAgent += ` ${navigatorObj.userAgent}`;
588
- _userAgent = userAgent;
589
- return userAgent;
590
- }
591
- function getEnvUniversal(key) {
592
- if (typeof Deno !== "undefined") {
593
- return Deno.env.get(key);
594
- } else if (typeof process !== "undefined") {
595
- return process.env[key];
596
- }
597
- }
598
- function promiseWithResolvers(onReject) {
599
- let resolve;
600
- let reject;
601
- const promise = new Promise((res, rej) => {
602
- resolve = res;
603
- reject = rej;
604
- });
605
- promise.catch(onReject);
606
- return { promise, resolve, reject };
607
- }
608
- function bufferToArrayBuffer(buf) {
609
- return buf.buffer.slice(
610
- buf.byteOffset,
611
- buf.byteOffset + buf.byteLength
612
- );
613
- }
614
- function combineUrlPath(endpoint, path, queryParams) {
615
- const baseUrl = new URL(endpoint);
616
- const pathParts = path.split("?");
617
- const pathOnly = pathParts[0];
618
- const existingQuery = pathParts[1] || "";
619
- const basePath = baseUrl.pathname.replace(/\/$/, "");
620
- const cleanPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
621
- const fullPath = (basePath + cleanPath).replace(/\/\//g, "/");
622
- const queryParts = [];
623
- if (existingQuery) {
624
- queryParts.push(existingQuery);
625
- }
626
- if (queryParams) {
627
- for (const [key, value] of Object.entries(queryParams)) {
628
- if (value !== void 0) {
629
- queryParts.push(
630
- `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
631
- );
632
- }
633
- }
634
- }
635
- const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
636
- return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
637
- }
638
-
639
663
  // src/devtools-loader/log.ts
640
664
  function logger() {
641
665
  return getLogger("devtools");
642
666
  }
643
667
 
644
668
  // src/devtools-loader/index.ts
645
- var DEFAULT_DEVTOOLS_URL = (version = VERSION) => `https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
646
669
  var scriptId = "rivetkit-devtools-script";
647
670
  function injectDevtools(config) {
648
671
  if (!window) {
@@ -650,9 +673,10 @@ function injectDevtools(config) {
650
673
  return;
651
674
  }
652
675
  if (!document.getElementById(scriptId)) {
676
+ const src = `${config.endpoint?.replace(/\/$/, "")}/devtools/mod.js`;
653
677
  const script = document.createElement("script");
654
678
  script.id = scriptId;
655
- script.src = DEFAULT_DEVTOOLS_URL();
679
+ script.src = src;
656
680
  script.async = true;
657
681
  document.head.appendChild(script);
658
682
  }
@@ -762,7 +786,7 @@ function deserializeActorKey(keyString) {
762
786
  }
763
787
  }
764
788
  if (escaping) {
765
- parts.push(currentPart + "\\");
789
+ parts.push(`${currentPart}\\`);
766
790
  } else if (isEmptyStringMarker) {
767
791
  parts.push("");
768
792
  } else if (currentPart !== "" || parts.length > 0) {
@@ -805,6 +829,10 @@ var JSON_COMPAT_BIGINT = "$BigInt";
805
829
  var JSON_COMPAT_ARRAY_BUFFER = "$ArrayBuffer";
806
830
  var JSON_COMPAT_UINT8_ARRAY = "$Uint8Array";
807
831
  var JSON_COMPAT_UNDEFINED = "$Undefined";
832
+ var JSON_COMPAT_SET = "$Set";
833
+ function isTypedArray(value) {
834
+ 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;
835
+ }
808
836
  var EncodingSchema = z2.enum(["json", "cbor", "bare"]);
809
837
  async function inputDataToBuffer(data) {
810
838
  if (typeof data === "string") {
@@ -839,9 +867,15 @@ function isPlainObject(value) {
839
867
  return proto === Object.prototype || proto === null;
840
868
  }
841
869
  function encodeJsonCompatValue(input) {
870
+ if (input === null) {
871
+ return input;
872
+ }
842
873
  if (input === void 0) {
843
874
  return [JSON_COMPAT_UNDEFINED, 0];
844
875
  }
876
+ if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
877
+ return input;
878
+ }
845
879
  if (typeof input === "bigint") {
846
880
  return [JSON_COMPAT_BIGINT, input.toString()];
847
881
  }
@@ -851,10 +885,34 @@ function encodeJsonCompatValue(input) {
851
885
  if (input instanceof Uint8Array) {
852
886
  return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(input)];
853
887
  }
888
+ if (isTypedArray(input)) {
889
+ return input;
890
+ }
891
+ if (input instanceof Date || input instanceof RegExp || input instanceof Error) {
892
+ return input;
893
+ }
894
+ if (input instanceof Set) {
895
+ const encoded = [...input.values()].map(
896
+ (v) => encodeJsonCompatValue(v)
897
+ );
898
+ return [JSON_COMPAT_SET, encoded];
899
+ }
900
+ if (input instanceof Map) {
901
+ const encoded = /* @__PURE__ */ new Map();
902
+ for (const [k, v] of input.entries()) {
903
+ encoded.set(
904
+ encodeJsonCompatValue(k),
905
+ encodeJsonCompatValue(v)
906
+ );
907
+ }
908
+ return encoded;
909
+ }
854
910
  if (Array.isArray(input)) {
855
- const encoded = input.map((value) => encodeJsonCompatValue(value));
911
+ const encoded = input.map(
912
+ (value) => encodeJsonCompatValue(value)
913
+ );
856
914
  if (encoded.length === 2 && typeof encoded[0] === "string" && encoded[0].startsWith("$")) {
857
- return ["$" + encoded[0], encoded[1]];
915
+ return [`$${encoded[0]}`, encoded[1]];
858
916
  }
859
917
  return encoded;
860
918
  }
@@ -865,7 +923,8 @@ function encodeJsonCompatValue(input) {
865
923
  }
866
924
  return encoded;
867
925
  }
868
- return input;
926
+ const typeName = typeof input === "object" && input !== null ? input.constructor?.name ?? typeof input : typeof input;
927
+ throw new TypeError(`Value of type "${typeName}" is not CBOR serializable`);
869
928
  }
870
929
  function reviveJsonCompatValue(input, options = {}) {
871
930
  if (typeof input === "bigint") {
@@ -874,6 +933,16 @@ function reviveJsonCompatValue(input, options = {}) {
874
933
  }
875
934
  return input;
876
935
  }
936
+ if (input instanceof Map) {
937
+ const revived = /* @__PURE__ */ new Map();
938
+ for (const [k, v] of input.entries()) {
939
+ revived.set(
940
+ reviveJsonCompatValue(k, options),
941
+ reviveJsonCompatValue(v, options)
942
+ );
943
+ }
944
+ return revived;
945
+ }
877
946
  if (Array.isArray(input)) {
878
947
  if (input.length === 2 && typeof input[0] === "string" && input[0].startsWith("$")) {
879
948
  if (input[0] === JSON_COMPAT_BIGINT) {
@@ -888,6 +957,12 @@ function reviveJsonCompatValue(input, options = {}) {
888
957
  if (input[0] === JSON_COMPAT_UNDEFINED) {
889
958
  return void 0;
890
959
  }
960
+ if (input[0] === JSON_COMPAT_SET) {
961
+ const items = input[1].map(
962
+ (v) => reviveJsonCompatValue(v, options)
963
+ );
964
+ return new Set(items);
965
+ }
891
966
  if (input[0].startsWith("$$")) {
892
967
  return [
893
968
  input[0].substring(1),
@@ -929,19 +1004,13 @@ function jsonStringifyCompat(input) {
929
1004
  return [JSON_COMPAT_BIGINT, value.toString()];
930
1005
  }
931
1006
  if (value instanceof ArrayBuffer) {
932
- return [
933
- JSON_COMPAT_ARRAY_BUFFER,
934
- base64EncodeArrayBuffer(value)
935
- ];
1007
+ return [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(value)];
936
1008
  }
937
1009
  if (value instanceof Uint8Array) {
938
- return [
939
- JSON_COMPAT_UINT8_ARRAY,
940
- base64EncodeUint8Array(value)
941
- ];
1010
+ return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(value)];
942
1011
  }
943
1012
  if (Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && value[0].startsWith("$")) {
944
- return ["$" + value[0], value[1]];
1013
+ return [`$${value[0]}`, value[1]];
945
1014
  }
946
1015
  return value;
947
1016
  });
@@ -1053,7 +1122,7 @@ async function sendHttpRequestToGateway(runConfig, gatewayUrl, actorRequest, opt
1053
1122
  if (reqBody.byteLength !== 0) {
1054
1123
  bodyToSend = reqBody;
1055
1124
  guardHeaders.delete("transfer-encoding");
1056
- guardHeaders.set("content-length", String(bodyToSend.byteLength));
1125
+ guardHeaders.delete("content-length");
1057
1126
  }
1058
1127
  }
1059
1128
  const guardRequest = new Request(gatewayUrl, {
@@ -3905,11 +3974,11 @@ async function lookupMetadataCached(config) {
3905
3974
  }
3906
3975
 
3907
3976
  // src/engine-client/ws-proxy.ts
3908
- async function createWebSocketProxy(c, targetUrl, protocols) {
3977
+ async function createWebSocketProxy(_c, targetUrl, protocols) {
3909
3978
  const WebSocket2 = await importWebSocket();
3910
3979
  const state = {};
3911
3980
  return {
3912
- onOpen: async (event, clientWs) => {
3981
+ onOpen: async (_event, clientWs) => {
3913
3982
  logger3().debug({ msg: "client websocket connected", targetUrl });
3914
3983
  if (clientWs.readyState !== 1) {
3915
3984
  logger3().warn({
@@ -3947,23 +4016,25 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
3947
4016
  reject(error);
3948
4017
  });
3949
4018
  });
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) => {
4019
+ state.connectPromise.catch(() => {
4020
+ });
4021
+ state.targetWs.addEventListener("message", (event) => {
4022
+ if (typeof event.data === "string" || event.data instanceof ArrayBuffer) {
4023
+ clientWs.send(event.data);
4024
+ } else if (event.data instanceof Blob) {
4025
+ event.data.arrayBuffer().then((buffer) => {
3955
4026
  clientWs.send(buffer);
3956
4027
  });
3957
4028
  }
3958
4029
  });
3959
- state.targetWs.addEventListener("close", (event2) => {
4030
+ state.targetWs.addEventListener("close", (event) => {
3960
4031
  logger3().debug({
3961
4032
  msg: "target websocket closed",
3962
4033
  targetUrl,
3963
- code: event2.code,
3964
- reason: event2.reason
4034
+ code: event.code,
4035
+ reason: event.reason
3965
4036
  });
3966
- closeWebSocketIfOpen(clientWs, event2.code, event2.reason);
4037
+ closeWebSocketIfOpen(clientWs, event.code, event.reason);
3967
4038
  });
3968
4039
  state.targetWs.addEventListener("error", (error) => {
3969
4040
  logger3().error({
@@ -4006,7 +4077,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
4006
4077
  );
4007
4078
  }
4008
4079
  },
4009
- onClose: (event, clientWs) => {
4080
+ onClose: (event, _clientWs) => {
4010
4081
  logger3().debug({
4011
4082
  msg: "client websocket closed",
4012
4083
  targetUrl,
@@ -4023,7 +4094,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
4023
4094
  }
4024
4095
  }
4025
4096
  },
4026
- onError: (event, clientWs) => {
4097
+ onError: (event, _clientWs) => {
4027
4098
  logger3().error({ msg: "client websocket error", targetUrl, event });
4028
4099
  if (state.targetWs) {
4029
4100
  if (state.targetWs.readyState === WebSocket2.OPEN) {
@@ -4139,7 +4210,9 @@ var RemoteEngineControlClient = class {
4139
4210
  name,
4140
4211
  key: serializeActorKey(key),
4141
4212
  runner_name_selector: this.#config.poolName,
4142
- input: actorInput ? uint8ArrayToBase64(encodeCborCompat(actorInput)) : void 0,
4213
+ input: actorInput ? uint8ArrayToBase64(
4214
+ encodeCborCompat(actorInput)
4215
+ ) : void 0,
4143
4216
  crash_policy: crashPolicy ?? "sleep"
4144
4217
  });
4145
4218
  logger3().info({
@@ -4530,7 +4603,7 @@ function classifyActorError(error) {
4530
4603
  return void 0;
4531
4604
  }
4532
4605
  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";
4606
+ 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
4607
  }
4535
4608
  function classifyTransportError(error) {
4536
4609
  if (error.message.includes("database accessed after actor stopped")) {
@@ -4619,10 +4692,7 @@ async function retryOnLifecycleBoundary(run, opts) {
4619
4692
  if (attempt === maxAttempts - 1) {
4620
4693
  break;
4621
4694
  }
4622
- const delayMs = Math.min(
4623
- initialDelayMs * 2 ** attempt,
4624
- maxDelayMs
4625
- );
4695
+ const delayMs = Math.min(initialDelayMs * 2 ** attempt, maxDelayMs);
4626
4696
  await waitWithSignal(delayMs, opts?.signal);
4627
4697
  }
4628
4698
  }
@@ -4661,7 +4731,9 @@ function createQueueSender(senderOptions) {
4661
4731
  }),
4662
4732
  requestToBare: (value) => ({
4663
4733
  name: value.name ?? name,
4664
- body: bufferToArrayBuffer(encodeCborCompat(value.body)),
4734
+ body: bufferToArrayBuffer(
4735
+ encodeCborCompat(value.body)
4736
+ ),
4665
4737
  wait: value.wait ?? false,
4666
4738
  timeout: value.timeout !== void 0 ? BigInt(value.timeout) : null
4667
4739
  }),
@@ -4695,7 +4767,6 @@ function createQueueSender(senderOptions) {
4695
4767
  }
4696
4768
 
4697
4769
  // src/client/actor-conn.ts
4698
- var DEFAULT_MAX_INCOMING_MESSAGE_SIZE = 65536;
4699
4770
  var CONNECT_SYMBOL = /* @__PURE__ */ Symbol("connect");
4700
4771
  var ActorConnRaw = class {
4701
4772
  #disposed = false;
@@ -5174,12 +5245,10 @@ var ActorConnRaw = class {
5174
5245
  );
5175
5246
  return;
5176
5247
  }
5177
- let errorToThrow = new RivetError(
5178
- group,
5179
- code,
5180
- message,
5181
- { metadata, actor }
5182
- );
5248
+ let errorToThrow = new RivetError(group, code, message, {
5249
+ metadata,
5250
+ actor
5251
+ });
5183
5252
  if (isSchedulingError(group, code) && this.#actorId) {
5184
5253
  const schedulingError = await checkForSchedulingError(
5185
5254
  group,
@@ -5575,31 +5644,8 @@ var ActorConnRaw = class {
5575
5644
  }
5576
5645
  }
5577
5646
  );
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
5647
  this.#websocket.send(messageSerialized);
5648
+ const serializedLength = messageLength(messageSerialized);
5603
5649
  logger2().trace({
5604
5650
  msg: "sent websocket message",
5605
5651
  len: serializedLength
@@ -6023,10 +6069,7 @@ var ActorHandleRaw = class {
6023
6069
  }
6024
6070
  }).send(name, body, options);
6025
6071
  } catch (err) {
6026
- const { group, code, message, metadata, actor } = deconstructError(
6027
- err,
6028
- true
6029
- );
6072
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
6030
6073
  if (this.#shouldRetryQueueDispatchOverload(
6031
6074
  group,
6032
6075
  code,
@@ -6059,7 +6102,10 @@ var ActorHandleRaw = class {
6059
6102
  await this.#waitForRetryWindow();
6060
6103
  continue;
6061
6104
  }
6062
- const invalidated = this.#invalidateResolvedActorId(group, code);
6105
+ const invalidated = this.#invalidateResolvedActorId(
6106
+ group,
6107
+ code
6108
+ );
6063
6109
  if (invalidated && attempt < maxAttempts - 1) {
6064
6110
  useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
6065
6111
  if (useQueryTarget) {
@@ -6067,7 +6113,10 @@ var ActorHandleRaw = class {
6067
6113
  }
6068
6114
  continue;
6069
6115
  }
6070
- throw new RivetError(group, code, message, { metadata, actor });
6116
+ throw new RivetError(group, code, message, {
6117
+ metadata,
6118
+ actor
6119
+ });
6071
6120
  }
6072
6121
  }
6073
6122
  throw new Error("unreachable queue retry state");
@@ -6147,7 +6196,9 @@ var ActorHandleRaw = class {
6147
6196
  args
6148
6197
  }),
6149
6198
  requestToBare: (args) => ({
6150
- args: bufferToArrayBuffer(encodeCborCompat(args))
6199
+ args: bufferToArrayBuffer(
6200
+ encodeCborCompat(args)
6201
+ )
6151
6202
  }),
6152
6203
  responseFromJson: (json) => json.output,
6153
6204
  responseFromBare: (bare5) => decodeCborCompat(new Uint8Array(bare5.output))
@@ -6157,10 +6208,7 @@ var ActorHandleRaw = class {
6157
6208
  }
6158
6209
  return output;
6159
6210
  } catch (err) {
6160
- const { group, code, message, metadata, actor } = deconstructError(
6161
- err,
6162
- true
6163
- );
6211
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
6164
6212
  if (await this.#shouldRetrySchedulingError(
6165
6213
  group,
6166
6214
  code,
@@ -6191,11 +6239,16 @@ var ActorHandleRaw = class {
6191
6239
  { metadata, actor }
6192
6240
  );
6193
6241
  }
6194
- const invalidated = this.#invalidateResolvedActorId(group, code);
6242
+ const invalidated = this.#invalidateResolvedActorId(
6243
+ group,
6244
+ code
6245
+ );
6195
6246
  if (invalidated && attempt < maxAttempts - 1) {
6196
6247
  if (group === "actor" && (code === "starting" || code === "stopping")) {
6197
6248
  useQueryTarget = true;
6198
- await new Promise((resolve) => setTimeout(resolve, 100));
6249
+ await new Promise(
6250
+ (resolve) => setTimeout(resolve, 100)
6251
+ );
6199
6252
  }
6200
6253
  continue;
6201
6254
  }
@@ -6372,10 +6425,7 @@ var ActorHandleRaw = class {
6372
6425
  }
6373
6426
  return response;
6374
6427
  } catch (err) {
6375
- const { group, code, message, metadata, actor } = deconstructError(
6376
- err,
6377
- true
6378
- );
6428
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
6379
6429
  if (await this.#shouldRetrySchedulingError(
6380
6430
  group,
6381
6431
  code,
@@ -6398,7 +6448,10 @@ var ActorHandleRaw = class {
6398
6448
  await this.#waitForRetryWindow();
6399
6449
  continue;
6400
6450
  }
6401
- const invalidated = this.#invalidateResolvedActorId(group, code);
6451
+ const invalidated = this.#invalidateResolvedActorId(
6452
+ group,
6453
+ code
6454
+ );
6402
6455
  if (invalidated && attempt < maxAttempts - 1) {
6403
6456
  useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
6404
6457
  if (useQueryTarget) {
@@ -6498,8 +6551,9 @@ var ActorHandleRaw = class {
6498
6551
  this.#gatewayOptions,
6499
6552
  options
6500
6553
  );
6554
+ const useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
6501
6555
  const target = await this.#resolveGatewayRequestTarget(
6502
- false,
6556
+ useQueryTarget,
6503
6557
  gatewayOptions
6504
6558
  );
6505
6559
  return await rawWebSocket(
@@ -6522,7 +6576,9 @@ var ActorHandleRaw = class {
6522
6576
  if ("directId" in target) {
6523
6577
  return target.directId;
6524
6578
  }
6525
- throw new Error("dynamic actor resolution did not produce a direct actor id");
6579
+ throw new Error(
6580
+ "dynamic actor resolution did not produce a direct actor id"
6581
+ );
6526
6582
  }
6527
6583
  /**
6528
6584
  * Returns the raw URL for routing traffic to the actor.