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
@@ -38,28 +38,26 @@ export function runActorRunTests(driverTestConfig: DriverTestConfig) {
38
38
  expect(state2.tickCount).toBeGreaterThan(count1);
39
39
  });
40
40
 
41
- test("active run handler keeps actor awake past sleep timeout", async (c) => {
42
- const { client } = await setupDriverTest(c, driverTestConfig);
41
+ test("active run handler keeps actor awake past sleep timeout", async (c) => {
42
+ const { client } = await setupDriverTest(c, driverTestConfig);
43
43
 
44
- const actor = client.runWithTicks.getOrCreate([
45
- "run-stays-awake",
46
- ]);
44
+ const actor = client.runWithTicks.getOrCreate(["run-stays-awake"]);
47
45
 
48
- // Wait for run to start
49
- await waitFor(driverTestConfig, 100);
46
+ // Wait for run to start
47
+ await waitFor(driverTestConfig, 100);
50
48
 
51
- const state1 = await actor.getState();
52
- expect(state1.runStarted).toBe(true);
53
- const tickCount1 = state1.tickCount;
49
+ const state1 = await actor.getState();
50
+ expect(state1.runStarted).toBe(true);
51
+ const tickCount1 = state1.tickCount;
54
52
 
55
- // Active run loops should keep the actor awake.
56
- await waitFor(driverTestConfig, RUN_SLEEP_TIMEOUT + 300);
53
+ // Active run loops should keep the actor awake.
54
+ await waitFor(driverTestConfig, RUN_SLEEP_TIMEOUT + 300);
57
55
 
58
- const state2 = await actor.getState();
59
- expect(state2.runStarted).toBe(true);
60
- expect(state2.runExited).toBe(false);
61
- expect(state2.tickCount).toBeGreaterThan(tickCount1);
62
- });
56
+ const state2 = await actor.getState();
57
+ expect(state2.runStarted).toBe(true);
58
+ expect(state2.runExited).toBe(false);
59
+ expect(state2.tickCount).toBeGreaterThan(tickCount1);
60
+ });
63
61
 
