rivetkit 2.0.13 → 2.0.15

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 (111) hide show
  1. package/dist/tsup/actor/errors.cjs +2 -2
  2. package/dist/tsup/actor/errors.d.cts +0 -8
  3. package/dist/tsup/actor/errors.d.ts +0 -8
  4. package/dist/tsup/actor/errors.js +1 -1
  5. package/dist/tsup/{chunk-W5AMA5MD.js → chunk-7MDKUHE4.js} +147 -145
  6. package/dist/tsup/chunk-7MDKUHE4.js.map +1 -0
  7. package/dist/tsup/{chunk-QLCMNNEA.js → chunk-AMLE3HUH.js} +2 -2
  8. package/dist/tsup/{chunk-QVMIMEYZ.cjs → chunk-BPQTS4VW.cjs} +274 -272
  9. package/dist/tsup/chunk-BPQTS4VW.cjs.map +1 -0
  10. package/dist/tsup/{chunk-SDB3B7ZO.js → chunk-BTEDNZSI.js} +2 -2
  11. package/dist/tsup/{chunk-2ALBSAT7.cjs → chunk-C66P3AU6.cjs} +10 -10
  12. package/dist/tsup/{chunk-2ALBSAT7.cjs.map → chunk-C66P3AU6.cjs.map} +1 -1
  13. package/dist/tsup/{chunk-HASQHAZF.cjs → chunk-CJJW2HVJ.cjs} +12 -12
  14. package/dist/tsup/{chunk-HASQHAZF.cjs.map → chunk-CJJW2HVJ.cjs.map} +1 -1
  15. package/dist/tsup/{chunk-XW5IS7NH.js → chunk-FUF4YPTZ.js} +2 -2
  16. package/dist/tsup/{chunk-YPZFLUO6.js → chunk-G64QUEDJ.js} +1 -11
  17. package/dist/tsup/chunk-G64QUEDJ.js.map +1 -0
  18. package/dist/tsup/{chunk-Y5JPI3EV.js → chunk-HMGH3AWC.js} +8 -6
  19. package/dist/tsup/chunk-HMGH3AWC.js.map +1 -0
  20. package/dist/tsup/{chunk-E7CPGIQE.js → chunk-IESTGXF3.js} +3 -3
  21. package/dist/tsup/{chunk-5QGQK44L.cjs → chunk-KSRXX3Z4.cjs} +1 -11
  22. package/dist/tsup/chunk-KSRXX3Z4.cjs.map +1 -0
  23. package/dist/tsup/{chunk-5VER7GR2.cjs → chunk-NRYLXYDB.cjs} +6 -6
  24. package/dist/tsup/{chunk-5VER7GR2.cjs.map → chunk-NRYLXYDB.cjs.map} +1 -1
  25. package/dist/tsup/{chunk-PL46WM3W.cjs → chunk-PBAZ6FDY.cjs} +3 -3
  26. package/dist/tsup/{chunk-PL46WM3W.cjs.map → chunk-PBAZ6FDY.cjs.map} +1 -1
  27. package/dist/tsup/{chunk-V4GFUBOJ.cjs → chunk-QLIJ6I3M.cjs} +3 -3
  28. package/dist/tsup/{chunk-V4GFUBOJ.cjs.map → chunk-QLIJ6I3M.cjs.map} +1 -1
  29. package/dist/tsup/{chunk-HBRZOISM.cjs → chunk-RQRDBVMA.cjs} +8 -8
  30. package/dist/tsup/{chunk-HBRZOISM.cjs.map → chunk-RQRDBVMA.cjs.map} +1 -1
  31. package/dist/tsup/{chunk-PKH3YCMG.cjs → chunk-T7MZMA5D.cjs} +17 -13
  32. package/dist/tsup/chunk-T7MZMA5D.cjs.map +1 -0
  33. package/dist/tsup/{chunk-WFADCZPK.js → chunk-TD5RNAZU.js} +2 -2
  34. package/dist/tsup/{chunk-W76ULFDH.js → chunk-U7ZDMHVJ.js} +104 -17
  35. package/dist/tsup/chunk-U7ZDMHVJ.js.map +1 -0
  36. package/dist/tsup/{chunk-IZKFTUF7.js → chunk-UBBJE54L.js} +3 -3
  37. package/dist/tsup/{chunk-IZKFTUF7.js.map → chunk-UBBJE54L.js.map} +1 -1
  38. package/dist/tsup/{chunk-QBDLQRFN.cjs → chunk-UWGWDHYS.cjs} +321 -234
  39. package/dist/tsup/{chunk-W76ULFDH.js.map → chunk-UWGWDHYS.cjs.map} +1 -1
  40. package/dist/tsup/{chunk-4LAWCEKE.cjs → chunk-WMEMX7ND.cjs} +7 -7
  41. package/dist/tsup/{chunk-4LAWCEKE.cjs.map → chunk-WMEMX7ND.cjs.map} +1 -1
  42. package/dist/tsup/{chunk-T33JFOMB.cjs → chunk-XR6ZIZEK.cjs} +34 -32
  43. package/dist/tsup/chunk-XR6ZIZEK.cjs.map +1 -0
  44. package/dist/tsup/{chunk-YCQL4TJR.js → chunk-YAUIBXG3.js} +4 -4
  45. package/dist/tsup/{chunk-CL67HHVB.js → chunk-ZT77CQXR.js} +11 -7
  46. package/dist/tsup/chunk-ZT77CQXR.js.map +1 -0
  47. package/dist/tsup/client/mod.cjs +10 -10
  48. package/dist/tsup/client/mod.d.cts +2 -2
  49. package/dist/tsup/client/mod.d.ts +2 -2
  50. package/dist/tsup/client/mod.js +9 -9
  51. package/dist/tsup/common/log.cjs +4 -4
  52. package/dist/tsup/common/log.js +3 -3
  53. package/dist/tsup/common/websocket.cjs +5 -5
  54. package/dist/tsup/common/websocket.js +4 -4
  55. package/dist/tsup/{conn-Cc9WHuN4.d.cts → conn-CxCsTz2s.d.cts} +27 -24
  56. package/dist/tsup/{conn-DfPG71FA.d.ts → conn-DhdZYlSX.d.ts} +27 -24
  57. package/dist/tsup/driver-helpers/mod.cjs +6 -6
  58. package/dist/tsup/driver-helpers/mod.d.cts +1 -1
  59. package/dist/tsup/driver-helpers/mod.d.ts +1 -1
  60. package/dist/tsup/driver-helpers/mod.js +5 -5
  61. package/dist/tsup/driver-test-suite/mod.cjs +77 -73
  62. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  63. package/dist/tsup/driver-test-suite/mod.d.cts +1 -1
  64. package/dist/tsup/driver-test-suite/mod.d.ts +1 -1
  65. package/dist/tsup/driver-test-suite/mod.js +17 -13
  66. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  67. package/dist/tsup/inspector/mod.cjs +7 -7
  68. package/dist/tsup/inspector/mod.d.cts +2 -2
  69. package/dist/tsup/inspector/mod.d.ts +2 -2
  70. package/dist/tsup/inspector/mod.js +6 -6
  71. package/dist/tsup/mod.cjs +11 -11
  72. package/dist/tsup/mod.d.cts +2 -2
  73. package/dist/tsup/mod.d.ts +2 -2
  74. package/dist/tsup/mod.js +10 -10
  75. package/dist/tsup/test/mod.cjs +12 -12
  76. package/dist/tsup/test/mod.d.cts +1 -1
  77. package/dist/tsup/test/mod.d.ts +1 -1
  78. package/dist/tsup/test/mod.js +11 -11
  79. package/dist/tsup/utils.cjs +3 -3
  80. package/dist/tsup/utils.js +2 -2
  81. package/package.json +1 -1
  82. package/src/actor/errors.ts +0 -11
  83. package/src/client/client.ts +4 -8
  84. package/src/client/config.ts +3 -0
  85. package/src/client/utils.ts +8 -3
  86. package/src/common/router.ts +60 -1
  87. package/src/driver-test-suite/mod.ts +5 -1
  88. package/src/drivers/default.ts +5 -7
  89. package/src/drivers/engine/actor-driver.ts +18 -17
  90. package/src/drivers/file-system/manager.ts +5 -1
  91. package/src/manager/router.ts +13 -15
  92. package/src/registry/config.ts +8 -0
  93. package/src/registry/mod.ts +32 -48
  94. package/src/remote-manager-driver/api-endpoints.ts +50 -0
  95. package/src/remote-manager-driver/mod.ts +104 -1
  96. package/src/test/mod.ts +5 -1
  97. package/dist/tsup/chunk-5QGQK44L.cjs.map +0 -1
  98. package/dist/tsup/chunk-CL67HHVB.js.map +0 -1
  99. package/dist/tsup/chunk-PKH3YCMG.cjs.map +0 -1
  100. package/dist/tsup/chunk-QBDLQRFN.cjs.map +0 -1
  101. package/dist/tsup/chunk-QVMIMEYZ.cjs.map +0 -1
  102. package/dist/tsup/chunk-T33JFOMB.cjs.map +0 -1
  103. package/dist/tsup/chunk-W5AMA5MD.js.map +0 -1
  104. package/dist/tsup/chunk-Y5JPI3EV.js.map +0 -1
  105. package/dist/tsup/chunk-YPZFLUO6.js.map +0 -1
  106. /package/dist/tsup/{chunk-QLCMNNEA.js.map → chunk-AMLE3HUH.js.map} +0 -0
  107. /package/dist/tsup/{chunk-SDB3B7ZO.js.map → chunk-BTEDNZSI.js.map} +0 -0
  108. /package/dist/tsup/{chunk-XW5IS7NH.js.map → chunk-FUF4YPTZ.js.map} +0 -0
  109. /package/dist/tsup/{chunk-E7CPGIQE.js.map → chunk-IESTGXF3.js.map} +0 -0
  110. /package/dist/tsup/{chunk-WFADCZPK.js.map → chunk-TD5RNAZU.js.map} +0 -0
  111. /package/dist/tsup/{chunk-YCQL4TJR.js.map → chunk-YAUIBXG3.js.map} +0 -0
