void 0.25.0 → 0.26.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 (373) hide show
  1. package/AGENTS_TEMPLATE.md +1 -3
  2. package/README.md +19 -9
  3. package/dist/{account-cmd-DcR1ywt8.mjs → account-cmd-CfUXh_nU.mjs} +8 -7
  4. package/dist/{application-analysis-BVsVqc11.mjs → application-analysis-DKy02UY0.mjs} +21 -32
  5. package/dist/{application-routing-B7QEjqSR.mjs → application-routing-DQyUh_5S.mjs} +1 -1
  6. package/dist/{auth-7wuZ5ob8.mjs → auth-B5_tZLxT.mjs} +9 -9
  7. package/dist/{auth-CdgZ9uag.mjs → auth-BgX2qYSY.mjs} +1 -1
  8. package/dist/{auth-link-Z6E5DYvM.mjs → auth-link-D5RmKnzh.mjs} +5 -5
  9. package/dist/{auth-migrations-9vif1uj8.mjs → auth-migrations-BwHgeEsD.mjs} +8 -18
  10. package/dist/{auth-router-BdM4avI8.mjs → auth-router-Bap-pvbn.mjs} +6 -19
  11. package/dist/{better-auth-shared-BVkjZ3vM.d.mts → better-auth-shared-CPvWD3nG.d.mts} +0 -4
  12. package/dist/{better-auth-shared-hy6RPh9W.mjs → better-auth-shared-DPpj8zxc.mjs} +94 -16
  13. package/dist/{build-cmd-CEE7D-hM.mjs → build-cmd-B58c8iS8.mjs} +8 -7
  14. package/dist/{cache-TcZnBLtH.mjs → cache-Bo52trKF.mjs} +8 -8
  15. package/dist/{cancel-deploy-CYoZmcmR.mjs → cancel-deploy-BZNz3Q26.mjs} +6 -5
  16. package/dist/{cf-access-AHKBzmuu.mjs → cf-access-ngGqZpHZ.mjs} +11 -12
  17. package/dist/{cf-build-output-U8o1Gl6X.mjs → cf-build-output-DjvB_872.mjs} +62 -85
  18. package/dist/cf-build-output-H9a97vME.mjs +2 -0
  19. package/dist/cli/cli.mjs +48 -83
  20. package/dist/cli/cloudflare-operation-process.mjs +71 -77
  21. package/dist/cli/env-schema-probe.d.mts +1 -1
  22. package/dist/cli/env-schema-probe.mjs +5 -6
  23. package/dist/client-By4JjMw_.mjs +2 -0
  24. package/dist/{client-RsPo8wsP.mjs → client-C2Prx_Bi.mjs} +30 -8
  25. package/dist/{cloudflare-auth-Qdc7tw8F.mjs → cloudflare-auth-CuxfF6OA.mjs} +9 -17
  26. package/dist/{cloudflare-cmd-bhwCxAN6.mjs → cloudflare-cmd-lHqNlJGW.mjs} +6 -5
  27. package/dist/{cloudflare-config-Bktvwtpf.mjs → cloudflare-config-BmhBv3HV.mjs} +1 -1
  28. package/dist/{cloudflare-connect-CuhRgk3k.mjs → cloudflare-connect-2G3rL2rP.mjs} +4 -4
  29. package/dist/{cloudflare-operations-BhbK6yTq.mjs → cloudflare-operations-BlYLlowZ.mjs} +1 -1
  30. package/dist/{cloudflare-operations-CjaV4lZi.mjs → cloudflare-operations-CwI1bChl.mjs} +41 -70
  31. package/dist/{cloudflare-process-B-wekeR6.mjs → cloudflare-process-2-TfIEzB.mjs} +20 -22
  32. package/dist/{config-CyQ-wVd7.mjs → config-5r-YpMC-.mjs} +1 -1
  33. package/dist/{config-C_XRIPx2.mjs → config-B_ggY-IO.mjs} +3 -3
  34. package/dist/config-BtSFvXZx.mjs +2 -0
  35. package/dist/config-CLYAosnQ.mjs +78 -0
  36. package/dist/{config-BMHb8RCj.d.mts → config-CSa15FvD.d.mts} +1 -1
  37. package/dist/{config-Br_JZD6u.mjs → config-DiowPT80.mjs} +24 -30
  38. package/dist/config-entry.d.mts +1 -1
  39. package/dist/{config-write-B1f88wJA.mjs → config-write-AHGesphx.mjs} +8 -7
  40. package/dist/{connect-DCvUmPXY.mjs → connect-X0MUA1gk.mjs} +12 -11
  41. package/dist/{create-project-eAPgYq35.mjs → create-project-DxiyW6iX.mjs} +7 -7
  42. package/dist/{create-project-C734I-Mu.mjs → create-project-iwkbqiBU.mjs} +1 -1
  43. package/dist/{db-C07GEdKF.mjs → db-XnVMHzoV.mjs} +101 -133
  44. package/dist/{delete-pKMVsrpJ.mjs → delete-esYlMiSJ.mjs} +8 -8
  45. package/dist/{deploy-DfsAe-T0.mjs → deploy-BsEvnlJl.mjs} +2377 -2512
  46. package/dist/deploy-C1d-YTfp.mjs +2 -0
  47. package/dist/{dev-inbox-D64ZKUod.mjs → dev-inbox-CK-UuPob.mjs} +7 -16
  48. package/dist/{discover-BcPPiF1o.mjs → discover-CkCYv9T_.mjs} +1 -2
  49. package/dist/discover-EDUf6JJw.mjs +2 -0
  50. package/dist/{prompts-ZAuJlyCj.mjs → dist-Bx1z6Eva.mjs} +1 -1
  51. package/dist/{dist-AoCzRTJE.mjs → dist-Cegxq8gs.mjs} +8 -8
  52. package/dist/{prompts-6OSVA7DJ.mjs → dist-D3m88sjf.mjs} +10 -53
  53. package/dist/{domain-D3uA9ize.mjs → domain-CbbBWhWE.mjs} +29 -30
  54. package/dist/{dotenv-VQxupEUv.mjs → dotenv-BfU6eqFt.mjs} +20 -32
  55. package/dist/{drizzle-Beb2Am5S.mjs → drizzle-CF84FOVM.mjs} +16 -13
  56. package/dist/{email-z3o2cwjH.mjs → email-CpuT42g7.mjs} +24 -19
  57. package/dist/{email--tEtMoj_.mjs → email-d_Aux1vM.mjs} +1 -1
  58. package/dist/{entry-CF5wvH4w.mjs → entry-CMAkqBmU.mjs} +6 -6
  59. package/dist/{env-_v349JBd.mjs → env-BxocywBB.mjs} +25 -6
  60. package/dist/{env-D5liuQYR.mjs → env-DMA3cXZt.mjs} +1 -1
  61. package/dist/{env-public-BX_r8HR6.d.mts → env-public-DR7ZM6d-.d.mts} +1 -1
  62. package/dist/{env-raw-Cx8ElDdj.mjs → env-raw-jZpP5n47.mjs} +1 -2
  63. package/dist/{env-types-D5kds_OZ.mjs → env-types-CwXgeMgL.mjs} +1 -1
  64. package/dist/{env-validation-cZBvGWaP.mjs → env-validation-CrVNjsPm.mjs} +1 -1
  65. package/dist/{env-validation-vBSQ8gw5.mjs → env-validation-Dxdx_5wo.mjs} +17 -21
  66. package/dist/{env-3Q8-_2IH.mjs → env-w9jOyGZn.mjs} +10 -9
  67. package/dist/{fetch-_SeGZao9.d.mts → fetch-BPCYVi3H.d.mts} +20 -1
  68. package/dist/{fetch-BIZJh7vR.mjs → fetch-sAcwjzLO.mjs} +1 -1
  69. package/dist/{fetch-stream-IvCYKyQL.mjs → fetch-stream-PGgz4uGz.mjs} +26 -24
  70. package/dist/{fetch-stream-Bjf0hoZb.d.mts → fetch-stream-obvZ7fvO.d.mts} +1 -16
  71. package/dist/{gen-NjwoG9FK.mjs → gen-DtkQhvQg.mjs} +40 -57
  72. package/dist/gen-dA9hW7AV.mjs +2 -0
  73. package/dist/{github-cmd-DquUq-b1.mjs → github-cmd-D_FsOFxq.mjs} +65 -164
  74. package/dist/{handler-DghKr6dU.mjs → handler-BHAn2fZJ.mjs} +1 -0
  75. package/dist/{handler-CZ4nAylQ.d.mts → handler-CNAwjRcW.d.mts} +5 -12
  76. package/dist/{head-Do8P4puT.d.mts → head-C8K_iGe6.d.mts} +1 -1
  77. package/dist/{head-D_QRR5Yd.mjs → head-D2VF4ApL.mjs} +29 -51
  78. package/dist/{headers-2rKda9Y6.mjs → headers-DlfR78Nu.mjs} +3 -3
  79. package/dist/{help-DRZXC4fj.mjs → help-CVFBTmBx.mjs} +23 -38
  80. package/dist/help-DzKUrQvk.mjs +2 -0
  81. package/dist/{inbound-fRkqcXaC.mjs → inbound-PfQDLXc5.mjs} +23 -24
  82. package/dist/index.d.mts +19 -2
  83. package/dist/index.mjs +632 -532
  84. package/dist/{info-BmA3_IFZ.mjs → info-PYWwkWyt.mjs} +4 -4
  85. package/dist/{init-DT7yuuyl.mjs → init-Bw-fRKGp.mjs} +161 -197
  86. package/dist/{limits-Bq5LG8Id.d.mts → limits-CFsDKQvU.d.mts} +1 -10
  87. package/dist/{limits-Cjuk2VPm.mjs → limits-D0vD1M9A.mjs} +1 -22
  88. package/dist/{link-CXOlqh2F.mjs → link-DlPG8iX3.mjs} +10 -10
  89. package/dist/{list-eEWVJEPn.mjs → list-2GN7_ueV.mjs} +11 -9
  90. package/dist/{live-CB1y5IuC.mjs → live-CgQuTpqD.mjs} +15 -16
  91. package/dist/{live-Chw1eIMv.d.mts → live-Du8jXwOW.d.mts} +4 -2
  92. package/dist/{local-d1-Df4XpwhW.mjs → local-d1-ga5O_idV.mjs} +2 -2
  93. package/dist/{login-pWQHYVu2.mjs → login-D-Q4xw3Q.mjs} +7 -7
  94. package/dist/login-Dc-wuTDq.mjs +2 -0
  95. package/dist/{logs-DnxVX7TR.mjs → logs-rd8J-OFh.mjs} +28 -11
  96. package/dist/migrate-BHp07yJE.mjs +2 -0
  97. package/dist/{migrate-CV1on-yJ.mjs → migrate-NLsjBbuM.mjs} +34 -20
  98. package/dist/{mime-D5Nmdzf7.mjs → mime-DxCznlJq.mjs} +45 -95
  99. package/dist/{node-BkyRWRx8.mjs → node-DJicPvPj.mjs} +5 -5
  100. package/dist/{operator-args-CAVcmwUt.mjs → operator-args-BNsW5gfp.mjs} +10 -1
  101. package/dist/{operator-auth-CkmTE3rt.mjs → operator-auth-AzVLbrr3.mjs} +4 -8
  102. package/dist/{operator-client-LmwjxT6q.mjs → operator-client-BQtzyG-g.mjs} +3 -3
  103. package/dist/{operator-cmd-d-IEKgNk.mjs → operator-cmd-B6f6Cg9Z.mjs} +45 -14
  104. package/dist/operator-cmd-Cwn50lOV.mjs +2 -0
  105. package/dist/{output-BBsUwdyT.mjs → output-C50ag2r3.mjs} +44 -2
  106. package/dist/pages/client.d.mts +19 -51
  107. package/dist/pages/client.mjs +204 -225
  108. package/dist/pages/head-client.d.mts +1 -1
  109. package/dist/pages/head.d.mts +1 -1
  110. package/dist/pages/head.mjs +1 -1
  111. package/dist/pages/index.d.mts +2 -2
  112. package/dist/pages/index.mjs +6 -12
  113. package/dist/pages/islands-plugin.d.mts +1 -1
  114. package/dist/pages/islands-plugin.mjs +21 -25
  115. package/dist/pages/protocol.d.mts +2 -2
  116. package/dist/pages/protocol.mjs +2 -2
  117. package/dist/{plan-NPpwZ_kc.mjs → plan-BhLO2p4w.mjs} +4 -3
  118. package/dist/plan-CH2G51je.mjs +2 -0
  119. package/dist/{platform-args-Bzf8JPc2.mjs → platform-args-BoZkWQnJ.mjs} +4 -2
  120. package/dist/platform-args-DYgITk0D.mjs +2 -0
  121. package/dist/{platform-auth-config-0V0lA3pF.mjs → platform-auth-config-n603OANg.mjs} +45 -40
  122. package/dist/{platform-auth-protection-DFeJ-JkK.mjs → platform-auth-protection-zxDr0hWW.mjs} +9 -8
  123. package/dist/{platform-auth-recovery-ICy4muq6.mjs → platform-auth-recovery-tw9lgtgE.mjs} +8 -7
  124. package/dist/{platform-cmd-D7vSWMvV.mjs → platform-cmd-B8-bCb7t.mjs} +48 -23
  125. package/dist/{platform-cmd-BPySFOew.mjs → platform-cmd-C00YM14r.mjs} +1 -1
  126. package/dist/{platform-discovery-DDDUvnqp.mjs → platform-discovery-BC0HCKYt.mjs} +18 -4
  127. package/dist/{platform-domain-CUdY064e.mjs → platform-domain-p0kobLV8.mjs} +6 -5
  128. package/dist/{platform-lifecycle-Dm09JNkn.mjs → platform-lifecycle-D_QEY32D.mjs} +906 -389
  129. package/dist/{platform-lifecycle-BaUdTRPU.mjs → platform-lifecycle-vFqtNPPa.mjs} +1 -1
  130. package/dist/{platform-management-BSEc_ZeG.mjs → platform-management-BdYblvvE.mjs} +175 -32
  131. package/dist/{platform-management-Bp6aoH2C.mjs → platform-management-oi-SvI3f.mjs} +1 -1
  132. package/dist/{platform-plans-config-B0pOVQyW.mjs → platform-plans-config-CjiFv5J4.mjs} +5 -4
  133. package/dist/{platform-recovery-WOZ95Uze.mjs → platform-recovery-PvNS9Nl2.mjs} +3 -3
  134. package/dist/{platform-registry-KfNEF84O.mjs → platform-registry-P387v42A.mjs} +17 -10
  135. package/dist/platform-setup-DVe42Ws7.mjs +299 -0
  136. package/dist/{plugin-inference-CXWnn79A.mjs → plugin-inference-BlQbOL0P.mjs} +43 -42
  137. package/dist/prepare-DRUV-g3X.mjs +2 -0
  138. package/dist/{prepare-DnaKBi--.mjs → prepare-Do96654b.mjs} +8 -8
  139. package/dist/{prepare-39EvOhI6.mjs → prepare-Dq9hTIbo.mjs} +4 -3
  140. package/dist/{prerender-render-D9qbLs2f.mjs → prerender-render-Ct20jftc.mjs} +17 -3
  141. package/dist/prerender-render.mjs +1 -1
  142. package/dist/{project-IOjBU8R6.mjs → project-BiaPQ7ur.mjs} +1 -1
  143. package/dist/{project-BkbfDs0V.mjs → project-DQstYTxO.mjs} +1 -1
  144. package/dist/{project-cmd-Bs5A392E.mjs → project-cmd-ti8_yTcA.mjs} +19 -19
  145. package/dist/{project-team-ohAWWaew.mjs → project-team-CDPE1Tsg.mjs} +15 -18
  146. package/dist/{project-token-CP01Jna6.mjs → project-token-CkZ1cN0Z.mjs} +14 -17
  147. package/dist/{project-tsconfig-B8GeM0RM.mjs → project-tsconfig-CVJhNMxs.mjs} +2 -1
  148. package/dist/{project-zero-trust-BzkVgx35.mjs → project-zero-trust-DdjLR61k.mjs} +12 -9
  149. package/dist/{protocol-CjF_iI9X.d.mts → protocol-BPZaNqBo.d.mts} +4 -2
  150. package/dist/{protocol-U7bfjHmA.mjs → protocol-CfaUwNs8.mjs} +46 -49
  151. package/dist/{providers-CJlNS3kT.mjs → providers-BXuhmuub.mjs} +1 -12
  152. package/dist/{provision-Btj1jppf.mjs → provision-BfaLiWbj.mjs} +51 -42
  153. package/dist/{provision-BEv0k-qz.mjs → provision-Wu9ZBk9L.mjs} +2 -3
  154. package/dist/{requests-B3PBuGlX.mjs → requests-DFAqyYy8.mjs} +5 -5
  155. package/dist/resolve-project-BIeYs9Cw.mjs +2 -0
  156. package/dist/{resolve-project-BG5ORGID.mjs → resolve-project-CP8rZs_p.mjs} +6 -1
  157. package/dist/{rollback-DDub9GsO.mjs → rollback-BKYXBduI.mjs} +30 -37
  158. package/dist/{route-types-Clm4WD0B.mjs → route-types-CbtsIeFn.mjs} +1 -1
  159. package/dist/route-url-BgPja1GS.d.mts +5 -0
  160. package/dist/route-url-BjGv_KKY.mjs +28 -0
  161. package/dist/runner-9wjsSZx-.mjs +2 -0
  162. package/dist/{runner-Ol0TNjk6.mjs → runner-DMBKSrRk.mjs} +2 -2
  163. package/dist/{runner-mysql-DmWchSWJ.mjs → runner-mysql-CEzKtmFb.mjs} +8 -8
  164. package/dist/{runner-mysql-CEG5JozK.mjs → runner-mysql-CkFqZ6CE.mjs} +1 -1
  165. package/dist/{runner-pg-Bh4AgZdj.mjs → runner-pg-BGYRFdRp.mjs} +1 -1
  166. package/dist/runtime/ai.d.mts +11 -12
  167. package/dist/runtime/ai.mjs +47 -113
  168. package/dist/runtime/better-auth-mysql.d.mts +1 -1
  169. package/dist/runtime/better-auth-mysql.mjs +4 -9
  170. package/dist/runtime/better-auth-pg.d.mts +1 -1
  171. package/dist/runtime/better-auth-pg.mjs +5 -10
  172. package/dist/runtime/better-auth.d.mts +1 -1
  173. package/dist/runtime/better-auth.mjs +3 -3
  174. package/dist/runtime/client-react.d.mts +2 -3
  175. package/dist/runtime/client-react.mjs +2 -2
  176. package/dist/runtime/client-solid.d.mts +2 -3
  177. package/dist/runtime/client-solid.mjs +2 -2
  178. package/dist/runtime/client-svelte.d.mts +2 -3
  179. package/dist/runtime/client-svelte.mjs +2 -2
  180. package/dist/runtime/client-vue.d.mts +2 -3
  181. package/dist/runtime/client-vue.mjs +2 -2
  182. package/dist/runtime/client.d.mts +2 -3
  183. package/dist/runtime/client.mjs +2 -2
  184. package/dist/runtime/db.mjs +1 -1
  185. package/dist/runtime/durable.mjs +3 -10
  186. package/dist/runtime/email/testing.mjs +5 -5
  187. package/dist/runtime/email.d.mts +2 -1
  188. package/dist/runtime/email.mjs +11 -27
  189. package/dist/runtime/env-public.d.mts +1 -1
  190. package/dist/runtime/env-public.mjs +15 -20
  191. package/dist/runtime/env.mjs +1 -1
  192. package/dist/runtime/fetch-stream.d.mts +2 -2
  193. package/dist/runtime/fetch-stream.mjs +1 -1
  194. package/dist/runtime/fetch.d.mts +2 -3
  195. package/dist/runtime/fetch.mjs +1 -1
  196. package/dist/runtime/handler.d.mts +1 -1
  197. package/dist/runtime/handler.mjs +2 -2
  198. package/dist/runtime/isr.mjs +1 -1
  199. package/dist/runtime/kv.mjs +10 -11
  200. package/dist/runtime/limits.d.mts +2 -2
  201. package/dist/runtime/limits.mjs +2 -2
  202. package/dist/runtime/live-client.d.mts +1 -1
  203. package/dist/runtime/live-client.mjs +12 -22
  204. package/dist/runtime/live-server.mjs +27 -35
  205. package/dist/runtime/live.d.mts +2 -2
  206. package/dist/runtime/live.mjs +2 -2
  207. package/dist/runtime/migration-handler.mjs +35 -86
  208. package/dist/runtime/queues.mjs +1 -1
  209. package/dist/runtime/remote/binding-handler.d.mts +2 -2
  210. package/dist/runtime/remote/binding-handler.mjs +8 -9
  211. package/dist/runtime/remote/index.mjs +27 -77
  212. package/dist/runtime/route-url.d.mts +2 -4
  213. package/dist/runtime/route-url.mjs +1 -1
  214. package/dist/runtime/routing.d.mts +1 -1
  215. package/dist/runtime/routing.mjs +15 -26
  216. package/dist/runtime/sandbox.d.mts +1 -1
  217. package/dist/runtime/sandbox.mjs +14 -24
  218. package/dist/runtime/sse.mjs +1 -1
  219. package/dist/runtime/storage.mjs +1 -1
  220. package/dist/runtime/validator.d.mts +1 -1
  221. package/dist/runtime/ws-server.d.mts +2 -2
  222. package/dist/runtime/ws-server.mjs +30 -61
  223. package/dist/runtime/ws.d.mts +1 -1
  224. package/dist/runtime/ws.mjs +1 -1
  225. package/dist/{sandbox-XZAqzFlG.d.mts → sandbox-C5LFoJMf.d.mts} +7 -7
  226. package/dist/{scan-C7okrLyM.mjs → scan-C3uDzz6J.mjs} +21 -18
  227. package/dist/{secret-3c72lY1U.mjs → secret-BAt2KMmO.mjs} +15 -15
  228. package/dist/{skills-BPQUGClu.mjs → skills-BgVMvQdy.mjs} +2 -2
  229. package/dist/{sse-CQNaDFFV.mjs → sse-CMvCgjNk.mjs} +1 -1
  230. package/dist/{subcommand-prompt-Dhom39bd.mjs → subcommand-prompt-BSlnD1fI.mjs} +2 -2
  231. package/dist/sveltekit.d.mts +0 -2
  232. package/dist/terminal-log-text-D9ACPOuG.mjs +32 -0
  233. package/dist/validate-BJr9LfXy.mjs +2 -0
  234. package/dist/{validate-ctOrgiS3.mjs → validate-C9qJArv7.mjs} +9 -28
  235. package/dist/{defer-YsYDUoii.mjs → validation-error-Dg9Recn1.mjs} +11 -11
  236. package/dist/{wrangler-DhUerFkW.mjs → wrangler-D9KTuqnv.mjs} +89 -194
  237. package/dist/{ws-CL1w7GXU.d.mts → ws-CChrrAU-.d.mts} +1 -1
  238. package/dist/{yarn-pnp-BV4AzNul.mjs → yarn-pnp-CUX_iTPA.mjs} +19 -27
  239. package/{skills/void/docs → docs}/guide/ai.md +69 -64
  240. package/{skills/void/docs → docs}/guide/app-types.md +1 -1
  241. package/{skills/void/docs → docs}/guide/auth.md +37 -1
  242. package/{skills/void/docs → docs}/guide/database/postgresql.md +2 -2
  243. package/{skills/void/docs → docs}/guide/database.md +23 -8
  244. package/{skills/void/docs → docs}/guide/edge/revalidation.md +1 -1
  245. package/{skills/void/docs → docs}/guide/edge/rewrites.md +2 -4
  246. package/{skills/void/docs → docs}/guide/email/receiving.md +2 -2
  247. package/{skills/void/docs → docs}/guide/email/sending.md +0 -2
  248. package/{skills/void/docs → docs}/guide/env-vars.md +4 -0
  249. package/{skills/void/docs → docs}/guide/jobs.md +2 -2
  250. package/{skills/void/docs → docs}/guide/live.md +12 -5
  251. package/{skills/void/docs → docs}/guide/pages-routing/actions-and-forms.md +21 -9
  252. package/{skills/void/docs → docs}/guide/pages-routing/loaders.md +7 -3
  253. package/{skills/void/docs → docs}/guide/pages-routing/markdown.md +15 -23
  254. package/{skills/void/docs → docs}/guide/pages-routing/overview.md +6 -4
  255. package/{skills/void/docs → docs}/guide/platform/administration/access.md +2 -10
  256. package/{skills/void/docs → docs}/guide/platform/administration/operations.md +3 -12
  257. package/{skills/void/docs → docs}/guide/platform/administration/projects.md +1 -1
  258. package/{skills/void/docs → docs}/guide/platform/development/local.md +4 -2
  259. package/{skills/void/docs → docs}/guide/platform/development/runtime.md +1 -1
  260. package/{skills/void/docs → docs}/guide/platform/development/schema-ci.md +1 -1
  261. package/{skills/void/docs → docs}/guide/platform/installation/credentials.md +2 -2
  262. package/{skills/void/docs → docs}/guide/platform/installation/domains.md +3 -1
  263. package/{skills/void/docs → docs}/guide/platform/installation/first-deployment.md +8 -2
  264. package/{skills/void/docs → docs}/guide/platform/installation/maintenance.md +7 -1
  265. package/{skills/void/docs → docs}/guide/platform/installation/setup.md +1 -1
  266. package/docs/guide/platform/installation/uninstall.md +102 -0
  267. package/{skills/void/docs → docs}/guide/project-collaboration.md +6 -2
  268. package/{skills/void/docs → docs}/guide/queues.md +0 -2
  269. package/{skills/void/docs → docs}/guide/remote-dev.md +5 -5
  270. package/{skills/void/docs → docs}/guide/sandboxes.md +41 -22
  271. package/{skills/void/docs → docs}/guide/sse.md +0 -2
  272. package/{skills/void/docs → docs}/guide/storage.md +7 -2
  273. package/{skills/void/docs → docs}/guide/websockets.md +4 -0
  274. package/docs/integrations/agents.md +37 -0
  275. package/{skills/void/docs → docs}/integrations/frameworks/astro.md +3 -3
  276. package/{skills/void/docs → docs}/integrations/frameworks/nuxt.md +6 -2
  277. package/{skills/void/docs → docs}/integrations/hono.md +15 -7
  278. package/{skills/void/docs → docs}/integrations/nodejs-bun-deno.md +1 -0
  279. package/{skills/void/docs → docs}/reference/api/auth.md +1 -1
  280. package/{skills/void/docs → docs}/reference/api/handlers.md +4 -2
  281. package/{skills/void/docs → docs}/reference/api/pages.md +4 -0
  282. package/{skills/void/docs → docs}/reference/api/resources.md +11 -14
  283. package/{skills/void/docs → docs}/reference/api.md +35 -34
  284. package/{skills/void/docs → docs}/reference/cli/auth.md +3 -6
  285. package/{skills/void/docs → docs}/reference/cli/database.md +3 -4
  286. package/{skills/void/docs → docs}/reference/cli/generate.md +1 -1
  287. package/{skills/void/docs → docs}/reference/cli/github.md +3 -12
  288. package/{skills/void/docs → docs}/reference/cli/platform-config.md +3 -3
  289. package/{skills/void/docs → docs}/reference/cli/platform-email.md +2 -3
  290. package/{skills/void/docs → docs}/reference/cli/platform-installation.md +15 -13
  291. package/{skills/void/docs → docs}/reference/cli/platform-operations.md +3 -0
  292. package/{skills/void/docs → docs}/reference/cli/platform-users.md +2 -2
  293. package/{skills/void/docs → docs}/reference/cli/platform.md +4 -2
  294. package/{skills/void/docs → docs}/reference/cli/project.md +5 -4
  295. package/{skills/void/docs → docs}/reference/cli/secrets.md +3 -3
  296. package/{skills/void/docs → docs}/reference/cli/setup.md +9 -11
  297. package/{skills/void/docs → docs}/reference/cli.md +2 -2
  298. package/{skills/void/docs → docs}/reference/config.md +13 -13
  299. package/{skills/void/docs → docs}/reference/resource-inference.md +2 -16
  300. package/package.json +34 -30
  301. package/schema.json +1 -1
  302. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +4 -1
  303. package/skills/void/SKILL.md +11 -5
  304. package/dist/cf-build-output-ChY6-XWP.mjs +0 -2
  305. package/dist/client-B4Me-9HE.mjs +0 -2
  306. package/dist/config-0acf1oys.mjs +0 -2
  307. package/dist/config-D8MOgiQV.mjs +0 -32
  308. package/dist/deploy-BDu1vhSH.mjs +0 -2
  309. package/dist/discover-AMCBXivQ.mjs +0 -2
  310. package/dist/fetch-error-Sp1R4mZv.d.mts +0 -20
  311. package/dist/gen-ById9r2j.mjs +0 -2
  312. package/dist/help-DPGBwomV.mjs +0 -2
  313. package/dist/login-C98-sw79.mjs +0 -2
  314. package/dist/migrate-CEu2X5DB.mjs +0 -2
  315. package/dist/plan-D1Q5rf-r.mjs +0 -2
  316. package/dist/platform-args-Cq6EjQro.mjs +0 -2
  317. package/dist/prepare-CnjcTV2s.mjs +0 -2
  318. package/dist/resolve-project-DtbidV4y.mjs +0 -2
  319. package/dist/route-url-CG7U-cRN.mjs +0 -15
  320. package/dist/runner-CXA9Fh8h.mjs +0 -2
  321. package/dist/validate-Dq_L3s0S.mjs +0 -2
  322. package/skills/void/docs/guide/platform/installation/uninstall.md +0 -69
  323. package/skills/void/docs/integrations/agents.md +0 -26
  324. package/dist/{runner-pg-D4OPlil-.mjs → runner-pg-DV8p_zjA.mjs} +4 -4
  325. package/{skills/void/docs → docs}/guide/database/d1.md +2 -2
  326. package/{skills/void/docs → docs}/guide/database/mysql.md +0 -0
  327. package/{skills/void/docs → docs}/guide/deployment.md +0 -0
  328. package/{skills/void/docs → docs}/guide/durable-state.md +0 -0
  329. package/{skills/void/docs → docs}/guide/edge/headers.md +0 -0
  330. package/{skills/void/docs → docs}/guide/edge/prerendering.md +0 -0
  331. package/{skills/void/docs → docs}/guide/edge/redirects.md +0 -0
  332. package/{skills/void/docs → docs}/guide/edge/static-assets.md +0 -0
  333. package/{skills/void/docs → docs}/guide/email/domains.md +0 -0
  334. package/{skills/void/docs → docs}/guide/email.md +0 -0
  335. package/{skills/void/docs → docs}/guide/index.md +0 -0
  336. package/{skills/void/docs → docs}/guide/kv.md +0 -0
  337. package/{skills/void/docs → docs}/guide/pages-routing/head.md +0 -0
  338. package/{skills/void/docs → docs}/guide/pages-routing/islands.md +2 -2
  339. package/{skills/void/docs → docs}/guide/pages-routing/layouts.md +0 -0
  340. package/{skills/void/docs → docs}/guide/pages-routing/view-transitions.md +0 -0
  341. package/{skills/void/docs → docs}/guide/platform/administration/email.md +0 -0
  342. package/{skills/void/docs → docs}/guide/platform/administration/plans.md +0 -0
  343. package/{skills/void/docs → docs}/guide/platform/administration/zero-trust.md +0 -0
  344. package/{skills/void/docs → docs}/guide/platform/installation/ci.md +0 -0
  345. package/{skills/void/docs → docs}/guide/platform/installation/prerequisites.md +0 -0
  346. package/{skills/void/docs → docs}/guide/platform-administration.md +0 -0
  347. package/{skills/void/docs → docs}/guide/platform-development.md +0 -0
  348. package/{skills/void/docs → docs}/guide/quickstart.md +0 -0
  349. package/{skills/void/docs → docs}/guide/self-hosted-platform.md +0 -0
  350. package/{skills/void/docs → docs}/guide/server-routing.md +3 -3
  351. package/{skills/void/docs → docs}/guide/ssg.md +0 -0
  352. package/{skills/void/docs → docs}/guide/ssr.md +0 -0
  353. package/{skills/void/docs → docs}/guide/type-safety.md +0 -0
  354. package/{skills/void/docs → docs}/guide/typed-fetch.md +0 -0
  355. package/{skills/void/docs → docs}/index.md +0 -0
  356. package/{skills/void/docs → docs}/integrations/cloudflare.md +0 -0
  357. package/{skills/void/docs → docs}/integrations/frameworks/analog.md +3 -3
  358. package/{skills/void/docs → docs}/integrations/frameworks/overview.md +0 -0
  359. package/{skills/void/docs → docs}/integrations/frameworks/react-router.md +3 -3
  360. package/{skills/void/docs → docs}/integrations/frameworks/sveltekit.md +1 -1
  361. package/{skills/void/docs → docs}/integrations/frameworks/tanstack-start.md +2 -2
  362. package/{skills/void/docs → docs}/reference/api/client.md +0 -0
  363. package/{skills/void/docs → docs}/reference/api/database.md +2 -2
  364. /package/{skills/void/docs → docs}/reference/api/durable.md +0 -0
  365. /package/{skills/void/docs → docs}/reference/api/env.md +0 -0
  366. /package/{skills/void/docs → docs}/reference/api/plugin.md +0 -0
  367. /package/{skills/void/docs → docs}/reference/api/rewrites.md +0 -0
  368. /package/{skills/void/docs → docs}/reference/api/types.md +0 -0
  369. /package/{skills/void/docs → docs}/reference/cli/deploy.md +0 -0
  370. /package/{skills/void/docs → docs}/reference/cli/domains.md +0 -0
  371. /package/{skills/void/docs → docs}/reference/cli/email.md +0 -0
  372. /package/{skills/void/docs → docs}/reference/cli/platform-zero-trust.md +0 -0
  373. /package/{skills/void/docs → docs}/reference/structure.md +0 -0
