rivetkit 2.1.4 → 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-LK36OGGO.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-ANKZ2FS6.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-AQD4CBZ2.cjs → chunk-DH6UINWA.cjs} +4 -4
  30. package/dist/tsup/{chunk-AQD4CBZ2.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-HBYEYBIC.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-TEUL4UYN.cjs → chunk-GUHXWPGB.cjs} +1515 -1479
  39. package/dist/tsup/chunk-GUHXWPGB.cjs.map +1 -0
  40. package/dist/tsup/{chunk-3B6PCYJB.cjs → chunk-HNE2AK6C.cjs} +2375 -3713
  41. package/dist/tsup/chunk-HNE2AK6C.cjs.map +1 -0
  42. package/dist/tsup/{chunk-5UEFNG7P.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-UWAGLDT6.cjs → chunk-JJNZQDUN.cjs} +667 -2517
  46. package/dist/tsup/chunk-JJNZQDUN.cjs.map +1 -0
  47. package/dist/tsup/{chunk-M6H4XIF4.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-4KSHPFXF.cjs → chunk-MPLMTJY5.cjs} +123 -23
  56. package/dist/tsup/chunk-MPLMTJY5.cjs.map +1 -0
  57. package/dist/tsup/{chunk-UDMRZR6A.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-3GTO6H3E.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-GXRVSSVD.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-QPADHLDU.cjs → chunk-V3JSZR5P.cjs} +3 -3
  70. package/dist/tsup/{chunk-QPADHLDU.cjs.map → chunk-V3JSZR5P.cjs.map} +1 -1
  71. package/dist/tsup/{chunk-HKOSZKKZ.cjs → chunk-VBR35EQF.cjs} +271 -339
  72. package/dist/tsup/chunk-VBR35EQF.cjs.map +1 -0
  73. package/dist/tsup/{chunk-DZXDUGLL.js → chunk-VWYO36X4.js} +117 -17
  74. package/dist/tsup/chunk-VWYO36X4.js.map +1 -0
  75. package/dist/tsup/{chunk-I6PL6QIY.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-KTWY3K6Z.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 +113 -14
  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-3B6PCYJB.cjs.map +0 -1
  305. package/dist/tsup/chunk-3GTO6H3E.js.map +0 -1
  306. package/dist/tsup/chunk-4KSHPFXF.cjs.map +0 -1
  307. package/dist/tsup/chunk-6LJAZ5R4.cjs +0 -96
  308. package/dist/tsup/chunk-6LJAZ5R4.cjs.map +0 -1
  309. package/dist/tsup/chunk-7HTNH26M.js.map +0 -1
  310. package/dist/tsup/chunk-ANKZ2FS6.js.map +0 -1
  311. package/dist/tsup/chunk-DZXDUGLL.js.map +0 -1
  312. package/dist/tsup/chunk-GXRVSSVD.cjs.map +0 -1
  313. package/dist/tsup/chunk-H5TSEPN4.cjs +0 -645
  314. package/dist/tsup/chunk-H5TSEPN4.cjs.map +0 -1
  315. package/dist/tsup/chunk-HKOSZKKZ.cjs.map +0 -1
  316. package/dist/tsup/chunk-I6PL6QIY.js.map +0 -1
  317. package/dist/tsup/chunk-KJSYAUOM.js.map +0 -1
  318. package/dist/tsup/chunk-KTWY3K6Z.js.map +0 -1
  319. package/dist/tsup/chunk-L47L3ZWJ.cjs.map +0 -1
  320. package/dist/tsup/chunk-LK36OGGO.cjs.map +0 -1
  321. package/dist/tsup/chunk-M6H4XIF4.js.map +0 -1
  322. package/dist/tsup/chunk-N4KRDJ56.js.map +0 -1
  323. package/dist/tsup/chunk-SR3KQE7Q.cjs.map +0 -1
  324. package/dist/tsup/chunk-TEFYRRAK.js +0 -645
  325. package/dist/tsup/chunk-TEFYRRAK.js.map +0 -1
  326. package/dist/tsup/chunk-TEUL4UYN.cjs.map +0 -1
  327. package/dist/tsup/chunk-UDMRZR6A.js.map +0 -1
  328. package/dist/tsup/chunk-UWAGLDT6.cjs.map +0 -1
  329. package/dist/tsup/chunk-VKVNIQRQ.js.map +0 -1
  330. package/dist/tsup/chunk-ZFY5J2EP.cjs.map +0 -1
  331. package/src/db/sqlite-vfs.ts +0 -12
  332. /package/dist/tsup/{chunk-HBYEYBIC.js.map → chunk-EONWXYMN.js.map} +0 -0
  333. /package/dist/tsup/{chunk-5UEFNG7P.js.map → chunk-I5I6OALK.js.map} +0 -0
@@ -16,10 +16,7 @@ const defaultTokenFn = () => {
16
16
  };
17
17
 
18
18
  const defaultEnabled = () => {
19
- return (
20
- isDev() ||
21
- !getRivetkitInspectorDisable()
22
- );
19
+ return isDev() || !getRivetkitInspectorDisable();
23
20
  };
24
21
 
25
22
  export const InspectorConfigSchema = z
@@ -3,6 +3,6 @@ export * from "../schemas/actor-inspector/mod";
3
3
  export * from "../schemas/actor-inspector/versioned";
4
4
  export type { WorkflowHistory as TransportWorkflowHistory } from "../schemas/transport/mod";
5
5
  export {
6
- decodeWorkflowHistoryTransport,
7
- encodeWorkflowHistoryTransport,
6
+ decodeWorkflowHistoryTransport,
7
+ encodeWorkflowHistoryTransport,
8
8
  } from "./transport";
@@ -1,4 +1,7 @@
1
1
  export * from "../schemas/actor-inspector/mod";
2
2
  export * from "../schemas/actor-inspector/versioned";
3
- export { decodeWorkflowHistoryTransport, encodeWorkflowHistoryTransport } from "./transport";
3
+ export {
4
+ decodeWorkflowHistoryTransport,
5
+ encodeWorkflowHistoryTransport,
6
+ } from "./transport";
4
7
  export type { WorkflowHistory as TransportWorkflowHistory } from "../schemas/transport/mod";
@@ -1,4 +1,3 @@
1
-
2
1
  import { extract } from "tar";
3
2
  import { getNodeFs, getNodeOs, getNodePath, getNodeUrl } from "@/utils/node";
4
3
 
@@ -0,0 +1,309 @@
1
+ import * as cbor from "cbor-x";
2
+ import { decodeWorkflowHistoryTransport } from "@/inspector/transport";
3
+ import type * as transport from "@/schemas/transport/mod";
4
+
5
+ function decodeWorkflowCbor(data: ArrayBuffer | null): unknown | null {
6
+ if (data === null) {
7
+ return null;
8
+ }
9
+
10
+ try {
11
+ return cbor.decode(new Uint8Array(data));
12
+ } catch {
13
+ return null;
14
+ }
15
+ }
16
+
17
+ function serializeWorkflowLocation(
18
+ location: transport.WorkflowLocation,
19
+ ): Array<
20
+ | { tag: "WorkflowNameIndex"; val: number }
21
+ | {
22
+ tag: "WorkflowLoopIterationMarker";
23
+ val: { loop: number; iteration: number };
24
+ }
25
+ > {
26
+ return location.map((segment) => {
27
+ if (segment.tag === "WorkflowNameIndex") {
28
+ return {
29
+ tag: segment.tag,
30
+ val: segment.val,
31
+ };
32
+ }
33
+
34
+ return {
35
+ tag: segment.tag,
36
+ val: {
37
+ loop: segment.val.loop,
38
+ iteration: segment.val.iteration,
39
+ },
40
+ };
41
+ });
42
+ }
43
+
44
+ function serializeWorkflowBranches(
45
+ branches: ReadonlyMap<string, transport.WorkflowBranchStatus>,
46
+ ): Record<
47
+ string,
48
+ { status: string; output: unknown | null; error: string | null }
49
+ > {
50
+ return Object.fromEntries(
51
+ Array.from(branches.entries()).map(([name, branch]) => [
52
+ name,
53
+ {
54
+ status: branch.status,
55
+ output: decodeWorkflowCbor(branch.output),
56
+ error: branch.error,
57
+ },
58
+ ]),
59
+ );
60
+ }
61
+
62
+ function serializeWorkflowEntryKind(kind: transport.WorkflowEntryKind):
63
+ | {
64
+ tag: "WorkflowStepEntry";
65
+ val: { output: unknown | null; error: string | null };
66
+ }
67
+ | {
68
+ tag: "WorkflowLoopEntry";
69
+ val: {
70
+ state: unknown | null;
71
+ iteration: number;
72
+ output: unknown | null;
73
+ };
74
+ }
75
+ | {
76
+ tag: "WorkflowSleepEntry";
77
+ val: { deadline: number; state: string };
78
+ }
79
+ | {
80
+ tag: "WorkflowMessageEntry";
81
+ val: { name: string; messageData: unknown | null };
82
+ }
83
+ | {
84
+ tag: "WorkflowRollbackCheckpointEntry";
85
+ val: { name: string };
86
+ }
87
+ | {
88
+ tag: "WorkflowJoinEntry";
89
+ val: {
90
+ branches: Record<
91
+ string,
92
+ {
93
+ status: string;
94
+ output: unknown | null;
95
+ error: string | null;
96
+ }
97
+ >;
98
+ };
99
+ }
100
+ | {
101
+ tag: "WorkflowRaceEntry";
102
+ val: {
103
+ winner: string | null;
104
+ branches: Record<
105
+ string,
106
+ {
107
+ status: string;
108
+ output: unknown | null;
109
+ error: string | null;
110
+ }
111
+ >;
112
+ };
113
+ }
114
+ | {
115
+ tag: "WorkflowRemovedEntry";
116
+ val: { originalType: string; originalName: string | null };
117
+ } {
118
+ switch (kind.tag) {
119
+ case "WorkflowStepEntry":
120
+ return {
121
+ tag: kind.tag,
122
+ val: {
123
+ output: decodeWorkflowCbor(kind.val.output),
124
+ error: kind.val.error,
125
+ },
126
+ };
127
+ case "WorkflowLoopEntry":
128
+ return {
129
+ tag: kind.tag,
130
+ val: {
131
+ state: decodeWorkflowCbor(kind.val.state),
132
+ iteration: kind.val.iteration,
133
+ output: decodeWorkflowCbor(kind.val.output),
134
+ },
135
+ };
136
+ case "WorkflowSleepEntry":
137
+ return {
138
+ tag: kind.tag,
139
+ val: {
140
+ deadline: Number(kind.val.deadline),
141
+ state: kind.val.state,
142
+ },
143
+ };
144
+ case "WorkflowMessageEntry":
145
+ return {
146
+ tag: kind.tag,
147
+ val: {
148
+ name: kind.val.name,
149
+ messageData: decodeWorkflowCbor(kind.val.messageData),
150
+ },
151
+ };
152
+ case "WorkflowRollbackCheckpointEntry":
153
+ return {
154
+ tag: kind.tag,
155
+ val: {
156
+ name: kind.val.name,
157
+ },
158
+ };
159
+ case "WorkflowJoinEntry":
160
+ return {
161
+ tag: kind.tag,
162
+ val: {
163
+ branches: serializeWorkflowBranches(kind.val.branches),
164
+ },
165
+ };
166
+ case "WorkflowRaceEntry":
167
+ return {
168
+ tag: kind.tag,
169
+ val: {
170
+ winner: kind.val.winner,
171
+ branches: serializeWorkflowBranches(kind.val.branches),
172
+ },
173
+ };
174
+ case "WorkflowRemovedEntry":
175
+ return {
176
+ tag: kind.tag,
177
+ val: {
178
+ originalType: kind.val.originalType,
179
+ originalName: kind.val.originalName,
180
+ },
181
+ };
182
+ }
183
+ }
184
+
185
+ export function serializeWorkflowHistoryForJson(
186
+ data: ArrayBuffer | null,
187
+ ):
188
+ | {
189
+ nameRegistry: string[];
190
+ entries: Array<{
191
+ id: string;
192
+ location: Array<
193
+ | { tag: "WorkflowNameIndex"; val: number }
194
+ | {
195
+ tag: "WorkflowLoopIterationMarker";
196
+ val: { loop: number; iteration: number };
197
+ }
198
+ >;
199
+ kind:
200
+ | {
201
+ tag: "WorkflowStepEntry";
202
+ val: { output: unknown | null; error: string | null };
203
+ }
204
+ | {
205
+ tag: "WorkflowLoopEntry";
206
+ val: {
207
+ state: unknown | null;
208
+ iteration: number;
209
+ output: unknown | null;
210
+ };
211
+ }
212
+ | {
213
+ tag: "WorkflowSleepEntry";
214
+ val: { deadline: number; state: string };
215
+ }
216
+ | {
217
+ tag: "WorkflowMessageEntry";
218
+ val: { name: string; messageData: unknown | null };
219
+ }
220
+ | {
221
+ tag: "WorkflowRollbackCheckpointEntry";
222
+ val: { name: string };
223
+ }
224
+ | {
225
+ tag: "WorkflowJoinEntry";
226
+ val: {
227
+ branches: Record<
228
+ string,
229
+ {
230
+ status: string;
231
+ output: unknown | null;
232
+ error: string | null;
233
+ }
234
+ >;
235
+ };
236
+ }
237
+ | {
238
+ tag: "WorkflowRaceEntry";
239
+ val: {
240
+ winner: string | null;
241
+ branches: Record<
242
+ string,
243
+ {
244
+ status: string;
245
+ output: unknown | null;
246
+ error: string | null;
247
+ }
248
+ >;
249
+ };
250
+ }
251
+ | {
252
+ tag: "WorkflowRemovedEntry";
253
+ val: {
254
+ originalType: string;
255
+ originalName: string | null;
256
+ };
257
+ };
258
+ }>;
259
+ entryMetadata: Record<
260
+ string,
261
+ {
262
+ status: string;
263
+ error: string | null;
264
+ attempts: number;
265
+ lastAttemptAt: number;
266
+ createdAt: number;
267
+ completedAt: number | null;
268
+ rollbackCompletedAt: number | null;
269
+ rollbackError: string | null;
270
+ }
271
+ >;
272
+ }
273
+ | null {
274
+ if (data === null) {
275
+ return null;
276
+ }
277
+
278
+ const history = decodeWorkflowHistoryTransport(data);
279
+
280
+ return {
281
+ nameRegistry: [...history.nameRegistry],
282
+ entries: history.entries.map((entry) => ({
283
+ id: entry.id,
284
+ location: serializeWorkflowLocation(entry.location),
285
+ kind: serializeWorkflowEntryKind(entry.kind),
286
+ })),
287
+ entryMetadata: Object.fromEntries(
288
+ Array.from(history.entryMetadata.entries()).map(([entryId, meta]) => [
289
+ entryId,
290
+ {
291
+ status: meta.status,
292
+ error: meta.error,
293
+ attempts: meta.attempts,
294
+ lastAttemptAt: Number(meta.lastAttemptAt),
295
+ createdAt: Number(meta.createdAt),
296
+ completedAt:
297
+ meta.completedAt === null
298
+ ? null
299
+ : Number(meta.completedAt),
300
+ rollbackCompletedAt:
301
+ meta.rollbackCompletedAt === null
302
+ ? null
303
+ : Number(meta.rollbackCompletedAt),
304
+ rollbackError: meta.rollbackError,
305
+ },
306
+ ]),
307
+ ),
308
+ };
309
+ }
@@ -122,7 +122,6 @@ export async function actorGateway(
122
122
  c: HonoContext,
123
123
  next: Next,
124
124
  ) {
125
-
126
125
  // Skip test routes - let them be handled by their specific handlers
127
126
  if (c.req.path.startsWith("/.test/")) {
128
127
  return next();
@@ -425,7 +424,12 @@ export async function createTestWebSocketProxy(
425
424
  promise: clientToProxyWsPromise,
426
425
  resolve: clientToProxyWsResolve,
427
426
  reject: clientToProxyWsReject,
428
- } = promiseWithResolvers<WSContext>((reason) => logger().warn({ msg: "unhandled client websocket promise rejection", reason }));
427
+ } = promiseWithResolvers<WSContext>((reason) =>
428
+ logger().warn({
429
+ msg: "unhandled client websocket promise rejection",
430
+ reason,
431
+ }),
432
+ );
429
433
  try {
430
434
  // Resolve the client WebSocket promise
431
435
  logger().debug({ msg: "awaiting client websocket promise" });
@@ -95,9 +95,9 @@ export function buildManagerRouter(
95
95
 
96
96
  const actorIdsParsed = actor_ids
97
97
  ? actor_ids
98
- .split(",")
99
- .map((id) => id.trim())
100
- .filter((id) => id.length > 0)
98
+ .split(",")
99
+ .map((id) => id.trim())
100
+ .filter((id) => id.length > 0)
101
101
  : undefined;
102
102
 
103
103
  const actors: ActorOutput[] = [];
@@ -58,6 +58,26 @@ export const RegistryConfigSchema = z
58
58
  .optional()
59
59
  .transform((val) => val ?? getRivetkitStoragePath()),
60
60
 
61
+ // MARK: Database
62
+ /**
63
+ * @experimental
64
+ *
65
+ * Configuration for the SQLite VFS pool that shares WASM instances across actors.
66
+ */
67
+ sqlitePool: z
68
+ .object({
69
+ /**
70
+ * Number of actors per WASM SQLite instance.
71
+ */
72
+ actorsPerInstance: z.number().int().min(1).optional().default(50),
73
+ /**
74
+ * Milliseconds before an idle instance (no actors, no in-flight ops) is destroyed.
75
+ */
76
+ idleDestroyMs: z.number().optional().default(30_000),
77
+ })
78
+ .optional()
79
+ .default(() => ({ actorsPerInstance: 50, idleDestroyMs: 30_000 })),
80
+
61
81
  // MARK: Networking
62
82
  /** @experimental */
63
83
  maxIncomingMessageSize: z.number().optional().default(65_536),
@@ -125,6 +145,14 @@ export const RegistryConfigSchema = z
125
145
  * Auto-determined based on endpoint and NODE_ENV if not specified.
126
146
  */
127
147
  serveManager: z.boolean().optional(),
148
+ /**
149
+ * Directory to serve static files from.
150
+ *
151
+ * When set, the manager server will serve static files from this
152
+ * directory. This is used by `registry.start()` to serve a frontend
153
+ * alongside the actor API.
154
+ */
155
+ publicDir: z.string().optional(),
128
156
  /**
129
157
  * @experimental
130
158
  *
@@ -163,11 +191,11 @@ export const RegistryConfigSchema = z
163
191
  // Parse endpoint string (env var fallback is applied via transform above)
164
192
  const parsedEndpoint = config.endpoint
165
193
  ? tryParseEndpoint(ctx, {
166
- endpoint: config.endpoint,
167
- path: ["endpoint"],
168
- namespace: config.namespace,
169
- token: config.token,
170
- })
194
+ endpoint: config.endpoint,
195
+ path: ["endpoint"],
196
+ namespace: config.namespace,
197
+ token: config.token,
198
+ })
171
199
  : undefined;
172
200
 
173
201
  if (parsedEndpoint && config.serveManager) {
@@ -212,9 +240,9 @@ export const RegistryConfigSchema = z
212
240
  // Parse publicEndpoint string (env var fallback is applied via transform in serverless schema)
213
241
  const parsedPublicEndpoint = config.serverless.publicEndpoint
214
242
  ? tryParseEndpoint(ctx, {
215
- endpoint: config.serverless.publicEndpoint,
216
- path: ["serverless", "publicEndpoint"],
217
- })
243
+ endpoint: config.serverless.publicEndpoint,
244
+ path: ["serverless", "publicEndpoint"],
245
+ })
218
246
  : undefined;
219
247
 
220
248
  // Validate that publicEndpoint namespace matches backend namespace if specified
@@ -248,9 +276,9 @@ export const RegistryConfigSchema = z
248
276
  const willUseEngine = !!endpoint || config.serverless.spawnEngine;
249
277
  const inspector = willUseEngine
250
278
  ? {
251
- ...config.inspector,
252
- enabled: { manager: false, actor: true },
253
- }
279
+ ...config.inspector,
280
+ enabled: { manager: false, actor: true },
281
+ }
254
282
  : config.inspector;
255
283
 
256
284
  return {
@@ -420,7 +448,7 @@ export const DocRunnerConfigSchema = z
420
448
  runnerKey: z
421
449
  .string()
422
450
  .optional()
423
- .describe("Authentication key for the runner."),
451
+ .describe("Deprecated. Authentication key for the runner."),
424
452
  version: z
425
453
  .number()
426
454
  .optional()
@@ -441,6 +469,25 @@ export const DocRegistryConfigSchema = z
441
469
  .describe(
442
470
  "Storage path for RivetKit file-system state when using the default driver. Can also be set via RIVETKIT_STORAGE_PATH.",
443
471
  ),
472
+ sqlitePool: z
473
+ .object({
474
+ actorsPerInstance: z
475
+ .number()
476
+ .optional()
477
+ .describe(
478
+ "Number of actors per WASM SQLite instance. Default: 50",
479
+ ),
480
+ idleDestroyMs: z
481
+ .number()
482
+ .optional()
483
+ .describe(
484
+ "Milliseconds before an idle WASM instance is destroyed. Default: 30000",
485
+ ),
486
+ })
487
+ .optional()
488
+ .describe(
489
+ "Configuration for the SQLite VFS pool that shares WASM instances across actors.",
490
+ ),
444
491
  maxIncomingMessageSize: z
445
492
  .number()
446
493
  .optional()
@@ -495,6 +542,12 @@ export const DocRegistryConfigSchema = z
495
542
  .describe(
496
543
  "Whether to start the local manager server. Auto-determined based on endpoint and NODE_ENV if not specified.",
497
544
  ),
545
+ publicDir: z
546
+ .string()
547
+ .optional()
548
+ .describe(
549
+ "Directory to serve static files from. When set, the manager server serves static files alongside the actor API. Used by registry.start().",
550
+ ),
498
551
  managerBasePath: z
499
552
  .string()
500
553
  .optional()
@@ -1,21 +1,36 @@
1
1
  import { z } from "zod/v4";
2
+ import { getLogger } from "@/common/log";
2
3
  import {
3
4
  isDev,
5
+ getNodeEnv,
4
6
  getRivetTotalSlots,
5
7
  getRivetRunner,
6
- getRivetRunnerKey,
7
8
  getRivetRunnerVersion,
8
9
  } from "@/utils/env-vars";
9
10
 
11
+ let warnedMissingVersion = false;
12
+
10
13
  export const RunnerConfigSchema = z.object({
11
14
  // MARK: Runner
12
15
  totalSlots: z.number().default(() => getRivetTotalSlots() ?? 100000),
13
16
  runnerName: z.string().default(() => getRivetRunner() ?? "default"),
17
+ // Deprecated.
14
18
  runnerKey: z
15
19
  .string()
16
- .optional()
17
- .transform((x) => x ?? getRivetRunnerKey()),
18
- version: z.number().default(() => getRivetRunnerVersion() ?? 1),
20
+ .optional(),
21
+ version: z.number().default(() => {
22
+ const version = getRivetRunnerVersion();
23
+ if (version !== undefined) return version;
24
+
25
+ if (getNodeEnv() === "production" && !warnedMissingVersion) {
26
+ warnedMissingVersion = true;
27
+ getLogger("rivetkit").error(
28
+ "RIVET_RUNNER_VERSION is not set. Actors will not be versioned, which means they won't be drained on deploy. This is only needed when self-hosting or using a custom runner (not needed for Rivet Compute). Set this as a build arg in your Dockerfile. See https://rivet.dev/docs/actors/versions",
29
+ );
30
+ }
31
+
32
+ return 1;
33
+ }),
19
34
  });
20
35
  export type RunnerConfigInput = z.input<typeof RunnerConfigSchema>;
21
36
  export type RunnerConfig = z.infer<typeof RunnerConfigSchema>;