@@ -35,7 +35,7 @@
35
35
 
36
36
 
37
37
 
38
- var _chunk5QGQK44Lcjs = require('../chunk-5QGQK44L.cjs');
38
+ var _chunkKSRXX3Z4cjs = require('../chunk-KSRXX3Z4.cjs');
39
39
 
40
40
 
41
41
 
@@ -73,5 +73,5 @@ var _chunk5QGQK44Lcjs = require('../chunk-5QGQK44L.cjs');
73
73
 
74
74
 
75
75
 
76
- exports.ActionNotFound = _chunk5QGQK44Lcjs.ActionNotFound; exports.ActionTimedOut = _chunk5QGQK44Lcjs.ActionTimedOut; exports.ActorAlreadyExists = _chunk5QGQK44Lcjs.ActorAlreadyExists; exports.ActorError = _chunk5QGQK44Lcjs.ActorError; exports.ActorNotFound = _chunk5QGQK44Lcjs.ActorNotFound; exports.ConnNotFound = _chunk5QGQK44Lcjs.ConnNotFound; exports.ConnStateNotEnabled = _chunk5QGQK44Lcjs.ConnStateNotEnabled; exports.DatabaseNotEnabled = _chunk5QGQK44Lcjs.DatabaseNotEnabled; exports.FeatureNotImplemented = _chunk5QGQK44Lcjs.FeatureNotImplemented; exports.FetchHandlerNotDefined = _chunk5QGQK44Lcjs.FetchHandlerNotDefined; exports.Forbidden = _chunk5QGQK44Lcjs.Forbidden; exports.INTERNAL_ERROR_CODE = _chunk5QGQK44Lcjs.INTERNAL_ERROR_CODE; exports.INTERNAL_ERROR_DESCRIPTION = _chunk5QGQK44Lcjs.INTERNAL_ERROR_DESCRIPTION; exports.IncorrectConnToken = _chunk5QGQK44Lcjs.IncorrectConnToken; exports.InternalError = _chunk5QGQK44Lcjs.InternalError; exports.InvalidActionRequest = _chunk5QGQK44Lcjs.InvalidActionRequest; exports.InvalidEncoding = _chunk5QGQK44Lcjs.InvalidEncoding; exports.InvalidFetchResponse = _chunk5QGQK44Lcjs.InvalidFetchResponse; exports.InvalidParams = _chunk5QGQK44Lcjs.InvalidParams; exports.InvalidQueryJSON = _chunk5QGQK44Lcjs.InvalidQueryJSON; exports.InvalidRequest = _chunk5QGQK44Lcjs.InvalidRequest; exports.InvalidStateType = _chunk5QGQK44Lcjs.InvalidStateType; exports.MalformedMessage = _chunk5QGQK44Lcjs.MalformedMessage; exports.MessageTooLong = _chunk5QGQK44Lcjs.MessageTooLong; exports.MissingActorHeader = _chunk5QGQK44Lcjs.MissingActorHeader; exports.ProxyError = _chunk5QGQK44Lcjs.ProxyError; exports.RouteNotFound = _chunk5QGQK44Lcjs.RouteNotFound; exports.StateNotEnabled = _chunk5QGQK44Lcjs.StateNotEnabled; exports.USER_ERROR_CODE = _chunk5QGQK44Lcjs.USER_ERROR_CODE; exports.Unauthorized = _chunk5QGQK44Lcjs.Unauthorized; exports.Unreachable = _chunk5QGQK44Lcjs.Unreachable; exports.Unsupported = _chunk5QGQK44Lcjs.Unsupported; exports.UserError = _chunk5QGQK44Lcjs.UserError; exports.VarsNotEnabled = _chunk5QGQK44Lcjs.VarsNotEnabled; exports.WebSocketHandlerNotDefined = _chunk5QGQK44Lcjs.WebSocketHandlerNotDefined; exports.WebSocketsNotEnabled = _chunk5QGQK44Lcjs.WebSocketsNotEnabled;
76
+ exports.ActionNotFound = _chunkKSRXX3Z4cjs.ActionNotFound; exports.ActionTimedOut = _chunkKSRXX3Z4cjs.ActionTimedOut; exports.ActorAlreadyExists = _chunkKSRXX3Z4cjs.ActorAlreadyExists; exports.ActorError = _chunkKSRXX3Z4cjs.ActorError; exports.ActorNotFound = _chunkKSRXX3Z4cjs.ActorNotFound; exports.ConnNotFound = _chunkKSRXX3Z4cjs.ConnNotFound; exports.ConnStateNotEnabled = _chunkKSRXX3Z4cjs.ConnStateNotEnabled; exports.DatabaseNotEnabled = _chunkKSRXX3Z4cjs.DatabaseNotEnabled; exports.FeatureNotImplemented = _chunkKSRXX3Z4cjs.FeatureNotImplemented; exports.FetchHandlerNotDefined = _chunkKSRXX3Z4cjs.FetchHandlerNotDefined; exports.Forbidden = _chunkKSRXX3Z4cjs.Forbidden; exports.INTERNAL_ERROR_CODE = _chunkKSRXX3Z4cjs.INTERNAL_ERROR_CODE; exports.INTERNAL_ERROR_DESCRIPTION = _chunkKSRXX3Z4cjs.INTERNAL_ERROR_DESCRIPTION; exports.IncorrectConnToken = _chunkKSRXX3Z4cjs.IncorrectConnToken; exports.InternalError = _chunkKSRXX3Z4cjs.InternalError; exports.InvalidActionRequest = _chunkKSRXX3Z4cjs.InvalidActionRequest; exports.InvalidEncoding = _chunkKSRXX3Z4cjs.InvalidEncoding; exports.InvalidFetchResponse = _chunkKSRXX3Z4cjs.InvalidFetchResponse; exports.InvalidParams = _chunkKSRXX3Z4cjs.InvalidParams; exports.InvalidQueryJSON = _chunkKSRXX3Z4cjs.InvalidQueryJSON; exports.InvalidRequest = _chunkKSRXX3Z4cjs.InvalidRequest; exports.InvalidStateType = _chunkKSRXX3Z4cjs.InvalidStateType; exports.MalformedMessage = _chunkKSRXX3Z4cjs.MalformedMessage; exports.MessageTooLong = _chunkKSRXX3Z4cjs.MessageTooLong; exports.MissingActorHeader = _chunkKSRXX3Z4cjs.MissingActorHeader; exports.ProxyError = _chunkKSRXX3Z4cjs.ProxyError; exports.RouteNotFound = _chunkKSRXX3Z4cjs.RouteNotFound; exports.StateNotEnabled = _chunkKSRXX3Z4cjs.StateNotEnabled; exports.USER_ERROR_CODE = _chunkKSRXX3Z4cjs.USER_ERROR_CODE; exports.Unauthorized = _chunkKSRXX3Z4cjs.Unauthorized; exports.Unreachable = _chunkKSRXX3Z4cjs.Unreachable; exports.Unsupported = _chunkKSRXX3Z4cjs.Unsupported; exports.UserError = _chunkKSRXX3Z4cjs.UserError; exports.VarsNotEnabled = _chunkKSRXX3Z4cjs.VarsNotEnabled; exports.WebSocketHandlerNotDefined = _chunkKSRXX3Z4cjs.WebSocketHandlerNotDefined; exports.WebSocketsNotEnabled = _chunkKSRXX3Z4cjs.WebSocketsNotEnabled;
77
77
  //# sourceMappingURL=errors.cjs.map
