rivetkit 2.0.36 → 2.0.38

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 (85) hide show
  1. package/dist/tsup/{chunk-UDKWYSU3.js → chunk-4U45T5KW.js} +6 -4
  2. package/dist/tsup/chunk-4U45T5KW.js.map +1 -0
  3. package/dist/tsup/{chunk-OYJU4B2I.cjs → chunk-6WLJW57U.cjs} +170 -95
  4. package/dist/tsup/chunk-6WLJW57U.cjs.map +1 -0
  5. package/dist/tsup/{chunk-DSPZ7BZN.js → chunk-EEL32AJM.js} +145 -94
  6. package/dist/tsup/chunk-EEL32AJM.js.map +1 -0
  7. package/dist/tsup/{chunk-EO5JABFU.js → chunk-FA6FGAEC.js} +83 -8
  8. package/dist/tsup/chunk-FA6FGAEC.js.map +1 -0
  9. package/dist/tsup/{chunk-65O3MUPO.cjs → chunk-FZQHTGQX.cjs} +9 -9
  10. package/dist/tsup/{chunk-65O3MUPO.cjs.map → chunk-FZQHTGQX.cjs.map} +1 -1
  11. package/dist/tsup/{chunk-VIUUUBXQ.cjs → chunk-GFKZZG2A.cjs} +3 -3
  12. package/dist/tsup/{chunk-VIUUUBXQ.cjs.map → chunk-GFKZZG2A.cjs.map} +1 -1
  13. package/dist/tsup/{chunk-7EGXCVJL.cjs → chunk-IRTVRBJA.cjs} +46 -46
  14. package/dist/tsup/{chunk-7EGXCVJL.cjs.map → chunk-IRTVRBJA.cjs.map} +1 -1
  15. package/dist/tsup/{chunk-6TLJAB64.cjs → chunk-IWXMFQDT.cjs} +115 -76
  16. package/dist/tsup/chunk-IWXMFQDT.cjs.map +1 -0
  17. package/dist/tsup/{chunk-Z5CSXFVY.js → chunk-K2RNF2ZR.js} +5 -5
  18. package/dist/tsup/{chunk-RTSLQIZ5.cjs → chunk-LULP6HM2.cjs} +386 -335
  19. package/dist/tsup/chunk-LULP6HM2.cjs.map +1 -0
  20. package/dist/tsup/{chunk-KJLJLNHR.js → chunk-MIOU6BF3.js} +59 -20
  21. package/dist/tsup/chunk-MIOU6BF3.js.map +1 -0
  22. package/dist/tsup/{chunk-WRYYREBN.cjs → chunk-O433HWWG.cjs} +6 -4
  23. package/dist/tsup/chunk-O433HWWG.cjs.map +1 -0
  24. package/dist/tsup/{chunk-X5GKJWTG.js → chunk-UUEZVDRL.js} +4 -4
  25. package/dist/tsup/{chunk-D35UUQOR.js → chunk-WIZ4JGP6.js} +2 -2
  26. package/dist/tsup/client/mod.cjs +5 -5
  27. package/dist/tsup/client/mod.d.cts +2 -2
  28. package/dist/tsup/client/mod.d.ts +2 -2
  29. package/dist/tsup/client/mod.js +4 -4
  30. package/dist/tsup/common/log.cjs +2 -2
  31. package/dist/tsup/common/log.js +1 -1
  32. package/dist/tsup/common/websocket.cjs +3 -3
  33. package/dist/tsup/common/websocket.js +2 -2
  34. package/dist/tsup/{config-CRuzI6n4.d.ts → config-CbIHPGKl.d.ts} +167 -56
  35. package/dist/tsup/{config--NjwiYlS.d.cts → config-CwJCQyP1.d.cts} +167 -56
  36. package/dist/tsup/{driver-BcmckRaF.d.ts → driver-CMN823Lc.d.ts} +1 -1
  37. package/dist/tsup/{driver-yKjYx9Yy.d.cts → driver-Lw_oORox.d.cts} +1 -1
  38. package/dist/tsup/driver-helpers/mod.cjs +3 -3
  39. package/dist/tsup/driver-helpers/mod.d.cts +2 -2
  40. package/dist/tsup/driver-helpers/mod.d.ts +2 -2
  41. package/dist/tsup/driver-helpers/mod.js +2 -2
  42. package/dist/tsup/driver-test-suite/mod.cjs +34 -34
  43. package/dist/tsup/driver-test-suite/mod.d.cts +2 -2
  44. package/dist/tsup/driver-test-suite/mod.d.ts +2 -2
  45. package/dist/tsup/driver-test-suite/mod.js +7 -7
  46. package/dist/tsup/mod.cjs +17 -7
  47. package/dist/tsup/mod.cjs.map +1 -1
  48. package/dist/tsup/mod.d.cts +4 -4
  49. package/dist/tsup/mod.d.ts +4 -4
  50. package/dist/tsup/mod.js +16 -6
  51. package/dist/tsup/test/mod.cjs +7 -7
  52. package/dist/tsup/test/mod.d.cts +1 -1
  53. package/dist/tsup/test/mod.d.ts +1 -1
  54. package/dist/tsup/test/mod.js +6 -6
  55. package/dist/tsup/utils.cjs +2 -2
  56. package/dist/tsup/utils.js +1 -1
  57. package/package.json +7 -5
  58. package/src/actor/config.ts +47 -0
  59. package/src/client/actor-conn.ts +70 -81
  60. package/src/client/actor-handle.ts +22 -12
  61. package/src/client/actor-query.ts +47 -0
  62. package/src/client/config.ts +6 -4
  63. package/src/client/errors.ts +22 -58
  64. package/src/client/utils.ts +33 -0
  65. package/src/engine-process/constants.ts +1 -1
  66. package/src/engine-process/mod.ts +1 -1
  67. package/src/inspector/utils.ts +1 -1
  68. package/src/manager/driver.ts +1 -3
  69. package/src/manager-api/actors.ts +1 -20
  70. package/src/registry/config/index.ts +71 -3
  71. package/src/remote-manager-driver/mod.ts +11 -1
  72. package/src/serverless/router.test.ts +299 -0
  73. package/src/serverless/router.ts +93 -1
  74. package/src/utils/env-vars.ts +4 -1
  75. package/dist/tsup/chunk-6TLJAB64.cjs.map +0 -1
  76. package/dist/tsup/chunk-DSPZ7BZN.js.map +0 -1
  77. package/dist/tsup/chunk-EO5JABFU.js.map +0 -1
  78. package/dist/tsup/chunk-KJLJLNHR.js.map +0 -1
  79. package/dist/tsup/chunk-OYJU4B2I.cjs.map +0 -1
  80. package/dist/tsup/chunk-RTSLQIZ5.cjs.map +0 -1
  81. package/dist/tsup/chunk-UDKWYSU3.js.map +0 -1
  82. package/dist/tsup/chunk-WRYYREBN.cjs.map +0 -1
  83. /package/dist/tsup/{chunk-Z5CSXFVY.js.map → chunk-K2RNF2ZR.js.map} +0 -0
  84. /package/dist/tsup/{chunk-X5GKJWTG.js.map → chunk-UUEZVDRL.js.map} +0 -0
  85. /package/dist/tsup/{chunk-D35UUQOR.js.map → chunk-WIZ4JGP6.js.map} +0 -0
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- var _chunk7EGXCVJLcjs = require('./chunk-7EGXCVJL.cjs');
13
+ var _chunkIRTVRBJAcjs = require('./chunk-IRTVRBJA.cjs');
14
14
 
