rivetkit 2.3.0-rc.8 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/dist/browser/client.d.ts +481 -74
  2. package/dist/browser/client.js +174 -148
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +47 -18
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/actor/errors.cjs +2 -2
  7. package/dist/tsup/actor/errors.d.cts +1 -1
  8. package/dist/tsup/actor/errors.d.ts +1 -1
  9. package/dist/tsup/actor/errors.js +1 -1
  10. package/dist/tsup/agent-os/index.cjs +2160 -2086
  11. package/dist/tsup/agent-os/index.cjs.map +1 -1
  12. package/dist/tsup/agent-os/index.d.cts +479 -73
  13. package/dist/tsup/agent-os/index.d.ts +479 -73
  14. package/dist/tsup/agent-os/index.js +2160 -2086
  15. package/dist/tsup/agent-os/index.js.map +1 -1
  16. package/dist/tsup/{chunk-KY3CERZR.js → chunk-2OTRTA3J.js} +7 -21
  17. package/dist/tsup/chunk-2OTRTA3J.js.map +1 -0
  18. package/dist/tsup/{chunk-HGW6PBWR.cjs → chunk-3677IIOV.cjs} +11 -25
  19. package/dist/tsup/chunk-3677IIOV.cjs.map +1 -0
  20. package/dist/tsup/{chunk-OT7FF6GB.cjs → chunk-47HHIEXH.cjs} +24 -9
  21. package/dist/tsup/chunk-47HHIEXH.cjs.map +1 -0
  22. package/dist/tsup/{chunk-EMFKMVJR.js → chunk-4JDSFJS5.js} +69 -58
  23. package/dist/tsup/chunk-4JDSFJS5.js.map +1 -0
  24. package/dist/tsup/{chunk-7HLFSAJP.cjs → chunk-7QKCIVAY.cjs} +225 -214
  25. package/dist/tsup/chunk-7QKCIVAY.cjs.map +1 -0
  26. package/dist/tsup/{chunk-AWTPTUQ7.cjs → chunk-B6VUNZUD.cjs} +10 -10
  27. package/dist/tsup/{chunk-AWTPTUQ7.cjs.map → chunk-B6VUNZUD.cjs.map} +1 -1
  28. package/dist/tsup/{chunk-D3T3ZBSY.js → chunk-BEI24WTI.js} +2 -2
  29. package/dist/tsup/{chunk-TMLOKTRB.js → chunk-BRP62GZC.js} +1 -1
  30. package/dist/tsup/chunk-BRP62GZC.js.map +1 -0
  31. package/dist/tsup/{chunk-D5G75T7J.js → chunk-DPIMKYNB.js} +61 -2
  32. package/dist/tsup/chunk-DPIMKYNB.js.map +1 -0
  33. package/dist/tsup/{chunk-BATTOVHF.cjs → chunk-DXXJPH55.cjs} +40 -13
  34. package/dist/tsup/chunk-DXXJPH55.cjs.map +1 -0
  35. package/dist/tsup/{chunk-3YY5S6TV.js → chunk-HXUEHHJF.js} +2 -2
  36. package/dist/tsup/chunk-HXUEHHJF.js.map +1 -0
  37. package/dist/tsup/{chunk-4BPKKZJO.cjs → chunk-I4LN3FNT.cjs} +10 -10
  38. package/dist/tsup/chunk-I4LN3FNT.cjs.map +1 -0
  39. package/dist/tsup/{chunk-PCBNKI2J.js → chunk-JZ7TWV65.js} +1 -1
  40. package/dist/tsup/chunk-JZ7TWV65.js.map +1 -0
  41. package/dist/tsup/{chunk-63WNTDRC.cjs → chunk-KORQB2IR.cjs} +1 -1
  42. package/dist/tsup/{chunk-63WNTDRC.cjs.map → chunk-KORQB2IR.cjs.map} +1 -1
  43. package/dist/tsup/{chunk-6TQSSJ4F.cjs → chunk-LVTBW2RE.cjs} +3 -3
  44. package/dist/tsup/{chunk-6TQSSJ4F.cjs.map → chunk-LVTBW2RE.cjs.map} +1 -1
  45. package/dist/tsup/{chunk-4JU3IPG2.js → chunk-MEHBWPLJ.js} +6 -6
  46. package/dist/tsup/chunk-MEHBWPLJ.js.map +1 -0
  47. package/dist/tsup/{chunk-SRNOPUC6.cjs → chunk-NIY3RSPX.cjs} +62 -3
  48. package/dist/tsup/chunk-NIY3RSPX.cjs.map +1 -0
  49. package/dist/tsup/{chunk-UZXQEGVJ.js → chunk-P2GNQ4RN.js} +4 -4
  50. package/dist/tsup/{chunk-UZXQEGVJ.js.map → chunk-P2GNQ4RN.js.map} +1 -1
  51. package/dist/tsup/{chunk-VUGENVIK.js → chunk-UMZVD6DQ.js} +22 -7
  52. package/dist/tsup/chunk-UMZVD6DQ.js.map +1 -0
  53. package/dist/tsup/{chunk-LD5YASJU.cjs → chunk-VE2X4KMG.cjs} +2 -2
  54. package/dist/tsup/{chunk-LD5YASJU.cjs.map → chunk-VE2X4KMG.cjs.map} +1 -1
  55. package/dist/tsup/{chunk-GBG63SUG.js → chunk-VTTFNQQI.js} +32 -5
  56. package/dist/tsup/chunk-VTTFNQQI.js.map +1 -0
  57. package/dist/tsup/{chunk-2NDZ7JCR.cjs → chunk-ZA7FLHKH.cjs} +1 -1
  58. package/dist/tsup/chunk-ZA7FLHKH.cjs.map +1 -0
  59. package/dist/tsup/client/mod.cjs +9 -9
  60. package/dist/tsup/client/mod.d.cts +5 -5
  61. package/dist/tsup/client/mod.d.ts +5 -5
  62. package/dist/tsup/client/mod.js +8 -8
  63. package/dist/tsup/common/log.cjs +3 -3
  64. package/dist/tsup/common/log.js +2 -2
  65. package/dist/tsup/common/websocket.cjs +4 -4
  66. package/dist/tsup/common/websocket.js +3 -3
  67. package/dist/tsup/{config-Ak1lv4gF.d.ts → config-BxWAw3iH.d.ts} +512 -27
  68. package/dist/tsup/{config-DU_xj4qZ.d.cts → config-CZQQ-mso.d.cts} +512 -27
  69. package/dist/tsup/{config-CxjGYf4K.d.ts → config-D49x8NpL.d.cts} +1 -2
  70. package/dist/tsup/{config-CxjGYf4K.d.cts → config-D49x8NpL.d.ts} +1 -2
  71. package/dist/tsup/{context-DAAp4Lpg.d.ts → context-Bw7xq8w3.d.cts} +8 -8
  72. package/dist/tsup/{context-Dt_L55q8.d.cts → context-D8QA76sV.d.ts} +8 -8
  73. package/dist/tsup/db/drizzle.cjs +3 -3
  74. package/dist/tsup/db/drizzle.d.cts +1 -1
  75. package/dist/tsup/db/drizzle.d.ts +1 -1
  76. package/dist/tsup/db/drizzle.js +1 -1
  77. package/dist/tsup/db/mod.cjs +2 -2
  78. package/dist/tsup/db/mod.d.cts +2 -2
  79. package/dist/tsup/db/mod.d.ts +2 -2
  80. package/dist/tsup/db/mod.js +1 -1
  81. package/dist/tsup/dynamic/mod.cjs +24 -0
  82. package/dist/tsup/dynamic/mod.cjs.map +1 -0
  83. package/dist/tsup/dynamic/mod.d.cts +37 -0
  84. package/dist/tsup/dynamic/mod.d.ts +37 -0
  85. package/dist/tsup/dynamic/mod.js +24 -0
  86. package/dist/tsup/dynamic/mod.js.map +1 -0
  87. package/dist/tsup/inspector/mod.cjs +6 -6
  88. package/dist/tsup/inspector/mod.js +5 -5
  89. package/dist/tsup/inspector-tab/mod.cjs +173 -0
  90. package/dist/tsup/inspector-tab/mod.cjs.map +1 -0
  91. package/dist/tsup/inspector-tab/mod.d.cts +250 -0
  92. package/dist/tsup/inspector-tab/mod.d.ts +250 -0
  93. package/dist/tsup/inspector-tab/mod.js +173 -0
  94. package/dist/tsup/inspector-tab/mod.js.map +1 -0
  95. package/dist/tsup/mod.cjs +615 -348
  96. package/dist/tsup/mod.cjs.map +1 -1
  97. package/dist/tsup/mod.d.cts +5 -5
  98. package/dist/tsup/mod.d.ts +5 -5
  99. package/dist/tsup/mod.js +511 -244
  100. package/dist/tsup/mod.js.map +1 -1
  101. package/dist/tsup/test/mod.cjs +21 -18
  102. package/dist/tsup/test/mod.cjs.map +1 -1
  103. package/dist/tsup/test/mod.d.cts +4 -4
  104. package/dist/tsup/test/mod.d.ts +4 -4
  105. package/dist/tsup/test/mod.js +18 -15
  106. package/dist/tsup/test/mod.js.map +1 -1
  107. package/dist/tsup/{utils-DVekpm4I.d.cts → utils-DQosb24I.d.cts} +1 -1
  108. package/dist/tsup/{utils-DVekpm4I.d.ts → utils-DQosb24I.d.ts} +1 -1
  109. package/dist/tsup/utils.cjs +3 -3
  110. package/dist/tsup/utils.d.cts +1 -1
  111. package/dist/tsup/utils.d.ts +1 -1
  112. package/dist/tsup/utils.js +2 -2
  113. package/dist/tsup/workflow/mod.cjs +279 -279
  114. package/dist/tsup/workflow/mod.cjs.map +1 -1
  115. package/dist/tsup/workflow/mod.d.cts +6 -6
  116. package/dist/tsup/workflow/mod.d.ts +6 -6
  117. package/dist/tsup/workflow/mod.js +380 -380
  118. package/dist/tsup/workflow/mod.js.map +1 -1
  119. package/package.json +29 -9
  120. package/src/actor/config.ts +156 -51
  121. package/src/actor/contexts/index.ts +7 -2
  122. package/src/actor/definition.ts +17 -19
  123. package/src/actor/driver.ts +3 -3
  124. package/src/actor/errors.ts +8 -2
  125. package/src/actor/instance/mod.ts +26 -34
  126. package/src/actor/keys.ts +1 -1
  127. package/src/actor/mod.ts +22 -20
  128. package/src/actor/schema.ts +2 -2
  129. package/src/agent-os/actor/index.ts +38 -18
  130. package/src/agent-os/actor/preview.ts +1 -2
  131. package/src/agent-os/config.ts +1 -1
  132. package/src/agent-os/fs/database-vfs.ts +1 -1
  133. package/src/agent-os/index.ts +16 -15
  134. package/src/client/actor-common.ts +87 -54
  135. package/src/client/actor-conn.ts +11 -11
  136. package/src/client/actor-handle.ts +69 -52
  137. package/src/client/actor-query.ts +5 -5
  138. package/src/client/errors.ts +1 -1
  139. package/src/client/lifecycle-errors.ts +2 -4
  140. package/src/client/query.ts +1 -1
  141. package/src/client/queue.ts +8 -4
  142. package/src/client/raw-utils.ts +8 -6
  143. package/src/client/resolve-gateway-target.ts +1 -1
  144. package/src/client/utils.ts +2 -6
  145. package/src/common/actor-websocket.ts +3 -1
  146. package/src/common/bare/actor-persist/v1.ts +205 -163
  147. package/src/common/bare/actor-persist/v2.ts +265 -213
  148. package/src/common/bare/actor-persist/v3.ts +176 -172
  149. package/src/common/bare/actor-persist/v4.ts +254 -253
  150. package/src/common/bare/transport/v1.ts +659 -543
  151. package/src/common/client-protocol-versioned.ts +66 -64
  152. package/src/common/database/config.ts +2 -8
  153. package/src/common/database/native-database.ts +1 -1
  154. package/src/common/database/shared.ts +1 -0
  155. package/src/common/encoding.ts +13 -17
  156. package/src/common/engine.ts +28 -1
  157. package/src/common/eventsource.ts +1 -1
  158. package/src/common/inline-websocket-adapter.ts +3 -2
  159. package/src/common/router.ts +13 -17
  160. package/src/common/utils.ts +1 -2
  161. package/src/common/websocket-interface.ts +1 -1
  162. package/src/db/mod.ts +1 -1
  163. package/src/devtools-loader/index.ts +4 -7
  164. package/src/devtools-loader/serve-devtools.ts +26 -0
  165. package/src/drivers/engine/actor-driver.ts +48 -46
  166. package/src/dynamic/instance.ts +32 -0
  167. package/src/dynamic/internal.ts +50 -0
  168. package/src/dynamic/isolate-runtime.ts +66 -0
  169. package/src/dynamic/mod.ts +32 -0
  170. package/src/engine-client/actor-http-client.ts +3 -3
  171. package/src/engine-client/actor-websocket-client.ts +5 -5
  172. package/src/engine-client/api-endpoints.ts +51 -2
  173. package/src/engine-client/api-utils.ts +2 -2
  174. package/src/engine-client/driver.ts +1 -1
  175. package/src/engine-client/mod.ts +5 -3
  176. package/src/engine-client/ws-proxy.ts +9 -4
  177. package/src/inspector/client.browser.ts +5 -11
  178. package/src/inspector/mod.ts +1 -3
  179. package/src/inspector-tab/mod.ts +315 -0
  180. package/src/registry/config/envoy.ts +1 -2
  181. package/src/registry/config/index.ts +40 -16
  182. package/src/registry/index.ts +226 -83
  183. package/src/registry/napi-runtime.ts +46 -12
  184. package/src/registry/native-validation.ts +10 -12
  185. package/src/registry/native.ts +307 -164
  186. package/src/registry/process-metrics.ts +90 -23
  187. package/src/registry/runtime.ts +53 -6
  188. package/src/registry/wasm-runtime.ts +30 -3
  189. package/src/serde.ts +1 -1
  190. package/src/serverless/configure.ts +18 -7
  191. package/src/test/mod.ts +11 -8
  192. package/src/utils/endpoint-parser.ts +1 -1
  193. package/src/utils/env-vars.ts +6 -0
  194. package/src/utils/router.ts +1 -1
  195. package/src/utils/serve.ts +4 -5
  196. package/src/utils.ts +1 -2
  197. package/src/workflow/context.ts +30 -29
  198. package/src/workflow/driver.ts +4 -6
  199. package/src/workflow/inspector.ts +2 -2
  200. package/src/workflow/mod.ts +15 -17
  201. package/dist/tsup/chunk-2NDZ7JCR.cjs.map +0 -1
  202. package/dist/tsup/chunk-3YY5S6TV.js.map +0 -1
  203. package/dist/tsup/chunk-4BPKKZJO.cjs.map +0 -1
  204. package/dist/tsup/chunk-4JU3IPG2.js.map +0 -1
  205. package/dist/tsup/chunk-7HLFSAJP.cjs.map +0 -1
  206. package/dist/tsup/chunk-BATTOVHF.cjs.map +0 -1
  207. package/dist/tsup/chunk-D5G75T7J.js.map +0 -1
  208. package/dist/tsup/chunk-EMFKMVJR.js.map +0 -1
  209. package/dist/tsup/chunk-GBG63SUG.js.map +0 -1
  210. package/dist/tsup/chunk-HGW6PBWR.cjs.map +0 -1
  211. package/dist/tsup/chunk-KY3CERZR.js.map +0 -1
  212. package/dist/tsup/chunk-OT7FF6GB.cjs.map +0 -1
  213. package/dist/tsup/chunk-PCBNKI2J.js.map +0 -1
  214. package/dist/tsup/chunk-SRNOPUC6.cjs.map +0 -1
  215. package/dist/tsup/chunk-TMLOKTRB.js.map +0 -1
  216. package/dist/tsup/chunk-VUGENVIK.js.map +0 -1
  217. package/dist/tsup/process-metrics-NW754INA.js +0 -118
  218. package/dist/tsup/process-metrics-NW754INA.js.map +0 -1
  219. package/dist/tsup/process-metrics-TYAGKCEJ.cjs +0 -118
  220. package/dist/tsup/process-metrics-TYAGKCEJ.cjs.map +0 -1
  221. /package/dist/tsup/{chunk-D3T3ZBSY.js.map → chunk-BEI24WTI.js.map} +0 -0
