rivetkit 2.0.42 → 2.1.0-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 (322) hide show
  1. package/dist/{tsup/config-CLnylLYY.d.ts → browser/client.d.ts} +2127 -1910
  2. package/dist/browser/client.js +5182 -0
  3. package/dist/browser/client.js.map +1 -0
  4. package/dist/browser/inspector/client.d.ts +130 -0
  5. package/dist/browser/inspector/client.js +2854 -0
  6. package/dist/browser/inspector/client.js.map +1 -0
  7. package/dist/browser/v3-DnYObHH3.d.ts +279 -0
  8. package/dist/schemas/actor-inspector/v2.ts +796 -0
  9. package/dist/schemas/actor-inspector/v3.ts +899 -0
  10. package/dist/schemas/actor-persist/v4.ts +406 -0
  11. package/dist/schemas/client-protocol/v3.ts +554 -0
  12. package/dist/schemas/persist/v1.ts +781 -0
  13. package/dist/schemas/transport/v1.ts +697 -0
  14. package/dist/tsup/actor/errors.cjs +27 -3
  15. package/dist/tsup/actor/errors.cjs.map +1 -1
  16. package/dist/tsup/actor/errors.d.cts +37 -1
  17. package/dist/tsup/actor/errors.d.ts +37 -1
  18. package/dist/tsup/actor/errors.js +26 -1
  19. package/dist/tsup/{actor-router-consts-DzI2szci.d.cts → actor-router-consts-D29T1Z-K.d.cts} +1 -1
  20. package/dist/tsup/{actor-router-consts-DzI2szci.d.ts → actor-router-consts-D29T1Z-K.d.ts} +1 -1
  21. package/dist/tsup/chunk-424PT5DM.js +23 -0
  22. package/dist/tsup/chunk-424PT5DM.js.map +1 -0
  23. package/dist/tsup/{chunk-JDAD2YFA.js → chunk-5ESWDTHJ.js} +148 -273
  24. package/dist/tsup/chunk-5ESWDTHJ.js.map +1 -0
  25. package/dist/tsup/{chunk-FJ3KTN4V.js → chunk-6LIBPELE.js} +119 -11
  26. package/dist/tsup/chunk-6LIBPELE.js.map +1 -0
  27. package/dist/tsup/chunk-6LJAZ5R4.cjs +96 -0
  28. package/dist/tsup/chunk-6LJAZ5R4.cjs.map +1 -0
  29. package/dist/tsup/{chunk-LFVF5SCU.js → chunk-7HTNH26M.js} +126 -1
  30. package/dist/tsup/chunk-7HTNH26M.js.map +1 -0
  31. package/dist/tsup/chunk-7K4CYDGD.js +630 -0
  32. package/dist/tsup/chunk-7K4CYDGD.js.map +1 -0
  33. package/dist/tsup/{chunk-XXGJCOL6.js → chunk-A6YIZWTK.js} +2 -2
  34. package/dist/tsup/chunk-AIYEYMX5.cjs +630 -0
  35. package/dist/tsup/chunk-AIYEYMX5.cjs.map +1 -0
  36. package/dist/tsup/{chunk-Q6W7RJJP.js → chunk-DIGBC2VI.js} +211 -2316
  37. package/dist/tsup/chunk-DIGBC2VI.js.map +1 -0
  38. package/dist/tsup/{chunk-RZW2DNND.cjs → chunk-F6JYU5IK.cjs} +1957 -1039
  39. package/dist/tsup/chunk-F6JYU5IK.cjs.map +1 -0
  40. package/dist/tsup/chunk-HAZL2EPK.cjs +534 -0
  41. package/dist/tsup/chunk-HAZL2EPK.cjs.map +1 -0
  42. package/dist/tsup/chunk-HDQ2JUQT.cjs +23 -0
  43. package/dist/tsup/chunk-HDQ2JUQT.cjs.map +1 -0
  44. package/dist/tsup/chunk-HIDX4C5Y.cjs +1036 -0
  45. package/dist/tsup/chunk-HIDX4C5Y.cjs.map +1 -0
  46. package/dist/tsup/chunk-IVG73YCW.js +534 -0
  47. package/dist/tsup/chunk-IVG73YCW.js.map +1 -0
  48. package/dist/tsup/chunk-KJSYAUOM.js +96 -0
  49. package/dist/tsup/chunk-KJSYAUOM.js.map +1 -0
  50. package/dist/tsup/{chunk-2XQS746M.cjs → chunk-L47L3ZWJ.cjs} +127 -2
  51. package/dist/tsup/chunk-L47L3ZWJ.cjs.map +1 -0
  52. package/dist/tsup/{chunk-H4TB4X25.cjs → chunk-LW6KLR7A.cjs} +126 -18
  53. package/dist/tsup/chunk-LW6KLR7A.cjs.map +1 -0
  54. package/dist/tsup/chunk-LXUQ667X.js +2006 -0
  55. package/dist/tsup/chunk-LXUQ667X.js.map +1 -0
  56. package/dist/tsup/{chunk-GMAVRZSF.js → chunk-M2T62AZQ.js} +1790 -872
  57. package/dist/tsup/chunk-M2T62AZQ.js.map +1 -0
  58. package/dist/tsup/chunk-MZ37VV3P.js +5974 -0
  59. package/dist/tsup/chunk-MZ37VV3P.js.map +1 -0
  60. package/dist/tsup/chunk-N4KRDJ56.js +72 -0
  61. package/dist/tsup/chunk-N4KRDJ56.js.map +1 -0
  62. package/dist/tsup/chunk-NIYZDWMW.cjs +2006 -0
  63. package/dist/tsup/chunk-NIYZDWMW.cjs.map +1 -0
  64. package/dist/tsup/chunk-OMEPCQK2.js +649 -0
  65. package/dist/tsup/chunk-OMEPCQK2.js.map +1 -0
  66. package/dist/tsup/chunk-SR3KQE7Q.cjs +72 -0
  67. package/dist/tsup/chunk-SR3KQE7Q.cjs.map +1 -0
  68. package/dist/tsup/chunk-SSEP6DHP.cjs +2657 -0
  69. package/dist/tsup/chunk-SSEP6DHP.cjs.map +1 -0
  70. package/dist/tsup/chunk-T5YCUGVS.js +1036 -0
  71. package/dist/tsup/chunk-T5YCUGVS.js.map +1 -0
  72. package/dist/tsup/{chunk-EJVBH5VF.cjs → chunk-TPGXWFQT.cjs} +3 -3
  73. package/dist/tsup/{chunk-EJVBH5VF.cjs.map → chunk-TPGXWFQT.cjs.map} +1 -1
  74. package/dist/tsup/{chunk-X35U3YNX.cjs → chunk-TYLXNCA5.cjs} +214 -339
  75. package/dist/tsup/chunk-TYLXNCA5.cjs.map +1 -0
  76. package/dist/tsup/chunk-VKVNIQRQ.js +257 -0
  77. package/dist/tsup/chunk-VKVNIQRQ.js.map +1 -0
  78. package/dist/tsup/chunk-XWBAQO5H.cjs +649 -0
  79. package/dist/tsup/chunk-XWBAQO5H.cjs.map +1 -0
  80. package/dist/tsup/chunk-YQ4LDVD6.cjs +5974 -0
  81. package/dist/tsup/chunk-YQ4LDVD6.cjs.map +1 -0
  82. package/dist/tsup/chunk-ZFY5J2EP.cjs +257 -0
  83. package/dist/tsup/chunk-ZFY5J2EP.cjs.map +1 -0
  84. package/dist/tsup/client/mod.cjs +9 -10
  85. package/dist/tsup/client/mod.cjs.map +1 -1
  86. package/dist/tsup/client/mod.d.cts +11 -5
  87. package/dist/tsup/client/mod.d.ts +11 -5
  88. package/dist/tsup/client/mod.js +8 -8
  89. package/dist/tsup/common/log.cjs +4 -4
  90. package/dist/tsup/common/log.d.cts +2 -2
  91. package/dist/tsup/common/log.d.ts +2 -2
  92. package/dist/tsup/common/log.js +3 -2
  93. package/dist/tsup/common/websocket.cjs +5 -5
  94. package/dist/tsup/common/websocket.js +4 -3
  95. package/dist/tsup/config-BFqid9Gr.d.ts +2574 -0
  96. package/dist/tsup/config-BiNoIHRs.d.cts +80 -0
  97. package/dist/tsup/config-BiNoIHRs.d.ts +80 -0
  98. package/dist/tsup/{config-CZB2-W8x.d.cts → config-CAZphOS1.d.cts} +681 -355
  99. package/dist/tsup/db/drizzle/mod.cjs +49 -0
  100. package/dist/tsup/db/drizzle/mod.cjs.map +1 -0
  101. package/dist/tsup/db/drizzle/mod.d.cts +17 -0
  102. package/dist/tsup/db/drizzle/mod.d.ts +17 -0
  103. package/dist/tsup/db/drizzle/mod.js +49 -0
  104. package/dist/tsup/db/drizzle/mod.js.map +1 -0
  105. package/dist/tsup/db/mod.cjs +9 -0
  106. package/dist/tsup/db/mod.cjs.map +1 -0
  107. package/dist/tsup/db/mod.d.cts +9 -0
  108. package/dist/tsup/db/mod.d.ts +9 -0
  109. package/dist/tsup/db/mod.js +9 -0
  110. package/dist/tsup/db/mod.js.map +1 -0
  111. package/dist/tsup/{driver-D0QX9M11.d.ts → driver-Bxv62E2p.d.ts} +2 -2
  112. package/dist/tsup/{driver-q-zqG7fc.d.cts → driver-DYXwJR5D.d.cts} +2 -2
  113. package/dist/tsup/driver-helpers/mod.cjs +12 -6
  114. package/dist/tsup/driver-helpers/mod.cjs.map +1 -1
  115. package/dist/tsup/driver-helpers/mod.d.cts +12 -5
  116. package/dist/tsup/driver-helpers/mod.d.ts +12 -5
  117. package/dist/tsup/driver-helpers/mod.js +12 -5
  118. package/dist/tsup/driver-test-suite/mod.cjs +1370 -116
  119. package/dist/tsup/driver-test-suite/mod.cjs.map +1 -1
  120. package/dist/tsup/driver-test-suite/mod.d.cts +10 -4
  121. package/dist/tsup/driver-test-suite/mod.d.ts +10 -4
  122. package/dist/tsup/driver-test-suite/mod.js +2093 -838
  123. package/dist/tsup/driver-test-suite/mod.js.map +1 -1
  124. package/dist/tsup/inspector/mod.cjs +29 -3
  125. package/dist/tsup/inspector/mod.cjs.map +1 -1
  126. package/dist/tsup/inspector/mod.d.cts +124 -3
  127. package/dist/tsup/inspector/mod.d.ts +124 -3
  128. package/dist/tsup/inspector/mod.js +72 -45
  129. package/dist/tsup/keys-CydblqMh.d.cts +13 -0
  130. package/dist/tsup/keys-CydblqMh.d.ts +13 -0
  131. package/dist/tsup/mod.cjs +16 -10
  132. package/dist/tsup/mod.cjs.map +1 -1
  133. package/dist/tsup/mod.d.cts +26 -14
  134. package/dist/tsup/mod.d.ts +26 -14
  135. package/dist/tsup/mod.js +20 -13
  136. package/dist/tsup/serve-test-suite/mod.cjs +1165 -83
  137. package/dist/tsup/serve-test-suite/mod.cjs.map +1 -1
  138. package/dist/tsup/serve-test-suite/mod.js +1114 -29
  139. package/dist/tsup/serve-test-suite/mod.js.map +1 -1
  140. package/dist/tsup/test/mod.cjs +84 -11
  141. package/dist/tsup/test/mod.cjs.map +1 -1
  142. package/dist/tsup/test/mod.d.cts +10 -5
  143. package/dist/tsup/test/mod.d.ts +10 -5
  144. package/dist/tsup/test/mod.js +85 -11
  145. package/dist/tsup/test/mod.js.map +1 -1
  146. package/dist/tsup/utils.cjs +10 -4
  147. package/dist/tsup/utils.cjs.map +1 -1
  148. package/dist/tsup/utils.d.cts +72 -2
  149. package/dist/tsup/utils.d.ts +72 -2
  150. package/dist/tsup/utils.js +9 -2
  151. package/dist/tsup/v3-DnYObHH3.d.cts +279 -0
  152. package/dist/tsup/v3-DnYObHH3.d.ts +279 -0
  153. package/dist/tsup/workflow/mod.cjs +16 -0
  154. package/dist/tsup/workflow/mod.cjs.map +1 -0
  155. package/dist/tsup/workflow/mod.d.cts +83 -0
  156. package/dist/tsup/workflow/mod.d.ts +83 -0
  157. package/dist/tsup/workflow/mod.js +16 -0
  158. package/dist/tsup/workflow/mod.js.map +1 -0
  159. package/package.json +62 -5
  160. package/src/actor/config.ts +478 -68
  161. package/src/actor/conn/mod.ts +68 -16
  162. package/src/actor/conn/state-manager.ts +2 -2
  163. package/src/actor/contexts/action.ts +20 -12
  164. package/src/actor/contexts/base/actor.ts +137 -7
  165. package/src/actor/contexts/base/conn-init.ts +27 -7
  166. package/src/actor/contexts/base/conn.ts +27 -18
  167. package/src/actor/contexts/before-action-response.ts +9 -2
  168. package/src/actor/contexts/before-connect.ts +7 -2
  169. package/src/actor/contexts/connect.ts +9 -2
  170. package/src/actor/contexts/create-conn-state.ts +7 -2
  171. package/src/actor/contexts/create-vars.ts +16 -3
  172. package/src/actor/contexts/create.ts +16 -3
  173. package/src/actor/contexts/destroy.ts +9 -3
  174. package/src/actor/contexts/disconnect.ts +10 -4
  175. package/src/actor/contexts/index.ts +4 -3
  176. package/src/actor/contexts/request.ts +23 -6
  177. package/src/actor/contexts/run.ts +47 -0
  178. package/src/actor/contexts/sleep.ts +9 -3
  179. package/src/actor/contexts/state-change.ts +9 -3
  180. package/src/actor/contexts/wake.ts +9 -3
  181. package/src/actor/contexts/websocket.ts +23 -6
  182. package/src/actor/database.ts +8 -18
  183. package/src/actor/definition.ts +20 -6
  184. package/src/actor/driver.ts +32 -3
  185. package/src/actor/errors.ts +127 -0
  186. package/src/actor/instance/connection-manager.ts +183 -80
  187. package/src/actor/instance/event-manager.ts +26 -15
  188. package/src/actor/instance/keys.ts +117 -0
  189. package/src/actor/instance/mod.ts +784 -174
  190. package/src/actor/instance/queue-manager.ts +603 -0
  191. package/src/actor/instance/queue.ts +287 -0
  192. package/src/actor/instance/schedule-manager.ts +49 -7
  193. package/src/actor/instance/state-manager.ts +35 -11
  194. package/src/actor/instance/traces-driver.ts +128 -0
  195. package/src/actor/mod.ts +26 -2
  196. package/src/actor/protocol/old.ts +28 -13
  197. package/src/actor/protocol/serde.ts +1 -1
  198. package/src/actor/router-endpoints.ts +177 -21
  199. package/src/actor/router-websocket-endpoints.ts +18 -29
  200. package/src/actor/router.ts +177 -0
  201. package/src/actor/schema.ts +291 -0
  202. package/src/actor/utils.ts +40 -0
  203. package/src/client/actor-common.ts +1 -1
  204. package/src/client/actor-conn.ts +100 -33
  205. package/src/client/actor-handle.ts +61 -33
  206. package/src/client/client.ts +2 -4
  207. package/src/client/config.ts +1 -1
  208. package/src/client/mod.browser.ts +2 -0
  209. package/src/client/mod.ts +1 -4
  210. package/src/client/queue.ts +146 -0
  211. package/src/client/utils.ts +1 -1
  212. package/src/common/log.ts +1 -1
  213. package/src/common/utils.ts +3 -3
  214. package/src/db/config.ts +100 -0
  215. package/src/db/drizzle/mod.ts +226 -0
  216. package/src/db/drizzle/sqlite-core.ts +22 -0
  217. package/src/db/mod.ts +125 -0
  218. package/src/db/shared.ts +92 -0
  219. package/src/db/sqlite-vfs.ts +12 -0
  220. package/src/driver-helpers/mod.ts +1 -0
  221. package/src/driver-test-suite/mod.ts +69 -43
  222. package/src/driver-test-suite/tests/access-control.ts +218 -0
  223. package/src/driver-test-suite/tests/actor-db-raw.ts +73 -0
  224. package/src/driver-test-suite/tests/actor-db.ts +394 -0
  225. package/src/driver-test-suite/tests/actor-inspector.ts +259 -358
  226. package/src/driver-test-suite/tests/actor-kv.ts +41 -20
  227. package/src/driver-test-suite/tests/actor-queue.ts +324 -0
  228. package/src/driver-test-suite/tests/actor-run.ts +181 -0
  229. package/src/driver-test-suite/tests/actor-schedule.ts +5 -2
  230. package/src/driver-test-suite/tests/actor-sleep.ts +3 -3
  231. package/src/driver-test-suite/tests/actor-stateless.ts +70 -0
  232. package/src/driver-test-suite/tests/actor-workflow.ts +108 -0
  233. package/src/driver-test-suite/tests/manager-driver.ts +11 -0
  234. package/src/driver-test-suite/tests/raw-http-request-properties.ts +1 -1
  235. package/src/driver-test-suite/tests/raw-websocket.ts +12 -12
  236. package/src/drivers/default.ts +7 -2
  237. package/src/drivers/engine/actor-driver.ts +45 -37
  238. package/src/drivers/engine/config.ts +1 -1
  239. package/src/drivers/file-system/actor.ts +20 -2
  240. package/src/drivers/file-system/global-state.ts +569 -258
  241. package/src/drivers/file-system/kv-limits.ts +70 -0
  242. package/src/drivers/file-system/manager.ts +22 -6
  243. package/src/drivers/file-system/mod.ts +39 -16
  244. package/src/drivers/file-system/sqlite-runtime.ts +210 -0
  245. package/src/inspector/actor-inspector.ts +224 -102
  246. package/src/inspector/config.ts +1 -1
  247. package/src/inspector/handler.ts +102 -20
  248. package/src/inspector/mod.browser.ts +8 -0
  249. package/src/inspector/mod.ts +2 -0
  250. package/src/inspector/serve-ui.ts +40 -0
  251. package/src/inspector/transport.ts +18 -0
  252. package/src/inspector/utils.ts +5 -39
  253. package/src/manager/gateway.ts +1 -1
  254. package/src/manager/protocol/mod.ts +1 -1
  255. package/src/manager/protocol/query.ts +1 -1
  256. package/src/manager/router-schema.ts +1 -1
  257. package/src/manager/router.ts +38 -12
  258. package/src/manager-api/actors.ts +1 -1
  259. package/src/manager-api/common.ts +1 -1
  260. package/src/registry/config/driver.ts +1 -1
  261. package/src/registry/config/index.ts +212 -43
  262. package/src/registry/config/legacy-runner.ts +1 -1
  263. package/src/registry/config/runner.ts +1 -1
  264. package/src/registry/config/serverless.ts +1 -1
  265. package/src/registry/index.ts +7 -5
  266. package/src/remote-manager-driver/api-utils.ts +1 -1
  267. package/src/schemas/actor-inspector/mod.ts +1 -1
  268. package/src/schemas/actor-inspector/versioned.ts +195 -8
  269. package/src/schemas/actor-persist/versioned.ts +87 -7
  270. package/src/schemas/client-protocol/mod.ts +1 -1
  271. package/src/schemas/client-protocol/versioned.ts +127 -11
  272. package/src/schemas/client-protocol-zod/mod.ts +16 -1
  273. package/src/schemas/persist/mod.ts +1 -0
  274. package/src/schemas/transport/mod.ts +1 -0
  275. package/src/serde.ts +1 -1
  276. package/src/serve-test-suite/mod.ts +10 -9
  277. package/src/test/mod.ts +15 -56
  278. package/src/utils/endpoint-parser.test.ts +1 -1
  279. package/src/utils/endpoint-parser.ts +1 -1
  280. package/src/utils/env-vars.ts +12 -1
  281. package/src/utils/node.ts +15 -2
  282. package/src/utils.test.ts +34 -0
  283. package/src/utils.ts +140 -6
  284. package/src/workflow/constants.ts +2 -0
  285. package/src/workflow/context.ts +532 -0
  286. package/src/workflow/driver.ts +191 -0
  287. package/src/workflow/inspector.ts +268 -0
  288. package/src/workflow/mod.ts +122 -0
  289. package/dist/tsup/chunk-2IJTYN6K.cjs +0 -278
  290. package/dist/tsup/chunk-2IJTYN6K.cjs.map +0 -1
  291. package/dist/tsup/chunk-2XQS746M.cjs.map +0 -1
  292. package/dist/tsup/chunk-3VP5CSHV.cjs +0 -114
  293. package/dist/tsup/chunk-3VP5CSHV.cjs.map +0 -1
  294. package/dist/tsup/chunk-AQFSQMBG.js +0 -114
  295. package/dist/tsup/chunk-AQFSQMBG.js.map +0 -1
  296. package/dist/tsup/chunk-E6ZE2YEA.js +0 -664
  297. package/dist/tsup/chunk-E6ZE2YEA.js.map +0 -1
  298. package/dist/tsup/chunk-FJ3KTN4V.js.map +0 -1
  299. package/dist/tsup/chunk-GBENOENJ.cjs +0 -8
  300. package/dist/tsup/chunk-GBENOENJ.cjs.map +0 -1
  301. package/dist/tsup/chunk-GD7UXGOE.cjs +0 -4762
  302. package/dist/tsup/chunk-GD7UXGOE.cjs.map +0 -1
  303. package/dist/tsup/chunk-GMAVRZSF.js.map +0 -1
  304. package/dist/tsup/chunk-H4TB4X25.cjs.map +0 -1
  305. package/dist/tsup/chunk-JDAD2YFA.js.map +0 -1
  306. package/dist/tsup/chunk-KCOVZOPS.js +0 -1946
  307. package/dist/tsup/chunk-KCOVZOPS.js.map +0 -1
  308. package/dist/tsup/chunk-KDFWJKMJ.cjs +0 -664
  309. package/dist/tsup/chunk-KDFWJKMJ.cjs.map +0 -1
  310. package/dist/tsup/chunk-LFVF5SCU.js.map +0 -1
  311. package/dist/tsup/chunk-Q6W7RJJP.js.map +0 -1
  312. package/dist/tsup/chunk-RUW5CZ5Z.cjs +0 -1949
  313. package/dist/tsup/chunk-RUW5CZ5Z.cjs.map +0 -1
  314. package/dist/tsup/chunk-RZW2DNND.cjs.map +0 -1
  315. package/dist/tsup/chunk-TCOEBUUE.js +0 -278
  316. package/dist/tsup/chunk-TCOEBUUE.js.map +0 -1
  317. package/dist/tsup/chunk-X35U3YNX.cjs.map +0 -1
  318. package/dist/tsup/keys-Chhy4ylv.d.cts +0 -8
  319. package/dist/tsup/keys-Chhy4ylv.d.ts +0 -8
  320. package/dist/tsup/v1-Gq4avTK3.d.cts +0 -240
  321. package/dist/tsup/v1-Gq4avTK3.d.ts +0 -240
  322. /package/dist/tsup/{chunk-XXGJCOL6.js.map → chunk-A6YIZWTK.js.map} +0 -0
