rivetkit 2.0.12 → 2.0.14

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-RQGVUYBU.cjs → chunk-3HCSWRUA.cjs} +10 -10
  6. package/dist/tsup/{chunk-RQGVUYBU.cjs.map → chunk-3HCSWRUA.cjs.map} +1 -1
  7. package/dist/tsup/{chunk-LD3574QQ.js → chunk-3LGDBNZG.js} +2 -2
  8. package/dist/tsup/{chunk-O7SCSVV5.js → chunk-43PTNF7W.js} +3 -3
  9. package/dist/tsup/{chunk-DSJ7EWMA.js → chunk-5C3MRFAU.js} +2 -2
  10. package/dist/tsup/{chunk-2WEKN2GP.cjs → chunk-ATMZDEVA.cjs} +3 -3
  11. package/dist/tsup/{chunk-2WEKN2GP.cjs.map → chunk-ATMZDEVA.cjs.map} +1 -1
  12. package/dist/tsup/{chunk-QSWYPQ5Y.cjs → chunk-DJDDJDWR.cjs} +12 -12
  13. package/dist/tsup/{chunk-QSWYPQ5Y.cjs.map → chunk-DJDDJDWR.cjs.map} +1 -1
  14. package/dist/tsup/{chunk-TGMO7RD4.js → chunk-EY5EMNAB.js} +3 -3
  15. package/dist/tsup/{chunk-TGMO7RD4.js.map → chunk-EY5EMNAB.js.map} +1 -1
  16. package/dist/tsup/{chunk-3H2GFGYN.cjs → chunk-FNCNYJFG.cjs} +3 -3
  17. package/dist/tsup/{chunk-3H2GFGYN.cjs.map → chunk-FNCNYJFG.cjs.map} +1 -1
  18. package/dist/tsup/{chunk-DYXH4LQ3.js → chunk-FNQGHSFJ.js} +2 -2
  19. package/dist/tsup/{chunk-FXGRLLVS.js → chunk-G3R2O5VL.js} +67 -75
  20. package/dist/tsup/chunk-G3R2O5VL.js.map +1 -0
  21. package/dist/tsup/{chunk-YPZFLUO6.js → chunk-G64QUEDJ.js} +1 -11
  22. package/dist/tsup/chunk-G64QUEDJ.js.map +1 -0
  23. package/dist/tsup/{chunk-YLCZ3HD7.cjs → chunk-HNC6Y6JC.cjs} +321 -234
  24. package/dist/tsup/{chunk-X5I7MG2C.js.map → chunk-HNC6Y6JC.cjs.map} +1 -1
  25. package/dist/tsup/{chunk-AOWJK5JM.js → chunk-HY3MZSKX.js} +4 -4
  26. package/dist/tsup/{chunk-HVSEPT2G.cjs → chunk-INNBRUPH.cjs} +17 -13
  27. package/dist/tsup/chunk-INNBRUPH.cjs.map +1 -0
  28. package/dist/tsup/{chunk-5QGQK44L.cjs → chunk-KSRXX3Z4.cjs} +1 -11
  29. package/dist/tsup/chunk-KSRXX3Z4.cjs.map +1 -0
  30. package/dist/tsup/{chunk-4NPHS4GT.cjs → chunk-MF76IOZD.cjs} +7 -7
  31. package/dist/tsup/{chunk-4NPHS4GT.cjs.map → chunk-MF76IOZD.cjs.map} +1 -1
  32. package/dist/tsup/{chunk-63AELL54.cjs → chunk-OWPBIHFM.cjs} +8 -8
  33. package/dist/tsup/{chunk-63AELL54.cjs.map → chunk-OWPBIHFM.cjs.map} +1 -1
  34. package/dist/tsup/{chunk-LO6XS2NJ.js → chunk-PO352AW7.js} +2 -2
  35. package/dist/tsup/{chunk-FFLADW7R.cjs → chunk-Q6ESJU7P.cjs} +37 -33
  36. package/dist/tsup/chunk-Q6ESJU7P.cjs.map +1 -0
  37. package/dist/tsup/{chunk-VYQFZNPT.cjs → chunk-QZWHQAOF.cjs} +6 -6
  38. package/dist/tsup/{chunk-VYQFZNPT.cjs.map → chunk-QZWHQAOF.cjs.map} +1 -1
  39. package/dist/tsup/{chunk-XIR6UKM2.js → chunk-SQPFZW4U.js} +11 -7
  40. package/dist/tsup/chunk-SQPFZW4U.js.map +1 -0
  41. package/dist/tsup/{chunk-KQGXJTBM.cjs → chunk-SXEHZODB.cjs} +236 -244
  42. package/dist/tsup/chunk-SXEHZODB.cjs.map +1 -0
  43. package/dist/tsup/{chunk-YSIN4LW4.js → chunk-XQR2BHQP.js} +11 -7
  44. package/dist/tsup/chunk-XQR2BHQP.js.map +1 -0
  45. package/dist/tsup/{chunk-X5I7MG2C.js → chunk-ZD5CZSSF.js} +104 -17
  46. package/dist/tsup/chunk-ZD5CZSSF.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 +50 -1
  87. package/src/driver-test-suite/mod.ts +5 -1
  88. package/src/drivers/default.ts +0 -6
  89. package/src/drivers/engine/actor-driver.ts +16 -10
  90. package/src/drivers/file-system/manager.ts +5 -1
  91. package/src/inspector/config.ts +2 -0
  92. package/src/manager/router.ts +9 -15
  93. package/src/registry/mod.ts +30 -47
  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-FFLADW7R.cjs.map +0 -1
  99. package/dist/tsup/chunk-FXGRLLVS.js.map +0 -1
  100. package/dist/tsup/chunk-HVSEPT2G.cjs.map +0 -1
  101. package/dist/tsup/chunk-KQGXJTBM.cjs.map +0 -1
  102. package/dist/tsup/chunk-XIR6UKM2.js.map +0 -1
  103. package/dist/tsup/chunk-YLCZ3HD7.cjs.map +0 -1
  104. package/dist/tsup/chunk-YPZFLUO6.js.map +0 -1
  105. package/dist/tsup/chunk-YSIN4LW4.js.map +0 -1
  106. /package/dist/tsup/{chunk-LD3574QQ.js.map → chunk-3LGDBNZG.js.map} +0 -0
  107. /package/dist/tsup/{chunk-O7SCSVV5.js.map → chunk-43PTNF7W.js.map} +0 -0
  108. /package/dist/tsup/{chunk-DSJ7EWMA.js.map → chunk-5C3MRFAU.js.map} +0 -0
  109. /package/dist/tsup/{chunk-DYXH4LQ3.js.map → chunk-FNQGHSFJ.js.map} +0 -0
  110. /package/dist/tsup/{chunk-AOWJK5JM.js.map → chunk-HY3MZSKX.js.map} +0 -0
  111. /package/dist/tsup/{chunk-LO6XS2NJ.js.map → chunk-PO352AW7.js.map} +0 -0
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunk3H2GFGYNcjs = require('../chunk-3H2GFGYN.cjs');
9
+ var _chunkFNCNYJFGcjs = require('../chunk-FNCNYJFG.cjs');
10
10
 
