rivetkit 2.1.5 → 2.1.6-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 (333) hide show
  1. package/dist/browser/client.d.ts +593 -588
  2. package/dist/browser/client.js +215 -35
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +109 -10
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/inspector.tar.gz +0 -0
  7. package/dist/tsup/actor/errors.cjs +2 -2
  8. package/dist/tsup/actor/errors.js +1 -1
  9. package/dist/tsup/{actor-router-consts-D29T1Z-K.d.cts → actor-router-consts-DU-1IdQj.d.cts} +1 -1
  10. package/dist/tsup/{actor-router-consts-D29T1Z-K.d.ts → actor-router-consts-DU-1IdQj.d.ts} +1 -1
  11. package/dist/tsup/chunk-2ELYUO6C.cjs +112 -0
  12. package/dist/tsup/chunk-2ELYUO6C.cjs.map +1 -0
  13. package/dist/tsup/chunk-2LY7RW3Y.cjs +2316 -0
  14. package/dist/tsup/chunk-2LY7RW3Y.cjs.map +1 -0
  15. package/dist/tsup/{chunk-L47L3ZWJ.cjs → chunk-6G7ZNM27.cjs} +11 -6
  16. package/dist/tsup/chunk-6G7ZNM27.cjs.map +1 -0
  17. package/dist/tsup/{chunk-PB5AEMKQ.cjs → chunk-A4KEUCB6.cjs} +84 -34
  18. package/dist/tsup/chunk-A4KEUCB6.cjs.map +1 -0
  19. package/dist/tsup/{chunk-7HTNH26M.js → chunk-AKUJ5OTO.js} +11 -6
  20. package/dist/tsup/chunk-AKUJ5OTO.js.map +1 -0
  21. package/dist/tsup/{chunk-TADUYCHF.js → chunk-C22JYHVT.js} +77 -27
  22. package/dist/tsup/chunk-C22JYHVT.js.map +1 -0
  23. package/dist/tsup/chunk-C4EB42ET.js +1459 -0
  24. package/dist/tsup/chunk-C4EB42ET.js.map +1 -0
  25. package/dist/tsup/chunk-CGGGBIDP.cjs +1459 -0
  26. package/dist/tsup/chunk-CGGGBIDP.cjs.map +1 -0
  27. package/dist/tsup/chunk-CMQPDBBR.cjs +1486 -0
  28. package/dist/tsup/chunk-CMQPDBBR.cjs.map +1 -0
  29. package/dist/tsup/{chunk-GQGRQDRL.cjs → chunk-DH6UINWA.cjs} +4 -4
  30. package/dist/tsup/{chunk-GQGRQDRL.cjs.map → chunk-DH6UINWA.cjs.map} +1 -1
  31. package/dist/tsup/chunk-DK46YYCJ.js +1486 -0
  32. package/dist/tsup/chunk-DK46YYCJ.js.map +1 -0
  33. package/dist/tsup/chunk-EGWXXBZV.js +2316 -0
  34. package/dist/tsup/chunk-EGWXXBZV.js.map +1 -0
  35. package/dist/tsup/{chunk-S662Y6ZU.js → chunk-EONWXYMN.js} +2 -2
  36. package/dist/tsup/{chunk-N4KRDJ56.js → chunk-GFGRBYO2.js} +35 -6
  37. package/dist/tsup/chunk-GFGRBYO2.js.map +1 -0
  38. package/dist/tsup/{chunk-IIJNPVPQ.cjs → chunk-GUHXWPGB.cjs} +1515 -1479
  39. package/dist/tsup/chunk-GUHXWPGB.cjs.map +1 -0
  40. package/dist/tsup/{chunk-TI5PXQGG.cjs → chunk-HNE2AK6C.cjs} +2375 -3713
  41. package/dist/tsup/chunk-HNE2AK6C.cjs.map +1 -0
  42. package/dist/tsup/{chunk-2OK7S6QF.js → chunk-I5I6OALK.js} +2 -2
  43. package/dist/tsup/chunk-IHQAF2HV.cjs +23 -0
  44. package/dist/tsup/chunk-IHQAF2HV.cjs.map +1 -0
  45. package/dist/tsup/{chunk-U5SMSA27.cjs → chunk-JJNZQDUN.cjs} +667 -2517
  46. package/dist/tsup/chunk-JJNZQDUN.cjs.map +1 -0
  47. package/dist/tsup/{chunk-ZPWOYQHN.js → chunk-JJSPHLJN.js} +219 -287
  48. package/dist/tsup/chunk-JJSPHLJN.js.map +1 -0
  49. package/dist/tsup/chunk-JRKPV5NJ.js +481 -0
  50. package/dist/tsup/chunk-JRKPV5NJ.js.map +1 -0
  51. package/dist/tsup/{chunk-VKVNIQRQ.js → chunk-K7MVU5SI.js} +36 -41
  52. package/dist/tsup/chunk-K7MVU5SI.js.map +1 -0
  53. package/dist/tsup/{chunk-KJSYAUOM.js → chunk-MLK3GY6P.js} +43 -27
  54. package/dist/tsup/chunk-MLK3GY6P.js.map +1 -0
  55. package/dist/tsup/{chunk-HYPIHCDT.cjs → chunk-MPLMTJY5.cjs} +123 -23
  56. package/dist/tsup/chunk-MPLMTJY5.cjs.map +1 -0
  57. package/dist/tsup/{chunk-MIX2KB6U.js → chunk-PQWI44WD.js} +1755 -3093
  58. package/dist/tsup/chunk-PQWI44WD.js.map +1 -0
  59. package/dist/tsup/{chunk-SR3KQE7Q.cjs → chunk-SQFCIDCG.cjs} +35 -6
  60. package/dist/tsup/chunk-SQFCIDCG.cjs.map +1 -0
  61. package/dist/tsup/{chunk-WY2SHWXQ.js → chunk-SVHJSM2E.js} +110 -24
  62. package/dist/tsup/chunk-SVHJSM2E.js.map +1 -0
  63. package/dist/tsup/chunk-T5KYKM6R.js +49 -0
  64. package/dist/tsup/chunk-T5KYKM6R.js.map +1 -0
  65. package/dist/tsup/{chunk-7WF2QSIC.cjs → chunk-TJ7DKW6F.cjs} +123 -37
  66. package/dist/tsup/chunk-TJ7DKW6F.cjs.map +1 -0
  67. package/dist/tsup/chunk-UQZRMTM3.js +23 -0
  68. package/dist/tsup/chunk-UQZRMTM3.js.map +1 -0
  69. package/dist/tsup/{chunk-JC6BEPE7.cjs → chunk-V3JSZR5P.cjs} +3 -3
  70. package/dist/tsup/{chunk-JC6BEPE7.cjs.map → chunk-V3JSZR5P.cjs.map} +1 -1
  71. package/dist/tsup/{chunk-OAXJWGMU.cjs → chunk-VBR35EQF.cjs} +271 -339
  72. package/dist/tsup/chunk-VBR35EQF.cjs.map +1 -0
  73. package/dist/tsup/{chunk-EIATSBYZ.js → chunk-VWYO36X4.js} +117 -17
  74. package/dist/tsup/chunk-VWYO36X4.js.map +1 -0
  75. package/dist/tsup/{chunk-JPXO2H55.js → chunk-WW27B6DM.js} +1452 -1416
  76. package/dist/tsup/chunk-WW27B6DM.js.map +1 -0
  77. package/dist/tsup/chunk-YAE3MEJM.cjs +49 -0
  78. package/dist/tsup/chunk-YAE3MEJM.cjs.map +1 -0
  79. package/dist/tsup/{chunk-SRIM3GHD.js → chunk-YGYGANCA.js} +473 -2323
  80. package/dist/tsup/chunk-YGYGANCA.js.map +1 -0
  81. package/dist/tsup/chunk-YZJWZBY5.cjs +481 -0
  82. package/dist/tsup/chunk-YZJWZBY5.cjs.map +1 -0
  83. package/dist/tsup/{chunk-ZFY5J2EP.cjs → chunk-ZZLJ5TSM.cjs} +39 -44
  84. package/dist/tsup/chunk-ZZLJ5TSM.cjs.map +1 -0
  85. package/dist/tsup/client/mod.cjs +10 -7
  86. package/dist/tsup/client/mod.cjs.map +1 -1
  87. package/dist/tsup/client/mod.d.cts +6 -6
  88. package/dist/tsup/client/mod.d.ts +6 -6
  89. package/dist/tsup/client/mod.js +11 -8
  90. package/dist/tsup/common/log.cjs +3 -3
  91. package/dist/tsup/common/log.js +2 -2
  92. package/dist/tsup/common/websocket.cjs +4 -4
  93. package/dist/tsup/common/websocket.js +3 -3
  94. package/dist/tsup/{config-Qj-zLJPc.d.ts → config-C2Wwnc69.d.ts} +142 -208
  95. package/dist/tsup/{config-BiNoIHRs.d.ts → config-DROwzBLT.d.cts} +82 -6
  96. package/dist/tsup/{config-BiNoIHRs.d.cts → config-DROwzBLT.d.ts} +82 -6
  97. package/dist/tsup/{config-iPj5l1bL.d.cts → config-ehT-_3BB.d.cts} +142 -208
  98. package/dist/tsup/{context-DzvH1PBK.d.cts → context-DGMJuAyc.d.ts} +16 -3
  99. package/dist/tsup/{context-CQCMuHND.d.ts → context-Dpp2RJbW.d.cts} +16 -3
  100. package/dist/tsup/db/drizzle/mod.cjs +3 -3
  101. package/dist/tsup/db/drizzle/mod.d.cts +1 -1
  102. package/dist/tsup/db/drizzle/mod.d.ts +1 -1
  103. package/dist/tsup/db/drizzle/mod.js +2 -2
  104. package/dist/tsup/db/mod.cjs +3 -3
  105. package/dist/tsup/db/mod.d.cts +1 -1
  106. package/dist/tsup/db/mod.d.ts +1 -1
  107. package/dist/tsup/db/mod.js +2 -2
  108. package/dist/tsup/{driver-Jo8v-kbU.d.ts → driver-CYZP9QYo.d.ts} +1 -1
  109. package/dist/tsup/{driver-iV8J-WMv.d.cts → driver-CoTFpipv.d.cts} +1 -1
  110. package/dist/tsup/driver-helpers/mod.cjs +7 -5
  111. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  112. package/dist/tsup/driver-helpers/mod.d.cts +17 -18
  113. package/dist/tsup/driver-helpers/mod.d.ts +17 -18
  114. package/dist/tsup/driver-helpers/mod.js +11 -9
  115. package/dist/tsup/driver-test-suite/mod.cjs +1275 -228
  116. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  117. package/dist/tsup/driver-test-suite/mod.d.cts +6 -5
  118. package/dist/tsup/driver-test-suite/mod.d.ts +6 -5
  119. package/dist/tsup/driver-test-suite/mod.js +1581 -534
  120. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  121. package/dist/tsup/inspector/mod.cjs +4 -4
  122. package/dist/tsup/inspector/mod.js +3 -3
  123. package/dist/tsup/mod.cjs +15 -9
  124. package/dist/tsup/mod.cjs.map +1 -1
  125. package/dist/tsup/mod.d.cts +9 -9
  126. package/dist/tsup/mod.d.ts +9 -9
  127. package/dist/tsup/mod.js +19 -13
  128. package/dist/tsup/sandbox/client.cjs +28 -0
  129. package/dist/tsup/sandbox/client.cjs.map +1 -0
  130. package/dist/tsup/sandbox/client.d.cts +88 -0
  131. package/dist/tsup/sandbox/client.d.ts +88 -0
  132. package/dist/tsup/sandbox/client.js +28 -0
  133. package/dist/tsup/sandbox/client.js.map +1 -0
  134. package/dist/tsup/sandbox/index.cjs +761 -0
  135. package/dist/tsup/sandbox/index.cjs.map +1 -0
  136. package/dist/tsup/sandbox/index.d.cts +120 -0
  137. package/dist/tsup/sandbox/index.d.ts +120 -0
  138. package/dist/tsup/sandbox/index.js +761 -0
  139. package/dist/tsup/sandbox/index.js.map +1 -0
  140. package/dist/tsup/sandbox/providers/computesdk.cjs +3 -0
  141. package/dist/tsup/sandbox/providers/computesdk.cjs.map +1 -0
  142. package/dist/tsup/sandbox/providers/computesdk.d.cts +7 -0
  143. package/dist/tsup/sandbox/providers/computesdk.d.ts +7 -0
  144. package/dist/tsup/sandbox/providers/computesdk.js +3 -0
  145. package/dist/tsup/sandbox/providers/computesdk.js.map +1 -0
  146. package/dist/tsup/sandbox/providers/daytona.cjs +3 -0
  147. package/dist/tsup/sandbox/providers/daytona.cjs.map +1 -0
  148. package/dist/tsup/sandbox/providers/daytona.d.cts +1 -0
  149. package/dist/tsup/sandbox/providers/daytona.d.ts +1 -0
  150. package/dist/tsup/sandbox/providers/daytona.js +3 -0
  151. package/dist/tsup/sandbox/providers/daytona.js.map +1 -0
  152. package/dist/tsup/sandbox/providers/docker.cjs +3 -0
  153. package/dist/tsup/sandbox/providers/docker.cjs.map +1 -0
  154. package/dist/tsup/sandbox/providers/docker.d.cts +1 -0
  155. package/dist/tsup/sandbox/providers/docker.d.ts +1 -0
  156. package/dist/tsup/sandbox/providers/docker.js +3 -0
  157. package/dist/tsup/sandbox/providers/docker.js.map +1 -0
  158. package/dist/tsup/sandbox/providers/e2b.cjs +3 -0
  159. package/dist/tsup/sandbox/providers/e2b.cjs.map +1 -0
  160. package/dist/tsup/sandbox/providers/e2b.d.cts +1 -0
  161. package/dist/tsup/sandbox/providers/e2b.d.ts +1 -0
  162. package/dist/tsup/sandbox/providers/e2b.js +3 -0
  163. package/dist/tsup/sandbox/providers/e2b.js.map +1 -0
  164. package/dist/tsup/sandbox/providers/local.cjs +3 -0
  165. package/dist/tsup/sandbox/providers/local.cjs.map +1 -0
  166. package/dist/tsup/sandbox/providers/local.d.cts +1 -0
  167. package/dist/tsup/sandbox/providers/local.d.ts +1 -0
  168. package/dist/tsup/sandbox/providers/local.js +3 -0
  169. package/dist/tsup/sandbox/providers/local.js.map +1 -0
  170. package/dist/tsup/sandbox/providers/modal.cjs +3 -0
  171. package/dist/tsup/sandbox/providers/modal.cjs.map +1 -0
  172. package/dist/tsup/sandbox/providers/modal.d.cts +1 -0
  173. package/dist/tsup/sandbox/providers/modal.d.ts +1 -0
  174. package/dist/tsup/sandbox/providers/modal.js +3 -0
  175. package/dist/tsup/sandbox/providers/modal.js.map +1 -0
  176. package/dist/tsup/sandbox/providers/vercel.cjs +3 -0
  177. package/dist/tsup/sandbox/providers/vercel.cjs.map +1 -0
  178. package/dist/tsup/sandbox/providers/vercel.d.cts +1 -0
  179. package/dist/tsup/sandbox/providers/vercel.d.ts +1 -0
  180. package/dist/tsup/sandbox/providers/vercel.js +3 -0
  181. package/dist/tsup/sandbox/providers/vercel.js.map +1 -0
  182. package/dist/tsup/serve-test-suite/mod.cjs +451 -327
  183. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  184. package/dist/tsup/serve-test-suite/mod.js +362 -238
  185. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  186. package/dist/tsup/test/mod.cjs +17 -14
  187. package/dist/tsup/test/mod.cjs.map +1 -1
  188. package/dist/tsup/test/mod.d.cts +4 -4
  189. package/dist/tsup/test/mod.d.ts +4 -4
  190. package/dist/tsup/test/mod.js +14 -11
  191. package/dist/tsup/test/mod.js.map +1 -1
  192. package/dist/tsup/utils.cjs +3 -3
  193. package/dist/tsup/utils.js +2 -2
  194. package/dist/tsup/workflow/mod.cjs +6 -6
  195. package/dist/tsup/workflow/mod.d.cts +13 -9
  196. package/dist/tsup/workflow/mod.d.ts +13 -9
  197. package/dist/tsup/workflow/mod.js +5 -5
  198. package/package.json +114 -15
  199. package/src/actor/config.ts +94 -88
  200. package/src/actor/conn/drivers/websocket.ts +2 -1
  201. package/src/actor/contexts/base/actor.ts +27 -4
  202. package/src/actor/database.ts +6 -1
  203. package/src/actor/driver.ts +27 -8
  204. package/src/actor/errors.ts +10 -5
  205. package/src/actor/instance/connection-manager.ts +4 -3
  206. package/src/actor/instance/kv.ts +52 -9
  207. package/src/actor/instance/mod.ts +135 -84
  208. package/src/actor/instance/queue-manager.ts +2 -5
  209. package/src/actor/instance/queue.ts +31 -29
  210. package/src/actor/instance/state-manager.ts +7 -1
  211. package/src/actor/instance/traces-driver.ts +34 -36
  212. package/src/actor/metrics.ts +137 -0
  213. package/src/actor/protocol/old.ts +9 -12
  214. package/src/actor/router-websocket-endpoints.ts +12 -6
  215. package/src/actor/router.ts +46 -9
  216. package/src/actor/schema.ts +14 -22
  217. package/src/client/actor-common.ts +65 -0
  218. package/src/client/actor-conn.ts +71 -9
  219. package/src/client/actor-handle.ts +22 -5
  220. package/src/client/client.ts +32 -6
  221. package/src/client/config.ts +18 -21
  222. package/src/client/mod.ts +1 -0
  223. package/src/client/queue.ts +8 -6
  224. package/src/common/inline-websocket-adapter.ts +8 -2
  225. package/src/common/router.ts +1 -4
  226. package/src/common/utils.ts +2 -5
  227. package/src/db/config.ts +10 -5
  228. package/src/db/drizzle/mod.ts +51 -41
  229. package/src/db/mod.ts +54 -29
  230. package/src/db/shared.ts +42 -8
  231. package/src/driver-helpers/mod.ts +2 -1
  232. package/src/driver-helpers/sqlite-pool.ts +42 -0
  233. package/src/driver-helpers/utils.ts +0 -20
  234. package/src/driver-test-suite/mod.ts +11 -1
  235. package/src/driver-test-suite/tests/access-control.ts +19 -12
  236. package/src/driver-test-suite/tests/action-features.ts +20 -8
  237. package/src/driver-test-suite/tests/actor-conn.ts +94 -8
  238. package/src/driver-test-suite/tests/actor-db-kv-stats.ts +282 -0
  239. package/src/driver-test-suite/tests/actor-db-raw.ts +6 -2
  240. package/src/driver-test-suite/tests/actor-db.ts +101 -31
  241. package/src/driver-test-suite/tests/actor-inspector.ts +174 -32
  242. package/src/driver-test-suite/tests/actor-kv.ts +79 -33
  243. package/src/driver-test-suite/tests/actor-lifecycle.ts +4 -12
  244. package/src/driver-test-suite/tests/actor-queue.ts +125 -17
  245. package/src/driver-test-suite/tests/actor-run.ts +59 -55
  246. package/src/driver-test-suite/tests/actor-sandbox.ts +78 -0
  247. package/src/driver-test-suite/tests/actor-schedule.ts +1 -4
  248. package/src/driver-test-suite/tests/actor-sleep.ts +111 -0
  249. package/src/driver-test-suite/tests/actor-workflow.ts +387 -3
  250. package/src/driver-test-suite/tests/conn-error-serialization.ts +3 -1
  251. package/src/driver-test-suite/tests/raw-websocket.ts +5 -1
  252. package/src/drivers/default.ts +1 -3
  253. package/src/drivers/engine/actor-driver.ts +94 -21
  254. package/src/drivers/engine/config.ts +4 -12
  255. package/src/drivers/engine/mod.ts +1 -5
  256. package/src/drivers/file-system/actor.ts +43 -8
  257. package/src/drivers/file-system/global-state.ts +180 -64
  258. package/src/drivers/file-system/kv-limits.ts +1 -1
  259. package/src/drivers/file-system/sqlite-runtime.ts +13 -4
  260. package/src/engine-process/mod.ts +5 -1
  261. package/src/inspector/actor-inspector.ts +47 -21
  262. package/src/inspector/config.ts +1 -4
  263. package/src/inspector/mod.browser.ts +2 -2
  264. package/src/inspector/mod.ts +4 -1
  265. package/src/inspector/serve-ui.ts +0 -1
  266. package/src/inspector/workflow-history-json.ts +309 -0
  267. package/src/manager/gateway.ts +6 -2
  268. package/src/manager/router.ts +3 -3
  269. package/src/registry/config/index.ts +65 -12
  270. package/src/registry/config/runner.ts +19 -4
  271. package/src/registry/index.ts +42 -89
  272. package/src/sandbox/actor/db.ts +36 -0
  273. package/src/sandbox/actor/index.ts +476 -0
  274. package/src/sandbox/actor/session.ts +350 -0
  275. package/src/sandbox/actor.test.ts +36 -0
  276. package/src/sandbox/client.test.ts +484 -0
  277. package/src/sandbox/client.ts +707 -0
  278. package/src/sandbox/config.ts +151 -0
  279. package/src/sandbox/index.ts +41 -0
  280. package/src/sandbox/providers/computesdk.ts +1 -0
  281. package/src/sandbox/providers/daytona.ts +1 -0
  282. package/src/sandbox/providers/docker.ts +1 -0
  283. package/src/sandbox/providers/e2b.ts +1 -0
  284. package/src/sandbox/providers/local.ts +1 -0
  285. package/src/sandbox/providers/modal.ts +1 -0
  286. package/src/sandbox/providers/vercel.ts +1 -0
  287. package/src/sandbox/session-persist-driver.ts +180 -0
  288. package/src/sandbox/types.ts +138 -0
  289. package/src/serverless/configure.ts +5 -3
  290. package/src/serverless/router.test.ts +17 -9
  291. package/src/serverless/router.ts +20 -13
  292. package/src/test/mod.ts +3 -4
  293. package/src/utils/endpoint-parser.test.ts +6 -2
  294. package/src/utils/endpoint-parser.ts +6 -2
  295. package/src/utils/env-vars.ts +0 -2
  296. package/src/utils/node.ts +1 -1
  297. package/src/utils/serve.ts +10 -5
  298. package/src/utils.ts +6 -1
  299. package/src/workflow/constants.ts +1 -2
  300. package/src/workflow/context.ts +42 -9
  301. package/src/workflow/driver.ts +57 -23
  302. package/src/workflow/inspector.ts +7 -13
  303. package/src/workflow/mod.ts +91 -4
  304. package/dist/tsup/chunk-6LJAZ5R4.cjs +0 -96
  305. package/dist/tsup/chunk-6LJAZ5R4.cjs.map +0 -1
  306. package/dist/tsup/chunk-7HTNH26M.js.map +0 -1
  307. package/dist/tsup/chunk-7WF2QSIC.cjs.map +0 -1
  308. package/dist/tsup/chunk-D2SPAJVT.cjs +0 -645
  309. package/dist/tsup/chunk-D2SPAJVT.cjs.map +0 -1
  310. package/dist/tsup/chunk-EIATSBYZ.js.map +0 -1
  311. package/dist/tsup/chunk-HYPIHCDT.cjs.map +0 -1
  312. package/dist/tsup/chunk-IIJNPVPQ.cjs.map +0 -1
  313. package/dist/tsup/chunk-JPXO2H55.js.map +0 -1
  314. package/dist/tsup/chunk-KJSYAUOM.js.map +0 -1
  315. package/dist/tsup/chunk-L47L3ZWJ.cjs.map +0 -1
  316. package/dist/tsup/chunk-MIX2KB6U.js.map +0 -1
  317. package/dist/tsup/chunk-N4KRDJ56.js.map +0 -1
  318. package/dist/tsup/chunk-OAXJWGMU.cjs.map +0 -1
  319. package/dist/tsup/chunk-PB5AEMKQ.cjs.map +0 -1
  320. package/dist/tsup/chunk-R5OQUSLN.js +0 -645
  321. package/dist/tsup/chunk-R5OQUSLN.js.map +0 -1
  322. package/dist/tsup/chunk-SR3KQE7Q.cjs.map +0 -1
  323. package/dist/tsup/chunk-SRIM3GHD.js.map +0 -1
  324. package/dist/tsup/chunk-TADUYCHF.js.map +0 -1
  325. package/dist/tsup/chunk-TI5PXQGG.cjs.map +0 -1
  326. package/dist/tsup/chunk-U5SMSA27.cjs.map +0 -1
  327. package/dist/tsup/chunk-VKVNIQRQ.js.map +0 -1
  328. package/dist/tsup/chunk-WY2SHWXQ.js.map +0 -1
  329. package/dist/tsup/chunk-ZFY5J2EP.cjs.map +0 -1
  330. package/dist/tsup/chunk-ZPWOYQHN.js.map +0 -1
  331. package/src/db/sqlite-vfs.ts +0 -12
  332. /package/dist/tsup/{chunk-S662Y6ZU.js.map → chunk-EONWXYMN.js.map} +0 -0
  333. /package/dist/tsup/{chunk-2OK7S6QF.js.map → chunk-I5I6OALK.js.map} +0 -0