@@ -6,6 +6,8 @@ outline: deep
6
6
 
7
7
  Deploy-on-GitHub works from **any** Void login — Google, GitHub, or other SSO. The first time you connect GitHub, Void links your GitHub identity to your current account (a one-time step, independent of how you logged in); it never creates a second account.
8
8
 
9
+ Project-scoped `github` and `build` commands resolve the project in the same order as deploy: the `[project]` argument or `--project`, then `VOID_PROJECT`, then the linked project (`.void/project.json`).
10
+
9
11
  ## `void github link` {#void-github-link}
10
12
 
11
13
  ```
@@ -78,8 +80,6 @@ void github connect my-app \
78
80
  --branch main
79
81
  ```
80
82
 
81
- **Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
82
-
83
83
  You can connect only repositories your GitHub account can access.
84
84
 
85
85
  A project has one GitHub connection. Running `void github connect` on a project that is already connected fails. To connect a different repository, run `void github disconnect` first.
@@ -107,8 +107,6 @@ The CLI prompts for new settings using the current values as defaults. In CI, pa
107
107
  void github update my-app --executor github_actions
108
108
  ```
109
109
 
110
- **Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
111
-
112
110
  ## `void github status` {#void-github-status}
113
111
 
114
112
  ```
@@ -127,15 +125,13 @@ Show the connected repository, branch, executor, and workflow. Container builds
127
125
  void github status my-app