11
11
 
12
12
 
@@ -27,11 +27,11 @@ var _chunk3H2GFGYNcjs = require('../chunk-3H2GFGYN.cjs');
27
27
 
28
28
 
29
29
 
30
- var _chunkQSWYPQ5Ycjs = require('../chunk-QSWYPQ5Y.cjs');
31
- require('../chunk-RQGVUYBU.cjs');
32
- require('../chunk-4NPHS4GT.cjs');
33
- require('../chunk-63AELL54.cjs');
34
- require('../chunk-5QGQK44L.cjs');
30
+ var _chunkDJDDJDWRcjs = require('../chunk-DJDDJDWR.cjs');
31
+ require('../chunk-3HCSWRUA.cjs');
32
+ require('../chunk-MF76IOZD.cjs');
33
+ require('../chunk-OWPBIHFM.cjs');
34
+ require('../chunk-KSRXX3Z4.cjs');
35
35
 
36
36
 
37
37
 
@@ -59,5 +59,5 @@ require('../chunk-5QGQK44L.cjs');
59
59
 
60
60
 
61
61
 
62
- exports.ActorFeature = _chunkQSWYPQ5Ycjs.ActorFeature; exports.ActorId = _chunkQSWYPQ5Ycjs.ActorId; exports.ActorLogEntry = _chunkQSWYPQ5Ycjs.ActorLogEntry; exports.ActorSchema = _chunkQSWYPQ5Ycjs.ActorSchema; exports.BuildSchema = _chunkQSWYPQ5Ycjs.BuildSchema; exports.BuildsSchema = _chunkQSWYPQ5Ycjs.BuildsSchema; exports.ColumnSchema = _chunkQSWYPQ5Ycjs.ColumnSchema; exports.ColumnsSchema = _chunkQSWYPQ5Ycjs.ColumnsSchema; exports.ConnectionSchema = _chunkQSWYPQ5Ycjs.ConnectionSchema; exports.CreateActorSchema = _chunkQSWYPQ5Ycjs.CreateActorSchema; exports.DatabaseQuerySchema = _chunkQSWYPQ5Ycjs.DatabaseQuerySchema; exports.ForeignKeySchema = _chunkQSWYPQ5Ycjs.ForeignKeySchema; exports.ForeignKeysSchema = _chunkQSWYPQ5Ycjs.ForeignKeysSchema; exports.OperationSchema = _chunkQSWYPQ5Ycjs.OperationSchema; exports.PatchSchema = _chunkQSWYPQ5Ycjs.PatchSchema; exports.RealtimeEventSchema = _chunkQSWYPQ5Ycjs.RealtimeEventSchema; exports.RecordedRealtimeEventSchema = _chunkQSWYPQ5Ycjs.RecordedRealtimeEventSchema; exports.TableSchema = _chunkQSWYPQ5Ycjs.TableSchema; exports.TablesSchema = _chunkQSWYPQ5Ycjs.TablesSchema; exports.compareSecrets = _chunk3H2GFGYNcjs.compareSecrets; exports.configureInspectorAccessToken = _chunk3H2GFGYNcjs.configureInspectorAccessToken; exports.createActorInspectorClient = _chunk3H2GFGYNcjs.createActorInspectorClient; exports.createManagerInspectorClient = _chunk3H2GFGYNcjs.createManagerInspectorClient; exports.getInspectorUrl = _chunk3H2GFGYNcjs.getInspectorUrl; exports.isInspectorEnabled = _chunk3H2GFGYNcjs.isInspectorEnabled; exports.secureInspector = _chunk3H2GFGYNcjs.secureInspector;
62
+ exports.ActorFeature = _chunkDJDDJDWRcjs.ActorFeature; exports.ActorId = _chunkDJDDJDWRcjs.ActorId; exports.ActorLogEntry = _chunkDJDDJDWRcjs.ActorLogEntry; exports.ActorSchema = _chunkDJDDJDWRcjs.ActorSchema; exports.BuildSchema = _chunkDJDDJDWRcjs.BuildSchema; exports.BuildsSchema = _chunkDJDDJDWRcjs.BuildsSchema; exports.ColumnSchema = _chunkDJDDJDWRcjs.ColumnSchema; exports.ColumnsSchema = _chunkDJDDJDWRcjs.ColumnsSchema; exports.ConnectionSchema = _chunkDJDDJDWRcjs.ConnectionSchema; exports.CreateActorSchema = _chunkDJDDJDWRcjs.CreateActorSchema; exports.DatabaseQuerySchema = _chunkDJDDJDWRcjs.DatabaseQuerySchema; exports.ForeignKeySchema = _chunkDJDDJDWRcjs.ForeignKeySchema; exports.ForeignKeysSchema = _chunkDJDDJDWRcjs.ForeignKeysSchema; exports.OperationSchema = _chunkDJDDJDWRcjs.OperationSchema; exports.PatchSchema = _chunkDJDDJDWRcjs.PatchSchema; exports.RealtimeEventSchema = _chunkDJDDJDWRcjs.RealtimeEventSchema; exports.RecordedRealtimeEventSchema = _chunkDJDDJDWRcjs.RecordedRealtimeEventSchema; exports.TableSchema = _chunkDJDDJDWRcjs.TableSchema; exports.TablesSchema = _chunkDJDDJDWRcjs.TablesSchema; exports.compareSecrets = _chunkFNCNYJFGcjs.compareSecrets; exports.configureInspectorAccessToken = _chunkFNCNYJFGcjs.configureInspectorAccessToken; exports.createActorInspectorClient = _chunkFNCNYJFGcjs.createActorInspectorClient; exports.createManagerInspectorClient = _chunkFNCNYJFGcjs.createManagerInspectorClient; exports.getInspectorUrl = _chunkFNCNYJFGcjs.getInspectorUrl; exports.isInspectorEnabled = _chunkFNCNYJFGcjs.isInspectorEnabled; exports.secureInspector = _chunkFNCNYJFGcjs.secureInspector;
63
63
  //# sourceMappingURL=mod.cjs.map