@@ -2,10 +2,11 @@
2
2
 
3
3
 
4
4
 
5
+ var _chunk2LY7RW3Ycjs = require('./chunk-2LY7RW3Y.cjs');
5
6
 
6
7
 
7
8
 
8
- var _chunkU5SMSA27cjs = require('./chunk-U5SMSA27.cjs');
9
+ var _chunkJJNZQDUNcjs = require('./chunk-JJNZQDUN.cjs');
9
10
 
10
11
 
11
12
 
@@ -13,10 +14,10 @@ var _chunkU5SMSA27cjs = require('./chunk-U5SMSA27.cjs');
13
14
 
14
15
 
15
16
 
17
+ var _chunkGUHXWPGBcjs = require('./chunk-GUHXWPGB.cjs');
16
18
 
17
19
 
18
20
 
19
- var _chunkIIJNPVPQcjs = require('./chunk-IIJNPVPQ.cjs');
20
21
 
21
22
 
22
23
 
@@ -30,6 +31,7 @@ var _chunkIIJNPVPQcjs = require('./chunk-IIJNPVPQ.cjs');
30
31
 
31
32
 
32
33
 
34
+ var _chunkCGGGBIDPcjs = require('./chunk-CGGGBIDP.cjs');
33
35
 
34
36
 
