rivetkit 2.3.3 → 2.3.5-rc.1

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 (161) hide show
  1. package/dist/browser/client.d.ts +157 -9
  2. package/dist/browser/client.js +518 -542
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.d.ts +101 -2
  5. package/dist/browser/inspector/client.js +1245 -227
  6. package/dist/browser/inspector/client.js.map +1 -1
  7. package/dist/tsup/agent-os/index.cjs +103 -36
  8. package/dist/tsup/agent-os/index.cjs.map +1 -1
  9. package/dist/tsup/agent-os/index.d.cts +159 -11
  10. package/dist/tsup/agent-os/index.d.ts +159 -11
  11. package/dist/tsup/agent-os/index.js +103 -36
  12. package/dist/tsup/agent-os/index.js.map +1 -1
  13. package/dist/tsup/{chunk-34P567PO.cjs → chunk-4XKED5P5.cjs} +145 -176
  14. package/dist/tsup/chunk-4XKED5P5.cjs.map +1 -0
  15. package/dist/tsup/{chunk-PYO2U53V.cjs → chunk-6HQCLWAW.cjs} +384 -4
  16. package/dist/tsup/chunk-6HQCLWAW.cjs.map +1 -0
  17. package/dist/tsup/{chunk-JZ7TWV65.js → chunk-7AFZMFPQ.js} +15 -1
  18. package/dist/tsup/chunk-7AFZMFPQ.js.map +1 -0
  19. package/dist/tsup/{chunk-BLDO2FKO.js → chunk-B4IZU537.js} +382 -2
  20. package/dist/tsup/chunk-B4IZU537.js.map +1 -0
  21. package/dist/tsup/{chunk-3MHDOUD7.cjs → chunk-G3CCRCTK.cjs} +14 -9
  22. package/dist/tsup/chunk-G3CCRCTK.cjs.map +1 -0
  23. package/dist/tsup/{chunk-CXRPENO3.js → chunk-GAV4PKFT.js} +15 -46
  24. package/dist/tsup/{chunk-CXRPENO3.js.map → chunk-GAV4PKFT.js.map} +1 -1
  25. package/dist/tsup/{chunk-HXUEHHJF.js → chunk-JI6GZ2C2.js} +2 -11
  26. package/dist/tsup/{chunk-HXUEHHJF.js.map → chunk-JI6GZ2C2.js.map} +1 -1
  27. package/dist/tsup/{chunk-YUEC5SEY.cjs → chunk-M3FCXL3Q.cjs} +3 -3
  28. package/dist/tsup/{chunk-YUEC5SEY.cjs.map → chunk-M3FCXL3Q.cjs.map} +1 -1
  29. package/dist/tsup/{chunk-KEKWJECX.js → chunk-MGTSVSUC.js} +2 -2
  30. package/dist/tsup/{chunk-VE2X4KMG.cjs → chunk-MYWZCDML.cjs} +2 -11
  31. package/dist/tsup/chunk-MYWZCDML.cjs.map +1 -0
  32. package/dist/tsup/{chunk-DFA7SYSW.js → chunk-NIC3QLKL.js} +3 -3
  33. package/dist/tsup/{chunk-BZM4PMFS.js → chunk-P4OGQ4JL.js} +5 -7
  34. package/dist/tsup/{chunk-BZM4PMFS.js.map → chunk-P4OGQ4JL.js.map} +1 -1
  35. package/dist/tsup/{chunk-NT2NK3VT.js → chunk-PAG6G46L.js} +2 -2
  36. package/dist/tsup/{chunk-XIX5DOZN.js → chunk-SHBE77IT.js} +14 -9
  37. package/dist/tsup/chunk-SHBE77IT.js.map +1 -0
  38. package/dist/tsup/{chunk-TYLP3U4Y.cjs → chunk-TNIWIUNV.cjs} +9 -11
  39. package/dist/tsup/chunk-TNIWIUNV.cjs.map +1 -0
  40. package/dist/tsup/{chunk-S644FL73.cjs → chunk-TR5NLR5V.cjs} +4 -4
  41. package/dist/tsup/{chunk-S644FL73.cjs.map → chunk-TR5NLR5V.cjs.map} +1 -1
  42. package/dist/tsup/{chunk-ZA7FLHKH.cjs → chunk-UEULFXUI.cjs} +16 -2
  43. package/dist/tsup/chunk-UEULFXUI.cjs.map +1 -0
  44. package/dist/tsup/{chunk-X63ROSOG.cjs → chunk-UJ2FQY63.cjs} +7 -7
  45. package/dist/tsup/{chunk-X63ROSOG.cjs.map → chunk-UJ2FQY63.cjs.map} +1 -1
  46. package/dist/tsup/client/mod.cjs +7 -8
  47. package/dist/tsup/client/mod.cjs.map +1 -1
  48. package/dist/tsup/client/mod.d.cts +5 -4
  49. package/dist/tsup/client/mod.d.ts +5 -4
  50. package/dist/tsup/client/mod.js +6 -7
  51. package/dist/tsup/common/log.cjs +2 -2
  52. package/dist/tsup/common/log.js +1 -1
  53. package/dist/tsup/common/websocket.cjs +3 -3
  54. package/dist/tsup/common/websocket.js +2 -2
  55. package/dist/tsup/{config-D49x8NpL.d.cts → config-BxOimoGX.d.cts} +16 -0
  56. package/dist/tsup/{config-D49x8NpL.d.ts → config-BxOimoGX.d.ts} +16 -0
  57. package/dist/tsup/{config-ZkIsRFsN.d.ts → config-BzdqbLAP.d.ts} +164 -27
  58. package/dist/tsup/{config-BfBhjEbk.d.cts → config-CPPEwn_e.d.cts} +164 -27
  59. package/dist/tsup/{context-sZ9GlaBK.d.cts → context-DSA9gFXB.d.cts} +2 -2
  60. package/dist/tsup/{context-B7-84u9K.d.ts → context-wWv-K2K_.d.ts} +2 -2
  61. package/dist/tsup/db/drizzle.cjs +120 -68
  62. package/dist/tsup/db/drizzle.cjs.map +1 -1
  63. package/dist/tsup/db/drizzle.d.cts +8 -3
  64. package/dist/tsup/db/drizzle.d.ts +8 -3
  65. package/dist/tsup/db/drizzle.js +120 -68
  66. package/dist/tsup/db/drizzle.js.map +1 -1
  67. package/dist/tsup/db/mod.cjs +74 -22
  68. package/dist/tsup/db/mod.cjs.map +1 -1
  69. package/dist/tsup/db/mod.d.cts +4 -3
  70. package/dist/tsup/db/mod.d.ts +4 -3
  71. package/dist/tsup/db/mod.js +74 -22
  72. package/dist/tsup/db/mod.js.map +1 -1
  73. package/dist/tsup/dynamic/mod.cjs +2 -2
  74. package/dist/tsup/dynamic/mod.d.cts +3 -3
  75. package/dist/tsup/dynamic/mod.d.ts +3 -3
  76. package/dist/tsup/dynamic/mod.js +1 -1
  77. package/dist/tsup/inspector/mod.cjs +4 -5
  78. package/dist/tsup/inspector/mod.cjs.map +1 -1
  79. package/dist/tsup/inspector/mod.js +3 -4
  80. package/dist/tsup/inspector/mod.js.map +1 -1
  81. package/dist/tsup/inspector-tab/mod.cjs +2 -2
  82. package/dist/tsup/inspector-tab/mod.cjs.map +1 -1
  83. package/dist/tsup/inspector-tab/mod.d.cts +5 -5
  84. package/dist/tsup/inspector-tab/mod.d.ts +5 -5
  85. package/dist/tsup/inspector-tab/mod.js +1 -1
  86. package/dist/tsup/inspector-tab/mod.js.map +1 -1
  87. package/dist/tsup/mod.cjs +605 -158
  88. package/dist/tsup/mod.cjs.map +1 -1
  89. package/dist/tsup/mod.d.cts +5 -5
  90. package/dist/tsup/mod.d.ts +5 -5
  91. package/dist/tsup/mod.js +528 -81
  92. package/dist/tsup/mod.js.map +1 -1
  93. package/dist/tsup/test/mod.cjs +10 -11
  94. package/dist/tsup/test/mod.cjs.map +1 -1
  95. package/dist/tsup/test/mod.d.cts +3 -3
  96. package/dist/tsup/test/mod.d.ts +3 -3
  97. package/dist/tsup/test/mod.js +6 -7
  98. package/dist/tsup/test/mod.js.map +1 -1
  99. package/dist/tsup/utils-CV0akuDD.d.ts +162 -0
  100. package/dist/tsup/utils-DQDCphrl.d.cts +162 -0
  101. package/dist/tsup/utils.cjs +6 -2
  102. package/dist/tsup/utils.cjs.map +1 -1
  103. package/dist/tsup/utils.d.cts +3 -146
  104. package/dist/tsup/utils.d.ts +3 -146
  105. package/dist/tsup/utils.js +5 -1
  106. package/dist/tsup/workflow/mod.cjs +198 -151
  107. package/dist/tsup/workflow/mod.cjs.map +1 -1
  108. package/dist/tsup/workflow/mod.d.cts +5 -5
  109. package/dist/tsup/workflow/mod.d.ts +5 -5
  110. package/dist/tsup/workflow/mod.js +187 -140
  111. package/dist/tsup/workflow/mod.js.map +1 -1
  112. package/package.json +8 -8
  113. package/src/actor/config.test.ts +14 -0
  114. package/src/actor/config.ts +104 -16
  115. package/src/actor/definition.ts +18 -7
  116. package/src/agent-os/actor/index.ts +2 -2
  117. package/src/common/bare/generated/actor-runtime-socket-protocol/v1.ts +848 -0
  118. package/src/common/bare/generated/inspector/v6.ts +1367 -0
  119. package/src/common/database/config.ts +24 -0
  120. package/src/common/database/mod.test.ts +148 -59
  121. package/src/common/database/mod.ts +93 -23
  122. package/src/common/database/native-database.test.ts +9 -0
  123. package/src/common/database/native-database.ts +151 -0
  124. package/src/common/database/shared.ts +15 -0
  125. package/src/common/encoding.ts +28 -21
  126. package/src/db/drizzle.test.ts +157 -0
  127. package/src/db/drizzle.ts +170 -79
  128. package/src/dynamic/isolate-runtime.ts +0 -2
  129. package/src/engine-client/driver.ts +0 -15
  130. package/src/engine-client/mod.ts +0 -41
  131. package/src/inspector/client.browser.ts +69 -8
  132. package/src/inspector-tab/mod.ts +1 -0
  133. package/src/registry/config/index.ts +1 -35
  134. package/src/registry/napi-runtime.ts +204 -16
  135. package/src/registry/native.ts +200 -30
  136. package/src/registry/runtime.ts +146 -3
  137. package/src/registry/wasm-runtime.ts +217 -6
  138. package/src/utils.ts +3 -0
  139. package/src/workflow/context.ts +5 -27
  140. package/src/workflow/driver.test.ts +62 -0
  141. package/src/workflow/driver.ts +231 -113
  142. package/src/workflow/mod.ts +3 -3
  143. package/dist/tsup/chunk-34P567PO.cjs.map +0 -1
  144. package/dist/tsup/chunk-3MHDOUD7.cjs.map +0 -1
  145. package/dist/tsup/chunk-APW73HCH.cjs +0 -382
  146. package/dist/tsup/chunk-APW73HCH.cjs.map +0 -1
  147. package/dist/tsup/chunk-BLDO2FKO.js.map +0 -1
  148. package/dist/tsup/chunk-DHXWD4DF.js +0 -382
  149. package/dist/tsup/chunk-DHXWD4DF.js.map +0 -1
  150. package/dist/tsup/chunk-JZ7TWV65.js.map +0 -1
  151. package/dist/tsup/chunk-PYO2U53V.cjs.map +0 -1
  152. package/dist/tsup/chunk-TYLP3U4Y.cjs.map +0 -1
  153. package/dist/tsup/chunk-VE2X4KMG.cjs.map +0 -1
  154. package/dist/tsup/chunk-XIX5DOZN.js.map +0 -1
  155. package/dist/tsup/chunk-ZA7FLHKH.cjs.map +0 -1
  156. package/src/actor/driver.ts +0 -141
  157. package/src/actor/instance/mod.ts +0 -2484
  158. package/src/drivers/engine/actor-driver.ts +0 -2473
  159. /package/dist/tsup/{chunk-KEKWJECX.js.map → chunk-MGTSVSUC.js.map} +0 -0
  160. /package/dist/tsup/{chunk-DFA7SYSW.js.map → chunk-NIC3QLKL.js.map} +0 -0
  161. /package/dist/tsup/{chunk-NT2NK3VT.js.map → chunk-PAG6G46L.js.map} +0 -0
