rivetkit 2.0.39 → 2.0.41

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 (103) hide show
  1. package/dist/schemas/actor-persist/v1.js +167 -0
  2. package/dist/schemas/actor-persist/v2.js +200 -0
  3. package/dist/schemas/actor-persist/v3.js +200 -0
  4. package/dist/schemas/client-protocol/v1.js +301 -0
  5. package/dist/schemas/client-protocol/v2.js +299 -0
  6. package/dist/schemas/file-system-driver/v1.js +76 -0
  7. package/dist/schemas/file-system-driver/v2.js +103 -0
  8. package/dist/schemas/file-system-driver/v3.js +122 -0
  9. package/dist/tsup/actor/errors.cjs.map +1 -1
  10. package/dist/tsup/{chunk-OJZRCEIA.js → chunk-4J5EFV3E.js} +5 -5
  11. package/dist/tsup/{chunk-7E3RWMR6.cjs → chunk-4UHJ3ADW.cjs} +173 -107
  12. package/dist/tsup/chunk-4UHJ3ADW.cjs.map +1 -0
  13. package/dist/tsup/{chunk-BQ36VTSB.js → chunk-7KIR3QLO.js} +86 -20
  14. package/dist/tsup/{chunk-BQ36VTSB.js.map → chunk-7KIR3QLO.js.map} +1 -1
  15. package/dist/tsup/{chunk-KMYFL3OL.cjs → chunk-B5UXC4QV.cjs} +75 -64
  16. package/dist/tsup/chunk-B5UXC4QV.cjs.map +1 -0
  17. package/dist/tsup/{chunk-C64FV764.cjs → chunk-DSNSFYDL.cjs} +3 -3
  18. package/dist/tsup/chunk-DSNSFYDL.cjs.map +1 -0
  19. package/dist/tsup/chunk-GBENOENJ.cjs.map +1 -1
  20. package/dist/tsup/{chunk-DY4H3ASE.cjs → chunk-GTQKDCM4.cjs} +46 -46
  21. package/dist/tsup/chunk-GTQKDCM4.cjs.map +1 -0
  22. package/dist/tsup/chunk-KDFWJKMJ.cjs.map +1 -1
  23. package/dist/tsup/{chunk-CDK6DRO2.js → chunk-LMG4QMDO.js} +2 -2
  24. package/dist/tsup/{chunk-CDK6DRO2.js.map → chunk-LMG4QMDO.js.map} +1 -1
  25. package/dist/tsup/{chunk-T7IPDBWH.js → chunk-NRP2OHSW.js} +4 -4
  26. package/dist/tsup/{chunk-PVKUXMOA.js → chunk-OXN6EZUB.js} +19 -8
  27. package/dist/tsup/chunk-OXN6EZUB.js.map +1 -0
  28. package/dist/tsup/{chunk-MZPYVTVG.cjs → chunk-QDVKDX7G.cjs} +9 -9
  29. package/dist/tsup/chunk-QDVKDX7G.cjs.map +1 -0
  30. package/dist/tsup/{chunk-X72X7I7T.cjs → chunk-S6F7EKC7.cjs} +2 -2
  31. package/dist/tsup/chunk-S6F7EKC7.cjs.map +1 -0
  32. package/dist/tsup/chunk-SNAUKDDK.cjs.map +1 -1
  33. package/dist/tsup/{chunk-XU74APB4.js → chunk-UGOCTUBG.js} +6 -5
  34. package/dist/tsup/chunk-UGOCTUBG.js.map +1 -0
  35. package/dist/tsup/{chunk-UAX5E3EU.cjs → chunk-WYZLRPQM.cjs} +250 -249
  36. package/dist/tsup/chunk-WYZLRPQM.cjs.map +1 -0
  37. package/dist/tsup/{chunk-PHCD25XO.js → chunk-Y7ZDTLD2.js} +2 -2
  38. package/dist/tsup/client/mod.cjs +5 -5
  39. package/dist/tsup/client/mod.cjs.map +1 -1
  40. package/dist/tsup/client/mod.d.cts +2 -2
  41. package/dist/tsup/client/mod.d.ts +2 -2
  42. package/dist/tsup/client/mod.js +4 -4
  43. package/dist/tsup/common/log.cjs +2 -2
  44. package/dist/tsup/common/log.cjs.map +1 -1
  45. package/dist/tsup/common/log.d.cts +2 -2
  46. package/dist/tsup/common/log.d.ts +2 -2
  47. package/dist/tsup/common/log.js +1 -1
  48. package/dist/tsup/common/websocket.cjs +3 -3
  49. package/dist/tsup/common/websocket.cjs.map +1 -1
  50. package/dist/tsup/common/websocket.js +2 -2
  51. package/dist/tsup/{config-BuBlMs6C.d.cts → config-COyis_uH.d.cts} +22 -10
  52. package/dist/tsup/{config-CBwo4ooA.d.ts → config-D43N-CFi.d.ts} +22 -10
  53. package/dist/tsup/{driver-CPXmh8f8.d.cts → driver-Bt7B-qMd.d.cts} +1 -1
  54. package/dist/tsup/{driver-DxWa6HUO.d.ts → driver-KyM2v645.d.ts} +1 -1
  55. package/dist/tsup/driver-helpers/mod.cjs +3 -3
  56. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  57. package/dist/tsup/driver-helpers/mod.d.cts +2 -2
  58. package/dist/tsup/driver-helpers/mod.d.ts +2 -2
  59. package/dist/tsup/driver-helpers/mod.js +2 -2
  60. package/dist/tsup/driver-test-suite/mod.cjs +62 -34
  61. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  62. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  63. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  64. package/dist/tsup/driver-test-suite/mod.js +35 -7
  65. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  66. package/dist/tsup/inspector/mod.cjs.map +1 -1
  67. package/dist/tsup/mod.cjs +7 -7
  68. package/dist/tsup/mod.cjs.map +1 -1
  69. package/dist/tsup/mod.d.cts +4 -4
  70. package/dist/tsup/mod.d.ts +4 -4
  71. package/dist/tsup/mod.js +6 -6
  72. package/dist/tsup/test/mod.cjs +7 -7
  73. package/dist/tsup/test/mod.cjs.map +1 -1
  74. package/dist/tsup/test/mod.d.cts +1 -1
  75. package/dist/tsup/test/mod.d.ts +1 -1
  76. package/dist/tsup/test/mod.js +6 -6
  77. package/dist/tsup/utils.cjs +2 -2
  78. package/dist/tsup/utils.cjs.map +1 -1
  79. package/dist/tsup/utils.js +1 -1
  80. package/package.json +2 -2
  81. package/src/actor/instance/schedule-manager.ts +2 -1
  82. package/src/actor/router-websocket-endpoints.test.ts +54 -0
  83. package/src/actor/router-websocket-endpoints.ts +9 -4
  84. package/src/common/router.ts +2 -0
  85. package/src/driver-test-suite/tests/raw-websocket.ts +40 -0
  86. package/src/engine-process/mod.ts +69 -7
  87. package/src/registry/config/index.ts +7 -0
  88. package/src/registry/config/serverless.ts +2 -0
  89. package/src/registry/serve.ts +9 -5
  90. package/src/remote-manager-driver/api-endpoints.ts +2 -0
  91. package/src/serverless/configure.ts +3 -0
  92. package/dist/tsup/chunk-7E3RWMR6.cjs.map +0 -1
  93. package/dist/tsup/chunk-C64FV764.cjs.map +0 -1
  94. package/dist/tsup/chunk-DY4H3ASE.cjs.map +0 -1
  95. package/dist/tsup/chunk-KMYFL3OL.cjs.map +0 -1
  96. package/dist/tsup/chunk-MZPYVTVG.cjs.map +0 -1
  97. package/dist/tsup/chunk-PVKUXMOA.js.map +0 -1
  98. package/dist/tsup/chunk-UAX5E3EU.cjs.map +0 -1
  99. package/dist/tsup/chunk-X72X7I7T.cjs.map +0 -1
  100. package/dist/tsup/chunk-XU74APB4.js.map +0 -1
  101. /package/dist/tsup/{chunk-OJZRCEIA.js.map → chunk-4J5EFV3E.js.map} +0 -0
  102. /package/dist/tsup/{chunk-T7IPDBWH.js.map → chunk-NRP2OHSW.js.map} +0 -0
  103. /package/dist/tsup/{chunk-PHCD25XO.js.map → chunk-Y7ZDTLD2.js.map} +0 -0
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkDY4H3ASEcjs = require('./chunk-DY4H3ASE.cjs');
13
+ var _chunkGTQKDCM4cjs = require('./chunk-GTQKDCM4.cjs');
14
14
 