35
37
 
@@ -47,48 +49,28 @@ var _chunkIIJNPVPQcjs = require('./chunk-IIJNPVPQ.cjs');
47
49
 
48
50
 
49
51
 
52
+ var _chunkHNE2AK6Ccjs = require('./chunk-HNE2AK6C.cjs');
50
53
 
51
- var _chunkTI5PXQGGcjs = require('./chunk-TI5PXQGG.cjs');
52
54
 
53
55
 
56
+ var _chunkA4KEUCB6cjs = require('./chunk-A4KEUCB6.cjs');
54
57
 
55
58
 
56
59
 
57
60
 
58
- var _chunkPB5AEMKQcjs = require('./chunk-PB5AEMKQ.cjs');
59
61
 
60
62
 
61
63
 
62
64
 
63
65
 
64
66
 
67
+ var _chunkMPLMTJY5cjs = require('./chunk-MPLMTJY5.cjs');
65
68
 
66
69
 
67
70
 
68
71
 
69
72
 
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
- var _chunkHYPIHCDTcjs = require('./chunk-HYPIHCDT.cjs');
78
-
79
-
80
-
81
-
82
-
83
- var _chunkL47L3ZWJcjs = require('./chunk-L47L3ZWJ.cjs');
84
-
85
- // src/actor/mod.ts
86
- function actor(input) {
87
- const config = _chunkPB5AEMKQcjs.ActorConfigSchema.parse(input);
88
- return new (0, _chunkU5SMSA27cjs.ActorDefinition)(config);
89
- }
90
- var event2 = _chunkPB5AEMKQcjs.event;
91
- var queue2 = _chunkPB5AEMKQcjs.queue;
73
+ var _chunk6G7ZNM27cjs = require('./chunk-6G7ZNM27.cjs');
92
74
 
93
75
  // src/drivers/engine/actor-driver.ts
94
76
  var _enginerunner = require('@rivetkit/engine-runner');
@@ -99,7 +81,7 @@ var _invariant = require('invariant'); var _invariant2 = _interopRequireDefault(
99
81
 
100
82
  // src/drivers/engine/log.ts
101
83
  function logger2() {
102
- return _chunkHYPIHCDTcjs.getLogger.call(void 0, "driver-engine");
84
+ return _chunkMPLMTJY5cjs.getLogger.call(void 0, "driver-engine");
103
85
  }
104
86
 
105
87
  // src/drivers/engine/actor-driver.ts
@@ -114,8 +96,19 @@ var EngineActorDriver = class {
114
96
  #runner;
115
97
  #actors = /* @__PURE__ */ new Map();
116
98
  #actorRouter;
117
- #runnerStarted = _chunkHYPIHCDTcjs.promiseWithResolvers.call(void 0, (reason) => logger2().warn({ msg: "unhandled runner started promise rejection", reason }));
118
- #runnerStopped = _chunkHYPIHCDTcjs.promiseWithResolvers.call(void 0, (reason) => logger2().warn({ msg: "unhandled runner stopped promise rejection", reason }));
99
+ #sqlitePool;
100
+ #runnerStarted = _chunkMPLMTJY5cjs.promiseWithResolvers.call(void 0,
101
+ (reason) => logger2().warn({
102
+ msg: "unhandled runner started promise rejection",
103
+ reason
104
+ })
105
+ );
106
+ #runnerStopped = _chunkMPLMTJY5cjs.promiseWithResolvers.call(void 0,
107
+ (reason) => logger2().warn({
108
+ msg: "unhandled runner stopped promise rejection",
109
+ reason
110
+ })
111
+ );
119
112
  #isRunnerStopped = false;
120
113
  // HACK: Track actor stop intent locally since the runner protocol doesn't
121
114
  // pass the stop reason to onActorStop. This will be fixed when the runner