@@ -122,71 +122,73 @@ const v4HttpResponseErrorToV3 = (
122
122
  return rest;
123
123
  };
124
124
 
125
- export const CLIENT_PROTOCOL_TO_SERVER = createVersionedDataHandler<v4.ToServer>({
126
- deserializeVersion: (bytes, version) => {
127
- switch (version) {
128
- case 1:
129
- return v1.decodeToServer(bytes);
130
- case 2:
131
- return v2.decodeToServer(bytes);
132
- case 3:
133
- return v3.decodeToServer(bytes);
134
- case 4:
135
- return v4.decodeToServer(bytes);
136
- default:
137
- throw new Error(`Unknown version ${version}`);
138
- }
139
- },
140
- serializeVersion: (data, version) => {
141
- switch (version) {
142
- case 1:
143
- return v1.encodeToServer(data as v1.ToServer);
144
- case 2:
145
- return v2.encodeToServer(data as v2.ToServer);
146
- case 3:
147
- return v3.encodeToServer(data as v3.ToServer);
148
- case 4:
149
- return v4.encodeToServer(data as v4.ToServer);
150
- default:
151
- throw new Error(`Unknown version ${version}`);
152
- }
153
- },
154
- deserializeConverters: () => [v1ToServerV2, v2ToServerV3, v3ToServerV4],
155
- serializeConverters: () => [v4ToServerV3, v3ToServerV2, v2ToServerV1],
156
- });
125
+ export const CLIENT_PROTOCOL_TO_SERVER =
126
+ createVersionedDataHandler<v4.ToServer>({
127
+ deserializeVersion: (bytes, version) => {
128
+ switch (version) {
129
+ case 1:
130
+ return v1.decodeToServer(bytes);
131
+ case 2:
132
+ return v2.decodeToServer(bytes);
133
+ case 3:
134
+ return v3.decodeToServer(bytes);
135
+ case 4:
136
+ return v4.decodeToServer(bytes);
137
+ default:
138
+ throw new Error(`Unknown version ${version}`);
139
+ }
140
+ },
141
+ serializeVersion: (data, version) => {
142
+ switch (version) {
143
+ case 1:
144
+ return v1.encodeToServer(data as v1.ToServer);
145
+ case 2:
146
+ return v2.encodeToServer(data as v2.ToServer);
147
+ case 3:
148
+ return v3.encodeToServer(data as v3.ToServer);
149
+ case 4:
150
+ return v4.encodeToServer(data as v4.ToServer);
151
+ default:
152
+ throw new Error(`Unknown version ${version}`);
153
+ }
154
+ },
155
+ deserializeConverters: () => [v1ToServerV2, v2ToServerV3, v3ToServerV4],
156
+ serializeConverters: () => [v4ToServerV3, v3ToServerV2, v2ToServerV1],
157
+ });
157
158
 
