rivetkit 0.0.0-skip-ready-wait-flatten-client-options.1cae221 → 0.0.0-sqlite-uds.4e59a38

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 (253) hide show
  1. package/dist/browser/client.d.ts +561 -89
  2. package/dist/browser/client.js +1063 -430
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.d.ts +22 -2
  5. package/dist/browser/inspector/client.js +1036 -232
  6. package/dist/browser/inspector/client.js.map +1 -1
  7. package/dist/tsup/actor/errors.cjs +6 -2
  8. package/dist/tsup/actor/errors.cjs.map +1 -1
  9. package/dist/tsup/actor/errors.d.cts +1 -74
  10. package/dist/tsup/actor/errors.d.ts +1 -74
  11. package/dist/tsup/actor/errors.js +5 -1
  12. package/dist/tsup/agent-os/index.cjs +2218 -2082
  13. package/dist/tsup/agent-os/index.cjs.map +1 -1
  14. package/dist/tsup/agent-os/index.d.cts +556 -85
  15. package/dist/tsup/agent-os/index.d.ts +556 -85
  16. package/dist/tsup/agent-os/index.js +2220 -2084
  17. package/dist/tsup/agent-os/index.js.map +1 -1
  18. package/dist/tsup/{chunk-NFC5VU36.cjs → chunk-3GC3EP6D.cjs} +18 -10
  19. package/dist/tsup/chunk-3GC3EP6D.cjs.map +1 -0
  20. package/dist/tsup/{chunk-7MRGNVSR.js → chunk-3GLNEWGY.js} +78 -6
  21. package/dist/tsup/chunk-3GLNEWGY.js.map +1 -0
  22. package/dist/tsup/{chunk-V3QNBJ7N.cjs → chunk-4FC7TVS6.cjs} +35 -10
  23. package/dist/tsup/chunk-4FC7TVS6.cjs.map +1 -0
  24. package/dist/tsup/{chunk-POTPHU3P.cjs → chunk-62LSMTP2.cjs} +3 -3
  25. package/dist/tsup/{chunk-POTPHU3P.cjs.map → chunk-62LSMTP2.cjs.map} +1 -1
  26. package/dist/tsup/{chunk-OIKOPSXQ.js → chunk-7IVUT2JT.js} +12 -4
  27. package/dist/tsup/chunk-7IVUT2JT.js.map +1 -0
  28. package/dist/tsup/{chunk-22XU3BVY.cjs → chunk-GEYQLGXC.cjs} +925 -328
  29. package/dist/tsup/chunk-GEYQLGXC.cjs.map +1 -0
  30. package/dist/tsup/{chunk-D2TLG75Y.cjs → chunk-GMN45CQ6.cjs} +10 -10
  31. package/dist/tsup/chunk-GMN45CQ6.cjs.map +1 -0
  32. package/dist/tsup/{chunk-3BFYSYRU.js → chunk-HXUEHHJF.js} +3 -2
  33. package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
  34. package/dist/tsup/{chunk-IOYKCB6Y.cjs → chunk-I336PMWT.cjs} +44 -9
  35. package/dist/tsup/chunk-I336PMWT.cjs.map +1 -0
  36. package/dist/tsup/{chunk-RZEJJJKU.js → chunk-IB73AMGJ.js} +42 -7
  37. package/dist/tsup/chunk-IB73AMGJ.js.map +1 -0
  38. package/dist/tsup/{chunk-4ZIWB4CQ.js → chunk-ITWJ6Y7G.js} +2 -2
  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-W54QCENI.js → chunk-KTNBYGRU.js} +134 -20
  42. package/dist/tsup/chunk-KTNBYGRU.js.map +1 -0
  43. package/dist/tsup/{chunk-AK57AL7S.cjs → chunk-OAPVVVTX.cjs} +79 -7
  44. package/dist/tsup/chunk-OAPVVVTX.cjs.map +1 -0
  45. package/dist/tsup/{chunk-TPBHXFB2.cjs → chunk-OUDV3ITX.cjs} +138 -24
  46. package/dist/tsup/chunk-OUDV3ITX.cjs.map +1 -0
  47. package/dist/tsup/{chunk-XNZR7UD2.cjs → chunk-PRXTIERO.cjs} +90 -65
  48. package/dist/tsup/chunk-PRXTIERO.cjs.map +1 -0
  49. package/dist/tsup/{chunk-LLD2D5LO.cjs → chunk-VE2X4KMG.cjs} +3 -2
  50. package/dist/tsup/chunk-VE2X4KMG.cjs.map +1 -0
  51. package/dist/tsup/{chunk-KSG2COSQ.js → chunk-WRZEVVLL.js} +6 -6
  52. package/dist/tsup/chunk-WRZEVVLL.js.map +1 -0
  53. package/dist/tsup/{chunk-LNMB25HW.js → chunk-XAIMHUPG.js} +780 -183
  54. package/dist/tsup/chunk-XAIMHUPG.js.map +1 -0
  55. package/dist/tsup/{chunk-D4TSTM6C.js → chunk-XZ62SWSC.js} +83 -58
  56. package/dist/tsup/chunk-XZ62SWSC.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/{chunk-K34B3OVG.js → chunk-ZZ3WBRPD.js} +34 -9
  60. package/dist/tsup/chunk-ZZ3WBRPD.js.map +1 -0
  61. package/dist/tsup/client/mod.cjs +9 -9
  62. package/dist/tsup/client/mod.cjs.map +1 -1
  63. package/dist/tsup/client/mod.d.cts +8 -9
  64. package/dist/tsup/client/mod.d.ts +8 -9
  65. package/dist/tsup/client/mod.js +8 -8
  66. package/dist/tsup/common/log.cjs +5 -3
  67. package/dist/tsup/common/log.cjs.map +1 -1
  68. package/dist/tsup/common/log.d.cts +5 -1
  69. package/dist/tsup/common/log.d.ts +5 -1
  70. package/dist/tsup/common/log.js +6 -4
  71. package/dist/tsup/common/websocket.cjs +4 -4
  72. package/dist/tsup/common/websocket.js +3 -3
  73. package/dist/tsup/{config-CRdGwwbr.d.cts → config-CxG53eQo.d.cts} +577 -36
  74. package/dist/tsup/{config-kxXbtrJU.d.ts → config-DLOxy81E.d.cts} +5 -5
  75. package/dist/tsup/{config-kxXbtrJU.d.cts → config-DLOxy81E.d.ts} +5 -5
  76. package/dist/tsup/{config-DIpBWm5C.d.ts → config-Ds6DCRhV.d.ts} +577 -36
  77. package/dist/tsup/context-8KlcOYIs.d.cts +129 -0
  78. package/dist/tsup/context-Cfbm4QLr.d.ts +129 -0
  79. package/dist/tsup/db/drizzle.cjs +151 -79
  80. package/dist/tsup/db/drizzle.cjs.map +1 -1
  81. package/dist/tsup/db/drizzle.d.cts +2 -2
  82. package/dist/tsup/db/drizzle.d.ts +2 -2
  83. package/dist/tsup/db/drizzle.js +151 -79
  84. package/dist/tsup/db/drizzle.js.map +1 -1
  85. package/dist/tsup/db/mod.cjs +79 -24
  86. package/dist/tsup/db/mod.cjs.map +1 -1
  87. package/dist/tsup/db/mod.d.cts +2 -2
  88. package/dist/tsup/db/mod.d.ts +2 -2
  89. package/dist/tsup/db/mod.js +78 -23
  90. package/dist/tsup/db/mod.js.map +1 -1
  91. package/dist/tsup/dynamic/mod.cjs +24 -0
  92. package/dist/tsup/dynamic/mod.cjs.map +1 -0
  93. package/dist/tsup/dynamic/mod.d.cts +37 -0
  94. package/dist/tsup/dynamic/mod.d.ts +37 -0
  95. package/dist/tsup/dynamic/mod.js +24 -0
  96. package/dist/tsup/dynamic/mod.js.map +1 -0
  97. package/dist/tsup/inspector/mod.cjs +47 -12
  98. package/dist/tsup/inspector/mod.cjs.map +1 -1
  99. package/dist/tsup/inspector/mod.d.cts +37 -15
  100. package/dist/tsup/inspector/mod.d.ts +37 -15
  101. package/dist/tsup/inspector/mod.js +46 -11
  102. package/dist/tsup/inspector/mod.js.map +1 -1
  103. package/dist/tsup/inspector-tab/mod.cjs +162 -0
  104. package/dist/tsup/inspector-tab/mod.cjs.map +1 -0
  105. package/dist/tsup/inspector-tab/mod.d.cts +240 -0
  106. package/dist/tsup/inspector-tab/mod.d.ts +240 -0
  107. package/dist/tsup/inspector-tab/mod.js +162 -0
  108. package/dist/tsup/inspector-tab/mod.js.map +1 -0
  109. package/dist/tsup/mod.cjs +1078 -479
  110. package/dist/tsup/mod.cjs.map +1 -1
  111. package/dist/tsup/mod.d.cts +5 -6
  112. package/dist/tsup/mod.d.ts +5 -6
  113. package/dist/tsup/mod.js +996 -397
  114. package/dist/tsup/mod.js.map +1 -1
  115. package/dist/tsup/test/mod.cjs +21 -18
  116. package/dist/tsup/test/mod.cjs.map +1 -1
  117. package/dist/tsup/test/mod.d.cts +4 -5
  118. package/dist/tsup/test/mod.d.ts +4 -5
  119. package/dist/tsup/test/mod.js +18 -15
  120. package/dist/tsup/test/mod.js.map +1 -1
  121. package/dist/tsup/utils-CqDnC_PS.d.cts +104 -0
  122. package/dist/tsup/utils-CqDnC_PS.d.ts +104 -0
  123. package/dist/tsup/utils.cjs +3 -3
  124. package/dist/tsup/utils.d.cts +1 -1
  125. package/dist/tsup/utils.d.ts +1 -1
  126. package/dist/tsup/utils.js +2 -2
  127. package/dist/tsup/workflow/mod.cjs +386 -322
  128. package/dist/tsup/workflow/mod.cjs.map +1 -1
  129. package/dist/tsup/workflow/mod.d.cts +8 -9
  130. package/dist/tsup/workflow/mod.d.ts +8 -9
  131. package/dist/tsup/workflow/mod.js +363 -299
  132. package/dist/tsup/workflow/mod.js.map +1 -1
  133. package/package.json +35 -14
  134. package/src/actor/config.ts +188 -59
  135. package/src/actor/contexts/index.ts +7 -2
  136. package/src/actor/definition.ts +17 -19
  137. package/src/actor/driver.ts +3 -3
  138. package/src/actor/errors.ts +70 -7
  139. package/src/actor/instance/mod.ts +39 -56
  140. package/src/actor/keys.ts +2 -1
  141. package/src/actor/mod.ts +22 -20
  142. package/src/actor/schema.ts +2 -2
  143. package/src/agent-os/actor/index.ts +38 -18
  144. package/src/agent-os/actor/preview.ts +1 -2
  145. package/src/agent-os/actor/session.ts +2 -2
  146. package/src/agent-os/config.ts +1 -1
  147. package/src/agent-os/fs/database-vfs.ts +1 -1
  148. package/src/agent-os/index.ts +16 -15
  149. package/src/client/actor-common.ts +88 -62
  150. package/src/client/actor-conn.ts +58 -63
  151. package/src/client/actor-handle.ts +125 -71
  152. package/src/client/actor-query.ts +5 -5
  153. package/src/client/config.ts +3 -3
  154. package/src/client/errors.ts +2 -1
  155. package/src/client/lifecycle-errors.ts +2 -4
  156. package/src/client/query.ts +1 -1
  157. package/src/client/queue.ts +8 -3
  158. package/src/client/raw-utils.ts +10 -10
  159. package/src/client/resolve-gateway-target.ts +1 -1
  160. package/src/client/utils.ts +34 -10
  161. package/src/common/actor-router-consts.ts +7 -4
  162. package/src/common/actor-websocket.ts +3 -1
  163. package/src/common/bare/actor-persist/v1.ts +205 -163
  164. package/src/common/bare/actor-persist/v2.ts +265 -213
  165. package/src/common/bare/actor-persist/v3.ts +176 -172
  166. package/src/common/bare/actor-persist/v4.ts +254 -253
  167. package/src/common/bare/generated/client-protocol/v4.ts +599 -0
  168. package/src/common/bare/generated/inspector/v5.ts +1016 -0
  169. package/src/common/bare/transport/v1.ts +694 -542
  170. package/src/common/client-protocol-versioned.ts +176 -67
  171. package/src/common/client-protocol-zod.ts +7 -0
  172. package/src/common/client-protocol.ts +1 -1
  173. package/src/common/database/config.ts +16 -5
  174. package/src/common/database/mod.test.ts +83 -16
  175. package/src/common/database/mod.ts +86 -30
  176. package/src/common/database/native-database.test.ts +35 -22
  177. package/src/common/database/native-database.ts +26 -10
  178. package/src/common/database/shared.ts +1 -0
  179. package/src/common/encoding.ts +250 -16
  180. package/src/common/engine.ts +28 -1
  181. package/src/common/eventsource.ts +1 -1
  182. package/src/common/inline-websocket-adapter.ts +14 -13
  183. package/src/common/log.ts +15 -8
  184. package/src/common/router.ts +49 -23
  185. package/src/common/utils.ts +10 -202
  186. package/src/common/websocket-interface.ts +1 -1
  187. package/src/db/drizzle.ts +173 -96
  188. package/src/db/mod.ts +1 -1
  189. package/src/devtools-loader/index.ts +4 -7
  190. package/src/devtools-loader/serve-devtools.ts +26 -0
  191. package/src/drivers/engine/actor-driver.ts +76 -73
  192. package/src/dynamic/instance.ts +32 -0
  193. package/src/dynamic/internal.ts +50 -0
  194. package/src/dynamic/isolate-runtime.ts +66 -0
  195. package/src/dynamic/mod.ts +32 -0
  196. package/src/engine-client/actor-http-client.ts +6 -9
  197. package/src/engine-client/actor-websocket-client.ts +14 -13
  198. package/src/engine-client/api-endpoints.ts +51 -2
  199. package/src/engine-client/api-utils.ts +2 -2
  200. package/src/engine-client/driver.ts +3 -4
  201. package/src/engine-client/mod.ts +17 -10
  202. package/src/engine-client/ws-proxy.ts +9 -4
  203. package/src/inspector/client.browser.ts +66 -15
  204. package/src/inspector/mod.ts +2 -4
  205. package/src/inspector-tab/mod.ts +300 -0
  206. package/src/registry/config/envoy.ts +1 -2
  207. package/src/registry/config/index.ts +46 -20
  208. package/src/registry/index.ts +364 -87
  209. package/src/registry/napi-runtime.ts +97 -8
  210. package/src/registry/native-validation.ts +10 -12
  211. package/src/registry/native.ts +592 -343
  212. package/src/registry/process-metrics.ts +250 -0
  213. package/src/registry/runtime.ts +85 -6
  214. package/src/registry/wasm-runtime.ts +72 -3
  215. package/src/registry/write-through-proxy.ts +40 -0
  216. package/src/serde.ts +2 -2
  217. package/src/serverless/configure.ts +19 -8
  218. package/src/test/mod.ts +11 -8
  219. package/src/utils/crypto.ts +14 -0
  220. package/src/utils/endpoint-parser.ts +1 -1
  221. package/src/utils/env-vars.ts +37 -0
  222. package/src/utils/router.ts +1 -1
  223. package/src/utils.ts +1 -2
  224. package/src/workflow/context.ts +703 -240
  225. package/src/workflow/driver.ts +23 -12
  226. package/src/workflow/inspector.ts +12 -3
  227. package/src/workflow/mod.ts +37 -23
  228. package/dist/tsup/chunk-22XU3BVY.cjs.map +0 -1
  229. package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
  230. package/dist/tsup/chunk-3BFYSYRU.js.map +0 -1
  231. package/dist/tsup/chunk-7MRGNVSR.js.map +0 -1
  232. package/dist/tsup/chunk-AK57AL7S.cjs.map +0 -1
  233. package/dist/tsup/chunk-D2TLG75Y.cjs.map +0 -1
  234. package/dist/tsup/chunk-D4TSTM6C.js.map +0 -1
  235. package/dist/tsup/chunk-IOYKCB6Y.cjs.map +0 -1
  236. package/dist/tsup/chunk-K34B3OVG.js.map +0 -1
  237. package/dist/tsup/chunk-KSG2COSQ.js.map +0 -1
  238. package/dist/tsup/chunk-LLD2D5LO.cjs.map +0 -1
  239. package/dist/tsup/chunk-LNMB25HW.js.map +0 -1
  240. package/dist/tsup/chunk-NFC5VU36.cjs.map +0 -1
  241. package/dist/tsup/chunk-OIKOPSXQ.js.map +0 -1
  242. package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
  243. package/dist/tsup/chunk-RZEJJJKU.js.map +0 -1
  244. package/dist/tsup/chunk-TPBHXFB2.cjs.map +0 -1
  245. package/dist/tsup/chunk-V3QNBJ7N.cjs.map +0 -1
  246. package/dist/tsup/chunk-W54QCENI.js.map +0 -1
  247. package/dist/tsup/chunk-XNZR7UD2.cjs.map +0 -1
  248. package/dist/tsup/context-B7G6sk7x.d.ts +0 -92
  249. package/dist/tsup/context-DzMRHkjC.d.cts +0 -92
  250. package/dist/tsup/utils-fwx3o3K9.d.cts +0 -18
  251. package/dist/tsup/utils-fwx3o3K9.d.ts +0 -18
  252. package/src/utils/serve.ts +0 -217
  253. /package/dist/tsup/{chunk-4ZIWB4CQ.js.map → chunk-ITWJ6Y7G.js.map} +0 -0