@@ -22,14 +22,6 @@ declare class ActorError extends Error {
22
22
  static isActorError(error: unknown): error is ActorError | DeconstructedError;
23
23
  constructor(group: string, code: string, message: string, opts?: ActorErrorOptions);
24
24
  toString(): string;
25
- /**
26
- * Serialize error for HTTP response
27
- */
28
- serializeForHttp(): {
29
- type: string;
30
- message: string;
31
- metadata: unknown;
32
- };
33
25
  }
34
26
  declare class InternalError extends ActorError {
35
27
  constructor(message: string);
@@ -22,14 +22,6 @@ declare class ActorError extends Error {
22
22
  static isActorError(error: unknown): error is ActorError | DeconstructedError;
23
23
  constructor(group: string, code: string, message: string, opts?: ActorErrorOptions);
24
24
  toString(): string;
25
- /**
26
- * Serialize error for HTTP response
27
- */
28
- serializeForHttp(): {
29
- type: string;
30
- message: string;
31
- metadata: unknown;
32
- };
33
25
  }
34
26
  declare class InternalError extends ActorError {
35
27
  constructor(message: string);
@@ -35,7 +35,7 @@ import {
35
35
  VarsNotEnabled,
36
36
  WebSocketHandlerNotDefined,
37
37
  WebSocketsNotEnabled
38
- } from "../chunk-YPZFLUO6.js";
38
+ } from "../chunk-G64QUEDJ.js";
39
39
  export {
40
40
  ActionNotFound,
41
41
  ActionTimedOut,
@@ -4,7 +4,7 @@ import {
4
4
  inspectorLogger,
5
5
  isInspectorEnabled,
6
6
  secureInspector
7
- } from "./chunk-SDB3B7ZO.js";
7
+ } from "./chunk-BTEDNZSI.js";
8
8
  import {
9
9
  ActorDefinition,
10
10
  RemoteManagerDriver,
@@ -12,15 +12,18 @@ import {
12
12
  createClientWithDriver,
13
13
  deserializeActorKey,
14
14
  generateConnSocketId,
15
+ getDatacenters,
15
16
  getEndpoint,
16
17
  lookupInRegistry,
17
- serializeActorKey
18
- } from "./chunk-W76ULFDH.js";
18
+ serializeActorKey,
19
+ updateRunnerConfig
20
+ } from "./chunk-U7ZDMHVJ.js";
19
21
  import {
20
22
  CreateActorSchema
21
- } from "./chunk-WFADCZPK.js";
23
+ } from "./chunk-TD5RNAZU.js";
22
24
  import {
23
25
  ActionContext,
26
+ ClientConfigSchema,
24
27
  HTTP_ACTION_REQUEST_VERSIONED,
25
28
  HTTP_ACTION_RESPONSE_VERSIONED,
26
29
  HTTP_RESPONSE_ERROR_VERSIONED,
@@ -29,7 +32,7 @@ import {
29
32
  createVersionedDataHandler,
30
33
  parseMessage,
31
34
  serializeEmptyPersistData
32
- } from "./chunk-Y5JPI3EV.js";
35
+ } from "./chunk-HMGH3AWC.js";
33
36
  import {
34
37
  EncodingSchema,
35
38
  HEADER_ACTOR_ID,
@@ -55,12 +58,12 @@ import {
55
58
  generateRandomString,
56
59
  loggerWithoutContext,
57
60
  serializeWithEncoding
58
- } from "./chunk-YCQL4TJR.js";
61
+ } from "./chunk-YAUIBXG3.js";
59
62
  import {
60
63
  configureBaseLogger,
61
64
  configureDefaultLogger,
62
65
  getLogger
63
- } from "./chunk-QLCMNNEA.js";
66
+ } from "./chunk-AMLE3HUH.js";
64
67
  import {
65
68
  VERSION,
66
69
  assertUnreachable,
@@ -71,7 +74,7 @@ import {
71
74
  promiseWithResolvers,
72
75
  setLongTimeout,
73
76
  stringifyError
74
- } from "./chunk-IZKFTUF7.js";
77
+ } from "./chunk-UBBJE54L.js";
75
78
  import {
76
79
  ActorAlreadyExists,
77
80
  ConnNotFound,
@@ -84,7 +87,7 @@ import {
84
87
  Unsupported,
85
88
  UserError,
86
89
  WebSocketsNotEnabled
87
- } from "./chunk-YPZFLUO6.js";
90
+ } from "./chunk-G64QUEDJ.js";
88
91
 