128
126
  ```
129
127
 
130
- **Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
131
-
132
128
  ## `void github disconnect` {#void-github-disconnect}
133
129
 
134
130
  ```
135
131
  void github disconnect [project]
136
132
  ```
137
133
 
138
- Disconnect a project from its GitHub repository, stopping automatic deploys. Any in-flight builds for the project are cancelled (their deploy tokens are revoked) before the connection is removed. If the project has no connection, it reports that and exits successfully. To point a project at a different repository, disconnect first, then run `void github connect`.
134
+ Disconnect a project from its GitHub repository, stopping automatic deploys. Any in-flight builds for the project are cancelled before the connection is removed. If the project has no connection, it reports that and exits successfully. To point a project at a different repository, disconnect first, then run `void github connect`.
139
135
 
140
136
  You are asked to confirm before anything is removed. Pass `--yes` to skip the prompt; `--yes` is **required** in a non-interactive shell (CI), where there is no prompt to answer.
141
137
 
@@ -150,8 +146,6 @@ You are asked to confirm before anything is removed. Pass `--yes` to skip the pr
150
146
  void github disconnect my-app --yes
151
147
  ```
152
148
 
153
- **Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
154
-
155
149
  ## Build {#build}
156
150
 
157
151
  Inspect Deploy-on-GitHub builds.