158
- export const CLIENT_PROTOCOL_TO_CLIENT = createVersionedDataHandler<v4.ToClient>({
159
- deserializeVersion: (bytes, version) => {
160
- switch (version) {
161
- case 1:
162
- return v1.decodeToClient(bytes);
163
- case 2:
164
- return v2.decodeToClient(bytes);
165
- case 3:
166
- return v3.decodeToClient(bytes);
167
- case 4:
168
- return v4.decodeToClient(bytes);
169
- default:
170
- throw new Error(`Unknown version ${version}`);
171
- }
172
- },
173
- serializeVersion: (data, version) => {
174
- switch (version) {
175
- case 1:
176
- return v1.encodeToClient(data as v1.ToClient);
177
- case 2:
178
- return v2.encodeToClient(data as v2.ToClient);
179
- case 3:
180
- return v3.encodeToClient(data as v3.ToClient);
181
- case 4:
182
- return v4.encodeToClient(data as v4.ToClient);
183
- default:
184
- throw new Error(`Unknown version ${version}`);
185
- }
186
- },
187
- deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
188
- serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1],
189
- });
159
+ export const CLIENT_PROTOCOL_TO_CLIENT =
160
+ createVersionedDataHandler<v4.ToClient>({
161
+ deserializeVersion: (bytes, version) => {
162
+ switch (version) {
163
+ case 1:
164
+ return v1.decodeToClient(bytes);
165
+ case 2:
166
+ return v2.decodeToClient(bytes);
167
+ case 3:
168
+ return v3.decodeToClient(bytes);
169
+ case 4:
170
+ return v4.decodeToClient(bytes);
171
+ default:
172
+ throw new Error(`Unknown version ${version}`);
173
+ }
174
+ },
175
+ serializeVersion: (data, version) => {
176
+ switch (version) {
177
+ case 1:
178
+ return v1.encodeToClient(data as v1.ToClient);
179
+ case 2:
180
+ return v2.encodeToClient(data as v2.ToClient);
181
+ case 3:
182
+ return v3.encodeToClient(data as v3.ToClient);
183
+ case 4:
184
+ return v4.encodeToClient(data as v4.ToClient);
185
+ default:
186
+ throw new Error(`Unknown version ${version}`);
187
+ }
188
+ },
189
+ deserializeConverters: () => [v1ToV2, v2ToV3, v3ToV4],
190
+ serializeConverters: () => [v4ToV3, v3ToV2, v2ToV1],
191
+ });
190
192
 
