rivetkit 2.0.38 → 2.0.40

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 (99) hide show
  1. package/dist/tsup/{chunk-IWXMFQDT.cjs → chunk-4KNL47JA.cjs} +274 -80
  2. package/dist/tsup/chunk-4KNL47JA.cjs.map +1 -0
  3. package/dist/tsup/{chunk-UUEZVDRL.js → chunk-4T4UWXHN.js} +8 -4
  4. package/dist/tsup/{chunk-UUEZVDRL.js.map → chunk-4T4UWXHN.js.map} +1 -1
  5. package/dist/tsup/{chunk-LULP6HM2.cjs → chunk-6NBNCWEC.cjs} +313 -289
  6. package/dist/tsup/chunk-6NBNCWEC.cjs.map +1 -0
  7. package/dist/tsup/{chunk-WIZ4JGP6.js → chunk-7Q7R3QYT.js} +2 -2
  8. package/dist/tsup/{chunk-6WLJW57U.cjs → chunk-B5BMSBR4.cjs} +230 -128
  9. package/dist/tsup/chunk-B5BMSBR4.cjs.map +1 -0
  10. package/dist/tsup/{chunk-FZQHTGQX.cjs → chunk-D2HB4PM5.cjs} +9 -9
  11. package/dist/tsup/{chunk-FZQHTGQX.cjs.map → chunk-D2HB4PM5.cjs.map} +1 -1
  12. package/dist/tsup/{chunk-IRTVRBJA.cjs → chunk-FB4TVPDQ.cjs} +50 -46
  13. package/dist/tsup/chunk-FB4TVPDQ.cjs.map +1 -0
  14. package/dist/tsup/{chunk-O433HWWG.cjs → chunk-HZOBB3KP.cjs} +2 -2
  15. package/dist/tsup/{chunk-O433HWWG.cjs.map → chunk-HZOBB3KP.cjs.map} +1 -1
  16. package/dist/tsup/{chunk-K2RNF2ZR.js → chunk-J2R742IE.js} +5 -5
  17. package/dist/tsup/{chunk-FA6FGAEC.js → chunk-J6YRLC6K.js} +143 -41
  18. package/dist/tsup/chunk-J6YRLC6K.js.map +1 -0
  19. package/dist/tsup/{chunk-MIOU6BF3.js → chunk-KVB2SG32.js} +219 -25
  20. package/dist/tsup/chunk-KVB2SG32.js.map +1 -0
  21. package/dist/tsup/{chunk-GFKZZG2A.cjs → chunk-XCDGPOZT.cjs} +3 -3
  22. package/dist/tsup/{chunk-GFKZZG2A.cjs.map → chunk-XCDGPOZT.cjs.map} +1 -1
  23. package/dist/tsup/{chunk-EEL32AJM.js → chunk-XCRJ245S.js} +74 -50
  24. package/dist/tsup/chunk-XCRJ245S.js.map +1 -0
  25. package/dist/tsup/{chunk-4U45T5KW.js → chunk-ZUMPCWKF.js} +2 -2
  26. package/dist/tsup/{chunk-4U45T5KW.js.map → chunk-ZUMPCWKF.js.map} +1 -1
  27. package/dist/tsup/client/mod.cjs +5 -5
  28. package/dist/tsup/client/mod.d.cts +3 -3
  29. package/dist/tsup/client/mod.d.ts +3 -3
  30. package/dist/tsup/client/mod.js +4 -4
  31. package/dist/tsup/common/log.cjs +2 -2
  32. package/dist/tsup/common/log.js +1 -1
  33. package/dist/tsup/common/websocket.cjs +3 -3
  34. package/dist/tsup/common/websocket.js +2 -2
  35. package/dist/tsup/{config-CbIHPGKl.d.ts → config-OR5ZtHFa.d.ts} +75 -5
  36. package/dist/tsup/{config-CwJCQyP1.d.cts → config-cizn-tcF.d.cts} +75 -5
  37. package/dist/tsup/{driver-Lw_oORox.d.cts → driver-Bg4evbcN.d.cts} +1 -1
  38. package/dist/tsup/{driver-CMN823Lc.d.ts → driver-BrAG8ioa.d.ts} +1 -1
  39. package/dist/tsup/driver-helpers/mod.cjs +3 -3
  40. package/dist/tsup/driver-helpers/mod.d.cts +2 -2
  41. package/dist/tsup/driver-helpers/mod.d.ts +2 -2
  42. package/dist/tsup/driver-helpers/mod.js +2 -2
  43. package/dist/tsup/driver-test-suite/mod.cjs +109 -35
  44. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  45. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  46. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  47. package/dist/tsup/driver-test-suite/mod.js +435 -361
  48. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  49. package/dist/tsup/{kv-CTM8sCvx.d.cts → keys-Chhy4ylv.d.cts} +1 -0
  50. package/dist/tsup/{kv-CTM8sCvx.d.ts → keys-Chhy4ylv.d.ts} +1 -0
  51. package/dist/tsup/mod.cjs +9 -7
  52. package/dist/tsup/mod.cjs.map +1 -1
  53. package/dist/tsup/mod.d.cts +5 -5
  54. package/dist/tsup/mod.d.ts +5 -5
  55. package/dist/tsup/mod.js +8 -6
  56. package/dist/tsup/test/mod.cjs +7 -7
  57. package/dist/tsup/test/mod.d.cts +1 -1
  58. package/dist/tsup/test/mod.d.ts +1 -1
  59. package/dist/tsup/test/mod.js +6 -6
  60. package/dist/tsup/utils.cjs +2 -2
  61. package/dist/tsup/utils.js +1 -1
  62. package/package.json +2 -2
  63. package/src/actor/config.ts +183 -34
  64. package/src/actor/contexts/base/actor.ts +12 -0
  65. package/src/actor/instance/connection-manager.ts +1 -1
  66. package/src/actor/instance/keys.ts +29 -0
  67. package/src/actor/instance/kv.ts +240 -14
  68. package/src/actor/instance/mod.ts +5 -4
  69. package/src/actor/instance/schedule-manager.ts +2 -1
  70. package/src/actor/instance/state-manager.ts +1 -1
  71. package/src/actor/mod.ts +2 -1
  72. package/src/actor/router-websocket-endpoints.test.ts +54 -0
  73. package/src/actor/router-websocket-endpoints.ts +11 -5
  74. package/src/client/actor-handle.ts +13 -3
  75. package/src/client/mod.ts +1 -1
  76. package/src/driver-helpers/utils.ts +1 -1
  77. package/src/driver-test-suite/mod.ts +3 -0
  78. package/src/driver-test-suite/test-inline-client-driver.ts +3 -0
  79. package/src/driver-test-suite/tests/actor-kv.ts +44 -0
  80. package/src/driver-test-suite/tests/raw-websocket.ts +40 -0
  81. package/src/driver-test-suite/utils.ts +4 -0
  82. package/src/drivers/engine/actor-driver.ts +3 -3
  83. package/src/drivers/file-system/manager.ts +5 -0
  84. package/src/engine-process/mod.ts +62 -7
  85. package/src/manager/driver.ts +7 -0
  86. package/src/registry/config/index.ts +6 -0
  87. package/src/registry/serve.ts +9 -5
  88. package/src/remote-manager-driver/actor-http-client.ts +5 -3
  89. package/src/remote-manager-driver/actor-websocket-client.ts +18 -7
  90. package/src/remote-manager-driver/mod.ts +10 -0
  91. package/dist/tsup/chunk-6WLJW57U.cjs.map +0 -1
  92. package/dist/tsup/chunk-EEL32AJM.js.map +0 -1
  93. package/dist/tsup/chunk-FA6FGAEC.js.map +0 -1
  94. package/dist/tsup/chunk-IRTVRBJA.cjs.map +0 -1
  95. package/dist/tsup/chunk-IWXMFQDT.cjs.map +0 -1
  96. package/dist/tsup/chunk-LULP6HM2.cjs.map +0 -1
  97. package/dist/tsup/chunk-MIOU6BF3.js.map +0 -1
  98. /package/dist/tsup/{chunk-WIZ4JGP6.js.map → chunk-7Q7R3QYT.js.map} +0 -0
  99. /package/dist/tsup/{chunk-K2RNF2ZR.js.map → chunk-J2R742IE.js.map} +0 -0
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkIRTVRBJAcjs = require('./chunk-IRTVRBJA.cjs');
13
+ var _chunkFB4TVPDQcjs = require('./chunk-FB4TVPDQ.cjs');
14
14
 