@@ -171,9 +165,6 @@ Stream, tail, or download the build logs for a **container** build. With no
171
165
  | `--output <file>`, `-o` | Write logs to a file instead of stdout (appends while following). | stdout |
172
166
  | `--project <slug>`, `-p` | Target project. | linked |
173
167
 
174
- **Project resolution** follows the same order as deploy: positional / `--project`,
175
- `VOID_PROJECT`, linked project (`.void/project.json`).
176
-
177
168
  Builds run on **GitHub Actions** keep their logs on GitHub — the command prints
178
169
  the Actions run URL instead of streaming. Only the last 10,000 log lines of a
179
170
  container build are retained.
@@ -20,7 +20,7 @@ void platform config plans default <plan-id>
20
20
  void platform config plans sync
21
21
  ```
22
22
 
23
- Use `--plan` to preview changes and affected accounts; scripted mutations require `--yes`. Every command supports `--connection <registered-id-or-url>` and `--json`. `show` reports the effective limits, default, assignments, and pending account updates. `reset` restores a built-in plan's original limits and build instance size. Archived plans keep their existing accounts but cannot receive new assignments; change the default before archiving it. `remove` requires a replacement for a plan that has accounts or is the default. Changing the default affects only new accounts.
23
+ Use `--plan` to preview changes and affected accounts; scripted mutations require `--yes`. Every command supports `--connection <slug-or-url>` and `--json`. `show` reports the effective limits, default, assignments, and pending account updates. `reset` restores a built-in plan's original limits and build instance size. Archived plans keep their existing accounts but cannot receive new assignments; change the default before archiving it. `remove` requires a replacement for a plan that has accounts or is the default. Changing the default affects only new accounts.
24
24
 
25
25
  For `add` and `set`, `--file` reads a JSON object with optional `name`, `limits`, `buildInstanceType`, and boolean `allowShortSlugs`. `limits` is a partial object of nonnegative whole numbers; `0` means unlimited by the plan. Build timeouts remain capped at the platform maximum of 60 minutes; `0` uses that maximum. Omitted settings keep their current values or the copied plan's values. `buildInstanceType` is `standard-3` or `standard-4`. `allowShortSlugs` permits future assignments of project slugs of five characters or fewer; existing URLs remain available. Storage quotas are not editable. See [Plans and Limits](../../guide/platform/administration/plans.md) for supported limits and examples.
26
26
 
@@ -60,7 +60,7 @@ alternative; the last method cannot be disabled. Disabling revokes human session
60
60
  created through that method, including operator sessions. Scoped deployment tokens
61
61
  remain valid; a human login token used as `VOID_TOKEN` is still revoked.
62
62
 
63
- Commands accept `--connection <registered-id-or-url>` and `--json`. Changes accept
63
+ Commands accept `--connection <slug-or-url>` and `--json`. Changes accept
64
64
  `--plan` or `--yes`. For scripted configuration, use `--file <path>` for the
65
65
  nonsecret fields and `--client-secret-env <name>` for the environment variable
66
66
  containing the secret. Omit the secret when editing to retain its saved value.
@@ -89,4 +89,4 @@ when using `--yes`. Recovery requires Cloudflare management/database authority,
89
89
  original recovery keys, and a successful browser provider test. Use
90
90
  `--client-secret-env <name>` for new or rotated credentials.
91
91
 
92
- For automation, supply `VOID_OPERATOR_TOKEN` with an explicit `VOID_API_URL` or `--connection`. Operator tokens are stored separately from application deployment credentials. The API checks your current administrator access on every request. See [Using Scripts](../../guide/platform/administration/operations.md#using-scripts) for an example.
92
+ For automation, see [operator authentication](./platform.md#operator-authentication).
@@ -42,9 +42,8 @@ has ended and the operation is at least 24 hours old, inspect the exact resource
42
42
  named by the preview and attest whether its write was `applied` or `not-applied`.
43
43
  Applied writes continue at the next step; not-applied writes retry the same
44
44
  persisted intent. The running platform version must match that intent, so restore
45
- the matching version before recovering an operation created by older code. The
46
- preview pins the step, attempt, connection and route generations, resource
47
- identity, and digest used by the apply request. Time alone never retries a write.
45
+ the matching version before recovering an operation created by older code. Time
46
+ alone never retries a write.
48
47
 
49
48
  `shared-recipients` discovers shared inbound addresses, provider rule names and
50
49
  IDs, and interrupted creation intents, including projects awaiting deletion.
@@ -101,29 +101,29 @@ void platform rollback [id] --runtime <earlier-path> [--from-runtime <current-pa
101
101
  void platform repair [id] [--runtime <path>] [--dashboard-url <origin>] [--plan] [--yes]
102
102
  void platform disable [id] [--plan] [--yes]
103
103
  void platform enable [id] [--runtime <path>] [--plan] [--yes]
104
- void platform uninstall [id] [--plan] [--purge-data] [--keep-zone] [--yes]
104
+ void platform uninstall [id] [--plan] [--purge-data | --purge-resources] [--keep-zone] [--yes]
105
105
  ```