191
193
  export const HTTP_ACTION_REQUEST_VERSIONED =
192
194
  createVersionedDataHandler<v4.HttpActionRequest>({
@@ -42,10 +42,7 @@ export interface SqliteDatabase {
42
42
  sql: string,
43
43
  callback?: (row: unknown[], columns: string[]) => void,
44
44
  ): Promise<void>;
45
- execute(
46
- sql: string,
47
- params?: SqliteBindings,
48
- ): Promise<SqliteExecuteResult>;
45
+ execute(sql: string, params?: SqliteBindings): Promise<SqliteExecuteResult>;
49
46
  run(sql: string, params?: SqliteBindings): Promise<void>;
50
47
  query(sql: string, params?: SqliteBindings): Promise<SqliteQueryResult>;
51
48
  nativeMetrics?():
@@ -132,10 +129,7 @@ export interface RawDatabaseClient {
132
129
  /**
133
130
  * Drizzle database client interface (will be extended by drizzle-orm types)
134
131
  */
135
- export interface DrizzleDatabaseClient {
136
- // This will be extended by BaseSQLiteDatabase from drizzle-orm
137
- // For now, just a marker interface
138
- }
132
+ export type DrizzleDatabaseClient = {};
139
133
 
140
134
  type ExecuteFunction = <
141
135
  TRow extends Record<string, unknown> = Record<string, unknown>,
@@ -97,7 +97,7 @@ function enrichNativeDatabaseError(
97
97
  ? error
98
98
  : error instanceof Error
99
99
  ? error.message
100
- : undefined;
100
+ : undefined;
101
101
  const bridged =
102
102
  bridgeReason === undefined
103
103
  ? undefined
@@ -1,4 +1,5 @@
1
1
  import type { SqliteBindings } from "./config";
2
+
2
3
  type SqliteBindingObject = Record<string, unknown>;
3
4
 
4
5
  function isSqliteBindingValue(value: unknown): boolean {
@@ -1,5 +1,5 @@
1
- import { z } from "zod/v4";
2
1
  import type { VersionedDataHandler } from "vbare";
2
+ import { z } from "zod/v4";
3
3
  import { serializeWithEncoding } from "@/serde";
4
4
  import { assertUnreachable } from "./utils";
5
5
 
@@ -172,7 +172,7 @@ export function assertJsonCompatValue(
172
172
 
173
173
  const typeName =
174
174
  typeof value === "object" && value !== null
175
- ? value.constructor?.name ?? typeof value
175
+ ? (value.constructor?.name ?? typeof value)
176
176
  : typeof value;
177
177
  throw new TypeError(
178
178
  `Value at ${path || "root"} of type "${typeName}" is not CBOR serializable`,
@@ -310,7 +310,11 @@ export function encodeJsonCompatValue(input: JsonCompatValue): unknown {
310
310
  }
311
311
 
312
312
  // Date, RegExp, and Error pass through for cbor-x native handling
313
- if (input instanceof Date || input instanceof RegExp || input instanceof Error) {
313
+ if (
314
+ input instanceof Date ||
315
+ input instanceof RegExp ||
316
+ input instanceof Error
317
+ ) {
314
318
  return input;
315
319
  }
316
320
 
@@ -344,7 +348,7 @@ export function encodeJsonCompatValue(input: JsonCompatValue): unknown {
344
348
  typeof encoded[0] === "string" &&
345
349
  (encoded[0] as string).startsWith("$")
346
350
  ) {
347
- return ["$" + encoded[0], encoded[1]];
351
+ return [`$${encoded[0]}`, encoded[1]];
348
352
  }
349
353
  return encoded;
350
354
  }
@@ -361,11 +365,9 @@ export function encodeJsonCompatValue(input: JsonCompatValue): unknown {
361
365
  // Not serializable
362
366
  const typeName =
363
367
  typeof input === "object" && input !== null
364
- ? (input as object).constructor?.name ?? typeof input
368
+ ? ((input as object).constructor?.name ?? typeof input)
365
369
  : typeof input;
366
- throw new TypeError(
367
- `Value of type "${typeName}" is not CBOR serializable`,
368
- );
370
+ throw new TypeError(`Value of type "${typeName}" is not CBOR serializable`);
369
371
  }
370
372
 
371
373
  export interface JsonCompatReviveOptions {
@@ -477,16 +479,10 @@ export function jsonStringifyCompat(input: any): string {
477
479
  return [JSON_COMPAT_BIGINT, value.toString()];
478
480
  }
479
481
  if (value instanceof ArrayBuffer) {
480
- return [
481
- JSON_COMPAT_ARRAY_BUFFER,
482
- base64EncodeArrayBuffer(value),
483
- ];
482
+ return [JSON_COMPAT_ARRAY_BUFFER, base64EncodeArrayBuffer(value)];
484
483
  }
485
484
  if (value instanceof Uint8Array) {
486
- return [
487
- JSON_COMPAT_UINT8_ARRAY,
488
- base64EncodeUint8Array(value),
489
- ];
485
+ return [JSON_COMPAT_UINT8_ARRAY, base64EncodeUint8Array(value)];
490
486
  }
491
487
  if (
492
488
  Array.isArray(value) &&
@@ -494,7 +490,7 @@ export function jsonStringifyCompat(input: any): string {
494
490
  typeof value[0] === "string" &&
495
491
  value[0].startsWith("$")
496
492
  ) {
497
- return ["$" + value[0], value[1]];
493
+ return [`$${value[0]}`, value[1]];
498
494
  }
499
495
  return value;
500
496
  });
@@ -1,2 +1,29 @@
1
+ export const ENGINE_HOST = "127.0.0.1";
1
2
  export const ENGINE_PORT = 6420;
2
- export const ENGINE_ENDPOINT = `http://127.0.0.1:${ENGINE_PORT}`;
3
+ export const ENGINE_ENDPOINT = buildEngineEndpoint(ENGINE_HOST, ENGINE_PORT);
4
+
5
+ export function buildEngineEndpoint(host: string, port: number): string {
6
+ const urlHost =
7
+ host.includes(":") && !host.startsWith("[") ? `[${host}]` : host;
8
+ return `http://${urlHost}:${port}`;
9
+ }
10
+
11
+ export function isLocalEngineEndpoint(endpoint: string): boolean {
12
+ let url: URL;
13
+ try {
14
+ url = new URL(endpoint);
15
+ } catch {
16
+ return false;
17
+ }
18
+
19
+ const hostname = url.hostname.toLowerCase();
20
+ return (
21
+ hostname === "localhost" ||
22
+ hostname === "0.0.0.0" ||
23
+ hostname === "::" ||
24
+ hostname === "[::]" ||
25
+ hostname === "::1" ||
26
+ hostname === "[::1]" ||
27
+ /^127(?:\.\d{1,3}){0,3}$/.test(hostname)
28
+ );
29
+ }
@@ -25,7 +25,7 @@ export async function importEventSource(): Promise<typeof EventSource> {
25
25
  const es = await import(/* webpackIgnore: true */ moduleName);
26
26
  _EventSource = es.EventSource;
27
27
  logger().debug("using eventsource from npm");
28
- } catch (err) {
28
+ } catch (_err) {
29
29
  // EventSource not available
30
30
  _EventSource = class MockEventSource {
31
31
  constructor() {
@@ -1,7 +1,7 @@
1
+ import { VirtualWebSocket } from "@rivetkit/virtual-websocket";
1
2
  import { WSContext } from "hono/ws";
2
3
  import type { UpgradeWebSocketArgs } from "@/common/actor-websocket";
3
4
  import type { UniversalWebSocket } from "@/common/websocket-interface";
4
- import { VirtualWebSocket } from "@rivetkit/virtual-websocket";
5
5
  import { getLogger } from "./log";
6
6
 
7
7
  function logger() {
@@ -166,7 +166,8 @@ export class InlineWebSocketAdapter {
166
166
  logger().error({
167
167
  msg: "error in websocket",
168
168
  error,
169
- errorMessage: error instanceof Error ? error.message : String(error),
169
+ errorMessage:
170
+ error instanceof Error ? error.message : String(error),
170
171
  stack: error instanceof Error ? error.stack : undefined,
171
172
  });
172
173
 
@@ -1,17 +1,11 @@
1
- import type { Context as HonoContext, Next } from "hono";
2
1
  import * as envoyProtocol from "@rivetkit/engine-envoy-protocol";
2
+ import type { Context as HonoContext, Next } from "hono";
3
3
  import type { ActorSpecifier } from "@/actor/errors";
4
4
  import {
5
5
  HEADER_ACTOR_GENERATION,
6
6
  HEADER_ACTOR_ID,
7
7
  HEADER_ACTOR_KEY,
8
8
  } from "@/common/actor-router-consts";
9
- import type { JsonCompatValue, Encoding } from "@/common/encoding";
10
- import {
11
- getRequestEncoding,
12
- getRequestExposeInternalError,
13
- } from "@/common/router-request";
14
- import { buildActorNames, type RegistryConfig } from "@/registry/config";
15
9
  import type * as protocol from "@/common/client-protocol";
16
10
  import {
17
11
  CURRENT_VERSION as CLIENT_PROTOCOL_CURRENT_VERSION,
@@ -21,15 +15,17 @@ import {
21
15
  type HttpResponseError as HttpResponseErrorJson,
22
16
  HttpResponseErrorSchema,
23
17
  } from "@/common/client-protocol-zod";
18
+ import type { Encoding, JsonCompatValue } from "@/common/encoding";
24
19
  import {
25
- encodeCborCompat,
26
- encodingIsBinary,
27
- serializeWithEncoding,
28
- } from "@/serde";
20
+ getRequestEncoding,
21
+ getRequestExposeInternalError,
22
+ } from "@/common/router-request";
23
+ import { buildActorNames, type RegistryConfig } from "@/registry/config";
24
+ import { encodeCborCompat, serializeWithEncoding } from "@/serde";
29
25
  import { bufferToArrayBuffer, VERSION } from "@/utils";
30
26
  import { getLogHeaders } from "@/utils/env-vars";
31
27
  import { getLogger, type Logger } from "./log";
32
- import { deconstructError, stringifyError } from "./utils";
28
+ import { deconstructError } from "./utils";
33
29
 
34
30
  export function logger() {
35
31
  return getLogger("router");
@@ -67,10 +63,8 @@ export function handleRouteNotFound(c: HonoContext) {
67
63
  export function handleRouteError(error: unknown, c: HonoContext) {
68
64
  const exposeInternalError = getRequestExposeInternalError(c.req.raw);
69
65
 
70
- const { statusCode, group, code, message, metadata, actor } = deconstructError(
71
- error,
72
- exposeInternalError,
73
- );
66
+ const { statusCode, group, code, message, metadata, actor } =
67
+ deconstructError(error, exposeInternalError);
74
68
 
75
69
  if (actor) {
76
70
  logger().warn({
@@ -111,7 +105,9 @@ export function handleRouteError(error: unknown, c: HonoContext) {
111
105
  code: value.code,
112
106
  message: value.message,
113
107
  metadata: value.metadata
114
- ? bufferToArrayBuffer(encodeCborCompat(value.metadata as JsonCompatValue))
108
+ ? bufferToArrayBuffer(
109
+ encodeCborCompat(value.metadata as JsonCompatValue),
110
+ )
115
111
  : null,
116
112
  actor: value.actor
117
113
  ? {
@@ -36,7 +36,6 @@ export function safeStringify(obj: unknown, maxSize: number) {
36
36
  return JSON.stringify(obj, replacer);
37
37
  }
38
38
 
39
-
40
39
  export interface DeconstructedError {
41
40
  __type: "ActorError";
42
41
  statusCode: ContentfulStatusCode;
@@ -135,7 +134,7 @@ export function deconstructError(
135
134
  actor = error.actor;
136
135
  }
137
136
  metadata = {
138
- //url: `https://hub.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
137
+ //url: `https://dashboard.rivet.dev/projects/${actorMetadata.project.slug}/environments/${actorMetadata.environment.slug}/actors?actorId=${actorMetadata.actor.id}`,
139
138
  } satisfies errors.InternalErrorMetadata;
140
139
  }
141
140
 
@@ -1,7 +1,7 @@
1
1
  // Re-export everything from the virtual-websocket package
2
2
  export type {
3
+ RivetCloseEvent,
3
4
  RivetEvent,
4
5
  RivetMessageEvent,
5
- RivetCloseEvent,
6
6
  UniversalWebSocket,
7
7
  } from "@rivetkit/virtual-websocket";
package/src/db/mod.ts CHANGED
@@ -1,4 +1,3 @@
1
- export { db } from "@/common/database/mod";
2
1
  export type {
3
2
  AnyDatabaseProvider,
4
3
  DatabaseProvider,
@@ -11,3 +10,4 @@ export type {
11
10
  SqliteNativeMetrics,
12
11
  SqliteQueryResult,
13
12
  } from "@/common/database/config";
13
+ export { db } from "@/common/database/mod";
@@ -1,16 +1,11 @@
1
1
  import type { ClientConfigInput } from "@/client/client";
2
- import { VERSION } from "@/utils";
3
2
  import { logger } from "./log";
4
3
 
5
4
  declare global {
6
5
  // Injected via tsup config
7
- // biome-ignore lint/style/noVar: required for global declaration
8
6
  var CUSTOM_RIVETKIT_DEVTOOLS_URL: string | undefined;
9
7
  }
10
8
 
11
- const DEFAULT_DEVTOOLS_URL = (version = VERSION) =>
12
- `https://releases.rivet.dev/rivet/latest/devtools/mod.js?v=${version}`;
13
-
14
9
  const scriptId = "rivetkit-devtools-script";
15
10
 
16
11
  export function injectDevtools(config: ClientConfigInput) {
@@ -20,10 +15,12 @@ export function injectDevtools(config: ClientConfigInput) {
20
15
  }
21
16
 
22
17
  if (!document.getElementById(scriptId)) {
18
+ const src =
19
+ globalThis.CUSTOM_RIVETKIT_DEVTOOLS_URL ||
20
+ `${config.endpoint?.replace(/\/$/, "")}/devtools/mod.js`;
23
21
  const script = document.createElement("script");
24
22
  script.id = scriptId;
25
- script.src =
26
- globalThis.CUSTOM_RIVETKIT_DEVTOOLS_URL || DEFAULT_DEVTOOLS_URL();
23
+ script.src = src;
27
24
  script.async = true;
28
25
  document.head.appendChild(script);
29
26
  }
@@ -0,0 +1,26 @@
1
+ import { getNodeFs, getNodePath, getNodeUrl } from "@/utils/node";
2
+
3
+ export async function getDevtoolsPath(): Promise<string> {
4
+ const url = getNodeUrl();
5
+ const path = getNodePath();
6
+
7
+ const devtoolsPath = path.join(
8
+ path.dirname(url.fileURLToPath(import.meta.url)),
9
+ "../../dist/devtools/mod.js",
10
+ );
11
+
12
+ try {
13
+ await getNodeFs().access(devtoolsPath);
14
+ } catch {
15
+ throw new Error(
16
+ `Devtools bundle not found at ${devtoolsPath}. Run 'pnpm build:pack-devtools' first.`,
17
+ );
18
+ }
19
+
20
+ return devtoolsPath;
21
+ }
22
+
23
+ export async function readDevtoolsBundle(): Promise<Buffer> {
24
+ const devtoolsPath = await getDevtoolsPath();
25
+ return getNodeFs().readFile(devtoolsPath);
26
+ }