@@ -1,5 +1,6 @@
1
1
  import type { AnyDatabaseProvider } from "../database";
2
2
  import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
3
4
  import { ConnInitContext } from "./base/conn-init";
4
5
 
5
6
  /**
@@ -11,7 +12,9 @@ export class CreateConnStateContext<
11
12
  TVars,
12
13
  TInput,
13
14
  TDatabase extends AnyDatabaseProvider,
14
- > extends ConnInitContext<TState, TVars, TInput, TDatabase> {}
15
+ TEvents extends EventSchemaConfig = Record<never, never>,
16
+ TQueues extends QueueSchemaConfig = Record<never, never>,
17
+ > extends ConnInitContext<TState, TVars, TInput, TDatabase, TEvents, TQueues> {}
15
18
 
16
19
  export type CreateConnStateContextOf<AD extends AnyActorDefinition> =
17
20
  AD extends ActorDefinition<
@@ -21,7 +24,9 @@ export type CreateConnStateContextOf<AD extends AnyActorDefinition> =
21
24
  infer V,
22
25
  infer I,
23
26
  infer DB extends AnyDatabaseProvider,
27
+ infer E extends EventSchemaConfig,
28
+ infer Q extends QueueSchemaConfig,
24
29
  any
25
30
  >
26
- ? CreateConnStateContext<S, V, I, DB>
31
+ ? CreateConnStateContext<S, V, I, DB, E, Q>
27
32
  : never;
@@ -1,5 +1,6 @@
1
1
  import type { AnyDatabaseProvider } from "../database";
2
2
  import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
3
4
  import { ActorContext } from "./base/actor";
4
5
 
5
6
  /**
@@ -9,8 +10,18 @@ export class CreateVarsContext<
9
10
  TState,
10
11
  TInput,
11
12
  TDatabase extends AnyDatabaseProvider,
12
- > extends ActorContext<TState, never, never, never, TInput, TDatabase> {}
13
-
13
+ TEvents extends EventSchemaConfig = Record<never, never>,
14
+ TQueues extends QueueSchemaConfig = Record<never, never>,
15
+ > extends ActorContext<
16
+ TState,
17
+ never,
18
+ never,
19
+ never,
20
+ TInput,
21
+ TDatabase,
22
+ TEvents,
23
+ TQueues
24
+ > {}
14
25
 
15
26
  export type CreateVarsContextOf<AD extends AnyActorDefinition> =
16
27
  AD extends ActorDefinition<
@@ -20,7 +31,9 @@ export type CreateVarsContextOf<AD extends AnyActorDefinition> =
20
31
  any,
21
32
  infer I,
22
33
  infer DB extends AnyDatabaseProvider,
34
+ infer E extends EventSchemaConfig,
35
+ infer Q extends QueueSchemaConfig,
23
36
  any
24
37
  >
25
- ? CreateVarsContext<S, I, DB>
38
+ ? CreateVarsContext<S, I, DB, E, Q>
26
39
  : never;
@@ -1,5 +1,6 @@
1
1
  import type { AnyDatabaseProvider } from "../database";
2
2
  import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
3
4
  import { ActorContext } from "./base/actor";
4
5
 
5
6
  /**
@@ -9,8 +10,18 @@ export class CreateContext<
9
10
  TState,
10
11
  TInput,
11
12
  TDatabase extends AnyDatabaseProvider,
12
- > extends ActorContext<TState, never, never, never, TInput, TDatabase> {}
13
-
13
+ TEvents extends EventSchemaConfig = Record<never, never>,
14
+ TQueues extends QueueSchemaConfig = Record<never, never>,
15
+ > extends ActorContext<
16
+ TState,
17
+ never,
18
+ never,
19
+ never,
20
+ TInput,
21
+ TDatabase,
22
+ TEvents,
23
+ TQueues
24
+ > {}
14
25
 
15
26
  export type CreateContextOf<AD extends AnyActorDefinition> =
16
27
  AD extends ActorDefinition<
@@ -20,7 +31,9 @@ export type CreateContextOf<AD extends AnyActorDefinition> =
20
31
  any,
21
32
  infer I,
22
33
  infer DB extends AnyDatabaseProvider,
34
+ infer E extends EventSchemaConfig,
35
+ infer Q extends QueueSchemaConfig,
23
36
  any
24
37
  >
25
- ? CreateContext<S, I, DB>
38
+ ? CreateContext<S, I, DB, E, Q>
26
39
  : never;
@@ -1,5 +1,6 @@
1
1
  import type { AnyDatabaseProvider } from "../database";
2
2
  import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
3
4
  import { ActorContext } from "./base/actor";
4
5
 
5
6
  /**
@@ -12,16 +13,19 @@ export class DestroyContext<
12
13
  TVars,
13
14
  TInput,
14
15
  TDatabase extends AnyDatabaseProvider,
16
+ TEvents extends EventSchemaConfig = Record<never, never>,
17
+ TQueues extends QueueSchemaConfig = Record<never, never>,
15
18
  > extends ActorContext<
16
19
  TState,
17
20
  TConnParams,
18
21
  TConnState,
19
22
  TVars,
20
23
  TInput,
21
- TDatabase
24
+ TDatabase,
25
+ TEvents,
26
+ TQueues
22
27
  > {}
23
28
 
24
-
25
29
  export type DestroyContextOf<AD extends AnyActorDefinition> =
26
30
  AD extends ActorDefinition<
27
31
  infer S,
@@ -30,7 +34,9 @@ export type DestroyContextOf<AD extends AnyActorDefinition> =
30
34
  infer V,
31
35
  infer I,
32
36
  infer DB extends AnyDatabaseProvider,
37
+ infer E extends EventSchemaConfig,
38
+ infer Q extends QueueSchemaConfig,
33
39
  any
34
40
  >
35
- ? DestroyContext<S, CP, CS, V, I, DB>
41
+ ? DestroyContext<S, CP, CS, V, I, DB, E, Q>
36
42
  : never;
@@ -1,6 +1,7 @@
1
1
  import type { Conn } from "../conn/mod";
2
- import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
2
  import type { AnyDatabaseProvider } from "../database";
3
+ import type { ActorDefinition, AnyActorDefinition } from "../definition";
4
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
4
5
  import { ActorContext } from "./base/actor";
5
6
 
6
7
  /**
@@ -13,16 +14,19 @@ export class DisconnectContext<
13
14
  TVars,
14
15
  TInput,
15
16
  TDatabase extends AnyDatabaseProvider,
17
+ TEvents extends EventSchemaConfig = Record<never, never>,
18
+ TQueues extends QueueSchemaConfig = Record<never, never>,
16
19
  > extends ActorContext<
17
20
  TState,
18
21
  TConnParams,
19
22
  TConnState,
20
23
  TVars,
21
24
  TInput,
22
- TDatabase
25
+ TDatabase,
26
+ TEvents,
27
+ TQueues
23
28
  > {}
24
29
 
25
-
26
30
  export type DisconnectContextOf<AD extends AnyActorDefinition> =
27
31
  AD extends ActorDefinition<
28
32
  infer S,
@@ -31,7 +35,9 @@ export type DisconnectContextOf<AD extends AnyActorDefinition> =
31
35
  infer V,
32
36
  infer I,
33
37
  infer DB extends AnyDatabaseProvider,
38
+ infer E extends EventSchemaConfig,
39
+ infer Q extends QueueSchemaConfig,
34
40
  any
35
41
  >
36
- ? DisconnectContext<S, CP, CS, V, I, DB>
42
+ ? DisconnectContext<S, CP, CS, V, I, DB, E, Q>
37
43
  : never;
@@ -1,10 +1,10 @@
1
1
  // Base contexts
2
- export { ActorContext, type ActorContextOf } from "./base/actor";
3
- export { ConnContext, type ConnContextOf } from "./base/conn";
4
- export { ConnInitContext, type ConnInitContextOf } from "./base/conn-init";
5
2
 
6
3
  // Lifecycle contexts
7
4
  export { ActionContext, type ActionContextOf } from "./action";
5
+ export { ActorContext, type ActorContextOf } from "./base/actor";
6
+ export { ConnContext, type ConnContextOf } from "./base/conn";
7
+ export { ConnInitContext, type ConnInitContextOf } from "./base/conn-init";
8
8
  export {
9
9
  BeforeActionResponseContext,
10
10
  type BeforeActionResponseContextOf,
@@ -23,6 +23,7 @@ export { CreateVarsContext, type CreateVarsContextOf } from "./create-vars";
23
23
  export { DestroyContext, type DestroyContextOf } from "./destroy";
24
24
  export { DisconnectContext, type DisconnectContextOf } from "./disconnect";
25
25
  export { RequestContext, type RequestContextOf } from "./request";
26
+ export { RunContext, type RunContextOf } from "./run";
26
27
  export { SleepContext, type SleepContextOf } from "./sleep";
27
28
  export {
28
29
  StateChangeContext,
@@ -1,7 +1,8 @@
1
1
  import type { Conn } from "../conn/mod";
2
- import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
2
  import type { AnyDatabaseProvider } from "../database";
3
+ import type { ActorDefinition, AnyActorDefinition } from "../definition";
4
4
  import type { ActorInstance } from "../instance/mod";
5
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
5
6
  import { ConnContext } from "./base/conn";
6
7
 
7
8
  /**
@@ -14,13 +15,17 @@ export class RequestContext<
14
15
  TVars,
15
16
  TInput,
16
17
  TDatabase extends AnyDatabaseProvider,
18
+ TEvents extends EventSchemaConfig = Record<never, never>,
19
+ TQueues extends QueueSchemaConfig = Record<never, never>,
17
20
  > extends ConnContext<
18
21
  TState,
19
22
  TConnParams,
20
23
  TConnState,
21
24
  TVars,
22
25
  TInput,
23
- TDatabase
26
+ TDatabase,
27
+ TEvents,
28
+ TQueues
24
29
  > {
25
30
  /**
26
31
  * The incoming HTTP request.
@@ -38,9 +43,20 @@ export class RequestContext<
38
43
  TConnState,
39
44
  TVars,
40
45
  TInput,
41
- TDatabase
46
+ TDatabase,
47
+ TEvents,
48
+ TQueues
49
+ >,
50
+ conn: Conn<
51
+ TState,
52
+ TConnParams,
53
+ TConnState,
54
+ TVars,
55
+ TInput,
56
+ TDatabase,
57
+ TEvents,
58
+ TQueues
42
59
  >,
43
- conn: Conn<TState, TConnParams, TConnState, TVars, TInput, TDatabase>,
44
60
  request?: Request,
45
61
  ) {
46
62
  super(actor, conn);
@@ -48,7 +64,6 @@ export class RequestContext<
48
64
  }
49
65
  }
50
66
 
51
-
52
67
  export type RequestContextOf<AD extends AnyActorDefinition> =
53
68
  AD extends ActorDefinition<
54
69
  infer S,
@@ -57,7 +72,9 @@ export type RequestContextOf<AD extends AnyActorDefinition> =
57
72
  infer V,
58
73
  infer I,
59
74
  infer DB extends AnyDatabaseProvider,
75
+ infer E extends EventSchemaConfig,
76
+ infer Q extends QueueSchemaConfig,
60
77
  any
61
78
  >
62
- ? RequestContext<S, CP, CS, V, I, DB>
79
+ ? RequestContext<S, CP, CS, V, I, DB, E, Q>
63
80
  : never;
@@ -0,0 +1,47 @@
1
+ import type { AnyDatabaseProvider } from "../database";
2
+ import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
4
+ import { ActorContext } from "./base/actor";
5
+
6
+ /**
7
+ * Context for the run lifecycle hook.
8
+ *
9
+ * This context is passed to the `run` handler which executes after the actor
10
+ * starts. It does not block actor startup and is intended for background tasks.
11
+ *
12
+ * Use `c.aborted` to detect when the actor is stopping and gracefully exit.
13
+ */
14
+ export class RunContext<
15
+ TState,
16
+ TConnParams,
17
+ TConnState,
18
+ TVars,
19
+ TInput,
20
+ TDatabase extends AnyDatabaseProvider,
21
+ TEvents extends EventSchemaConfig = Record<never, never>,
22
+ TQueues extends QueueSchemaConfig = Record<never, never>,
23
+ > extends ActorContext<
24
+ TState,
25
+ TConnParams,
26
+ TConnState,
27
+ TVars,
28
+ TInput,
29
+ TDatabase,
30
+ TEvents,
31
+ TQueues
32
+ > {}
33
+
34
+ export type RunContextOf<AD extends AnyActorDefinition> =
35
+ AD extends ActorDefinition<
36
+ infer S,
37
+ infer CP,
38
+ infer CS,
39
+ infer V,
40
+ infer I,
41
+ infer DB extends AnyDatabaseProvider,
42
+ infer E extends EventSchemaConfig,
43
+ infer Q extends QueueSchemaConfig,
44
+ any
45
+ >
46
+ ? RunContext<S, CP, CS, V, I, DB, E, Q>
47
+ : never;
@@ -1,5 +1,6 @@
1
1
  import type { AnyDatabaseProvider } from "../database";