@@ -20,6 +20,7 @@ var BUILTIN_INSPECTOR_TAB_IDS = [
20
20
  "database",
21
21
  "state",
22
22
  "queue",
23
+ "schedules",
23
24
  "connections",
24
25
  "console"
25
26
  ];
@@ -116,6 +117,8 @@ var GlobalActorOptionsBaseSchema = _v4.z.object({
116
117
  name: _v4.z.string().optional(),
117
118
  /** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */
118
119
  icon: _v4.z.string().optional(),
120
+ /** Enables the experimental Actor Runtime Socket for this actor. */
121
+ enableActorRuntimeSocket: _v4.z.boolean().default(false),
119
122
  /**
120
123
  * Can hibernate WebSockets for onWebSocket.
121
124
  *
@@ -147,10 +150,12 @@ var InstanceActorOptionsBaseSchema = _v4.z.object({
147
150
  noSleep: _v4.z.boolean().default(false),
148
151
  sleepTimeout: _v4.z.number().positive().default(3e4),
149
152
  maxQueueSize: _v4.z.number().positive().default(1e3),
153
+ /** Maximum pending one-shot and recurring schedules. */
154
+ maxSchedules: _v4.z.number().int().nonnegative().default(1e3),
150
155
  maxQueueMessageSize: _v4.z.number().positive().default(64 * 1024),
151
- /** Override RivetKit's workflow preload budget for this actor. Set to 0 to disable workflow preloading. */
156
+ /** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */
152
157
  preloadMaxWorkflowBytes: _v4.z.number().nonnegative().optional(),
153
- /** Override RivetKit's connections preload budget for this actor. Set to 0 to disable connections preloading. */
158
+ /** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */
154
159
  preloadMaxConnectionsBytes: _v4.z.number().nonnegative().optional()
155
160
  }).strict();
156
161
  var InstanceActorOptionsSchema = InstanceActorOptionsBaseSchema.prefault(() => ({}));