15
15
 
16
16
 
@@ -23,7 +23,7 @@ var _chunkDY4H3ASEcjs = require('./chunk-DY4H3ASE.cjs');
23
23
 
24
24
 
25
25
 
26
- var _chunkUAX5E3EUcjs = require('./chunk-UAX5E3EU.cjs');
26
+ var _chunkWYZLRPQMcjs = require('./chunk-WYZLRPQM.cjs');
27
27
 
28
28
 
29
29
 
@@ -47,7 +47,7 @@ var _chunkUAX5E3EUcjs = require('./chunk-UAX5E3EU.cjs');
47
47
 
48
48
 
49
49
 
50
- var _chunkKMYFL3OLcjs = require('./chunk-KMYFL3OL.cjs');
50
+ var _chunkB5UXC4QVcjs = require('./chunk-B5UXC4QV.cjs');
51
51
 
52
52
 
53
53
 
@@ -65,7 +65,7 @@ var _chunkKMYFL3OLcjs = require('./chunk-KMYFL3OL.cjs');
65
65
 
66
66
 
67
67
 
68
- var _chunkX72X7I7Tcjs = require('./chunk-X72X7I7T.cjs');
68
+ var _chunkS6F7EKC7cjs = require('./chunk-S6F7EKC7.cjs');
69
69
 
70
70
 
71
71
 