@@ -1,5 +1,5 @@
1
- import { al as ActorFeature, c as RunnerConfig, H as RunnerConfigInput, ai as ManagerDriver } from '../conn-Cc9WHuN4.cjs';
2
- export { ap as Actor, am as ActorId, an as ActorLogEntry, ao as ActorSchema, aP as Build, aO as BuildSchema, aR as Builds, aQ as BuildsSchema, aH as Column, aG as ColumnSchema, aJ as Columns, aI as ColumnsSchema, av as Connection, au as ConnectionSchema, aT as CreateActor, aS as CreateActorSchema, aB as DatabaseQuery, aA as DatabaseQuerySchema, aL as ForeignKey, aK as ForeignKeySchema, aN as ForeignKeys, aM as ForeignKeysSchema, ar as Operation, aq as OperationSchema, at as Patch, as as PatchSchema, ax as RealtimeEvent, aw as RealtimeEventSchema, az as RecordedRealtimeEvent, ay as RecordedRealtimeEventSchema, aD as Table, aC as TableSchema, aF as Tables, aE as TablesSchema } from '../conn-Cc9WHuN4.cjs';
1
+ import { al as ActorFeature, c as RunnerConfig, H as RunnerConfigInput, ai as ManagerDriver } from '../conn-CxCsTz2s.cjs';
2
+ export { ap as Actor, am as ActorId, an as ActorLogEntry, ao as ActorSchema, aP as Build, aO as BuildSchema, aR as Builds, aQ as BuildsSchema, aH as Column, aG as ColumnSchema, aJ as Columns, aI as ColumnsSchema, av as Connection, au as ConnectionSchema, aT as CreateActor, aS as CreateActorSchema, aB as DatabaseQuery, aA as DatabaseQuerySchema, aL as ForeignKey, aK as ForeignKeySchema, aN as ForeignKeys, aM as ForeignKeysSchema, ar as Operation, aq as OperationSchema, at as Patch, as as PatchSchema, ax as RealtimeEvent, aw as RealtimeEventSchema, az as RecordedRealtimeEvent, ay as RecordedRealtimeEventSchema, aD as Table, aC as TableSchema, aF as Tables, aE as TablesSchema } from '../conn-CxCsTz2s.cjs';
3
3
  import * as hono_utils_http_status from 'hono/utils/http-status';
4
4
  import * as hono_utils_types from 'hono/utils/types';
5
5
  import * as hono_client from 'hono/client';
@@ -1,5 +1,5 @@
1
- import { al as ActorFeature, c as RunnerConfig, H as RunnerConfigInput, ai as ManagerDriver } from '../conn-DfPG71FA.js';
2
- export { ap as Actor, am as ActorId, an as ActorLogEntry, ao as ActorSchema, aP as Build, aO as BuildSchema, aR as Builds, aQ as BuildsSchema, aH as Column, aG as ColumnSchema, aJ as Columns, aI as ColumnsSchema, av as Connection, au as ConnectionSchema, aT as CreateActor, aS as CreateActorSchema, aB as DatabaseQuery, aA as DatabaseQuerySchema, aL as ForeignKey, aK as ForeignKeySchema, aN as ForeignKeys, aM as ForeignKeysSchema, ar as Operation, aq as OperationSchema, at as Patch, as as PatchSchema, ax as RealtimeEvent, aw as RealtimeEventSchema, az as RecordedRealtimeEvent, ay as RecordedRealtimeEventSchema, aD as Table, aC as TableSchema, aF as Tables, aE as TablesSchema } from '../conn-DfPG71FA.js';
1
+ import { al as ActorFeature, c as RunnerConfig, H as RunnerConfigInput, ai as ManagerDriver } from '../conn-DhdZYlSX.js';
2
+ export { ap as Actor, am as ActorId, an as ActorLogEntry, ao as ActorSchema, aP as Build, aO as BuildSchema, aR as Builds, aQ as BuildsSchema, aH as Column, aG as ColumnSchema, aJ as Columns, aI as ColumnsSchema, av as Connection, au as ConnectionSchema, aT as CreateActor, aS as CreateActorSchema, aB as DatabaseQuery, aA as DatabaseQuerySchema, aL as ForeignKey, aK as ForeignKeySchema, aN as ForeignKeys, aM as ForeignKeysSchema, ar as Operation, aq as OperationSchema, at as Patch, as as PatchSchema, ax as RealtimeEvent, aw as RealtimeEventSchema, az as RecordedRealtimeEvent, ay as RecordedRealtimeEventSchema, aD as Table, aC as TableSchema, aF as Tables, aE as TablesSchema } from '../conn-DhdZYlSX.js';
3
3
  import * as hono_utils_http_status from 'hono/utils/http-status';
4
4
  import * as hono_utils_types from 'hono/utils/types';
5
5
  import * as hono_client from 'hono/client';