15
15
 
16
16
 
@@ -23,7 +23,7 @@ var _chunk7EGXCVJLcjs = require('./chunk-7EGXCVJL.cjs');
23
23
 
24
24
 
25
25
 
26
- var _chunkRTSLQIZ5cjs = require('./chunk-RTSLQIZ5.cjs');
26
+ var _chunkLULP6HM2cjs = require('./chunk-LULP6HM2.cjs');
27
27
 
28
28
 
29
29
 
@@ -47,7 +47,7 @@ var _chunkRTSLQIZ5cjs = require('./chunk-RTSLQIZ5.cjs');
47
47
 
48
48
 
49
49
 
50
- var _chunk6TLJAB64cjs = require('./chunk-6TLJAB64.cjs');
50
+ var _chunkIWXMFQDTcjs = require('./chunk-IWXMFQDT.cjs');
51
51
 
52
52
 
53
53
 
@@ -65,7 +65,7 @@ var _chunk6TLJAB64cjs = require('./chunk-6TLJAB64.cjs');
65
65
 
66
66
 
67
67
 
68
- var _chunkWRYYREBNcjs = require('./chunk-WRYYREBN.cjs');
68
+ var _chunkO433HWWGcjs = require('./chunk-O433HWWG.cjs');
69
69
 
70
70
 
71
71
 
@@ -142,11 +142,48 @@ var ActorConfigSchema = _zod.z.object({
142
142
  path: ["vars"]
143
143
  }
144
144
  );
145
+ var DocActorOptionsSchema = _zod.z.object({
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"),
148
+ 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"),
150
+ 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"),
152
+ 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"),
156
+ 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")
159
+ }).describe("Actor options for timeouts and behavior configuration.");
160
+ 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."),
167
+ 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."),
169
+ 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."),
174
+ onConnect: _zod.z.unknown().optional().describe("Called when a client successfully connects."),
175
+ 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."),
180
+ options: DocActorOptionsSchema.optional()
181
+ }).describe("Actor configuration passed to the actor() function.");
145
182
 
146
183
  // src/actor/mod.ts
147
184
  function actor(input) {
148
185
  const config = ActorConfigSchema.parse(input);
149
- return new (0, _chunkRTSLQIZ5cjs.ActorDefinition)(config);
186
+ return new (0, _chunkLULP6HM2cjs.ActorDefinition)(config);
150
187
  }
151
188
 
152
189
  // src/drivers/engine/actor-driver.ts