2
2
  import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
3
4
  import { ActorContext } from "./base/actor";
4
5
 
5
6
  /**
@@ -12,16 +13,19 @@ export class SleepContext<
12
13
  TVars,
13
14
  TInput,
14
15
  TDatabase extends AnyDatabaseProvider,
16
+ TEvents extends EventSchemaConfig = Record<never, never>,
17
+ TQueues extends QueueSchemaConfig = Record<never, never>,
15
18
  > extends ActorContext<
16
19
  TState,
17
20
  TConnParams,
18
21
  TConnState,
19
22
  TVars,
20
23
  TInput,
21
- TDatabase
24
+ TDatabase,
25
+ TEvents,
26
+ TQueues
22
27
  > {}
23
28
 
24
-
25
29
  export type SleepContextOf<AD extends AnyActorDefinition> =
26
30
  AD extends ActorDefinition<
27
31
  infer S,
@@ -30,7 +34,9 @@ export type SleepContextOf<AD extends AnyActorDefinition> =
30
34
  infer V,
31
35
  infer I,
32
36
  infer DB extends AnyDatabaseProvider,
37
+ infer E extends EventSchemaConfig,
38
+ infer Q extends QueueSchemaConfig,
33
39
  any
34
40
  >
35
- ? SleepContext<S, CP, CS, V, I, DB>
41
+ ? SleepContext<S, CP, CS, V, I, DB, E, Q>
36
42
  : never;
@@ -1,5 +1,6 @@
1
1
  import type { AnyDatabaseProvider } from "../database";
2
2
  import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
3
4
  import { ActorContext } from "./base/actor";
4
5
 
5
6
  /**
@@ -12,16 +13,19 @@ export class StateChangeContext<
12
13
  TVars,
13
14
  TInput,
14
15
  TDatabase extends AnyDatabaseProvider,
16
+ TEvents extends EventSchemaConfig = Record<never, never>,
17
+ TQueues extends QueueSchemaConfig = Record<never, never>,
15
18
  > extends ActorContext<
16
19
  TState,
17
20
  TConnParams,
18
21
  TConnState,
19
22
  TVars,
20
23
  TInput,
21
- TDatabase
24
+ TDatabase,
25
+ TEvents,
26
+ TQueues
22
27
  > {}
23
28
 
24
-
25
29
  export type StateChangeContextOf<AD extends AnyActorDefinition> =
26
30
  AD extends ActorDefinition<
27
31
  infer S,
@@ -30,7 +34,9 @@ export type StateChangeContextOf<AD extends AnyActorDefinition> =
30
34
  infer V,
31
35
  infer I,
32
36
  infer DB extends AnyDatabaseProvider,
37
+ infer E extends EventSchemaConfig,
38
+ infer Q extends QueueSchemaConfig,
33
39
  any
34
40
  >
35
- ? StateChangeContext<S, CP, CS, V, I, DB>
41
+ ? StateChangeContext<S, CP, CS, V, I, DB, E, Q>
36
42
  : never;
@@ -1,5 +1,6 @@
1
1
  import type { AnyDatabaseProvider } from "../database";
2
2
  import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
3
4
  import { ActorContext } from "./base/actor";
4
5
 
5
6
  /**
@@ -12,16 +13,19 @@ export class WakeContext<
12
13
  TVars,
13
14
  TInput,
14
15
  TDatabase extends AnyDatabaseProvider,
16
+ TEvents extends EventSchemaConfig = Record<never, never>,
17
+ TQueues extends QueueSchemaConfig = Record<never, never>,
15
18
  > extends ActorContext<
16
19
  TState,
17
20
  TConnParams,
18
21
  TConnState,
19
22
  TVars,
20
23
  TInput,
21
- TDatabase
24
+ TDatabase,
25
+ TEvents,
26
+ TQueues
22
27
  > {}
23
28
 
24
-
25
29
  export type WakeContextOf<AD extends AnyActorDefinition> =
26
30
  AD extends ActorDefinition<
27
31
  infer S,
@@ -30,7 +34,9 @@ export type WakeContextOf<AD extends AnyActorDefinition> =
30
34
  infer V,
31
35
  infer I,
32
36
  infer DB extends AnyDatabaseProvider,
37
+ infer E extends EventSchemaConfig,
38
+ infer Q extends QueueSchemaConfig,
33
39
  any
34
40
  >
35
- ? WakeContext<S, CP, CS, V, I, DB>
41
+ ? WakeContext<S, CP, CS, V, I, DB, E, Q>
36
42
  : never;
@@ -1,7 +1,8 @@
1
1
  import type { Conn } from "../conn/mod";
2
- import type { ActorDefinition, AnyActorDefinition } from "../definition";
3
2
  import type { AnyDatabaseProvider } from "../database";
3
+ import type { ActorDefinition, AnyActorDefinition } from "../definition";
4
4
  import type { ActorInstance } from "../instance/mod";
5
+ import type { EventSchemaConfig, QueueSchemaConfig } from "../schema";
5
6
  import { ConnContext } from "./base/conn";
6
7
 
7
8
  /**
@@ -14,13 +15,17 @@ export class WebSocketContext<
14
15
  TVars,
15
16
  TInput,
16
17
  TDatabase extends AnyDatabaseProvider,
18
+ TEvents extends EventSchemaConfig = Record<never, never>,
19
+ TQueues extends QueueSchemaConfig = Record<never, never>,
17
20
  > extends ConnContext<
18
21
  TState,
19
22
  TConnParams,
20
23
  TConnState,
21
24
  TVars,
22
25
  TInput,
23
- TDatabase
26
+ TDatabase,
27
+ TEvents,
28
+ TQueues
24
29
  > {
25
30
  /**
26
31
  * The incoming HTTP request that initiated the WebSocket upgrade.
@@ -38,9 +43,20 @@ export class WebSocketContext<
38
43
  TConnState,
39
44
  TVars,
40
45
  TInput,
41
- TDatabase
46
+ TDatabase,
47
+ TEvents,
48
+ TQueues
49
+ >,
50
+ conn: Conn<
51
+ TState,
52
+ TConnParams,
53
+ TConnState,
54
+ TVars,
55
+ TInput,
56
+ TDatabase,
57
+ TEvents,
58
+ TQueues
42
59
  >,
43
- conn: Conn<TState, TConnParams, TConnState, TVars, TInput, TDatabase>,
44
60
  request?: Request,
45
61
  ) {
46
62
  super(actor, conn);
@@ -48,7 +64,6 @@ export class WebSocketContext<
48
64
  }
49
65
  }
50
66
 
51
-
52
67
  export type WebSocketContextOf<AD extends AnyActorDefinition> =
53
68
  AD extends ActorDefinition<
54
69
  infer S,
@@ -57,7 +72,9 @@ export type WebSocketContextOf<AD extends AnyActorDefinition> =
57
72
  infer V,
58
73
  infer I,
59
74
  infer DB extends AnyDatabaseProvider,
75
+ infer E extends EventSchemaConfig,
76
+ infer Q extends QueueSchemaConfig,
60
77
  any
61
78
  >
62
- ? WebSocketContext<S, CP, CS, V, I, DB>
79
+ ? WebSocketContext<S, CP, CS, V, I, DB, E, Q>
63
80
  : never;
@@ -1,23 +1,13 @@
1
+ import type {
2
+ AnyDatabaseProvider,
3
+ DatabaseProvider,
4
+ RawDatabaseClient,
5
+ DrizzleDatabaseClient,
6
+ } from "@/db/config";
7
+
1
8
  export type InferDatabaseClient<DBProvider extends AnyDatabaseProvider> =
2
9
  DBProvider extends DatabaseProvider<any>
3
10
  ? Awaited<ReturnType<DBProvider["createClient"]>>
4
11
  : never;
5
12
 
6
- export type AnyDatabaseProvider = DatabaseProvider<any> | undefined;
7
-
8
- export type DatabaseProvider<DB extends { execute: (query: string) => any }> = {
9
- /**
10
- * Creates a new database client for the actor.
11
- * The result is passed to the actor context as `c.db`.
12
- * @experimental
13
- */
14
- createClient: (ctx: {
15
- getDatabase: () => Promise<string | unknown>;
16
- }) => Promise<DB>;
17
- /**
18
- * Runs before the actor has started.
19
- * Use this to run migrations or other setup tasks.
20
- * @experimental
21
- */
22
- onMigrate: (client: DB) => void | Promise<void>;
23
- };
13
+ export type { AnyDatabaseProvider, DatabaseProvider, RawDatabaseClient, DrizzleDatabaseClient };
@@ -1,9 +1,10 @@
1
1
  import type { RegistryConfig } from "@/registry/config";