@@ -6,7 +6,7 @@ import {
6
6
  getInspectorUrl,
7
7
  isInspectorEnabled,
8
8
  secureInspector
9
- } from "../chunk-DSJ7EWMA.js";
9
+ } from "../chunk-5C3MRFAU.js";
10
10
  import {
11
11
  ActorFeature,
12
12
  ActorId,
@@ -27,11 +27,11 @@ import {
27
27
  RecordedRealtimeEventSchema,
28
28
  TableSchema,
29
29
  TablesSchema
30
- } from "../chunk-LD3574QQ.js";
31
- import "../chunk-AOWJK5JM.js";
32
- import "../chunk-LO6XS2NJ.js";
33
- import "../chunk-TGMO7RD4.js";
34
- import "../chunk-YPZFLUO6.js";
30
+ } from "../chunk-3LGDBNZG.js";
31
+ import "../chunk-HY3MZSKX.js";
32
+ import "../chunk-PO352AW7.js";
33
+ import "../chunk-EY5EMNAB.js";
34
+ import "../chunk-G64QUEDJ.js";
35
35
  export {
36
36
  ActorFeature,
37
37
  ActorId,
package/dist/tsup/mod.cjs CHANGED
@@ -10,30 +10,30 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkKQGXJTBMcjs = require('./chunk-KQGXJTBM.cjs');
14
- require('./chunk-3H2GFGYN.cjs');
13
+ var _chunkSXEHZODBcjs = require('./chunk-SXEHZODB.cjs');
14
+ require('./chunk-FNCNYJFG.cjs');
15
15
 
16
16
 
17
17
 
18
18
 
19
19
 
20
- var _chunkYLCZ3HD7cjs = require('./chunk-YLCZ3HD7.cjs');
21
- require('./chunk-QSWYPQ5Y.cjs');
22
- require('./chunk-2WEKN2GP.cjs');
23
- require('./chunk-FFLADW7R.cjs');
20
+ var _chunkHNC6Y6JCcjs = require('./chunk-HNC6Y6JC.cjs');
21
+ require('./chunk-DJDDJDWR.cjs');
22
+ require('./chunk-ATMZDEVA.cjs');
23
+ require('./chunk-Q6ESJU7P.cjs');
24
24
 
25
25
 
26
26
 
27
27
 
28
- var _chunkRQGVUYBUcjs = require('./chunk-RQGVUYBU.cjs');
29
- require('./chunk-4NPHS4GT.cjs');
28
+ var _chunk3HCSWRUAcjs = require('./chunk-3HCSWRUA.cjs');
29
+ require('./chunk-MF76IOZD.cjs');
30
30
 
31
31
 
32
32
 
33
- var _chunk63AELL54cjs = require('./chunk-63AELL54.cjs');
33
+ var _chunkOWPBIHFMcjs = require('./chunk-OWPBIHFM.cjs');
34
34
 
35
35
 
36
- var _chunk5QGQK44Lcjs = require('./chunk-5QGQK44L.cjs');
36
+ var _chunkKSRXX3Z4cjs = require('./chunk-KSRXX3Z4.cjs');
37
37
 
38
38
 
39
39
 
@@ -56,5 +56,5 @@ var _chunk5QGQK44Lcjs = require('./chunk-5QGQK44L.cjs');
56
56
 
57
57
 
58
58
 
59
- exports.ALLOWED_PUBLIC_HEADERS = _chunkRQGVUYBUcjs.ALLOWED_PUBLIC_HEADERS; exports.InlineWebSocketAdapter2 = _chunkKQGXJTBMcjs.InlineWebSocketAdapter2; exports.PATH_CONNECT_WEBSOCKET = _chunkRQGVUYBUcjs.PATH_CONNECT_WEBSOCKET; exports.PATH_RAW_WEBSOCKET_PREFIX = _chunkRQGVUYBUcjs.PATH_RAW_WEBSOCKET_PREFIX; exports.Registry = _chunkKQGXJTBMcjs.Registry; exports.RegistryConfigSchema = _chunkKQGXJTBMcjs.RegistryConfigSchema; exports.UserError = _chunk5QGQK44Lcjs.UserError; exports.actor = _chunkKQGXJTBMcjs.actor; exports.createActorRouter = _chunkKQGXJTBMcjs.createActorRouter; exports.createClientWithDriver = _chunkYLCZ3HD7cjs.createClientWithDriver; exports.createEngineDriver = _chunkKQGXJTBMcjs.createEngineDriver; exports.createFileSystemDriver = _chunkKQGXJTBMcjs.createFileSystemDriver; exports.createMemoryDriver = _chunkKQGXJTBMcjs.createMemoryDriver; exports.generateConnId = _chunkYLCZ3HD7cjs.generateConnId; exports.generateConnToken = _chunkYLCZ3HD7cjs.generateConnToken; exports.handleRawWebSocketHandler = _chunkKQGXJTBMcjs.handleRawWebSocketHandler; exports.handleWebSocketConnect = _chunkKQGXJTBMcjs.handleWebSocketConnect; exports.lookupInRegistry = _chunkYLCZ3HD7cjs.lookupInRegistry; exports.noopNext = _chunk63AELL54cjs.noopNext; exports.setup = _chunkKQGXJTBMcjs.setup; exports.toUint8Array = _chunk63AELL54cjs.toUint8Array;
59
+ exports.ALLOWED_PUBLIC_HEADERS = _chunk3HCSWRUAcjs.ALLOWED_PUBLIC_HEADERS; exports.InlineWebSocketAdapter2 = _chunkSXEHZODBcjs.InlineWebSocketAdapter2; exports.PATH_CONNECT_WEBSOCKET = _chunk3HCSWRUAcjs.PATH_CONNECT_WEBSOCKET; exports.PATH_RAW_WEBSOCKET_PREFIX = _chunk3HCSWRUAcjs.PATH_RAW_WEBSOCKET_PREFIX; exports.Registry = _chunkSXEHZODBcjs.Registry; exports.RegistryConfigSchema = _chunkSXEHZODBcjs.RegistryConfigSchema; exports.UserError = _chunkKSRXX3Z4cjs.UserError; exports.actor = _chunkSXEHZODBcjs.actor; exports.createActorRouter = _chunkSXEHZODBcjs.createActorRouter; exports.createClientWithDriver = _chunkHNC6Y6JCcjs.createClientWithDriver; exports.createEngineDriver = _chunkSXEHZODBcjs.createEngineDriver; exports.createFileSystemDriver = _chunkSXEHZODBcjs.createFileSystemDriver; exports.createMemoryDriver = _chunkSXEHZODBcjs.createMemoryDriver; exports.generateConnId = _chunkHNC6Y6JCcjs.generateConnId; exports.generateConnToken = _chunkHNC6Y6JCcjs.generateConnToken; exports.handleRawWebSocketHandler = _chunkSXEHZODBcjs.handleRawWebSocketHandler; exports.handleWebSocketConnect = _chunkSXEHZODBcjs.handleWebSocketConnect; exports.lookupInRegistry = _chunkHNC6Y6JCcjs.lookupInRegistry; exports.noopNext = _chunkOWPBIHFMcjs.noopNext; exports.setup = _chunkSXEHZODBcjs.setup; exports.toUint8Array = _chunkOWPBIHFMcjs.toUint8Array;
60
60
  //# sourceMappingURL=mod.cjs.map
@@ -1,5 +1,5 @@
1
- import { U as UniversalWebSocket, R as RivetEvent, a as RivetCloseEvent, b as RivetMessageEvent, A as ActorDriver, c as RunnerConfig, E as Encoding, d as AnyDatabaseProvider, e as Actions, f as ActorConfigInput, g as ActorDefinition, D as DriverConfig } from './conn-Cc9WHuN4.cjs';
2
- export { n as ActionContext, r as ActionContextOf, z as ActorConfig, x as ActorConfigSchema, q as ActorContext, s as ActorContextOf, m as ActorKey, l as ActorQuery, w as ActorTypes, t as AnyActorDefinition, v as AnyActorInstance, j as AnyClient, y as AuthIntent, C as Client, o as Conn, p as ConnectionStatus, I as InitContext, O as OnConnectOptions, K as Registry, G as RegistryActors, F as RegistryConfig, J as RegistryConfigSchema, H as RunConfigInput, S as ServerlessActorDriverBuilder, k as createClientWithDriver, h as generateConnId, i as generateConnToken, u as lookupInRegistry, L as setup, B as test } from './conn-Cc9WHuN4.cjs';
1
+ import { U as UniversalWebSocket, R as RivetEvent, a as RivetCloseEvent, b as RivetMessageEvent, A as ActorDriver, c as RunnerConfig, E as Encoding, d as AnyDatabaseProvider, e as Actions, f as ActorConfigInput, g as ActorDefinition, D as DriverConfig } from './conn-CxCsTz2s.cjs';
2
+ export { n as ActionContext, r as ActionContextOf, z as ActorConfig, x as ActorConfigSchema, q as ActorContext, s as ActorContextOf, m as ActorKey, l as ActorQuery, w as ActorTypes, t as AnyActorDefinition, v as AnyActorInstance, j as AnyClient, y as AuthIntent, C as Client, o as Conn, p as ConnectionStatus, I as InitContext, O as OnConnectOptions, K as Registry, G as RegistryActors, F as RegistryConfig, J as RegistryConfigSchema, H as RunConfigInput, S as ServerlessActorDriverBuilder, k as createClientWithDriver, h as generateConnId, i as generateConnToken, u as lookupInRegistry, L as setup, B as test } from './conn-CxCsTz2s.cjs';
3
3
  import { WSContext } from 'hono/ws';
4
4
  export { n as noopNext } from './utils-fwx3o3K9.cjs';
5
5
  export { toUint8Array } from './utils.cjs';
@@ -1,5 +1,5 @@
1
- import { U as UniversalWebSocket, R as RivetEvent, a as RivetCloseEvent, b as RivetMessageEvent, A as ActorDriver, c as RunnerConfig, E as Encoding, d as AnyDatabaseProvider, e as Actions, f as ActorConfigInput, g as ActorDefinition, D as DriverConfig } from './conn-DfPG71FA.js';
2
- export { n as ActionContext, r as ActionContextOf, z as ActorConfig, x as ActorConfigSchema, q as ActorContext, s as ActorContextOf, m as ActorKey, l as ActorQuery, w as ActorTypes, t as AnyActorDefinition, v as AnyActorInstance, j as AnyClient, y as AuthIntent, C as Client, o as Conn, p as ConnectionStatus, I as InitContext, O as OnConnectOptions, K as Registry, G as RegistryActors, F as RegistryConfig, J as RegistryConfigSchema, H as RunConfigInput, S as ServerlessActorDriverBuilder, k as createClientWithDriver, h as generateConnId, i as generateConnToken, u as lookupInRegistry, L as setup, B as test } from './conn-DfPG71FA.js';
1
+ import { U as UniversalWebSocket, R as RivetEvent, a as RivetCloseEvent, b as RivetMessageEvent, A as ActorDriver, c as RunnerConfig, E as Encoding, d as AnyDatabaseProvider, e as Actions, f as ActorConfigInput, g as ActorDefinition, D as DriverConfig } from './conn-DhdZYlSX.js';
2
+ export { n as ActionContext, r as ActionContextOf, z as ActorConfig, x as ActorConfigSchema, q as ActorContext, s as ActorContextOf, m as ActorKey, l as ActorQuery, w as ActorTypes, t as AnyActorDefinition, v as AnyActorInstance, j as AnyClient, y as AuthIntent, C as Client, o as Conn, p as ConnectionStatus, I as InitContext, O as OnConnectOptions, K as Registry, G as RegistryActors, F as RegistryConfig, J as RegistryConfigSchema, H as RunConfigInput, S as ServerlessActorDriverBuilder, k as createClientWithDriver, h as generateConnId, i as generateConnToken, u as lookupInRegistry, L as setup, B as test } from './conn-DhdZYlSX.js';
3
3
  import { WSContext } from 'hono/ws';
4
4
  export { n as noopNext } from './utils-fwx3o3K9.js';
5
5
  export { toUint8Array } from './utils.js';
package/dist/tsup/mod.js CHANGED
@@ -10,30 +10,30 @@ import {
10
10
  handleRawWebSocketHandler,
11
11
  handleWebSocketConnect,
12
12
  setup
13
- } from "./chunk-FXGRLLVS.js";
14
- import "./chunk-DSJ7EWMA.js";
13
+ } from "./chunk-G3R2O5VL.js";
14
+ import "./chunk-5C3MRFAU.js";
15
15
  import {
16
16
  createClientWithDriver,
17
17
  generateConnId,
18
18
  generateConnToken,
19
19
  lookupInRegistry
20
- } from "./chunk-X5I7MG2C.js";
21
- import "./chunk-LD3574QQ.js";
22
- import "./chunk-DYXH4LQ3.js";
23
- import "./chunk-YSIN4LW4.js";
20
+ } from "./chunk-ZD5CZSSF.js";
21
+ import "./chunk-3LGDBNZG.js";
22
+ import "./chunk-FNQGHSFJ.js";
23
+ import "./chunk-XQR2BHQP.js";
24
24
  import {
25
25
  ALLOWED_PUBLIC_HEADERS,
26
26
  PATH_CONNECT_WEBSOCKET,
27
27
  PATH_RAW_WEBSOCKET_PREFIX
28
- } from "./chunk-AOWJK5JM.js";
29
- import "./chunk-LO6XS2NJ.js";
28
+ } from "./chunk-HY3MZSKX.js";
29
+ import "./chunk-PO352AW7.js";
30
30
  import {
31
31
  noopNext,
32
32
  toUint8Array
33
- } from "./chunk-TGMO7RD4.js";
33
+ } from "./chunk-EY5EMNAB.js";
34
34
  import {
35
35
  UserError
36
- } from "./chunk-YPZFLUO6.js";
36
+ } from "./chunk-G64QUEDJ.js";
37
37
  export {
38
38
  ALLOWED_PUBLIC_HEADERS,
39
39
  InlineWebSocketAdapter2,
@@ -1,19 +1,19 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkHVSEPT2Gcjs = require('../chunk-HVSEPT2G.cjs');
5
- require('../chunk-KQGXJTBM.cjs');
6
- require('../chunk-3H2GFGYN.cjs');
7
- require('../chunk-YLCZ3HD7.cjs');
8
- require('../chunk-QSWYPQ5Y.cjs');
9
- require('../chunk-2WEKN2GP.cjs');
10
- require('../chunk-FFLADW7R.cjs');
11
- require('../chunk-RQGVUYBU.cjs');
12
- require('../chunk-4NPHS4GT.cjs');
13
- require('../chunk-63AELL54.cjs');
14
- require('../chunk-5QGQK44L.cjs');
4
+ var _chunkINNBRUPHcjs = require('../chunk-INNBRUPH.cjs');
5
+ require('../chunk-SXEHZODB.cjs');
6
+ require('../chunk-FNCNYJFG.cjs');
7
+ require('../chunk-HNC6Y6JC.cjs');
8
+ require('../chunk-DJDDJDWR.cjs');
9
+ require('../chunk-ATMZDEVA.cjs');
10
+ require('../chunk-Q6ESJU7P.cjs');
11
+ require('../chunk-3HCSWRUA.cjs');
12
+ require('../chunk-MF76IOZD.cjs');
13
+ require('../chunk-OWPBIHFM.cjs');
14
+ require('../chunk-KSRXX3Z4.cjs');
15
15
 
16
16
 
17
17
 
18
- exports.getPort = _chunkHVSEPT2Gcjs.getPort; exports.setupTest = _chunkHVSEPT2Gcjs.setupTest;
18
+ exports.getPort = _chunkINNBRUPHcjs.getPort; exports.setupTest = _chunkINNBRUPHcjs.setupTest;
19
19
  //# sourceMappingURL=mod.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { TestContext } from 'vitest';
2
- import { K as Registry, C as Client } from '../conn-Cc9WHuN4.cjs';
2
+ import { K as Registry, C as Client } from '../conn-CxCsTz2s.cjs';
3
3
  import 'hono/streaming';
4
4
  import 'hono/ws';
5
5
  import '../utils.cjs';
@@ -1,5 +1,5 @@
1
1
  import { TestContext } from 'vitest';
2
- import { K as Registry, C as Client } from '../conn-DfPG71FA.js';
2
+ import { K as Registry, C as Client } from '../conn-DhdZYlSX.js';
3
3
  import 'hono/streaming';
4
4
  import 'hono/ws';
5
5
  import '../utils.js';
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  getPort,
3
3
  setupTest
4
- } from "../chunk-XIR6UKM2.js";
5
- import "../chunk-FXGRLLVS.js";
6
- import "../chunk-DSJ7EWMA.js";
7
- import "../chunk-X5I7MG2C.js";
8
- import "../chunk-LD3574QQ.js";
9
- import "../chunk-DYXH4LQ3.js";
10
- import "../chunk-YSIN4LW4.js";
11
- import "../chunk-AOWJK5JM.js";
12
- import "../chunk-LO6XS2NJ.js";
13
- import "../chunk-TGMO7RD4.js";
14
- import "../chunk-YPZFLUO6.js";
4
+ } from "../chunk-SQPFZW4U.js";
5
+ import "../chunk-G3R2O5VL.js";
6
+ import "../chunk-5C3MRFAU.js";
7
+ import "../chunk-ZD5CZSSF.js";
8
+ import "../chunk-3LGDBNZG.js";
9
+ import "../chunk-FNQGHSFJ.js";
10
+ import "../chunk-XQR2BHQP.js";
11
+ import "../chunk-HY3MZSKX.js";
12
+ import "../chunk-PO352AW7.js";
13
+ import "../chunk-EY5EMNAB.js";
14
+ import "../chunk-G64QUEDJ.js";
15
15
  export {
16
16
  getPort,
17
17
  setupTest
@@ -11,8 +11,8 @@
11
11
 
12
12
 
13
13
 
14
- var _chunk63AELL54cjs = require('./chunk-63AELL54.cjs');
15
- require('./chunk-5QGQK44L.cjs');
14
+ var _chunkOWPBIHFMcjs = require('./chunk-OWPBIHFM.cjs');
15
+ require('./chunk-KSRXX3Z4.cjs');
16
16
 
17
17
 
18
18
 
@@ -26,5 +26,5 @@ require('./chunk-5QGQK44L.cjs');
26
26
 
27
27
 
28
28
 
29
- exports.SinglePromiseQueue = _chunk63AELL54cjs.SinglePromiseQueue; exports.VERSION = _chunk63AELL54cjs.VERSION; exports.assertUnreachable = _chunk63AELL54cjs.assertUnreachable; exports.bufferToArrayBuffer = _chunk63AELL54cjs.bufferToArrayBuffer; exports.combineUrlPath = _chunk63AELL54cjs.combineUrlPath; exports.dbg = _chunk63AELL54cjs.dbg; exports.getEnvUniversal = _chunk63AELL54cjs.getEnvUniversal; exports.httpUserAgent = _chunk63AELL54cjs.httpUserAgent; exports.promiseWithResolvers = _chunk63AELL54cjs.promiseWithResolvers; exports.setLongTimeout = _chunk63AELL54cjs.setLongTimeout; exports.stringifyError = _chunk63AELL54cjs.stringifyError; exports.toUint8Array = _chunk63AELL54cjs.toUint8Array;
29
+ exports.SinglePromiseQueue = _chunkOWPBIHFMcjs.SinglePromiseQueue; exports.VERSION = _chunkOWPBIHFMcjs.VERSION; exports.assertUnreachable = _chunkOWPBIHFMcjs.assertUnreachable; exports.bufferToArrayBuffer = _chunkOWPBIHFMcjs.bufferToArrayBuffer; exports.combineUrlPath = _chunkOWPBIHFMcjs.combineUrlPath; exports.dbg = _chunkOWPBIHFMcjs.dbg; exports.getEnvUniversal = _chunkOWPBIHFMcjs.getEnvUniversal; exports.httpUserAgent = _chunkOWPBIHFMcjs.httpUserAgent; exports.promiseWithResolvers = _chunkOWPBIHFMcjs.promiseWithResolvers; exports.setLongTimeout = _chunkOWPBIHFMcjs.setLongTimeout; exports.stringifyError = _chunkOWPBIHFMcjs.stringifyError; exports.toUint8Array = _chunkOWPBIHFMcjs.toUint8Array;
30
30
  //# sourceMappingURL=utils.cjs.map
@@ -11,8 +11,8 @@ import {
11
11
  setLongTimeout,
12
12
  stringifyError,
13
13
  toUint8Array
14
- } from "./chunk-TGMO7RD4.js";
15
- import "./chunk-YPZFLUO6.js";
14
+ } from "./chunk-EY5EMNAB.js";
15
+ import "./chunk-G64QUEDJ.js";
16
16
  export {
17
17
  SinglePromiseQueue,
18
18
  VERSION,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rivetkit",
3
- "version": "2.0.12",
3
+ "version": "2.0.14",
4
4
  "description": "Lightweight libraries for building stateful actors on edge platforms",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -54,17 +54,6 @@ export class ActorError extends Error {
54
54
  // Force stringify to return the message
55
55
  return this.message;
56
56
  }
57
-
58
- /**
59
- * Serialize error for HTTP response
60
- */
61
- serializeForHttp() {
62
- return {
63
- type: this.code,
64
- message: this.message,
65
- metadata: this.metadata,
66
- };
67
- }
68
57
  }