@@ -158,7 +195,7 @@ var _invariant = require('invariant'); var _invariant2 = _interopRequireDefault(
158
195
 
159
196
  // src/drivers/engine/log.ts
160
197
  function logger() {
161
- return _chunkWRYYREBNcjs.getLogger.call(void 0, "driver-engine");
198
+ return _chunkO433HWWGcjs.getLogger.call(void 0, "driver-engine");
162
199
  }
163
200
 
164
201
  // src/drivers/engine/actor-driver.ts
@@ -172,8 +209,8 @@ var EngineActorDriver = class {
172
209
  #runner;
173
210
  #actors = /* @__PURE__ */ new Map();
174
211
  #actorRouter;
175
- #runnerStarted = _chunkWRYYREBNcjs.promiseWithResolvers.call(void 0, );
176
- #runnerStopped = _chunkWRYYREBNcjs.promiseWithResolvers.call(void 0, );
212
+ #runnerStarted = _chunkO433HWWGcjs.promiseWithResolvers.call(void 0, );
213
+ #runnerStopped = _chunkO433HWWGcjs.promiseWithResolvers.call(void 0, );
177
214
  #isRunnerStopped = false;
178
215
  // HACK: Track actor stop intent locally since the runner protocol doesn't
179
216
  // pass the stop reason to onActorStop. This will be fixed when the runner
@@ -197,7 +234,7 @@ var EngineActorDriver = class {
197
234
  this.#managerDriver = managerDriver;
198
235
  this.#inlineClient = inlineClient;
199
236
  const token = config.token;
200
- this.#actorRouter = _chunk7EGXCVJLcjs.createActorRouter.call(void 0,
237
+ this.#actorRouter = _chunkIRTVRBJAcjs.createActorRouter.call(void 0,
201
238
  config,
202
239
  this,
203
240
  void 0,
@@ -205,16 +242,16 @@ var EngineActorDriver = class {
205
242
  );
206
243
  const engineRunnerConfig = {
207
244
  version: config.runner.version,
208
- endpoint: _chunkRTSLQIZ5cjs.getEndpoint.call(void 0, config),
245
+ endpoint: _chunkLULP6HM2cjs.getEndpoint.call(void 0, config),
209
246
  token,
210
247
  namespace: config.namespace,
211
248
  totalSlots: config.runner.totalSlots,
212
249
  runnerName: config.runner.runnerName,
213
250
  runnerKey: _nullishCoalesce(config.runner.runnerKey, () => ( crypto.randomUUID())),
214
251
  metadata: {
215
- rivetkit: { version: _chunkWRYYREBNcjs.VERSION }
252
+ rivetkit: { version: _chunkO433HWWGcjs.VERSION }
216
253
  },
217
- prepopulateActorNames: _chunk6TLJAB64cjs.buildActorNames.call(void 0, config),
254
+ prepopulateActorNames: _chunkIWXMFQDTcjs.buildActorNames.call(void 0, config),
218
255
  onConnected: () => {
219
256
  this.#runnerStarted.resolve(void 0);
220
257
  },
@@ -231,7 +268,7 @@ var EngineActorDriver = class {
231
268
  },
232
269
  onActorStart: this.#runnerOnActorStart.bind(this),
233
270
  onActorStop: this.#runnerOnActorStop.bind(this),
234
- logger: _chunkWRYYREBNcjs.getLogger.call(void 0, "engine-runner")
271
+ logger: _chunkO433HWWGcjs.getLogger.call(void 0, "engine-runner")
235
272
  };
236
273
  this.#runner = new (0, _enginerunner.Runner)(engineRunnerConfig);
237
274
  this.#runner.start();
@@ -269,7 +306,7 @@ var EngineActorDriver = class {
269
306
  handler.alarmTimeout = void 0;
270
307
  }
271
308
  const delay = Math.max(0, timestamp - Date.now());
272
- handler.alarmTimeout = _chunkWRYYREBNcjs.setLongTimeout.call(void 0, () => {
309
+ handler.alarmTimeout = _chunkO433HWWGcjs.setLongTimeout.call(void 0, () => {
273
310
  actor2.onAlarm();
274
311
  handler.alarmTimeout = void 0;
275
312
  }, delay);
@@ -341,7 +378,7 @@ var EngineActorDriver = class {
341
378
  var _a;
342
379
  (_a = handler.actor) == null ? void 0 : _a.rLog.error({
343
380
  msg: "onStop errored",
344
- error: _chunkWRYYREBNcjs.stringifyError.call(void 0, err)
381
+ error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
345
382
  });
346
383
  })
347
384
  );
@@ -399,18 +436,18 @@ var EngineActorDriver = class {
399
436
  let handler = this.#actors.get(actorId);
400
437
  if (!handler) {
401
438
  handler = {
402
- actorStartPromise: _chunkWRYYREBNcjs.promiseWithResolvers.call(void 0, )
439
+ actorStartPromise: _chunkO433HWWGcjs.promiseWithResolvers.call(void 0, )
403
440
  };
404
441
  this.#actors.set(actorId, handler);
405
442
  }
406
443
  const name = actorConfig.name;
407
444
  _invariant2.default.call(void 0, actorConfig.key, "actor should have a key");
408
- const key = _chunk6TLJAB64cjs.deserializeActorKey.call(void 0, actorConfig.key);
445
+ const key = _chunkIWXMFQDTcjs.deserializeActorKey.call(void 0, actorConfig.key);
409
446
  const [persistDataBuffer] = await this.#runner.kvGet(actorId, [
410
- _chunk6TLJAB64cjs.KEYS.PERSIST_DATA
447
+ _chunkIWXMFQDTcjs.KEYS.PERSIST_DATA
411
448
  ]);
412
449
  if (persistDataBuffer === null) {
413
- const initialKvState = _chunk6TLJAB64cjs.getInitialActorKvState.call(void 0, input);
450
+ const initialKvState = _chunkIWXMFQDTcjs.getInitialActorKvState.call(void 0, input);
414
451
  await this.#runner.kvPut(actorId, initialKvState);
415
452
  logger().debug({
416
453
  msg: "initialized persist data for new actor",
@@ -423,7 +460,7 @@ var EngineActorDriver = class {
423
460
  dataSize: persistDataBuffer.byteLength
424
461
  });
425
462
  }
426
- const definition = _chunkRTSLQIZ5cjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
463
+ const definition = _chunkLULP6HM2cjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
427
464
  handler.actor = definition.instantiate();
428
465
  await handler.actor.start(
429
466
  this,
@@ -447,7 +484,7 @@ var EngineActorDriver = class {
447
484
  } catch (err) {
448
485
  logger().error({
449
486
  msg: "error in onStop, proceeding with removing actor",
450
- err: _chunkWRYYREBNcjs.stringifyError.call(void 0, err)
487
+ err: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
451
488
  });
452
489
  }
453
490
  this.#actors.delete(actorId);
@@ -480,10 +517,10 @@ var EngineActorDriver = class {
480
517
  websocketProps: websocketRaw ? Object.keys(websocketRaw).join(", ") : "null"
481
518
  });
482
519
  const protocols = request.headers.get("sec-websocket-protocol");
483
- const { encoding, connParams } = _chunk6TLJAB64cjs.parseWebSocketProtocols.call(void 0, protocols);
520
+ const { encoding, connParams } = _chunkIWXMFQDTcjs.parseWebSocketProtocols.call(void 0, protocols);
484
521
  let wsHandler;
485
522
  try {
486
- wsHandler = await _chunk6TLJAB64cjs.routeWebSocket.call(void 0,
523
+ wsHandler = await _chunkIWXMFQDTcjs.routeWebSocket.call(void 0,
487
524
  request,
488
525
  requestPath,
489
526
  requestHeaders,
@@ -506,7 +543,7 @@ var EngineActorDriver = class {
506
543
  const wsContext = new (0, _ws.WSContext)(websocket);
507
544
  const conn = wsHandler.conn;
508
545
  const actor2 = wsHandler.actor;
509
- const connStateManager = conn == null ? void 0 : conn[_chunk6TLJAB64cjs.CONN_STATE_MANAGER_SYMBOL];
546
+ const connStateManager = conn == null ? void 0 : conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
510
547
  logger().debug({
511
548
  msg: "attaching websocket event listeners",
512
549
  actorId,
@@ -566,7 +603,7 @@ var EngineActorDriver = class {
566
603
  });
567
604
  const entry = this.#hwsMessageIndex.get(conn.id);
568
605
  if (entry) {
569
- const messageLength = _chunk6TLJAB64cjs.getValueLength.call(void 0, event.data);
606
+ const messageLength = _chunkIWXMFQDTcjs.getValueLength.call(void 0, event.data);
570
607
  entry.bufferedMessageSize += messageLength;
571
608
  if (entry.bufferedMessageSize >= CONN_BUFFERED_MESSAGE_SIZE_THRESHOLD) {
572
609
  entry.bufferedMessageSize = 0;
@@ -637,10 +674,10 @@ var EngineActorDriver = class {
637
674
  gatewayId: _enginerunner.idToStr.call(void 0, gatewayId),
638
675
  requestId: _enginerunner.idToStr.call(void 0, requestId)
639
676
  });
640
- if (path === _chunk6TLJAB64cjs.PATH_CONNECT) {
677
+ if (path === _chunkIWXMFQDTcjs.PATH_CONNECT) {
641
678
  return true;
642
- } else if (path === _chunk6TLJAB64cjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunk6TLJAB64cjs.PATH_WEBSOCKET_PREFIX)) {
643
- const definition = _chunkRTSLQIZ5cjs.lookupInRegistry.call(void 0,
679
+ } else if (path === _chunkIWXMFQDTcjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunkIWXMFQDTcjs.PATH_WEBSOCKET_PREFIX)) {
680
+ const definition = _chunkLULP6HM2cjs.lookupInRegistry.call(void 0,
644
681
  this.#config,
645
682
  actorInstance.config.name
646
683
  );
@@ -649,7 +686,7 @@ var EngineActorDriver = class {
649
686
  return true;
650
687
  } else if (typeof canHibernateWebSocket === "function") {
651
688
  try {
652
- const newPath = _chunk6TLJAB64cjs.truncateRawWebSocketPathPrefix.call(void 0,
689
+ const newPath = _chunkIWXMFQDTcjs.truncateRawWebSocketPathPrefix.call(void 0,
653
690
  url.pathname
654
691
  );
655
692
  const truncatedRequest = new Request(
@@ -668,7 +705,7 @@ var EngineActorDriver = class {
668
705
  } else {
669
706
  return false;
670
707
  }
671
- } else if (path === _chunk6TLJAB64cjs.PATH_INSPECTOR_CONNECT) {
708
+ } else if (path === _chunkIWXMFQDTcjs.PATH_INSPECTOR_CONNECT) {
672
709
  return false;
673
710
  } else {
674
711
  logger().warn({
@@ -681,7 +718,7 @@ var EngineActorDriver = class {
681
718
  async #hwsLoadAll(actorId) {
682
719
  const actor2 = await this.loadActor(actorId);
683
720
  return actor2.conns.values().map((conn) => {
684
- const connStateManager = conn[_chunk6TLJAB64cjs.CONN_STATE_MANAGER_SYMBOL];
721
+ const connStateManager = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
685
722
  const hibernatable = connStateManager.hibernatableData;
686
723
  if (!hibernatable) return void 0;
687
724
  return {
@@ -704,7 +741,7 @@ var EngineActorDriver = class {
704
741
  await this.#runner.restoreHibernatingRequests(actor2.id, metaEntries);
705
742
  }
706
743
  onCreateConn(conn) {
707
- const hibernatable = conn[_chunk6TLJAB64cjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
744
+ const hibernatable = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
708
745
  if (!hibernatable) return;
709
746
  this.#hwsMessageIndex.set(conn.id, {
710
747
  serverMessageIndex: hibernatable.serverMessageIndex,
@@ -726,7 +763,7 @@ var EngineActorDriver = class {
726
763
  });
727
764
  }
728
765
  onBeforePersistConn(conn) {
729
- const stateManager = conn[_chunk6TLJAB64cjs.CONN_STATE_MANAGER_SYMBOL];
766
+ const stateManager = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
730
767
  const hibernatable = stateManager.hibernatableDataOrError();
731
768
  const entry = this.#hwsMessageIndex.get(conn.id);
732
769
  if (!entry) {
@@ -740,7 +777,7 @@ var EngineActorDriver = class {
740
777
  entry.serverMessageIndex = hibernatable.serverMessageIndex;
741
778
  }
742
779
  onAfterPersistConn(conn) {
743
- const stateManager = conn[_chunk6TLJAB64cjs.CONN_STATE_MANAGER_SYMBOL];
780
+ const stateManager = conn[_chunkIWXMFQDTcjs.CONN_STATE_MANAGER_SYMBOL];
744
781
  const hibernatable = stateManager.hibernatableDataOrError();
745
782
  const entry = this.#hwsMessageIndex.get(conn.id);
746
783
  if (!entry) {
@@ -765,9 +802,9 @@ var EngineActorDriver = class {
765
802
 
766
803
  // src/drivers/engine/config.ts
767
804
 
768
- var EngineConfigSchemaBase = _chunkRTSLQIZ5cjs.ClientConfigSchemaBase.extend({
805
+ var EngineConfigSchemaBase = _chunkLULP6HM2cjs.ClientConfigSchemaBase.extend({
769
806
  /** Unique key for this runner. Runners connecting a given key will replace any other runner connected with the same key. */
770
- runnerKey: _zod.z.string().optional().transform((val) => _nullishCoalesce(val, () => ( _chunkWRYYREBNcjs.getRivetRunnerKey.call(void 0, )))),
807
+ runnerKey: _zod.z.string().optional().transform((val) => _nullishCoalesce(val, () => ( _chunkO433HWWGcjs.getRivetRunnerKey.call(void 0, )))),
771
808
  /** How many actors this runner can run. */
772
809
  totalSlots: _zod.z.number().default(1e5)
773
810
  });
@@ -779,7 +816,7 @@ var EngineConfigSchema = EngineConfigSchemaTransformed.default(
779
816
  );
780
817
  function transformEngineConfig(config, ctx) {
781
818
  return {
782
- ..._chunkRTSLQIZ5cjs.transformClientConfig.call(void 0, config, ctx),
819
+ ..._chunkLULP6HM2cjs.transformClientConfig.call(void 0, config, ctx),
783
820
  runnerKey: config.runnerKey
784
821
  };
785
822
  }
@@ -790,8 +827,8 @@ function createEngineDriver() {
790
827
  name: "engine",
791
828
  displayName: "Engine",
792
829
  manager: (config) => {
793
- const clientConfig = _chunkRTSLQIZ5cjs.convertRegistryConfigToClientConfig.call(void 0, config);
794
- return new (0, _chunkRTSLQIZ5cjs.RemoteManagerDriver)(clientConfig);
830
+ const clientConfig = _chunkLULP6HM2cjs.convertRegistryConfigToClientConfig.call(void 0, config);
831
+ return new (0, _chunkLULP6HM2cjs.RemoteManagerDriver)(clientConfig);
795
832
  },
796
833
  actor: (config, managerDriver, inlineClient) => {
797
834
  return new EngineActorDriver(
@@ -819,15 +856,15 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
819
856
  /** @experimental */
820
857
  maxOutgoingMessageSize: _zod.z.number().optional().default(1048576),
821
858
  /** @experimental */
822
- inspector: _chunk6TLJAB64cjs.InspectorConfigSchema,
859
+ inspector: _chunkIWXMFQDTcjs.InspectorConfigSchema,
823
860
  /** @experimental */
824
861
  disableDefaultServer: _zod.z.boolean().optional().default(false),
825
862
  /** @experimental */
826
863
  defaultServerPort: _zod.z.number().default(6420),
827
864
  /** @experimental */
828
- runEngine: _zod.z.boolean().optional().default(() => _chunkWRYYREBNcjs.getRivetRunEngine.call(void 0, )),
865
+ runEngine: _zod.z.boolean().optional().default(() => _chunkO433HWWGcjs.getRivetRunEngine.call(void 0, )),
829
866
  /** @experimental */
830
- runEngineVersion: _zod.z.string().optional().default(() => _nullishCoalesce(_chunkWRYYREBNcjs.getRivetRunEngineVersion.call(void 0, ), () => ( _chunkWRYYREBNcjs.VERSION))),
867
+ runEngineVersion: _zod.z.string().optional().default(() => _nullishCoalesce(_chunkO433HWWGcjs.getRivetRunEngineVersion.call(void 0, ), () => ( _chunkO433HWWGcjs.VERSION))),
831
868
  /** @experimental */
832
869
  overrideServerAddress: _zod.z.string().optional(),
833
870
  /** @experimental */
@@ -839,7 +876,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
839
876
  * serverlessly (by the Rivet Engine for example).
840
877
  */
841
878
  runnerKind: _zod.z.enum(["serverless", "normal"]).optional().default(
842
- () => _chunkWRYYREBNcjs.getRivetRunnerKind.call(void 0, ) === "serverless" ? "serverless" : "normal"
879
+ () => _chunkO433HWWGcjs.getRivetRunnerKind.call(void 0, ) === "serverless" ? "serverless" : "normal"
843
880
  ),
844
881
  totalSlots: _zod.z.number().optional(),
845
882
  /**
@@ -861,7 +898,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
861
898
  * */
862
899
  logging: _zod.z.object({
863
900
  baseLogger: _zod.z.custom().optional(),
864
- level: _chunkWRYYREBNcjs.LogLevelSchema.optional()
901
+ level: _chunkO433HWWGcjs.LogLevelSchema.optional()
865
902
  }).optional().default(() => ({})),
866
903
  /**
867
904
  * @experimental
@@ -889,7 +926,7 @@ var LegacyRunnerConfigSchemaUnmerged = _zod.z.object({
889
926
  // created or must be imported async using `await import(...)`
890
927
  getUpgradeWebSocket: _zod.z.custom().optional(),
891
928
  /** @experimental */
892
- token: _zod.z.string().optional().transform((v) => v || _chunkWRYYREBNcjs.getRivetToken.call(void 0, ))
929
+ token: _zod.z.string().optional().transform((v) => v || _chunkO433HWWGcjs.getRivetToken.call(void 0, ))
893
930
  }).merge(EngineConfigSchemaBase);
894
931
  var LegacyRunnerConfigSchemaTransformed = LegacyRunnerConfigSchemaUnmerged.transform((config, ctx) => ({
895
932
  ...config,
@@ -913,38 +950,38 @@ function chooseDefaultDriver(config) {
913
950
  return config.driver;
914
951
  }
915
952
  if (config.endpoint || config.token) {
916
- _chunk6TLJAB64cjs.loggerWithoutContext.call(void 0, ).debug({
953
+ _chunkIWXMFQDTcjs.loggerWithoutContext.call(void 0, ).debug({
917
954
  msg: "using rivet engine driver",
918
955
  endpoint: config.endpoint
919
956
  });
920
957
  return createEngineDriver();
921
958
  }
922
- _chunk6TLJAB64cjs.loggerWithoutContext.call(void 0, ).debug({ msg: "using default file system driver" });
923
- return _chunk7EGXCVJLcjs.createFileSystemOrMemoryDriver.call(void 0, true);
959
+ _chunkIWXMFQDTcjs.loggerWithoutContext.call(void 0, ).debug({ msg: "using default file system driver" });
960
+ return _chunkIRTVRBJAcjs.createFileSystemOrMemoryDriver.call(void 0, true);
924
961
  }
925
962
 
926
963
  // src/engine-process/log.ts
927
964
  function logger2() {
928
- return _chunkWRYYREBNcjs.getLogger.call(void 0, "engine-process");
965
+ return _chunkO433HWWGcjs.getLogger.call(void 0, "engine-process");
929
966
  }
930
967
 
931
968
  // src/engine-process/mod.ts
932
969
  var ENGINE_BASE_URL = "https://releases.rivet.dev/rivet";
933
970
  var ENGINE_BINARY_NAME = "rivet-engine";
934
971
  async function ensureEngineProcess(options) {
935
- _chunk7EGXCVJLcjs.importNodeDependencies.call(void 0, );
972
+ _chunkIRTVRBJAcjs.importNodeDependencies.call(void 0, );
936
973
  logger2().debug({
937
974
  msg: "ensuring engine process",
938
975
  version: options.version
939
976
  });
940
- const path = _chunk7EGXCVJLcjs.getNodePath.call(void 0, );
941
- const storageRoot = _chunk7EGXCVJLcjs.getStoragePath.call(void 0, );
977
+ const path = _chunkIRTVRBJAcjs.getNodePath.call(void 0, );
978
+ const storageRoot = _chunkIRTVRBJAcjs.getStoragePath.call(void 0, );
942
979
  const binDir = path.join(storageRoot, "bin");
943
980
  const varDir = path.join(storageRoot, "var");
944
981
  const logsDir = path.join(varDir, "logs", "rivet-engine");
945
- await _chunk7EGXCVJLcjs.ensureDirectoryExists.call(void 0, binDir);
946
- await _chunk7EGXCVJLcjs.ensureDirectoryExists.call(void 0, varDir);
947
- await _chunk7EGXCVJLcjs.ensureDirectoryExists.call(void 0, logsDir);
982
+ await _chunkIRTVRBJAcjs.ensureDirectoryExists.call(void 0, binDir);
983
+ await _chunkIRTVRBJAcjs.ensureDirectoryExists.call(void 0, varDir);
984
+ await _chunkIRTVRBJAcjs.ensureDirectoryExists.call(void 0, logsDir);
948
985
  if (await isEngineRunning()) {
949
986
  try {
950
987
  const health = await waitForEngineHealth();
@@ -969,7 +1006,7 @@ async function ensureEngineProcess(options) {
969
1006
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/:/g, "-").replace(/\./g, "-");
970
1007
  const stdoutLogPath = path.join(logsDir, `engine-${timestamp}-stdout.log`);
971
1008
  const stderrLogPath = path.join(logsDir, `engine-${timestamp}-stderr.log`);
972
- const fsSync = _chunk7EGXCVJLcjs.getNodeFsSync.call(void 0, );
1009
+ const fsSync = _chunkIRTVRBJAcjs.getNodeFsSync.call(void 0, );
973
1010
  const stdoutStream = fsSync.createWriteStream(stdoutLogPath, {
974
1011
  flags: "a"
975
1012
  });
@@ -981,7 +1018,7 @@ async function ensureEngineProcess(options) {
981
1018
  stdout: stdoutLogPath,
982
1019
  stderr: stderrLogPath
983
1020
  });
984
- const childProcess = _chunk7EGXCVJLcjs.getNodeChildProcess.call(void 0, );
1021
+ const childProcess = _chunkIRTVRBJAcjs.getNodeChildProcess.call(void 0, );
985
1022
  const child = childProcess.spawn(binaryPath, ["start"], {
986
1023
  cwd: path.dirname(binaryPath),
987
1024
  stdio: ["inherit", "pipe", "pipe"],
@@ -1058,7 +1095,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1058
1095
  `failed to download rivet engine binary from ${downloadUrl}: ${response.status} ${response.statusText}`
1059
1096
  );
1060
1097
  }
1061
- const crypto2 = _chunk7EGXCVJLcjs.getNodeCrypto.call(void 0, );
1098
+ const crypto2 = _chunkIRTVRBJAcjs.getNodeCrypto.call(void 0, );
1062
1099
  const tempPath = `${binaryPath}.${crypto2.randomUUID()}.tmp`;
1063
1100
  const startTime = Date.now();
1064
1101
  logger2().debug({
@@ -1073,14 +1110,14 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1073
1110
  });
1074
1111
  }, 5e3);
1075
1112
  try {
1076
- const stream = _chunk7EGXCVJLcjs.getNodeStream.call(void 0, );
1077
- const fsSync = _chunk7EGXCVJLcjs.getNodeFsSync.call(void 0, );
1113
+ const stream = _chunkIRTVRBJAcjs.getNodeStream.call(void 0, );
1114
+ const fsSync = _chunkIRTVRBJAcjs.getNodeFsSync.call(void 0, );
1078
1115
  await stream.pipeline(
1079
1116
  response.body,
1080
1117
  fsSync.createWriteStream(tempPath)
1081
1118
  );
1082
1119
  clearTimeout(slowDownloadWarning);
1083
- const fs = _chunk7EGXCVJLcjs.getNodeFs.call(void 0, );
1120
+ const fs = _chunkIRTVRBJAcjs.getNodeFs.call(void 0, );
1084
1121
  const stats = await fs.stat(tempPath);
1085
1122
  const downloadDuration = Date.now() - startTime;
1086
1123
  if (process.platform !== "win32") {
@@ -1109,7 +1146,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1109
1146
  support: "https://rivet.dev/discord"
1110
1147
  });
1111
1148
  try {
1112
- const fs = _chunk7EGXCVJLcjs.getNodeFs.call(void 0, );
1149
+ const fs = _chunkIRTVRBJAcjs.getNodeFs.call(void 0, );
1113
1150
  await fs.unlink(tempPath);
1114
1151
  } catch (unlinkError) {
1115
1152
  }
@@ -1151,12 +1188,12 @@ function resolveTargetTripletFor(platform, arch) {
1151
1188
  );
1152
1189
  }
1153
1190
  async function isEngineRunning() {
1154
- return await checkIfEngineAlreadyRunningOnPort(_chunk6TLJAB64cjs.ENGINE_PORT);
1191
+ return await checkIfEngineAlreadyRunningOnPort(_chunkIWXMFQDTcjs.ENGINE_PORT);
1155
1192
  }
1156
1193
  async function checkIfEngineAlreadyRunningOnPort(port) {
1157
1194
  let response;
1158
1195
  try {
1159
- response = await fetch(`http://localhost:${port}/health`);
1196
+ response = await fetch(`http://127.0.0.1:${port}/health`);
1160
1197
  } catch (err) {
1161
1198
  return false;
1162
1199
  }
@@ -1186,7 +1223,7 @@ async function checkIfEngineAlreadyRunningOnPort(port) {
1186
1223
  }
1187
1224
  async function fileExists(filePath) {
1188
1225
  try {
1189
- const fs = _chunk7EGXCVJLcjs.getNodeFs.call(void 0, );
1226
+ const fs = _chunkIRTVRBJAcjs.getNodeFs.call(void 0, );
1190
1227
  await fs.access(filePath);
1191
1228
  return true;
1192
1229
  } catch (e) {
@@ -1200,7 +1237,7 @@ async function waitForEngineHealth() {
1200
1237
  logger2().debug({ msg: "waiting for engine health check" });
1201
1238
  for (let i = 0; i < maxRetries; i++) {
1202
1239
  try {
1203
- const response = await fetch(`${_chunk6TLJAB64cjs.ENGINE_ENDPOINT}/health`, {
1240
+ const response = await fetch(`${_chunkIWXMFQDTcjs.ENGINE_ENDPOINT}/health`, {
1204
1241
  signal: AbortSignal.timeout(1e3)
1205
1242
  });
1206
1243
  if (response.ok) {
@@ -1235,7 +1272,7 @@ var _factory = require('hono/factory');
1235
1272
  function getInspectorUrl(config, managerPort) {
1236
1273
  if (!config.inspector.enabled) return void 0;
1237
1274
  const url = new URL("https://inspect.rivet.dev");
1238
- const endpoint = _nullishCoalesce(config.inspector.defaultEndpoint, () => ( (config.managerPort !== 6420 ? `http://localhost:${managerPort}` : void 0)));
1275
+ const endpoint = _nullishCoalesce(config.inspector.defaultEndpoint, () => ( (config.managerPort !== 6420 ? `http://127.0.0.1:${managerPort}` : void 0)));
1239
1276
  if (endpoint) {
1240
1277
  url.searchParams.set("u", endpoint);
1241
1278
  }
@@ -1244,7 +1281,7 @@ function getInspectorUrl(config, managerPort) {
1244
1281
 
1245
1282
  // src/serverless/log.ts
1246
1283
  function logger3() {
1247
- return _chunkWRYYREBNcjs.getLogger.call(void 0, "serverless");
1284
+ return _chunkO433HWWGcjs.getLogger.call(void 0, "serverless");
1248
1285
  }
1249
1286
 
1250
1287
  // src/serverless/configure.ts
@@ -1264,12 +1301,12 @@ async function configureServerlessRunner(config) {
1264
1301
  }
1265
1302
  const customConfig = config.serverless.configureRunnerPool;
1266
1303
  _invariant2.default.call(void 0, customConfig, "configureRunnerPool should exist");
1267
- const clientConfig = _chunkRTSLQIZ5cjs.convertRegistryConfigToClientConfig.call(void 0, config);
1304
+ const clientConfig = _chunkLULP6HM2cjs.convertRegistryConfigToClientConfig.call(void 0, config);
1268
1305
  logger3().debug({
1269
1306
  msg: "fetching datacenters",
1270
1307
  endpoint: config.endpoint
1271
1308
  });
1272
- const dcsRes = await _chunkRTSLQIZ5cjs.getDatacenters.call(void 0, clientConfig);
1309
+ const dcsRes = await _chunkLULP6HM2cjs.getDatacenters.call(void 0, clientConfig);
1273
1310
  const runnerName = _nullishCoalesce(customConfig.name, () => ( "default"));
1274
1311
  logger3().debug({
1275
1312
  msg: "configuring serverless runner",
@@ -1288,7 +1325,7 @@ async function configureServerlessRunner(config) {
1288
1325
  },
1289
1326
  metadata: _nullishCoalesce(customConfig.metadata, () => ( {}))
1290
1327
  };
1291
- await _chunkRTSLQIZ5cjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1328
+ await _chunkLULP6HM2cjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1292
1329
  datacenters: Object.fromEntries(
1293
1330
  dcsRes.datacenters.map((dc) => [dc.name, serverlessConfig])
1294
1331
  )
@@ -1308,7 +1345,7 @@ async function configureServerlessRunner(config) {
1308
1345
 
1309
1346
  // src/registry/log.ts
1310
1347
  function logger4() {
1311
- return _chunkWRYYREBNcjs.getLogger.call(void 0, "registry");
1348
+ return _chunkO433HWWGcjs.getLogger.call(void 0, "registry");
1312
1349
  }
1313
1350
 
1314
1351
  // src/registry/serve.ts
@@ -1323,7 +1360,7 @@ async function findFreePort(startPort = DEFAULT_PORT) {
1323
1360
  return _getport2.default.call(void 0, { port: portRange(startPort) });
1324
1361
  }
1325
1362
  async function crossPlatformServe(config, managerPort, app) {
1326
- const runtime = _chunkWRYYREBNcjs.detectRuntime.call(void 0, );
1363
+ const runtime = _chunkO433HWWGcjs.detectRuntime.call(void 0, );
1327
1364
  logger4().debug({ msg: "detected runtime for serve", runtime });
1328
1365
  switch (runtime) {
1329
1366
  case "deno":
@@ -1348,7 +1385,7 @@ async function serveNode(config, managerPort, app) {
1348
1385
  } catch (err) {
1349
1386
  logger4().error({
1350
1387
  msg: "failed to import @hono/node-server. please run 'npm install @hono/node-server @hono/node-ws'",
1351
- error: _chunkWRYYREBNcjs.stringifyError.call(void 0, err)
1388
+ error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1352
1389
  });
1353
1390
  process.exit(1);
1354
1391
  }
@@ -1363,7 +1400,7 @@ async function serveNode(config, managerPort, app) {
1363
1400
  } catch (err) {
1364
1401
  logger4().error({
1365
1402
  msg: "failed to import @hono/node-ws. please run 'npm install @hono/node-server @hono/node-ws'",
1366
- error: _chunkWRYYREBNcjs.stringifyError.call(void 0, err)
1403
+ error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1367
1404
  });
1368
1405
  process.exit(1);
1369
1406
  }
@@ -1390,7 +1427,7 @@ async function serveDeno(config, managerPort, app) {
1390
1427
  } catch (err) {
1391
1428
  logger4().error({
1392
1429
  msg: "failed to import hono/deno",
1393
- error: _chunkWRYYREBNcjs.stringifyError.call(void 0, err)
1430
+ error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1394
1431
  });
1395
1432
  process.exit(1);
1396
1433
  }
@@ -1411,7 +1448,7 @@ async function serveBun(config, managerPort, app) {
1411
1448
  } catch (err) {
1412
1449
  logger4().error({
1413
1450
  msg: "failed to import hono/bun",
1414
- error: _chunkWRYYREBNcjs.stringifyError.call(void 0, err)
1451
+ error: _chunkO433HWWGcjs.stringifyError.call(void 0, err)
1415
1452
  });
1416
1453
  process.exit(1);
1417
1454
  }
@@ -1449,7 +1486,7 @@ var ServerlessStartHeadersSchema = _zod.z.object({
1449
1486
 
1450
1487
  // src/serverless/router.ts
1451
1488
  function buildServerlessRouter(driverConfig, config) {
1452
- return _chunk6TLJAB64cjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1489
+ return _chunkIWXMFQDTcjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1453
1490
  router.get("/", (c) => {
1454
1491
  return c.text(
1455
1492
  "This is a RivetKit server.\n\nLearn more at https://rivetkit.org"
@@ -1478,7 +1515,7 @@ function buildServerlessRouter(driverConfig, config) {
1478
1515
  namespace
1479
1516
  });
1480
1517
  if (config.endpoint) {
1481
- if (endpoint !== config.endpoint) {
1518
+ if (!endpointsMatch(endpoint, config.endpoint)) {
1482
1519
  throw new (0, _chunkSNAUKDDKcjs.EndpointMismatch)(config.endpoint, endpoint);
1483
1520
  }
1484
1521
  if (namespace !== config.namespace) {
@@ -1498,10 +1535,10 @@ function buildServerlessRouter(driverConfig, config) {
1498
1535
  runnerKey: void 0
1499
1536
  }
1500
1537
  };
1501
- const managerDriver = new (0, _chunkRTSLQIZ5cjs.RemoteManagerDriver)(
1502
- _chunkRTSLQIZ5cjs.convertRegistryConfigToClientConfig.call(void 0, newConfig)
1538
+ const managerDriver = new (0, _chunkLULP6HM2cjs.RemoteManagerDriver)(
1539
+ _chunkLULP6HM2cjs.convertRegistryConfigToClientConfig.call(void 0, newConfig)
1503
1540
  );
1504
- const client = _chunkRTSLQIZ5cjs.createClientWithDriver.call(void 0, managerDriver);
1541
+ const client = _chunkLULP6HM2cjs.createClientWithDriver.call(void 0, managerDriver);
1505
1542
  const actorDriver = driverConfig.actor(
1506
1543
  newConfig,
1507
1544
  managerDriver,
@@ -1513,10 +1550,10 @@ function buildServerlessRouter(driverConfig, config) {
1513
1550
  );
1514
1551
  return await actorDriver.serverlessHandleStart(c);
1515
1552
  });
1516
- router.get("/health", (c) => _chunk6TLJAB64cjs.handleHealthRequest.call(void 0, c));
1553
+ router.get("/health", (c) => _chunkIWXMFQDTcjs.handleHealthRequest.call(void 0, c));
1517
1554
  router.get(
1518
1555
  "/metadata",
1519
- (c) => _chunk6TLJAB64cjs.handleMetadataRequest.call(void 0,
1556
+ (c) => _chunkIWXMFQDTcjs.handleMetadataRequest.call(void 0,
1520
1557
  c,
1521
1558
  config,
1522
1559
  { serverless: {} },
@@ -1527,6 +1564,44 @@ function buildServerlessRouter(driverConfig, config) {
1527
1564
  );
1528
1565
  });
1529
1566
  }
1567
+ function normalizeEndpointUrl(url) {
1568
+ try {
1569
+ const parsed = new URL(url);
1570
+ const pathname = parsed.pathname === "/" ? "/" : parsed.pathname.replace(/\/+$/, "");
1571
+ let hostname = isLoopbackAddress(parsed.hostname) ? "localhost" : parsed.hostname;
1572
+ hostname = normalizeRegionalHostname(hostname);
1573
+ const host = parsed.port ? `${hostname}:${parsed.port}` : hostname;
1574
+ return `${parsed.protocol}//${host}${pathname}`;
1575
+ } catch (e2) {
1576
+ return null;
1577
+ }
1578
+ }
1579
+ function normalizeRegionalHostname(hostname) {
1580
+ if (!hostname.endsWith(".rivet.dev")) {
1581
+ return hostname;
1582
+ }
1583
+ if (!hostname.startsWith("api-")) {
1584
+ return hostname;
1585
+ }
1586
+ const withoutPrefix = hostname.slice(4);
1587
+ const firstDotIndex = withoutPrefix.indexOf(".");
1588
+ if (firstDotIndex === -1) {
1589
+ return hostname;
1590
+ }
1591
+ const domain = withoutPrefix.slice(firstDotIndex + 1);
1592
+ return `api.${domain}`;
1593
+ }
1594
+ function endpointsMatch(a, b) {
1595
+ const normalizedA = normalizeEndpointUrl(a);
1596
+ const normalizedB = normalizeEndpointUrl(b);
1597
+ if (normalizedA === null || normalizedB === null) {
1598
+ return a === b;
1599
+ }
1600
+ return normalizedA === normalizedB;
1601
+ }
1602
+ function isLoopbackAddress(hostname) {
1603
+ return hostname === "127.0.0.1" || hostname === "0.0.0.0" || hostname === "::1" || hostname === "[::1]";
1604
+ }
1530
1605
 
1531
1606
  // runtime/index.ts
1532
1607
  function logLine(label, value) {
@@ -1563,9 +1638,9 @@ var Runtime = class _Runtime {
1563
1638
  logger4().info("rivetkit starting");
1564
1639
  const config = registry.parseConfig();
1565
1640
  if ((_a = config.logging) == null ? void 0 : _a.baseLogger) {
1566
- _chunkWRYYREBNcjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1641
+ _chunkO433HWWGcjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1567
1642
  } else {
1568
- _chunkWRYYREBNcjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1643
+ _chunkO433HWWGcjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1569
1644
  }
1570
1645
  _invariant2.default.call(void 0,
1571
1646
  !(config.serverless.spawnEngine && config.serveManager),
@@ -1575,7 +1650,7 @@ var Runtime = class _Runtime {
1575
1650
  const managerDriver = driver.manager(config);
1576
1651
  let managerPort;
1577
1652
  if (config.serverless.spawnEngine) {
1578
- managerPort = _chunk6TLJAB64cjs.ENGINE_PORT;
1653
+ managerPort = _chunkIWXMFQDTcjs.ENGINE_PORT;
1579
1654
  logger4().debug({
1580
1655
  msg: "spawning engine",
1581
1656
  version: config.serverless.engineVersion
@@ -1587,7 +1662,7 @@ var Runtime = class _Runtime {
1587
1662
  let upgradeWebSocket;
1588
1663
  const getUpgradeWebSocket = () => upgradeWebSocket;
1589
1664
  managerDriver.setGetUpgradeWebSocket(getUpgradeWebSocket);
1590
- const { router: managerRouter } = _chunk6TLJAB64cjs.buildManagerRouter.call(void 0,
1665
+ const { router: managerRouter } = _chunkIWXMFQDTcjs.buildManagerRouter.call(void 0,
1591
1666
  config,
1592
1667
  managerDriver,
1593
1668
  getUpgradeWebSocket
@@ -1639,7 +1714,7 @@ var Runtime = class _Runtime {
1639
1714
  this.#startKind = "runner";
1640
1715
  if (this.#config.runner && this.#driver.autoStartActorDriver) {
1641
1716
  logger4().debug("starting actor driver");
1642
- const inlineClient = _chunkRTSLQIZ5cjs.createClientWithDriver.call(void 0,
1717
+ const inlineClient = _chunkLULP6HM2cjs.createClientWithDriver.call(void 0,
1643
1718
  this.#managerDriver
1644
1719
  );
1645
1720
  this.#driver.actor(this.#config, this.#managerDriver, inlineClient);
@@ -1651,7 +1726,7 @@ var Runtime = class _Runtime {
1651
1726
  const inspectorUrl = this.managerPort ? getInspectorUrl(this.#config, this.managerPort) : void 0;
1652
1727
  console.log();
1653
1728
  console.log(
1654
- ` RivetKit ${_chunkWRYYREBNcjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1729
+ ` RivetKit ${_chunkO433HWWGcjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1655
1730
  );
1656
1731
  if (this.#config.namespace !== "default") {
1657
1732
  logLine("Namespace", this.#config.namespace);
@@ -1692,7 +1767,7 @@ var Registry = class {
1692
1767
  return this.#config;
1693
1768
  }
1694
1769
  parseConfig() {
1695
- return _chunk6TLJAB64cjs.RegistryConfigSchema.parse(this.#config);
1770
+ return _chunkIWXMFQDTcjs.RegistryConfigSchema.parse(this.#config);
1696
1771
  }
1697
1772
  // Shared runtime instance
1698
1773
  #runtime;
@@ -1758,7 +1833,7 @@ var Registry = class {
1758
1833
  "autoConfigureServerless can only be configured when runnerKind is 'serverless'"
1759
1834
  );
1760
1835
  }
1761
- const isDevEnv = _chunkWRYYREBNcjs.isDev.call(void 0, );
1836
+ const isDevEnv = _chunkO433HWWGcjs.isDev.call(void 0, );
1762
1837
  if (isDevEnv && config.runnerKind === "serverless") {
1763
1838
  if ((inputConfig == null ? void 0 : inputConfig.runEngine) === void 0) config.runEngine = true;
1764
1839
  if ((inputConfig == null ? void 0 : inputConfig.autoConfigureServerless) === void 0)
@@ -1771,7 +1846,7 @@ var Registry = class {
1771
1846
  }
1772
1847
  }
1773
1848
  #legacyStartServerless(config, _inputConfig) {
1774
- const client = _chunkRTSLQIZ5cjs.createClient.call(void 0, {
1849
+ const client = _chunkLULP6HM2cjs.createClient.call(void 0, {
1775
1850
  endpoint: config.endpoint,
1776
1851
  token: config.token,
1777
1852
  namespace: config.namespace,
@@ -1784,7 +1859,7 @@ var Registry = class {
1784
1859
  }
1785
1860
  #legacyStartNormal(config) {
1786
1861
  this.#ensureRuntime().then((runtime) => runtime.startRunner());
1787
- const client = _chunkRTSLQIZ5cjs.createClient.call(void 0, {
1862
+ const client = _chunkLULP6HM2cjs.createClient.call(void 0, {
1788
1863
  endpoint: config.endpoint,
1789
1864
  token: config.token,
1790
1865
  namespace: config.namespace,
@@ -1806,4 +1881,4 @@ function setup(input) {
1806
1881
 
1807
1882
 
1808
1883
  exports.actor = actor; exports.createEngineDriver = createEngineDriver; exports.Registry = Registry; exports.setup = setup;
1809
- //# sourceMappingURL=chunk-OYJU4B2I.cjs.map
1884
+ //# sourceMappingURL=chunk-6WLJW57U.cjs.map