2
+ import { DeepMutable } from "@/utils";
2
3
  import type { Actions, ActorConfig } from "./config";
3
4
  import type { ActionContextOf, ActorContext } from "./contexts";
4
5
  import type { AnyDatabaseProvider } from "./database";
5
6
  import { ActorInstance } from "./instance/mod";
6
- import { DeepMutable } from "@/utils";
7
+ import type { EventSchemaConfig, QueueSchemaConfig } from "./schema";
7
8
 
8
9
  export type AnyActorDefinition = ActorDefinition<
9
10
  any,
@@ -12,6 +13,8 @@ export type AnyActorDefinition = ActorDefinition<
12
13
  any,
13
14
  any,
14
15
  any,
16
+ any,
17
+ any,
15
18
  any
16
19
  >;
17
20
 
@@ -22,19 +25,30 @@ export class ActorDefinition<
22
25
  V,
23
26
  I,
24
27
  DB extends AnyDatabaseProvider,
25
- R extends Actions<S, CP, CS, V, I, DB>,
28
+ E extends EventSchemaConfig = Record<never, never>,
29
+ Q extends QueueSchemaConfig = Record<never, never>,
30
+ R extends Actions<S, CP, CS, V, I, DB, E, Q> = Actions<
31
+ S,
32
+ CP,
33
+ CS,
34
+ V,
35
+ I,
36
+ DB,
37
+ E,
38
+ Q
39
+ >,
26
40
  > {
27
- #config: ActorConfig<S, CP, CS, V, I, DB>;
41
+ #config: ActorConfig<S, CP, CS, V, I, DB, E, Q>;
28
42
 
29
- constructor(config: ActorConfig<S, CP, CS, V, I, DB>) {
43
+ constructor(config: ActorConfig<S, CP, CS, V, I, DB, E, Q>) {
30
44
  this.#config = config;
31
45
  }
32
46
 
33
- get config(): ActorConfig<S, CP, CS, V, I, DB> {
47
+ get config(): ActorConfig<S, CP, CS, V, I, DB, E, Q> {
34
48
  return this.#config;
35
49
  }
36
50
 
37
- instantiate(): ActorInstance<S, CP, CS, V, I, DB> {
51
+ instantiate(): ActorInstance<S, CP, CS, V, I, DB, E, Q> {
38
52
  return new ActorInstance(this.#config);
39
53
  }
40
54
  }
@@ -3,7 +3,12 @@ import type { AnyClient } from "@/client/client";
3
3
  import type { ManagerDriver } from "@/manager/driver";
4
4
  import { type AnyConn } from "./conn/mod";
5
5
  import type { AnyActorInstance } from "./instance/mod";
6
- import { RegistryConfig } from "@/registry/config";
6
+ import type { RegistryConfig } from "@/registry/config";
7
+ import type {
8
+ RawDatabaseClient,
9
+ } from "@/db/config";
10
+ import type { SqliteVfs } from "@rivetkit/sqlite-vfs";
11
+ import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";
7
12
 
8
13
  export type ActorDriverBuilder = (
9
14
  config: RegistryConfig,
@@ -46,10 +51,34 @@ export interface ActorDriver {
46
51
 
47
52
  // Database
48
53
  /**
54
+ * Override the default raw database client for the actor.
55
+ * If not provided, rivetkit will construct a KV-backed SQLite client.
49
56
  * @experimental
50
- * This is an experimental API that may change in the future.
51
57
  */
52
- getDatabase(actorId: string): Promise<unknown | undefined>;
58
+ overrideRawDatabaseClient?(
59
+ actorId: string,
60
+ ): Promise<RawDatabaseClient | undefined>;
61
+
62
+ /**
63
+ * Override the default Drizzle database client for the actor.
64
+ * If not provided, rivetkit will construct a KV-backed Drizzle client.
65
+ * @experimental
66
+ */
67
+ overrideDrizzleDatabaseClient?(
68
+ actorId: string,
69
+ ): Promise<BaseSQLiteDatabase<any,any,any,any> | undefined>;
70
+
71
+ /**
72
+ * Creates a SQLite VFS instance for creating KV-backed databases.
73
+ * If not provided, the database provider will need an override.
74
+ *
75
+ * @rivetkit/sqlite's async build is not re-entrant per module instance. Drivers
76
+ * should return a new instance per call for actor-level isolation.
77
+ *
78
+ * This is a method (not a property) so drivers can use dynamic imports,
79
+ * keeping the core driver tree-shakeable from @rivetkit/sqlite.
80
+ */
81
+ createSqliteVfs?(): SqliteVfs | Promise<SqliteVfs>;
53
82
 
54
83
  /**
55
84
  * Requests the actor to go to sleep.