69
58
 
70
59
  export class InternalError extends ActorError {
@@ -168,16 +168,12 @@ export class ClientRaw {
168
168
 
169
169
  /**
170
170
  * Creates an instance of Client.
171
- *
172
- * @param {string} managerEndpoint - The manager endpoint. See {@link https://rivet.dev/docs/setup|Initial Setup} for instructions on getting the manager endpoint.
173
- * @param {ClientConfig} [opts] - Options for configuring the client.
174
- * @see {@link https://rivet.dev/docs/setup|Initial Setup}
175
171
  */
176
- public constructor(driver: ManagerDriver, opts?: ClientConfig) {
172
+ public constructor(driver: ManagerDriver, config: ClientConfig) {
177
173
  this.#driver = driver;
178
174
 
179
- this.#encodingKind = opts?.encoding ?? "bare";
180
- this[TRANSPORT_SYMBOL] = opts?.transport ?? "websocket";
175
+ this.#encodingKind = config.encoding ?? "bare";
176
+ this[TRANSPORT_SYMBOL] = config.transport ?? "websocket";
181
177
  }
182
178
 
183
179
  /**
@@ -406,7 +402,7 @@ export type AnyClient = Client<Registry<any>>;
406
402
 
407
403
  export function createClientWithDriver<A extends Registry<any>>(
408
404
  driver: ManagerDriver,
409
- config?: ClientConfig,
405
+ config: ClientConfig,
410
406
  ): Client<A> {
411
407
  const client = new ClientRaw(driver, config);
412
408
 
@@ -39,6 +39,9 @@ export const ClientConfigSchema = z.object({
39
39
 
40
40
  // See RunConfig.getUpgradeWebSocket
41
41
  getUpgradeWebSocket: z.custom<GetUpgradeWebSocket>().optional(),
42
+
43
+ /** Whether to automatically perform health checks when the client is created. */
44
+ disableHealthCheck: z.boolean().optional().default(false),
42
45
  });
43
46
 
44
47
  export type ClientConfig = z.infer<typeof ClientConfigSchema>;
@@ -8,6 +8,7 @@ import { HTTP_RESPONSE_ERROR_VERSIONED } from "@/schemas/client-protocol/version
8
8
  import {
9
9
  contentTypeForEncoding,
10
10
  deserializeWithEncoding,
11
+ encodingIsBinary,
11
12
  serializeWithEncoding,
12
13
  } from "@/serde";
13
14
  import { httpUserAgent } from "@/utils";
@@ -120,14 +121,18 @@ export async function sendHttpRequest<
120
121
  );