@@ -229,7 +229,7 @@ var DocActorConfigSchema = _zod.z.object({
229
229
  // src/actor/mod.ts
230
230
  function actor(input) {
231
231
  const config = ActorConfigSchema.parse(input);
232
- return new (0, _chunkUAX5E3EUcjs.ActorDefinition)(config);
232
+ return new (0, _chunkWYZLRPQMcjs.ActorDefinition)(config);
233
233
  }
234
234
 
235
235
  // src/drivers/engine/actor-driver.ts
@@ -241,7 +241,7 @@ var _invariant = require('invariant'); var _invariant2 = _interopRequireDefault(
241
241
 
242
242
  // src/drivers/engine/log.ts
243
243
  function logger() {
244
- return _chunkX72X7I7Tcjs.getLogger.call(void 0, "driver-engine");
244
+ return _chunkS6F7EKC7cjs.getLogger.call(void 0, "driver-engine");
245
245
  }
246
246
 
247
247
  // src/drivers/engine/actor-driver.ts
@@ -255,8 +255,8 @@ var EngineActorDriver = class {
255
255
  #runner;
256
256
  #actors = /* @__PURE__ */ new Map();
257
257
  #actorRouter;
258
- #runnerStarted = _chunkX72X7I7Tcjs.promiseWithResolvers.call(void 0, );
259
- #runnerStopped = _chunkX72X7I7Tcjs.promiseWithResolvers.call(void 0, );
258
+ #runnerStarted = _chunkS6F7EKC7cjs.promiseWithResolvers.call(void 0, );
259
+ #runnerStopped = _chunkS6F7EKC7cjs.promiseWithResolvers.call(void 0, );
260
260
  #isRunnerStopped = false;
261
261
  // HACK: Track actor stop intent locally since the runner protocol doesn't
262
262
  // pass the stop reason to onActorStop. This will be fixed when the runner
@@ -280,7 +280,7 @@ var EngineActorDriver = class {
280
280
  this.#managerDriver = managerDriver;
281
281
  this.#inlineClient = inlineClient;
282
282
  const token = config.token;
283
- this.#actorRouter = _chunkDY4H3ASEcjs.createActorRouter.call(void 0,
283
+ this.#actorRouter = _chunkGTQKDCM4cjs.createActorRouter.call(void 0,
284
284
  config,
285
285
  this,
286
286
  void 0,
@@ -288,16 +288,16 @@ var EngineActorDriver = class {
288
288
  );
289
289
  const engineRunnerConfig = {
290
290
  version: config.runner.version,
291
- endpoint: _chunkUAX5E3EUcjs.getEndpoint.call(void 0, config),
291
+ endpoint: _chunkWYZLRPQMcjs.getEndpoint.call(void 0, config),
292
292
  token,
293
293
  namespace: config.namespace,
294
294
  totalSlots: config.runner.totalSlots,
295
295
  runnerName: config.runner.runnerName,
296
296
  runnerKey: _nullishCoalesce(config.runner.runnerKey, () => ( crypto.randomUUID())),
297
297
  metadata: {
298
- rivetkit: { version: _chunkX72X7I7Tcjs.VERSION }
298
+ rivetkit: { version: _chunkS6F7EKC7cjs.VERSION }
299
299
  },
300
- prepopulateActorNames: _chunkKMYFL3OLcjs.buildActorNames.call(void 0, config),
300
+ prepopulateActorNames: _chunkB5UXC4QVcjs.buildActorNames.call(void 0, config),
301
301
  onConnected: () => {
302
302
  this.#runnerStarted.resolve(void 0);
303
303
  },
@@ -314,7 +314,7 @@ var EngineActorDriver = class {
314
314
  },
315
315
  onActorStart: this.#runnerOnActorStart.bind(this),
316
316
  onActorStop: this.#runnerOnActorStop.bind(this),
317
- logger: _chunkX72X7I7Tcjs.getLogger.call(void 0, "engine-runner")
317
+ logger: _chunkS6F7EKC7cjs.getLogger.call(void 0, "engine-runner")
318
318
  };
319
319
  this.#runner = new (0, _enginerunner.Runner)(engineRunnerConfig);
320
320
  this.#runner.start();
@@ -352,7 +352,7 @@ var EngineActorDriver = class {
352
352
  handler.alarmTimeout = void 0;
353
353
  }
354
354
  const delay = Math.max(0, timestamp - Date.now());
355
- handler.alarmTimeout = _chunkX72X7I7Tcjs.setLongTimeout.call(void 0, () => {
355
+ handler.alarmTimeout = _chunkS6F7EKC7cjs.setLongTimeout.call(void 0, () => {
356
356
  actor2.onAlarm();
357
357
  handler.alarmTimeout = void 0;
358
358
  }, delay);
@@ -424,7 +424,7 @@ var EngineActorDriver = class {
424
424
  var _a;
425
425
  (_a = handler.actor) == null ? void 0 : _a.rLog.error({
426
426
  msg: "onStop errored",
427
- error: _chunkX72X7I7Tcjs.stringifyError.call(void 0, err)
427
+ error: _chunkS6F7EKC7cjs.stringifyError.call(void 0, err)
428
428
  });
429
429
  })
430
430
  );
@@ -482,18 +482,18 @@ var EngineActorDriver = class {
482
482
  let handler = this.#actors.get(actorId);
483
483
  if (!handler) {
484
484
  handler = {
485
- actorStartPromise: _chunkX72X7I7Tcjs.promiseWithResolvers.call(void 0, )
485
+ actorStartPromise: _chunkS6F7EKC7cjs.promiseWithResolvers.call(void 0, )
486
486
  };
487
487
  this.#actors.set(actorId, handler);
488
488
  }
489
489
  const name = actorConfig.name;
490
490
  _invariant2.default.call(void 0, actorConfig.key, "actor should have a key");
491
- const key = _chunkKMYFL3OLcjs.deserializeActorKey.call(void 0, actorConfig.key);
491
+ const key = _chunkB5UXC4QVcjs.deserializeActorKey.call(void 0, actorConfig.key);
492
492
  const [persistDataBuffer] = await this.#runner.kvGet(actorId, [
493
- _chunkKMYFL3OLcjs.KEYS.PERSIST_DATA
493
+ _chunkB5UXC4QVcjs.KEYS.PERSIST_DATA
494
494
  ]);
495
495
  if (persistDataBuffer === null) {
496
- const initialKvState = _chunkKMYFL3OLcjs.getInitialActorKvState.call(void 0, input);
496
+ const initialKvState = _chunkB5UXC4QVcjs.getInitialActorKvState.call(void 0, input);
497
497
  await this.#runner.kvPut(actorId, initialKvState);
498
498
  logger().debug({
499
499
  msg: "initialized persist data for new actor",
@@ -506,7 +506,7 @@ var EngineActorDriver = class {
506
506
  dataSize: persistDataBuffer.byteLength
507
507
  });
508
508
  }
509
- const definition = _chunkUAX5E3EUcjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
509
+ const definition = _chunkWYZLRPQMcjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
510
510
  handler.actor = definition.instantiate();
511
511
  await handler.actor.start(
512
512
  this,
@@ -530,7 +530,7 @@ var EngineActorDriver = class {
530
530
  } catch (err) {
531
531
  logger().error({
532
532
  msg: "error in onStop, proceeding with removing actor",
533
- err: _chunkX72X7I7Tcjs.stringifyError.call(void 0, err)
533
+ err: _chunkS6F7EKC7cjs.stringifyError.call(void 0, err)
534
534
  });
535
535
  }
536
536
  this.#actors.delete(actorId);
@@ -563,10 +563,10 @@ var EngineActorDriver = class {
563
563
  websocketProps: websocketRaw ? Object.keys(websocketRaw).join(", ") : "null"
564
564
  });
565
565
  const protocols = request.headers.get("sec-websocket-protocol");
566
- const { encoding, connParams } = _chunkKMYFL3OLcjs.parseWebSocketProtocols.call(void 0, protocols);
566
+ const { encoding, connParams } = _chunkB5UXC4QVcjs.parseWebSocketProtocols.call(void 0, protocols);
567
567
  let wsHandler;
568
568
  try {
569
- wsHandler = await _chunkKMYFL3OLcjs.routeWebSocket.call(void 0,
569
+ wsHandler = await _chunkB5UXC4QVcjs.routeWebSocket.call(void 0,
570
570
  request,
571
571
  requestPath,
572
572
  requestHeaders,
@@ -589,7 +589,7 @@ var EngineActorDriver = class {
589
589
  const wsContext = new (0, _ws.WSContext)(websocket);
590
590
  const conn = wsHandler.conn;
591
591
  const actor2 = wsHandler.actor;
592
- const connStateManager = conn == null ? void 0 : conn[_chunkKMYFL3OLcjs.CONN_STATE_MANAGER_SYMBOL];
592
+ const connStateManager = conn == null ? void 0 : conn[_chunkB5UXC4QVcjs.CONN_STATE_MANAGER_SYMBOL];
593
593
  logger().debug({
594
594
  msg: "attaching websocket event listeners",
595
595
  actorId,
@@ -649,7 +649,7 @@ var EngineActorDriver = class {
649
649
  });
650
650
  const entry = this.#hwsMessageIndex.get(conn.id);
651
651
  if (entry) {
652
- const messageLength = _chunkKMYFL3OLcjs.getValueLength.call(void 0, event.data);
652
+ const messageLength = _chunkB5UXC4QVcjs.getValueLength.call(void 0, event.data);
653
653
  entry.bufferedMessageSize += messageLength;
654
654
  if (entry.bufferedMessageSize >= CONN_BUFFERED_MESSAGE_SIZE_THRESHOLD) {
655
655
  entry.bufferedMessageSize = 0;
@@ -720,10 +720,10 @@ var EngineActorDriver = class {
720
720
  gatewayId: _enginerunner.idToStr.call(void 0, gatewayId),
721
721
  requestId: _enginerunner.idToStr.call(void 0, requestId)
722
722
  });
723
- if (path === _chunkKMYFL3OLcjs.PATH_CONNECT) {
723
+ if (path === _chunkB5UXC4QVcjs.PATH_CONNECT) {
724
724
  return true;
725
- } else if (path === _chunkKMYFL3OLcjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunkKMYFL3OLcjs.PATH_WEBSOCKET_PREFIX)) {
726
- const definition = _chunkUAX5E3EUcjs.lookupInRegistry.call(void 0,
725
+ } else if (path === _chunkB5UXC4QVcjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunkB5UXC4QVcjs.PATH_WEBSOCKET_PREFIX)) {
726
+ const definition = _chunkWYZLRPQMcjs.lookupInRegistry.call(void 0,
727
727
  this.#config,
728
728
  actorInstance.config.name
729
729
  );
@@ -732,7 +732,7 @@ var EngineActorDriver = class {
732
732
  return true;
733
733
  } else if (typeof canHibernateWebSocket === "function") {
734
734
  try {
735
- const newPath = _chunkKMYFL3OLcjs.truncateRawWebSocketPathPrefix.call(void 0,
735
+ const newPath = _chunkB5UXC4QVcjs.truncateRawWebSocketPathPrefix.call(void 0,
736
736
  url.pathname
737
737
  );
738
738
  const truncatedRequest = new Request(
@@ -751,7 +751,7 @@ var EngineActorDriver = class {
751
751
  } else {
752
752
  return false;
753
753
  }
754
- } else if (path === _chunkKMYFL3OLcjs.PATH_INSPECTOR_CONNECT) {
754
+ } else if (path === _chunkB5UXC4QVcjs.PATH_INSPECTOR_CONNECT) {
755
755
  return false;
756
756
  } else {
757
757
  logger().warn({
@@ -764,7 +764,7 @@ var EngineActorDriver = class {
764
764
  async #hwsLoadAll(actorId) {
765
765
  const actor2 = await this.loadActor(actorId);
766
766
  return actor2.conns.values().map((conn) => {
767
- const connStateManager = conn[_chunkKMYFL3OLcjs.CONN_STATE_MANAGER_SYMBOL];
767
+ const connStateManager = conn[_chunkB5UXC4QVcjs.CONN_STATE_MANAGER_SYMBOL];
768
768
  const hibernatable = connStateManager.hibernatableData;
769
769
  if (!hibernatable) return void 0;
770
770
  return {
@@ -787,7 +787,7 @@ var EngineActorDriver = class {
787
787
  await this.#runner.restoreHibernatingRequests(actor2.id, metaEntries);
788
788
  }
789
789
  onCreateConn(conn) {
790
- const hibernatable = conn[_chunkKMYFL3OLcjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
790
+ const hibernatable = conn[_chunkB5UXC4QVcjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
791
791
  if (!hibernatable) return;
792
792
  this.#hwsMessageIndex.set(conn.id, {
793
793
  serverMessageIndex: hibernatable.serverMessageIndex,
@@ -809,7 +809,7 @@ var EngineActorDriver = class {
809
809
  });
810
810
  }
811
811
  onBeforePersistConn(conn) {
812
- const stateManager = conn[_chunkKMYFL3OLcjs.CONN_STATE_MANAGER_SYMBOL];
812
+ const stateManager = conn[_chunkB5UXC4QVcjs.CONN_STATE_MANAGER_SYMBOL];
813
813
  const hibernatable = stateManager.hibernatableDataOrError();
814
814
  const entry = this.#hwsMessageIndex.get(conn.id);
815
815
  if (!entry) {
@@ -823,7 +823,7 @@ var EngineActorDriver = class {
823
823
  entry.serverMessageIndex = hibernatable.serverMessageIndex;
824
824
  }
825
825
  onAfterPersistConn(conn) {
826
- const stateManager = conn[_chunkKMYFL3OLcjs.CONN_STATE_MANAGER_SYMBOL];
826
+ const stateManager = conn[_chunkB5UXC4QVcjs.CONN_STATE_MANAGER_SYMBOL];
827
827
  const hibernatable = stateManager.hibernatableDataOrError();
828
828
  const entry = this.#hwsMessageIndex.get(conn.id);
829
829
  if (!entry) {
@@ -848,9 +848,9 @@ var EngineActorDriver = class {
848
848
 
849
849
  // src/drivers/engine/config.ts
850
850
 
851
- var EngineConfigSchemaBase = _chunkUAX5E3EUcjs.ClientConfigSchemaBase.extend({
851
+ var EngineConfigSchemaBase = _chunkWYZLRPQMcjs.ClientConfigSchemaBase.extend({
852
852
  /** Unique key for this runner. Runners connecting a given key will replace any other runner connected with the same key. */
853
- runnerKey: _zod.z.string().optional().transform((val) => _nullishCoalesce(val, () => ( _chunkX72X7I7Tcjs.getRivetRunnerKey.call(void 0, )))),
853
+ runnerKey: _zod.z.string().optional().transform((val) => _nullishCoalesce(val, () => ( _chunkS6F7EKC7cjs.getRivetRunnerKey.call(void 0, )))),
854
854
  /** How many actors this runner can run. */
855
855
  totalSlots: _zod.z.number().default(1e5)
856
856
  });
@@ -862,7 +862,7 @@ var EngineConfigSchema = EngineConfigSchemaTransformed.default(
862
862
  );
863
863
  function transformEngineConfig(config, ctx) {
864
864
  return {
865
- ..._chunkUAX5E3EUcjs.transformClientConfig.call(void 0, config, ctx),
865
+ ..._chunkWYZLRPQMcjs.transformClientConfig.call(void 0, config, ctx),
866
866
  runnerKey: config.runnerKey
867
867
  };
868
868
  }
@@ -873,8 +873,8 @@ function createEngineDriver() {
873
873
  name: "engine",
874
874
  displayName: "Engine",
875
875
  manager: (config) => {
876
- const clientConfig = _chunkUAX5E3EUcjs.convertRegistryConfigToClientConfig.call(void 0, config);
877
- return new (0, _chunkUAX5E3EUcjs.RemoteManagerDriver)(clientConfig);
876
+ const clientConfig = _chunkWYZLRPQMcjs.convertRegistryConfigToClientConfig.call(void 0, config);
877
+ return new (0, _chunkWYZLRPQMcjs.RemoteManagerDriver)(clientConfig);
878
878
  },
879
879
  actor: (config, managerDriver, inlineClient) => {
880
880
  return new EngineActorDriver(
@@ -902,15 +902,15 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
902
902
  /** @experimental */
903
903
  maxOutgoingMessageSize: _zod.z.number().optional().default(1048576),
904
904
  /** @experimental */
905
- inspector: _chunkKMYFL3OLcjs.InspectorConfigSchema,
905
+ inspector: _chunkB5UXC4QVcjs.InspectorConfigSchema,
906
906
  /** @experimental */
907
907
  disableDefaultServer: _zod.z.boolean().optional().default(false),
908
908
  /** @experimental */
909
909
  defaultServerPort: _zod.z.number().default(6420),
910
910
  /** @experimental */
911
- runEngine: _zod.z.boolean().optional().default(() => _chunkX72X7I7Tcjs.getRivetRunEngine.call(void 0, )),
911
+ runEngine: _zod.z.boolean().optional().default(() => _chunkS6F7EKC7cjs.getRivetRunEngine.call(void 0, )),
912
912
  /** @experimental */
913
- runEngineVersion: _zod.z.string().optional().default(() => _nullishCoalesce(_chunkX72X7I7Tcjs.getRivetRunEngineVersion.call(void 0, ), () => ( _chunkX72X7I7Tcjs.VERSION))),
913
+ runEngineVersion: _zod.z.string().optional().default(() => _nullishCoalesce(_chunkS6F7EKC7cjs.getRivetRunEngineVersion.call(void 0, ), () => ( _chunkS6F7EKC7cjs.VERSION))),
914
914
  /** @experimental */
915
915
  overrideServerAddress: _zod.z.string().optional(),
916
916
  /** @experimental */
@@ -922,7 +922,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
922
922
  * serverlessly (by the Rivet Engine for example).
923
923
  */
924
924
  runnerKind: _zod.z.enum(["serverless", "normal"]).optional().default(
925
- () => _chunkX72X7I7Tcjs.getRivetRunnerKind.call(void 0, ) === "serverless" ? "serverless" : "normal"
925
+ () => _chunkS6F7EKC7cjs.getRivetRunnerKind.call(void 0, ) === "serverless" ? "serverless" : "normal"
926
926
  ),
927
927
  totalSlots: _zod.z.number().optional(),
928
928
  /**
@@ -944,7 +944,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
944
944
  * */
945
945
  logging: _zod.z.object({
946
946
  baseLogger: _zod.z.custom().optional(),
947
- level: _chunkX72X7I7Tcjs.LogLevelSchema.optional()
947
+ level: _chunkS6F7EKC7cjs.LogLevelSchema.optional()
948
948
  }).optional().default(() => ({})),
949
949
  /**
950
950
  * @experimental
@@ -972,7 +972,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
972
972
  // created or must be imported async using `await import(...)`
973
973
  getUpgradeWebSocket: _zod.z.custom().optional(),
974
974
  /** @experimental */
975
- token: _zod.z.string().optional().transform((v) => v || _chunkX72X7I7Tcjs.getRivetToken.call(void 0, ))
975
+ token: _zod.z.string().optional().transform((v) => v || _chunkS6F7EKC7cjs.getRivetToken.call(void 0, ))
976
976
  }).merge(EngineConfigSchemaBase);
977
977
  var LegacyRunnerConfigSchemaTransformed = LegacyRunnerConfigSchemaUnmerged.transform((config, ctx) => ({
978
978
  ...config,
@@ -996,38 +996,38 @@ function chooseDefaultDriver(config) {
996
996
  return config.driver;
997
997
  }
998
998
  if (config.endpoint || config.token) {
999
- _chunkKMYFL3OLcjs.loggerWithoutContext.call(void 0, ).debug({
999
+ _chunkB5UXC4QVcjs.loggerWithoutContext.call(void 0, ).debug({
1000
1000
  msg: "using rivet engine driver",
1001
1001
  endpoint: config.endpoint
1002
1002
  });
1003
1003
  return createEngineDriver();
1004
1004
  }
1005
- _chunkKMYFL3OLcjs.loggerWithoutContext.call(void 0, ).debug({ msg: "using default file system driver" });
1006
- return _chunkDY4H3ASEcjs.createFileSystemOrMemoryDriver.call(void 0, true);
1005
+ _chunkB5UXC4QVcjs.loggerWithoutContext.call(void 0, ).debug({ msg: "using default file system driver" });
1006
+ return _chunkGTQKDCM4cjs.createFileSystemOrMemoryDriver.call(void 0, true);
1007
1007
  }
1008
1008
 
1009
1009
  // src/engine-process/log.ts
1010
1010
  function logger2() {
1011
- return _chunkX72X7I7Tcjs.getLogger.call(void 0, "engine-process");
1011
+ return _chunkS6F7EKC7cjs.getLogger.call(void 0, "engine-process");
1012
1012
  }
1013
1013
 
1014
1014
  // src/engine-process/mod.ts
1015
1015
  var ENGINE_BASE_URL = "https://releases.rivet.dev/rivet";
1016
1016
  var ENGINE_BINARY_NAME = "rivet-engine";
1017
1017
  async function ensureEngineProcess(options) {
1018
- _chunkDY4H3ASEcjs.importNodeDependencies.call(void 0, );
1018
+ _chunkGTQKDCM4cjs.importNodeDependencies.call(void 0, );
1019
1019
  logger2().debug({
1020
1020
  msg: "ensuring engine process",
1021
1021
  version: options.version
1022
1022
  });
1023
- const path = _chunkDY4H3ASEcjs.getNodePath.call(void 0, );
1024
- const storageRoot = _chunkDY4H3ASEcjs.getStoragePath.call(void 0, );
1023
+ const path = _chunkGTQKDCM4cjs.getNodePath.call(void 0, );
1024
+ const storageRoot = _chunkGTQKDCM4cjs.getStoragePath.call(void 0, );
1025
1025
  const binDir = path.join(storageRoot, "bin");
1026
1026
  const varDir = path.join(storageRoot, "var");
1027
1027
  const logsDir = path.join(varDir, "logs", "rivet-engine");
1028
- await _chunkDY4H3ASEcjs.ensureDirectoryExists.call(void 0, binDir);
1029
- await _chunkDY4H3ASEcjs.ensureDirectoryExists.call(void 0, varDir);
1030
- await _chunkDY4H3ASEcjs.ensureDirectoryExists.call(void 0, logsDir);
1028
+ await _chunkGTQKDCM4cjs.ensureDirectoryExists.call(void 0, binDir);
1029
+ await _chunkGTQKDCM4cjs.ensureDirectoryExists.call(void 0, varDir);
1030
+ await _chunkGTQKDCM4cjs.ensureDirectoryExists.call(void 0, logsDir);
1031
1031
  if (await isEngineRunning()) {
1032
1032
  try {
1033
1033
  const health = await waitForEngineHealth();
@@ -1052,7 +1052,7 @@ async function ensureEngineProcess(options) {
1052
1052
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/:/g, "-").replace(/\./g, "-");
1053
1053
  const stdoutLogPath = path.join(logsDir, `engine-${timestamp}-stdout.log`);
1054
1054
  const stderrLogPath = path.join(logsDir, `engine-${timestamp}-stderr.log`);
1055
- const fsSync = _chunkDY4H3ASEcjs.getNodeFsSync.call(void 0, );
1055
+ const fsSync = _chunkGTQKDCM4cjs.getNodeFsSync.call(void 0, );
1056
1056
  const stdoutStream = fsSync.createWriteStream(stdoutLogPath, {
1057
1057
  flags: "a"
1058
1058
  });
@@ -1064,12 +1064,43 @@ async function ensureEngineProcess(options) {
1064
1064
  stdout: stdoutLogPath,
1065
1065
  stderr: stderrLogPath
1066
1066
  });
1067
- const childProcess = _chunkDY4H3ASEcjs.getNodeChildProcess.call(void 0, );
1067
+ const childProcess = _chunkGTQKDCM4cjs.getNodeChildProcess.call(void 0, );
1068
1068
  const child = childProcess.spawn(binaryPath, ["start"], {
1069
1069
  cwd: path.dirname(binaryPath),
1070
1070
  stdio: ["inherit", "pipe", "pipe"],
1071
1071
  env: {
1072
- ...process.env
1072
+ ...process.env,
1073
+ // Development environment overrides for Rivet Engine.
1074
+ //
1075
+ // NOTE: When modifying these env vars, also update scripts/run/dev-env.sh
1076
+ // to keep them in sync for manual engine runs.
1077
+ //
1078
+ // In development, runners can be terminated without a graceful
1079
+ // shutdown (i.e. SIGKILL instead of SIGTERM). This is treated as a
1080
+ // crash by Rivet Engine in production and implements a backoff for
1081
+ // rescheduling actors in case of a crash loop.
1082
+ //
1083
+ // This is problematic in development since this will cause actors
1084
+ // to become unresponsive if frequently killing your dev server.
1085
+ //
1086
+ // We reduce the timeouts for resetting a runner as healthy in
1087
+ // order to account for this.
1088
+ RIVET__PEGBOARD__RETRY_RESET_DURATION: "100",
1089
+ RIVET__PEGBOARD__BASE_RETRY_TIMEOUT: "100",
1090
+ // Set max exponent to 1 to have a maximum of base_retry_timeout
1091
+ RIVET__PEGBOARD__RESCHEDULE_BACKOFF_MAX_EXPONENT: "1",
1092
+ // Reduce thresholds for faster development iteration
1093
+ //
1094
+ // Default ping interval is 3s, this gives a 2s & 4s grace
1095
+ RIVET__PEGBOARD__RUNNER_ELIGIBLE_THRESHOLD: "5000",
1096
+ RIVET__PEGBOARD__RUNNER_LOST_THRESHOLD: "7000",
1097
+ // Allow faster metadata polling for hot-reload in development (in milliseconds)
1098
+ RIVET__PEGBOARD__MIN_METADATA_POLL_INTERVAL: "1000",
1099
+ // Reduce shutdown durations for faster development iteration (in seconds)
1100
+ RIVET__RUNTIME__WORKER_SHUTDOWN_DURATION: "1",
1101
+ RIVET__RUNTIME__GUARD_SHUTDOWN_DURATION: "1",
1102
+ // Force exit after this duration (must be > worker and guard shutdown durations)
1103
+ RIVET__RUNTIME__FORCE_SHUTDOWN_DURATION: "2"
1073
1104
  }
1074
1105
  });
1075
1106
  if (!child.pid) {
@@ -1078,7 +1109,11 @@ async function ensureEngineProcess(options) {
1078
1109
  if (child.stdout) {
1079
1110
  child.stdout.pipe(stdoutStream);
1080
1111
  }
1112
+ const stderrChunks = [];
1081
1113
  if (child.stderr) {
1114
+ child.stderr.on("data", (chunk) => {
1115
+ stderrChunks.push(chunk);
1116
+ });
1082
1117
  child.stderr.pipe(stderrStream);
1083
1118
  }
1084
1119
  logger2().debug({
@@ -1087,13 +1122,37 @@ async function ensureEngineProcess(options) {
1087
1122
  cwd: path.dirname(binaryPath)
1088
1123
  });
1089
1124
  child.once("exit", (code, signal) => {
1090
- logger2().warn({
1091
- msg: "engine process exited, please report this error",
1092
- code,
1093
- signal,
1094
- issues: "https://github.com/rivet-dev/rivetkit/issues",
1095
- support: "https://rivet.dev/discord"
1096
- });
1125
+ const stderrOutput = Buffer.concat(stderrChunks).toString("utf-8");
1126
+ if (stderrOutput.includes("LOCK: Resource temporarily unavailable")) {
1127
+ logger2().error({
1128
+ msg: "another instance of rivet engine is unexpectedly running, this is an internal error",
1129
+ code,
1130
+ signal,
1131
+ stdoutLog: stdoutLogPath,
1132
+ stderrLog: stderrLogPath,
1133
+ issues: "https://github.com/rivet-dev/rivetkit/issues",
1134
+ support: "https://rivet.dev/discord"
1135
+ });
1136
+ } else if (stderrOutput.includes("Rivet Engine has been rolled back to a previous version")) {
1137
+ logger2().error({
1138
+ msg: "rivet engine version downgrade detected",
1139
+ hint: `You attempted to downgrade the RivetKit version in development. To fix this, nuke the database by running: '${binaryPath}' database nuke --yes`,
1140
+ code,
1141
+ signal,
1142
+ stdoutLog: stdoutLogPath,
1143
+ stderrLog: stderrLogPath
1144
+ });
1145
+ } else {
1146
+ logger2().warn({
1147
+ msg: "engine process exited, please report this error",
1148
+ code,
1149
+ signal,
1150
+ stdoutLog: stdoutLogPath,
1151
+ stderrLog: stderrLogPath,
1152
+ issues: "https://github.com/rivet-dev/rivetkit/issues",
1153
+ support: "https://rivet.dev/discord"
1154
+ });
1155
+ }
1097
1156
  stdoutStream.end();
1098
1157
  stderrStream.end();
1099
1158
  });
@@ -1141,7 +1200,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1141
1200
  `failed to download rivet engine binary from ${downloadUrl}: ${response.status} ${response.statusText}`
1142
1201
  );
1143
1202
  }
1144
- const crypto2 = _chunkDY4H3ASEcjs.getNodeCrypto.call(void 0, );
1203
+ const crypto2 = _chunkGTQKDCM4cjs.getNodeCrypto.call(void 0, );
1145
1204
  const tempPath = `${binaryPath}.${crypto2.randomUUID()}.tmp`;
1146
1205
  const startTime = Date.now();
1147
1206
  logger2().debug({
@@ -1156,14 +1215,14 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1156
1215
  });
1157
1216
  }, 5e3);
1158
1217
  try {
1159
- const stream = _chunkDY4H3ASEcjs.getNodeStream.call(void 0, );
1160
- const fsSync = _chunkDY4H3ASEcjs.getNodeFsSync.call(void 0, );
1218
+ const stream = _chunkGTQKDCM4cjs.getNodeStream.call(void 0, );
1219
+ const fsSync = _chunkGTQKDCM4cjs.getNodeFsSync.call(void 0, );
1161
1220
  await stream.pipeline(
1162
1221
  response.body,
1163
1222
  fsSync.createWriteStream(tempPath)
1164
1223
  );
1165
1224
  clearTimeout(slowDownloadWarning);
1166
- const fs = _chunkDY4H3ASEcjs.getNodeFs.call(void 0, );
1225
+ const fs = _chunkGTQKDCM4cjs.getNodeFs.call(void 0, );
1167
1226
  const stats = await fs.stat(tempPath);
1168
1227
  const downloadDuration = Date.now() - startTime;
1169
1228
  if (process.platform !== "win32") {
@@ -1192,7 +1251,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1192
1251
  support: "https://rivet.dev/discord"
1193
1252
  });
1194
1253
  try {
1195
- const fs = _chunkDY4H3ASEcjs.getNodeFs.call(void 0, );
1254
+ const fs = _chunkGTQKDCM4cjs.getNodeFs.call(void 0, );
1196
1255
  await fs.unlink(tempPath);
1197
1256
  } catch (unlinkError) {
1198
1257
  }
@@ -1234,7 +1293,7 @@ function resolveTargetTripletFor(platform, arch) {
1234
1293
  );
1235
1294
  }
1236
1295
  async function isEngineRunning() {
1237
- return await checkIfEngineAlreadyRunningOnPort(_chunkKMYFL3OLcjs.ENGINE_PORT);
1296
+ return await checkIfEngineAlreadyRunningOnPort(_chunkB5UXC4QVcjs.ENGINE_PORT);
1238
1297
  }
1239
1298
  async function checkIfEngineAlreadyRunningOnPort(port) {
1240
1299
  let response;
@@ -1269,7 +1328,7 @@ async function checkIfEngineAlreadyRunningOnPort(port) {
1269
1328
  }
1270
1329
  async function fileExists(filePath) {
1271
1330
  try {
1272
- const fs = _chunkDY4H3ASEcjs.getNodeFs.call(void 0, );
1331
+ const fs = _chunkGTQKDCM4cjs.getNodeFs.call(void 0, );
1273
1332
  await fs.access(filePath);
1274
1333
  return true;
1275
1334
  } catch (e) {
@@ -1283,7 +1342,7 @@ async function waitForEngineHealth() {
1283
1342
  logger2().debug({ msg: "waiting for engine health check" });
1284
1343
  for (let i = 0; i < maxRetries; i++) {
1285
1344
  try {
1286
- const response = await fetch(`${_chunkKMYFL3OLcjs.ENGINE_ENDPOINT}/health`, {
1345
+ const response = await fetch(`${_chunkB5UXC4QVcjs.ENGINE_ENDPOINT}/health`, {
1287
1346
  signal: AbortSignal.timeout(1e3)
1288
1347
  });
1289
1348
  if (response.ok) {
@@ -1327,7 +1386,7 @@ function getInspectorUrl(config, managerPort) {
1327
1386
 
1328
1387
  // src/serverless/log.ts
1329
1388
  function logger3() {
1330
- return _chunkX72X7I7Tcjs.getLogger.call(void 0, "serverless");
1389
+ return _chunkS6F7EKC7cjs.getLogger.call(void 0, "serverless");
1331
1390
  }
1332
1391
 
1333
1392
  // src/serverless/configure.ts
@@ -1347,12 +1406,12 @@ async function configureServerlessRunner(config) {
1347
1406
  }
1348
1407
  const customConfig = config.serverless.configureRunnerPool;
1349
1408
  _invariant2.default.call(void 0, customConfig, "configureRunnerPool should exist");
1350
- const clientConfig = _chunkUAX5E3EUcjs.convertRegistryConfigToClientConfig.call(void 0, config);
1409
+ const clientConfig = _chunkWYZLRPQMcjs.convertRegistryConfigToClientConfig.call(void 0, config);
1351
1410
  logger3().debug({
1352
1411
  msg: "fetching datacenters",
1353
1412
  endpoint: config.endpoint
1354
1413
  });
1355
- const dcsRes = await _chunkUAX5E3EUcjs.getDatacenters.call(void 0, clientConfig);
1414
+ const dcsRes = await _chunkWYZLRPQMcjs.getDatacenters.call(void 0, clientConfig);
1356
1415
  const runnerName = _nullishCoalesce(customConfig.name, () => ( "default"));
1357
1416
  logger3().debug({
1358
1417
  msg: "configuring serverless runner",
@@ -1367,11 +1426,14 @@ async function configureServerlessRunner(config) {
1367
1426
  min_runners: _nullishCoalesce(customConfig.minRunners, () => ( 0)),
1368
1427
  request_lifespan: _nullishCoalesce(customConfig.requestLifespan, () => ( 15 * 60)),
1369
1428
  runners_margin: _nullishCoalesce(customConfig.runnersMargin, () => ( 0)),
1370
- slots_per_runner: _nullishCoalesce(customConfig.slotsPerRunner, () => ( 1))
1429
+ slots_per_runner: _nullishCoalesce(customConfig.slotsPerRunner, () => ( 1)),
1430
+ metadata_poll_interval: _nullishCoalesce(customConfig.metadataPollInterval, () => ( 1e3))
1371
1431
  },
1372
- metadata: _nullishCoalesce(customConfig.metadata, () => ( {}))
1432
+ metadata: _nullishCoalesce(customConfig.metadata, () => ( {})),
1433
+ drain_on_version_upgrade: _nullishCoalesce(customConfig.drainOnVersionUpgrade, () => ( true)),
1434
+ metadataPollInterval: _nullishCoalesce(customConfig.metadataPollInterval, () => ( 1e3))
1373
1435
  };
1374
- await _chunkUAX5E3EUcjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1436
+ await _chunkWYZLRPQMcjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1375
1437
  datacenters: Object.fromEntries(
1376
1438
  dcsRes.datacenters.map((dc) => [dc.name, serverlessConfig])
1377
1439
  )
@@ -1391,7 +1453,7 @@ async function configureServerlessRunner(config) {
1391
1453
 
1392
1454
  // src/registry/log.ts
1393
1455
  function logger4() {
1394
- return _chunkX72X7I7Tcjs.getLogger.call(void 0, "registry");
1456
+ return _chunkS6F7EKC7cjs.getLogger.call(void 0, "registry");
1395
1457
  }
1396
1458
 
1397
1459
  // src/registry/serve.ts
@@ -1406,7 +1468,7 @@ async function findFreePort(startPort = DEFAULT_PORT) {
1406
1468
  return _getport2.default.call(void 0, { port: portRange(startPort) });
1407
1469
  }
1408
1470
  async function crossPlatformServe(config, managerPort, app) {
1409
- const runtime = _chunkX72X7I7Tcjs.detectRuntime.call(void 0, );
1471
+ const runtime = _chunkS6F7EKC7cjs.detectRuntime.call(void 0, );
1410
1472
  logger4().debug({ msg: "detected runtime for serve", runtime });
1411
1473
  switch (runtime) {
1412
1474
  case "deno":
@@ -1431,7 +1493,7 @@ async function serveNode(config, managerPort, app) {
1431
1493
  } catch (err) {
1432
1494
  logger4().error({
1433
1495
  msg: "failed to import @hono/node-server. please run 'npm install @hono/node-server @hono/node-ws'",
1434
- error: _chunkX72X7I7Tcjs.stringifyError.call(void 0, err)
1496
+ error: _chunkS6F7EKC7cjs.stringifyError.call(void 0, err)
1435
1497
  });
1436
1498
  process.exit(1);
1437
1499
  }
@@ -1446,7 +1508,7 @@ async function serveNode(config, managerPort, app) {
1446
1508
  } catch (err) {
1447
1509
  logger4().error({
1448
1510
  msg: "failed to import @hono/node-ws. please run 'npm install @hono/node-server @hono/node-ws'",
1449
- error: _chunkX72X7I7Tcjs.stringifyError.call(void 0, err)
1511
+ error: _chunkS6F7EKC7cjs.stringifyError.call(void 0, err)
1450
1512
  });
1451
1513
  process.exit(1);
1452
1514
  }
@@ -1454,9 +1516,10 @@ async function serveNode(config, managerPort, app) {
1454
1516
  app
1455
1517
  });
1456
1518
  const port = managerPort;
1519
+ const hostname = config.managerHost;
1457
1520
  const server = serve(
1458
- { fetch: app.fetch, port },
1459
- () => logger4().info({ msg: "server listening", port })
1521
+ { fetch: app.fetch, port, hostname },
1522
+ () => logger4().info({ msg: "server listening", port, hostname })
1460
1523
  );
1461
1524
  injectWebSocket(server);
1462
1525
  return { upgradeWebSocket };
@@ -1473,13 +1536,14 @@ async function serveDeno(config, managerPort, app) {
1473
1536
  } catch (err) {
1474
1537
  logger4().error({
1475
1538
  msg: "failed to import hono/deno",
1476
- error: _chunkX72X7I7Tcjs.stringifyError.call(void 0, err)
1539
+ error: _chunkS6F7EKC7cjs.stringifyError.call(void 0, err)
1477
1540
  });
1478
1541
  process.exit(1);
1479
1542
  }
1480
1543
  const port = config.managerPort;
1481
- Deno.serve({ port }, app.fetch);
1482
- logger4().info({ msg: "server listening", port });
1544
+ const hostname = config.managerHost;
1545
+ Deno.serve({ port, hostname }, app.fetch);
1546
+ logger4().info({ msg: "server listening", port, hostname });
1483
1547
  return { upgradeWebSocket };
1484
1548
  }
1485
1549
  async function serveBun(config, managerPort, app) {
@@ -1494,18 +1558,20 @@ async function serveBun(config, managerPort, app) {
1494
1558
  } catch (err) {
1495
1559
  logger4().error({
1496
1560
  msg: "failed to import hono/bun",
1497
- error: _chunkX72X7I7Tcjs.stringifyError.call(void 0, err)
1561
+ error: _chunkS6F7EKC7cjs.stringifyError.call(void 0, err)
1498
1562
  });
1499
1563
  process.exit(1);
1500
1564
  }
1501
1565
  const { websocket, upgradeWebSocket } = createBunWebSocket();
1502
1566
  const port = config.managerPort;
1567
+ const hostname = config.managerHost;
1503
1568
  Bun.serve({
1504
1569
  fetch: app.fetch,
1505
1570
  port,
1571
+ hostname,
1506
1572
  websocket
1507
1573
  });
1508
- logger4().info({ msg: "server listening", port });
1574
+ logger4().info({ msg: "server listening", port, hostname });
1509
1575
  return { upgradeWebSocket };
1510
1576
  }
1511
1577
 
@@ -1532,7 +1598,7 @@ var ServerlessStartHeadersSchema = _zod.z.object({
1532
1598
 
1533
1599
  // src/serverless/router.ts
1534
1600
  function buildServerlessRouter(driverConfig, config) {
1535
- return _chunkKMYFL3OLcjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1601
+ return _chunkB5UXC4QVcjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1536
1602
  router.get("/", (c) => {
1537
1603
  return c.text(
1538
1604
  "This is a RivetKit server.\n\nLearn more at https://rivetkit.org"
@@ -1581,10 +1647,10 @@ function buildServerlessRouter(driverConfig, config) {
1581
1647
  runnerKey: void 0
1582
1648
  }
1583
1649
  };
1584
- const managerDriver = new (0, _chunkUAX5E3EUcjs.RemoteManagerDriver)(
1585
- _chunkUAX5E3EUcjs.convertRegistryConfigToClientConfig.call(void 0, newConfig)
1650
+ const managerDriver = new (0, _chunkWYZLRPQMcjs.RemoteManagerDriver)(
1651
+ _chunkWYZLRPQMcjs.convertRegistryConfigToClientConfig.call(void 0, newConfig)
1586
1652
  );
1587
- const client = _chunkUAX5E3EUcjs.createClientWithDriver.call(void 0, managerDriver);
1653
+ const client = _chunkWYZLRPQMcjs.createClientWithDriver.call(void 0, managerDriver);
1588
1654
  const actorDriver = driverConfig.actor(
1589
1655
  newConfig,
1590
1656
  managerDriver,
@@ -1596,10 +1662,10 @@ function buildServerlessRouter(driverConfig, config) {
1596
1662
  );
1597
1663
  return await actorDriver.serverlessHandleStart(c);
1598
1664
  });
1599
- router.get("/health", (c) => _chunkKMYFL3OLcjs.handleHealthRequest.call(void 0, c));
1665
+ router.get("/health", (c) => _chunkB5UXC4QVcjs.handleHealthRequest.call(void 0, c));
1600
1666
  router.get(
1601
1667
  "/metadata",
1602
- (c) => _chunkKMYFL3OLcjs.handleMetadataRequest.call(void 0,
1668
+ (c) => _chunkB5UXC4QVcjs.handleMetadataRequest.call(void 0,
1603
1669
  c,
1604
1670
  config,
1605
1671
  { serverless: {} },
@@ -1684,9 +1750,9 @@ var Runtime = class _Runtime {
1684
1750
  logger4().info("rivetkit starting");
1685
1751
  const config = registry.parseConfig();
1686
1752
  if ((_a = config.logging) == null ? void 0 : _a.baseLogger) {
1687
- _chunkX72X7I7Tcjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1753
+ _chunkS6F7EKC7cjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1688
1754
  } else {
1689
- _chunkX72X7I7Tcjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1755
+ _chunkS6F7EKC7cjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1690
1756
  }
1691
1757
  _invariant2.default.call(void 0,
1692
1758
  !(config.serverless.spawnEngine && config.serveManager),
@@ -1696,7 +1762,7 @@ var Runtime = class _Runtime {
1696
1762
  const managerDriver = driver.manager(config);
1697
1763
  let managerPort;
1698
1764
  if (config.serverless.spawnEngine) {
1699
- managerPort = _chunkKMYFL3OLcjs.ENGINE_PORT;
1765
+ managerPort = _chunkB5UXC4QVcjs.ENGINE_PORT;
1700
1766
  logger4().debug({
1701
1767
  msg: "spawning engine",
1702
1768
  version: config.serverless.engineVersion
@@ -1708,7 +1774,7 @@ var Runtime = class _Runtime {
1708
1774
  let upgradeWebSocket;
1709
1775
  const getUpgradeWebSocket = () => upgradeWebSocket;
1710
1776
  managerDriver.setGetUpgradeWebSocket(getUpgradeWebSocket);
1711
- const { router: managerRouter } = _chunkKMYFL3OLcjs.buildManagerRouter.call(void 0,
1777
+ const { router: managerRouter } = _chunkB5UXC4QVcjs.buildManagerRouter.call(void 0,
1712
1778
  config,
1713
1779
  managerDriver,
1714
1780
  getUpgradeWebSocket
@@ -1760,7 +1826,7 @@ var Runtime = class _Runtime {
1760
1826
  this.#startKind = "runner";
1761
1827
  if (this.#config.runner && this.#driver.autoStartActorDriver) {
1762
1828
  logger4().debug("starting actor driver");
1763
- const inlineClient = _chunkUAX5E3EUcjs.createClientWithDriver.call(void 0,
1829
+ const inlineClient = _chunkWYZLRPQMcjs.createClientWithDriver.call(void 0,
1764
1830
  this.#managerDriver
1765
1831
  );
1766
1832
  this.#driver.actor(this.#config, this.#managerDriver, inlineClient);
@@ -1772,7 +1838,7 @@ var Runtime = class _Runtime {
1772
1838
  const inspectorUrl = this.managerPort ? getInspectorUrl(this.#config, this.managerPort) : void 0;
1773
1839
  console.log();
1774
1840
  console.log(
1775
- ` RivetKit ${_chunkX72X7I7Tcjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1841
+ ` RivetKit ${_chunkS6F7EKC7cjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1776
1842
  );
1777
1843
  if (this.#config.namespace !== "default") {
1778
1844
  logLine("Namespace", this.#config.namespace);
@@ -1813,7 +1879,7 @@ var Registry = class {
1813
1879
  return this.#config;
1814
1880
  }
1815
1881
  parseConfig() {
1816
- return _chunkKMYFL3OLcjs.RegistryConfigSchema.parse(this.#config);
1882
+ return _chunkB5UXC4QVcjs.RegistryConfigSchema.parse(this.#config);
1817
1883
  }
1818
1884
  // Shared runtime instance
1819
1885
  #runtime;
@@ -1879,7 +1945,7 @@ var Registry = class {
1879
1945
  "autoConfigureServerless can only be configured when runnerKind is 'serverless'"
1880
1946
  );
1881
1947
  }
1882
- const isDevEnv = _chunkX72X7I7Tcjs.isDev.call(void 0, );
1948
+ const isDevEnv = _chunkS6F7EKC7cjs.isDev.call(void 0, );
1883
1949
  if (isDevEnv && config.runnerKind === "serverless") {
1884
1950
  if ((inputConfig == null ? void 0 : inputConfig.runEngine) === void 0) config.runEngine = true;
1885
1951
  if ((inputConfig == null ? void 0 : inputConfig.autoConfigureServerless) === void 0)
@@ -1892,7 +1958,7 @@ var Registry = class {
1892
1958
  }
1893
1959
  }
1894
1960
  #legacyStartServerless(config, _inputConfig) {
1895
- const client = _chunkUAX5E3EUcjs.createClient.call(void 0, {
1961
+ const client = _chunkWYZLRPQMcjs.createClient.call(void 0, {
1896
1962
  endpoint: config.endpoint,
1897
1963
  token: config.token,
1898
1964
  namespace: config.namespace,
@@ -1905,7 +1971,7 @@ var Registry = class {
1905
1971
  }
1906
1972
  #legacyStartNormal(config) {
1907
1973
  this.#ensureRuntime().then((runtime) => runtime.startRunner());
1908
- const client = _chunkUAX5E3EUcjs.createClient.call(void 0, {
1974
+ const client = _chunkWYZLRPQMcjs.createClient.call(void 0, {
1909
1975
  endpoint: config.endpoint,
1910
1976
  token: config.token,
1911
1977
  namespace: config.namespace,
@@ -1927,4 +1993,4 @@ function setup(input) {
1927
1993
 
1928
1994
 
1929
1995
  exports.actor = actor; exports.createEngineDriver = createEngineDriver; exports.Registry = Registry; exports.setup = setup;
1930
- //# sourceMappingURL=chunk-7E3RWMR6.cjs.map
1996
+ //# sourceMappingURL=chunk-4UHJ3ADW.cjs.map