@@ -209,6 +214,9 @@ var DocActorOptionsSchema = _v4.z.object({
209
214
  icon: _v4.z.string().optional().describe(
210
215
  "Icon for the actor in the Inspector UI. Can be an emoji (e.g., '\u{1F680}') or FontAwesome icon name (e.g., 'rocket')."
211
216
  ),
217
+ enableActorRuntimeSocket: _v4.z.boolean().optional().describe(
218
+ "Enables the experimental Actor Runtime Socket for this actor. Default: false"
219
+ ),
212
220
  createVarsTimeout: _v4.z.number().optional().describe("Timeout in ms for createVars handler. Default: 5000"),
213
221
  createConnStateTimeout: _v4.z.number().optional().describe(
214
222
  "Timeout in ms for createConnState handler. Default: 5000"
@@ -246,17 +254,14 @@ var DocActorOptionsSchema = _v4.z.object({
246
254
  maxQueueSize: _v4.z.number().optional().describe(
247
255
  "Maximum number of queue messages before rejecting new messages. Default: 1000"
248
256
  ),
257
+ maxSchedules: _v4.z.number().int().nonnegative().optional().describe(
258
+ "Maximum pending one-shot and recurring schedules before rejecting new schedules. Default: 1000"
259
+ ),
249
260
  maxQueueMessageSize: _v4.z.number().optional().describe(
250
261
  "Maximum size of each queue message in bytes. Default: 65536"
251
262
  ),
252
263
  canHibernateWebSocket: _v4.z.boolean().optional().describe(
253
264
  "Whether WebSockets using onWebSocket can be hibernated. WebSockets using actions/events are hibernatable by default. Default: false"
254
- ),
255
- preloadMaxWorkflowBytes: _v4.z.number().optional().describe(
256
- "Override RivetKit's workflow preload budget for this actor. Set to 0 to disable workflow preloading."
257
- ),
258
- preloadMaxConnectionsBytes: _v4.z.number().optional().describe(
259
- "Override RivetKit's connections preload budget for this actor. Set to 0 to disable connections preloading."
260
265
  )
261
266
  }).describe("Actor options for timeouts and behavior configuration.");
262
267
  var DocActorConfigSchema = _v4.z.object({
@@ -345,4 +350,4 @@ var DocActorConfigSchema = _v4.z.object({
345
350
 
346
351
 
347
352
  exports.ACTOR_CONTEXT_INTERNAL_SYMBOL = ACTOR_CONTEXT_INTERNAL_SYMBOL; exports.RAW_STATE_SYMBOL = RAW_STATE_SYMBOL; exports.CONN_STATE_MANAGER_SYMBOL = CONN_STATE_MANAGER_SYMBOL; exports.BUILTIN_INSPECTOR_TAB_IDS = BUILTIN_INSPECTOR_TAB_IDS; exports.BuiltinInspectorTabIdSchema = BuiltinInspectorTabIdSchema; exports.CustomInspectorTabEntrySchema = CustomInspectorTabEntrySchema; exports.HideInspectorTabEntrySchema = HideInspectorTabEntrySchema; exports.InspectorTabEntrySchema = InspectorTabEntrySchema; exports.ActorInspectorConfigSchema = ActorInspectorConfigSchema; exports.RUN_FUNCTION_CONFIG_SYMBOL = RUN_FUNCTION_CONFIG_SYMBOL; exports.getRunFunction = getRunFunction; exports.getRunMetadata = getRunMetadata; exports.getRunInspectorConfig = getRunInspectorConfig; exports.disposeRunInspector = disposeRunInspector; exports.ActorConfigSchema = ActorConfigSchema;
348
- //# sourceMappingURL=chunk-3MHDOUD7.cjs.map
353
+ //# sourceMappingURL=chunk-G3CCRCTK.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-G3CCRCTK.cjs","../../src/actor/config.ts"],"names":[],"mappings":"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","file":"/home/runner/work/rivet/rivet/rivetkit-typescript/packages/rivetkit/dist/tsup/chunk-G3CCRCTK.cjs","sourcesContent":[null,"import { z } from \"zod/v4\";\nimport type { Client } from \"@/client/client\";\nimport type {\n\tAnyDatabaseProvider,\n\tInferDatabaseClient,\n} from \"@/common/database/config\";\nimport type { UniversalWebSocket } from \"@/common/websocket-interface\";\nimport type { Registry } from \"@/registry\";\nimport type { BaseActorDefinition } from \"./definition\";\nimport type {\n\tEventSchemaConfig,\n\tInferQueueCompleteMap,\n\tInferSchemaMap,\n\tPrimitiveSchema,\n\tQueueSchemaConfig,\n} from \"./schema\";\n\nexport const DEFAULT_SLEEP_GRACE_PERIOD = 15_000;\n\nexport const ACTOR_CONTEXT_INTERNAL_SYMBOL = Symbol(\n\t\"rivetkit.actor_context_internal\",\n);\nexport const RAW_STATE_SYMBOL = Symbol(\"rivetkit.raw_state\");\nexport const CONN_DRIVER_SYMBOL = Symbol(\"rivetkit.conn_driver\");\nexport const CONN_STATE_MANAGER_SYMBOL = Symbol(\"rivetkit.conn_state_manager\");\n\nexport interface ActorLogger {\n\tlevel: any;\n\tfatal: any;\n\ttrace: any;\n\tsilent: any;\n\tmsgPrefix: any;\n\tdebug: any;\n\tinfo: any;\n\twarn: any;\n\terror: any;\n\t[key: string]: any;\n}\n\ntype ActorKvValueType = \"text\" | \"arrayBuffer\" | \"binary\";\ntype ActorKvKeyType = \"text\" | \"binary\";\ntype ActorKvValueTypeMap = {\n\ttext: string;\n\tarrayBuffer: ArrayBuffer;\n\tbinary: Uint8Array;\n};\ntype ActorKvKeyTypeMap = {\n\ttext: string;\n\tbinary: Uint8Array;\n};\ntype ActorKvValueOptions<T extends ActorKvValueType = \"text\"> = {\n\ttype?: T;\n};\ntype ActorKvListOptions<\n\tT extends ActorKvValueType = \"text\",\n\tK extends ActorKvKeyType = \"text\",\n> = ActorKvValueOptions<T> & {\n\tkeyType?: K;\n\treverse?: boolean;\n\tlimit?: number;\n};\n\ntype ActorClientFor<T> = T extends Registry<any> ? Client<T> : T;\n\n/**\n * @deprecated Actor KV is deprecated. Use embedded SQLite (`c.db` / `c.sql`)\n * or actor state instead.\n */\nexport interface ActorKv {\n\tget<T extends ActorKvValueType = \"text\">(\n\t\tkey: Uint8Array | string,\n\t\toptions?: ActorKvValueOptions<T>,\n\t): Promise<ActorKvValueTypeMap[T] | null>;\n\tput<T extends ActorKvValueType = \"text\">(\n\t\tkey: Uint8Array | string,\n\t\tvalue: Uint8Array | string | ArrayBuffer,\n\t\toptions?: ActorKvValueOptions<T>,\n\t): Promise<void>;\n\tdelete(key: Uint8Array | string): Promise<void>;\n\tbatchPut(entries: [Uint8Array, Uint8Array][]): Promise<void>;\n\tbatchGet(keys: Uint8Array[]): Promise<(Uint8Array | null)[]>;\n\tbatchDelete(keys: Uint8Array[]): Promise<void>;\n\tdeleteRange(start: Uint8Array, end: Uint8Array): Promise<void>;\n\tlistPrefix<\n\t\tT extends ActorKvValueType = \"text\",\n\t\tK extends ActorKvKeyType = \"text\",\n\t>(\n\t\tprefix: Uint8Array | string,\n\t\toptions?: ActorKvListOptions<T, K>,\n\t): Promise<Array<[ActorKvKeyTypeMap[K], ActorKvValueTypeMap[T]]>>;\n\tlistRange<\n\t\tT extends ActorKvValueType = \"text\",\n\t\tK extends ActorKvKeyType = \"text\",\n\t>(\n\t\tstart: Uint8Array | string,\n\t\tend: Uint8Array | string,\n\t\toptions?: ActorKvListOptions<T, K>,\n\t): Promise<Array<[ActorKvKeyTypeMap[K], ActorKvValueTypeMap[T]]>>;\n\tlist<\n\t\tT extends ActorKvValueType = \"text\",\n\t\tK extends ActorKvKeyType = \"text\",\n\t>(\n\t\tprefix: Uint8Array | string,\n\t\toptions?: ActorKvListOptions<T, K>,\n\t): Promise<Array<[ActorKvKeyTypeMap[K], ActorKvValueTypeMap[T]]>>;\n\t[key: string]: any;\n}\n\nexport interface ActorSchedule {\n\tafter(\n\t\tduration: number,\n\t\taction: string,\n\t\t...args: unknown[]\n\t): Promise<string>;\n\tat(timestamp: number, action: string, ...args: unknown[]): Promise<string>;\n\tcancel(id: string): Promise<boolean>;\n\tget(id: string): Promise<ScheduledEventInfo | undefined>;\n\tlist(): Promise<ScheduledEventInfo[]>;\n\t[key: string]: any;\n}\n\nexport interface ActorCronSetOptions {\n\tname: string;\n\texpression: string;\n\taction: string;\n\targs?: unknown[];\n\ttimezone?: string;\n\t/** Defaults to 100. Set to 0 to disable and clear history. Maximum 1,000. */\n\tmaxHistory?: number;\n}\n\nexport interface ActorCronEveryOptions {\n\tname: string;\n\t/** Fixed interval in milliseconds. Minimum 5,000. */\n\tinterval: number;\n\taction: string;\n\targs?: unknown[];\n\t/** Defaults to 100. Set to 0 to disable and clear history. Maximum 1,000. */\n\tmaxHistory?: number;\n}\n\nexport interface ActorCron {\n\tset(options: ActorCronSetOptions): Promise<void>;\n\tevery(options: ActorCronEveryOptions): Promise<void>;\n\tget(name: string): Promise<CronJobInfo | undefined>;\n\tlist(): Promise<CronJobInfo[]>;\n\tdelete(name: string): Promise<boolean>;\n\thistory(name: string, options?: { limit?: number }): Promise<CronFire[]>;\n\t[key: string]: any;\n}\n\nexport interface ScheduledEventInfo {\n\tid: string;\n\taction: string;\n\targs: unknown[];\n\trunAt: number;\n}\n\nexport type CronJobInfo = {\n\tname: string;\n\taction: string;\n\targs: unknown[];\n\tnextRunAt: number;\n\tlastRunAt?: number;\n\tmaxHistory: number;\n} & (\n\t| { kind: \"cron\"; expression: string; timezone: string }\n\t| { kind: \"every\"; interval: number }\n);\n\nexport interface ScheduledFireInfo {\n\tkind: \"at\" | \"cron\" | \"every\";\n\tid: string;\n\tname?: string;\n\tscheduledAt: number;\n\tfiredAt: number;\n}\n\nexport interface CronFire {\n\taction: string;\n\tscheduledAt: number;\n\tfiredAt: number;\n\tfinishedAt?: number;\n\tresult: \"running\" | \"ok\" | \"error\" | \"skipped\";\n\terror?: {\n\t\tgroup: string;\n\t\tcode: string;\n\t\tmessage: string;\n\t\tmetadata?: unknown;\n\t};\n}\n\nexport type QueueMessageOf<Name extends string, Body> = {\n\tid: number | bigint;\n\tname: Name;\n\tbody: Body;\n\tcreatedAt: number;\n\t[key: string]: unknown;\n};\n\nexport type QueueName<TQueues extends QueueSchemaConfig> = keyof TQueues &\n\tstring;\nexport type QueueFilterName<TQueues extends QueueSchemaConfig> =\n\tkeyof TQueues extends never ? string : QueueName<TQueues>;\n\ntype QueueMessageForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = keyof TQueues extends never\n\t? QueueMessageOf<string, unknown>\n\t: TName extends QueueName<TQueues>\n\t\t? QueueMessageOf<TName, InferSchemaMap<TQueues>[TName]>\n\t\t: never;\n\ntype QueueCompleteArgs<T> = undefined extends T\n\t? [response?: T]\n\t: [response: T];\n\ntype QueueCompleteArgsForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = keyof TQueues extends never\n\t? [response?: unknown]\n\t: TName extends QueueName<TQueues>\n\t\t? [InferQueueCompleteMap<TQueues>[TName]] extends [never]\n\t\t\t? [response?: unknown]\n\t\t\t: QueueCompleteArgs<InferQueueCompleteMap<TQueues>[TName]>\n\t\t: [response?: unknown];\n\ntype QueueCompletableMessageForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = QueueMessageForName<TQueues, TName> & {\n\tcomplete(...args: QueueCompleteArgsForName<TQueues, TName>): Promise<void>;\n};\n\ntype QueueCompletionResultForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n> = keyof TQueues extends never\n\t? unknown | undefined\n\t: TName extends QueueName<TQueues>\n\t\t? InferQueueCompleteMap<TQueues>[TName] | undefined\n\t\t: unknown | undefined;\n\nexport type QueueResultMessageForName<\n\tTQueues extends QueueSchemaConfig,\n\tTName extends QueueFilterName<TQueues>,\n\tTCompletable extends boolean,\n> = TCompletable extends true\n\t? QueueCompletableMessageForName<TQueues, TName>\n\t: QueueMessageForName<TQueues, TName>;\n\nexport interface QueueNextOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueNextBatchOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tcount?: number;\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueWaitOptions<TCompletable extends boolean = boolean> {\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueEnqueueAndWaitOptions {\n\ttimeout?: number;\n\tsignal?: AbortSignal;\n}\n\nexport interface QueueTryNextOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueTryNextBatchOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tcount?: number;\n\tcompletable?: TCompletable;\n}\n\nexport interface QueueIterOptions<\n\tTName extends string = string,\n\tTCompletable extends boolean = boolean,\n> {\n\tnames?: readonly TName[];\n\tsignal?: AbortSignal;\n\tcompletable?: TCompletable;\n}\n\nexport interface ActorQueue<\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> {\n\tsend<TName extends QueueFilterName<TQueues>>(\n\t\tname: TName,\n\t\tbody: QueueMessageForName<TQueues, TName>[\"body\"],\n\t): Promise<any>;\n\tnext<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(opts?: QueueNextOptions<TName, TCompletable>): Promise<any>;\n\tnextBatch<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(opts?: QueueNextBatchOptions<TName, TCompletable>): Promise<any[]>;\n\twaitForNames<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(\n\t\tnames: readonly TName[],\n\t\topts?: QueueWaitOptions<TCompletable>,\n\t): Promise<any>;\n\tenqueueAndWait<const TName extends QueueFilterName<TQueues>>(\n\t\tname: TName,\n\t\tbody: QueueMessageForName<TQueues, TName>[\"body\"],\n\t\topts?: QueueEnqueueAndWaitOptions,\n\t): Promise<QueueCompletionResultForName<TQueues, TName>>;\n\ttryNext<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(opts?: QueueTryNextOptions<TName, TCompletable>): Promise<any>;\n\ttryNextBatch<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(opts?: QueueTryNextBatchOptions<TName, TCompletable>): Promise<any[]>;\n\titer<\n\t\tconst TName extends QueueFilterName<TQueues>,\n\t\tconst TCompletable extends boolean = false,\n\t>(opts?: QueueIterOptions<TName, TCompletable>): AsyncIterable<any>;\n\t[key: string]: any;\n}\n\nexport interface Conn<\n\t_TState = unknown,\n\tTConnParams = unknown,\n\tTConnState = unknown,\n\t_TVars = unknown,\n\t_TInput = unknown,\n\t_TDatabase extends AnyDatabaseProvider = AnyDatabaseProvider,\n\t_TEvents extends EventSchemaConfig = Record<never, never>,\n\t_TQueues extends QueueSchemaConfig = Record<never, never>,\n> {\n\tid: string;\n\tparams: TConnParams;\n\tstate: TConnState;\n\tisHibernatable: boolean;\n\tsend(name: string, ...args: any[]): void;\n\tdisconnect(reason?: string): Promise<void>;\n\t[key: string]: any;\n}\n\nexport type AnyConn = Conn<any, any, any, any, any, any, any, any>;\n\nexport interface ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> {\n\t[ACTOR_CONTEXT_INTERNAL_SYMBOL]?: unknown;\n\t/** Returns the raw unwrapped state without the write-through proxy. */\n\t[RAW_STATE_SYMBOL](): TState;\n\tstate: TState;\n\tvars: TVars;\n\t/**\n\t * @deprecated Actor KV is deprecated. Use embedded SQLite (`db` / `sql`)\n\t * or actor state instead.\n\t */\n\treadonly kv: ActorKv;\n\treadonly db: InferDatabaseClient<TDatabase>;\n\treadonly schedule: ActorSchedule;\n\treadonly cron: ActorCron;\n\treadonly queue: ActorQueue<TQueues>;\n\treadonly actorId: string;\n\treadonly name: string;\n\treadonly key: string[];\n\treadonly region: string;\n\t/** Provisions the experimental Actor Runtime Socket for this actor generation. */\n\tactorRuntimeSocket(): Promise<{ path: string }>;\n\treadonly conns: Map<\n\t\tstring,\n\t\tConn<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>\n\t>;\n\treadonly log: ActorLogger;\n\treadonly abortSignal: AbortSignal;\n\treadonly aborted: boolean;\n\treadonly request?: Request;\n\t/** @deprecated No-op. Always returns `false`. Use `keepAwake(promise)` or `waitUntil(promise)` instead. Will be removed in 2.2.0. */\n\treadonly preventSleep: boolean;\n\tbroadcast(name: string, ...args: any[]): void;\n\tsaveState(opts?: { immediate?: boolean; maxWait?: number }): Promise<void>;\n\tkeepAwake<T>(promise: Promise<T>): Promise<T>;\n\twaitUntil(promise: Promise<unknown>): void;\n\t/** @deprecated No-op. Use `keepAwake(promise)` to hold the actor awake for a specific promise. Will be removed in 2.2.0. */\n\tsetPreventSleep(preventSleep: boolean): void;\n\tsleep(): void;\n\tdestroy(): void;\n\tclient<T = any>(): ActorClientFor<T>;\n\t[key: string]: any;\n}\n\nexport type ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n> & {\n\tconn: Conn<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>;\n};\n\nexport type BeforeActionResponseContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type BeforeConnectContext<\n\tTState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tunknown,\n\tunknown,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type ConnectContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type CreateConnStateContext<\n\tTState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tunknown,\n\tunknown,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type CreateContext<\n\tTState,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tunknown,\n\tunknown,\n\tunknown,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type CreateVarsContext<\n\tTState,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = CreateContext<TState, TInput, TDatabase, TEvents, TQueues>;\n\nexport type DestroyContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type DisconnectContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type RequestContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActorContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type SleepContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type StateChangeContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type WakeContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = RunContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type MigrateContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = WakeContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type WebSocketContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = ActionContext<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n>;\n\nexport type ActorContextOf<\n\tAD extends BaseActorDefinition<any, any, any, any, any, any, any, any, any>,\n> =\n\tAD extends BaseActorDefinition<\n\t\tinfer TState,\n\t\tinfer TConnParams,\n\t\tinfer TConnState,\n\t\tinfer TVars,\n\t\tinfer TInput,\n\t\tinfer TDatabase,\n\t\tinfer TEvents,\n\t\tinfer TQueues,\n\t\tany\n\t>\n\t\t? ActorContext<\n\t\t\t\tTState,\n\t\t\t\tTConnParams,\n\t\t\t\tTConnState,\n\t\t\t\tTVars,\n\t\t\t\tTInput,\n\t\t\t\tTDatabase,\n\t\t\t\tTEvents,\n\t\t\t\tTQueues\n\t\t\t>\n\t\t: never;\n\nexport interface ActorTypes<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n> {\n\tstate?: TState;\n\tconnParams?: TConnParams;\n\tconnState?: TConnState;\n\tvars?: TVars;\n\tinput?: TInput;\n\tdatabase?: TDatabase;\n}\n\n// Helper for validating function types - accepts generic for specific function signatures\nconst zFunction = <\n\tT extends (...args: any[]) => any = (...args: unknown[]) => unknown,\n>() => z.custom<T>((val) => typeof val === \"function\");\n\nexport type InspectorUnsubscribe = () => void;\n\nexport interface WorkflowInspectorConfig<THistory = unknown> {\n\tgetHistory: () => THistory | null;\n\tonHistoryUpdated?: (\n\t\tlistener: (history: THistory) => void,\n\t) => InspectorUnsubscribe;\n\treplayFromStep?: (entryId?: string) => Promise<THistory | null>;\n}\n\nexport interface RunInspectorConfig<THistory = unknown> {\n\tworkflow?: WorkflowInspectorConfig<THistory>;\n}\n\nconst WorkflowInspectorConfigSchema = z.object({\n\tgetHistory: zFunction<WorkflowInspectorConfig<unknown>[\"getHistory\"]>(),\n\tonHistoryUpdated:\n\t\tzFunction<\n\t\t\tNonNullable<WorkflowInspectorConfig<unknown>[\"onHistoryUpdated\"]>\n\t\t>().optional(),\n\treplayFromStep:\n\t\tzFunction<\n\t\t\tNonNullable<WorkflowInspectorConfig<unknown>[\"replayFromStep\"]>\n\t\t>().optional(),\n});\n\nconst RunInspectorConfigSchema = z\n\t.object({\n\t\tworkflow: WorkflowInspectorConfigSchema.optional(),\n\t})\n\t.optional();\n\n/**\n * Built-in inspector tabs the dashboard ships. Used to validate\n * `hidden: true` entries and reject custom-tab ids that collide with\n * a built-in.\n */\nexport const BUILTIN_INSPECTOR_TAB_IDS = [\n\t\"workflow\",\n\t\"database\",\n\t\"state\",\n\t\"queue\",\n\t\"schedules\",\n\t\"connections\",\n\t\"console\",\n] as const;\n\nexport const BuiltinInspectorTabIdSchema = z.enum(BUILTIN_INSPECTOR_TAB_IDS);\n\n// Custom tab id grammar — mirrored in Rust at\n// `rivetkit-rust/packages/rivetkit-core/src/inspector/tabs.rs`. Slashes are\n// forbidden because the runtime splits `/inspector/custom-tabs/<id>/<rest>`\n// on the first `/`.\nconst CUSTOM_INSPECTOR_TAB_ID_RE = /^[A-Za-z0-9_-]+$/;\n\nexport const CustomInspectorTabEntrySchema = z\n\t.object({\n\t\tid: z\n\t\t\t.string()\n\t\t\t.regex(\n\t\t\t\tCUSTOM_INSPECTOR_TAB_ID_RE,\n\t\t\t\t\"inspector.tabs[].id must contain only letters, digits, underscore, or dash\",\n\t\t\t),\n\t\tlabel: z.string().min(1),\n\t\tsource: z.string().min(1),\n\t\t/**\n\t\t * Optional icon id. The dashboard maps strings to glyphs (see its\n\t\t * icon registry); unknown ids fall back to a generic icon.\n\t\t */\n\t\ticon: z.string().min(1).optional(),\n\t\thidden: z.literal(false).optional(),\n\t})\n\t.strict();\n\nexport const HideInspectorTabEntrySchema = z\n\t.object({\n\t\tid: BuiltinInspectorTabIdSchema,\n\t\thidden: z.literal(true),\n\t})\n\t.strict();\n\nexport const InspectorTabEntrySchema = z.union([\n\tCustomInspectorTabEntrySchema,\n\tHideInspectorTabEntrySchema,\n]);\n\nexport const ActorInspectorConfigSchema = z\n\t.object({\n\t\ttabs: z.array(InspectorTabEntrySchema).default(() => []),\n\t})\n\t.strict()\n\t.refine(\n\t\t(data) => {\n\t\t\tconst ids = data.tabs.map((t) => t.id);\n\t\t\treturn new Set(ids).size === ids.length;\n\t\t},\n\t\t{ message: \"Duplicate id in inspector.tabs\", path: [\"tabs\"] },\n\t)\n\t.refine(\n\t\t(data) => {\n\t\t\t// A custom entry's id must not collide with a built-in id.\n\t\t\tconst builtinSet = new Set(BUILTIN_INSPECTOR_TAB_IDS);\n\t\t\treturn data.tabs.every(\n\t\t\t\t(t) => t.hidden === true || !builtinSet.has(t.id as any),\n\t\t\t);\n\t\t},\n\t\t{\n\t\t\tmessage:\n\t\t\t\t\"Custom inspector tab id collides with a built-in (use hidden: true to hide a built-in)\",\n\t\t\tpath: [\"tabs\"],\n\t\t},\n\t);\n\nexport type ActorInspectorConfig = z.input<typeof ActorInspectorConfigSchema>;\n\n// Schema for run handler with metadata\nexport const RunConfigSchema = z.object({\n\t/** Display name for the actor in the Inspector UI. */\n\tname: z.string().optional(),\n\t/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */\n\ticon: z.string().optional(),\n\t/** The run handler function. */\n\trun: zFunction(),\n\t/** Inspector integration for long-running run handlers. */\n\tinspector: RunInspectorConfigSchema.optional(),\n});\ntype RunConfigRuntime = z.infer<typeof RunConfigSchema>;\nexport type RunConfig<\n\tTState = unknown,\n\tTConnParams = unknown,\n\tTConnState = unknown,\n\tTVars = unknown,\n\tTInput = unknown,\n\tTDatabase extends AnyDatabaseProvider = AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> = Omit<RunConfigRuntime, \"run\"> & {\n\trun: (\n\t\tc: RunContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n};\n\ntype AnyRunConfig = RunConfig<\n\tany,\n\tany,\n\tany,\n\tany,\n\tany,\n\tAnyDatabaseProvider,\n\tany,\n\tany\n>;\n\nexport const RUN_FUNCTION_CONFIG_SYMBOL = Symbol.for(\n\t\"rivetkit.run_function_config\",\n);\n\ninterface RunFunctionConfig {\n\tname?: string;\n\ticon?: string;\n\tinspector?: RunInspectorConfig;\n\tinspectorFactory?: (actor: unknown) => RunInspectorConfig | undefined;\n\t/** Release any per-actor inspector state held for this actor id. */\n\tdisposeInspector?: (actorId: string) => void;\n}\n\ntype RunFunctionWithConfig = ((...args: any[]) => any) & {\n\t[RUN_FUNCTION_CONFIG_SYMBOL]?: RunFunctionConfig;\n};\n\n// Run can be either a function or an object with name/icon/run\nconst zRunHandler = z.union([zFunction(), RunConfigSchema]).optional();\n\n/** Extract the run function from either a function or RunConfig object. */\nexport function getRunFunction(\n\trun: ((...args: any[]) => any) | AnyRunConfig | undefined,\n): ((...args: any[]) => any) | undefined {\n\tif (!run) return undefined;\n\tif (typeof run === \"function\") return run;\n\treturn run.run;\n}\n\n/** Extract run metadata (name/icon) from RunConfig if provided. */\nexport function getRunMetadata(\n\trun: ((...args: any[]) => any) | AnyRunConfig | undefined,\n): { name?: string; icon?: string } {\n\tif (!run) return {};\n\tif (typeof run === \"function\") {\n\t\tconst config = (run as RunFunctionWithConfig)[\n\t\t\tRUN_FUNCTION_CONFIG_SYMBOL\n\t\t];\n\t\tif (!config) return {};\n\t\treturn { name: config.name, icon: config.icon };\n\t}\n\treturn { name: run.name, icon: run.icon };\n}\n\n/** Extract run inspector configuration if provided. */\nexport function getRunInspectorConfig(\n\trun: ((...args: any[]) => any) | AnyRunConfig | undefined,\n\tactor?: unknown,\n): RunInspectorConfig | undefined {\n\tif (!run) return undefined;\n\tif (typeof run === \"function\") {\n\t\tconst config = (run as RunFunctionWithConfig)[\n\t\t\tRUN_FUNCTION_CONFIG_SYMBOL\n\t\t];\n\t\treturn config?.inspectorFactory\n\t\t\t? config.inspectorFactory(actor)\n\t\t\t: config?.inspector;\n\t}\n\treturn run.inspector;\n}\n\n/** Release per-actor inspector state for a destroyed actor, if the run handler registered a disposer. */\nexport function disposeRunInspector(\n\trun: ((...args: any[]) => any) | AnyRunConfig | undefined,\n\tactorId: string,\n): void {\n\tif (!run || typeof run !== \"function\") {\n\t\treturn;\n\t}\n\tconst config = (run as RunFunctionWithConfig)[RUN_FUNCTION_CONFIG_SYMBOL];\n\tconfig?.disposeInspector?.(actorId);\n}\n\n// This schema is used to validate the input at runtime. The generic types are defined below in `ActorConfig`.\n//\n// We don't use Zod generics with `z.custom` because:\n// (a) there seems to be a weird bug in either Zod, tsup, or TSC that causese external packages to have different types from `z.infer` than from within the same package and\n// (b) it makes the type definitions incredibly difficult to read as opposed to vanilla TypeScript.\nconst GlobalActorOptionsBaseSchema = z\n\t.object({\n\t\t/** Display name for the actor in the Inspector UI. */\n\t\tname: z.string().optional(),\n\t\t/** Icon for the actor in the Inspector UI. Can be an emoji or FontAwesome icon name. */\n\t\ticon: z.string().optional(),\n\t\t/** Enables the experimental Actor Runtime Socket for this actor. */\n\t\tenableActorRuntimeSocket: z.boolean().default(false),\n\t\t/**\n\t\t * Can hibernate WebSockets for onWebSocket.\n\t\t *\n\t\t * WebSockets using actions/events are hibernatable by default.\n\t\t *\n\t\t * @experimental\n\t\t **/\n\t\tcanHibernateWebSocket: z\n\t\t\t.union([z.boolean(), zFunction<(request: Request) => boolean>()])\n\t\t\t.default(false),\n\t})\n\t.strict();\n\nexport const GlobalActorOptionsSchema = GlobalActorOptionsBaseSchema.prefault(\n\t() => ({}),\n);\n\nexport type GlobalActorOptions = z.infer<typeof GlobalActorOptionsSchema>;\nexport type GlobalActorOptionsInput = z.input<typeof GlobalActorOptionsSchema>;\n\nconst InstanceActorOptionsBaseSchema = z\n\t.object({\n\t\tcreateVarsTimeout: z.number().positive().default(5000),\n\t\tcreateConnStateTimeout: z.number().positive().default(5000),\n\t\tonBeforeConnectTimeout: z.number().positive().default(5000),\n\t\tonConnectTimeout: z.number().positive().default(5000),\n\t\tonMigrateTimeout: z.number().positive().default(30_000),\n\t\tsleepGracePeriod: z\n\t\t\t.number()\n\t\t\t.positive()\n\t\t\t.default(DEFAULT_SLEEP_GRACE_PERIOD),\n\t\t/** @deprecated `onDestroyTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */\n\t\tonDestroyTimeout: z.number().positive().optional(),\n\t\t/** @deprecated `waitUntilTimeout` is folded into `sleepGracePeriod`, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0. */\n\t\twaitUntilTimeout: z.number().positive().optional(),\n\t\tstateSaveInterval: z.number().positive().default(1_000),\n\t\tactionTimeout: z.number().positive().default(60_000),\n\t\tconnectionLivenessTimeout: z.number().positive().default(2500),\n\t\tconnectionLivenessInterval: z.number().positive().default(5000),\n\t\t/** @deprecated Use `c.keepAwake(promise)` to scope keep-awake to a specific operation, or keep `noSleep` for actors that must stay awake indefinitely. Will be removed in 2.2.0. */\n\t\tnoSleep: z.boolean().default(false),\n\t\tsleepTimeout: z.number().positive().default(30_000),\n\t\tmaxQueueSize: z.number().positive().default(1000),\n\t\t/** Maximum pending one-shot and recurring schedules. */\n\t\tmaxSchedules: z.number().int().nonnegative().default(1000),\n\t\tmaxQueueMessageSize: z\n\t\t\t.number()\n\t\t\t.positive()\n\t\t\t.default(64 * 1024),\n\t\t/** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */\n\t\tpreloadMaxWorkflowBytes: z.number().nonnegative().optional(),\n\t\t/** @deprecated Internal storage moved to SQLite and no longer uses KV preloading, so this option is ignored. Will be removed in 2.2.0. */\n\t\tpreloadMaxConnectionsBytes: z.number().nonnegative().optional(),\n\t})\n\t.strict();\n\nexport const InstanceActorOptionsSchema =\n\tInstanceActorOptionsBaseSchema.prefault(() => ({}));\n\nexport type InstanceActorOptions = z.infer<typeof InstanceActorOptionsSchema>;\nexport type InstanceActorOptionsInput = z.input<\n\ttypeof InstanceActorOptionsSchema\n>;\n\nexport const ActorOptionsSchema = GlobalActorOptionsBaseSchema.extend(\n\tInstanceActorOptionsBaseSchema.shape,\n)\n\t.strict()\n\t.prefault(() => ({}));\n\nexport type ActorOptions = z.infer<typeof ActorOptionsSchema>;\nexport type ActorOptionsInput = z.input<typeof ActorOptionsSchema>;\n\nexport const ActorConfigSchema = z\n\t.object({\n\t\tonCreate: zFunction().optional(),\n\t\tonDestroy: zFunction().optional(),\n\t\tonMigrate: zFunction().optional(),\n\t\tonWake: zFunction().optional(),\n\t\tonSleep: zFunction().optional(),\n\t\trun: zRunHandler,\n\t\tonStateChange: zFunction().optional(),\n\t\tonBeforeConnect: zFunction().optional(),\n\t\tonConnect: zFunction().optional(),\n\t\tonDisconnect: zFunction().optional(),\n\t\tonBeforeActionResponse: zFunction().optional(),\n\t\tonRequest: zFunction().optional(),\n\t\tonWebSocket: zFunction().optional(),\n\t\tactions: z.record(z.string(), zFunction()).default(() => ({})),\n\t\tactionInputSchemas: z.record(z.string(), z.any()).optional(),\n\t\tconnParamsSchema: z.any().optional(),\n\t\tevents: z.record(z.string(), z.any()).optional(),\n\t\tqueues: z.record(z.string(), z.any()).optional(),\n\t\tstate: z.any().optional(),\n\t\tcreateState: zFunction().optional(),\n\t\tconnState: z.any().optional(),\n\t\tcreateConnState: zFunction().optional(),\n\t\tvars: z.any().optional(),\n\t\tdb: z.any().optional(),\n\t\tcreateVars: zFunction().optional(),\n\t\toptions: ActorOptionsSchema,\n\t\tinspector: ActorInspectorConfigSchema.optional(),\n\t})\n\t.strict()\n\t.refine(\n\t\t(data) => !(data.state !== undefined && data.createState !== undefined),\n\t\t{\n\t\t\tmessage: \"Cannot define both 'state' and 'createState'\",\n\t\t\tpath: [\"state\"],\n\t\t},\n\t)\n\t.refine(\n\t\t(data) =>\n\t\t\t!(\n\t\t\t\tdata.connState !== undefined &&\n\t\t\t\tdata.createConnState !== undefined\n\t\t\t),\n\t\t{\n\t\t\tmessage: \"Cannot define both 'connState' and 'createConnState'\",\n\t\t\tpath: [\"connState\"],\n\t\t},\n\t)\n\t.refine(\n\t\t(data) => !(data.vars !== undefined && data.createVars !== undefined),\n\t\t{\n\t\t\tmessage: \"Cannot define both 'vars' and 'createVars'\",\n\t\t\tpath: [\"vars\"],\n\t\t},\n\t);\n\n// Creates state config\n//\n// This must have only one or the other or else TState will not be able to be inferred\n//\n// Data returned from this handler will be available on `c.state`.\ntype CreateState<\n\tTState,\n\t_TConnParams,\n\t_TConnState,\n\t_TVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> =\n\t| { state: TState }\n\t| {\n\t\t\tcreateState: (\n\t\t\t\tc: CreateContext<TState, TInput, TDatabase, TEvents, TQueues>,\n\t\t\t\tinput: TInput,\n\t\t\t) => TState | Promise<TState>;\n\t }\n\t| Record<never, never>;\n\n// Creates connection state config\n//\n// This must have only one or the other or else TState will not be able to be inferred\n//\n// Data returned from this handler will be available on `c.conn.state`.\n// The pending connection is not visible in `c.conns` until this succeeds.\ntype CreateConnState<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> =\n\t| { connState: TConnState }\n\t| {\n\t\t\tcreateConnState: (\n\t\t\t\tc: CreateConnStateContext<\n\t\t\t\t\tTState,\n\t\t\t\t\tTVars,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t\t>,\n\t\t\t\tparams: TConnParams,\n\t\t\t) => TConnState | Promise<TConnState>;\n\t }\n\t| Record<never, never>;\n\n// Creates vars config\n//\n// This must have only one or the other or else TState will not be able to be inferred\n/**\n * @experimental\n */\ntype CreateVars<\n\tTState,\n\t_TConnParams,\n\t_TConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n> =\n\t| {\n\t\t\t/**\n\t\t\t * @experimental\n\t\t\t */\n\t\t\tvars: TVars;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * @experimental\n\t\t\t */\n\t\t\tcreateVars: (\n\t\t\t\tc: CreateVarsContext<\n\t\t\t\t\tTState,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t\t>,\n\t\t\t\tdriverCtx: any,\n\t\t\t) => TVars | Promise<TVars>;\n\t }\n\t| Record<never, never>;\n\nexport interface Actions<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n> {\n\t[Action: string]: (\n\t\tc: ActionContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\t...args: any[]\n\t) => any;\n}\n\n//export type ActorConfig<TState, TConnParams, TConnState, TVars, TInput, TAuthData> = BaseActorConfig<TState, TConnParams, TConnState, TVars, TInput, TAuthData> &\n//\tActorConfigLifecycle<TState, TConnParams, TConnState, TVars, TInput, TAuthData> &\n//\tCreateState<TState, TConnParams, TConnState, TVars, TInput, TAuthData> &\n//\tCreateConnState<TState, TConnParams, TConnState, TVars, TInput, TAuthData>;\n\n/**\n * @experimental\n */\nexport type AuthIntent = \"get\" | \"create\" | \"connect\" | \"action\" | \"message\";\n\ninterface BaseActorConfig<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n\tTActions extends Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>,\n> {\n\t/**\n\t * Called when the actor is first initialized.\n\t *\n\t * Use this hook to initialize your actor's state.\n\t * This is called before any other lifecycle hooks.\n\t */\n\tonCreate?: (\n\t\tc: CreateContext<TState, TInput, TDatabase, TEvents, TQueues>,\n\t\tinput: TInput,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when the actor is destroyed.\n\t */\n\tonDestroy?: (\n\t\tc: DestroyContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called on every actor start after persisted state loads and before onWake.\n\t *\n\t * Use this hook for repeatable schema migrations or other startup work that\n\t * must run on both first boot and wake.\n\t */\n\tonMigrate?: (\n\t\tc: MigrateContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tisNew: boolean,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when the actor is started and ready to receive connections and action.\n\t *\n\t * Use this hook to initialize resources needed for the actor's operation\n\t * (timers, external connections, etc.)\n\t *\n\t * @returns Void or a Promise that resolves when startup is complete\n\t */\n\tonWake?: (\n\t\tc: WakeContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when the actor is stopping or sleeping.\n\t *\n\t * Use this hook to clean up resources, save state, or perform\n\t * any shutdown operations before the actor sleeps or stops.\n\t *\n\t * Not supported on all platforms.\n\t *\n\t * @returns Void or a Promise that resolves when shutdown is complete\n\t */\n\tonSleep?: (\n\t\tc: SleepContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called after the actor starts up. Does not block actor startup.\n\t *\n\t * Use this for background tasks like:\n\t * - Reading from queues in a loop\n\t * - Tick loops for periodic work\n\t * - Custom workflow logic\n\t *\n\t * **Important:** The actor may go to sleep at any time during the `run`\n\t * handler. Wrap work that must keep the actor awake with\n\t * `c.keepAwake(promise)` to block idle sleep and shutdown finalize until\n\t * the promise settles, or use `c.waitUntil(promise)` to let the graceful\n\t * shutdown window (`sleepGracePeriod`) cover deferred work.\n\t *\n\t * The handler receives an abort signal via `c.abortSignal` and a\n\t * `c.aborted` alias. Use these to gracefully exit when shutdown starts.\n\t *\n\t * If this handler exits, the actor will follow the normal idle sleep timeout\n\t * once it becomes idle.\n\t * If this handler throws, the actor logs the error and then sleeps once it\n\t * becomes idle.\n\t * Call `c.destroy()` explicitly if a run handler should destroy the actor.\n\t *\n\t * Can be either a function or a RunConfig object with optional name/icon metadata.\n\t *\n\t * @returns Void or a Promise.\n\t */\n\trun?:\n\t\t| ((\n\t\t\t\tc: RunContext<\n\t\t\t\t\tTState,\n\t\t\t\t\tTConnParams,\n\t\t\t\t\tTConnState,\n\t\t\t\t\tTVars,\n\t\t\t\t\tTInput,\n\t\t\t\t\tTDatabase,\n\t\t\t\t\tTEvents,\n\t\t\t\t\tTQueues\n\t\t\t\t>,\n\t\t ) => void | Promise<void>)\n\t\t| RunConfig<\n\t\t\t\tTState,\n\t\t\t\tTConnParams,\n\t\t\t\tTConnState,\n\t\t\t\tTVars,\n\t\t\t\tTInput,\n\t\t\t\tTDatabase,\n\t\t\t\tTEvents,\n\t\t\t\tTQueues\n\t\t >;\n\n\t/**\n\t * Called when the actor's state changes.\n\t *\n\t * Use this hook to react to state changes, such as updating\n\t * external systems or triggering events.\n\t *\n\t * State changes made within this hook will NOT trigger\n\t * another onStateChange call, preventing infinite recursion.\n\t *\n\t * @param newState The updated state\n\t */\n\tonStateChange?: (\n\t\tc: StateChangeContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tnewState: TState,\n\t) => void;\n\n\t/**\n\t * Called before a client connects to the actor.\n\t *\n\t * Use this hook to determine if a connection should be accepted\n\t * and to validate client-provided parameters. The pending connection\n\t * is not visible in `c.conns` while this hook runs.\n\t *\n\t * @param opts Connection parameters including client-provided data\n\t * @returns Void or a Promise.\n\t * @throws Throw an error to reject the connection\n\t */\n\tonBeforeConnect?: (\n\t\tc: BeforeConnectContext<\n\t\t\tTState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tparams: TConnParams,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when a client successfully connects to the actor.\n\t *\n\t * Use this hook to perform actions when a connection is established,\n\t * such as sending initial data or updating the actor's state. The\n\t * connection is visible in `c.conns` before this hook runs.\n\t *\n\t * @param conn The connection object\n\t * @returns Void or a Promise that resolves when connection handling is complete\n\t */\n\tonConnect?: (\n\t\tc: ConnectContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tconn: Conn<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called when a client disconnects from the actor.\n\t *\n\t * Use this hook to clean up resources associated with the connection\n\t * or update the actor's state.\n\t *\n\t * @param conn The connection that is being closed\n\t * @returns Void or a Promise that resolves when disconnect handling is complete\n\t */\n\tonDisconnect?: (\n\t\tc: DisconnectContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tconn: Conn<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Called before sending an action response to the client.\n\t *\n\t * Use this hook to modify or transform the output of an action before it's sent\n\t * to the client. This is useful for formatting responses, adding metadata,\n\t * or applying transformations to the output.\n\t *\n\t * @param name The name of the action that was called\n\t * @param args The arguments that were passed to the action\n\t * @param output The output that will be sent to the client\n\t * @returns The modified output to send to the client\n\t */\n\tonBeforeActionResponse?: <Out>(\n\t\tc: BeforeActionResponseContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\tname: string,\n\t\targs: unknown[],\n\t\toutput: Out,\n\t) => Out | Promise<Out>;\n\n\t/**\n\t * Called when a raw HTTP request is made to the actor.\n\t *\n\t * This handler receives raw HTTP requests made to `/actors/{actorName}/http/*` endpoints.\n\t * Use this hook to handle custom HTTP patterns, REST APIs, or other HTTP-based protocols.\n\t *\n\t * @param c The request context with access to the connection\n\t * @param request The raw HTTP request object\n\t * @param opts Additional options\n\t * @returns A Response object to send back, or void to continue with default routing\n\t */\n\tonRequest?: (\n\t\tc: RequestContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\trequest: Request,\n\t) => Response | Promise<Response>;\n\n\t/**\n\t * Called when a raw WebSocket connection is established to the actor.\n\t *\n\t * This handler receives WebSocket connections made to `/actors/{actorName}/websocket/*` endpoints.\n\t * Use this hook to handle custom WebSocket protocols, binary streams, or other WebSocket-based communication.\n\t *\n\t * @param c The WebSocket context with access to the connection\n\t * @param websocket The actor-facing raw WebSocket connection\n\t * @param opts Additional options including the original HTTP upgrade request\n\t */\n\tonWebSocket?: (\n\t\tc: WebSocketContext<\n\t\t\tTState,\n\t\t\tTConnParams,\n\t\t\tTConnState,\n\t\t\tTVars,\n\t\t\tTInput,\n\t\t\tTDatabase,\n\t\t\tTEvents,\n\t\t\tTQueues\n\t\t>,\n\t\twebsocket: UniversalWebSocket,\n\t) => void | Promise<void>;\n\n\tactions?: TActions;\n\n\t/**\n\t * Optional schema map for validating action argument tuples in native runtimes.\n\t */\n\tactionInputSchemas?: Record<string, PrimitiveSchema>;\n\n\t/**\n\t * Optional schema for validating connection params in native runtimes.\n\t */\n\tconnParamsSchema?: PrimitiveSchema;\n\n\t/**\n\t * Schema map for events broadcasted by this actor.\n\t */\n\tevents?: TEvents;\n\n\t/**\n\t * Schema map for queue payloads sent by this actor.\n\t */\n\tqueues?: TQueues;\n}\n\ntype ActorDatabaseConfig<TDatabase extends AnyDatabaseProvider> =\n\t| {\n\t\t\t/**\n\t\t\t * @experimental\n\t\t\t */\n\t\t\tdb: TDatabase;\n\t }\n\t| Record<never, never>;\n\n// 1. Infer schema\n// 2. Omit keys that we'll manually define (because of generics)\n// 3. Define our own types that have generic constraints\nexport type ActorConfig<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n\tTActions extends Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> = Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>,\n> = Omit<\n\tz.infer<typeof ActorConfigSchema>,\n\t| \"actions\"\n\t| \"events\"\n\t| \"queues\"\n\t| \"onCreate\"\n\t| \"onDestroy\"\n\t| \"onMigrate\"\n\t| \"onWake\"\n\t| \"onSleep\"\n\t| \"run\"\n\t| \"onStateChange\"\n\t| \"onBeforeConnect\"\n\t| \"onConnect\"\n\t| \"onDisconnect\"\n\t| \"onBeforeActionResponse\"\n\t| \"onRequest\"\n\t| \"onWebSocket\"\n\t| \"state\"\n\t| \"createState\"\n\t| \"connState\"\n\t| \"createConnState\"\n\t| \"vars\"\n\t| \"createVars\"\n\t| \"db\"\n> &\n\tBaseActorConfig<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues,\n\t\tTActions\n\t> &\n\tCreateState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateConnState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateVars<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tActorDatabaseConfig<TDatabase>;\n\n// See description on `ActorConfig`\nexport type ActorConfigInput<\n\tTState = undefined,\n\tTConnParams = undefined,\n\tTConnState = undefined,\n\tTVars = undefined,\n\tTInput = undefined,\n\tTDatabase extends AnyDatabaseProvider = undefined,\n\tTEvents extends EventSchemaConfig = Record<never, never>,\n\tTQueues extends QueueSchemaConfig = Record<never, never>,\n\tTActions extends Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> = Record<never, never>,\n> = {\n\ttypes?: ActorTypes<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase\n\t>;\n} & Omit<\n\tz.input<typeof ActorConfigSchema>,\n\t| \"actions\"\n\t| \"events\"\n\t| \"queues\"\n\t| \"onCreate\"\n\t| \"onDestroy\"\n\t| \"onMigrate\"\n\t| \"onWake\"\n\t| \"onSleep\"\n\t| \"run\"\n\t| \"onStateChange\"\n\t| \"onBeforeConnect\"\n\t| \"onConnect\"\n\t| \"onDisconnect\"\n\t| \"onBeforeActionResponse\"\n\t| \"onRequest\"\n\t| \"onWebSocket\"\n\t| \"state\"\n\t| \"createState\"\n\t| \"connState\"\n\t| \"createConnState\"\n\t| \"vars\"\n\t| \"createVars\"\n\t| \"db\"\n> &\n\tBaseActorConfig<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues,\n\t\tTActions\n\t> &\n\tCreateState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateConnState<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tCreateVars<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t> &\n\tActorDatabaseConfig<TDatabase>;\n\n// For testing type definitions:\nexport function test<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase extends AnyDatabaseProvider,\n\tTEvents extends EventSchemaConfig,\n\tTQueues extends QueueSchemaConfig,\n\tTActions extends Actions<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>,\n>(\n\tinput: ActorConfigInput<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues,\n\t\tTActions\n\t>,\n): ActorConfig<\n\tTState,\n\tTConnParams,\n\tTConnState,\n\tTVars,\n\tTInput,\n\tTDatabase,\n\tTEvents,\n\tTQueues\n> {\n\tconst config = ActorConfigSchema.parse(input) as ActorConfig<\n\t\tTState,\n\t\tTConnParams,\n\t\tTConnState,\n\t\tTVars,\n\t\tTInput,\n\t\tTDatabase,\n\t\tTEvents,\n\t\tTQueues\n\t>;\n\treturn config;\n}\n\n// MARK: Documentation Schema\n// This schema is JSON-serializable for documentation generation.\n// It excludes function types and focuses on the configurable options.\n\nexport const DocActorOptionsSchema = z\n\t.object({\n\t\tname: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"Display name for the actor in the Inspector UI.\"),\n\t\ticon: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Icon for the actor in the Inspector UI. Can be an emoji (e.g., '🚀') or FontAwesome icon name (e.g., 'rocket').\",\n\t\t\t),\n\t\tenableActorRuntimeSocket: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Enables the experimental Actor Runtime Socket for this actor. Default: false\",\n\t\t\t),\n\t\tcreateVarsTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for createVars handler. Default: 5000\"),\n\t\tcreateConnStateTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Timeout in ms for createConnState handler. Default: 5000\",\n\t\t\t),\n\t\tonMigrateTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for onMigrate handler. Default: 30000\"),\n\t\tonBeforeConnectTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Timeout in ms for onBeforeConnect handler. Default: 5000\",\n\t\t\t),\n\t\tonConnectTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for onConnect handler. Default: 5000\"),\n\t\tsleepGracePeriod: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t`Max time in ms for the graceful shutdown window. Covers lifecycle hooks (onSleep, onDestroy), the run handler wait, async raw WebSocket handlers, disconnect callbacks, and final state serialization. Default: ${DEFAULT_SLEEP_GRACE_PERIOD}.`,\n\t\t\t),\n\t\tonDestroyTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0.\",\n\t\t\t),\n\t\twaitUntilTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Deprecated. Folded into sleepGracePeriod, which now bounds the entire graceful shutdown window for both sleep and destroy. Will be removed in 2.2.0.\",\n\t\t\t),\n\t\tstateSaveInterval: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Interval in ms between automatic state saves. Default: 1000\",\n\t\t\t),\n\t\tactionTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\"Timeout in ms for action handlers. Default: 60000\"),\n\t\tconnectionLivenessTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Timeout in ms for connection liveness checks. Default: 2500\",\n\t\t\t),\n\t\tconnectionLivenessInterval: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Interval in ms between connection liveness checks. Default: 5000\",\n\t\t\t),\n\t\tnoSleep: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Deprecated. If true, the actor will never sleep. Use c.keepAwake(promise) to scope keep-awake to a specific operation instead. Default: false\",\n\t\t\t),\n\t\tsleepTimeout: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Time in ms of inactivity before the actor sleeps. Default: 30000\",\n\t\t\t),\n\t\tmaxQueueSize: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Maximum number of queue messages before rejecting new messages. Default: 1000\",\n\t\t\t),\n\t\tmaxSchedules: z\n\t\t\t.number()\n\t\t\t.int()\n\t\t\t.nonnegative()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Maximum pending one-shot and recurring schedules before rejecting new schedules. Default: 1000\",\n\t\t\t),\n\t\tmaxQueueMessageSize: z\n\t\t\t.number()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Maximum size of each queue message in bytes. Default: 65536\",\n\t\t\t),\n\t\tcanHibernateWebSocket: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Whether WebSockets using onWebSocket can be hibernated. WebSockets using actions/events are hibernatable by default. Default: false\",\n\t\t\t),\n\t})\n\t.describe(\"Actor options for timeouts and behavior configuration.\");\n\nexport const DocActorConfigSchema = z\n\t.object({\n\t\tstate: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Initial state value for the actor. Cannot be used with createState.\",\n\t\t\t),\n\t\tcreateState: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Function to create initial state. Receives context and input. Cannot be used with state.\",\n\t\t\t),\n\t\tconnState: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Initial connection state value. Cannot be used with createConnState.\",\n\t\t\t),\n\t\tcreateConnState: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Function to create connection state. Receives context and connection params. The pending connection is not visible in c.conns until this succeeds. Cannot be used with connState.\",\n\t\t\t),\n\t\tvars: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Initial ephemeral variables value. Cannot be used with createVars.\",\n\t\t\t),\n\t\tcreateVars: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Function to create ephemeral variables. Receives context and driver context. Cannot be used with vars.\",\n\t\t\t),\n\t\tdb: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\"Database provider instance for the actor.\"),\n\t\tonCreate: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor is first initialized. Use to initialize state.\",\n\t\t\t),\n\t\tonDestroy: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\"Called when the actor is destroyed.\"),\n\t\tonMigrate: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called on every actor start after persisted state loads and before onWake. Use for repeatable schema migrations.\",\n\t\t\t),\n\t\tonWake: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor wakes up and is ready to receive connections and actions.\",\n\t\t\t),\n\t\tonSleep: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor is stopping or sleeping. Use to clean up resources.\",\n\t\t\t),\n\t\trun: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called after actor starts. Does not block startup. Use for background tasks like queue processing or tick loops. If it exits, the actor follows the normal idle sleep timeout once idle. If it throws, the actor logs the error and then follows the normal idle sleep timeout once idle.\",\n\t\t\t),\n\t\tonStateChange: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when the actor's state changes. State changes within this hook won't trigger recursion.\",\n\t\t\t),\n\t\tonBeforeConnect: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called before a client connects. Throw an error to reject the connection. The pending connection is not visible in c.conns while this runs.\",\n\t\t\t),\n\t\tonConnect: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called when a client successfully connects. The connection is visible in c.conns before this runs.\",\n\t\t\t),\n\t\tonDisconnect: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\"Called when a client disconnects.\"),\n\t\tonBeforeActionResponse: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called before sending an action response. Use to transform output.\",\n\t\t\t),\n\t\tonRequest: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called for raw HTTP requests to /actors/{name}/http/* endpoints.\",\n\t\t\t),\n\t\tonWebSocket: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Called for raw WebSocket connections to /actors/{name}/websocket/* endpoints.\",\n\t\t\t),\n\t\tactions: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Map of action name to handler function. Defaults to an empty object.\",\n\t\t\t),\n\t\tactionInputSchemas: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Optional schema map for validating action argument tuples in native runtimes.\",\n\t\t\t),\n\t\tconnParamsSchema: z\n\t\t\t.unknown()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"Optional schema for validating connection params in native runtimes.\",\n\t\t\t),\n\t\tevents: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\"Map of event names to schemas.\"),\n\t\tqueues: z\n\t\t\t.record(z.string(), z.unknown())\n\t\t\t.optional()\n\t\t\t.describe(\"Map of queue names to schemas.\"),\n\t\toptions: DocActorOptionsSchema.optional(),\n\t})\n\t.describe(\"Actor configuration passed to the actor() function.\");\n"]}
@@ -1,30 +1,24 @@
1
1
  import {
2
2
  deserializeActorKey,
3
3
  serializeActorKey
4
- } from "./chunk-HXUEHHJF.js";
5
- import {
6
- EncodingSchema,
7
- contentTypeForEncoding,
8
- decodeCborCompat,
9
- deserializeWithEncoding,
10
- encodeCborCompat,
11
- inputDataToBuffer,
12
- jsonStringifyCompat,
13
- serializeWithEncoding,
14
- uint8ArrayToBase64
15
- } from "./chunk-DHXWD4DF.js";
4
+ } from "./chunk-JI6GZ2C2.js";
16
5
  import {
17
6
  AsyncMutex
18
- } from "./chunk-JZ7TWV65.js";
7
+ } from "./chunk-7AFZMFPQ.js";
19
8
  import {
20
9
  importWebSocket,
21
10
  logger
22
- } from "./chunk-NT2NK3VT.js";
11
+ } from "./chunk-PAG6G46L.js";
23
12
  import {
13
+ EncodingSchema,
24
14
  assertUnreachable,
25
15
  bufferToArrayBuffer,
26
16
  combineUrlPath,
17
+ contentTypeForEncoding,
18
+ decodeCborCompat,
27
19
  deconstructError,
20
+ deserializeWithEncoding,
21
+ encodeCborCompat,
28
22
  getLogMessage,
29
23
  getLogger,
30
24
  getNextPhase,
@@ -34,10 +28,14 @@ import {
34
28
  getRivetPool,
35
29
  getRivetToken,
36
30
  httpUserAgent,
31
+ inputDataToBuffer,
32
+ jsonStringifyCompat,
37
33
  noopNext,
38
34
  promiseWithResolvers,
39
- stringifyError
40
- } from "./chunk-BLDO2FKO.js";
35
+ serializeWithEncoding,
36
+ stringifyError,
37
+ uint8ArrayToBase64
38
+ } from "./chunk-B4IZU537.js";
41
39
  import {
42
40
  INTERNAL_ERROR_CODE,
43
41
  RivetError,
@@ -4945,13 +4943,6 @@ async function updateRunnerConfig(config, runnerName, request) {
4945
4943
  request
4946
4944
  );
4947
4945
  }
4948
- async function kvGet(config, actorId, key) {
4949
- return apiCall(
4950
- config,
4951
- "GET",
4952
- `/actors/${encodeURIComponent(actorId)}/kv/keys/${encodeURIComponent(key)}`
4953
- );
4954
- }
4955
4946
 
4956
4947
  // src/engine-client/mod.ts
4957
4948
  import invariant3 from "invariant";
@@ -5735,28 +5726,6 @@ var RemoteEngineControlClient = class {
5735
5726
  const args = await createWebSocketProxy(c, wsGuardUrl, protocols);
5736
5727
  return await upgradeWebSocket(() => args)(c, noopNext());
5737
5728
  }
5738
- async kvGet(actorId, key) {
5739
- await this.#metadataPromise;
5740
- logger2().debug({ msg: "getting kv value via engine api", key });
5741
- const response = await kvGet(
5742
- this.#config,
5743
- actorId,
5744
- new TextDecoder("utf8").decode(key)
5745
- );
5746
- return response.value;
5747
- }
5748
- async kvBatchGet(_actorId, _keys) {
5749
- throw new Error("kvBatchGet not supported on remote engine client");
5750
- }
5751
- async kvBatchPut(_actorId, _entries) {
5752
- throw new Error("kvBatchPut not supported on remote engine client");
5753
- }
5754
- async kvBatchDelete(_actorId, _keys) {
5755
- throw new Error("kvBatchDelete not supported on remote engine client");
5756
- }
5757
- async kvDeleteRange(_actorId, _start, _end) {
5758
- throw new Error("kvDeleteRange not supported on remote engine client");
5759
- }
5760
5729
  displayInformation() {
5761
5730
  return { properties: {} };
5762
5731
  }
@@ -5860,4 +5829,4 @@ export {
5860
5829
  updateRunnerConfig,
5861
5830
  RemoteEngineControlClient
5862
5831
  };
5863
- //# sourceMappingURL=chunk-CXRPENO3.js.map
5832
+ //# sourceMappingURL=chunk-GAV4PKFT.js.map