89
92
  // src/actor/config.ts
90
93
  import { z } from "zod";
@@ -828,6 +831,32 @@ function getRequestConnParams(req) {
828
831
 
829
832
  // src/common/router.ts
830
833
  import * as cbor2 from "cbor-x";
834
+
835
+ // src/registry/config.ts
836
+ import { z as z2 } from "zod";
837
+ var ActorsSchema = z2.record(
838
+ z2.string(),
839
+ z2.custom()
840
+ );
841
+ var TestConfigSchema = z2.object({ enabled: z2.boolean() });
842
+ var RegistryConfigSchema = z2.object({
843
+ use: z2.record(z2.string(), z2.custom()),
844
+ // TODO: Find a better way of passing around the test config
845
+ /**
846
+ * Test configuration.
847
+ *
848
+ * DO NOT MANUALLY ENABLE. THIS IS USED INTERNALLY.
849
+ * @internal
850
+ **/
851
+ test: TestConfigSchema.optional().default({ enabled: false })
852
+ });
853
+ function buildActorNames(registryConfig) {
854
+ return Object.fromEntries(
855
+ Object.keys(registryConfig.use).map((name) => [name, { metadata: {} }])
856
+ );
857
+ }
858
+
859
+ // src/common/router.ts
831
860
  function logger2() {
832
861
  return getLogger("router");
833
862
  }
@@ -883,6 +912,26 @@ function handleRouteError(error, c) {
883
912
  );
884
913
  return c.body(output, { status: statusCode });
885
914
  }