15
15
 
16
16
 
@@ -23,7 +23,7 @@ var _chunkIRTVRBJAcjs = require('./chunk-IRTVRBJA.cjs');
23
23
 
24
24
 
25
25
 
26
- var _chunkLULP6HM2cjs = require('./chunk-LULP6HM2.cjs');
26
+ var _chunk6NBNCWECcjs = require('./chunk-6NBNCWEC.cjs');
27
27
 
28
28
 
29
29
 
@@ -47,7 +47,7 @@ var _chunkLULP6HM2cjs = require('./chunk-LULP6HM2.cjs');
47
47
 
48
48
 
49
49
 
50
- var _chunkIWXMFQDTcjs = require('./chunk-IWXMFQDT.cjs');
50
+ var _chunk4KNL47JAcjs = require('./chunk-4KNL47JA.cjs');
51
51
 
52
52
 
53
53
 
@@ -65,7 +65,7 @@ var _chunkIWXMFQDTcjs = require('./chunk-IWXMFQDT.cjs');
65
65
 
66
66
 
67
67
 
68
- var _chunkO433HWWGcjs = require('./chunk-O433HWWG.cjs');
68
+ var _chunkHZOBB3KPcjs = require('./chunk-HZOBB3KP.cjs');
69
69
 
70
70
 
71
71
 