@@ -1,9 +1,16 @@
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";
4
11
  var USER_ERROR_CODE = "user_error";
5
12
  function looksLikeRivetErrorOptions(value) {
6
- return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "cause" in value);
13
+ return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "actor" in value || "cause" in value);
7
14
  }
8
15
  function isTypedErrorTag(value) {
9
16
  return value === "ActorError" || value === "RivetError";
@@ -22,6 +29,7 @@ var RivetError = class extends Error {
22
29
  public;
23
30
  metadata;
24
31
  statusCode;
32
+ actor;
25
33
  group;
26
34
  code;
27
35
  static isRivetError(error) {
@@ -39,6 +47,7 @@ var RivetError = class extends Error {
39
47
  this.public = normalized.public ?? false;
40
48
  this.metadata = normalized.metadata;
41
49
  this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
50
+ this.actor = normalized.actor;
42
51
  }
43
52
  toString() {
44
53
  return this.message;
@@ -73,19 +82,6 @@ function actorNotFound(identifier) {
73
82
  );
74
83
  }
75
84
 
76
- // src/utils/env-vars.ts
77
- var getRivetEngine = () => getEnvUniversal("RIVET_ENGINE");
78
- var getRivetEndpoint = () => getEnvUniversal("RIVET_ENDPOINT");
79
- var getRivetToken = () => getEnvUniversal("RIVET_TOKEN");
80
- var getRivetNamespace = () => getEnvUniversal("RIVET_NAMESPACE");
81
- var getRivetPool = () => getEnvUniversal("RIVET_POOL");
82
- var getLogLevel = () => getEnvUniversal("RIVET_LOG_LEVEL") ?? getEnvUniversal("LOG_LEVEL");
83
- var getLogTarget = () => getEnvUniversal("RIVET_LOG_TARGET") === "1";
84
- var getLogTimestamp = () => getEnvUniversal("RIVET_LOG_TIMESTAMP") === "1";
85
- var getLogMessage = () => getEnvUniversal("RIVET_LOG_MESSAGE") === "1";
86
- var getLogErrorStack = () => getEnvUniversal("RIVET_LOG_ERROR_STACK") === "1";
87
- var getNextPhase = () => getEnvUniversal("NEXT_PHASE");
88
-
89
85
  // src/common/utils.ts
90
86
  function assertUnreachable(x) {
91
87
  throw new Error(`Unreachable case: ${x}`);
@@ -93,13 +89,14 @@ function assertUnreachable(x) {
93
89
  function isCanonicalStructuredRivetError(error) {
94
90
  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
91
  }
96
- function deconstructError(error, logger4, extraLog, exposeInternalError = false) {
92
+ function deconstructError(error, exposeInternalError = false) {
97
93
  let statusCode;
98
94
  let public_;
99
95
  let group;
100
96
  let code;
101
97
  let message;
102
98
  let metadata;
99
+ let actor;
103
100
  if (isCanonicalStructuredRivetError(error)) {
104
101
  statusCode = typeof error.statusCode === "number" ? error.statusCode : error.public ? 400 : 500;
105
102
  public_ = error.public ?? false;
@@ -107,14 +104,7 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
107
104
  code = error.code;
108
105
  message = error.message;
109
106
  metadata = error.metadata;
110
- logger4.info({
111
- msg: "structured error passthrough",
112
- group,
113
- code,
114
- message,
115
- ...EXTRA_ERROR_LOG,
116
- ...extraLog
117
- });
107
+ actor = error.actor;
118
108
  } else if (RivetError.isActorError(error) && error.public) {
119
109
  statusCode = "statusCode" in error && error.statusCode ? error.statusCode : 400;
120
110
  public_ = true;
@@ -122,14 +112,7 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
122
112
  code = error.code;
123
113
  message = getErrorMessage(error);
124
114
  metadata = error.metadata;
125
- logger4.info({
126
- msg: "public error",
127
- group,
128
- code,
129
- message,
130
- ...EXTRA_ERROR_LOG,
131
- ...extraLog
132
- });
115
+ actor = error.actor;
133
116
  } else if (exposeInternalError) {
134
117
  if (RivetError.isActorError(error)) {
135
118
  statusCode = 500;
@@ -138,30 +121,13 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
138
121
  code = error.code;
139
122
  message = getErrorMessage(error);
140
123
  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
- });
124
+ actor = error.actor;
150
125
  } else {
151
126
  statusCode = 500;
152
127
  public_ = false;
153
128
  group = "rivetkit";
154
129
  code = INTERNAL_ERROR_CODE;
155
130
  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
131
  }
166
132
  } else {
167
133
  statusCode = 500;
@@ -169,16 +135,12 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
169
135
  group = "rivetkit";
170
136
  code = INTERNAL_ERROR_CODE;
171
137
  message = INTERNAL_ERROR_DESCRIPTION;
138
+ if (RivetError.isActorError(error)) {
139
+ actor = error.actor;
140
+ }
172
141
  metadata = {
173
- //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}`,
174
143
  };
175
- logger4.warn({
176
- msg: "internal error",
177
- error: getErrorMessage(error),
178
- stack: error?.stack,
179
- ...EXTRA_ERROR_LOG,
180
- ...extraLog
181
- });
182
144
  }
183
145
  return {
184
146
  __type: "ActorError",
@@ -187,7 +149,8 @@ function deconstructError(error, logger4, extraLog, exposeInternalError = false)
187
149
  group,
188
150
  code,
189
151
  message,
190
- metadata
152
+ metadata,
153
+ actor
191
154
  };
192
155
  }
193
156
  function stringifyError(error) {
@@ -231,7 +194,7 @@ function noopNext() {
231
194
  // package.json
232
195
  var package_default = {
233
196
  name: "rivetkit",
234
- version: "0.0.0-skip-ready-wait-flatten-client-options.1cae221",
197
+ version: "0.0.0-sqlite-uds.4e59a38",
235
198
  description: "Lightweight libraries for building stateful actors on edge platforms",
236
199
  license: "Apache-2.0",
237
200
  keywords: [
@@ -303,6 +266,16 @@ var package_default = {
303
266
  default: "./dist/tsup/db/drizzle.cjs"
304
267
  }
305
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
+ },
306
279
  "./client": {
307
280
  import: {
308
281
  browser: {
@@ -347,6 +320,16 @@ var package_default = {
347
320
  default: "./dist/tsup/inspector/mod.cjs"
348
321
  }
349
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
+ },
350
333
  "./inspector/client": {
351
334
  import: {
352
335
  types: "./dist/browser/inspector/client.d.ts",
@@ -382,7 +365,7 @@ var package_default = {
382
365
  "./dist/tsup/chunk-*.cjs"
383
366
  ],
384
367
  scripts: {
385
- 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",
386
369
  "build:browser": "tsup --config tsup.browser.config.ts",
387
370
  "check-types": "tsc --noEmit",
388
371
  lint: "biome check . && pnpm run check:test-skips && pnpm run check:wait-for-comments",
@@ -399,13 +382,12 @@ var package_default = {
399
382
  "actor-config-schema-gen": "tsx scripts/actor-config-schema-gen.ts"
400
383
  },
401
384
  dependencies: {
402
- "@rivet-dev/agent-os-core": "^0.1.1",
403
- "@hono/node-server": "^1.18.2",
404
- "@hono/node-ws": "^1.1.1",
405
385
  "@hono/zod-openapi": "^1.1.5",
386
+ "@rivet-dev/agent-os-core": "^0.1.1",
406
387
  "@rivetkit/bare-ts": "^0.6.2",
407
388
  "@rivetkit/engine-cli": "workspace:*",
408
389
  "@rivetkit/engine-envoy-protocol": "workspace:*",
390
+ "@rivetkit/on-change": "6.0.1",
409
391
  "@rivetkit/rivetkit-napi": "workspace:*",
410
392
  "@rivetkit/rivetkit-wasm": "workspace:*",
411
393
  "@rivetkit/traces": "workspace:*",
@@ -413,7 +395,6 @@ var package_default = {
413
395
  "@rivetkit/workflow-engine": "workspace:*",
414
396
  "cbor-x": "^1.6.0",
415
397
  "drizzle-orm": "^0.44.2",
416
- "get-port": "^7.1.0",
417
398
  hono: "^4.7.0",
418
399
  invariant: "^2.2.4",
419
400
  "p-retry": "^6.2.1",
@@ -423,14 +404,17 @@ var package_default = {
423
404
  zod: "^4.1.0"
424
405
  },
425
406
  devDependencies: {
407
+ "@biomejs/biome": "^2.3",
426
408
  "@copilotkit/llmock": "^1.6.0",
409
+ "@hono/node-server": "^1.18.2",
410
+ "@hono/node-ws": "^1.1.1",
427
411
  "@rivet-dev/agent-os-common": "*",
428
412
  "@rivet-dev/agent-os-pi": "^0.1.1",
429
- "@biomejs/biome": "^2.3",
430
413
  "@standard-schema/spec": "^1.0.0",
431
414
  "@types/invariant": "^2",
432
415
  "@types/node": "^22.13.1",
433
416
  eventsource: "^4.0.0",
417
+ "get-port": "^7.1.0",
434
418
  tsup: "^8.4.0",
435
419
  tsx: "^4.19.4",
436
420
  typescript: "^5.7.3",
@@ -457,12 +441,81 @@ var package_default = {
457
441
  stableVersion: "0.8.0"
458
442
  };
459
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
+
460
518
  // src/common/log.ts
461
- import {
462
- pino,
463
- stdTimeFunctions
464
- } from "pino";
465
- import { z } from "zod/v4";
466
519
  var baseLogger;
467
520
  var configuredLogLevel;
468
521
  var loggerCache = /* @__PURE__ */ new Map();
@@ -492,16 +545,14 @@ function getPinoLevel(logLevel) {
492
545
  function getIncludeTarget() {
493
546
  return getLogTarget();
494
547
  }
495
- function configureDefaultLogger(logLevel) {
496
- if (logLevel) {
497
- configuredLogLevel = logLevel;
498
- }
499
- baseLogger = pino(
548
+ function makeDefaultLogger(logLevel) {
549
+ return pino(
500
550
  {
501
551
  level: getPinoLevel(logLevel),
502
552
  messageKey: "msg",
503
553
  // Do not include pid/hostname in output
504
554
  base: {},
555
+ errorKey: "error",
505
556
  // Keep the numeric level so the logfmt sink can match Pino's levels.
506
557
  formatters: {
507
558
  level(_label, number) {
@@ -512,6 +563,12 @@ function configureDefaultLogger(logLevel) {
512
563
  },
513
564
  createLogfmtDestination()
514
565
  );
566
+ }
567
+ function configureDefaultLogger(logLevel) {
568
+ if (logLevel) {
569
+ configuredLogLevel = logLevel;
570
+ }
571
+ baseLogger = makeDefaultLogger(logLevel);
515
572
  loggerCache.clear();
516
573
  }
517
574
  function getBaseLogger() {
@@ -606,79 +663,12 @@ function quoteLogfmtString(value) {
606
663
  return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n")}"`;
607
664
  }
608
665
 
609
- // src/utils.ts
610
- var VERSION = package_default.version;
611
- var _userAgent;
612
- function httpUserAgent() {
613
- if (_userAgent !== void 0) {
614
- return _userAgent;
615
- }
616
- let userAgent = `RivetKit/${VERSION}`;
617
- const navigatorObj = typeof navigator !== "undefined" ? navigator : void 0;
618
- if (navigatorObj?.userAgent) userAgent += ` ${navigatorObj.userAgent}`;
619
- _userAgent = userAgent;
620
- return userAgent;
621
- }
622
- function getEnvUniversal(key) {
623
- if (typeof Deno !== "undefined") {
624
- return Deno.env.get(key);
625
- } else if (typeof process !== "undefined") {
626
- return process.env[key];
627
- }
628
- }
629
- function promiseWithResolvers(onReject) {
630
- let resolve;
631
- let reject;
632
- const promise = new Promise((res, rej) => {
633
- resolve = res;
634
- reject = rej;
635
- });
636
- promise.catch(onReject);
637
- return { promise, resolve, reject };
638
- }
639
- function bufferToArrayBuffer(buf) {
640
- return buf.buffer.slice(
641
- buf.byteOffset,
642
- buf.byteOffset + buf.byteLength
643
- );
644
- }
645
- function combineUrlPath(endpoint, path, queryParams) {
646
- const baseUrl = new URL(endpoint);
647
- const pathParts = path.split("?");
648
- const pathOnly = pathParts[0];
649
- const existingQuery = pathParts[1] || "";
650
- const basePath = baseUrl.pathname.replace(/\/$/, "");
651
- const cleanPath = pathOnly.startsWith("/") ? pathOnly : `/${pathOnly}`;
652
- const fullPath = (basePath + cleanPath).replace(/\/\//g, "/");
653
- const queryParts = [];
654
- if (existingQuery) {
655
- queryParts.push(existingQuery);
656
- }
657
- if (queryParams) {
658
- for (const [key, value] of Object.entries(queryParams)) {
659
- if (value !== void 0) {
660
- queryParts.push(
661
- `${encodeURIComponent(key)}=${encodeURIComponent(value)}`
662
- );
663
- }
664
- }
665
- }
666
- const fullQuery = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
667
- return `${baseUrl.protocol}//${baseUrl.host}${fullPath}${fullQuery}`;
668
- }
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
-
675
666
  // src/devtools-loader/log.ts
676
667
  function logger() {
677
668
  return getLogger("devtools");
678
669
  }
679
670
 
680
671
  // src/devtools-loader/index.ts
681
- var DEFAULT_DEVTOOLS_URL = (version = VERSION) => `https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
682
672
  var scriptId = "rivetkit-devtools-script";
683
673
  function injectDevtools(config) {
684
674
  if (!window) {
@@ -686,9 +676,10 @@ function injectDevtools(config) {
686
676
  return;
687
677
  }
688
678
  if (!document.getElementById(scriptId)) {
679
+ const src = `${config.endpoint?.replace(/\/$/, "")}/devtools/mod.js`;
689
680
  const script = document.createElement("script");
690
681
  script.id = scriptId;
691
- script.src = DEFAULT_DEVTOOLS_URL();
682
+ script.src = src;
692
683
  script.async = true;
693
684
  document.head.appendChild(script);
694
685
  }
@@ -708,6 +699,7 @@ var KEYS = {
708
699
  INSPECTOR_TOKEN: Uint8Array.from([3]),
709
700
  KV: Uint8Array.from([4]),
710
701
  QUEUE_PREFIX: Uint8Array.from([5]),
702
+ LAST_PUSHED_ALARM: Uint8Array.from([6]),
711
703
  WORKFLOW_PREFIX: Uint8Array.from([6]),
712
704
  TRACES_PREFIX: Uint8Array.from([7])
713
705
  };
@@ -797,7 +789,7 @@ function deserializeActorKey(keyString) {
797
789
  }
798
790
  }
799
791
  if (escaping) {
800
- parts.push(currentPart + "\\");
792
+ parts.push(`${currentPart}\\`);
801
793
  } else if (isEmptyStringMarker) {
802
794
  parts.push("");
803
795
  } else if (currentPart !== "" || parts.length > 0) {
@@ -815,18 +807,19 @@ var HEADER_CONN_PARAMS = "x-rivet-conn-params";
815
807
  var HEADER_RIVET_TOKEN = "x-rivet-token";
816
808
  var HEADER_RIVET_TARGET = "x-rivet-target";
817
809
  var HEADER_RIVET_ACTOR = "x-rivet-actor";
818
- var HEADER_RIVET_BYPASS_CONNECTABLE = "x-rivet-bypass-connectable";
810
+ var HEADER_RIVET_SKIP_READY_WAIT = "x-rivet-skip-ready-wait";
819
811
  var WS_PROTOCOL_STANDARD = "rivet";
820
812
  var WS_PROTOCOL_TARGET = "rivet_target.";
821
813
  var WS_PROTOCOL_ACTOR = "rivet_actor.";
822
814
  var WS_PROTOCOL_ENCODING = "rivet_encoding.";
823
815
  var WS_PROTOCOL_CONN_PARAMS = "rivet_conn_params.";
824
- var WS_PROTOCOL_BYPASS_CONNECTABLE = "rivet_bypass_connectable";
816
+ var WS_PROTOCOL_TOKEN = "rivet_token.";
817
+ var WS_PROTOCOL_SKIP_READY_WAIT = "rivet_skip_ready_wait";
825
818
  var WS_PROTOCOL_TEST_ACK_HOOK = "rivet_test_ack_hook.";
826
819
 
827
820
  // src/engine-client/driver.ts
828
- function shouldBypassConnectable(options = {}) {
829
- return options.bypassConnectable === true || options.skipReadyWait === true;
821
+ function shouldSkipReadyWait(options = {}) {
822
+ return options.skipReadyWait === true;
830
823
  }
831
824
 
832
825
  // src/serde.ts
@@ -839,6 +832,10 @@ var JSON_COMPAT_BIGINT = "$BigInt";
839
832
  var JSON_COMPAT_ARRAY_BUFFER = "$ArrayBuffer";
840
833
  var JSON_COMPAT_UINT8_ARRAY = "$Uint8Array";
841
834
  var JSON_COMPAT_UNDEFINED = "$Undefined";
835
+ var JSON_COMPAT_SET = "$Set";
836
+ function isTypedArray(value) {
837
+ 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;
838
+ }
842
839
  var EncodingSchema = z2.enum(["json", "cbor", "bare"]);
843
840
  async function inputDataToBuffer(data) {
844
841
  if (typeof data === "string") {
@@ -873,9 +870,15 @@ function isPlainObject(value) {
873
870
  return proto === Object.prototype || proto === null;
874
871
  }
875
872
  function encodeJsonCompatValue(input) {
873
+ if (input === null) {
874
+ return input;
875
+ }
876
876
  if (input === void 0) {
877
877
  return [JSON_COMPAT_UNDEFINED, 0];
878
878
  }
879
+ if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
880
+ return input;
881
+ }
879
882
  if (typeof input === "bigint") {
880
883
  return [JSON_COMPAT_BIGINT, input.toString()];
881
884
  }
@@ -885,10 +888,34 @@ function encodeJsonCompatValue(input) {
885
888
  if (input instanceof Uint8Array) {
886
889
  return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(input)];
887
890
  }
891
+ if (isTypedArray(input)) {
892
+ return input;
893
+ }
894
+ if (input instanceof Date || input instanceof RegExp || input instanceof Error) {
895
+ return input;
896
+ }
897
+ if (input instanceof Set) {
898
+ const encoded = [...input.values()].map(
899
+ (v) => encodeJsonCompatValue(v)
900
+ );
901
+ return [JSON_COMPAT_SET, encoded];
902
+ }
903
+ if (input instanceof Map) {
904
+ const encoded = /* @__PURE__ */ new Map();
905
+ for (const [k, v] of input.entries()) {
906
+ encoded.set(
907
+ encodeJsonCompatValue(k),
908
+ encodeJsonCompatValue(v)
909
+ );
910
+ }
911
+ return encoded;
912
+ }
888
913
  if (Array.isArray(input)) {
889
- const encoded = input.map((value) => encodeJsonCompatValue(value));
914
+ const encoded = input.map(
915
+ (value) => encodeJsonCompatValue(value)
916
+ );
890
917
  if (encoded.length === 2 && typeof encoded[0] === "string" && encoded[0].startsWith("$")) {
891
- return ["$" + encoded[0], encoded[1]];
918
+ return [`$${encoded[0]}`, encoded[1]];
892
919
  }
893
920
  return encoded;
894
921
  }
@@ -899,7 +926,8 @@ function encodeJsonCompatValue(input) {
899
926
  }
900
927
  return encoded;
901
928
  }
902
- return input;
929
+ const typeName = typeof input === "object" && input !== null ? input.constructor?.name ?? typeof input : typeof input;
930
+ throw new TypeError(`Value of type "${typeName}" is not CBOR serializable`);
903
931
  }
904
932
  function reviveJsonCompatValue(input, options = {}) {
905
933
  if (typeof input === "bigint") {
@@ -908,6 +936,16 @@ function reviveJsonCompatValue(input, options = {}) {
908
936
  }
909
937
  return input;
910
938
  }
939
+ if (input instanceof Map) {
940
+ const revived = /* @__PURE__ */ new Map();
941
+ for (const [k, v] of input.entries()) {
942
+ revived.set(
943
+ reviveJsonCompatValue(k, options),
944
+ reviveJsonCompatValue(v, options)
945
+ );
946
+ }
947
+ return revived;
948
+ }
911
949
  if (Array.isArray(input)) {
912
950
  if (input.length === 2 && typeof input[0] === "string" && input[0].startsWith("$")) {
913
951
  if (input[0] === JSON_COMPAT_BIGINT) {
@@ -922,6 +960,12 @@ function reviveJsonCompatValue(input, options = {}) {
922
960
  if (input[0] === JSON_COMPAT_UNDEFINED) {
923
961
  return void 0;
924
962
  }
963
+ if (input[0] === JSON_COMPAT_SET) {
964
+ const items = input[1].map(
965
+ (v) => reviveJsonCompatValue(v, options)
966
+ );
967
+ return new Set(items);
968
+ }
925
969
  if (input[0].startsWith("$$")) {
926
970
  return [
927
971
  input[0].substring(1),
@@ -963,19 +1007,13 @@ function jsonStringifyCompat(input) {
963
1007
  return [JSON_COMPAT_BIGINT, value.toString()];
964
1008
  }
965
1009
  if (value instanceof ArrayBuffer) {
966
- return [
967
- JSON_COMPAT_ARRAY_BUFFER,
968
- base64EncodeArrayBuffer(value)
969
- ];
1010
+ return [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(value)];
970
1011
  }
971
1012
  if (value instanceof Uint8Array) {
972
- return [
973
- JSON_COMPAT_UINT8_ARRAY,
974
- base64EncodeUint8Array(value)
975
- ];
1013
+ return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(value)];
976
1014
  }
977
1015
  if (Array.isArray(value) && value.length === 2 && typeof value[0] === "string" && value[0].startsWith("$")) {
978
- return ["$" + value[0], value[1]];
1016
+ return [`$${value[0]}`, value[1]];
979
1017
  }
980
1018
  return value;
981
1019
  });
@@ -1087,7 +1125,7 @@ async function sendHttpRequestToGateway(runConfig, gatewayUrl, actorRequest, opt
1087
1125
  if (reqBody.byteLength !== 0) {
1088
1126
  bodyToSend = reqBody;
1089
1127
  guardHeaders.delete("transfer-encoding");
1090
- guardHeaders.set("content-length", String(bodyToSend.byteLength));
1128
+ guardHeaders.delete("content-length");
1091
1129
  }
1092
1130
  }
1093
1131
  const guardRequest = new Request(gatewayUrl, {
@@ -1116,8 +1154,8 @@ function buildGuardHeaders(runConfig, actorRequest, options) {
1116
1154
  headers.set(HEADER_RIVET_TARGET, "actor");
1117
1155
  headers.set(HEADER_RIVET_ACTOR, options.directActorId);
1118
1156
  }
1119
- if (shouldBypassConnectable(options)) {
1120
- headers.set(HEADER_RIVET_BYPASS_CONNECTABLE, "1");
1157
+ if (shouldSkipReadyWait(options)) {
1158
+ headers.set(HEADER_RIVET_SKIP_READY_WAIT, "1");
1121
1159
  }
1122
1160
  return headers;
1123
1161
  }
@@ -1229,8 +1267,8 @@ var ClientConfigSchemaBase = z3.object({
1229
1267
  encoding: EncodingSchema.default("bare"),
1230
1268
  headers: z3.record(z3.string(), z3.string()).optional().default(() => ({})),
1231
1269
  gateway: z3.object({
1232
- bypassConnectable: z3.boolean().optional().default(false)
1233
- }).optional().default(() => ({ bypassConnectable: false })),
1270
+ skipReadyWait: z3.boolean().optional().default(false)
1271
+ }).optional().default(() => ({ skipReadyWait: false })),
1234
1272
  // See RunConfig.getUpgradeWebSocket
1235
1273
  //
1236
1274
  // This is required in the client config in order to support
@@ -1534,8 +1572,8 @@ function buildActorQueryGatewayUrl(endpoint, namespace, query, token, path = "",
1534
1572
  if (token !== void 0) {
1535
1573
  params.append("rvt-token", token);
1536
1574
  }
1537
- if (shouldBypassConnectable(options)) {
1538
- params.append("rvt-bypass_connectable", "true");
1575
+ if (shouldSkipReadyWait(options)) {
1576
+ params.append("rvt-skip-ready-wait", "true");
1539
1577
  }
1540
1578
  const queryString = params.toString();
1541
1579
  let separator;
@@ -1603,16 +1641,19 @@ async function openWebSocketToGateway(runConfig, gatewayUrl, encoding, params, o
1603
1641
  }
1604
1642
  return bufferedWs;
1605
1643
  }
1606
- function buildWebSocketProtocols(_runConfig, encoding, params, ackHookToken, target, options = {}) {
1644
+ function buildWebSocketProtocols(runConfig, encoding, params, ackHookToken, target, options = {}) {
1607
1645
  const protocols = [];
1608
1646
  protocols.push(WS_PROTOCOL_STANDARD);
1609
1647
  protocols.push(`${WS_PROTOCOL_ENCODING}${encoding}`);
1610
1648
  if (target) {
1611
1649
  protocols.push(`${WS_PROTOCOL_TARGET}${target.target}`);
1612
1650
  protocols.push(`${WS_PROTOCOL_ACTOR}${target.actorId}`);
1651
+ if (runConfig.token) {
1652
+ protocols.push(`${WS_PROTOCOL_TOKEN}${runConfig.token}`);
1653
+ }
1613
1654
  }
1614
- if (shouldBypassConnectable(options)) {
1615
- protocols.push(WS_PROTOCOL_BYPASS_CONNECTABLE);
1655
+ if (shouldSkipReadyWait(options)) {
1656
+ protocols.push(WS_PROTOCOL_SKIP_READY_WAIT);
1616
1657
  }
1617
1658
  if (params) {
1618
1659
  protocols.push(
@@ -2568,129 +2609,561 @@ function write3(bc, x) {
2568
2609
  function read4(bc) {
2569
2610
  return bare3.readBool(bc) ? bare3.readU64(bc) : null;
2570
2611
  }
2571
- function write4(bc, x) {
2572
- bare3.writeBool(bc, x != null);
2612
+ function write4(bc, x) {
2613
+ bare3.writeBool(bc, x != null);
2614
+ if (x != null) {
2615
+ bare3.writeU64(bc, x);
2616
+ }
2617
+ }
2618
+ function readHttpQueueSendRequest(bc) {
2619
+ return {
2620
+ body: readCbor3(bc),
2621
+ name: read2(bc),
2622
+ wait: read3(bc),
2623
+ timeout: read4(bc)
2624
+ };
2625
+ }
2626
+ function writeHttpQueueSendRequest(bc, x) {
2627
+ writeCbor3(bc, x.body);
2628
+ write2(bc, x.name);
2629
+ write3(bc, x.wait);
2630
+ write4(bc, x.timeout);
2631
+ }
2632
+ function encodeHttpQueueSendRequest(x, config) {
2633
+ const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2634
+ const bc = new bare3.ByteCursor(
2635
+ new Uint8Array(fullConfig.initialBufferLength),
2636
+ fullConfig
2637
+ );
2638
+ writeHttpQueueSendRequest(bc, x);
2639
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2640
+ }
2641
+ function decodeHttpQueueSendRequest(bytes) {
2642
+ const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2643
+ const result = readHttpQueueSendRequest(bc);
2644
+ if (bc.offset < bc.view.byteLength) {
2645
+ throw new bare3.BareError(bc.offset, "remaining bytes");
2646
+ }
2647
+ return result;
2648
+ }
2649
+ function readHttpQueueSendResponse(bc) {
2650
+ return {
2651
+ status: bare3.readString(bc),
2652
+ response: read03(bc)
2653
+ };
2654
+ }
2655
+ function writeHttpQueueSendResponse(bc, x) {
2656
+ bare3.writeString(bc, x.status);
2657
+ write03(bc, x.response);
2658
+ }
2659
+ function encodeHttpQueueSendResponse(x, config) {
2660
+ const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2661
+ const bc = new bare3.ByteCursor(
2662
+ new Uint8Array(fullConfig.initialBufferLength),
2663
+ fullConfig
2664
+ );
2665
+ writeHttpQueueSendResponse(bc, x);
2666
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2667
+ }
2668
+ function decodeHttpQueueSendResponse(bytes) {
2669
+ const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2670
+ const result = readHttpQueueSendResponse(bc);
2671
+ if (bc.offset < bc.view.byteLength) {
2672
+ throw new bare3.BareError(bc.offset, "remaining bytes");
2673
+ }
2674
+ return result;
2675
+ }
2676
+ function readHttpResponseError3(bc) {
2677
+ return {
2678
+ group: bare3.readString(bc),
2679
+ code: bare3.readString(bc),
2680
+ message: bare3.readString(bc),
2681
+ metadata: read03(bc)
2682
+ };
2683
+ }
2684
+ function writeHttpResponseError3(bc, x) {
2685
+ bare3.writeString(bc, x.group);
2686
+ bare3.writeString(bc, x.code);
2687
+ bare3.writeString(bc, x.message);
2688
+ write03(bc, x.metadata);
2689
+ }
2690
+ function encodeHttpResponseError3(x, config) {
2691
+ const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2692
+ const bc = new bare3.ByteCursor(
2693
+ new Uint8Array(fullConfig.initialBufferLength),
2694
+ fullConfig
2695
+ );
2696
+ writeHttpResponseError3(bc, x);
2697
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2698
+ }
2699
+ function decodeHttpResponseError3(bytes) {
2700
+ const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2701
+ const result = readHttpResponseError3(bc);
2702
+ if (bc.offset < bc.view.byteLength) {
2703
+ throw new bare3.BareError(bc.offset, "remaining bytes");
2704
+ }
2705
+ return result;
2706
+ }
2707
+ function readHttpResolveResponse3(bc) {
2708
+ return {
2709
+ actorId: bare3.readString(bc)
2710
+ };
2711
+ }
2712
+ function writeHttpResolveResponse3(bc, x) {
2713
+ bare3.writeString(bc, x.actorId);
2714
+ }
2715
+ function encodeHttpResolveResponse3(x, config) {
2716
+ const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2717
+ const bc = new bare3.ByteCursor(
2718
+ new Uint8Array(fullConfig.initialBufferLength),
2719
+ fullConfig
2720
+ );
2721
+ writeHttpResolveResponse3(bc, x);
2722
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2723
+ }
2724
+ function decodeHttpResolveResponse3(bytes) {
2725
+ const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2726
+ const result = readHttpResolveResponse3(bc);
2727
+ if (bc.offset < bc.view.byteLength) {
2728
+ throw new bare3.BareError(bc.offset, "remaining bytes");
2729
+ }
2730
+ return result;
2731
+ }
2732
+
2733
+ // src/common/bare/generated/client-protocol/v4.ts
2734
+ import * as bare4 from "@rivetkit/bare-ts";
2735
+ var DEFAULT_CONFIG4 = /* @__PURE__ */ bare4.Config({});
2736
+ function readCbor4(bc) {
2737
+ return bare4.readData(bc);
2738
+ }
2739
+ function writeCbor4(bc, x) {
2740
+ bare4.writeData(bc, x);
2741
+ }
2742
+ function read04(bc) {
2743
+ return bare4.readBool(bc) ? bare4.readString(bc) : null;
2744
+ }
2745
+ function write04(bc, x) {
2746
+ bare4.writeBool(bc, x != null);
2747
+ if (x != null) {
2748
+ bare4.writeString(bc, x);
2749
+ }
2750
+ }
2751
+ function readActorSpecifier(bc) {
2752
+ return {
2753
+ actorId: bare4.readString(bc),
2754
+ generation: bare4.readUint(bc),
2755
+ key: read04(bc)
2756
+ };
2757
+ }
2758
+ function writeActorSpecifier(bc, x) {
2759
+ bare4.writeString(bc, x.actorId);
2760
+ bare4.writeUint(bc, x.generation);
2761
+ write04(bc, x.key);
2762
+ }
2763
+ function readInit4(bc) {
2764
+ return {
2765
+ actorId: bare4.readString(bc),
2766
+ connectionId: bare4.readString(bc)
2767
+ };
2768
+ }
2769
+ function writeInit4(bc, x) {
2770
+ bare4.writeString(bc, x.actorId);
2771
+ bare4.writeString(bc, x.connectionId);
2772
+ }
2773
+ function read14(bc) {
2774
+ return bare4.readBool(bc) ? readCbor4(bc) : null;
2775
+ }
2776
+ function write14(bc, x) {
2777
+ bare4.writeBool(bc, x != null);
2778
+ if (x != null) {
2779
+ writeCbor4(bc, x);
2780
+ }
2781
+ }
2782
+ function read22(bc) {
2783
+ return bare4.readBool(bc) ? bare4.readUint(bc) : null;
2784
+ }
2785
+ function write22(bc, x) {
2786
+ bare4.writeBool(bc, x != null);
2787
+ if (x != null) {
2788
+ bare4.writeUint(bc, x);
2789
+ }
2790
+ }
2791
+ function read32(bc) {
2792
+ return bare4.readBool(bc) ? readActorSpecifier(bc) : null;
2793
+ }
2794
+ function write32(bc, x) {
2795
+ bare4.writeBool(bc, x != null);
2796
+ if (x != null) {
2797
+ writeActorSpecifier(bc, x);
2798
+ }
2799
+ }
2800
+ function readError4(bc) {
2801
+ return {
2802
+ group: bare4.readString(bc),
2803
+ code: bare4.readString(bc),
2804
+ message: bare4.readString(bc),
2805
+ metadata: read14(bc),
2806
+ actionId: read22(bc),
2807
+ actor: read32(bc)
2808
+ };
2809
+ }
2810
+ function writeError4(bc, x) {
2811
+ bare4.writeString(bc, x.group);
2812
+ bare4.writeString(bc, x.code);
2813
+ bare4.writeString(bc, x.message);
2814
+ write14(bc, x.metadata);
2815
+ write22(bc, x.actionId);
2816
+ write32(bc, x.actor);
2817
+ }
2818
+ function readActionResponse4(bc) {
2819
+ return {
2820
+ id: bare4.readUint(bc),
2821
+ output: readCbor4(bc)
2822
+ };
2823
+ }
2824
+ function writeActionResponse4(bc, x) {
2825
+ bare4.writeUint(bc, x.id);
2826
+ writeCbor4(bc, x.output);
2827
+ }
2828
+ function readEvent4(bc) {
2829
+ return {
2830
+ name: bare4.readString(bc),
2831
+ args: readCbor4(bc)
2832
+ };
2833
+ }
2834
+ function writeEvent4(bc, x) {
2835
+ bare4.writeString(bc, x.name);
2836
+ writeCbor4(bc, x.args);
2837
+ }
2838
+ function readToClientBody4(bc) {
2839
+ const offset = bc.offset;
2840
+ const tag = bare4.readU8(bc);
2841
+ switch (tag) {
2842
+ case 0:
2843
+ return { tag: "Init", val: readInit4(bc) };
2844
+ case 1:
2845
+ return { tag: "Error", val: readError4(bc) };
2846
+ case 2:
2847
+ return { tag: "ActionResponse", val: readActionResponse4(bc) };
2848
+ case 3:
2849
+ return { tag: "Event", val: readEvent4(bc) };
2850
+ default: {
2851
+ bc.offset = offset;
2852
+ throw new bare4.BareError(offset, "invalid tag");
2853
+ }
2854
+ }
2855
+ }
2856
+ function writeToClientBody4(bc, x) {
2857
+ switch (x.tag) {
2858
+ case "Init": {
2859
+ bare4.writeU8(bc, 0);
2860
+ writeInit4(bc, x.val);
2861
+ break;
2862
+ }
2863
+ case "Error": {
2864
+ bare4.writeU8(bc, 1);
2865
+ writeError4(bc, x.val);
2866
+ break;
2867
+ }
2868
+ case "ActionResponse": {
2869
+ bare4.writeU8(bc, 2);
2870
+ writeActionResponse4(bc, x.val);
2871
+ break;
2872
+ }
2873
+ case "Event": {
2874
+ bare4.writeU8(bc, 3);
2875
+ writeEvent4(bc, x.val);
2876
+ break;
2877
+ }
2878
+ }
2879
+ }
2880
+ function readToClient4(bc) {
2881
+ return {
2882
+ body: readToClientBody4(bc)
2883
+ };
2884
+ }
2885
+ function writeToClient4(bc, x) {
2886
+ writeToClientBody4(bc, x.body);
2887
+ }
2888
+ function encodeToClient4(x, config) {
2889
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
2890
+ const bc = new bare4.ByteCursor(
2891
+ new Uint8Array(fullConfig.initialBufferLength),
2892
+ fullConfig
2893
+ );
2894
+ writeToClient4(bc, x);
2895
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2896
+ }
2897
+ function decodeToClient4(bytes) {
2898
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
2899
+ const result = readToClient4(bc);
2900
+ if (bc.offset < bc.view.byteLength) {
2901
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2902
+ }
2903
+ return result;
2904
+ }
2905
+ function readActionRequest4(bc) {
2906
+ return {
2907
+ id: bare4.readUint(bc),
2908
+ name: bare4.readString(bc),
2909
+ args: readCbor4(bc)
2910
+ };
2911
+ }
2912
+ function writeActionRequest4(bc, x) {
2913
+ bare4.writeUint(bc, x.id);
2914
+ bare4.writeString(bc, x.name);
2915
+ writeCbor4(bc, x.args);
2916
+ }
2917
+ function readSubscriptionRequest4(bc) {
2918
+ return {
2919
+ eventName: bare4.readString(bc),
2920
+ subscribe: bare4.readBool(bc)
2921
+ };
2922
+ }
2923
+ function writeSubscriptionRequest4(bc, x) {
2924
+ bare4.writeString(bc, x.eventName);
2925
+ bare4.writeBool(bc, x.subscribe);
2926
+ }
2927
+ function readToServerBody4(bc) {
2928
+ const offset = bc.offset;
2929
+ const tag = bare4.readU8(bc);
2930
+ switch (tag) {
2931
+ case 0:
2932
+ return { tag: "ActionRequest", val: readActionRequest4(bc) };
2933
+ case 1:
2934
+ return { tag: "SubscriptionRequest", val: readSubscriptionRequest4(bc) };
2935
+ default: {
2936
+ bc.offset = offset;
2937
+ throw new bare4.BareError(offset, "invalid tag");
2938
+ }
2939
+ }
2940
+ }
2941
+ function writeToServerBody4(bc, x) {
2942
+ switch (x.tag) {
2943
+ case "ActionRequest": {
2944
+ bare4.writeU8(bc, 0);
2945
+ writeActionRequest4(bc, x.val);
2946
+ break;
2947
+ }
2948
+ case "SubscriptionRequest": {
2949
+ bare4.writeU8(bc, 1);
2950
+ writeSubscriptionRequest4(bc, x.val);
2951
+ break;
2952
+ }
2953
+ }
2954
+ }
2955
+ function readToServer4(bc) {
2956
+ return {
2957
+ body: readToServerBody4(bc)
2958
+ };
2959
+ }
2960
+ function writeToServer4(bc, x) {
2961
+ writeToServerBody4(bc, x.body);
2962
+ }
2963
+ function encodeToServer4(x, config) {
2964
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
2965
+ const bc = new bare4.ByteCursor(
2966
+ new Uint8Array(fullConfig.initialBufferLength),
2967
+ fullConfig
2968
+ );
2969
+ writeToServer4(bc, x);
2970
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2971
+ }
2972
+ function decodeToServer4(bytes) {
2973
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
2974
+ const result = readToServer4(bc);
2975
+ if (bc.offset < bc.view.byteLength) {
2976
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2977
+ }
2978
+ return result;
2979
+ }
2980
+ function readHttpActionRequest4(bc) {
2981
+ return {
2982
+ args: readCbor4(bc)
2983
+ };
2984
+ }
2985
+ function writeHttpActionRequest4(bc, x) {
2986
+ writeCbor4(bc, x.args);
2987
+ }
2988
+ function encodeHttpActionRequest4(x, config) {
2989
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
2990
+ const bc = new bare4.ByteCursor(
2991
+ new Uint8Array(fullConfig.initialBufferLength),
2992
+ fullConfig
2993
+ );
2994
+ writeHttpActionRequest4(bc, x);
2995
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2996
+ }
2997
+ function decodeHttpActionRequest4(bytes) {
2998
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
2999
+ const result = readHttpActionRequest4(bc);
3000
+ if (bc.offset < bc.view.byteLength) {
3001
+ throw new bare4.BareError(bc.offset, "remaining bytes");
3002
+ }
3003
+ return result;
3004
+ }
3005
+ function readHttpActionResponse4(bc) {
3006
+ return {
3007
+ output: readCbor4(bc)
3008
+ };
3009
+ }
3010
+ function writeHttpActionResponse4(bc, x) {
3011
+ writeCbor4(bc, x.output);
3012
+ }
3013
+ function encodeHttpActionResponse4(x, config) {
3014
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3015
+ const bc = new bare4.ByteCursor(
3016
+ new Uint8Array(fullConfig.initialBufferLength),
3017
+ fullConfig
3018
+ );
3019
+ writeHttpActionResponse4(bc, x);
3020
+ return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
3021
+ }
3022
+ function decodeHttpActionResponse4(bytes) {
3023
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3024
+ const result = readHttpActionResponse4(bc);
3025
+ if (bc.offset < bc.view.byteLength) {
3026
+ throw new bare4.BareError(bc.offset, "remaining bytes");
3027
+ }
3028
+ return result;
3029
+ }
3030
+ function read42(bc) {
3031
+ return bare4.readBool(bc) ? bare4.readBool(bc) : null;
3032
+ }
3033
+ function write42(bc, x) {
3034
+ bare4.writeBool(bc, x != null);
3035
+ if (x != null) {
3036
+ bare4.writeBool(bc, x);
3037
+ }
3038
+ }
3039
+ function read5(bc) {
3040
+ return bare4.readBool(bc) ? bare4.readU64(bc) : null;
3041
+ }
3042
+ function write5(bc, x) {
3043
+ bare4.writeBool(bc, x != null);
2573
3044
  if (x != null) {
2574
- bare3.writeU64(bc, x);
3045
+ bare4.writeU64(bc, x);
2575
3046
  }
2576
3047
  }
2577
- function readHttpQueueSendRequest(bc) {
3048
+ function readHttpQueueSendRequest2(bc) {
2578
3049
  return {
2579
- body: readCbor3(bc),
2580
- name: read2(bc),
2581
- wait: read3(bc),
2582
- timeout: read4(bc)
3050
+ body: readCbor4(bc),
3051
+ name: read04(bc),
3052
+ wait: read42(bc),
3053
+ timeout: read5(bc)
2583
3054
  };
2584
3055
  }
2585
- function writeHttpQueueSendRequest(bc, x) {
2586
- writeCbor3(bc, x.body);
2587
- write2(bc, x.name);
2588
- write3(bc, x.wait);
2589
- write4(bc, x.timeout);
3056
+ function writeHttpQueueSendRequest2(bc, x) {
3057
+ writeCbor4(bc, x.body);
3058
+ write04(bc, x.name);
3059
+ write42(bc, x.wait);
3060
+ write5(bc, x.timeout);
2590
3061
  }
2591
- function encodeHttpQueueSendRequest(x, config) {
2592
- const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2593
- const bc = new bare3.ByteCursor(
3062
+ function encodeHttpQueueSendRequest2(x, config) {
3063
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3064
+ const bc = new bare4.ByteCursor(
2594
3065
  new Uint8Array(fullConfig.initialBufferLength),
2595
3066
  fullConfig
2596
3067
  );
2597
- writeHttpQueueSendRequest(bc, x);
3068
+ writeHttpQueueSendRequest2(bc, x);
2598
3069
  return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2599
3070
  }
2600
- function decodeHttpQueueSendRequest(bytes) {
2601
- const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2602
- const result = readHttpQueueSendRequest(bc);
3071
+ function decodeHttpQueueSendRequest2(bytes) {
3072
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3073
+ const result = readHttpQueueSendRequest2(bc);
2603
3074
  if (bc.offset < bc.view.byteLength) {
2604
- throw new bare3.BareError(bc.offset, "remaining bytes");
3075
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2605
3076
  }
2606
3077
  return result;
2607
3078
  }
2608
- function readHttpQueueSendResponse(bc) {
3079
+ function readHttpQueueSendResponse2(bc) {
2609
3080
  return {
2610
- status: bare3.readString(bc),
2611
- response: read03(bc)
3081
+ status: bare4.readString(bc),
3082
+ response: read14(bc)
2612
3083
  };
2613
3084
  }
2614
- function writeHttpQueueSendResponse(bc, x) {
2615
- bare3.writeString(bc, x.status);
2616
- write03(bc, x.response);
3085
+ function writeHttpQueueSendResponse2(bc, x) {
3086
+ bare4.writeString(bc, x.status);
3087
+ write14(bc, x.response);
2617
3088
  }
2618
- function encodeHttpQueueSendResponse(x, config) {
2619
- const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2620
- const bc = new bare3.ByteCursor(
3089
+ function encodeHttpQueueSendResponse2(x, config) {
3090
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3091
+ const bc = new bare4.ByteCursor(
2621
3092
  new Uint8Array(fullConfig.initialBufferLength),
2622
3093
  fullConfig
2623
3094
  );
2624
- writeHttpQueueSendResponse(bc, x);
3095
+ writeHttpQueueSendResponse2(bc, x);
2625
3096
  return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2626
3097
  }
2627
- function decodeHttpQueueSendResponse(bytes) {
2628
- const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2629
- const result = readHttpQueueSendResponse(bc);
3098
+ function decodeHttpQueueSendResponse2(bytes) {
3099
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3100
+ const result = readHttpQueueSendResponse2(bc);
2630
3101
  if (bc.offset < bc.view.byteLength) {
2631
- throw new bare3.BareError(bc.offset, "remaining bytes");
3102
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2632
3103
  }
2633
3104
  return result;
2634
3105
  }
2635
- function readHttpResponseError3(bc) {
3106
+ function readHttpResponseError4(bc) {
2636
3107
  return {
2637
- group: bare3.readString(bc),
2638
- code: bare3.readString(bc),
2639
- message: bare3.readString(bc),
2640
- metadata: read03(bc)
3108
+ group: bare4.readString(bc),
3109
+ code: bare4.readString(bc),
3110
+ message: bare4.readString(bc),
3111
+ metadata: read14(bc),
3112
+ actor: read32(bc)
2641
3113
  };
2642
3114
  }
2643
- function writeHttpResponseError3(bc, x) {
2644
- bare3.writeString(bc, x.group);
2645
- bare3.writeString(bc, x.code);
2646
- bare3.writeString(bc, x.message);
2647
- write03(bc, x.metadata);
3115
+ function writeHttpResponseError4(bc, x) {
3116
+ bare4.writeString(bc, x.group);
3117
+ bare4.writeString(bc, x.code);
3118
+ bare4.writeString(bc, x.message);
3119
+ write14(bc, x.metadata);
3120
+ write32(bc, x.actor);
2648
3121
  }
2649
- function encodeHttpResponseError3(x, config) {
2650
- const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2651
- const bc = new bare3.ByteCursor(
3122
+ function encodeHttpResponseError4(x, config) {
3123
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3124
+ const bc = new bare4.ByteCursor(
2652
3125
  new Uint8Array(fullConfig.initialBufferLength),
2653
3126
  fullConfig
2654
3127
  );
2655
- writeHttpResponseError3(bc, x);
3128
+ writeHttpResponseError4(bc, x);
2656
3129
  return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2657
3130
  }
2658
- function decodeHttpResponseError3(bytes) {
2659
- const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2660
- const result = readHttpResponseError3(bc);
3131
+ function decodeHttpResponseError4(bytes) {
3132
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3133
+ const result = readHttpResponseError4(bc);
2661
3134
  if (bc.offset < bc.view.byteLength) {
2662
- throw new bare3.BareError(bc.offset, "remaining bytes");
3135
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2663
3136
  }
2664
3137
  return result;
2665
3138
  }
2666
- function readHttpResolveResponse3(bc) {
3139
+ function readHttpResolveResponse4(bc) {
2667
3140
  return {
2668
- actorId: bare3.readString(bc)
3141
+ actorId: bare4.readString(bc)
2669
3142
  };
2670
3143
  }
2671
- function writeHttpResolveResponse3(bc, x) {
2672
- bare3.writeString(bc, x.actorId);
3144
+ function writeHttpResolveResponse4(bc, x) {
3145
+ bare4.writeString(bc, x.actorId);
2673
3146
  }
2674
- function encodeHttpResolveResponse3(x, config) {
2675
- const fullConfig = config != null ? bare3.Config(config) : DEFAULT_CONFIG3;
2676
- const bc = new bare3.ByteCursor(
3147
+ function encodeHttpResolveResponse4(x, config) {
3148
+ const fullConfig = config != null ? bare4.Config(config) : DEFAULT_CONFIG4;
3149
+ const bc = new bare4.ByteCursor(
2677
3150
  new Uint8Array(fullConfig.initialBufferLength),
2678
3151
  fullConfig
2679
3152
  );
2680
- writeHttpResolveResponse3(bc, x);
3153
+ writeHttpResolveResponse4(bc, x);
2681
3154
  return new Uint8Array(bc.view.buffer, bc.view.byteOffset, bc.offset);
2682
3155
  }
2683
- function decodeHttpResolveResponse3(bytes) {
2684
- const bc = new bare3.ByteCursor(bytes, DEFAULT_CONFIG3);
2685
- const result = readHttpResolveResponse3(bc);
3156
+ function decodeHttpResolveResponse4(bytes) {
3157
+ const bc = new bare4.ByteCursor(bytes, DEFAULT_CONFIG4);
3158
+ const result = readHttpResolveResponse4(bc);
2686
3159
  if (bc.offset < bc.view.byteLength) {
2687
- throw new bare3.BareError(bc.offset, "remaining bytes");
3160
+ throw new bare4.BareError(bc.offset, "remaining bytes");
2688
3161
  }
2689
3162
  return result;
2690
3163
  }
2691
3164
 
2692
3165
  // src/common/client-protocol-versioned.ts
2693
- var CURRENT_VERSION = 3;
3166
+ var CURRENT_VERSION = 4;
2694
3167
  var v1ToV2 = (v1Data) => {
2695
3168
  if (v1Data.body.tag === "Init") {
2696
3169
  const { actorId, connectionId } = v1Data.body.val;
@@ -2726,6 +3199,32 @@ var v2ToV1 = (v2Data) => {
2726
3199
  var v2ToV3 = (v2Data) => {
2727
3200
  return v2Data;
2728
3201
  };
3202
+ var v3ToV4 = (v3Data) => {
3203
+ if (v3Data.body.tag === "Error") {
3204
+ return {
3205
+ body: {
3206
+ tag: "Error",
3207
+ val: {
3208
+ ...v3Data.body.val,
3209
+ actor: null
3210
+ }
3211
+ }
3212
+ };
3213
+ }
3214
+ return v3Data;
3215
+ };
3216
+ var v4ToV3 = (v4Data) => {
3217
+ if (v4Data.body.tag === "Error") {
3218
+ const { actor: _, ...val } = v4Data.body.val;
3219
+ return {
3220
+ body: {
3221
+ tag: "Error",
3222
+ val
3223
+ }
3224
+ };
3225
+ }
3226
+ return v4Data;
3227
+ };
2729
3228
  var v3ToV2 = (v3Data) => {
2730
3229
  return v3Data;
2731
3230
  };
@@ -2735,12 +3234,26 @@ var v1ToServerV2 = (v1Data) => {
2735
3234
  var v2ToServerV3 = (v2Data) => {
2736
3235
  return v2Data;
2737
3236
  };
3237
+ var v3ToServerV4 = (v3Data) => {
3238
+ return v3Data;
3239
+ };
3240
+ var v4ToServerV3 = (v4Data) => {
3241
+ return v4Data;
3242
+ };
2738
3243
  var v3ToServerV2 = (v3Data) => {
2739
3244
  return v3Data;
2740
3245
  };
2741
3246
  var v2ToServerV1 = (v2Data) => {
2742
3247
  return v2Data;
2743
3248
  };
3249
+ var v3HttpResponseErrorToV4 = (v3Data) => ({
3250
+ ...v3Data,
3251
+ actor: null
3252
+ });
3253
+ var v4HttpResponseErrorToV3 = (v4Data) => {
3254
+ const { actor: _, ...rest } = v4Data;
3255
+ return rest;
3256
+ };
2744
3257
  var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
2745
3258
  deserializeVersion: (bytes, version) => {
2746
3259
  switch (version) {
@@ -2750,6 +3263,8 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
2750
3263
  return decodeToServer2(bytes);
2751
3264
  case 3:
2752
3265
  return decodeToServer3(bytes);
3266
+ case 4:
3267
+ return decodeToServer4(bytes);
2753
3268
  default:
2754
3269
  throw new Error(`Unknown version ${version}`);
2755
3270
  }
@@ -2762,12 +3277,14 @@ var CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler({
2762
3277
  return encodeToServer2(data);
2763
3278
  case 3:
2764
3279
  return encodeToServer3(data);
3280
+ case 4:
3281
+ return encodeToServer4(data);
2765
3282
  default:
2766
3283
  throw new Error(`Unknown version ${version}`);
2767
3284
  }
2768
3285
  },
2769
- deserializeConverters: () => [v1ToServerV2, v2ToServerV3],
2770
- serializeConverters: () => [v3ToServerV2, v2ToServerV1]
3286
+ deserializeConverters: () => [v1ToServerV2, v2ToServerV3, v3ToServerV4],
3287
+ serializeConverters: () => [v4ToServerV3, v3ToServerV2, v2ToServerV1]
2771
3288
  });
2772
3289
  var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
2773
3290
  deserializeVersion: (bytes, version) => {
@@ -2778,6 +3295,8 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
2778
3295
  return decodeToClient2(bytes);
2779
3296
  case 3:
2780
3297
  return decodeToClient3(bytes);
3298
+ case 4:
3299
+ return decodeToClient4(bytes);
2781
3300
  default:
2782
3301
  throw new Error(`Unknown version ${version}`);
2783
3302
  }
@@ -2790,12 +3309,14 @@ var CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler({
2790
3309
  return encodeToClient2(data);
2791
3310
  case 3:
2792
3311
  return encodeToClient3(data);
3312
+ case 4:
3313
+ return encodeToClient4(data);
2793
3314
  default:
2794
3315
  throw new Error(`Unknown version ${version}`);
2795
3316
  }
2796
3317
  },
2797
- deserializeConverters: () => [v1ToV2, v2ToV3],
2798
- serializeConverters: () => [v3ToV2, v2ToV1]
3318
+ deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
3319
+ serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1]
2799
3320
  });
2800
3321
  var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
2801
3322
  deserializeVersion: (bytes, version) => {
@@ -2806,6 +3327,8 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
2806
3327
  return decodeHttpActionRequest2(bytes);
2807
3328
  case 3:
2808
3329
  return decodeHttpActionRequest3(bytes);
3330
+ case 4:
3331
+ return decodeHttpActionRequest4(bytes);
2809
3332
  default:
2810
3333
  throw new Error(`Unknown version ${version}`);
2811
3334
  }
@@ -2824,6 +3347,10 @@ var HTTP_ACTION_REQUEST_VERSIONED = createVersionedDataHandler({
2824
3347
  return encodeHttpActionRequest3(
2825
3348
  data
2826
3349
  );
3350
+ case 4:
3351
+ return encodeHttpActionRequest4(
3352
+ data
3353
+ );
2827
3354
  default:
2828
3355
  throw new Error(`Unknown version ${version}`);
2829
3356
  }
@@ -2840,6 +3367,8 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
2840
3367
  return decodeHttpActionResponse2(bytes);
2841
3368
  case 3:
2842
3369
  return decodeHttpActionResponse3(bytes);
3370
+ case 4:
3371
+ return decodeHttpActionResponse4(bytes);
2843
3372
  default:
2844
3373
  throw new Error(`Unknown version ${version}`);
2845
3374
  }
@@ -2858,6 +3387,10 @@ var HTTP_ACTION_RESPONSE_VERSIONED = createVersionedDataHandler({
2858
3387
  return encodeHttpActionResponse3(
2859
3388
  data
2860
3389
  );
3390
+ case 4:
3391
+ return encodeHttpActionResponse4(
3392
+ data
3393
+ );
2861
3394
  default:
2862
3395
  throw new Error(`Unknown version ${version}`);
2863
3396
  }
@@ -2870,6 +3403,8 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
2870
3403
  switch (version) {
2871
3404
  case 3:
2872
3405
  return decodeHttpQueueSendRequest(bytes);
3406
+ case 4:
3407
+ return decodeHttpQueueSendRequest2(bytes);
2873
3408
  default:
2874
3409
  throw new Error(
2875
3410
  `HttpQueueSendRequest only exists in version 3+, got version ${version}`
@@ -2882,6 +3417,10 @@ var HTTP_QUEUE_SEND_REQUEST_VERSIONED = createVersionedDataHandler({
2882
3417
  return encodeHttpQueueSendRequest(
2883
3418
  data
2884
3419
  );
3420
+ case 4:
3421
+ return encodeHttpQueueSendRequest2(
3422
+ data
3423
+ );
2885
3424
  default:
2886
3425
  throw new Error(
2887
3426
  `HttpQueueSendRequest only exists in version 3+, got version ${version}`
@@ -2896,6 +3435,8 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
2896
3435
  switch (version) {
2897
3436
  case 3:
2898
3437
  return decodeHttpQueueSendResponse(bytes);
3438
+ case 4:
3439
+ return decodeHttpQueueSendResponse2(bytes);
2899
3440
  default:
2900
3441
  throw new Error(
2901
3442
  `HttpQueueSendResponse only exists in version 3+, got version ${version}`
@@ -2908,6 +3449,10 @@ var HTTP_QUEUE_SEND_RESPONSE_VERSIONED = createVersionedDataHandler({
2908
3449
  return encodeHttpQueueSendResponse(
2909
3450
  data
2910
3451
  );
3452
+ case 4:
3453
+ return encodeHttpQueueSendResponse2(
3454
+ data
3455
+ );
2911
3456
  default:
2912
3457
  throw new Error(
2913
3458
  `HttpQueueSendResponse only exists in version 3+, got version ${version}`
@@ -2926,6 +3471,8 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
2926
3471
  return decodeHttpResponseError2(bytes);
2927
3472
  case 3:
2928
3473
  return decodeHttpResponseError3(bytes);
3474
+ case 4:
3475
+ return decodeHttpResponseError4(bytes);
2929
3476
  default:
2930
3477
  throw new Error(`Unknown version ${version}`);
2931
3478
  }
@@ -2944,12 +3491,24 @@ var HTTP_RESPONSE_ERROR_VERSIONED = createVersionedDataHandler({
2944
3491
  return encodeHttpResponseError3(
2945
3492
  data
2946
3493
  );
3494
+ case 4:
3495
+ return encodeHttpResponseError4(
3496
+ data
3497
+ );
2947
3498
  default:
2948
3499
  throw new Error(`Unknown version ${version}`);
2949
3500
  }
2950
3501
  },
2951
- deserializeConverters: () => [],
2952
- serializeConverters: () => []
3502
+ deserializeConverters: () => [
3503
+ (data) => data,
3504
+ (data) => data,
3505
+ v3HttpResponseErrorToV4
3506
+ ],
3507
+ serializeConverters: () => [
3508
+ v4HttpResponseErrorToV3,
3509
+ (data) => data,
3510
+ (data) => data
3511
+ ]
2953
3512
  });
2954
3513
  var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2955
3514
  deserializeVersion: (bytes, version) => {
@@ -2960,6 +3519,8 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2960
3519
  return decodeHttpResolveResponse2(bytes);
2961
3520
  case 3:
2962
3521
  return decodeHttpResolveResponse3(bytes);
3522
+ case 4:
3523
+ return decodeHttpResolveResponse4(bytes);
2963
3524
  default:
2964
3525
  throw new Error(`Unknown version ${version}`);
2965
3526
  }
@@ -2978,6 +3539,10 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2978
3539
  return encodeHttpResolveResponse3(
2979
3540
  data
2980
3541
  );
3542
+ case 4:
3543
+ return encodeHttpResolveResponse4(
3544
+ data
3545
+ );
2981
3546
  default:
2982
3547
  throw new Error(`Unknown version ${version}`);
2983
3548
  }
@@ -2990,6 +3555,11 @@ var HTTP_RESOLVE_RESPONSE_VERSIONED = createVersionedDataHandler({
2990
3555
  import { z as z4 } from "zod/v4";
2991
3556
  var UintSchema = z4.bigint();
2992
3557
  var OptionalUintSchema = UintSchema.nullable();
3558
+ var ActorSpecifierSchema = z4.object({
3559
+ actorId: z4.string(),
3560
+ generation: z4.union([z4.number(), z4.bigint()]),
3561
+ key: z4.string().optional()
3562
+ });
2993
3563
  var InitSchema = z4.object({
2994
3564
  actorId: z4.string(),
2995
3565
  connectionId: z4.string()
@@ -2999,7 +3569,8 @@ var ErrorSchema = z4.object({
2999
3569
  code: z4.string(),
3000
3570
  message: z4.string(),
3001
3571
  metadata: z4.unknown().optional(),
3002
- actionId: OptionalUintSchema
3572
+ actionId: OptionalUintSchema,
3573
+ actor: ActorSpecifierSchema.optional()
3003
3574
  });
3004
3575
  var ActionResponseSchema = z4.object({
3005
3576
  id: UintSchema,
@@ -3057,7 +3628,8 @@ var HttpResponseErrorSchema = z4.object({
3057
3628
  group: z4.string(),
3058
3629
  code: z4.string(),
3059
3630
  message: z4.string(),
3060
- metadata: z4.unknown().optional()
3631
+ metadata: z4.unknown().optional(),
3632
+ actor: ActorSpecifierSchema.optional()
3061
3633
  });
3062
3634
  var HttpResolveRequestSchema = z4.null();
3063
3635
  var HttpResolveResponseSchema = z4.object({
@@ -3187,21 +3759,45 @@ async function sendHttpRequest(opts) {
3187
3759
  new Uint8Array(bufferResponse),
3188
3760
  HTTP_RESPONSE_ERROR_VERSIONED,
3189
3761
  HttpResponseErrorSchema,
3190
- // JSON: metadata is already unknown
3191
- (json) => json,
3762
+ // JSON/CBOR: normalize actor generation to the public number shape.
3763
+ (json) => ({
3764
+ ...json,
3765
+ actor: json.actor ? {
3766
+ ...json.actor,
3767
+ generation: Number(json.actor.generation)
3768
+ } : void 0
3769
+ }),
3192
3770
  // BARE: decode ArrayBuffer metadata to unknown
3193
- (bare4) => ({
3194
- group: bare4.group,
3195
- code: bare4.code,
3196
- message: bare4.message,
3197
- metadata: bare4.metadata ? decodeCborCompat(new Uint8Array(bare4.metadata)) : void 0
3771
+ (bare5) => ({
3772
+ group: bare5.group,
3773
+ code: bare5.code,
3774
+ message: bare5.message,
3775
+ metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
3776
+ actor: bare5.actor ? {
3777
+ actorId: bare5.actor.actorId,
3778
+ generation: Number(bare5.actor.generation),
3779
+ key: bare5.actor.key ?? void 0
3780
+ } : void 0
3198
3781
  })
3199
3782
  );
3783
+ logger2().warn({
3784
+ msg: "http error response",
3785
+ group: responseData.group,
3786
+ code: responseData.code,
3787
+ message: responseData.message,
3788
+ metadata: responseData.metadata,
3789
+ actorId: responseData.actor?.actorId,
3790
+ generation: responseData.actor?.generation,
3791
+ actorKey: responseData.actor?.key
3792
+ });
3200
3793
  throw new RivetError(
3201
3794
  responseData.group,
3202
3795
  responseData.code,
3203
3796
  responseData.message,
3204
- responseData.metadata
3797
+ {
3798
+ metadata: responseData.metadata,
3799
+ actor: responseData.actor
3800
+ }
3205
3801
  );
3206
3802
  } catch (error) {
3207
3803
  if (error instanceof RivetError) {
@@ -3381,11 +3977,11 @@ async function lookupMetadataCached(config) {
3381
3977
  }
3382
3978
 
3383
3979
  // src/engine-client/ws-proxy.ts
3384
- async function createWebSocketProxy(c, targetUrl, protocols) {
3980
+ async function createWebSocketProxy(_c, targetUrl, protocols) {
3385
3981
  const WebSocket2 = await importWebSocket();
3386
3982
  const state = {};
3387
3983
  return {
3388
- onOpen: async (event, clientWs) => {
3984
+ onOpen: async (_event, clientWs) => {
3389
3985
  logger3().debug({ msg: "client websocket connected", targetUrl });
3390
3986
  if (clientWs.readyState !== 1) {
3391
3987
  logger3().warn({
@@ -3423,23 +4019,25 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
3423
4019
  reject(error);
3424
4020
  });
3425
4021
  });
3426
- state.targetWs.addEventListener("message", (event2) => {
3427
- if (typeof event2.data === "string" || event2.data instanceof ArrayBuffer) {
3428
- clientWs.send(event2.data);
3429
- } else if (event2.data instanceof Blob) {
3430
- event2.data.arrayBuffer().then((buffer) => {
4022
+ state.connectPromise.catch(() => {
4023
+ });
4024
+ state.targetWs.addEventListener("message", (event) => {
4025
+ if (typeof event.data === "string" || event.data instanceof ArrayBuffer) {
4026
+ clientWs.send(event.data);
4027
+ } else if (event.data instanceof Blob) {
4028
+ event.data.arrayBuffer().then((buffer) => {
3431
4029
  clientWs.send(buffer);
3432
4030
  });
3433
4031
  }
3434
4032
  });
3435
- state.targetWs.addEventListener("close", (event2) => {
4033
+ state.targetWs.addEventListener("close", (event) => {
3436
4034
  logger3().debug({
3437
4035
  msg: "target websocket closed",
3438
4036
  targetUrl,
3439
- code: event2.code,
3440
- reason: event2.reason
4037
+ code: event.code,
4038
+ reason: event.reason
3441
4039
  });
3442
- closeWebSocketIfOpen(clientWs, event2.code, event2.reason);
4040
+ closeWebSocketIfOpen(clientWs, event.code, event.reason);
3443
4041
  });
3444
4042
  state.targetWs.addEventListener("error", (error) => {
3445
4043
  logger3().error({
@@ -3482,7 +4080,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
3482
4080
  );
3483
4081
  }
3484
4082
  },
3485
- onClose: (event, clientWs) => {
4083
+ onClose: (event, _clientWs) => {
3486
4084
  logger3().debug({
3487
4085
  msg: "client websocket closed",
3488
4086
  targetUrl,
@@ -3499,7 +4097,7 @@ async function createWebSocketProxy(c, targetUrl, protocols) {
3499
4097
  }
3500
4098
  }
3501
4099
  },
3502
- onError: (event, clientWs) => {
4100
+ onError: (event, _clientWs) => {
3503
4101
  logger3().error({ msg: "client websocket error", targetUrl, event });
3504
4102
  if (state.targetWs) {
3505
4103
  if (state.targetWs.readyState === WebSocket2.OPEN) {
@@ -3615,7 +4213,9 @@ var RemoteEngineControlClient = class {
3615
4213
  name,
3616
4214
  key: serializeActorKey(key),
3617
4215
  runner_name_selector: this.#config.poolName,
3618
- input: actorInput ? uint8ArrayToBase64(encodeCborCompat(actorInput)) : void 0,
4216
+ input: actorInput ? uint8ArrayToBase64(
4217
+ encodeCborCompat(actorInput)
4218
+ ) : void 0,
3619
4219
  crash_policy: crashPolicy ?? "sleep"
3620
4220
  });
3621
4221
  logger3().info({
@@ -3674,7 +4274,7 @@ var RemoteEngineControlClient = class {
3674
4274
  );
3675
4275
  const httpOptions = {
3676
4276
  ...options,
3677
- directActorId: shouldBypassConnectable(options) ? directActorIdFromTarget(target) : void 0
4277
+ directActorId: shouldSkipReadyWait(options) ? directActorIdFromTarget(target) : void 0
3678
4278
  };
3679
4279
  return sendHttpRequestToGateway(
3680
4280
  this.#config,
@@ -3697,7 +4297,7 @@ var RemoteEngineControlClient = class {
3697
4297
  params,
3698
4298
  {
3699
4299
  ...options,
3700
- directActorId: shouldBypassConnectable(options) ? directActorIdFromTarget(target) : void 0
4300
+ directActorId: shouldSkipReadyWait(options) ? directActorIdFromTarget(target) : void 0
3701
4301
  }
3702
4302
  );
3703
4303
  }
@@ -3769,7 +4369,7 @@ var RemoteEngineControlClient = class {
3769
4369
  }
3770
4370
  #buildGatewayUrlForTarget(target, path, options = {}) {
3771
4371
  const endpoint = getEndpoint(this.#config);
3772
- if (shouldBypassConnectable(options) && directActorIdFromTarget(target) && canUseDirectBypassPath(path)) {
4372
+ if (shouldSkipReadyWait(options) && directActorIdFromTarget(target) && canUseDirectSkipReadyWaitPath(path)) {
3773
4373
  return combineUrlPath(endpoint, path);
3774
4374
  }
3775
4375
  if ("directId" in target) {
@@ -3809,8 +4409,11 @@ var RemoteEngineControlClient = class {
3809
4409
  throw new Error("unreachable: unknown gateway target type");
3810
4410
  }
3811
4411
  };
3812
- function canUseDirectBypassPath(path) {
3813
- return isActorHttpRequestPath(path) || path === PATH_CONNECT || path === PATH_WEBSOCKET_BASE || path.startsWith(PATH_WEBSOCKET_PREFIX);
4412
+ function canUseDirectSkipReadyWaitPath(path) {
4413
+ return isActorHttpRequestPath(path) || isPathOrQuery(path, PATH_CONNECT) || isPathOrQuery(path, PATH_WEBSOCKET_BASE) || path.startsWith(PATH_WEBSOCKET_PREFIX);
4414
+ }
4415
+ function isPathOrQuery(path, basePath) {
4416
+ return path === basePath || path.startsWith(`${basePath}?`);
3814
4417
  }
3815
4418
  function isActorHttpRequestPath(path) {
3816
4419
  const stripped = path.slice("/request".length);
@@ -3849,10 +4452,9 @@ import pRetry2, { AbortError } from "p-retry";
3849
4452
 
3850
4453
  // src/client/actor-common.ts
3851
4454
  function resolveActorGatewayOptions(defaults = {}, overrides) {
3852
- const bypassConnectable = overrides?.bypassConnectable ?? overrides?.skipReadyWait ?? defaults.bypassConnectable ?? defaults.skipReadyWait ?? false;
4455
+ const skipReadyWait = overrides?.skipReadyWait ?? defaults.skipReadyWait ?? false;
3853
4456
  return {
3854
- bypassConnectable,
3855
- skipReadyWait: bypassConnectable
4457
+ skipReadyWait
3856
4458
  };
3857
4459
  }
3858
4460
 
@@ -4004,7 +4606,7 @@ function classifyActorError(error) {
4004
4606
  return void 0;
4005
4607
  }
4006
4608
  function isRetryableGuardGatewayHttpError(code) {
4007
- 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";
4609
+ 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";
4008
4610
  }
4009
4611
  function classifyTransportError(error) {
4010
4612
  if (error.message.includes("database accessed after actor stopped")) {
@@ -4093,10 +4695,7 @@ async function retryOnLifecycleBoundary(run, opts) {
4093
4695
  if (attempt === maxAttempts - 1) {
4094
4696
  break;
4095
4697
  }
4096
- const delayMs = Math.min(
4097
- initialDelayMs * 2 ** attempt,
4098
- maxDelayMs
4099
- );
4698
+ const delayMs = Math.min(initialDelayMs * 2 ** attempt, maxDelayMs);
4100
4699
  await waitWithSignal(delayMs, opts?.signal);
4101
4700
  }
4102
4701
  }
@@ -4135,7 +4734,9 @@ function createQueueSender(senderOptions) {
4135
4734
  }),
4136
4735
  requestToBare: (value) => ({
4137
4736
  name: value.name ?? name,
4138
- body: bufferToArrayBuffer(encodeCborCompat(value.body)),
4737
+ body: bufferToArrayBuffer(
4738
+ encodeCborCompat(value.body)
4739
+ ),
4139
4740
  wait: value.wait ?? false,
4140
4741
  timeout: value.timeout !== void 0 ? BigInt(value.timeout) : null
4141
4742
  }),
@@ -4148,13 +4749,13 @@ function createQueueSender(senderOptions) {
4148
4749
  response: json.response
4149
4750
  };
4150
4751
  },
4151
- responseFromBare: (bare4) => {
4152
- if (bare4.response === null || bare4.response === void 0) {
4153
- return { status: bare4.status };
4752
+ responseFromBare: (bare5) => {
4753
+ if (bare5.response === null || bare5.response === void 0) {
4754
+ return { status: bare5.status };
4154
4755
  }
4155
4756
  return {
4156
- status: bare4.status,
4157
- response: decodeCborCompat(new Uint8Array(bare4.response))
4757
+ status: bare5.status,
4758
+ response: decodeCborCompat(new Uint8Array(bare5.response))
4158
4759
  };
4159
4760
  }
4160
4761
  });
@@ -4168,49 +4769,7 @@ function createQueueSender(senderOptions) {
4168
4769
  };
4169
4770
  }
4170
4771
 
4171
- // src/client/resolve-gateway-target.ts
4172
- async function resolveGatewayTarget(driver, target) {
4173
- if ("directId" in target) {
4174
- return target.directId;
4175
- }
4176
- if ("getForId" in target) {
4177
- return target.getForId.actorId;
4178
- }
4179
- if ("getForKey" in target) {
4180
- const output = await driver.getWithKey({
4181
- name: target.getForKey.name,
4182
- key: target.getForKey.key
4183
- });
4184
- if (!output) {
4185
- throw actorNotFound(
4186
- `${target.getForKey.name}:${JSON.stringify(target.getForKey.key)}`
4187
- );
4188
- }
4189
- return output.actorId;
4190
- }
4191
- if ("getOrCreateForKey" in target) {
4192
- const output = await driver.getOrCreateWithKey({
4193
- name: target.getOrCreateForKey.name,
4194
- key: target.getOrCreateForKey.key,
4195
- input: target.getOrCreateForKey.input,
4196
- region: target.getOrCreateForKey.region
4197
- });
4198
- return output.actorId;
4199
- }
4200
- if ("create" in target) {
4201
- const output = await driver.createActor({
4202
- name: target.create.name,
4203
- key: target.create.key,
4204
- input: target.create.input,
4205
- region: target.create.region
4206
- });
4207
- return output.actorId;
4208
- }
4209
- throw invalidRequest("Invalid query format");
4210
- }
4211
-
4212
4772
  // src/client/actor-conn.ts
4213
- var DEFAULT_MAX_INCOMING_MESSAGE_SIZE = 65536;
4214
4773
  var CONNECT_SYMBOL = /* @__PURE__ */ Symbol("connect");
4215
4774
  var ActorConnRaw = class {
4216
4775
  #disposed = false;
@@ -4262,6 +4821,9 @@ var ActorConnRaw = class {
4262
4821
  this.#encoding = encoding;
4263
4822
  this.#actorResolutionState = actorResolutionState;
4264
4823
  this.#gatewayOptions = resolveActorGatewayOptions(gatewayOptions);
4824
+ if ("getForId" in actorResolutionState) {
4825
+ this.#actorId = actorResolutionState.getForId.actorId;
4826
+ }
4265
4827
  this.#readyPromise = promiseWithResolvers(
4266
4828
  (reason) => logger2().warn({
4267
4829
  msg: "unhandled ready promise rejection",
@@ -4512,7 +5074,7 @@ var ActorConnRaw = class {
4512
5074
  }
4513
5075
  async #connectWebSocket() {
4514
5076
  const params = await this.#resolveConnectionParams();
4515
- const target = this.#gatewayOptions.bypassConnectable ? await this.#resolveGatewayTargetForBypass() : getGatewayTarget(this.#actorResolutionState);
5077
+ const target = getGatewayTarget(this.#actorResolutionState);
4516
5078
  const ws = await this.#driver.openWebSocket(
4517
5079
  PATH_CONNECT,
4518
5080
  target,
@@ -4565,22 +5127,6 @@ var ActorConnRaw = class {
4565
5127
  }
4566
5128
  });
4567
5129
  }
4568
- async #resolveGatewayTargetForBypass() {
4569
- if ("getForId" in this.#actorResolutionState) {
4570
- return {
4571
- directId: this.#actorResolutionState.getForId.actorId
4572
- };
4573
- }
4574
- if (this.#actorId) {
4575
- return { directId: this.#actorId };
4576
- }
4577
- return {
4578
- directId: await resolveGatewayTarget(
4579
- this.#driver,
4580
- this.#actorResolutionState
4581
- )
4582
- };
4583
- }
4584
5130
  /** Called by the onopen event from drivers. */
4585
5131
  #handleOnOpen() {
4586
5132
  if (this.#disposed) {
@@ -4659,7 +5205,7 @@ var ActorConnRaw = class {
4659
5205
  });
4660
5206
  this.#handleOnOpen();
4661
5207
  } else if (response.body.tag === "Error") {
4662
- const { group, code, message, metadata, actionId } = response.body.val;
5208
+ const { group, code, message, metadata, actionId, actor } = response.body.val;
4663
5209
  if (actionId !== null) {
4664
5210
  const inFlight = this.#takeActionInFlight(Number(actionId));
4665
5211
  this.#invalidateActorIfStale(group, code);
@@ -4670,10 +5216,16 @@ var ActorConnRaw = class {
4670
5216
  group,
4671
5217
  code,
4672
5218
  message,
4673
- metadata
5219
+ metadata,
5220
+ actorId: actor?.actorId,
5221
+ generation: actor?.generation,
5222
+ actorKey: actor?.key
4674
5223
  });
4675
5224
  inFlight.reject(
4676
- new RivetError(group, code, message, metadata)
5225
+ new RivetError(group, code, message, {
5226
+ metadata,
5227
+ actor
5228
+ })
4677
5229
  );
4678
5230
  } else {
4679
5231
  logger2().warn({
@@ -4681,21 +5233,25 @@ var ActorConnRaw = class {
4681
5233
  group,
4682
5234
  code,
4683
5235
  message,
4684
- metadata
5236
+ metadata,
5237
+ actorId: actor?.actorId,
5238
+ generation: actor?.generation,
5239
+ actorKey: actor?.key
4685
5240
  });
4686
5241
  if (this.#shouldReconnectForStaleActor(group, code)) {
4687
5242
  this.#clearResolvedActorIdentity();
4688
5243
  this.#onOpenPromise?.reject(
4689
- new RivetError(group, code, message, metadata)
5244
+ new RivetError(group, code, message, {
5245
+ metadata,
5246
+ actor
5247
+ })
4690
5248
  );
4691
5249
  return;
4692
5250
  }
4693
- let errorToThrow = new RivetError(
4694
- group,
4695
- code,
4696
- message,
4697
- metadata
4698
- );
5251
+ let errorToThrow = new RivetError(group, code, message, {
5252
+ metadata,
5253
+ actor
5254
+ });
4699
5255
  if (isSchedulingError(group, code) && this.#actorId) {
4700
5256
  const schedulingError = await checkForSchedulingError(
4701
5257
  group,
@@ -5091,31 +5647,8 @@ var ActorConnRaw = class {
5091
5647
  }
5092
5648
  }
5093
5649
  );
5094
- const serializedLength = messageLength(messageSerialized);
5095
- if (serializedLength > DEFAULT_MAX_INCOMING_MESSAGE_SIZE && message.body.tag === "ActionRequest") {
5096
- const actionId = Number(message.body.val.id);
5097
- const inFlight = this.#takeActionInFlight(actionId);
5098
- const error = new RivetError(
5099
- "message",
5100
- "incoming_too_long",
5101
- "Incoming message too long",
5102
- {
5103
- maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE,
5104
- actualSize: serializedLength
5105
- }
5106
- );
5107
- logger2().warn({
5108
- msg: "rejecting oversized connection action request",
5109
- actionId,
5110
- actionName: inFlight.name,
5111
- actualSize: serializedLength,
5112
- maxSize: DEFAULT_MAX_INCOMING_MESSAGE_SIZE
5113
- });
5114
- inFlight.reject(error);
5115
- this.#dispatchActorError(error);
5116
- return;
5117
- }
5118
5650
  this.#websocket.send(messageSerialized);
5651
+ const serializedLength = messageLength(messageSerialized);
5119
5652
  logger2().trace({
5120
5653
  msg: "sent websocket message",
5121
5654
  len: serializedLength
@@ -5158,8 +5691,26 @@ var ActorConnRaw = class {
5158
5691
  buffer,
5159
5692
  CLIENT_PROTOCOL_TO_CLIENT,
5160
5693
  ToClientSchema,
5161
- // JSON: values are already the correct type
5162
- (msg) => msg,
5694
+ // JSON/CBOR: normalize actor generation to the public number shape.
5695
+ (msg) => {
5696
+ if (msg.body.tag !== "Error" || !msg.body.val.actor) {
5697
+ return msg;
5698
+ }
5699
+ return {
5700
+ body: {
5701
+ tag: "Error",
5702
+ val: {
5703
+ ...msg.body.val,
5704
+ actor: {
5705
+ ...msg.body.val.actor,
5706
+ generation: Number(
5707
+ msg.body.val.actor.generation
5708
+ )
5709
+ }
5710
+ }
5711
+ }
5712
+ };
5713
+ },
5163
5714
  // BARE: need to decode ArrayBuffer fields back to unknown
5164
5715
  (msg) => {
5165
5716
  if (msg.body.tag === "Error") {
@@ -5175,7 +5726,14 @@ var ActorConnRaw = class {
5175
5726
  msg.body.val.metadata
5176
5727
  )
5177
5728
  ) : null,
5178
- actionId: msg.body.val.actionId
5729
+ actionId: msg.body.val.actionId,
5730
+ actor: msg.body.val.actor ? {
5731
+ actorId: msg.body.val.actor.actorId,
5732
+ generation: Number(
5733
+ msg.body.val.actor.generation
5734
+ ),
5735
+ key: msg.body.val.actor.key ?? void 0
5736
+ } : void 0
5179
5737
  }
5180
5738
  }
5181
5739
  };
@@ -5369,13 +5927,11 @@ async function rawHttpFetch(driver, target, params, input, init, options = {}) {
5369
5927
  });
5370
5928
  return driver.sendRequest(target, proxyRequest, options);
5371
5929
  } catch (err) {
5372
- const { group, code, message, metadata } = deconstructError(
5930
+ const { group, code, message, metadata, actor } = deconstructError(
5373
5931
  err,
5374
- logger2(),
5375
- {},
5376
5932
  true
5377
5933
  );
5378
- throw new RivetError(group, code, message, metadata);
5934
+ throw new RivetError(group, code, message, { metadata, actor });
5379
5935
  }
5380
5936
  }
5381
5937
  async function rawWebSocket(driver, target, params, path, _protocols, options = {}) {
@@ -5411,6 +5967,47 @@ async function rawWebSocket(driver, target, params, path, _protocols, options =
5411
5967
  return ws;
5412
5968
  }
5413
5969
 
5970
+ // src/client/resolve-gateway-target.ts
5971
+ async function resolveGatewayTarget(driver, target) {
5972
+ if ("directId" in target) {
5973
+ return target.directId;
5974
+ }
5975
+ if ("getForId" in target) {
5976
+ return target.getForId.actorId;
5977
+ }
5978
+ if ("getForKey" in target) {
5979
+ const output = await driver.getWithKey({
5980
+ name: target.getForKey.name,
5981
+ key: target.getForKey.key
5982
+ });
5983
+ if (!output) {
5984
+ throw actorNotFound(
5985
+ `${target.getForKey.name}:${JSON.stringify(target.getForKey.key)}`
5986
+ );
5987
+ }
5988
+ return output.actorId;
5989
+ }
5990
+ if ("getOrCreateForKey" in target) {
5991
+ const output = await driver.getOrCreateWithKey({
5992
+ name: target.getOrCreateForKey.name,
5993
+ key: target.getOrCreateForKey.key,
5994
+ input: target.getOrCreateForKey.input,
5995
+ region: target.getOrCreateForKey.region
5996
+ });
5997
+ return output.actorId;
5998
+ }
5999
+ if ("create" in target) {
6000
+ const output = await driver.createActor({
6001
+ name: target.create.name,
6002
+ key: target.create.key,
6003
+ input: target.create.input,
6004
+ region: target.create.region
6005
+ });
6006
+ return output.actorId;
6007
+ }
6008
+ throw invalidRequest("Invalid query format");
6009
+ }
6010
+
5414
6011
  // src/client/actor-handle.ts
5415
6012
  var ActorHandleRaw = class {
5416
6013
  #client;
@@ -5455,7 +6052,13 @@ var ActorHandleRaw = class {
5455
6052
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
5456
6053
  let actorId;
5457
6054
  try {
5458
- const target = await this.#resolveActionTarget(useQueryTarget);
6055
+ const gatewayOptions = resolveActorGatewayOptions(
6056
+ this.#gatewayOptions
6057
+ );
6058
+ const target = await this.#resolveGatewayRequestTarget(
6059
+ useQueryTarget,
6060
+ gatewayOptions
6061
+ );
5459
6062
  actorId = "directId" in target ? target.directId : void 0;
5460
6063
  return await createQueueSender({
5461
6064
  encoding: this.#encoding,
@@ -5464,19 +6067,12 @@ var ActorHandleRaw = class {
5464
6067
  return await this.#driver.sendRequest(
5465
6068
  target,
5466
6069
  request,
5467
- resolveActorGatewayOptions(
5468
- this.#gatewayOptions
5469
- )
6070
+ gatewayOptions
5470
6071
  );
5471
6072
  }
5472
6073
  }).send(name, body, options);
5473
6074
  } catch (err) {
5474
- const { group, code, message, metadata } = deconstructError(
5475
- err,
5476
- logger2(),
5477
- {},
5478
- true
5479
- );
6075
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
5480
6076
  if (this.#shouldRetryQueueDispatchOverload(
5481
6077
  group,
5482
6078
  code,
@@ -5509,7 +6105,10 @@ var ActorHandleRaw = class {
5509
6105
  await this.#waitForRetryWindow();
5510
6106
  continue;
5511
6107
  }
5512
- const invalidated = this.#invalidateResolvedActorId(group, code);
6108
+ const invalidated = this.#invalidateResolvedActorId(
6109
+ group,
6110
+ code
6111
+ );
5513
6112
  if (invalidated && attempt < maxAttempts - 1) {
5514
6113
  useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
5515
6114
  if (useQueryTarget) {
@@ -5517,7 +6116,10 @@ var ActorHandleRaw = class {
5517
6116
  }
5518
6117
  continue;
5519
6118
  }
5520
- throw new RivetError(group, code, message, metadata);
6119
+ throw new RivetError(group, code, message, {
6120
+ metadata,
6121
+ actor
6122
+ });
5521
6123
  }
5522
6124
  }
5523
6125
  throw new Error("unreachable queue retry state");
@@ -5552,7 +6154,10 @@ var ActorHandleRaw = class {
5552
6154
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
5553
6155
  let actorId;
5554
6156
  try {
5555
- const target = await this.#resolveActionTarget(useQueryTarget);
6157
+ const target = await this.#resolveGatewayRequestTarget(
6158
+ useQueryTarget,
6159
+ gatewayOptions
6160
+ );
5556
6161
  actorId = "directId" in target ? target.directId : void 0;
5557
6162
  logger2().debug(
5558
6163
  actorId ? { msg: "using direct actor gateway target", actorId } : {
@@ -5594,22 +6199,19 @@ var ActorHandleRaw = class {
5594
6199
  args
5595
6200
  }),
5596
6201
  requestToBare: (args) => ({
5597
- args: bufferToArrayBuffer(encodeCborCompat(args))
6202
+ args: bufferToArrayBuffer(
6203
+ encodeCborCompat(args)
6204
+ )
5598
6205
  }),
5599
6206
  responseFromJson: (json) => json.output,
5600
- responseFromBare: (bare4) => decodeCborCompat(new Uint8Array(bare4.output))
6207
+ responseFromBare: (bare5) => decodeCborCompat(new Uint8Array(bare5.output))
5601
6208
  });
5602
6209
  if (opts.name === "destroy" && actorId) {
5603
6210
  await this.#waitForDestroyActionToSettle(actorId);
5604
6211
  }
5605
6212
  return output;
5606
6213
  } catch (err) {
5607
- const { group, code, message, metadata } = deconstructError(
5608
- err,
5609
- logger2(),
5610
- {},
5611
- true
5612
- );
6214
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
5613
6215
  if (await this.#shouldRetrySchedulingError(
5614
6216
  group,
5615
6217
  code,
@@ -5637,18 +6239,23 @@ var ActorHandleRaw = class {
5637
6239
  "actor",
5638
6240
  "not_found",
5639
6241
  "The actor does not exist or was destroyed.",
5640
- metadata
6242
+ { metadata, actor }
5641
6243
  );
5642
6244
  }
5643
- const invalidated = this.#invalidateResolvedActorId(group, code);
6245
+ const invalidated = this.#invalidateResolvedActorId(
6246
+ group,
6247
+ code
6248
+ );
5644
6249
  if (invalidated && attempt < maxAttempts - 1) {
5645
6250
  if (group === "actor" && (code === "starting" || code === "stopping")) {
5646
6251
  useQueryTarget = true;
5647
- await new Promise((resolve) => setTimeout(resolve, 100));
6252
+ await new Promise(
6253
+ (resolve) => setTimeout(resolve, 100)
6254
+ );
5648
6255
  }
5649
6256
  continue;
5650
6257
  }
5651
- throw new RivetError(group, code, message, metadata);
6258
+ throw new RivetError(group, code, message, { metadata, actor });
5652
6259
  }
5653
6260
  }
5654
6261
  throw new Error("unreachable action retry state");
@@ -5741,6 +6348,12 @@ var ActorHandleRaw = class {
5741
6348
  this.#resolvingActorId = void 0;
5742
6349
  }
5743
6350
  }
6351
+ async #resolveGatewayRequestTarget(useQueryTarget, gatewayOptions) {
6352
+ if (gatewayOptions.skipReadyWait) {
6353
+ return getGatewayTarget(this.#actorResolutionState);
6354
+ }
6355
+ return await this.#resolveActionTarget(useQueryTarget);
6356
+ }
5744
6357
  /**
5745
6358
  * Establishes a persistent connection to the actor.
5746
6359
  *
@@ -5777,15 +6390,20 @@ var ActorHandleRaw = class {
5777
6390
  async #fetchWithResolvedActor(input, init) {
5778
6391
  const maxAttempts = this.#getDynamicQueryMaxAttempts();
5779
6392
  let useQueryTarget = false;
5780
- const { bypassConnectable, skipReadyWait, ...requestInit } = init ?? {};
6393
+ const { skipReadyWait, ...requestInit } = init ?? {};
5781
6394
  const gatewayOptions = resolveActorGatewayOptions(
5782
6395
  this.#gatewayOptions,
5783
- { bypassConnectable, skipReadyWait }
6396
+ {
6397
+ skipReadyWait
6398
+ }
5784
6399
  );
5785
6400
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
5786
6401
  let actorId;
5787
6402
  try {
5788
- const target = await this.#resolveActionTarget(useQueryTarget);
6403
+ const target = await this.#resolveGatewayRequestTarget(
6404
+ useQueryTarget,
6405
+ gatewayOptions
6406
+ );
5789
6407
  actorId = "directId" in target ? target.directId : void 0;
5790
6408
  const response = await rawHttpFetch(
5791
6409
  this.#driver,
@@ -5810,12 +6428,7 @@ var ActorHandleRaw = class {
5810
6428
  }
5811
6429
  return response;
5812
6430
  } catch (err) {
5813
- const { group, code, message, metadata } = deconstructError(
5814
- err,
5815
- logger2(),
5816
- {},
5817
- true
5818
- );
6431
+ const { group, code, message, metadata, actor } = deconstructError(err, true);
5819
6432
  if (await this.#shouldRetrySchedulingError(
5820
6433
  group,
5821
6434
  code,
@@ -5838,7 +6451,10 @@ var ActorHandleRaw = class {
5838
6451
  await this.#waitForRetryWindow();
5839
6452
  continue;
5840
6453
  }
5841
- const invalidated = this.#invalidateResolvedActorId(group, code);
6454
+ const invalidated = this.#invalidateResolvedActorId(
6455
+ group,
6456
+ code
6457
+ );
5842
6458
  if (invalidated && attempt < maxAttempts - 1) {
5843
6459
  useQueryTarget = code === "starting" || code === "stopping" || code.startsWith("destroyed_");
5844
6460
  if (useQueryTarget) {
@@ -5846,7 +6462,7 @@ var ActorHandleRaw = class {
5846
6462
  }
5847
6463
  continue;
5848
6464
  }
5849
- throw new RivetError(group, code, message, metadata);
6465
+ throw new RivetError(group, code, message, { metadata, actor });
5850
6466
  }
5851
6467
  }
5852
6468
  throw new Error("unreachable fetch retry state");
@@ -5906,12 +6522,23 @@ var ActorHandleRaw = class {
5906
6522
  new Uint8Array(await response.clone().arrayBuffer()),
5907
6523
  HTTP_RESPONSE_ERROR_VERSIONED,
5908
6524
  HttpResponseErrorSchema,
5909
- (json) => json,
5910
- (bare4) => ({
5911
- group: bare4.group,
5912
- code: bare4.code,
5913
- message: bare4.message,
5914
- metadata: bare4.metadata ? decodeCborCompat(new Uint8Array(bare4.metadata)) : void 0
6525
+ (json) => ({
6526
+ ...json,
6527
+ actor: json.actor ? {
6528
+ ...json.actor,
6529
+ generation: Number(json.actor.generation)
6530
+ } : void 0
6531
+ }),
6532
+ (bare5) => ({
6533
+ group: bare5.group,
6534
+ code: bare5.code,
6535
+ message: bare5.message,
6536
+ metadata: bare5.metadata ? decodeCborCompat(new Uint8Array(bare5.metadata)) : void 0,
6537
+ actor: bare5.actor ? {
6538
+ actorId: bare5.actor.actorId,
6539
+ generation: Number(bare5.actor.generation),
6540
+ key: bare5.actor.key ?? void 0
6541
+ } : void 0
5915
6542
  })
5916
6543
  );
5917
6544
  } catch {
@@ -5927,7 +6554,11 @@ var ActorHandleRaw = class {
5927
6554
  this.#gatewayOptions,
5928
6555
  options
5929
6556
  );
5930
- const target = gatewayOptions.bypassConnectable ? await this.#resolveActionTarget(false) : getGatewayTarget(this.#actorResolutionState);
6557
+ const useQueryTarget = isDynamicActorQuery(this.#actorResolutionState);
6558
+ const target = await this.#resolveGatewayRequestTarget(
6559
+ useQueryTarget,
6560
+ gatewayOptions
6561
+ );
5931
6562
  return await rawWebSocket(
5932
6563
  this.#driver,
5933
6564
  target,
@@ -5948,7 +6579,9 @@ var ActorHandleRaw = class {
5948
6579
  if ("directId" in target) {
5949
6580
  return target.directId;
5950
6581
  }
5951
- throw new Error("dynamic actor resolution did not produce a direct actor id");
6582
+ throw new Error(
6583
+ "dynamic actor resolution did not produce a direct actor id"
6584
+ );
5952
6585
  }
5953
6586
  /**
5954
6587
  * Returns the raw URL for routing traffic to the actor.