121
122
  }
122
123
 
124
+ // Decode metadata based on encoding - only binary encodings have CBOR-encoded metadata
125
+ let decodedMetadata: unknown;
126
+ if (responseData.metadata && encodingIsBinary(opts.encoding)) {
127
+ decodedMetadata = cbor.decode(new Uint8Array(responseData.metadata));
128
+ }
129
+
123
130
  // Throw structured error
124
131
  throw new ActorError(
125
132
  responseData.group,
126
133
  responseData.code,
127
134
  responseData.message,
128
- responseData.metadata
129
- ? cbor.decode(new Uint8Array(responseData.metadata))
130
- : undefined,
135
+ decodedMetadata,
131
136
  );
132
137
  }
133
138
 
@@ -5,10 +5,12 @@ import {
5
5
  getRequestEncoding,
6
6
  getRequestExposeInternalError,
7
7
  } from "@/actor/router-endpoints";
8
+ import type { RunnerConfig } from "@/registry/run-config";
9
+ import { getEndpoint } from "@/remote-manager-driver/api-utils";
8
10
  import { HttpResponseError } from "@/schemas/client-protocol/mod";
9
11
  import { HTTP_RESPONSE_ERROR_VERSIONED } from "@/schemas/client-protocol/versioned";
10
12
  import { encodingIsBinary, serializeWithEncoding } from "@/serde";