@@ -144,46 +144,92 @@ var ActorConfigSchema = _zod.z.object({
144
144
  );
145
145
  var DocActorOptionsSchema = _zod.z.object({
146
146
  createVarsTimeout: _zod.z.number().optional().describe("Timeout in ms for createVars handler. Default: 5000"),
147
- createConnStateTimeout: _zod.z.number().optional().describe("Timeout in ms for createConnState handler. Default: 5000"),
147
+ createConnStateTimeout: _zod.z.number().optional().describe(
148
+ "Timeout in ms for createConnState handler. Default: 5000"
149
+ ),
148
150
  onConnectTimeout: _zod.z.number().optional().describe("Timeout in ms for onConnect handler. Default: 5000"),
149
- onSleepTimeout: _zod.z.number().optional().describe("Timeout in ms for onSleep handler. Must be less than ACTOR_STOP_THRESHOLD_MS. Default: 5000"),
151
+ onSleepTimeout: _zod.z.number().optional().describe(
152
+ "Timeout in ms for onSleep handler. Must be less than ACTOR_STOP_THRESHOLD_MS. Default: 5000"
153
+ ),
150
154
  onDestroyTimeout: _zod.z.number().optional().describe("Timeout in ms for onDestroy handler. Default: 5000"),
151
- stateSaveInterval: _zod.z.number().optional().describe("Interval in ms between automatic state saves. Default: 10000"),
155
+ stateSaveInterval: _zod.z.number().optional().describe(
156
+ "Interval in ms between automatic state saves. Default: 10000"
157
+ ),
152
158
  actionTimeout: _zod.z.number().optional().describe("Timeout in ms for action handlers. Default: 60000"),
153
- waitUntilTimeout: _zod.z.number().optional().describe("Max time in ms to wait for waitUntil background promises during shutdown. Default: 15000"),
154
- connectionLivenessTimeout: _zod.z.number().optional().describe("Timeout in ms for connection liveness checks. Default: 2500"),
155
- connectionLivenessInterval: _zod.z.number().optional().describe("Interval in ms between connection liveness checks. Default: 5000"),
159
+ waitUntilTimeout: _zod.z.number().optional().describe(
160
+ "Max time in ms to wait for waitUntil background promises during shutdown. Default: 15000"
161
+ ),
162
+ connectionLivenessTimeout: _zod.z.number().optional().describe(
163
+ "Timeout in ms for connection liveness checks. Default: 2500"
164
+ ),
165
+ connectionLivenessInterval: _zod.z.number().optional().describe(
166
+ "Interval in ms between connection liveness checks. Default: 5000"
167
+ ),
156
168
  noSleep: _zod.z.boolean().optional().describe("If true, the actor will never sleep. Default: false"),
157
- sleepTimeout: _zod.z.number().optional().describe("Time in ms of inactivity before the actor sleeps. Default: 30000"),
158
- canHibernateWebSocket: _zod.z.boolean().optional().describe("Whether WebSockets using onWebSocket can be hibernated. WebSockets using actions/events are hibernatable by default. Default: false")
169
+ sleepTimeout: _zod.z.number().optional().describe(
170
+ "Time in ms of inactivity before the actor sleeps. Default: 30000"
171
+ ),
172
+ canHibernateWebSocket: _zod.z.boolean().optional().describe(
173
+ "Whether WebSockets using onWebSocket can be hibernated. WebSockets using actions/events are hibernatable by default. Default: false"
174
+ )
159
175
  }).describe("Actor options for timeouts and behavior configuration.");
160
176
  var DocActorConfigSchema = _zod.z.object({
161
- state: _zod.z.unknown().optional().describe("Initial state value for the actor. Cannot be used with createState."),
162
- createState: _zod.z.unknown().optional().describe("Function to create initial state. Receives context and input. Cannot be used with state."),
163
- connState: _zod.z.unknown().optional().describe("Initial connection state value. Cannot be used with createConnState."),
164
- createConnState: _zod.z.unknown().optional().describe("Function to create connection state. Receives context and connection params. Cannot be used with connState."),
165
- vars: _zod.z.unknown().optional().describe("Initial ephemeral variables value. Cannot be used with createVars."),
166
- createVars: _zod.z.unknown().optional().describe("Function to create ephemeral variables. Receives context and driver context. Cannot be used with vars."),
177
+ state: _zod.z.unknown().optional().describe(
178
+ "Initial state value for the actor. Cannot be used with createState."
179
+ ),
180
+ createState: _zod.z.unknown().optional().describe(
181
+ "Function to create initial state. Receives context and input. Cannot be used with state."
182
+ ),
183
+ connState: _zod.z.unknown().optional().describe(
184
+ "Initial connection state value. Cannot be used with createConnState."
185
+ ),
186
+ createConnState: _zod.z.unknown().optional().describe(
187
+ "Function to create connection state. Receives context and connection params. Cannot be used with connState."
188
+ ),
189
+ vars: _zod.z.unknown().optional().describe(
190
+ "Initial ephemeral variables value. Cannot be used with createVars."
191
+ ),
192
+ createVars: _zod.z.unknown().optional().describe(
193
+ "Function to create ephemeral variables. Receives context and driver context. Cannot be used with vars."
194
+ ),
167
195
  db: _zod.z.unknown().optional().describe("Database provider instance for the actor."),
168
- onCreate: _zod.z.unknown().optional().describe("Called when the actor is first initialized. Use to initialize state."),
196
+ onCreate: _zod.z.unknown().optional().describe(
197
+ "Called when the actor is first initialized. Use to initialize state."
198
+ ),
169
199
  onDestroy: _zod.z.unknown().optional().describe("Called when the actor is destroyed."),
170
- onWake: _zod.z.unknown().optional().describe("Called when the actor wakes up and is ready to receive connections and actions."),
171
- onSleep: _zod.z.unknown().optional().describe("Called when the actor is stopping or sleeping. Use to clean up resources."),
172
- onStateChange: _zod.z.unknown().optional().describe("Called when the actor's state changes. State changes within this hook won't trigger recursion."),
173
- onBeforeConnect: _zod.z.unknown().optional().describe("Called before a client connects. Throw an error to reject the connection."),
200
+ onWake: _zod.z.unknown().optional().describe(
201
+ "Called when the actor wakes up and is ready to receive connections and actions."
202
+ ),
203
+ onSleep: _zod.z.unknown().optional().describe(
204
+ "Called when the actor is stopping or sleeping. Use to clean up resources."
205
+ ),
206
+ onStateChange: _zod.z.unknown().optional().describe(
207
+ "Called when the actor's state changes. State changes within this hook won't trigger recursion."
208
+ ),
209
+ onBeforeConnect: _zod.z.unknown().optional().describe(
210
+ "Called before a client connects. Throw an error to reject the connection."
211
+ ),
174
212
  onConnect: _zod.z.unknown().optional().describe("Called when a client successfully connects."),
175
213
  onDisconnect: _zod.z.unknown().optional().describe("Called when a client disconnects."),
176
- onBeforeActionResponse: _zod.z.unknown().optional().describe("Called before sending an action response. Use to transform output."),
177
- onRequest: _zod.z.unknown().optional().describe("Called for raw HTTP requests to /actors/{name}/http/* endpoints."),
178
- onWebSocket: _zod.z.unknown().optional().describe("Called for raw WebSocket connections to /actors/{name}/websocket/* endpoints."),
179
- actions: _zod.z.record(_zod.z.string(), _zod.z.unknown()).optional().describe("Map of action name to handler function."),
214
+ onBeforeActionResponse: _zod.z.unknown().optional().describe(
215
+ "Called before sending an action response. Use to transform output."
216
+ ),
217
+ onRequest: _zod.z.unknown().optional().describe(
218
+ "Called for raw HTTP requests to /actors/{name}/http/* endpoints."
219
+ ),
220
+ onWebSocket: _zod.z.unknown().optional().describe(
221
+ "Called for raw WebSocket connections to /actors/{name}/websocket/* endpoints."
222
+ ),
223
+ actions: _zod.z.record(_zod.z.string(), _zod.z.unknown()).optional().describe(
224
+ "Map of action name to handler function. Defaults to an empty object."
225
+ ),
180
226
  options: DocActorOptionsSchema.optional()
181
227
  }).describe("Actor configuration passed to the actor() function.");
182
228
 
183
229
  // src/actor/mod.ts
184
230
  function actor(input) {
185
231
  const config = ActorConfigSchema.parse(input);
186
- return new (0, _chunkLULP6HM2cjs.ActorDefinition)(config);
232
+ return new (0, _chunk6NBNCWECcjs.ActorDefinition)(config);
187
233
  }
188
234
 
189
235
  // src/drivers/engine/actor-driver.ts
@@ -195,7 +241,7 @@ var _invariant = require('invariant'); var _invariant2 = _interopRequireDefault(
195
241
 
196
242
  // src/drivers/engine/log.ts
197
243
  function logger() {
198
- return _chunkO433HWWGcjs.getLogger.call(void 0, "driver-engine");
244
+ return _chunkHZOBB3KPcjs.getLogger.call(void 0, "driver-engine");
199
245
  }
200
246
 
201
247
  // src/drivers/engine/actor-driver.ts
@@ -209,8 +255,8 @@ var EngineActorDriver = class {
209
255
  #runner;
210
256
  #actors = /* @__PURE__ */ new Map();
211
257
  #actorRouter;
212
- #runnerStarted = _chunkO433HWWGcjs.promiseWithResolvers.call(void 0, );
213
- #runnerStopped = _chunkO433HWWGcjs.promiseWithResolvers.call(void 0, );
258
+ #runnerStarted = _chunkHZOBB3KPcjs.promiseWithResolvers.call(void 0, );
259
+ #runnerStopped = _chunkHZOBB3KPcjs.promiseWithResolvers.call(void 0, );
214
260
  #isRunnerStopped = false;
215
261
  // HACK: Track actor stop intent locally since the runner protocol doesn't
216
262
  // pass the stop reason to onActorStop. This will be fixed when the runner
@@ -234,7 +280,7 @@ var EngineActorDriver = class {
234
280
  this.#managerDriver = managerDriver;
235
281
  this.#inlineClient = inlineClient;
236
282
  const token = config.token;
237
- this.#actorRouter = _chunkIRTVRBJAcjs.createActorRouter.call(void 0,
283
+ this.#actorRouter = _chunkFB4TVPDQcjs.createActorRouter.call(void 0,
238
284
  config,
239
285
  this,
240
286
  void 0,
@@ -242,16 +288,16 @@ var EngineActorDriver = class {
242
288
  );
243
289
  const engineRunnerConfig = {
244
290
  version: config.runner.version,
245
- endpoint: _chunkLULP6HM2cjs.getEndpoint.call(void 0, config),
291
+ endpoint: _chunk6NBNCWECcjs.getEndpoint.call(void 0, config),
246
292
  token,
247
293
  namespace: config.namespace,
248
294
  totalSlots: config.runner.totalSlots,
249
295
  runnerName: config.runner.runnerName,
250
296
  runnerKey: _nullishCoalesce(config.runner.runnerKey, () => ( crypto.randomUUID())),
251
297
  metadata: {
252
- rivetkit: { version: _chunkO433HWWGcjs.VERSION }
298
+ rivetkit: { version: _chunkHZOBB3KPcjs.VERSION }
253
299
  },
254
- prepopulateActorNames: _chunkIWXMFQDTcjs.buildActorNames.call(void 0, config),
300
+ prepopulateActorNames: _chunk4KNL47JAcjs.buildActorNames.call(void 0, config),
255
301
  onConnected: () => {
256
302
  this.#runnerStarted.resolve(void 0);
257
303
  },
@@ -268,7 +314,7 @@ var EngineActorDriver = class {
268
314
  },
269
315
  onActorStart: this.#runnerOnActorStart.bind(this),
270
316
  onActorStop: this.#runnerOnActorStop.bind(this),
271
- logger: _chunkO433HWWGcjs.getLogger.call(void 0, "engine-runner")
317
+ logger: _chunkHZOBB3KPcjs.getLogger.call(void 0, "engine-runner")
272
318
  };
273
319
  this.#runner = new (0, _enginerunner.Runner)(engineRunnerConfig);
274
320
  this.#runner.start();
@@ -306,7 +352,7 @@ var EngineActorDriver = class {
306
352
  handler.alarmTimeout = void 0;
307
353
  }
308
354
  const delay = Math.max(0, timestamp - Date.now());
309
- handler.alarmTimeout = _chunkO433HWWGcjs.setLongTimeout.call(void 0, () => {
355
+ handler.alarmTimeout = _chunkHZOBB3KPcjs.setLongTimeout.call(void 0, () => {
310
356
  actor2.onAlarm();
311
357
  handler.alarmTimeout = void 0;
312
358
  }, delay);
@@ -378,7 +424,7 @@ var EngineActorDriver = class {
378
424
  var _a;
379
425
  (_a = handler.actor) == null ? void 0 : _a.rLog.error({
380
426
  msg: "onStop errored",
381
- error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
427
+ error: _chunkHZOBB3KPcjs.stringifyError.call(void 0, err)
382
428
  });
383
429
  })
384
430
  );
@@ -436,18 +482,18 @@ var EngineActorDriver = class {
436
482
  let handler = this.#actors.get(actorId);
437
483
  if (!handler) {
438
484
  handler = {
439
- actorStartPromise: _chunkO433HWWGcjs.promiseWithResolvers.call(void 0, )
485
+ actorStartPromise: _chunkHZOBB3KPcjs.promiseWithResolvers.call(void 0, )
440
486
  };
441
487
  this.#actors.set(actorId, handler);
442
488
  }
443
489
  const name = actorConfig.name;
444
490
  _invariant2.default.call(void 0, actorConfig.key, "actor should have a key");
445
- const key = _chunkIWXMFQDTcjs.deserializeActorKey.call(void 0, actorConfig.key);
491
+ const key = _chunk4KNL47JAcjs.deserializeActorKey.call(void 0, actorConfig.key);
446
492
  const [persistDataBuffer] = await this.#runner.kvGet(actorId, [
447
- _chunkIWXMFQDTcjs.KEYS.PERSIST_DATA
493
+ _chunk4KNL47JAcjs.KEYS.PERSIST_DATA
448
494
  ]);
449
495
  if (persistDataBuffer === null) {
450
- const initialKvState = _chunkIWXMFQDTcjs.getInitialActorKvState.call(void 0, input);
496
+ const initialKvState = _chunk4KNL47JAcjs.getInitialActorKvState.call(void 0, input);
451
497
  await this.#runner.kvPut(actorId, initialKvState);
452
498
  logger().debug({
453
499
  msg: "initialized persist data for new actor",
@@ -460,7 +506,7 @@ var EngineActorDriver = class {
460
506
  dataSize: persistDataBuffer.byteLength
461
507
  });
462
508
  }
463
- const definition = _chunkLULP6HM2cjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
509
+ const definition = _chunk6NBNCWECcjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
464
510
  handler.actor = definition.instantiate();
465
511
  await handler.actor.start(
466
512
  this,
@@ -484,7 +530,7 @@ var EngineActorDriver = class {
484
530
  } catch (err) {
485
531
  logger().error({
486
532
  msg: "error in onStop, proceeding with removing actor",
487
- err: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
533
+ err: _chunkHZOBB3KPcjs.stringifyError.call(void 0, err)
488
534
  });
489
535
  }
490
536
  this.#actors.delete(actorId);
@@ -517,10 +563,10 @@ var EngineActorDriver = class {
517
563
  websocketProps: websocketRaw ? Object.keys(websocketRaw).join(", ") : "null"
518
564
  });
519
565
  const protocols = request.headers.get("sec-websocket-protocol");
520
- const { encoding, connParams } = _chunkIWXMFQDTcjs.parseWebSocketProtocols.call(void 0, protocols);
566
+ const { encoding, connParams } = _chunk4KNL47JAcjs.parseWebSocketProtocols.call(void 0, protocols);
521
567
  let wsHandler;
522
568
  try {
523
- wsHandler = await _chunkIWXMFQDTcjs.routeWebSocket.call(void 0,
569
+ wsHandler = await _chunk4KNL47JAcjs.routeWebSocket.call(void 0,
524
570
  request,
525
571
  requestPath,
526
572
  requestHeaders,
@@ -543,7 +589,7 @@ var EngineActorDriver = class {
543
589
  const wsContext = new (0, _ws.WSContext)(websocket);
544
590
  const conn = wsHandler.conn;
545
591
  const actor2 = wsHandler.actor;
546
- const connStateManager = conn == null ? void 0 : conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
592
+ const connStateManager = conn == null ? void 0 : conn[_chunk4KNL47JAcjs.CONN_STATE_MANAGER_SYMBOL];
547
593
  logger().debug({
548
594
  msg: "attaching websocket event listeners",
549
595
  actorId,
@@ -603,7 +649,7 @@ var EngineActorDriver = class {
603
649
  });
604
650
  const entry = this.#hwsMessageIndex.get(conn.id);
605
651
  if (entry) {
606
- const messageLength = _chunkIWXMFQDTcjs.getValueLength.call(void 0, event.data);
652
+ const messageLength = _chunk4KNL47JAcjs.getValueLength.call(void 0, event.data);
607
653
  entry.bufferedMessageSize += messageLength;
608
654
  if (entry.bufferedMessageSize >= CONN_BUFFERED_MESSAGE_SIZE_THRESHOLD) {
609
655
  entry.bufferedMessageSize = 0;
@@ -674,10 +720,10 @@ var EngineActorDriver = class {
674
720
  gatewayId: _enginerunner.idToStr.call(void 0, gatewayId),
675
721
  requestId: _enginerunner.idToStr.call(void 0, requestId)
676
722
  });
677
- if (path === _chunkIWXMFQDTcjs.PATH_CONNECT) {
723
+ if (path === _chunk4KNL47JAcjs.PATH_CONNECT) {
678
724
  return true;
679
- } else if (path === _chunkIWXMFQDTcjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunkIWXMFQDTcjs.PATH_WEBSOCKET_PREFIX)) {
680
- const definition = _chunkLULP6HM2cjs.lookupInRegistry.call(void 0,
725
+ } else if (path === _chunk4KNL47JAcjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunk4KNL47JAcjs.PATH_WEBSOCKET_PREFIX)) {
726
+ const definition = _chunk6NBNCWECcjs.lookupInRegistry.call(void 0,
681
727
  this.#config,
682
728
  actorInstance.config.name
683
729
  );
@@ -686,7 +732,7 @@ var EngineActorDriver = class {
686
732
  return true;
687
733
  } else if (typeof canHibernateWebSocket === "function") {
688
734
  try {
689
- const newPath = _chunkIWXMFQDTcjs.truncateRawWebSocketPathPrefix.call(void 0,
735
+ const newPath = _chunk4KNL47JAcjs.truncateRawWebSocketPathPrefix.call(void 0,
690
736
  url.pathname
691
737
  );
692
738
  const truncatedRequest = new Request(
@@ -705,7 +751,7 @@ var EngineActorDriver = class {
705
751
  } else {
706
752
  return false;
707
753
  }
708
- } else if (path === _chunkIWXMFQDTcjs.PATH_INSPECTOR_CONNECT) {
754
+ } else if (path === _chunk4KNL47JAcjs.PATH_INSPECTOR_CONNECT) {
709
755
  return false;
710
756
  } else {
711
757
  logger().warn({
@@ -718,7 +764,7 @@ var EngineActorDriver = class {
718
764
  async #hwsLoadAll(actorId) {
719
765
  const actor2 = await this.loadActor(actorId);
720
766
  return actor2.conns.values().map((conn) => {
721
- const connStateManager = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
767
+ const connStateManager = conn[_chunk4KNL47JAcjs.CONN_STATE_MANAGER_SYMBOL];
722
768
  const hibernatable = connStateManager.hibernatableData;
723
769
  if (!hibernatable) return void 0;
724
770
  return {
@@ -741,7 +787,7 @@ var EngineActorDriver = class {
741
787
  await this.#runner.restoreHibernatingRequests(actor2.id, metaEntries);
742
788
  }
743
789
  onCreateConn(conn) {
744
- const hibernatable = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
790
+ const hibernatable = conn[_chunk4KNL47JAcjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
745
791
  if (!hibernatable) return;
746
792
  this.#hwsMessageIndex.set(conn.id, {
747
793
  serverMessageIndex: hibernatable.serverMessageIndex,
@@ -763,7 +809,7 @@ var EngineActorDriver = class {
763
809
  });
764
810
  }
765
811
  onBeforePersistConn(conn) {
766
- const stateManager = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
812
+ const stateManager = conn[_chunk4KNL47JAcjs.CONN_STATE_MANAGER_SYMBOL];
767
813
  const hibernatable = stateManager.hibernatableDataOrError();
768
814
  const entry = this.#hwsMessageIndex.get(conn.id);
769
815
  if (!entry) {
@@ -777,7 +823,7 @@ var EngineActorDriver = class {
777
823
  entry.serverMessageIndex = hibernatable.serverMessageIndex;
778
824
  }
779
825
  onAfterPersistConn(conn) {
780
- const stateManager = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
826
+ const stateManager = conn[_chunk4KNL47JAcjs.CONN_STATE_MANAGER_SYMBOL];
781
827
  const hibernatable = stateManager.hibernatableDataOrError();
782
828
  const entry = this.#hwsMessageIndex.get(conn.id);
783
829
  if (!entry) {
@@ -802,9 +848,9 @@ var EngineActorDriver = class {
802
848
 
803
849
  // src/drivers/engine/config.ts
804
850
 
805
- var EngineConfigSchemaBase = _chunkLULP6HM2cjs.ClientConfigSchemaBase.extend({
851
+ var EngineConfigSchemaBase = _chunk6NBNCWECcjs.ClientConfigSchemaBase.extend({
806
852
  /** Unique key for this runner. Runners connecting a given key will replace any other runner connected with the same key. */
807
- runnerKey: _zod.z.string().optional().transform((val) => _nullishCoalesce(val, () => ( _chunkO433HWWGcjs.getRivetRunnerKey.call(void 0, )))),
853
+ runnerKey: _zod.z.string().optional().transform((val) => _nullishCoalesce(val, () => ( _chunkHZOBB3KPcjs.getRivetRunnerKey.call(void 0, )))),
808
854
  /** How many actors this runner can run. */
809
855
  totalSlots: _zod.z.number().default(1e5)
810
856
  });
@@ -816,7 +862,7 @@ var EngineConfigSchema = EngineConfigSchemaTransformed.default(
816
862
  );
817
863
  function transformEngineConfig(config, ctx) {
818
864
  return {
819
- ..._chunkLULP6HM2cjs.transformClientConfig.call(void 0, config, ctx),
865
+ ..._chunk6NBNCWECcjs.transformClientConfig.call(void 0, config, ctx),
820
866
  runnerKey: config.runnerKey
821
867
  };
822
868
  }
@@ -827,8 +873,8 @@ function createEngineDriver() {
827
873
  name: "engine",
828
874
  displayName: "Engine",
829
875
  manager: (config) => {
830
- const clientConfig = _chunkLULP6HM2cjs.convertRegistryConfigToClientConfig.call(void 0, config);
831
- return new (0, _chunkLULP6HM2cjs.RemoteManagerDriver)(clientConfig);
876
+ const clientConfig = _chunk6NBNCWECcjs.convertRegistryConfigToClientConfig.call(void 0, config);
877
+ return new (0, _chunk6NBNCWECcjs.RemoteManagerDriver)(clientConfig);
832
878
  },
833
879
  actor: (config, managerDriver, inlineClient) => {
834
880
  return new EngineActorDriver(
@@ -856,15 +902,15 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
856
902
  /** @experimental */
857
903
  maxOutgoingMessageSize: _zod.z.number().optional().default(1048576),
858
904
  /** @experimental */
859
- inspector: _chunkIWXMFQDTcjs.InspectorConfigSchema,
905
+ inspector: _chunk4KNL47JAcjs.InspectorConfigSchema,
860
906
  /** @experimental */
861
907
  disableDefaultServer: _zod.z.boolean().optional().default(false),
862
908
  /** @experimental */
863
909
  defaultServerPort: _zod.z.number().default(6420),
864
910
  /** @experimental */
865
- runEngine: _zod.z.boolean().optional().default(() => _chunkO433HWWGcjs.getRivetRunEngine.call(void 0, )),
911
+ runEngine: _zod.z.boolean().optional().default(() => _chunkHZOBB3KPcjs.getRivetRunEngine.call(void 0, )),
866
912
  /** @experimental */
867
- runEngineVersion: _zod.z.string().optional().default(() => _nullishCoalesce(_chunkO433HWWGcjs.getRivetRunEngineVersion.call(void 0, ), () => ( _chunkO433HWWGcjs.VERSION))),
913
+ runEngineVersion: _zod.z.string().optional().default(() => _nullishCoalesce(_chunkHZOBB3KPcjs.getRivetRunEngineVersion.call(void 0, ), () => ( _chunkHZOBB3KPcjs.VERSION))),
868
914
  /** @experimental */
869
915
  overrideServerAddress: _zod.z.string().optional(),
870
916
  /** @experimental */
@@ -876,7 +922,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
876
922
  * serverlessly (by the Rivet Engine for example).
877
923
  */
878
924
  runnerKind: _zod.z.enum(["serverless", "normal"]).optional().default(
879
- () => _chunkO433HWWGcjs.getRivetRunnerKind.call(void 0, ) === "serverless" ? "serverless" : "normal"
925
+ () => _chunkHZOBB3KPcjs.getRivetRunnerKind.call(void 0, ) === "serverless" ? "serverless" : "normal"
880
926
  ),
881
927
  totalSlots: _zod.z.number().optional(),
882
928
  /**
@@ -898,7 +944,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
898
944
  * */
899
945
  logging: _zod.z.object({
900
946
  baseLogger: _zod.z.custom().optional(),
901
- level: _chunkO433HWWGcjs.LogLevelSchema.optional()
947
+ level: _chunkHZOBB3KPcjs.LogLevelSchema.optional()
902
948
  }).optional().default(() => ({})),
903
949
  /**
904
950
  * @experimental
@@ -926,7 +972,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
926
972
  // created or must be imported async using `await import(...)`
927
973
  getUpgradeWebSocket: _zod.z.custom().optional(),
928
974
  /** @experimental */
929
- token: _zod.z.string().optional().transform((v) => v || _chunkO433HWWGcjs.getRivetToken.call(void 0, ))
975
+ token: _zod.z.string().optional().transform((v) => v || _chunkHZOBB3KPcjs.getRivetToken.call(void 0, ))
930
976
  }).merge(EngineConfigSchemaBase);
931
977
  var LegacyRunnerConfigSchemaTransformed = LegacyRunnerConfigSchemaUnmerged.transform((config, ctx) => ({
932
978
  ...config,
@@ -950,38 +996,38 @@ function chooseDefaultDriver(config) {
950
996
  return config.driver;
951
997
  }
952
998
  if (config.endpoint || config.token) {
953
- _chunkIWXMFQDTcjs.loggerWithoutContext.call(void 0, ).debug({
999
+ _chunk4KNL47JAcjs.loggerWithoutContext.call(void 0, ).debug({
954
1000
  msg: "using rivet engine driver",
955
1001
  endpoint: config.endpoint
956
1002
  });
957
1003
  return createEngineDriver();
958
1004
  }
959
- _chunkIWXMFQDTcjs.loggerWithoutContext.call(void 0, ).debug({ msg: "using default file system driver" });
960
- return _chunkIRTVRBJAcjs.createFileSystemOrMemoryDriver.call(void 0, true);
1005
+ _chunk4KNL47JAcjs.loggerWithoutContext.call(void 0, ).debug({ msg: "using default file system driver" });
1006
+ return _chunkFB4TVPDQcjs.createFileSystemOrMemoryDriver.call(void 0, true);
961
1007
  }
962
1008
 
963
1009
  // src/engine-process/log.ts
964
1010
  function logger2() {
965
- return _chunkO433HWWGcjs.getLogger.call(void 0, "engine-process");
1011
+ return _chunkHZOBB3KPcjs.getLogger.call(void 0, "engine-process");
966
1012
  }
967
1013
 
968
1014
  // src/engine-process/mod.ts
969
1015
  var ENGINE_BASE_URL = "https://releases.rivet.dev/rivet";
970
1016
  var ENGINE_BINARY_NAME = "rivet-engine";
971
1017
  async function ensureEngineProcess(options) {
972
- _chunkIRTVRBJAcjs.importNodeDependencies.call(void 0, );
1018
+ _chunkFB4TVPDQcjs.importNodeDependencies.call(void 0, );
973
1019
  logger2().debug({
974
1020
  msg: "ensuring engine process",
975
1021
  version: options.version
976
1022
  });
977
- const path = _chunkIRTVRBJAcjs.getNodePath.call(void 0, );
978
- const storageRoot = _chunkIRTVRBJAcjs.getStoragePath.call(void 0, );
1023
+ const path = _chunkFB4TVPDQcjs.getNodePath.call(void 0, );
1024
+ const storageRoot = _chunkFB4TVPDQcjs.getStoragePath.call(void 0, );
979
1025
  const binDir = path.join(storageRoot, "bin");
980
1026
  const varDir = path.join(storageRoot, "var");
981
1027
  const logsDir = path.join(varDir, "logs", "rivet-engine");
982
- await _chunkIRTVRBJAcjs.ensureDirectoryExists.call(void 0, binDir);
983
- await _chunkIRTVRBJAcjs.ensureDirectoryExists.call(void 0, varDir);
984
- await _chunkIRTVRBJAcjs.ensureDirectoryExists.call(void 0, logsDir);
1028
+ await _chunkFB4TVPDQcjs.ensureDirectoryExists.call(void 0, binDir);
1029
+ await _chunkFB4TVPDQcjs.ensureDirectoryExists.call(void 0, varDir);
1030
+ await _chunkFB4TVPDQcjs.ensureDirectoryExists.call(void 0, logsDir);
985
1031
  if (await isEngineRunning()) {
986
1032
  try {
987
1033
  const health = await waitForEngineHealth();
@@ -1006,7 +1052,7 @@ async function ensureEngineProcess(options) {
1006
1052
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/:/g, "-").replace(/\./g, "-");
1007
1053
  const stdoutLogPath = path.join(logsDir, `engine-${timestamp}-stdout.log`);
1008
1054
  const stderrLogPath = path.join(logsDir, `engine-${timestamp}-stderr.log`);
1009
- const fsSync = _chunkIRTVRBJAcjs.getNodeFsSync.call(void 0, );
1055
+ const fsSync = _chunkFB4TVPDQcjs.getNodeFsSync.call(void 0, );
1010
1056
  const stdoutStream = fsSync.createWriteStream(stdoutLogPath, {
1011
1057
  flags: "a"
1012
1058
  });
@@ -1018,12 +1064,36 @@ async function ensureEngineProcess(options) {
1018
1064
  stdout: stdoutLogPath,
1019
1065
  stderr: stderrLogPath
1020
1066
  });
1021
- const childProcess = _chunkIRTVRBJAcjs.getNodeChildProcess.call(void 0, );
1067
+ const childProcess = _chunkFB4TVPDQcjs.getNodeChildProcess.call(void 0, );
1022
1068
  const child = childProcess.spawn(binaryPath, ["start"], {
1023
1069
  cwd: path.dirname(binaryPath),
1024
1070
  stdio: ["inherit", "pipe", "pipe"],
1025
1071
  env: {
1026
- ...process.env
1072
+ ...process.env,
1073
+ // In development, runners can be terminated without a graceful
1074
+ // shutdown (i.e. SIGKILL instead of SIGTERM). This is treated as a
1075
+ // crash by Rivet Engine in production and implements a backoff for
1076
+ // rescheduling actors in case of a crash loop.
1077
+ //
1078
+ // This is problematic in development since this will cause actors
1079
+ // to become unresponsive if frequently killing your dev server.
1080
+ //
1081
+ // We reduce the timeouts for resetting a runner as healthy in
1082
+ // order to account for this.
1083
+ RIVET__PEGBOARD__RETRY_RESET_DURATION: "100",
1084
+ RIVET__PEGBOARD__BASE_RETRY_TIMEOUT: "100",
1085
+ // Set max exponent to 1 to have a maximum of base_retry_timeout
1086
+ RIVET__PEGBOARD__RESCHEDULE_BACKOFF_MAX_EXPONENT: "1",
1087
+ // Reduce thresholds for faster development iteration
1088
+ //
1089
+ // Default ping interval is 3s, this gives a 2s & 4s grace
1090
+ RIVET__PEGBOARD__RUNNER_ELIGIBLE_THRESHOLD: "5000",
1091
+ RIVET__PEGBOARD__RUNNER_LOST_THRESHOLD: "7000",
1092
+ // Reduce shutdown durations for faster development iteration (in seconds)
1093
+ RIVET__RUNTIME__WORKER_SHUTDOWN_DURATION: "1",
1094
+ RIVET__RUNTIME__GUARD_SHUTDOWN_DURATION: "1",
1095
+ // Force exit after this duration (must be > worker and guard shutdown durations)
1096
+ RIVET__RUNTIME__FORCE_SHUTDOWN_DURATION: "2"
1027
1097
  }
1028
1098
  });
1029
1099
  if (!child.pid) {
@@ -1032,7 +1102,11 @@ async function ensureEngineProcess(options) {
1032
1102
  if (child.stdout) {
1033
1103
  child.stdout.pipe(stdoutStream);
1034
1104
  }
1105
+ const stderrChunks = [];
1035
1106
  if (child.stderr) {
1107
+ child.stderr.on("data", (chunk) => {
1108
+ stderrChunks.push(chunk);
1109
+ });
1036
1110
  child.stderr.pipe(stderrStream);
1037
1111
  }
1038
1112
  logger2().debug({
@@ -1041,13 +1115,37 @@ async function ensureEngineProcess(options) {
1041
1115
  cwd: path.dirname(binaryPath)
1042
1116
  });
1043
1117
  child.once("exit", (code, signal) => {
1044
- logger2().warn({
1045
- msg: "engine process exited, please report this error",
1046
- code,
1047
- signal,
1048
- issues: "https://github.com/rivet-dev/rivetkit/issues",
1049
- support: "https://rivet.dev/discord"
1050
- });
1118
+ const stderrOutput = Buffer.concat(stderrChunks).toString("utf-8");
1119
+ if (stderrOutput.includes("failed to open rocksdb") && stderrOutput.includes("LOCK: Resource temporarily unavailable")) {
1120
+ logger2().error({
1121
+ msg: "another instance of rivet engine is unexpectedly running, this is an internal error",
1122
+ code,
1123
+ signal,
1124
+ stdoutLog: stdoutLogPath,
1125
+ stderrLog: stderrLogPath,
1126
+ issues: "https://github.com/rivet-dev/rivetkit/issues",
1127
+ support: "https://rivet.dev/discord"
1128
+ });
1129
+ } else if (stderrOutput.includes("Rivet Engine has been rolled back to a previous version")) {
1130
+ logger2().error({
1131
+ msg: "rivet engine version downgrade detected",
1132
+ hint: `You attempted to downgrade the RivetKit version in development. To fix this, nuke the database by running: '${binaryPath}' database nuke --yes`,
1133
+ code,
1134
+ signal,
1135
+ stdoutLog: stdoutLogPath,
1136
+ stderrLog: stderrLogPath
1137
+ });
1138
+ } else {
1139
+ logger2().warn({
1140
+ msg: "engine process exited, please report this error",
1141
+ code,
1142
+ signal,
1143
+ stdoutLog: stdoutLogPath,
1144
+ stderrLog: stderrLogPath,
1145
+ issues: "https://github.com/rivet-dev/rivetkit/issues",
1146
+ support: "https://rivet.dev/discord"
1147
+ });
1148
+ }
1051
1149
  stdoutStream.end();
1052
1150
  stderrStream.end();
1053
1151
  });
@@ -1095,7 +1193,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1095
1193
  `failed to download rivet engine binary from ${downloadUrl}: ${response.status} ${response.statusText}`
1096
1194
  );
1097
1195
  }
1098
- const crypto2 = _chunkIRTVRBJAcjs.getNodeCrypto.call(void 0, );
1196
+ const crypto2 = _chunkFB4TVPDQcjs.getNodeCrypto.call(void 0, );
1099
1197
  const tempPath = `${binaryPath}.${crypto2.randomUUID()}.tmp`;
1100
1198
  const startTime = Date.now();
1101
1199
  logger2().debug({
@@ -1110,14 +1208,14 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1110
1208
  });
1111
1209
  }, 5e3);
1112
1210
  try {
1113
- const stream = _chunkIRTVRBJAcjs.getNodeStream.call(void 0, );
1114
- const fsSync = _chunkIRTVRBJAcjs.getNodeFsSync.call(void 0, );
1211
+ const stream = _chunkFB4TVPDQcjs.getNodeStream.call(void 0, );
1212
+ const fsSync = _chunkFB4TVPDQcjs.getNodeFsSync.call(void 0, );
1115
1213
  await stream.pipeline(
1116
1214
  response.body,
1117
1215
  fsSync.createWriteStream(tempPath)
1118
1216
  );
1119
1217
  clearTimeout(slowDownloadWarning);
1120
- const fs = _chunkIRTVRBJAcjs.getNodeFs.call(void 0, );
1218
+ const fs = _chunkFB4TVPDQcjs.getNodeFs.call(void 0, );
1121
1219
  const stats = await fs.stat(tempPath);
1122
1220
  const downloadDuration = Date.now() - startTime;
1123
1221
  if (process.platform !== "win32") {
@@ -1146,7 +1244,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1146
1244
  support: "https://rivet.dev/discord"
1147
1245
  });
1148
1246
  try {
1149
- const fs = _chunkIRTVRBJAcjs.getNodeFs.call(void 0, );
1247
+ const fs = _chunkFB4TVPDQcjs.getNodeFs.call(void 0, );
1150
1248
  await fs.unlink(tempPath);
1151
1249
  } catch (unlinkError) {
1152
1250
  }
@@ -1188,7 +1286,7 @@ function resolveTargetTripletFor(platform, arch) {
1188
1286
  );
1189
1287
  }
1190
1288
  async function isEngineRunning() {
1191
- return await checkIfEngineAlreadyRunningOnPort(_chunkIWXMFQDTcjs.ENGINE_PORT);
1289
+ return await checkIfEngineAlreadyRunningOnPort(_chunk4KNL47JAcjs.ENGINE_PORT);
1192
1290
  }
1193
1291
  async function checkIfEngineAlreadyRunningOnPort(port) {
1194
1292
  let response;
@@ -1223,7 +1321,7 @@ async function checkIfEngineAlreadyRunningOnPort(port) {
1223
1321
  }
1224
1322
  async function fileExists(filePath) {
1225
1323
  try {
1226
- const fs = _chunkIRTVRBJAcjs.getNodeFs.call(void 0, );
1324
+ const fs = _chunkFB4TVPDQcjs.getNodeFs.call(void 0, );
1227
1325
  await fs.access(filePath);
1228
1326
  return true;
1229
1327
  } catch (e) {
@@ -1237,7 +1335,7 @@ async function waitForEngineHealth() {
1237
1335
  logger2().debug({ msg: "waiting for engine health check" });
1238
1336
  for (let i = 0; i < maxRetries; i++) {
1239
1337
  try {
1240
- const response = await fetch(`${_chunkIWXMFQDTcjs.ENGINE_ENDPOINT}/health`, {
1338
+ const response = await fetch(`${_chunk4KNL47JAcjs.ENGINE_ENDPOINT}/health`, {
1241
1339
  signal: AbortSignal.timeout(1e3)
1242
1340
  });
1243
1341
  if (response.ok) {
@@ -1281,7 +1379,7 @@ function getInspectorUrl(config, managerPort) {
1281
1379
 
1282
1380
  // src/serverless/log.ts
1283
1381
  function logger3() {
1284
- return _chunkO433HWWGcjs.getLogger.call(void 0, "serverless");
1382
+ return _chunkHZOBB3KPcjs.getLogger.call(void 0, "serverless");
1285
1383
  }
1286
1384
 
1287
1385
  // src/serverless/configure.ts
@@ -1301,12 +1399,12 @@ async function configureServerlessRunner(config) {
1301
1399
  }
1302
1400
  const customConfig = config.serverless.configureRunnerPool;
1303
1401
  _invariant2.default.call(void 0, customConfig, "configureRunnerPool should exist");
1304
- const clientConfig = _chunkLULP6HM2cjs.convertRegistryConfigToClientConfig.call(void 0, config);
1402
+ const clientConfig = _chunk6NBNCWECcjs.convertRegistryConfigToClientConfig.call(void 0, config);
1305
1403
  logger3().debug({
1306
1404
  msg: "fetching datacenters",
1307
1405
  endpoint: config.endpoint
1308
1406
  });
1309
- const dcsRes = await _chunkLULP6HM2cjs.getDatacenters.call(void 0, clientConfig);
1407
+ const dcsRes = await _chunk6NBNCWECcjs.getDatacenters.call(void 0, clientConfig);
1310
1408
  const runnerName = _nullishCoalesce(customConfig.name, () => ( "default"));
1311
1409
  logger3().debug({
1312
1410
  msg: "configuring serverless runner",
@@ -1325,7 +1423,7 @@ async function configureServerlessRunner(config) {
1325
1423
  },
1326
1424
  metadata: _nullishCoalesce(customConfig.metadata, () => ( {}))
1327
1425
  };
1328
- await _chunkLULP6HM2cjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1426
+ await _chunk6NBNCWECcjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1329
1427
  datacenters: Object.fromEntries(
1330
1428
  dcsRes.datacenters.map((dc) => [dc.name, serverlessConfig])
1331
1429
  )
@@ -1345,7 +1443,7 @@ async function configureServerlessRunner(config) {
1345
1443
 
1346
1444
  // src/registry/log.ts
1347
1445
  function logger4() {
1348
- return _chunkO433HWWGcjs.getLogger.call(void 0, "registry");
1446
+ return _chunkHZOBB3KPcjs.getLogger.call(void 0, "registry");
1349
1447
  }
1350
1448
 
1351
1449
  // src/registry/serve.ts
@@ -1360,7 +1458,7 @@ async function findFreePort(startPort = DEFAULT_PORT) {
1360
1458
  return _getport2.default.call(void 0, { port: portRange(startPort) });
1361
1459
  }
1362
1460
  async function crossPlatformServe(config, managerPort, app) {
1363
- const runtime = _chunkO433HWWGcjs.detectRuntime.call(void 0, );
1461
+ const runtime = _chunkHZOBB3KPcjs.detectRuntime.call(void 0, );
1364
1462
  logger4().debug({ msg: "detected runtime for serve", runtime });
1365
1463
  switch (runtime) {
1366
1464
  case "deno":
@@ -1385,7 +1483,7 @@ async function serveNode(config, managerPort, app) {
1385
1483
  } catch (err) {
1386
1484
  logger4().error({
1387
1485
  msg: "failed to import @hono/node-server. please run 'npm install @hono/node-server @hono/node-ws'",
1388
- error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1486
+ error: _chunkHZOBB3KPcjs.stringifyError.call(void 0, err)
1389
1487
  });
1390
1488
  process.exit(1);
1391
1489
  }
@@ -1400,7 +1498,7 @@ async function serveNode(config, managerPort, app) {
1400
1498
  } catch (err) {
1401
1499
  logger4().error({
1402
1500
  msg: "failed to import @hono/node-ws. please run 'npm install @hono/node-server @hono/node-ws'",
1403
- error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1501
+ error: _chunkHZOBB3KPcjs.stringifyError.call(void 0, err)
1404
1502
  });
1405
1503
  process.exit(1);
1406
1504
  }
@@ -1408,9 +1506,10 @@ async function serveNode(config, managerPort, app) {
1408
1506
  app
1409
1507
  });
1410
1508
  const port = managerPort;
1509
+ const hostname = config.managerHost;
1411
1510
  const server = serve(
1412
- { fetch: app.fetch, port },
1413
- () => logger4().info({ msg: "server listening", port })
1511
+ { fetch: app.fetch, port, hostname },
1512
+ () => logger4().info({ msg: "server listening", port, hostname })
1414
1513
  );
1415
1514
  injectWebSocket(server);
1416
1515
  return { upgradeWebSocket };
@@ -1427,13 +1526,14 @@ async function serveDeno(config, managerPort, app) {
1427
1526
  } catch (err) {
1428
1527
  logger4().error({
1429
1528
  msg: "failed to import hono/deno",
1430
- error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1529
+ error: _chunkHZOBB3KPcjs.stringifyError.call(void 0, err)
1431
1530
  });
1432
1531
  process.exit(1);
1433
1532
  }
1434
1533
  const port = config.managerPort;
1435
- Deno.serve({ port }, app.fetch);
1436
- logger4().info({ msg: "server listening", port });
1534
+ const hostname = config.managerHost;
1535
+ Deno.serve({ port, hostname }, app.fetch);
1536
+ logger4().info({ msg: "server listening", port, hostname });
1437
1537
  return { upgradeWebSocket };
1438
1538
  }
1439
1539
  async function serveBun(config, managerPort, app) {
@@ -1448,18 +1548,20 @@ async function serveBun(config, managerPort, app) {
1448
1548
  } catch (err) {
1449
1549
  logger4().error({
1450
1550
  msg: "failed to import hono/bun",
1451
- error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1551
+ error: _chunkHZOBB3KPcjs.stringifyError.call(void 0, err)
1452
1552
  });
1453
1553
  process.exit(1);
1454
1554
  }
1455
1555
  const { websocket, upgradeWebSocket } = createBunWebSocket();
1456
1556
  const port = config.managerPort;
1557
+ const hostname = config.managerHost;
1457
1558
  Bun.serve({
1458
1559
  fetch: app.fetch,
1459
1560
  port,
1561
+ hostname,
1460
1562
  websocket
1461
1563
  });
1462
- logger4().info({ msg: "server listening", port });
1564
+ logger4().info({ msg: "server listening", port, hostname });
1463
1565
  return { upgradeWebSocket };
1464
1566
  }
1465
1567
 
@@ -1486,7 +1588,7 @@ var ServerlessStartHeadersSchema = _zod.z.object({
1486
1588
 
1487
1589
  // src/serverless/router.ts
1488
1590
  function buildServerlessRouter(driverConfig, config) {
1489
- return _chunkIWXMFQDTcjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1591
+ return _chunk4KNL47JAcjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1490
1592
  router.get("/", (c) => {
1491
1593
  return c.text(
1492
1594
  "This is a RivetKit server.\n\nLearn more at https://rivetkit.org"
@@ -1535,10 +1637,10 @@ function buildServerlessRouter(driverConfig, config) {
1535
1637
  runnerKey: void 0
1536
1638
  }
1537
1639
  };
1538
- const managerDriver = new (0, _chunkLULP6HM2cjs.RemoteManagerDriver)(
1539
- _chunkLULP6HM2cjs.convertRegistryConfigToClientConfig.call(void 0, newConfig)
1640
+ const managerDriver = new (0, _chunk6NBNCWECcjs.RemoteManagerDriver)(
1641
+ _chunk6NBNCWECcjs.convertRegistryConfigToClientConfig.call(void 0, newConfig)
1540
1642
  );
1541
- const client = _chunkLULP6HM2cjs.createClientWithDriver.call(void 0, managerDriver);
1643
+ const client = _chunk6NBNCWECcjs.createClientWithDriver.call(void 0, managerDriver);
1542
1644
  const actorDriver = driverConfig.actor(
1543
1645
  newConfig,
1544
1646
  managerDriver,
@@ -1550,10 +1652,10 @@ function buildServerlessRouter(driverConfig, config) {
1550
1652
  );
1551
1653
  return await actorDriver.serverlessHandleStart(c);
1552
1654
  });
1553
- router.get("/health", (c) => _chunkIWXMFQDTcjs.handleHealthRequest.call(void 0, c));
1655
+ router.get("/health", (c) => _chunk4KNL47JAcjs.handleHealthRequest.call(void 0, c));
1554
1656
  router.get(
1555
1657
  "/metadata",
1556
- (c) => _chunkIWXMFQDTcjs.handleMetadataRequest.call(void 0,
1658
+ (c) => _chunk4KNL47JAcjs.handleMetadataRequest.call(void 0,
1557
1659
  c,
1558
1660
  config,
1559
1661
  { serverless: {} },
@@ -1638,9 +1740,9 @@ var Runtime = class _Runtime {
1638
1740
  logger4().info("rivetkit starting");
1639
1741
  const config = registry.parseConfig();
1640
1742
  if ((_a = config.logging) == null ? void 0 : _a.baseLogger) {
1641
- _chunkO433HWWGcjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1743
+ _chunkHZOBB3KPcjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1642
1744
  } else {
1643
- _chunkO433HWWGcjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1745
+ _chunkHZOBB3KPcjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1644
1746
  }
1645
1747
  _invariant2.default.call(void 0,
1646
1748
  !(config.serverless.spawnEngine && config.serveManager),
@@ -1650,7 +1752,7 @@ var Runtime = class _Runtime {
1650
1752
  const managerDriver = driver.manager(config);
1651
1753
  let managerPort;
1652
1754
  if (config.serverless.spawnEngine) {
1653
- managerPort = _chunkIWXMFQDTcjs.ENGINE_PORT;
1755
+ managerPort = _chunk4KNL47JAcjs.ENGINE_PORT;
1654
1756
  logger4().debug({
1655
1757
  msg: "spawning engine",
1656
1758
  version: config.serverless.engineVersion
@@ -1662,7 +1764,7 @@ var Runtime = class _Runtime {
1662
1764
  let upgradeWebSocket;
1663
1765
  const getUpgradeWebSocket = () => upgradeWebSocket;
1664
1766
  managerDriver.setGetUpgradeWebSocket(getUpgradeWebSocket);
1665
- const { router: managerRouter } = _chunkIWXMFQDTcjs.buildManagerRouter.call(void 0,
1767
+ const { router: managerRouter } = _chunk4KNL47JAcjs.buildManagerRouter.call(void 0,
1666
1768
  config,
1667
1769
  managerDriver,
1668
1770
  getUpgradeWebSocket
@@ -1714,7 +1816,7 @@ var Runtime = class _Runtime {
1714
1816
  this.#startKind = "runner";
1715
1817
  if (this.#config.runner && this.#driver.autoStartActorDriver) {
1716
1818
  logger4().debug("starting actor driver");
1717
- const inlineClient = _chunkLULP6HM2cjs.createClientWithDriver.call(void 0,
1819
+ const inlineClient = _chunk6NBNCWECcjs.createClientWithDriver.call(void 0,
1718
1820
  this.#managerDriver
1719
1821
  );
1720
1822
  this.#driver.actor(this.#config, this.#managerDriver, inlineClient);
@@ -1726,7 +1828,7 @@ var Runtime = class _Runtime {
1726
1828
  const inspectorUrl = this.managerPort ? getInspectorUrl(this.#config, this.managerPort) : void 0;
1727
1829
  console.log();
1728
1830
  console.log(
1729
- ` RivetKit ${_chunkO433HWWGcjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1831
+ ` RivetKit ${_chunkHZOBB3KPcjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1730
1832
  );
1731
1833
  if (this.#config.namespace !== "default") {
1732
1834
  logLine("Namespace", this.#config.namespace);
@@ -1767,7 +1869,7 @@ var Registry = class {
1767
1869
  return this.#config;
1768
1870
  }
1769
1871
  parseConfig() {
1770
- return _chunkIWXMFQDTcjs.RegistryConfigSchema.parse(this.#config);
1872
+ return _chunk4KNL47JAcjs.RegistryConfigSchema.parse(this.#config);
1771
1873
  }
1772
1874
  // Shared runtime instance
1773
1875
  #runtime;
@@ -1833,7 +1935,7 @@ var Registry = class {
1833
1935
  "autoConfigureServerless can only be configured when runnerKind is 'serverless'"
1834
1936
  );
1835
1937
  }
1836
- const isDevEnv = _chunkO433HWWGcjs.isDev.call(void 0, );
1938
+ const isDevEnv = _chunkHZOBB3KPcjs.isDev.call(void 0, );
1837
1939
  if (isDevEnv && config.runnerKind === "serverless") {
1838
1940
  if ((inputConfig == null ? void 0 : inputConfig.runEngine) === void 0) config.runEngine = true;
1839
1941
  if ((inputConfig == null ? void 0 : inputConfig.autoConfigureServerless) === void 0)
@@ -1846,7 +1948,7 @@ var Registry = class {
1846
1948
  }
1847
1949
  }
1848
1950
  #legacyStartServerless(config, _inputConfig) {
1849
- const client = _chunkLULP6HM2cjs.createClient.call(void 0, {
1951
+ const client = _chunk6NBNCWECcjs.createClient.call(void 0, {
1850
1952
  endpoint: config.endpoint,
1851
1953
  token: config.token,
1852
1954
  namespace: config.namespace,
@@ -1859,7 +1961,7 @@ var Registry = class {
1859
1961
  }
1860
1962
  #legacyStartNormal(config) {
1861
1963
  this.#ensureRuntime().then((runtime) => runtime.startRunner());
1862
- const client = _chunkLULP6HM2cjs.createClient.call(void 0, {
1964
+ const client = _chunk6NBNCWECcjs.createClient.call(void 0, {
1863
1965
  endpoint: config.endpoint,
1864
1966
  token: config.token,
1865
1967
  namespace: config.namespace,
@@ -1881,4 +1983,4 @@ function setup(input) {
1881
1983
 
1882
1984
 
1883
1985
  exports.actor = actor; exports.createEngineDriver = createEngineDriver; exports.Registry = Registry; exports.setup = setup;
1884
- //# sourceMappingURL=chunk-6WLJW57U.cjs.map
1986
+ //# sourceMappingURL=chunk-B5BMSBR4.cjs.map