915
+ function handleMetadataRequest(c, registryConfig, runConfig) {
916
+ const response = {
917
+ runtime: "rivetkit",
918
+ version: VERSION,
919
+ runner: {
920
+ kind: runConfig.runnerKind === "serverless" ? { serverless: {} } : { normal: {} }
921
+ },
922
+ actorNames: buildActorNames(registryConfig),
923
+ // Do not return client endpoint if default server disabled
924
+ clientEndpoint: runConfig.overrideServerAddress ?? (runConfig.disableDefaultServer ? void 0 : getEndpoint(runConfig))
925
+ };
926
+ return c.json(response);
927
+ }
928
+ function handleHealthRequest(c) {
929
+ return c.json({
930
+ status: "ok",
931
+ runtime: "rivetkit",
932
+ version: VERSION
933
+ });
934
+ }
886
935
 
887
936
  // src/actor/router.ts
888
937
  function createActorRouter(runConfig, actorDriver, isTest) {
@@ -1471,12 +1520,7 @@ var EngineActorDriver = class {
1471
1520
  metadata: {
1472
1521
  inspectorToken: this.#runConfig.inspector.token()
1473
1522
  },
1474
- prepopulateActorNames: Object.fromEntries(
1475
- Object.keys(this.#registryConfig.use).map((name) => [
1476
- name,
1477
- { metadata: {} }
1478
- ])
1479
- ),
1523
+ prepopulateActorNames: buildActorNames(registryConfig),
1480
1524
  onConnected: () => {
1481
1525
  if (hasDisconnected) {
1482
1526
  logger4().info({
@@ -1537,14 +1581,7 @@ var EngineActorDriver = class {
1537
1581
  async readPersistedData(actorId) {
1538
1582
  const handler = this.#actors.get(actorId);
1539
1583
  if (!handler) throw new Error(`Actor ${actorId} not loaded`);
1540
- if (handler.persistedData) return handler.persistedData;
1541
- const [value] = await this.#runner.kvGet(actorId, [KEYS.PERSIST_DATA]);
1542
- if (value !== null) {
1543
- handler.persistedData = value;
1544
- return value;
1545
- } else {
1546
- return void 0;
1547
- }
1584
+ return handler.persistedData;
1548
1585
  }
1549
1586
  async writePersistedData(actorId, data) {
1550
1587
  const handler = this.#actors.get(actorId);
@@ -1585,9 +1622,13 @@ var EngineActorDriver = class {
1585
1622
  if (!handler) {
1586
1623
  handler = {
1587
1624
  actorStartPromise: promiseWithResolvers(),
1588
- persistedData: serializeEmptyPersistData(input)
1625
+ persistedData: void 0
1589
1626
  };
1590
1627
  this.#actors.set(actorId, handler);
1628
+ const [persistedValue] = await this.#runner.kvGet(actorId, [
1629
+ KEYS.PERSIST_DATA
1630
+ ]);
1631
+ handler.persistedData = persistedValue !== null ? persistedValue : serializeEmptyPersistData(input);
1591
1632
  }
1592
1633
  const name = runConfig.name;
1593
1634
  invariant3(runConfig.key, "actor should have a key");
@@ -2547,7 +2588,10 @@ var FileSystemManagerDriver = class {
2547
2588
  };
2548
2589
  });
2549
2590
  }
2550
- const inlineClient = createClientWithDriver(this);
2591
+ const inlineClient = createClientWithDriver(
2592
+ this,
2593
+ ClientConfigSchema.parse({})
2594
+ );
2551
2595
  this.#actorDriver = this.#driverConfig.actor(
2552
2596
  registryConfig,
2553
2597
  runConfig,
@@ -2744,15 +2788,10 @@ function chooseDefaultDriver(runConfig) {
2744
2788
  "Cannot specify both 'endpoint' and 'driver' in configuration"
2745
2789
  );
2746
2790
  }
2747
- if (runConfig.runnerKind === "serverless" && !runConfig.endpoint) {
2748
- throw new UserError(
2749
- "Cannot use 'serverless' runnerKind without the 'endpoint' config set."
2750
- );
2751
- }
2752
2791
  if (runConfig.driver) {
2753
2792
  return runConfig.driver;
2754
2793
  }
2755
- if (runConfig.endpoint || runConfig.token) {
2794
+ if (runConfig.endpoint || runConfig.token || runConfig.runnerKind === "serverless") {
2756
2795
  loggerWithoutContext().debug({
2757
2796
  msg: "using rivet engine driver",
2758
2797
  endpoint: runConfig.endpoint
@@ -3021,53 +3060,53 @@ import {
3021
3060
  import { cors as corsMiddleware } from "hono/cors";
3022
3061
  import { createMiddleware } from "hono/factory";
3023
3062
  import invariant6 from "invariant";
3024
- import { z as z5 } from "zod";
3063
+ import { z as z6 } from "zod";
3025
3064
 
3026
3065
  // src/manager-api/actors.ts
3027
- import { z as z3 } from "zod";
3066
+ import { z as z4 } from "zod";
3028
3067
 
3029
3068
  // src/manager-api/common.ts
3030
- import { z as z2 } from "zod";
3031
- var RivetIdSchema = z2.string();
3069
+ import { z as z3 } from "zod";
3070
+ var RivetIdSchema = z3.string();
3032
3071
 
3033
3072
  // src/manager-api/actors.ts
3034
- var ActorSchema = z3.object({
3073
+ var ActorSchema = z4.object({
3035
3074
  actor_id: RivetIdSchema,
3036
- name: z3.string(),
3037
- key: z3.string(),
3075
+ name: z4.string(),
3076
+ key: z4.string(),
3038
3077
  namespace_id: RivetIdSchema,
3039
- runner_name_selector: z3.string(),
3040
- create_ts: z3.number(),
3041
- connectable_ts: z3.number().nullable().optional(),
3042
- destroy_ts: z3.number().nullable().optional(),
3043
- sleep_ts: z3.number().nullable().optional(),
3044
- start_ts: z3.number().nullable().optional()
3078
+ runner_name_selector: z4.string(),
3079
+ create_ts: z4.number(),
3080
+ connectable_ts: z4.number().nullable().optional(),
3081
+ destroy_ts: z4.number().nullable().optional(),
3082
+ sleep_ts: z4.number().nullable().optional(),
3083
+ start_ts: z4.number().nullable().optional()
3045
3084
  });
3046
- var ActorsListResponseSchema = z3.object({
3047
- actors: z3.array(ActorSchema)
3085
+ var ActorsListResponseSchema = z4.object({
3086
+ actors: z4.array(ActorSchema)
3048
3087
  });
3049
- var ActorsCreateRequestSchema = z3.object({
3050
- name: z3.string(),
3051
- runner_name_selector: z3.string(),
3052
- crash_policy: z3.string(),
3053
- key: z3.string().nullable().optional(),
3054
- input: z3.string().nullable().optional()
3088
+ var ActorsCreateRequestSchema = z4.object({
3089
+ name: z4.string(),
3090
+ runner_name_selector: z4.string(),
3091
+ crash_policy: z4.string(),
3092
+ key: z4.string().nullable().optional(),
3093
+ input: z4.string().nullable().optional()
3055
3094
  });
3056
- var ActorsCreateResponseSchema = z3.object({
3095
+ var ActorsCreateResponseSchema = z4.object({
3057
3096
  actor: ActorSchema
3058
3097
  });
3059
- var ActorsGetOrCreateRequestSchema = z3.object({
3060
- name: z3.string(),
3061
- key: z3.string(),
3062
- runner_name_selector: z3.string(),
3063
- crash_policy: z3.string(),
3064
- input: z3.string().nullable().optional()
3098
+ var ActorsGetOrCreateRequestSchema = z4.object({
3099
+ name: z4.string(),
3100
+ key: z4.string(),
3101
+ runner_name_selector: z4.string(),
3102
+ crash_policy: z4.string(),
3103
+ input: z4.string().nullable().optional()
3065
3104
  });
3066
- var ActorsGetOrCreateResponseSchema = z3.object({
3105
+ var ActorsGetOrCreateResponseSchema = z4.object({
3067
3106
  actor: ActorSchema,
3068
- created: z3.boolean()
3107
+ created: z4.boolean()
3069
3108
  });
3070
- var ActorsDeleteResponseSchema = z3.object({});
3109
+ var ActorsDeleteResponseSchema = z4.object({});
3071
3110
 
3072
3111
  // src/manager/gateway.ts
3073
3112
  async function actorGateway(runConfig, managerDriver, c, next) {
@@ -3352,17 +3391,17 @@ async function createTestWebSocketProxy(clientWsPromise) {
3352
3391
  }
3353
3392
 
3354
3393
  // src/manager/router-schema.ts
3355
- import { z as z4 } from "zod";
3356
- var ServerlessStartHeadersSchema = z4.object({
3357
- endpoint: z4.string({ required_error: "x-rivet-endpoint header is required" }),
3358
- token: z4.string({ invalid_type_error: "x-rivet-token header must be a string" }).optional(),
3359
- totalSlots: z4.coerce.number({
3394
+ import { z as z5 } from "zod";
3395
+ var ServerlessStartHeadersSchema = z5.object({
3396
+ endpoint: z5.string({ required_error: "x-rivet-endpoint header is required" }),
3397
+ token: z5.string({ invalid_type_error: "x-rivet-token header must be a string" }).optional(),
3398
+ totalSlots: z5.coerce.number({
3360
3399
  invalid_type_error: "x-rivet-total-slots header must be a number"
3361
3400
  }).int("x-rivet-total-slots header must be an integer").gte(1, "x-rivet-total-slots header must be positive"),
3362
- runnerName: z4.string({
3401
+ runnerName: z5.string({
3363
3402
  required_error: "x-rivet-runner-name header is required"
3364
3403
  }),
3365
- namespace: z4.string({
3404
+ namespace: z5.string({
3366
3405
  required_error: "x-rivet-namespace-id header is required"
3367
3406
  })
3368
3407
  });
@@ -3468,13 +3507,11 @@ function addServerlessRoutes(driverConfig, registryConfig, runConfig, managerDri
3468
3507
  );
3469
3508
  return await actorDriver.serverlessHandleStart(c);
3470
3509
  });
3471
- router.get("/health", (c) => {
3472
- return c.json({
3473
- status: "ok",
3474
- runtime: "rivetkit",
3475
- version: VERSION
3476
- });
3477
- });
3510
+ router.get("/health", (c) => handleHealthRequest(c));
3511
+ router.get(
3512
+ "/metadata",
3513
+ (c) => handleMetadataRequest(c, registryConfig, runConfig)
3514
+ );
3478
3515
  }
3479
3516
  function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
3480
3517
  var _a;
@@ -3502,10 +3539,10 @@ function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
3502
3539
  method: "get",
3503
3540
  path: "/actors",
3504
3541
  request: {
3505
- query: z5.object({
3506
- name: z5.string(),
3507
- actor_ids: z5.string().optional(),
3508
- key: z5.string().optional()
3542
+ query: z6.object({
3543
+ name: z6.string(),
3544
+ actor_ids: z6.string().optional(),
3545
+ key: z6.string().optional()
3509
3546
  })
3510
3547
  },
3511
3548
  responses: buildOpenApiResponses(ActorsListResponseSchema)
@@ -3790,14 +3827,11 @@ function addManagerRoutes(registryConfig, runConfig, managerDriver, router) {
3790
3827
  }
3791
3828
  });
3792
3829
  }
3793
- router.get("/health", (c) => {
3794
- return c.json({
3795
- status: "ok",
3796
- rivetkit: {
3797
- version: VERSION
3798
- }
3799
- });
3800
- });
3830
+ router.get("/health", (c) => handleHealthRequest(c));
3831
+ router.get(
3832
+ "/metadata",
3833
+ (c) => handleMetadataRequest(c, registryConfig, runConfig)
3834
+ );
3801
3835
  (_a = managerDriver.modifyManagerRouter) == null ? void 0 : _a.call(
3802
3836
  managerDriver,
3803
3837
  registryConfig,
@@ -3820,25 +3854,6 @@ function createApiActor(actor2, runnerName = "default") {
3820
3854
  };
3821
3855
  }
3822
3856
 
3823
- // src/registry/config.ts
3824
- import { z as z6 } from "zod";
3825
- var ActorsSchema = z6.record(
3826
- z6.string(),
3827
- z6.custom()
3828
- );
3829
- var TestConfigSchema = z6.object({ enabled: z6.boolean() });
3830
- var RegistryConfigSchema = z6.object({
3831
- use: z6.record(z6.string(), z6.custom()),
3832
- // TODO: Find a better way of passing around the test config
3833
- /**
3834
- * Test configuration.
3835
- *
3836
- * DO NOT MANUALLY ENABLE. THIS IS USED INTERNALLY.
3837
- * @internal
3838
- **/
3839
- test: TestConfigSchema.optional().default({ enabled: false })
3840
- });
3841
-
3842
3857
  // src/registry/log.ts
3843
3858
  function logger7() {
3844
3859
  return getLogger("registry");
@@ -3969,7 +3984,7 @@ var Registry = class {
3969
3984
  console.log();
3970
3985
  console.log(` RivetKit ${package_default.version} (${displayInfo.name})`);
3971
3986
  if (!config2.disableDefaultServer) {
3972
- console.log(` - Endpoint: ${config2.endpoint}`);
3987
+ console.log(` - Endpoint: ${getEndpoint(config2)}`);
3973
3988
  } else if (config2.overrideServerAddress) {
3974
3989
  console.log(` - Endpoint: ${config2.overrideServerAddress}`);
3975
3990
  }
@@ -4027,23 +4042,28 @@ async function configureServerlessRunner(config2) {
4027
4042
  throw new Error("endpoint is required for serverless configuration");
4028
4043
  }
4029
4044
  const customConfig = typeof config2.autoConfigureServerless === "object" ? config2.autoConfigureServerless : {};
4030
- const dcsUrl = `${config2.endpoint}/datacenters`;
4045
+ const clientConfig = {
4046
+ endpoint: config2.endpoint,
4047
+ token: config2.token,
4048
+ namespace: config2.namespace,
4049
+ runnerName: config2.runnerName,
4050
+ encoding: config2.encoding,
4051
+ transport: config2.transport,
4052
+ headers: config2.headers,
4053
+ getUpgradeWebSocket: config2.getUpgradeWebSocket,
4054
+ disableHealthCheck: true
4055
+ // We don't need health check for this operation
4056
+ };
4031
4057
  logger7().debug({
4032
4058
  msg: "fetching datacenters",
4033
- url: dcsUrl
4059
+ endpoint: config2.endpoint
4034
4060
  });
4035
- const dcsResponse = await fetch(dcsUrl, {
4036
- headers: {
4037
- ...config2.token ? { Authorization: `Bearer ${config2.token}` } : {}
4038
- }
4061
+ const dcsRes = await getDatacenters(clientConfig);
4062
+ logger7().debug({
4063
+ msg: "configuring serverless runner",
4064
+ runnerName: config2.runnerName,
4065
+ namespace: config2.namespace
4039
4066
  });
4040
- if (!dcsResponse.ok) {
4041
- const errorText = await dcsResponse.text();
4042
- throw new Error(
4043
- `failed to configure serverless runner: ${dcsResponse.status} ${dcsResponse.statusText} - ${errorText}`
4044
- );
4045
- }
4046
- const dcsRes = await dcsResponse.json();
4047
4067
  const serverlessConfig = {
4048
4068
  serverless: {
4049
4069
  url: customConfig.url || `http://localhost:${config2.defaultServerPort}/start`,
@@ -4055,29 +4075,11 @@ async function configureServerlessRunner(config2) {
4055
4075
  slots_per_runner: customConfig.slotsPerRunner ?? config2.totalSlots ?? 1e3
4056
4076
  }
4057
4077
  };
4058
- const requestBody = Object.fromEntries(
4059
- dcsRes.datacenters.map((dc) => [dc.name, serverlessConfig])
4060
- );
4061
- const configUrl = `${config2.endpoint}/runner-configs/${config2.runnerName}?namespace=${config2.namespace}`;
4062
- logger7().debug({
4063
- msg: "configuring serverless runner",
4064
- url: configUrl,
4065
- config: serverlessConfig.serverless
4066
- });
4067
- const response = await fetch(configUrl, {
4068
- method: "PUT",
4069
- headers: {
4070
- "Content-Type": "application/json",
4071
- ...config2.token ? { Authorization: `Bearer ${config2.token}` } : {}
4072
- },
4073
- body: JSON.stringify(requestBody)
4078
+ await updateRunnerConfig(clientConfig, config2.runnerName, {
4079
+ datacenters: Object.fromEntries(
4080
+ dcsRes.datacenters.map((dc) => [dc.name, serverlessConfig])
4081
+ )
4074
4082
  });
4075
- if (!response.ok) {
4076
- const errorText = await response.text();
4077
- throw new Error(
4078
- `failed to configure serverless runner: ${response.status} ${response.statusText} - ${errorText}`
4079
- );
4080
- }
4081
4083
  logger7().info({
4082
4084
  msg: "serverless runner configured successfully",
4083
4085
  runnerName: config2.runnerName,
@@ -4099,6 +4101,7 @@ function setup(input) {
4099
4101
  export {
4100
4102
  handleWebSocketConnect,
4101
4103
  handleRawWebSocketHandler,
4104
+ RegistryConfigSchema,
4102
4105
  createActorRouter,
4103
4106
  actor,
4104
4107
  InlineWebSocketAdapter2,
@@ -4107,9 +4110,8 @@ export {
4107
4110
  createFileSystemDriver,
4108
4111
  createMemoryDriver,
4109
4112
  createManagerRouter,
4110
- RegistryConfigSchema,
4111
4113
  Registry,
4112
4114
  setup
4113
4115
  };
4114
4116
  //! These configs configs hold anything that's not platform-specific about running actors.
4115
- //# sourceMappingURL=chunk-W5AMA5MD.js.map
4117
+ //# sourceMappingURL=chunk-7MDKUHE4.js.map