64
62
  test("actor without run handler works normally", async (c) => {
65
63
  const { client } = await setupDriverTest(c, driverTestConfig);
@@ -78,8 +76,8 @@ export function runActorRunTests(driverTestConfig: DriverTestConfig) {
78
76
  expect(state2.wakeCount).toBe(2);
79
77
  });
80
78
 
81
- test("run handler can consume from queue", async (c) => {
82
- const { client } = await setupDriverTest(c, driverTestConfig);
79
+ test("run handler can consume from queue", async (c) => {
80
+ const { client } = await setupDriverTest(c, driverTestConfig);
83
81
 
84
82
  const actor = client.runWithQueueConsumer.getOrCreate([
85
83
  "queue-consumer",
@@ -107,30 +105,30 @@ export function runActorRunTests(driverTestConfig: DriverTestConfig) {
107
105
  type: "test",
108
106
  value: 2,
109
107
  });
110
- expect(state.messagesReceived[2].body).toEqual({
111
- type: "test",
112
- value: 3,
113
- });
108
+ expect(state.messagesReceived[2].body).toEqual({
109
+ type: "test",
110
+ value: 3,
114
111
  });
112
+ });
115
113
 
116
- test("queue-waiting run handler can sleep and resume", async (c) => {
117
- const { client } = await setupDriverTest(c, driverTestConfig);
114
+ test("queue-waiting run handler can sleep and resume", async (c) => {
115
+ const { client } = await setupDriverTest(c, driverTestConfig);
118
116
 
119
- const actor = client.runWithQueueConsumer.getOrCreate([
120
- "queue-consumer-sleep",
121
- ]);
117
+ const actor = client.runWithQueueConsumer.getOrCreate([
118
+ "queue-consumer-sleep",
119
+ ]);
122
120
 
123
- await waitFor(driverTestConfig, 100);
124
- const state1 = await actor.getState();
125
- expect(state1.runStarted).toBe(true);
121
+ await waitFor(driverTestConfig, 100);
122
+ const state1 = await actor.getState();
123
+ expect(state1.runStarted).toBe(true);
126
124
 
127
- await waitFor(driverTestConfig, RUN_SLEEP_TIMEOUT + 500);
128
- const state2 = await actor.getState();
125
+ await waitFor(driverTestConfig, RUN_SLEEP_TIMEOUT + 500);
126
+ const state2 = await actor.getState();
129
127
 
130
- expect(state2.wakeCount).toBeGreaterThan(state1.wakeCount);
131
- });
128
+ expect(state2.wakeCount).toBeGreaterThan(state1.wakeCount);
129
+ });
132
130
 
133
- test("run handler that exits early triggers destroy", async (c) => {
131
+ test("run handler that exits early sleeps instead of destroying", async (c) => {
134
132
  const { client } = await setupDriverTest(c, driverTestConfig);
135
133
 
136
134
  const actor = client.runWithEarlyExit.getOrCreate(["early-exit"]);
@@ -141,22 +139,23 @@ export function runActorRunTests(driverTestConfig: DriverTestConfig) {
141
139
  const state1 = await actor.getState();
142
140
  expect(state1.runStarted).toBe(true);
143
141
 
144
- // Wait for the actor to be destroyed
145
- await waitFor(driverTestConfig, 300);
142
+ // Wait for the run handler to exit and the normal idle sleep timeout.
143
+ await waitFor(driverTestConfig, RUN_SLEEP_TIMEOUT + 400);
146
144
 
147
- // After the run handler exits early, the actor should be destroyed.
148
- // Depending on the driver, it may be in a destroyed state or recreated.
149
- // In the file-system driver test environment, the actor is not automatically
150
- // rescheduled, so we just verify the initial behavior worked.
151
- // A new getOrCreate should create a fresh actor.
152
- const actor2 = client.runWithEarlyExit.getOrCreate([
153
- "early-exit-fresh",
154
- ]);
155
- const state2 = await actor2.getState();
145
+ const state2 = await actor.getState();
156
146
  expect(state2.runStarted).toBe(true);
147
+ expect(state2.destroyCalled).toBe(false);
148
+
149
+ if (driverTestConfig.skip?.sleep) {
150
+ expect(state2.sleepCount).toBe(0);
151
+ expect(state2.wakeCount).toBe(1);
152
+ } else {
153
+ expect(state2.sleepCount).toBeGreaterThan(0);
154
+ expect(state2.wakeCount).toBeGreaterThan(1);
155
+ }
157
156
  });
158
157
 
159
- test("run handler that throws error triggers destroy", async (c) => {
158
+ test("run handler that throws error sleeps instead of destroying", async (c) => {
160
159
  const { client } = await setupDriverTest(c, driverTestConfig);
161
160
 
162
161
  const actor = client.runWithError.getOrCreate(["run-error"]);
@@ -167,15 +166,20 @@ export function runActorRunTests(driverTestConfig: DriverTestConfig) {
167
166
  const state1 = await actor.getState();
168
167
  expect(state1.runStarted).toBe(true);
169
168
 
170
- // Wait for the actor to be destroyed
171
- await waitFor(driverTestConfig, 300);
169
+ // Wait for the run handler to throw and the normal idle sleep timeout.
170
+ await waitFor(driverTestConfig, RUN_SLEEP_TIMEOUT + 400);
172
171
 
173
- // After the run handler throws, the actor should be destroyed.
174
- // Similar to the early exit test, the driver may not automatically reschedule.
175
- // A new getOrCreate should create a fresh actor.
176
- const actor2 = client.runWithError.getOrCreate(["run-error-fresh"]);
177
- const state2 = await actor2.getState();
172
+ const state2 = await actor.getState();
178
173
  expect(state2.runStarted).toBe(true);
174
+ expect(state2.destroyCalled).toBe(false);
175
+
176
+ if (driverTestConfig.skip?.sleep) {
177
+ expect(state2.sleepCount).toBe(0);
178
+ expect(state2.wakeCount).toBe(1);
179
+ } else {
180
+ expect(state2.sleepCount).toBeGreaterThan(0);
181
+ expect(state2.wakeCount).toBeGreaterThan(1);
182
+ }
179
183
  });
180
184
  });
181
185
  }
@@ -0,0 +1,78 @@
1
+ // @ts-nocheck
2
+ import { describe, expect, test, vi } from "vitest";
3
+ import type { DriverTestConfig } from "../mod";
4
+ import { setupDriverTest } from "../utils";
5
+
6
+ export function runActorSandboxTests(driverTestConfig: DriverTestConfig) {
7
+ describe.skipIf(driverTestConfig.skip?.sandbox)("Actor Sandbox Tests", () => {
8
+ test("supports sandbox actions through the actor runtime", async (c) => {
9
+ const { client } = await setupDriverTest(c, driverTestConfig);
10
+ const sandbox = client.dockerSandboxActor.getOrCreate([
11
+ `sandbox-${crypto.randomUUID()}`,
12
+ ]);
13
+ const decoder = new TextDecoder();
14
+
15
+ const health = await vi.waitFor(
16
+ async () => {
17
+ return await sandbox.getHealth();
18
+ },
19
+ {
20
+ timeout: 120_000,
21
+ interval: 500,
22
+ },
23
+ );
24
+ expect(typeof health.status).toBe("string");
25
+ const { url } = await sandbox.getSandboxUrl();
26
+ expect(url).toMatch(/^https?:\/\//);
27
+
28
+ await sandbox.mkdirFs({ path: "/root/tmp" });
29
+ await sandbox.writeFsFile(
30
+ { path: "/root/tmp/hello.txt" },
31
+ "sandbox actor driver test",
32
+ );
33
+ expect(
34
+ decoder.decode(
35
+ await sandbox.readFsFile({ path: "/root/tmp/hello.txt" }),
36
+ ),
37
+ ).toBe("sandbox actor driver test");
38
+
39
+ const stat = await sandbox.statFs({ path: "/root/tmp/hello.txt" });
40
+ expect(stat.entryType).toBe("file");
41
+
42
+ await sandbox.moveFs({
43
+ from: "/root/tmp/hello.txt",
44
+ to: "/root/tmp/renamed.txt",
45
+ });
46
+ expect(
47
+ (await sandbox.listFsEntries({ path: "/root/tmp" })).map(
48
+ (entry: { name: string }) => entry.name,
49
+ ),
50
+ ).toContain("renamed.txt");
51
+
52
+ await sandbox.dispose();
53
+
54
+ const healthAfterDispose = await vi.waitFor(
55
+ async () => {
56
+ return await sandbox.getHealth();
57
+ },
58
+ {
59
+ timeout: 120_000,
60
+ interval: 500,
61
+ },
62
+ );
63
+ expect(typeof healthAfterDispose.status).toBe("string");
64
+ expect(
65
+ decoder.decode(
66
+ await sandbox.readFsFile({ path: "/root/tmp/renamed.txt" }),
67
+ ),
68
+ ).toBe("sandbox actor driver test");
69
+
70
+ await sandbox.deleteFsEntry({ path: "/root/tmp", recursive: true });
71
+ expect(await sandbox.listFsEntries({ path: "/root" })).not.toEqual(
72
+ expect.arrayContaining([
73
+ expect.objectContaining({ name: "tmp" }),
74
+ ]),
75
+ );
76
+ }, 180_000);
77
+ });
78
+ }
@@ -81,10 +81,7 @@ export function runActorScheduleTests(driverTestConfig: DriverTestConfig) {
81
81
  // Wait for second task
82
82
  await waitFor(driverTestConfig, 500);
83
83
  const history2 = await scheduled.getTaskHistory();
84
- expect(history2.slice(0, 2)).toEqual([
85
- "first",
86
- "second",
87
- ]);
84
+ expect(history2.slice(0, 2)).toEqual(["first", "second"]);
88
85
 
89
86
  // Wait for third task
90
87
  await waitFor(driverTestConfig, 500);
@@ -124,6 +124,40 @@ export function runActorSleepTests(driverTestConfig: DriverTestConfig) {
124
124
  }
125
125
  });
126
126
 
127
+ test("waitUntil can broadcast before sleep disconnect", async (c) => {
128
+ const { client } = await setupDriverTest(c, driverTestConfig);
129
+
130
+ const sleepActor =
131
+ client.sleepWithWaitUntilMessage.getOrCreate().connect();
132
+ const receivedMessages: Array<{
133
+ sleepCount: number;
134
+ startCount: number;
135
+ }> = [];
136
+
137
+ sleepActor.once("sleeping", (message) => {
138
+ receivedMessages.push(message);
139
+ });
140
+
141
+ await sleepActor.triggerSleep();
142
+ await waitFor(driverTestConfig, 250);
143
+
144
+ expect(receivedMessages).toHaveLength(1);
145
+ expect(receivedMessages[0]?.startCount).toBe(1);
146
+
147
+ await sleepActor.dispose();
148
+
149
+ await waitFor(driverTestConfig, 250);
150
+
151
+ const sleepActor2 = client.sleepWithWaitUntilMessage.getOrCreate();
152
+ {
153
+ const { startCount, sleepCount, waitUntilMessageCount } =
154
+ await sleepActor2.getCounts();
155
+ expect(waitUntilMessageCount).toBe(1);
156
+ expect(sleepCount).toBe(1);
157
+ expect(startCount).toBe(2);
158
+ }
159
+ });
160
+
127
161
  test("rpc calls keep actor awake", async (c) => {
128
162
  const { client } = await setupDriverTest(c, driverTestConfig);
129
163
 
@@ -411,5 +445,82 @@ export function runActorSleepTests(driverTestConfig: DriverTestConfig) {
411
445
  expect(startCount).toBe(1); // Still the same instance
412
446
  }
413
447
  });
448
+
449
+ test("preventSleep blocks auto sleep until cleared", async (c) => {
450
+ const { client } = await setupDriverTest(c, driverTestConfig);
451
+
452
+ const sleepActor = client.sleepWithPreventSleep.getOrCreate();
453
+
454
+ {
455
+ const status = await sleepActor.getStatus();
456
+ expect(status.sleepCount).toBe(0);
457
+ expect(status.startCount).toBe(1);
458
+ expect(status.preventSleep).toBe(false);
459
+ expect(status.preventSleepOnWake).toBe(false);
460
+ }
461
+
462
+ expect(await sleepActor.setPreventSleep(true)).toBe(true);
463
+
464
+ await waitFor(driverTestConfig, SLEEP_TIMEOUT + 250);
465
+
466
+ {
467
+ const status = await sleepActor.getStatus();
468
+ expect(status.sleepCount).toBe(0);
469
+ expect(status.startCount).toBe(1);
470
+ expect(status.preventSleep).toBe(true);
471
+ }
472
+
473
+ expect(await sleepActor.setPreventSleep(false)).toBe(false);
474
+
475
+ await waitFor(driverTestConfig, SLEEP_TIMEOUT + 250);
476
+
477
+ {
478
+ const status = await sleepActor.getStatus();
479
+ expect(status.sleepCount).toBe(1);
480
+ expect(status.startCount).toBe(2);
481
+ expect(status.preventSleep).toBe(false);
482
+ }
483
+ });
484
+
485
+ test("preventSleep can be restored during onWake", async (c) => {
486
+ const { client } = await setupDriverTest(c, driverTestConfig);
487
+
488
+ const sleepActor = client.sleepWithPreventSleep.getOrCreate();
489
+
490
+ expect(await sleepActor.setPreventSleepOnWake(true)).toBe(true);
491
+
492
+ await sleepActor.triggerSleep();
493
+ await waitFor(driverTestConfig, 250);
494
+
495
+ {
496
+ const status = await sleepActor.getStatus();
497
+ expect(status.sleepCount).toBe(1);
498
+ expect(status.startCount).toBe(2);
499
+ expect(status.preventSleep).toBe(true);
500
+ expect(status.preventSleepOnWake).toBe(true);
501
+ }
502
+
503
+ await waitFor(driverTestConfig, SLEEP_TIMEOUT + 250);
504
+
505
+ {
506
+ const status = await sleepActor.getStatus();
507
+ expect(status.sleepCount).toBe(1);
508
+ expect(status.startCount).toBe(2);
509
+ expect(status.preventSleep).toBe(true);
510
+ }
511
+
512
+ expect(await sleepActor.setPreventSleepOnWake(false)).toBe(false);
513
+ expect(await sleepActor.setPreventSleep(false)).toBe(false);
514
+
515
+ await waitFor(driverTestConfig, SLEEP_TIMEOUT + 250);
516
+
517
+ {
518
+ const status = await sleepActor.getStatus();
519
+ expect(status.sleepCount).toBe(2);
520
+ expect(status.startCount).toBe(3);
521
+ expect(status.preventSleep).toBe(false);
522
+ expect(status.preventSleepOnWake).toBe(false);
523
+ }
524
+ });
414
525
  });
415
526
  }