@@ -138,8 +131,9 @@ var EngineActorDriver = class {
138
131
  this.#config = config;
139
132
  this.#managerDriver = managerDriver;
140
133
  this.#inlineClient = inlineClient;
134
+ this.#sqlitePool = new (0, _chunkCGGGBIDPcjs.SqliteVfsPoolManager)(config);
141
135
  const token = config.token;
142
- this.#actorRouter = _chunkU5SMSA27cjs.createActorRouter.call(void 0,
136
+ this.#actorRouter = _chunkJJNZQDUNcjs.createActorRouter.call(void 0,
143
137
  config,
144
138
  this,
145
139
  void 0,
@@ -147,16 +141,15 @@ var EngineActorDriver = class {
147
141
  );
148
142
  const engineRunnerConfig = {
149
143
  version: config.runner.version,
150
- endpoint: _chunkIIJNPVPQcjs.getEndpoint.call(void 0, config),
144
+ endpoint: _chunkGUHXWPGBcjs.getEndpoint.call(void 0, config),
151
145
  token,
152
146
  namespace: config.namespace,
153
147
  totalSlots: config.runner.totalSlots,
154
148
  runnerName: config.runner.runnerName,
155
- runnerKey: _nullishCoalesce(config.runner.runnerKey, () => ( crypto.randomUUID())),
156
149
  metadata: {
157
- rivetkit: { version: _chunkHYPIHCDTcjs.VERSION }
150
+ rivetkit: { version: _chunkMPLMTJY5cjs.VERSION }
158
151
  },
159
- prepopulateActorNames: _chunkTI5PXQGGcjs.buildActorNames.call(void 0, config),
152
+ prepopulateActorNames: _chunkHNE2AK6Ccjs.buildActorNames.call(void 0, config),
160
153
  onConnected: () => {
161
154
  this.#runnerStarted.resolve(void 0);
162
155
  },
@@ -173,7 +166,8 @@ var EngineActorDriver = class {
173
166
  },
174
167
  onActorStart: this.#runnerOnActorStart.bind(this),
175
168
  onActorStop: this.#runnerOnActorStop.bind(this),
176
- logger: _chunkHYPIHCDTcjs.getLogger.call(void 0, "engine-runner")
169
+ logger: _chunkMPLMTJY5cjs.getLogger.call(void 0, "engine-runner"),
170
+ debugLatencyMs: process.env._RIVET_DEBUG_LATENCY_MS ? Number.parseInt(process.env._RIVET_DEBUG_LATENCY_MS, 10) : void 0
177
171
  };
178
172
  this.#runner = new (0, _enginerunner.Runner)(engineRunnerConfig);
179
173
  this.#runner.start();
@@ -199,8 +193,8 @@ var EngineActorDriver = class {
199
193
  getContext(actorId) {
200
194
  return {};
201
195
  }
202
- async setAlarm(actor2, timestamp) {
203
- const handler = this.#actors.get(actor2.id);
196
+ async setAlarm(actor, timestamp) {
197
+ const handler = this.#actors.get(actor.id);
204
198
  if (!handler) {
205
199
  logger2().warn({
206
200
  msg: "no handler for actor to set alarm"
@@ -212,11 +206,11 @@ var EngineActorDriver = class {
212
206
  handler.alarmTimeout = void 0;
213
207
  }
214
208
  const delay = Math.max(0, timestamp - Date.now());
215
- handler.alarmTimeout = _chunkHYPIHCDTcjs.setLongTimeout.call(void 0, () => {
216
- actor2.onAlarm();
209
+ handler.alarmTimeout = _chunkMPLMTJY5cjs.setLongTimeout.call(void 0, () => {
210
+ actor.onAlarm();
217
211
  handler.alarmTimeout = void 0;
218
212
  }, delay);
219
- this.#runner.setAlarm(actor2.id, timestamp);
213
+ this.#runner.setAlarm(actor.id, timestamp);
220
214
  }
221
215
  // No database overrides - will use KV-backed implementation from rivetkit/db
222
216
  // MARK: - Batch KV operations
@@ -229,6 +223,9 @@ var EngineActorDriver = class {
229
223
  async kvBatchDelete(actorId, keys) {
230
224
  await this.#runner.kvDelete(actorId, keys);
231
225
  }
226
+ async kvDeleteRange(actorId, start, end) {
227
+ await this.#runner.kvDeleteRange(actorId, start, end);
228
+ }
232
229
  async kvList(actorId) {
233
230
  const entries = await this.#runner.kvListPrefix(
234
231
  actorId,
@@ -243,8 +240,12 @@ var EngineActorDriver = class {
243
240
  });
244
241
  return keys;
245
242
  }
246
- async kvListPrefix(actorId, prefix) {
247
- const result = await this.#runner.kvListPrefix(actorId, prefix);
243
+ async kvListPrefix(actorId, prefix, options) {
244
+ const result = await this.#runner.kvListPrefix(
245
+ actorId,
246
+ prefix,
247
+ options
248
+ );
248
249
  logger2().info({
249
250
  msg: "kvListPrefix called",
250
251
  actorId,
@@ -254,11 +255,18 @@ var EngineActorDriver = class {
254
255
  });
255
256
  return result;
256
257
  }
258
+ async kvListRange(actorId, start, end, options) {
259
+ return await this.#runner.kvListRange(
260
+ actorId,
261
+ start,
262
+ end,
263
+ true,
264
+ options
265
+ );
266
+ }
257
267
  /** Creates a SQLite VFS instance for creating KV-backed databases */
258
- async createSqliteVfs() {
259
- const specifier = "@rivetkit/sqlite-vfs";
260
- const { SqliteVfs } = await Promise.resolve().then(() => _interopRequireWildcard(require(specifier)));
261
- return new SqliteVfs();
268
+ async createSqliteVfs(actorId) {
269
+ return await this.#sqlitePool.acquire(actorId);
262
270
  }
263
271
  // MARK: - Actor Lifecycle
264
272
  async loadActor(actorId) {
@@ -288,7 +296,7 @@ var EngineActorDriver = class {
288
296
  var _a;
289
297
  (_a = handler.actor) == null ? void 0 : _a.rLog.error({
290
298
  msg: "onStop errored",
291
- error: _chunkHYPIHCDTcjs.stringifyError.call(void 0, err)
299
+ error: _chunkMPLMTJY5cjs.stringifyError.call(void 0, err)
292
300
  });
293
301
  })
294
302
  );
@@ -296,6 +304,7 @@ var EngineActorDriver = class {
296
304
  }
297
305
  await Promise.all(stopPromises);
298
306
  logger2().debug({ msg: "all actors stopped" });
307
+ await this.#sqlitePool.shutdown();
299
308
  try {
300
309
  await this.#runner.shutdown(immediate);
301
310
  } catch (error) {
@@ -371,20 +380,25 @@ var EngineActorDriver = class {
371
380
  let handler = this.#actors.get(actorId);
372
381
  if (!handler) {
373
382
  handler = {
374
- actorStartPromise: _chunkHYPIHCDTcjs.promiseWithResolvers.call(void 0, (reason) => logger2().warn({ msg: "unhandled actor start promise rejection", reason }))
383
+ actorStartPromise: _chunkMPLMTJY5cjs.promiseWithResolvers.call(void 0,
384
+ (reason) => logger2().warn({
385
+ msg: "unhandled actor start promise rejection",
386
+ reason
387
+ })
388
+ )
375
389
  };
376
390
  this.#actors.set(actorId, handler);
377
391
  }
378
392
  handler.actorStartError = void 0;
379
393
  const name = actorConfig.name;
380
394
  _invariant2.default.call(void 0, actorConfig.key, "actor should have a key");
381
- const key = _chunkTI5PXQGGcjs.deserializeActorKey.call(void 0, actorConfig.key);
395
+ const key = _chunkHNE2AK6Ccjs.deserializeActorKey.call(void 0, actorConfig.key);
382
396
  try {
383
397
  const [persistDataBuffer] = await this.#runner.kvGet(actorId, [
384
- _chunkPB5AEMKQcjs.KEYS.PERSIST_DATA
398
+ _chunkA4KEUCB6cjs.KEYS.PERSIST_DATA
385
399
  ]);
386
400
  if (persistDataBuffer === null) {
387
- const initialKvState = _chunkTI5PXQGGcjs.getInitialActorKvState.call(void 0, input);
401
+ const initialKvState = _chunkCGGGBIDPcjs.getInitialActorKvState.call(void 0, input);
388
402
  await this.#runner.kvPut(actorId, initialKvState);
389
403
  logger2().debug({
390
404
  msg: "initialized persist data for new actor",
@@ -397,7 +411,7 @@ var EngineActorDriver = class {
397
411
  dataSize: persistDataBuffer.byteLength
398
412
  });
399
413
  }
400
- const definition = _chunkU5SMSA27cjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
414
+ const definition = _chunkJJNZQDUNcjs.lookupInRegistry.call(void 0, this.#config, actorConfig.name);
401
415
  handler.actor = await definition.instantiate();
402
416
  const protocolMetadata = this.#runner.getProtocolMetadata();
403
417
  if (protocolMetadata) {
@@ -405,11 +419,17 @@ var EngineActorDriver = class {
405
419
  msg: "applying config limits from protocol",
406
420
  protocolMetadata
407
421
  });
408
- const stopThresholdMax = Math.max(Number(protocolMetadata.actorStopThreshold) - 1e3, 0);
422
+ const stopThresholdMax = Math.max(
423
+ Number(protocolMetadata.actorStopThreshold) - 1e3,
424
+ 0
425
+ );
409
426
  handler.actor.overrides.onSleepTimeout = stopThresholdMax;
410
427
  handler.actor.overrides.onDestroyTimeout = stopThresholdMax;
411
428
  if (protocolMetadata.serverlessDrainGracePeriod) {
412
- const drainMax = Math.max(Number(protocolMetadata.serverlessDrainGracePeriod) - 1e3, 0);
429
+ const drainMax = Math.max(
430
+ Number(protocolMetadata.serverlessDrainGracePeriod) - 1e3,
431
+ 0
432
+ );
413
433
  handler.actor.overrides.runStopTimeout = drainMax;
414
434
  handler.actor.overrides.waitUntilTimeout = drainMax;
415
435
  }
@@ -428,7 +448,9 @@ var EngineActorDriver = class {
428
448
  const error = innerError instanceof Error ? new Error(
429
449
  `Failed to start actor ${actorId}: ${innerError.message}`,
430
450
  { cause: innerError }
431
- ) : new Error(`Failed to start actor ${actorId}: ${String(innerError)}`);
451
+ ) : new Error(
452
+ `Failed to start actor ${actorId}: ${String(innerError)}`
453
+ );
432
454
  handler.actor = void 0;
433
455
  handler.actorStartError = error;
434
456
  (_a = handler.actorStartPromise) == null ? void 0 : _a.reject(error);
@@ -438,7 +460,7 @@ var EngineActorDriver = class {
438
460
  actorId,
439
461
  name,
440
462
  key,
441
- err: _chunkHYPIHCDTcjs.stringifyError.call(void 0, error)
463
+ err: _chunkMPLMTJY5cjs.stringifyError.call(void 0, error)
442
464
  });
443
465
  try {
444
466
  this.#runner.stopActor(actorId);
@@ -446,7 +468,7 @@ var EngineActorDriver = class {
446
468
  logger2().debug({
447
469
  msg: "failed to stop actor after start failure",
448
470
  actorId,
449
- err: _chunkHYPIHCDTcjs.stringifyError.call(void 0, stopError)
471
+ err: _chunkMPLMTJY5cjs.stringifyError.call(void 0, stopError)
450
472
  });
451
473
  }
452
474
  }
@@ -457,18 +479,26 @@ var EngineActorDriver = class {
457
479
  this.#actorStopIntent.delete(actorId);
458
480
  const handler = this.#actors.get(actorId);
459
481
  if (!handler) {
460
- logger2().debug({ msg: "no runner actor handler to stop", actorId, reason });
482
+ logger2().debug({
483
+ msg: "no runner actor handler to stop",
484
+ actorId,
485
+ reason
486
+ });
461
487
  return;
462
488
  }
463
489
  if (handler.actorStartPromise) {
464
490
  try {
465
- logger2().debug({ msg: "runner actor stopping before it started, waiting", actorId, generation });
491
+ logger2().debug({
492
+ msg: "runner actor stopping before it started, waiting",
493
+ actorId,
494
+ generation
495
+ });
466
496
  await handler.actorStartPromise.promise;
467
497
  } catch (err) {
468
498
  logger2().debug({
469
499
  msg: "actor start failed during stop, cleaning up handler",
470
500
  actorId,
471
- err: _chunkHYPIHCDTcjs.stringifyError.call(void 0, err)
501
+ err: _chunkMPLMTJY5cjs.stringifyError.call(void 0, err)
472
502
  });
473
503
  }
474
504
  }
@@ -478,7 +508,7 @@ var EngineActorDriver = class {
478
508
  } catch (err) {
479
509
  logger2().error({
480
510
  msg: "error in onStop, proceeding with removing actor",
481
- err: _chunkHYPIHCDTcjs.stringifyError.call(void 0, err)
511
+ err: _chunkMPLMTJY5cjs.stringifyError.call(void 0, err)
482
512
  });
483
513
  }
484
514
  }
@@ -511,10 +541,10 @@ var EngineActorDriver = class {
511
541
  websocketProps: websocketRaw ? Object.keys(websocketRaw).join(", ") : "null"
512
542
  });
513
543
  const protocols = request.headers.get("sec-websocket-protocol");
514
- const { encoding, connParams } = _chunkTI5PXQGGcjs.parseWebSocketProtocols.call(void 0, protocols);
544
+ const { encoding, connParams } = _chunkHNE2AK6Ccjs.parseWebSocketProtocols.call(void 0, protocols);
515
545
  let wsHandler;
516
546
  try {
517
- wsHandler = await _chunkTI5PXQGGcjs.routeWebSocket.call(void 0,
547
+ wsHandler = await _chunkHNE2AK6Ccjs.routeWebSocket.call(void 0,
518
548
  request,
519
549
  requestPath,
520
550
  requestHeaders,
@@ -536,8 +566,8 @@ var EngineActorDriver = class {
536
566
  websocket.raw = websocket;
537
567
  const wsContext = new (0, _ws.WSContext)(websocket);
538
568
  const conn = wsHandler.conn;
539
- const actor2 = wsHandler.actor;
540
- const connStateManager = conn == null ? void 0 : conn[_chunkTI5PXQGGcjs.CONN_STATE_MANAGER_SYMBOL];
569
+ const actor = wsHandler.actor;
570
+ const connStateManager = conn == null ? void 0 : conn[_chunkHNE2AK6Ccjs.CONN_STATE_MANAGER_SYMBOL];
541
571
  logger2().debug({
542
572
  msg: "attaching websocket event listeners",
543
573
  actorId,
@@ -549,79 +579,79 @@ var EngineActorDriver = class {
549
579
  if (isRestoringHibernatable) {
550
580
  (_c = wsHandler.onRestore) == null ? void 0 : _c.call(wsHandler, wsContext);
551
581
  }
552
- websocket.addEventListener("open", (event3) => {
553
- wsHandler.onOpen(event3, wsContext);
582
+ websocket.addEventListener("open", (event) => {
583
+ wsHandler.onOpen(event, wsContext);
554
584
  });
555
- websocket.addEventListener("message", (event3) => {
585
+ websocket.addEventListener("message", (event) => {
556
586
  var _a2, _b2;
557
587
  logger2().debug({
558
588
  msg: "websocket message event listener triggered",
559
589
  connId: conn == null ? void 0 : conn.id,
560
- actorId: actor2 == null ? void 0 : actor2.id,
561
- messageIndex: event3.rivetMessageIndex,
590
+ actorId: actor == null ? void 0 : actor.id,
591
+ messageIndex: event.rivetMessageIndex,
562
592
  hasWsHandler: !!wsHandler,
563
593
  hasOnMessage: !!(wsHandler == null ? void 0 : wsHandler.onMessage),
564
- actorIsStopping: actor2 == null ? void 0 : actor2.isStopping,
594
+ actorIsStopping: actor == null ? void 0 : actor.isStopping,
565
595
  websocketType: (_a2 = websocket == null ? void 0 : websocket.constructor) == null ? void 0 : _a2.name,
566
596
  wsUniqueId: websocket.__rivet_ws_id,
567
- eventTargetWsId: (_b2 = event3.target) == null ? void 0 : _b2.__rivet_ws_id
597
+ eventTargetWsId: (_b2 = event.target) == null ? void 0 : _b2.__rivet_ws_id
568
598
  });
569
- if (actor2 == null ? void 0 : actor2.isStopping) {
599
+ if (actor == null ? void 0 : actor.isStopping) {
570
600
  logger2().debug({
571
601
  msg: "ignoring ws message, actor is stopping",
572
602
  connId: conn == null ? void 0 : conn.id,
573
- actorId: actor2 == null ? void 0 : actor2.id,
574
- messageIndex: event3.rivetMessageIndex
603
+ actorId: actor == null ? void 0 : actor.id,
604
+ messageIndex: event.rivetMessageIndex
575
605
  });
576
606
  return;
577
607
  }
578
608
  logger2().debug({
579
609
  msg: "calling wsHandler.onMessage",
580
610
  connId: conn == null ? void 0 : conn.id,
581
- messageIndex: event3.rivetMessageIndex
611
+ messageIndex: event.rivetMessageIndex
582
612
  });
583
- wsHandler.onMessage(event3, wsContext);
613
+ wsHandler.onMessage(event, wsContext);
584
614
  const hibernate = connStateManager == null ? void 0 : connStateManager.hibernatableData;
585
- if (hibernate && conn && actor2) {
615
+ if (hibernate && conn && actor) {
586
616
  _invariant2.default.call(void 0,
587
- typeof event3.rivetMessageIndex === "number",
617
+ typeof event.rivetMessageIndex === "number",
588
618
  "missing event.rivetMessageIndex"
589
619
  );
590
620
  const previousMsgIndex = hibernate.serverMessageIndex;
591
- hibernate.serverMessageIndex = event3.rivetMessageIndex;
621
+ hibernate.serverMessageIndex = event.rivetMessageIndex;
592
622
  logger2().info({
593
623
  msg: "persisting message index",
594
624
  connId: conn.id,
595
625
  previousMsgIndex,
596
- newMsgIndex: event3.rivetMessageIndex
626
+ newMsgIndex: event.rivetMessageIndex
597
627
  });
598
628
  const entry = this.#hwsMessageIndex.get(conn.id);
599
629
  if (entry) {
600
- const messageLength = _chunkTI5PXQGGcjs.getValueLength.call(void 0, event3.data);
630
+ const messageLength = _chunkHNE2AK6Ccjs.getValueLength.call(void 0, event.data);
601
631
  entry.bufferedMessageSize += messageLength;
602
632
  if (entry.bufferedMessageSize >= CONN_BUFFERED_MESSAGE_SIZE_THRESHOLD) {
603
633
  entry.bufferedMessageSize = 0;
604
634
  entry.pendingAckFromBufferSize = true;
605
- actor2.stateManager.saveState({
635
+ actor.stateManager.saveState({
606
636
  immediate: true
607
637
  });
608
638
  } else {
609
- actor2.stateManager.saveState({
639
+ actor.stateManager.saveState({
610
640
  maxWait: CONN_MESSAGE_ACK_DEADLINE
611
641
  });
612
642
  }
613
643
  } else {
614
- actor2.stateManager.saveState({
644
+ actor.stateManager.saveState({
615
645
  maxWait: CONN_MESSAGE_ACK_DEADLINE
616
646
  });
617
647
  }
618
648
  }
619
649
  });
620
- websocket.addEventListener("close", (event3) => {
621
- wsHandler.onClose(event3, wsContext);
650
+ websocket.addEventListener("close", (event) => {
651
+ wsHandler.onClose(event, wsContext);
622
652
  });
623
- websocket.addEventListener("error", (event3) => {
624
- wsHandler.onError(event3, wsContext);
653
+ websocket.addEventListener("error", (event) => {
654
+ wsHandler.onError(event, wsContext);
625
655
  });
626
656
  if (isRestoringHibernatable) {
627
657
  logger2().info({
@@ -668,10 +698,10 @@ var EngineActorDriver = class {
668
698
  gatewayId: _enginerunner.idToStr.call(void 0, gatewayId),
669
699
  requestId: _enginerunner.idToStr.call(void 0, requestId)
670
700
  });
671
- if (path === _chunkTI5PXQGGcjs.PATH_CONNECT) {
701
+ if (path === _chunkHNE2AK6Ccjs.PATH_CONNECT) {
672
702
  return true;
673
- } else if (path === _chunkTI5PXQGGcjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunkTI5PXQGGcjs.PATH_WEBSOCKET_PREFIX)) {
674
- const definition = _chunkU5SMSA27cjs.lookupInRegistry.call(void 0,
703
+ } else if (path === _chunkHNE2AK6Ccjs.PATH_WEBSOCKET_BASE || path.startsWith(_chunkHNE2AK6Ccjs.PATH_WEBSOCKET_PREFIX)) {
704
+ const definition = _chunkJJNZQDUNcjs.lookupInRegistry.call(void 0,
675
705
  this.#config,
676
706
  actorInstance.config.name
677
707
  );
@@ -680,7 +710,7 @@ var EngineActorDriver = class {
680
710
  return true;
681
711
  } else if (typeof canHibernateWebSocket === "function") {
682
712
  try {
683
- const newPath = _chunkTI5PXQGGcjs.truncateRawWebSocketPathPrefix.call(void 0,
713
+ const newPath = _chunkHNE2AK6Ccjs.truncateRawWebSocketPathPrefix.call(void 0,
684
714
  url.pathname
685
715
  );
686
716
  const truncatedRequest = new Request(
@@ -699,7 +729,7 @@ var EngineActorDriver = class {
699
729
  } else {
700
730
  return false;
701
731
  }
702
- } else if (path === _chunkTI5PXQGGcjs.PATH_INSPECTOR_CONNECT) {
732
+ } else if (path === _chunkHNE2AK6Ccjs.PATH_INSPECTOR_CONNECT) {
703
733
  return false;
704
734
  } else {
705
735
  logger2().warn({
@@ -710,9 +740,9 @@ var EngineActorDriver = class {
710
740
  }
711
741
  }
712
742
  async #hwsLoadAll(actorId) {
713
- const actor2 = await this.loadActor(actorId);
714
- return actor2.conns.values().map((conn) => {
715
- const connStateManager = conn[_chunkTI5PXQGGcjs.CONN_STATE_MANAGER_SYMBOL];
743
+ const actor = await this.loadActor(actorId);
744
+ return actor.conns.values().map((conn) => {
745
+ const connStateManager = conn[_chunkHNE2AK6Ccjs.CONN_STATE_MANAGER_SYMBOL];
716
746
  const hibernatable = connStateManager.hibernatableData;
717
747
  if (!hibernatable) return void 0;
718
748
  return {
@@ -725,18 +755,18 @@ var EngineActorDriver = class {
725
755
  };
726
756
  }).filter((x) => x !== void 0).toArray();
727
757
  }
728
- async onBeforeActorStart(actor2) {
758
+ async onBeforeActorStart(actor) {
729
759
  var _a;
730
- const handler = this.#actors.get(actor2.id);
760
+ const handler = this.#actors.get(actor.id);
731
761
  _invariant2.default.call(void 0, handler, "missing actor handler in onBeforeActorReady");
732
762
  handler.actorStartError = void 0;
733
763
  (_a = handler.actorStartPromise) == null ? void 0 : _a.resolve();
734
764
  handler.actorStartPromise = void 0;
735
- const metaEntries = await this.#hwsLoadAll(actor2.id);
736
- await this.#runner.restoreHibernatingRequests(actor2.id, metaEntries);
765
+ const metaEntries = await this.#hwsLoadAll(actor.id);
766
+ await this.#runner.restoreHibernatingRequests(actor.id, metaEntries);
737
767
  }
738
768
  onCreateConn(conn) {
739
- const hibernatable = conn[_chunkTI5PXQGGcjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
769
+ const hibernatable = conn[_chunkHNE2AK6Ccjs.CONN_STATE_MANAGER_SYMBOL].hibernatableData;
740
770
  if (!hibernatable) return;
741
771
  this.#hwsMessageIndex.set(conn.id, {
742
772
  serverMessageIndex: hibernatable.serverMessageIndex,
@@ -758,7 +788,7 @@ var EngineActorDriver = class {
758
788
  });
759
789
  }
760
790
  onBeforePersistConn(conn) {
761
- const stateManager = conn[_chunkTI5PXQGGcjs.CONN_STATE_MANAGER_SYMBOL];
791
+ const stateManager = conn[_chunkHNE2AK6Ccjs.CONN_STATE_MANAGER_SYMBOL];
762
792
  const hibernatable = stateManager.hibernatableDataOrError();
763
793
  const entry = this.#hwsMessageIndex.get(conn.id);
764
794
  if (!entry) {
@@ -772,7 +802,7 @@ var EngineActorDriver = class {
772
802
  entry.serverMessageIndex = hibernatable.serverMessageIndex;
773
803
  }
774
804
  onAfterPersistConn(conn) {
775
- const stateManager = conn[_chunkTI5PXQGGcjs.CONN_STATE_MANAGER_SYMBOL];
805
+ const stateManager = conn[_chunkHNE2AK6Ccjs.CONN_STATE_MANAGER_SYMBOL];
776
806
  const hibernatable = stateManager.hibernatableDataOrError();
777
807
  const entry = this.#hwsMessageIndex.get(conn.id);
778
808
  if (!entry) {
@@ -795,149 +825,29 @@ var EngineActorDriver = class {
795
825
  }
796
826
  };
797
827
 
798
- // src/drivers/engine/config.ts
799
- var _v4 = require('zod/v4');
800
- var EngineConfigSchemaBase = _chunkIIJNPVPQcjs.ClientConfigSchemaBase.extend({
801
- /** Unique key for this runner. Runners connecting a given key will replace any other runner connected with the same key. */
802
- runnerKey: _v4.z.string().optional().transform((val) => _nullishCoalesce(val, () => ( _chunkHYPIHCDTcjs.getRivetRunnerKey.call(void 0, )))),
803
- /** How many actors this runner can run. */
804
- totalSlots: _v4.z.number().default(1e5)
805
- });
806
- var EngineConfigSchemaTransformed = EngineConfigSchemaBase.transform(
807
- (config, ctx) => transformEngineConfig(config, ctx)
808
- );
809
- var EngineConfigSchema = EngineConfigSchemaTransformed.default(
810
- () => EngineConfigSchemaTransformed.parse({})
811
- );
812
- function transformEngineConfig(config, ctx) {
813
- return {
814
- ..._chunkIIJNPVPQcjs.transformClientConfig.call(void 0, config, ctx),
815
- runnerKey: config.runnerKey
816
- };
817
- }
818
-
819
828
  // src/drivers/engine/mod.ts
820
829
  function createEngineDriver() {
821
830
  return {
822
831
  name: "engine",
823
832
  displayName: "Engine",
824
833
  manager: (config) => {
825
- const clientConfig = _chunkIIJNPVPQcjs.convertRegistryConfigToClientConfig.call(void 0, config);
826
- return new (0, _chunkIIJNPVPQcjs.RemoteManagerDriver)(clientConfig);
834
+ const clientConfig = _chunkGUHXWPGBcjs.convertRegistryConfigToClientConfig.call(void 0, config);
835
+ return new (0, _chunkGUHXWPGBcjs.RemoteManagerDriver)(clientConfig);
827
836
  },
828
837
  actor: (config, managerDriver, inlineClient) => {
829
- return new EngineActorDriver(
830
- config,
831
- managerDriver,
832
- inlineClient
833
- );
838
+ return new EngineActorDriver(config, managerDriver, inlineClient);
834
839
  },
835
840
  autoStartActorDriver: true
836
841
  };
837
842
  }
838
843
 
839
- // src/registry/config/legacy-runner.ts
840
-
841
- var LegacyDriverConfigSchema = _v4.z.object({
842
- /** Machine-readable name to identify this driver by. */
843
- name: _v4.z.string(),
844
- manager: _v4.z.custom(),
845
- actor: _v4.z.custom()
846
- });
847
- var LegacyRunnerConfigSchemaUnmerged = _v4.z.object({
848
- driver: LegacyDriverConfigSchema.optional(),
849
- /** @experimental */
850
- maxIncomingMessageSize: _v4.z.number().optional().default(65536),
851
- /** @experimental */
852
- maxOutgoingMessageSize: _v4.z.number().optional().default(1048576),
853
- /** @experimental */
854
- inspector: _chunkTI5PXQGGcjs.InspectorConfigSchema,
855
- /** @experimental */
856
- disableDefaultServer: _v4.z.boolean().optional().default(false),
857
- /** @experimental */
858
- defaultServerPort: _v4.z.number().default(6420),
859
- /** @experimental */
860
- runEngine: _v4.z.boolean().optional().default(() => _chunkHYPIHCDTcjs.getRivetRunEngine.call(void 0, )),
861
- /** @experimental */
862
- runEngineVersion: _v4.z.string().optional().default(() => _nullishCoalesce(_chunkHYPIHCDTcjs.getRivetRunEngineVersion.call(void 0, ), () => ( _chunkHYPIHCDTcjs.VERSION))),
863
- /** @experimental */
864
- overrideServerAddress: _v4.z.string().optional(),
865
- /** @experimental */
866
- disableActorDriver: _v4.z.boolean().optional().default(false),
867
- /**
868
- * @experimental
869
- *
870
- * Whether to run runners normally or have them managed
871
- * serverlessly (by the Rivet Engine for example).
872
- */
873
- runnerKind: _v4.z.enum(["serverless", "normal"]).optional().default(
874
- () => _chunkHYPIHCDTcjs.getRivetRunnerKind.call(void 0, ) === "serverless" ? "serverless" : "normal"
875
- ),
876
- totalSlots: _v4.z.number().optional(),
877
- /**
878
- * @experimental
879
- *
880
- * Base path for the router. This is used to prefix all routes.
881
- * For example, if the base path is `/api`, then the route `/actors` will be
882
- * available at `/api/actors`.
883
- */
884
- basePath: _v4.z.string().optional().default("/"),
885
- /**
886
- * @experimental
887
- *
888
- * Disable welcome message.
889
- * */
890
- noWelcome: _v4.z.boolean().optional().default(false),
891
- /**
892
- * @experimental
893
- * */
894
- logging: _v4.z.object({
895
- baseLogger: _v4.z.custom().optional(),
896
- level: _chunkHYPIHCDTcjs.LogLevelSchema.optional()
897
- }).optional().default(() => ({})),
898
- /**
899
- * @experimental
900
- *
901
- * Automatically configure serverless runners in the engine.
902
- * Can only be used when runnerKind is "serverless".
903
- * If true, uses default configuration. Can also provide custom configuration.
904
- */
905
- autoConfigureServerless: _v4.z.union([
906
- _v4.z.boolean(),
907
- _v4.z.object({
908
- url: _v4.z.string().optional(),
909
- headers: _v4.z.record(_v4.z.string(), _v4.z.string()).optional(),
910
- maxRunners: _v4.z.number().optional(),
911
- minRunners: _v4.z.number().optional(),
912
- requestLifespan: _v4.z.number().optional(),
913
- runnersMargin: _v4.z.number().optional(),
914
- slotsPerRunner: _v4.z.number().optional(),
915
- metadata: _v4.z.record(_v4.z.string(), _v4.z.unknown()).optional()
916
- })
917
- ]).optional(),
918
- // This is a function to allow for lazy configuration of upgradeWebSocket on the
919
- // fly. This is required since the dependencies that upgradeWebSocket
920
- // (specifically Node.js) can sometimes only be specified after the router is
921
- // created or must be imported async using `await import(...)`
922
- getUpgradeWebSocket: _v4.z.custom().optional(),
923
- /** @experimental */
924
- token: _v4.z.string().optional().transform((v) => v || _chunkHYPIHCDTcjs.getRivetToken.call(void 0, ))
925
- }).merge(EngineConfigSchemaBase);
926
- var LegacyRunnerConfigSchemaTransformed = LegacyRunnerConfigSchemaUnmerged.transform((config, ctx) => ({
927
- ...config,
928
- ...transformEngineConfig(config, ctx)
929
- }));
930
- var LegacyRunnerConfigSchema = LegacyRunnerConfigSchemaTransformed.default(
931
- () => LegacyRunnerConfigSchemaTransformed.parse({})
932
- );
933
-
934
844
  // runtime/index.ts
935
845
 
936
846
 
937
847
  // src/drivers/default.ts
938
848
  function chooseDefaultDriver(config) {
939
849
  if (config.endpoint && config.driver) {
940
- throw new (0, _chunkL47L3ZWJcjs.UserError)(
850
+ throw new (0, _chunk6G7ZNM27cjs.UserError)(
941
851
  "Cannot specify both 'endpoint' and 'driver' in configuration"
942
852
  );
943
853
  }
@@ -945,43 +855,43 @@ function chooseDefaultDriver(config) {
945
855
  return config.driver;
946
856
  }
947
857
  if (config.endpoint || config.token) {
948
- _chunkPB5AEMKQcjs.loggerWithoutContext.call(void 0, ).debug({
858
+ _chunkA4KEUCB6cjs.loggerWithoutContext.call(void 0, ).debug({
949
859
  msg: "using rivet engine driver",
950
860
  endpoint: config.endpoint
951
861
  });
952
862
  return createEngineDriver();
953
863
  }
954
- _chunkPB5AEMKQcjs.loggerWithoutContext.call(void 0, ).debug({
864
+ _chunkA4KEUCB6cjs.loggerWithoutContext.call(void 0, ).debug({
955
865
  msg: "using default file system driver",
956
866
  storagePath: config.storagePath
957
867
  });
958
- return _chunkU5SMSA27cjs.createFileSystemOrMemoryDriver.call(void 0, true, {
868
+ return _chunk2LY7RW3Ycjs.createFileSystemOrMemoryDriver.call(void 0, true, {
959
869
  path: config.storagePath
960
870
  });
961
871
  }
962
872
 
963
873
  // src/engine-process/log.ts
964
874
  function logger3() {
965
- return _chunkHYPIHCDTcjs.getLogger.call(void 0, "engine-process");
875
+ return _chunkMPLMTJY5cjs.getLogger.call(void 0, "engine-process");
966
876
  }
967
877
 
968
878
  // src/engine-process/mod.ts
969
879
  var ENGINE_BASE_URL = "https://releases.rivet.dev/rivet";
970
880
  var ENGINE_BINARY_NAME = "rivet-engine";
971
881
  async function ensureEngineProcess(options) {
972
- _chunkTI5PXQGGcjs.importNodeDependencies.call(void 0, );
882
+ _chunkCGGGBIDPcjs.importNodeDependencies.call(void 0, );
973
883
  logger3().debug({
974
884
  msg: "ensuring engine process",
975
885
  version: options.version
976
886
  });
977
- const path = _chunkTI5PXQGGcjs.getNodePath.call(void 0, );
978
- const storageRoot = _chunkU5SMSA27cjs.getStoragePath.call(void 0, );
887
+ const path = _chunkCGGGBIDPcjs.getNodePath.call(void 0, );
888
+ const storageRoot = _chunk2LY7RW3Ycjs.getStoragePath.call(void 0, );
979
889
  const binDir = path.join(storageRoot, "bin");
980
890
  const varDir = path.join(storageRoot, "var");
981
891
  const logsDir = path.join(varDir, "logs", "rivet-engine");
982
- await _chunkU5SMSA27cjs.ensureDirectoryExists.call(void 0, binDir);
983
- await _chunkU5SMSA27cjs.ensureDirectoryExists.call(void 0, varDir);
984
- await _chunkU5SMSA27cjs.ensureDirectoryExists.call(void 0, logsDir);
892
+ await _chunk2LY7RW3Ycjs.ensureDirectoryExists.call(void 0, binDir);
893
+ await _chunk2LY7RW3Ycjs.ensureDirectoryExists.call(void 0, varDir);
894
+ await _chunk2LY7RW3Ycjs.ensureDirectoryExists.call(void 0, logsDir);
985
895
  if (await isEngineRunning()) {
986
896
  try {
987
897
  const health = await waitForEngineHealth();
@@ -1006,7 +916,7 @@ async function ensureEngineProcess(options) {
1006
916
  const timestamp = (/* @__PURE__ */ new Date()).toISOString().replace(/:/g, "-").replace(/\./g, "-");
1007
917
  const stdoutLogPath = path.join(logsDir, `engine-${timestamp}-stdout.log`);
1008
918
  const stderrLogPath = path.join(logsDir, `engine-${timestamp}-stderr.log`);
1009
- const fsSync = _chunkTI5PXQGGcjs.getNodeFsSync.call(void 0, );
919
+ const fsSync = _chunkCGGGBIDPcjs.getNodeFsSync.call(void 0, );
1010
920
  const stdoutStream = fsSync.createWriteStream(stdoutLogPath, {
1011
921
  flags: "a"
1012
922
  });
@@ -1018,7 +928,7 @@ async function ensureEngineProcess(options) {
1018
928
  stdout: stdoutLogPath,
1019
929
  stderr: stderrLogPath
1020
930
  });
1021
- const childProcess = _chunkTI5PXQGGcjs.getNodeChildProcess.call(void 0, );
931
+ const childProcess = _chunkCGGGBIDPcjs.getNodeChildProcess.call(void 0, );
1022
932
  const child = childProcess.spawn(binaryPath, ["start"], {
1023
933
  cwd: path.dirname(binaryPath),
1024
934
  stdio: ["inherit", "pipe", "pipe"],
@@ -1087,7 +997,9 @@ async function ensureEngineProcess(options) {
1087
997
  issues: "https://github.com/rivet-dev/rivetkit/issues",
1088
998
  support: "https://rivet.dev/discord"
1089
999
  });
1090
- } else if (stderrOutput.includes("Rivet Engine has been rolled back to a previous version")) {
1000
+ } else if (stderrOutput.includes(
1001
+ "Rivet Engine has been rolled back to a previous version"
1002
+ )) {
1091
1003
  logger3().error({
1092
1004
  msg: "rivet engine version downgrade detected",
1093
1005
  hint: `You attempted to downgrade the RivetKit version in development. To fix this, nuke the database by running: '${binaryPath}' database nuke --yes`,
@@ -1154,8 +1066,8 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1154
1066
  `failed to download rivet engine binary from ${downloadUrl}: ${response.status} ${response.statusText}`
1155
1067
  );
1156
1068
  }
1157
- const crypto2 = _chunkTI5PXQGGcjs.getNodeCrypto.call(void 0, );
1158
- const tempPath = `${binaryPath}.${crypto2.randomUUID()}.tmp`;
1069
+ const crypto = _chunkCGGGBIDPcjs.getNodeCrypto.call(void 0, );
1070
+ const tempPath = `${binaryPath}.${crypto.randomUUID()}.tmp`;
1159
1071
  const startTime = Date.now();
1160
1072
  logger3().debug({
1161
1073
  msg: "starting binary download",
@@ -1169,14 +1081,14 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1169
1081
  });
1170
1082
  }, 5e3);
1171
1083
  try {
1172
- const stream = _chunkTI5PXQGGcjs.getNodeStream.call(void 0, );
1173
- const fsSync = _chunkTI5PXQGGcjs.getNodeFsSync.call(void 0, );
1084
+ const stream = _chunkCGGGBIDPcjs.getNodeStream.call(void 0, );
1085
+ const fsSync = _chunkCGGGBIDPcjs.getNodeFsSync.call(void 0, );
1174
1086
  await stream.pipeline(
1175
1087
  response.body,
1176
1088
  fsSync.createWriteStream(tempPath)
1177
1089
  );
1178
1090
  clearTimeout(slowDownloadWarning);
1179
- const fs = _chunkTI5PXQGGcjs.getNodeFs.call(void 0, );
1091
+ const fs = _chunkCGGGBIDPcjs.getNodeFs.call(void 0, );
1180
1092
  const stats = await fs.stat(tempPath);
1181
1093
  const downloadDuration = Date.now() - startTime;
1182
1094
  if (process.platform !== "win32") {
@@ -1205,7 +1117,7 @@ async function downloadEngineBinaryIfNeeded(binaryPath, version, varDir) {
1205
1117
  support: "https://rivet.dev/discord"
1206
1118
  });
1207
1119
  try {
1208
- const fs = _chunkTI5PXQGGcjs.getNodeFs.call(void 0, );
1120
+ const fs = _chunkCGGGBIDPcjs.getNodeFs.call(void 0, );
1209
1121
  await fs.unlink(tempPath);
1210
1122
  } catch (unlinkError) {
1211
1123
  }
@@ -1247,7 +1159,7 @@ function resolveTargetTripletFor(platform, arch) {
1247
1159
  );
1248
1160
  }
1249
1161
  async function isEngineRunning() {
1250
- return await checkIfEngineAlreadyRunningOnPort(_chunkTI5PXQGGcjs.ENGINE_PORT);
1162
+ return await checkIfEngineAlreadyRunningOnPort(_chunkHNE2AK6Ccjs.ENGINE_PORT);
1251
1163
  }
1252
1164
  async function checkIfEngineAlreadyRunningOnPort(port) {
1253
1165
  let response;
@@ -1282,7 +1194,7 @@ async function checkIfEngineAlreadyRunningOnPort(port) {
1282
1194
  }
1283
1195
  async function fileExists(filePath) {
1284
1196
  try {
1285
- const fs = _chunkTI5PXQGGcjs.getNodeFs.call(void 0, );
1197
+ const fs = _chunkCGGGBIDPcjs.getNodeFs.call(void 0, );
1286
1198
  await fs.access(filePath);
1287
1199
  return true;
1288
1200
  } catch (e) {
@@ -1296,7 +1208,7 @@ async function waitForEngineHealth() {
1296
1208
  logger3().debug({ msg: "waiting for engine health check" });
1297
1209
  for (let i = 0; i < maxRetries; i++) {
1298
1210
  try {
1299
- const response = await fetch(`${_chunkTI5PXQGGcjs.ENGINE_ENDPOINT}/health`, {
1211
+ const response = await fetch(`${_chunkHNE2AK6Ccjs.ENGINE_ENDPOINT}/health`, {
1300
1212
  signal: AbortSignal.timeout(1e3)
1301
1213
  });
1302
1214
  if (response.ok) {
@@ -1336,7 +1248,7 @@ function getInspectorUrl(config, managerPort) {
1336
1248
 
1337
1249
  // src/serverless/log.ts
1338
1250
  function logger4() {
1339
- return _chunkHYPIHCDTcjs.getLogger.call(void 0, "serverless");
1251
+ return _chunkMPLMTJY5cjs.getLogger.call(void 0, "serverless");
1340
1252
  }
1341
1253
 
1342
1254
  // src/serverless/configure.ts
@@ -1356,12 +1268,12 @@ async function configureServerlessRunner(config) {
1356
1268
  }
1357
1269
  const customConfig = config.serverless.configureRunnerPool;
1358
1270
  _invariant2.default.call(void 0, customConfig, "configureRunnerPool should exist");
1359
- const clientConfig = _chunkIIJNPVPQcjs.convertRegistryConfigToClientConfig.call(void 0, config);
1271
+ const clientConfig = _chunkGUHXWPGBcjs.convertRegistryConfigToClientConfig.call(void 0, config);
1360
1272
  logger4().debug({
1361
1273
  msg: "fetching datacenters",
1362
1274
  endpoint: config.endpoint
1363
1275
  });
1364
- const dcsRes = await _chunkIIJNPVPQcjs.getDatacenters.call(void 0, clientConfig);
1276
+ const dcsRes = await _chunkGUHXWPGBcjs.getDatacenters.call(void 0, clientConfig);
1365
1277
  const runnerName = _nullishCoalesce(customConfig.name, () => ( "default"));
1366
1278
  logger4().debug({
1367
1279
  msg: "configuring serverless runner",
@@ -1372,7 +1284,7 @@ async function configureServerlessRunner(config) {
1372
1284
  serverless: {
1373
1285
  url: customConfig.url,
1374
1286
  headers: _nullishCoalesce(customConfig.headers, () => ( {})),
1375
- max_runners: _nullishCoalesce(customConfig.maxRunners, () => ( 1e3)),
1287
+ max_runners: _nullishCoalesce(customConfig.maxRunners, () => ( 1e5)),
1376
1288
  min_runners: _nullishCoalesce(customConfig.minRunners, () => ( 0)),
1377
1289
  request_lifespan: _nullishCoalesce(customConfig.requestLifespan, () => ( 15 * 60)),
1378
1290
  runners_margin: _nullishCoalesce(customConfig.runnersMargin, () => ( 0)),
@@ -1383,7 +1295,7 @@ async function configureServerlessRunner(config) {
1383
1295
  drain_on_version_upgrade: _nullishCoalesce(customConfig.drainOnVersionUpgrade, () => ( true)),
1384
1296
  metadataPollInterval: _nullishCoalesce(customConfig.metadataPollInterval, () => ( 1e3))
1385
1297
  };
1386
- await _chunkIIJNPVPQcjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1298
+ await _chunkGUHXWPGBcjs.updateRunnerConfig.call(void 0, clientConfig, runnerName, {
1387
1299
  datacenters: Object.fromEntries(
1388
1300
  dcsRes.datacenters.map((dc) => [dc.name, serverlessConfig])
1389
1301
  )
@@ -1405,7 +1317,7 @@ async function configureServerlessRunner(config) {
1405
1317
 
1406
1318
 
1407
1319
  // src/manager/router-schema.ts
1408
-
1320
+ var _v4 = require('zod/v4');
1409
1321
  var ServerlessStartHeadersSchema = _v4.z.object({
1410
1322
  endpoint: _v4.z.string({
1411
1323
  error: "x-rivet-endpoint header is required"
@@ -1424,7 +1336,7 @@ var ServerlessStartHeadersSchema = _v4.z.object({
1424
1336
 
1425
1337
  // src/serverless/router.ts
1426
1338
  function buildServerlessRouter(driverConfig, config) {
1427
- return _chunkTI5PXQGGcjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1339
+ return _chunkCGGGBIDPcjs.createRouter.call(void 0, config.serverless.basePath, (router) => {
1428
1340
  router.get("/", (c) => {
1429
1341
  return c.text(
1430
1342
  "This is a RivetKit server.\n\nLearn more at https://rivetkit.org"
@@ -1440,7 +1352,7 @@ function buildServerlessRouter(driverConfig, config) {
1440
1352
  namespace: c.req.header("x-rivet-namespace-name")
1441
1353
  });
1442
1354
  if (!parseResult.success) {
1443
- throw new (0, _chunkL47L3ZWJcjs.InvalidRequest)(
1355
+ throw new (0, _chunk6G7ZNM27cjs.InvalidRequest)(
1444
1356
  _nullishCoalesce(((_a = parseResult.error.issues[0]) == null ? void 0 : _a.message), () => ( "invalid serverless start headers"))
1445
1357
  );
1446
1358
  }
@@ -1454,31 +1366,39 @@ function buildServerlessRouter(driverConfig, config) {
1454
1366
  });
1455
1367
  if (config.endpoint) {
1456
1368
  if (!endpointsMatch(endpoint, config.endpoint)) {
1457
- throw new (0, _chunkL47L3ZWJcjs.EndpointMismatch)(config.endpoint, endpoint);
1369
+ throw new (0, _chunk6G7ZNM27cjs.EndpointMismatch)(config.endpoint, endpoint);
1458
1370
  }
1459
1371
  if (namespace !== config.namespace) {
1460
- throw new (0, _chunkL47L3ZWJcjs.NamespaceMismatch)(config.namespace, namespace);
1372
+ throw new (0, _chunk6G7ZNM27cjs.NamespaceMismatch)(config.namespace, namespace);
1461
1373
  }
1462
1374
  }
1463
- const newConfig = {
1375
+ const sharedConfig = {
1464
1376
  ...config,
1465
1377
  endpoint,
1466
1378
  namespace,
1467
- token,
1468
1379
  runner: {
1469
1380
  ...config.runner,
1470
1381
  totalSlots,
1471
- runnerName,
1472
- // Not supported on serverless
1473
- runnerKey: void 0
1382
+ runnerName
1474
1383
  }
1475
1384
  };
1476
- const managerDriver = new (0, _chunkIIJNPVPQcjs.RemoteManagerDriver)(
1477
- _chunkIIJNPVPQcjs.convertRegistryConfigToClientConfig.call(void 0, newConfig)
1385
+ const runnerConfig = {
1386
+ ...sharedConfig,
1387
+ token
1388
+ };
1389
+ const clientConfig = {
1390
+ ...sharedConfig,
1391
+ // Preserve the configured application token for actor-to-actor
1392
+ // calls. The start token is only needed for the runner
1393
+ // connection and may not have gateway permissions.
1394
+ token: _nullishCoalesce(config.token, () => ( token))
1395
+ };
1396
+ const managerDriver = new (0, _chunkGUHXWPGBcjs.RemoteManagerDriver)(
1397
+ _chunkGUHXWPGBcjs.convertRegistryConfigToClientConfig.call(void 0, clientConfig)
1478
1398
  );
1479
- const client = _chunkIIJNPVPQcjs.createClientWithDriver.call(void 0, managerDriver);
1399
+ const client = _chunkGUHXWPGBcjs.createClientWithDriver.call(void 0, managerDriver);
1480
1400
  const actorDriver = driverConfig.actor(
1481
- newConfig,
1401
+ runnerConfig,
1482
1402
  managerDriver,
1483
1403
  client
1484
1404
  );
@@ -1488,10 +1408,10 @@ function buildServerlessRouter(driverConfig, config) {
1488
1408
  );
1489
1409
  return await actorDriver.serverlessHandleStart(c);
1490
1410
  });
1491
- router.get("/health", (c) => _chunkTI5PXQGGcjs.handleHealthRequest.call(void 0, c));
1411
+ router.get("/health", (c) => _chunkHNE2AK6Ccjs.handleHealthRequest.call(void 0, c));
1492
1412
  router.get(
1493
1413
  "/metadata",
1494
- (c) => _chunkTI5PXQGGcjs.handleMetadataRequest.call(void 0,
1414
+ (c) => _chunkHNE2AK6Ccjs.handleMetadataRequest.call(void 0,
1495
1415
  c,
1496
1416
  config,
1497
1417
  { serverless: {} },
@@ -1573,12 +1493,12 @@ var Runtime = class _Runtime {
1573
1493
  }
1574
1494
  static async create(registry) {
1575
1495
  var _a, _b, _c;
1576
- _chunkTI5PXQGGcjs.logger.call(void 0, ).info("rivetkit starting");
1496
+ _chunkCGGGBIDPcjs.logger.call(void 0, ).info("rivetkit starting");
1577
1497
  const config = registry.parseConfig();
1578
1498
  if ((_a = config.logging) == null ? void 0 : _a.baseLogger) {
1579
- _chunkHYPIHCDTcjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1499
+ _chunkMPLMTJY5cjs.configureBaseLogger.call(void 0, config.logging.baseLogger);
1580
1500
  } else {
1581
- _chunkHYPIHCDTcjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1501
+ _chunkMPLMTJY5cjs.configureDefaultLogger.call(void 0, (_b = config.logging) == null ? void 0 : _b.level);
1582
1502
  }
1583
1503
  _invariant2.default.call(void 0,
1584
1504
  !(config.serverless.spawnEngine && config.serveManager),
@@ -1588,8 +1508,8 @@ var Runtime = class _Runtime {
1588
1508
  const managerDriver = driver.manager(config);
1589
1509
  let managerPort;
1590
1510
  if (config.serverless.spawnEngine) {
1591
- managerPort = _chunkTI5PXQGGcjs.ENGINE_PORT;
1592
- _chunkTI5PXQGGcjs.logger.call(void 0, ).debug({
1511
+ managerPort = _chunkHNE2AK6Ccjs.ENGINE_PORT;
1512
+ _chunkCGGGBIDPcjs.logger.call(void 0, ).debug({
1593
1513
  msg: "spawning engine",
1594
1514
  version: config.serverless.engineVersion
1595
1515
  });
@@ -1598,18 +1518,18 @@ var Runtime = class _Runtime {
1598
1518
  });
1599
1519
  } else if (config.serveManager) {
1600
1520
  const configuredManagerPort = config.managerPort;
1601
- const serveRuntime = _chunkHYPIHCDTcjs.detectRuntime.call(void 0, );
1521
+ const serveRuntime = _chunkMPLMTJY5cjs.detectRuntime.call(void 0, );
1602
1522
  let upgradeWebSocket;
1603
1523
  const getUpgradeWebSocket = () => upgradeWebSocket;
1604
1524
  managerDriver.setGetUpgradeWebSocket(getUpgradeWebSocket);
1605
- const { router: managerRouter } = _chunkTI5PXQGGcjs.buildManagerRouter.call(void 0,
1525
+ const { router: managerRouter } = _chunkCGGGBIDPcjs.buildManagerRouter.call(void 0,
1606
1526
  config,
1607
1527
  managerDriver,
1608
1528
  getUpgradeWebSocket,
1609
1529
  serveRuntime
1610
1530
  );
1611
- managerPort = await _chunkTI5PXQGGcjs.findFreePort.call(void 0, config.managerPort);
1612
- _chunkTI5PXQGGcjs.logger.call(void 0, ).debug({
1531
+ managerPort = await _chunkCGGGBIDPcjs.findFreePort.call(void 0, config.managerPort);
1532
+ _chunkCGGGBIDPcjs.logger.call(void 0, ).debug({
1613
1533
  msg: "serving manager",
1614
1534
  port: managerPort
1615
1535
  });
@@ -1618,13 +1538,40 @@ var Runtime = class _Runtime {
1618
1538
  config.serverless.publicEndpoint = config.publicEndpoint;
1619
1539
  }
1620
1540
  config.managerPort = managerPort;
1621
- const out = await _chunkTI5PXQGGcjs.crossPlatformServe.call(void 0,
1541
+ let serverApp = managerRouter;
1542
+ if (config.publicDir) {
1543
+ let dirExists = false;
1544
+ try {
1545
+ const fsSync = _chunkCGGGBIDPcjs.getNodeFsSync.call(void 0, );
1546
+ dirExists = fsSync.existsSync(config.publicDir);
1547
+ } catch (e3) {
1548
+ }
1549
+ if (dirExists) {
1550
+ const { Hono } = await Promise.resolve().then(() => _interopRequireWildcard(require("hono")));
1551
+ const serveStaticFn = await _chunkCGGGBIDPcjs.loadRuntimeServeStatic.call(void 0, serveRuntime);
1552
+ const wrapper = new Hono();
1553
+ wrapper.use(
1554
+ "*",
1555
+ serveStaticFn({ root: `./${config.publicDir}` })
1556
+ );
1557
+ wrapper.route("/", managerRouter);
1558
+ serverApp = wrapper;
1559
+ }
1560
+ }
1561
+ const out = await _chunkCGGGBIDPcjs.crossPlatformServe.call(void 0,
1622
1562
  config,
1623
1563
  managerPort,
1624
- managerRouter,
1564
+ serverApp,
1625
1565
  serveRuntime
1626
1566
  );
1627
1567
  upgradeWebSocket = out.upgradeWebSocket;
1568
+ if (out.closeServer && process.env.NODE_ENV !== "production") {
1569
+ const shutdown = () => {
1570
+ out.closeServer();
1571
+ };
1572
+ process.on("SIGTERM", shutdown);
1573
+ process.on("SIGINT", shutdown);
1574
+ }
1628
1575
  }
1629
1576
  const runtime = new _Runtime(
1630
1577
  registry,
@@ -1634,7 +1581,7 @@ var Runtime = class _Runtime {
1634
1581
  managerPort
1635
1582
  );
1636
1583
  const driverLog = _nullishCoalesce(((_c = managerDriver.extraStartupLog) == null ? void 0 : _c.call(managerDriver)), () => ( {}));
1637
- _chunkTI5PXQGGcjs.logger.call(void 0, ).info({
1584
+ _chunkCGGGBIDPcjs.logger.call(void 0, ).info({
1638
1585
  msg: "rivetkit ready",
1639
1586
  driver: driver.name,
1640
1587
  definitions: Object.keys(config.use).length,
@@ -1660,8 +1607,8 @@ var Runtime = class _Runtime {
1660
1607
  _invariant2.default.call(void 0, !this.#startKind, "Runtime already started as serverless");
1661
1608
  this.#startKind = "runner";
1662
1609
  if (this.#config.runner && this.#driver.autoStartActorDriver) {
1663
- _chunkTI5PXQGGcjs.logger.call(void 0, ).debug("starting actor driver");
1664
- const inlineClient = _chunkIIJNPVPQcjs.createClientWithDriver.call(void 0,
1610
+ _chunkCGGGBIDPcjs.logger.call(void 0, ).debug("starting actor driver");
1611
+ const inlineClient = _chunkGUHXWPGBcjs.createClientWithDriver.call(void 0,
1665
1612
  this.#managerDriver
1666
1613
  );
1667
1614
  this.#driver.actor(this.#config, this.#managerDriver, inlineClient);
@@ -1673,7 +1620,7 @@ var Runtime = class _Runtime {
1673
1620
  const inspectorUrl = this.managerPort ? getInspectorUrl(this.#config, this.managerPort) : void 0;
1674
1621
  console.log();
1675
1622
  console.log(
1676
- ` RivetKit ${_chunkHYPIHCDTcjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1623
+ ` RivetKit ${_chunkMPLMTJY5cjs.package_default.version} (${this.#driver.displayName} - ${this.#startKind === "serverless" ? "Serverless" : "Runner"})`
1677
1624
  );
1678
1625
  if (this.#config.namespace !== "default") {
1679
1626
  logLine("Namespace", this.#config.namespace);
@@ -1685,6 +1632,15 @@ var Runtime = class _Runtime {
1685
1632
  if (this.#startKind === "serverless" && this.#config.publicEndpoint) {
1686
1633
  logLine("Client", this.#config.publicEndpoint);
1687
1634
  }
1635
+ if (this.#config.publicDir) {
1636
+ try {
1637
+ const fsSync = _chunkCGGGBIDPcjs.getNodeFsSync.call(void 0, );
1638
+ if (fsSync.existsSync(this.#config.publicDir)) {
1639
+ logLine("Static", `./${this.#config.publicDir}`);
1640
+ }
1641
+ } catch (e4) {
1642
+ }
1643
+ }
1688
1644
  if (inspectorUrl && this.#config.inspector.enabled) {
1689
1645
  logLine("Inspector", inspectorUrl);
1690
1646
  }
@@ -1714,18 +1670,19 @@ var Registry = class {
1714
1670
  return this.#config;
1715
1671
  }
1716
1672
  parseConfig() {
1717
- return _chunkTI5PXQGGcjs.RegistryConfigSchema.parse(this.#config);
1673
+ return _chunkHNE2AK6Ccjs.RegistryConfigSchema.parse(this.#config);
1718
1674
  }
1719
1675
  // Shared runtime instance
1720
1676
  #runtime;
1721
1677
  #runtimePromise;
1722
1678
  constructor(config) {
1723
1679
  this.#config = config;
1724
- if (_chunkHYPIHCDTcjs.getNodeEnv.call(void 0, ) !== "test") {
1725
- setTimeout(() => {
1680
+ setTimeout(() => {
1681
+ const parsedConfig = this.parseConfig();
1682
+ if (parsedConfig.serverless.spawnEngine || parsedConfig.serveManager) {
1726
1683
  this.#ensureRuntime();
1727
- }, 0);
1728
- }
1684
+ }
1685
+ }, 0);
1729
1686
  }
1730
1687
  /** Creates runtime if not already created. Idempotent. */
1731
1688
  #ensureRuntime() {
@@ -1769,55 +1726,33 @@ var Registry = class {
1769
1726
  startRunner() {
1770
1727
  this.#ensureRuntime().then((runtime) => runtime.startRunner());
1771
1728
  }
1772
- // MARK: Legacy
1773
1729
  /**
1774
- * Runs the registry for a server.
1730
+ * Starts the server, serving both the actor API and static files.
1731
+ *
1732
+ * This is the simplest way to run RivetKit. It starts a local manager
1733
+ * server, serves static files from the configured `publicDir` (default
1734
+ * `"public"`), and starts the actor runner.
1735
+ *
1736
+ * When an endpoint is configured (via config or RIVET_ENDPOINT env var),
1737
+ * operates in serverless mode connected to the remote engine instead.
1775
1738
  *
1776
- * @deprecated Use {@link Registry.startRunner} for long-running servers or {@link Registry.handler} for serverless deployments.
1739
+ * @example
1740
+ * ```ts
1741
+ * const registry = setup({ use: { counter } });
1742
+ * registry.start();
1743
+ * ```
1777
1744
  */
1778
- start(inputConfig) {
1779
- const config = LegacyRunnerConfigSchema.parse(inputConfig);
1780
- if (config.autoConfigureServerless && config.runnerKind !== "serverless") {
1781
- throw new Error(
1782
- "autoConfigureServerless can only be configured when runnerKind is 'serverless'"
1783
- );
1784
- }
1785
- const isDevEnv = _chunkHYPIHCDTcjs.isDev.call(void 0, );
1786
- if (isDevEnv && config.runnerKind === "serverless") {
1787
- if ((inputConfig == null ? void 0 : inputConfig.runEngine) === void 0) config.runEngine = true;
1788
- if ((inputConfig == null ? void 0 : inputConfig.autoConfigureServerless) === void 0)
1789
- config.autoConfigureServerless = true;
1745
+ start() {
1746
+ if (this.#config.publicDir === void 0) {
1747
+ this.#config.publicDir = "public";
1790
1748
  }
1791
- if (config.runnerKind === "serverless") {
1792
- return this.#legacyStartServerless(config, inputConfig);
1793
- } else {
1794
- return this.#legacyStartNormal(config);
1749
+ if (this.#config.serveManager === void 0) {
1750
+ const hasEndpoint = !!(this.#config.endpoint || typeof process !== "undefined" && (process.env.RIVET_ENGINE || process.env.RIVET_ENDPOINT));
1751
+ if (!hasEndpoint) {
1752
+ this.#config.serveManager = true;
1753
+ }
1795
1754
  }
1796
- }
1797
- #legacyStartServerless(config, _inputConfig) {
1798
- const client = _chunkIIJNPVPQcjs.createClient.call(void 0, {
1799
- endpoint: config.endpoint,
1800
- token: config.token,
1801
- namespace: config.namespace,
1802
- headers: config.headers
1803
- });
1804
- return {
1805
- client,
1806
- fetch: this.handler.bind(this)
1807
- };
1808
- }
1809
- #legacyStartNormal(config) {
1810
1755
  this.#ensureRuntime().then((runtime) => runtime.startRunner());
1811
- const client = _chunkIIJNPVPQcjs.createClient.call(void 0, {
1812
- endpoint: config.endpoint,
1813
- token: config.token,
1814
- namespace: config.namespace,
1815
- headers: config.headers
1816
- });
1817
- return {
1818
- client,
1819
- fetch: this.handler.bind(this)
1820
- };
1821
1756
  }
1822
1757
  };
1823
1758
  function setup(input) {
@@ -1828,8 +1763,5 @@ function setup(input) {
1828
1763
 
1829
1764
 
1830
1765
 
1831
-
1832
-
1833
-
1834
- exports.actor = actor; exports.event = event2; exports.queue = queue2; exports.createEngineDriver = createEngineDriver; exports.Registry = Registry; exports.setup = setup;
1835
- //# sourceMappingURL=chunk-OAXJWGMU.cjs.map
1766
+ exports.createEngineDriver = createEngineDriver; exports.Registry = Registry; exports.setup = setup;
1767
+ //# sourceMappingURL=chunk-VBR35EQF.cjs.map