11
- import { bufferToArrayBuffer } from "@/utils";
13
+ import { bufferToArrayBuffer, VERSION } from "@/utils";
12
14
  import { getLogger, type Logger } from "./log";
13
15
  import { deconstructError, stringifyError } from "./utils";
14
16
 
@@ -79,3 +81,50 @@ export function handleRouteError(error: unknown, c: HonoContext) {
79
81
  // TODO: Remove any
80
82
  return c.body(output as any, { status: statusCode });
81
83
  }
84
+
85
+ /**
86
+ * Metadata response interface for the /metadata endpoint
87
+ */
88
+ export interface MetadataResponse {
89
+ runtime: string;
90
+ version: string;
91
+ runner?: {
92
+ kind:
93
+ | { serverless: Record<never, never> }
94
+ | { normal: Record<never, never> };
95
+ };
96
+ /**
97
+ * Endpoint that the client should connect to to access this runner.
98
+ *
99
+ * If defined, will override the endpoint the user has configured on startup.
100
+ *
101
+ * This is helpful if attempting to connect to a serverless runner, so the serverless runner can define where the main endpoint lives.
102
+ *
103
+ * This is also helpful for setting up clean redirects as needed.
104
+ **/
105
+ clientEndpoint?: string;
106
+ }
107
+
108
+ export function handleMetadataRequest(c: HonoContext, runConfig: RunnerConfig) {
109
+ const response: MetadataResponse = {
110
+ runtime: "rivetkit",
111
+ version: VERSION,
112
+ runner: {
113
+ kind:
114
+ runConfig.runnerKind === "serverless"
115
+ ? { serverless: {} }
116
+ : { normal: {} },
117
+ },
118
+ clientEndpoint: getEndpoint(runConfig),
119
+ };
120
+
121
+ return c.json(response);
122
+ }
123
+
124
+ export function handleHealthRequest(c: HonoContext) {
125
+ return c.json({
126
+ status: "ok",
127
+ runtime: "rivetkit",
128
+ version: VERSION,
129
+ });
130
+ }
@@ -3,6 +3,7 @@ import { createNodeWebSocket, type NodeWebSocket } from "@hono/node-ws";
3
3
  import { bundleRequire } from "bundle-require";