106
106
 
107
107
  `discover --installation` limits recovery and endpoint verification to one installation in a shared Cloudflare account.
108
108
 
109
- Omit `id` when only one installation is configured, or choose from the interactive picker. Non-interactive commands need an ID when several installations exist. Commands that make changes also require `--yes`; `--plan` only previews changes.
109
+ Use the installation slug shown beside its name in `void platform list`. Installation IDs and saved connection IDs also work. Lifecycle commands require local installation records; use `discover` to restore them on another machine. Omit `id` when only one installation is configured, or choose from the interactive picker. Non-interactive commands need a slug or ID when several installations exist. Commands that make changes also require `--yes`; `--plan` only previews changes.
110
110
 
111
111
  To add or explicitly change a separately deployed dashboard after installation,
112
112
  use `repair --dashboard-url <origin>` or `upgrade --dashboard-url <origin>`.
113
113
  Preview with `--plan` first. Existing Access protection must cover the configured
114
114
  dashboard origin before maintenance can proceed. See [Optional Dashboard](../../guide/platform/installation/domains.md#optional-dashboard).
115
115
 
116
- After discovery on another machine, set `VOID_PLATFORM_DATABASE_URL`. An upgrade that preserves every deployed Worker also preserves its secrets. For an email-enabled installation without its encrypted recovery file, restore `VOID_PLATFORM_EMAIL_SIGNING_SECRET`; recreating only the email gateway needs that key and does not need the Cloudflare runtime token or JWT signing key. Recreating the API or proxy also requires the email key when email is enabled, in addition to their normal secrets. Recreating the API requires its original runtime-token, GitHub, R2, JWT, and project-encryption values; recreating the proxy requires the runtime token and JWT signing key.
116
+ After discovery on another machine, set `VOID_PLATFORM_DATABASE_URL`. See [Manage an installation from another machine](../../guide/platform/installation/maintenance.md#manage-an-installation-from-another-machine) for the secrets needed to recreate a missing Worker.
117
117
 
118
- | Command | Behavior |
119
- | ----------- | --------------------------------------------------------------------------------------------- |
120
- | `discover` | Verifies remote ownership and restores local installation records without downloading secrets |
121
- | `repair` | Recreates missing resources owned by the installer |
122
- | `upgrade` | Deploys the selected runtime and supported pending migrations |
123
- | `rollback` | Restores a declared-compatible earlier runtime without reversing PostgreSQL migrations |
124
- | `disable` | Blocks platform traffic through routing storage without removing data |
125
- | `enable` | Restores traffic after checking the platform |
126
- | `uninstall` | Blocks traffic and removes eligible resources, retaining data by default |
118
+ | Command | Behavior |
119
+ | ----------- | ----------------------------------------------------------------------------------------------------------- |
120
+ | `discover` | Verifies remote ownership and restores local installation records without downloading secrets |
121
+ | `repair` | Recreates missing resources owned by the installer |
122
+ | `upgrade` | Deploys the selected runtime and supported pending migrations |
123
+ | `rollback` | Restores a declared-compatible earlier runtime without reversing PostgreSQL migrations |
124
+ | `disable` | Blocks app traffic and the platform API without removing data; only admin status and sign-in stay available |
125
+ | `enable` | Redeploys and verifies the platform Workers, then restores traffic |
126
+ | `uninstall` | Blocks traffic and removes eligible resources, retaining data by default |
127
127
 
128
128
  Repair and upgrade preserve disabled state. New, resumed, and previously disabled installations block user traffic until all target Workers pass verification; the installer's health probes can still run. Routes and custom domains remain attached.
129
129
 
@@ -137,6 +137,8 @@ An upgrade completes after the new Workers pass health checks. If rollout fails,
137
137
 
138
138
  `platform rollback` restores a compatible earlier runtime without reversing database migrations. Pass its files with `--runtime`; if the installed version is custom, also supply that version with `--from-runtime`. Void refuses incompatible targets.
139
139
 
140
- Uninstall verifies remote ownership before removing anything. Data resources are retained unless you pass `--purge-data`. Workers, the Queues they use, R2, AI Gateway, DNS records, routes, custom domains, adopted resources, external PostgreSQL, and zones are always retained for manual review.
140
+ Uninstall verifies remote ownership before removing anything. Data resources are retained unless you pass `--purge-data`. Workers, the Queues they use, R2, AI Gateway, DNS records, routes, custom domains, adopted resources, external PostgreSQL, and zones are retained for manual review.
141
+
142
+ `--purge-resources` includes `--purge-data` and also deletes every other resource the installation created, including Workers, Queues, R2, AI Gateway, the platform DNS record, routes, custom domains, and installer-created Access resources. It removes only the Email Routing rules that send mail to the platform email gateway, and keeps zones, adopted resources, external PostgreSQL, other Email Routing settings, and API tokens. A route, custom domain, DNS record, or Access resource that no longer matches the installation's record is kept and listed. It refuses before any change while projects remain or resource reads are denied. Use the Edit permissions listed by `--plan`; read checks cannot verify them, so a denied deletion can stop uninstall after changes have begun. Rerun the same command to continue after an interruption, or after a plain or `--purge-data` uninstall stopped.
141
143
 
142
144
  See [Disable and Uninstall](../../guide/platform/installation/uninstall.md#remove-retained-resources) for the full removal policy and the cleanup order.
@@ -54,6 +54,7 @@ void platform system asset-migrations [--page <n>] [--limit <n>]
54
54
  void platform system events [--page <n>] [--limit <n>]
55
55
  void platform system backfill-queue-tokens
56
56
  void platform system sandbox-drain [--cursor <opaque-cursor>]
57
+ void platform system rotate-proxy-tokens [--project <id> | --all]
57
58
  ```
58
59
 
59
60
  `overview` shows platform totals and recent activity. `health` checks the configured services and database, and exits with a nonzero status if a check fails. `cli-versions` reports the CLI versions used by deployments.
@@ -64,6 +65,8 @@ void platform system sandbox-drain [--cursor <opaque-cursor>]
64
65
 
65
66
  `sandbox-drain` removes legacy tenant-owned Sandbox resources. Use `--plan` to preview and `--yes` to apply, then pass `nextCursor` as `--cursor` to continue. Application traffic stays paused during cleanup.
66
67
 
68
+ `rotate-proxy-tokens` gives projects new platform credentials on their live Worker and the Workers kept for rollback, without a redeploy. Workers kept for rollback whose author can no longer deploy keep the old credentials. Use `--project <id>` for one project or `--all` for every project, with `--plan` to preview and `--yes` to apply. `--plan` alone shows every rotation that is still running. Each run does a bounded batch and the platform finishes the rest in the background; a rotation takes about 6 minutes per project, longer while a deploy is running. Use `--plan` to check progress until nothing is pending or failed. Running `--yes` again with `--project` or `--all` while a rotation is still running starts one more rotation for that project. When a rotation is finished, the previous credentials no longer work. Each rotation starts a new version of the project's live Worker, so WebSocket connections reconnect once.
69
+
67
70
  Use the [platform lifecycle commands](./platform-installation.md#lifecycle-commands) to maintain your installation's Workers.
68
71
 
69
72
  ## Hosted Workers {#operator-workers}
@@ -16,13 +16,13 @@ void platform user show <id>
16
16
  Use the same ID to change a plan, suspend or restore the account, or delete it:
17
17
 
18
18
  ```sh
19
- void platform user plan <id> <free|solo|pro|sponsored|custom>
19
+ void platform user plan <id> <plan-id>
20
20
  void platform user suspend <id> [--reason <text>]
21
21
  void platform user restore <id>
22
22
  void platform user delete <id>
23
23
  ```
24
24
 
25
- Suspending a user blocks their applications. Deleting a user also deletes their project resources. A plan change updates resource limits while preserving any administrator suspension.
25
+ Suspending a user blocks their applications, including scheduled jobs and queue consumers. While the account is suspended, each queue message is retried about once an hour, and each retry uses one of its queue's retries. Messages that run out of retries are dropped: after about 3 hours with the default of 3 retries, and at once for a queue with `maxRetries: 0`. Restore an account suspended by mistake promptly; queue delivery resumes within about an hour. Deleting a user also deletes their project resources. A plan change updates resource limits while preserving any administrator suspension.
26
26
 
27
27
  The last active administrator cannot be deleted or suspended. Both previews and
28
28
  actual mutations enforce this rule, including in the browser admin UI. Allowed
@@ -14,7 +14,9 @@ void platform use [id]
14
14
  void platform status [id]
15
15
  ```
16
16
 
17
- `use` and `status` auto-select the only configured platform; with multiple platforms they show a picker interactively and require an id or URL in non-interactive use. A project with a recorded platform URL keeps using that platform when the global default changes.
17
+ `list` shows the currently selected platform first, followed by other saved platforms. For a platform with local installation records, its installation slug appears beside its name, such as `Cloudflare Void (cloudflare)`. Select it with `void platform use cloudflare`. For a connected platform without a local installation slug, use its printed API URL.
18
+
19
+ `use` and `status` accept an installation slug, display name, saved ID, or API URL. If a slug or name matches several platforms, use the API URL to choose one. They auto-select the only configured platform; with multiple platforms they show a picker interactively and require an explicit selector in non-interactive use. A project with a recorded platform URL keeps using that platform when the global default changes.
18
20
 
19
21
  For a self-hosted installation, `status <installation-id>` prints locally saved
20
22
  lifecycle progress before checking the live API. The saved checkpoint may be out
@@ -25,7 +27,7 @@ checkpoint and exits with an error; it does not confirm current availability.
25
27
 
26
28
  Use `void platform` to administer the users and apps on your selected platform. Start with the [Platform Administration guide](../../guide/platform-administration.md) for signing in, giving people access, and investigating deployments.
27
29
 
28
- Every command below accepts `--connection <registered-id-or-url>` to select a platform and `--json` for structured output. Without `--connection`, Void uses `VOID_API_URL` if set, then the active platform connection. Application project files do not change this selection.
30
+ Every command below accepts `--connection <slug-or-url>` to select a registered platform and `--json` for structured output. Display names and saved IDs also work. Without `--connection`, Void uses `VOID_API_URL` if set, then the active platform connection. Application project files do not change this selection.
29
31
 
30
32
  ### Making Changes {#making-changes}
31
33
 
@@ -10,6 +10,7 @@ Show deployments for the configured target.
10
10
 
11
11
  - Void targets show recent hosted deployments; `[name]` looks up a project by slug and otherwise the linked project is used.
12
12
  - Cloudflare targets list Worker Versions, identify the active version, and show the recorded migration count. A project name is not accepted because the Worker name comes from `cloudflare.name` in `void.config.ts`.
13
+ - Owners and admins also see a warning when the platform cannot finish [replacing the project's credentials](../../guide/project-collaboration.md#change-or-remove-access).
13
14
 
14
15
  ## `void project link [name]` {#void-project-link-name}
15
16
 
@@ -36,7 +37,7 @@ void project team accept <invitation-id>
36
37
  void project team decline <invitation-id>
37
38
  ```
38
39
 
39
- Project-scoped commands use `--project`, then `VOID_PROJECT`, then the linked project. Invitations can target only an email address already registered to a user on that platform; they do not create accounts or grant signup access. Only the invited account can accept or decline its invitation.
40
+ Project-scoped commands use `--project`, then `VOID_PROJECT`, then the linked project. Invitations can target only an email address already registered to a user on that platform; they do not create accounts or grant signup access. Only the invited account can accept or decline its invitation. `list` shows the same credential warning as `void project status`.
40
41
 
41
42
  Readers can view the project but cannot deploy. Collaborators can deploy and manage deploy prerequisites. Project administrators can additionally manage domains, email destinations, GitHub configuration, and the project team. The owner alone can delete the project. See [Project Collaboration](../../guide/project-collaboration.md) for the full role boundaries.
42
43
 
@@ -137,7 +138,7 @@ void project logs --level error --range 12h
137
138
  void project logs --level error --filter websocket
138
139
  ```
139
140
 
140
- Logs include top-level `console.*` calls and uncaught errors captured by Cloudflare Tail. If you catch an error and save it only to your database, it won't appear here. Also log it with `console.error()` or `logger.error()` from `void/log`.
141
+ Logs include top-level `console.*` calls and uncaught errors captured by Cloudflare Tail. If you catch an error and save it only to your database, it won't appear here. Also log it with `console.error()` or `logger.error()` from `void/log`. On hosted Void targets, pass the `Error` object itself to `console.error()`, as in `console.error('Save failed:', error)`, to see its stack trace under the log line. Logging only `error.message` shows no stack.
141
142
 
142
143
  For errors that never reach your Worker, such as edge routing errors or static site requests, use `void project requests --status 5xx`.
143
144
 
@@ -195,7 +196,7 @@ This command is hosted-only. Direct Cloudflare deploys are local operations and
195
196
 
196
197
  ## `void project delete [name]` {#void-project-delete-name}
197
198
 
198
- Permanently delete a hosted Void project and all its resources (databases, KV namespaces, R2 buckets, deployments). Requires typing the project slug to confirm.
199
+ Permanently delete a hosted Void project and all its resources (databases, KV namespaces, R2 buckets, deployments). Requires typing the project slug to confirm; `--force` (`-f`) skips the prompt.
199
200
 
200
201
  If `[name]` is omitted, uses the linked project.
201
202
 
@@ -211,4 +212,4 @@ Purge all cached pages for the linked project. The edge cache will clear within
211
212
 
212
213
  If `--project` is provided, purges that project's cache instead of the linked project.
213
214
 
214
- This command is currently hosted-only. Direct Cloudflare cache purge fails closed with guidance.
215
+ This command is hosted-only. For direct Cloudflare targets, redeploy or purge the configured ISR KV namespace yourself.
@@ -14,8 +14,6 @@ List production secret names for the saved target. Secret values are never print
14
14
 
15
15
  ## `void secret put` {#void-secret-put}
16
16
 
17
- On hosted projects, secret writes and deletes return a retryable conflict while a deployment or rollback is in progress. Wait for that operation to finish and retry; the rejected operation leaves the stored secret unchanged.
18
-
19
17
  ```
20
18
  void secret put <name> [--project <name>]
21
19
  void secret put <name=value> [--project <name>]
@@ -27,7 +25,7 @@ Value input modes:
27
25
  - prompt (TTY): `void secret put API_KEY` (masked input)
28
26
  - stdin: `echo -n "abcd" | void secret put API_KEY`
29
27
 
30
- On a direct Cloudflare target, the value is sent to Cloudflare over stdin and stored as an encrypted Worker secret.
28
+ On a direct Cloudflare target, the value is stored as an encrypted Worker secret.
31
29
 
32
30
  ## `void secret sync` {#void-secret-sync}
33
31
 
@@ -51,6 +49,8 @@ void secret delete <name> [--project <name>]
51
49
 
52
50
  Secret commands use the platform saved in `.void/project.json`. Hosted project resolution follows the same order as deploy (`--project`, env var, linked project). Direct Cloudflare targets reject `--project` and use the pinned root Cloudflare config.
53
51
 
52
+ On hosted projects, secret writes and deletes return a retryable conflict while a deployment or rollback is in progress. Wait for that operation to finish and retry; the rejected operation leaves the stored secret unchanged.
53
+
54
54
  ## Env Schema {#env-schema}
55
55
 
56
56
  ### `void env check` {#void-env-check}
@@ -28,7 +28,7 @@ Resources recorded in `void.lock.json` without a matching definition appear sepa
28
28
  ## `void init` {#void-init}
29
29
 
30
30
  ```sh
31
- void init [--tsconfig] [--github] [--agents] [--git | --no-git]
31
+ void init [--tsconfig] [--github] [--git | --no-git]
32
32
  ```
33
33
 
34
34
  Set up a new or existing Void project. In an empty directory, choose Vite+ or Vite, a framework, and a D1, PostgreSQL, MySQL, or Static Pages starter.
@@ -37,6 +37,12 @@ In an existing app, Void adds missing dependencies and scripts and updates the V
37
37
 
38
38
  The wizard also sets up TypeScript, agent instructions, environment declarations, and a deployment target. Choose Cloudflare, a Void platform, or skip deployment setup. If you skip sign-in, run `void connect` when you're ready. See [Quick Start](../../guide/quickstart.md).
39
39
 
40
+ Every init run sets up coding agents. New projects get a minimal `AGENTS.md`
41
+ pointing to `node_modules/void/docs/`. Existing projects prompt before the file
42
+ is created, appended to, or updated; CI and non-interactive runs leave existing
43
+ projects' instructions unchanged. Skills are linked for detected agents. See
44
+ [Coding Agents](../../integrations/agents.md).
45
+
40
46
  Outside an existing repository or workspace package, Void offers to initialize Git. Use `--git` to initialize without a prompt or `--no-git` to skip it. CI requires `--git` to initialize. Workspace packages do not accept these flags.
41
47
 
42
48
  Run selected setup steps with:
@@ -44,10 +50,10 @@ Run selected setup steps with:
44
50
  | Flag | Purpose |
45
51
  | ------------ | -------------------------------------------------------------- |
46
52
  | `--tsconfig` | Update TypeScript configuration, preserving existing settings. |
47
- | `--agents` | Set up agent instructions and skills for detected agents. |
48
53
  | `--github` | Create the GitHub Actions deployment workflow. |
49
54
 
50
- These flags can be combined and skip the other wizard steps. Add `--git` if you also want Git initialization.
55
+ These flags can be combined and skip the other wizard steps. Coding agent setup
56
+ still runs. Add `--git` if you also want Git initialization.
51
57
 
52
58
  For Cloudflare workflows, add a `CLOUDFLARE_API_TOKEN` repository secret. PostgreSQL and MySQL apps also need `DATABASE_URL`.
53
59
 
@@ -60,11 +66,3 @@ void prepare
60
66
  ```
61
67
 
62
68
  Generates Void’s types and TypeScript configuration without starting the dev server or building the app. Run it after a fresh clone or before typechecking in CI.
63
-
64
- ## Agent {#agent}
65
-
66
- ### `void init --agents` {#void-init-agents}
67
-
68
- Adds Void instructions to `AGENTS.md` and links skills for detected coding agents. Existing instructions outside the Void block are preserved.
69
-
70
- If no supported agent is detected, `AGENTS.md` links to the bundled docs. See [Coding Agents](../../integrations/agents.md).
@@ -56,7 +56,7 @@ Use this page as a command reference. If you are setting up a project for the fi
56
56
  | `void account login` | Authenticate with a Void platform |
57
57
  | `void cloudflare login` | Authenticate with Cloudflare through Void |
58
58
  | `void platform install` | Install a company Void platform in Cloudflare |
59
- | `void connect <url>` | Connect the CLI to a Void platform |
59
+ | `void connect <url>` | Connect the CLI to a Void platform; hostnames default to HTTPS |
60
60
  | `void project link` | Link directory to a project |
61
61
  | `void project logs` | Show runtime logs from deployed project |
62
62
  | `void project requests` | Show request-level traffic (status, method, timing) |
@@ -73,7 +73,7 @@ Use this page as a command reference. If you are setting up a project for the fi
73
73
  | `void email allow <address>` | Add a recipient and send a verification email |
74
74
  | `void email disallow <address>` | Remove a recipient from the allowlist |
75
75
  | `void email domain` | Send and receive at your own domain on a Cloudflare zone |
76
- | `void init` | Setup wizard for new or existing projects |
76
+ | `void init` | Set up a new or existing project, including coding agents |
77
77
  | `void migrate` | Convert legacy `void.json` and root Wrangler JSON/JSONC into `void.config.ts` |
78
78
 
79
79
  ## Binary Invocation {#binary-invocation}
@@ -297,6 +297,18 @@ Curated Cloudflare Workers configuration. `void init` pins `compatibility_date`
297
297
 
298
298
  `worker.vars` values must be strings. Root `.env` values override them during local development only. Production builds do not load `.env`, and reject any `worker.vars` name declared as a server key in `env.ts`. Use `void secret put` for production server values.
299
299
 
300
+ `worker.limits.cpu_ms` sets the CPU time limit per request, from 1 to 300000 ms. On a Void platform, deploy fails if the limit exceeds the account plan; lower it in `void.config.ts` before retrying. Rollback instead caps the old limit at the current plan ceiling. On direct deploys, [Cloudflare enforces the value](https://developers.cloudflare.com/workers/platform/limits/#cpu-time): Workers Free allows up to 10 ms and Workers Paid up to 300000 ms per request.
301
+
302
+ ```json
303
+ {
304
+ "worker": {
305
+ "limits": {
306
+ "cpu_ms": 30000
307
+ }
308
+ }
309
+ }
310
+ ```
311
+
300
312
  ### `cloudflare`
301
313
 
302
314
  The complete Cloudflare Worker configuration for direct Cloudflare builds and deployment. Put custom bindings, `name`, `account_id`, routes, services, vars, migrations, and any other Cloudflare fields here. Void passes these fields through to the generated Cloudflare build configuration. Settings you edit here take precedence over values Void previously recorded in `void.lock.json`.
@@ -325,18 +337,6 @@ deploy: { cloudflare: { mode: 'atomic' } },
325
337
 
326
338
  This choice applies to subsequent `void deploy` runs. Atomic deployment sends traffic to the new Worker before Void checks readiness; a Durable Object class migration cannot be rolled back across its migration boundary. Use `--atomic` for a single deployment instead. `deploy` is a Void setting and is not passed to Cloudflare's Worker config.
327
339
 
328
- `worker.limits.cpu_ms` sets the CPU time limit per request, from 1 to 300000 ms. On a Void platform, deploy fails if the limit exceeds the account plan; lower it in `void.config.ts` before retrying. Rollback instead caps the old limit at the current plan ceiling. On direct deploys, [Cloudflare enforces the value](https://developers.cloudflare.com/workers/platform/limits/#cpu-time): Workers Free allows up to 10 ms and Workers Paid up to 300000 ms per request.
329
-
330
- ```json
331
- {
332
- "worker": {
333
- "limits": {
334
- "cpu_ms": 30000
335
- }
336
- }
337
- }
338
- ```
339
-
340
340
  ### `routing`
341
341
 
342
342
  Routing and edge configuration for headers, redirects, rewrites, and caching.
@@ -434,7 +434,7 @@ ISR revalidation TTL in seconds, either globally or per path. See [Revalidation]
434
434
 
435
435
  #### `routing.revalidateQueryAllowlist`
436
436
 
437
- Query parameters that participate in ISR variant keys for dispatch rewrites. Keys are source URL patterns, values are query parameter names to keep. When omitted, rewritten ISR cache keys drop every incoming query parameter to avoid unbounded cache fanout.
437
+ Query parameters to keep in ISR cache keys. Keys are source URL patterns, values are query parameter names to keep. The listed parameters are part of the cache key for every request to a matching path; all other query parameters are left out of the key. When omitted, ISR cache keys drop every incoming query parameter to avoid unbounded cache fanout.
438
438
 
439
439
  ```json
440
440
  {
@@ -17,6 +17,7 @@ Void automatically detects which Cloudflare resources your project uses by scann
17
17
  | `SANDBOX` | Managed Sandbox capability | `import { getSandbox } from "void/sandbox"` | `getSandbox()`; native Cloudflare also exposes `env.SANDBOX` / `c.env.SANDBOX` |
18
18
  | Auth | none | `import { ... } from "void/auth"` or `import { auth } from "void/client"` / `void/client/react` / `void/client/vue` / `void/client/svelte` / `void/client/solid` | none |
19
19
  | `QUEUE_*` | `Queue` | `import { queues } from "void/queues"` | `env.QUEUE_*` |
20
+ | `VOID_LIVE` | `DurableObjectNamespace` | `import { defineLiveStream } from "void/live"` | n/a |
20
21
  | filename-derived | `DurableObjectNamespace` | A default-exported `defineDurableState()` module in `durable-objects/` | n/a |
21
22
 
22
23
  Auth detection also triggers when importing the `auth` specifier from `void/client` or a framework-specific client subpath such as `void/client/react` (but not when importing only `fetch`).
@@ -79,22 +80,7 @@ Paths are relative to the project root. When `inference.scanDirs` is set, it rep
79
80
 
80
81
  ## Explicit Binding Overrides
81
82
 
82
- Override individual bindings when inference does not match your setup:
83
-
84
- ```json
85
- {
86
- "inference": {
87
- "bindings": {
88
- "db": true,
89
- "kv": true,
90
- "storage": false,
91
- "ai": false
92
- }
93
- }
94
- }
95
- ```
96
-
97
- Explicit values override only their named bindings. Omitted bindings continue to be inferred, so setting `kv` does not disable storage, auth, or other features. Auth and checked-in migrations still require a database even when `db` is `false`.
83
+ Use [`inference.bindings`](./config.md#inference-bindings) to enable, disable, or rename a binding when inference does not match your setup. It overrides only the bindings you name; the rest are still inferred.
98
84
 
99
85
  ## File Types
100
86
 
package/package.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "name": "void",
3
- "version": "0.25.0",
3
+ "version": "0.26.1",
4
+ "description": "Full-stack framework and deployment CLI for Cloudflare Workers, powered by Vite.",
5
+ "homepage": "https://void.cloud",
6
+ "bugs": {
7
+ "url": "https://github.com/voidzero-dev/void/issues"
8
+ },
9
+ "license": "MIT",
4
10
  "repository": {
5
11
  "type": "git",
6
12
  "url": "git+https://github.com/voidzero-dev/void.git",
@@ -11,6 +17,7 @@
11
17
  },
12
18
  "files": [
13
19
  "dist",
20
+ "docs",
14
21
  "schema.json",
15
22
  "skills",
16
23
  "AGENTS_TEMPLATE.md",
@@ -331,43 +338,40 @@
331
338
  }
332
339
  },
333
340
  "dependencies": {
334
- "@cloudflare/build-output-utils": "0.8.5",
335
- "@cloudflare/codemods": "0.4.0",
336
- "@cloudflare/config": "0.23.0",
341
+ "@cloudflare/build-output-utils": "^0.9.0",
342
+ "@cloudflare/codemods": "^0.4.2",
343
+ "@cloudflare/config": "^0.24.1",
337
344
  "@cloudflare/sandbox": "1.0.0",
338
- "@cloudflare/vite-plugin": "1.62.5",
339
- "@cloudflare/workers-auth": "0.12.0",
340
- "@cloudflare/workers-types": "^4.20260702.1",
341
- "@napi-rs/keyring": "2.1.0",
342
- "@void/deploy-cloudflare": "0.25.0",
343
- "@void/deploy-core": "0.25.0",
344
- "@void/edge": "0.25.0",
345
- "@void/isr": "0.25.0",
346
- "@void/platform": "0.25.0",
347
- "acorn": "^8.18.0",
345
+ "@cloudflare/vite-plugin": "^1.63.1",
346
+ "@cloudflare/workers-auth": "^0.13.1",
347
+ "@cloudflare/workers-types": "^5.20261009.1",
348
+ "@napi-rs/keyring": "^2.1.0",
349
+ "@void/deploy-cloudflare": "0.26.1",
350
+ "@void/deploy-core": "0.26.1",
351
+ "@void/edge": "0.26.1",
352
+ "@void/isr": "0.26.1",
353
+ "@void/platform": "0.26.1",
348
354
  "better-auth": "^1.7.7",
349
355
  "better-sqlite3": "^13.0.3",
350
356
  "blake3-jit": "^1.1.0",
351
- "cf": "1.0.0-beta.12",
357
+ "cf": "^1.0.0-beta.13",
352
358
  "drizzle-arktype": "^0.1.3",
353
359
  "drizzle-kit": "^0.31.11",
354
360
  "drizzle-orm": "^0.45.3",
355
361
  "drizzle-valibot": "^0.4.2",
356
362
  "drizzle-zod": "^0.8.3",
357
363
  "email-validator": "^2.0.4",
358
- "es-module-lexer": "^3.0.2",
359
364
  "hono": "^4.13.13",
360
365
  "ignore": "^7.0.12",
361
366
  "jiti": "^2.7.0",
362
- "jsonc-parser": "3.3.1",
363
- "mime": "4.1.0",
364
- "miniflare": "5.20261001.0-alpha",
367
+ "jsonc-parser": "^3.3.1",
368
+ "mime": "^4.1.0",
369
+ "miniflare": "5.20261006.1-alpha",
365
370
  "minimatch": "^10.2.6",
366
- "mysql2": "3.24.5",
367
- "pg": "8.23.1",
368
- "postal-mime": "^4.0.4",
369
- "proper-lockfile": "^4.1.2",
370
- "undici": "8.11.2"
371
+ "mysql2": "^3.24.5",
372
+ "pg": "^8.23.1",
373
+ "postal-mime": "^4.0.5",
374
+ "proper-lockfile": "^4.1.2"
371
375
  },
372
376
  "devDependencies": {
373
377
  "@electric-sql/pglite": "0.5.8",
@@ -375,12 +379,12 @@
375
379
  "@types/node": "^26.6.4",
376
380
  "@types/pg": "^8.23.1",
377
381
  "@types/proper-lockfile": "^4.1.4",
378
- "@voidzero-dev/vite-plus-prompts": "0.0.0",
382
+ "@voidzero-dev/vite-plus-prompts": "1.1.0",
379
383
  "arktype": "^2.2.7",
380
384
  "ci-info": "^4.4.0",
381
385
  "estree-walker": "^3.0.3",
382
386
  "fast-wrap-ansi": "^0.2.2",
383
- "magic-string": "^1.4.2",
387
+ "magic-string": "^1.4.3",
384
388
  "ofetch": "2.0.0-alpha.3",
385
389
  "pathslash": "^0.1.0",
386
390
  "pglite-server": "0.1.5",
@@ -388,12 +392,12 @@
388
392
  "tinyglobby": "^0.2.17",
389
393
  "typescript": "7.0.2",
390
394
  "valibot": "^1.5.0",
391
- "vite": "npm:@voidzero-dev/vite-plus-core@1.0.0",
392
- "vite-plus": "1.0.0",
395
+ "vite": "npm:@voidzero-dev/vite-plus-core@1.1.0",
396
+ "vite-plus": "1.1.0",
393
397
  "zod": "^4.6.5"
394
398
  },
395
399
  "peerDependencies": {
396
- "@void/md": "0.25.0",
400
+ "@void/md": "0.26.1",
397
401
  "arktype": ">=2.0.0",
398
402
  "valibot": ">=1.0.0-beta.7",
399
403
  "vite": "^8.0.0",
@@ -417,7 +421,7 @@
417
421
  "node": ">=24.21.0"
418
422
  },
419
423
  "scripts": {
420
- "build": "node scripts/sync-skill-docs.mjs && vp pack",
424
+ "build": "node scripts/sync-docs.mjs && vp pack",
421
425
  "dev": "vp pack --watch",
422
426
  "typecheck": "tsc --noEmit --rootDir ../.."
423
427
  }
package/schema.json CHANGED
@@ -212,7 +212,7 @@
212
212
  },
213
213
  "revalidateQueryAllowlist": {
214
214
  "type": "object",
215
- "description": "Query parameters that participate in ISR variant keys for dispatch rewrites. Keys are source URL patterns; values are arrays of query parameter names. When omitted, rewritten ISR drops every query parameter from the variant key.",
215
+ "description": "Query parameters that are part of the ISR cache key for every request to a matching path. Keys are source URL patterns; values are arrays of query parameter names. All other query parameters are left out of the key. When omitted, ISR drops every query parameter from the cache key.",
216
216
  "patternProperties": {
217
217
  "^(\\/|\\*$)": {
218
218
  "type": "array",
@@ -9,7 +9,10 @@ Read the app's package manifest, Vite config, Worker entry, Cloudflare config,
9
9
  and migrations. Identify its framework, endpoints, bindings, and deployed Worker
10
10
  before changing them.
11
11
 
12
- Use the bundled guides under `../void/docs/`:
12
+ Use the bundled guides under `node_modules/void/docs/`. Without a local Void
13
+ installation, use `../../docs/` relative to this skill's real directory in the
14
+ Void package, following any symlink. If the skill was copied without the package,
15
+ use the guides at [https://void.cloud](https://void.cloud) instead:
13
16
 
14
17
  - `integrations/cloudflare.md` for existing Worker handoff and configuration.
15
18
  - `integrations/frameworks/overview.md` and the matching framework guide when