4
4
  import invariant from "invariant";
5
5
  import { describe } from "vitest";
6
+ import { ClientConfigSchema } from "@/client/config";
6
7
  import type { Encoding, Transport } from "@/client/mod";
7
8
  import { configureInspectorAccessToken } from "@/inspector/utils";
8
9
  import { createManagerRouter } from "@/manager/router";
@@ -230,7 +231,10 @@ export async function createTestRuntime(
230
231
 
231
232
  // Create router
232
233
  const managerDriver = driver.manager(registry.config, config);
233
- const client = createClientWithDriver(managerDriver);
234
+ const client = createClientWithDriver(
235
+ managerDriver,
236
+ ClientConfigSchema.parse({}),
237
+ );
234
238
  configureInspectorAccessToken(config, managerDriver);
235
239
  const { router } = createManagerRouter(
236
240
  registry.config,
@@ -14,12 +14,6 @@ export function chooseDefaultDriver(runConfig: RunnerConfig): DriverConfig {
14
14
  );
15
15
  }
16
16
 
17
- if (runConfig.runnerKind === "serverless" && !runConfig.endpoint) {
18
- throw new UserError(
19
- "Cannot use 'serverless' runnerKind without the 'endpoint' config set.",
20
- );
21
- }
22
-
23
17
  if (runConfig.driver) {
24
18
  return runConfig.driver;
25
19
  }
@@ -177,16 +177,9 @@ export class EngineActorDriver implements ActorDriver {
177
177
  async readPersistedData(actorId: string): Promise<Uint8Array | undefined> {
178
178
  const handler = this.#actors.get(actorId);
179
179
  if (!handler) throw new Error(`Actor ${actorId} not loaded`);
180
- if (handler.persistedData) return handler.persistedData;
181
180
 
182
- const [value] = await this.#runner.kvGet(actorId, [KEYS.PERSIST_DATA]);
183
-
184
- if (value !== null) {
185
- handler.persistedData = value;
186
- return value;
187
- } else {
188
- return undefined;
189
- }
181
+ // This was loaded during actor startup
182
+ return handler.persistedData;
190
183
  }
191
184
 
192
185
  async writePersistedData(actorId: string, data: Uint8Array): Promise<void> {
@@ -251,11 +244,24 @@ export class EngineActorDriver implements ActorDriver {
251
244
  // Get or create handler
252
245
  let handler = this.#actors.get(actorId);
253
246
  if (!handler) {
247
+ // IMPORTANT: We must set the handler in the map synchronously before doing any
248
+ // async operations to avoid race conditions where multiple calls might try to
249
+ // create the same handler simultaneously.
254
250
  handler = {
255
251
  actorStartPromise: promiseWithResolvers(),
256
- persistedData: serializeEmptyPersistData(input),
252
+ persistedData: undefined,
257
253
  };
258
254
  this.#actors.set(actorId, handler);
255
+
256
+ // Load persisted data from storage
257
+ const [persistedValue] = await this.#runner.kvGet(actorId, [
258
+ KEYS.PERSIST_DATA,
259
+ ]);
260
+
261
+ handler.persistedData =
262
+ persistedValue !== null
263
+ ? persistedValue
264
+ : serializeEmptyPersistData(input);
259
265
  }
260
266
 
261
267
  const name = runConfig.name as string;
@@ -6,6 +6,7 @@ import {
6
6
  handleWebSocketConnect,
7
7
  } from "@/actor/router-endpoints";
8
8
  import { createClientWithDriver } from "@/client/client";
9
+ import { ClientConfigSchema } from "@/client/config";
9
10
  import { InlineWebSocketAdapter2 } from "@/common/inline-websocket-adapter2";
10
11
  import { noopNext } from "@/common/utils";
11
12
  import type {
@@ -116,7 +117,10 @@ export class FileSystemManagerDriver implements ManagerDriver {
116
117
  }
117
118
 
118
119
  // Actors run on the same node as the manager, so we create a dummy actor router that we route requests to
119
- const inlineClient = createClientWithDriver(this);
120
+ const inlineClient = createClientWithDriver(
121
+ this,
122
+ ClientConfigSchema.parse({}),
123
+ );
120
124
  this.#actorDriver = this.#driverConfig.actor(
121
125
  registryConfig,
122
126
  runConfig,
@@ -27,6 +27,8 @@ const defaultInspectorOrigins = [
27
27
  "http://localhost:43709",
28
28
  "https://studio.rivet.gg",
29
29
  "https://inspect.rivet.dev",
30
+ "https://dashboard.rivet.dev",
31
+ "https://dashboard.staging.rivet.dev",
30
32
  ];
31
33
 
32
34
  const defaultCors: CorsOptions = {
@@ -24,9 +24,12 @@ import {
24
24
  WS_PROTOCOL_TRANSPORT,
25
25
  } from "@/common/actor-router-consts";
26
26
  import {
27
+ handleHealthRequest,
28
+ handleMetadataRequest,
27
29
  handleRouteError,
28
30
  handleRouteNotFound,
29
31
  loggerMiddleware,
32
+ type MetadataResponse,
30
33
  } from "@/common/router";
31
34
  import {
32
35
  assertUnreachable,
@@ -207,13 +210,9 @@ function addServerlessRoutes(
207
210
  return await actorDriver.serverlessHandleStart(c);
208
211
  });
209
212
 
210
- router.get("/health", (c) => {
211
- return c.json({
212
- status: "ok",
213
- runtime: "rivetkit",
214
- version: VERSION,
215
- });
216
- });
213
+ router.get("/health", (c) => handleHealthRequest(c));
214
+
215
+ router.get("/metadata", (c) => handleMetadataRequest(c, runConfig));
217
216
  }
218
217
 
219
218
  function addManagerRoutes(
@@ -642,14 +641,9 @@ function addManagerRoutes(
642
641
  });
643
642
  }
644
643
 
645
- router.get("/health", (c) => {
646
- return c.json({
647
- status: "ok",
648
- rivetkit: {
649
- version: VERSION,
650
- },
651
- });
652
- });
644
+ router.get("/health", (c) => handleHealthRequest(c));
645
+
646
+ router.get("/metadata", (c) => handleMetadataRequest(c, runConfig));
653
647
 
654
648
  managerDriver.modifyManagerRouter?.(
655
649
  registryConfig,