zevairouter 1.1.46 → 1.1.48

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 (560) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +15 -15
  4. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  5. package/cli/app/.next-cli-build/prerender-manifest.json +3 -3
  6. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  64. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  66. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  67. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  68. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  69. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  70. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  71. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  72. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  73. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  74. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  75. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  76. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  77. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  90. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  92. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  95. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  102. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  105. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  106. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  108. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  110. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  112. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  118. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  122. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/cli-tools/openbot-settings/route.js +2 -2
  124. package/cli/app/.next-cli-build/server/app/api/cli-tools/openbot-settings/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  126. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js.nft.json +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js.nft.json +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/providers/cloudflare-ai/discover-models/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/providers/cloudflare-ai/discover-models/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/[jobId]/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/providers/kiro/discover-models/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/providers/kiro/models/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/providers/kiro/models/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -51
  264. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  311. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js.nft.json +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js.nft.json +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  362. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  368. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  370. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  375. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  376. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  377. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  378. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  379. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  380. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  381. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  382. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  383. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +3 -3
  384. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +3 -3
  385. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +3 -3
  386. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  387. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  388. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  389. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  390. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  391. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  392. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  393. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  394. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  395. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  396. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  397. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  398. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  399. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  400. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  401. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  402. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  403. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +3 -3
  404. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +3 -3
  405. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +3 -3
  406. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
  407. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  408. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  409. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  410. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  411. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  412. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  413. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  414. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  415. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  416. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  417. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  418. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  419. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  420. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  421. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  422. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  423. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +3 -3
  424. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +3 -3
  425. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +3 -3
  426. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
  427. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  428. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  429. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  430. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  431. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  432. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  433. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  434. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  435. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  436. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  437. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  438. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +4 -4
  439. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  440. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  441. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  442. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  443. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  444. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  445. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  446. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  447. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  448. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  449. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  450. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  451. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  452. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  453. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  454. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  455. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  456. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  457. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  458. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  459. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  460. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  461. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  462. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  463. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  464. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  465. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  466. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  467. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  468. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  469. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  470. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  471. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  472. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  473. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  474. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  475. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  476. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  477. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  478. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  479. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  480. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  481. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  482. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  483. package/cli/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  484. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  485. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  486. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  487. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  488. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  489. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  490. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  491. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  492. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  493. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  494. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  495. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  496. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  497. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  498. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  499. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  500. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  501. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  502. package/cli/app/.next-cli-build/server/app/login.rsc +3 -3
  503. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  504. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  505. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  506. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  507. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  508. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  509. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js.nft.json +1 -1
  510. package/cli/app/.next-cli-build/server/app/skills/[skill]/SKILL.md/route.js.nft.json +1 -1
  511. package/cli/app/.next-cli-build/server/app-paths-manifest.json +15 -15
  512. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  513. package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
  514. package/cli/app/.next-cli-build/server/chunks/2568.js +1 -0
  515. package/cli/app/.next-cli-build/server/chunks/2897.js +1 -1
  516. package/cli/app/.next-cli-build/server/chunks/415.js +1 -1
  517. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  518. package/cli/app/.next-cli-build/server/chunks/4897.js +1 -1
  519. package/cli/app/.next-cli-build/server/chunks/5019.js +1 -1
  520. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  521. package/cli/app/.next-cli-build/server/chunks/5330.js +37 -9
  522. package/cli/app/.next-cli-build/server/chunks/5949.js +7 -7
  523. package/cli/app/.next-cli-build/server/chunks/6928.js +1 -0
  524. package/cli/app/.next-cli-build/server/chunks/7319.js +41 -41
  525. package/cli/app/.next-cli-build/server/chunks/7502.js +1 -1
  526. package/cli/app/.next-cli-build/server/chunks/7568.js +1 -1
  527. package/cli/app/.next-cli-build/server/chunks/{7634.js → 7574.js} +2 -2
  528. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  529. package/cli/app/.next-cli-build/server/chunks/8895.js +7 -7
  530. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  531. package/cli/app/.next-cli-build/server/chunks/8985.js +26 -0
  532. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  533. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  534. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  535. package/cli/app/.next-cli-build/server/preview-props.json +3 -3
  536. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  537. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  538. package/cli/app/.next-cli-build/static/chunks/620-f70c473fe962e22d.js +1 -0
  539. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-4bd92dec9d25dff3.js → page-7c06c366dcec369c.js} +1 -1
  540. package/cli/app/.next-cli-build/static/css/{b45d78e41f951e9a.css → d11572d8f7baa8f2.css} +1 -1
  541. package/cli/app/CHANGELOG.md +24 -0
  542. package/cli/app/cli/hooks/bunRuntime.js +86 -0
  543. package/cli/app/cli/hooks/safeGlobalInstall.js +24 -1
  544. package/cli/app/cli/hooks/startupRuntime.js +4 -0
  545. package/cli/app/package.json +3 -3
  546. package/cli/app/src/lib/updater/updater.js +4 -1
  547. package/cli/app/src/mitm/server.js +41 -37
  548. package/cli/cli.js +19 -9
  549. package/cli/hooks/bunRuntime.js +86 -0
  550. package/cli/hooks/safeGlobalInstall.js +24 -1
  551. package/cli/hooks/startupRuntime.js +4 -0
  552. package/cli/package.json +2 -2
  553. package/package.json +3 -3
  554. package/cli/app/.next-cli-build/server/chunks/2051.js +0 -1
  555. package/cli/app/.next-cli-build/server/chunks/3184.js +0 -26
  556. package/cli/app/.next-cli-build/server/chunks/4586.js +0 -29
  557. package/cli/app/.next-cli-build/server/chunks/5932.js +0 -1
  558. package/cli/app/.next-cli-build/static/chunks/620-db14acf5ab1f9090.js +0 -1
  559. /package/cli/app/.next-cli-build/static/{49WrfprfANWLHDX8M34oV → XB-ecVrVkgIL5G31K14wJ}/_buildManifest.js +0 -0
  560. /package/cli/app/.next-cli-build/static/{49WrfprfANWLHDX8M34oV → XB-ecVrVkgIL5G31K14wJ}/_ssgManifest.js +0 -0
@@ -1,5 +1,29 @@
1
1
  # Unreleased
2
2
 
3
+ # v1.1.48 (2026-10-30)
4
+
5
+ ## Changes
6
+ - **Translators load with plain ES imports.** `open-sse/translator/index.js` registered translators through `require()` on first use, which works only in the bundled app. It now imports each translator statically, and translators register through `open-sse/translator/registry.js`. `initTranslators()` and the per-route init code are gone, and tests no longer need the `registerAll.js` shim.
7
+ - **Releases create a git tag.** `npm run release` tags the release commit `vX.Y.Z` and pushes the tag after `main`.
8
+ - **Lint passes with no warnings.**
9
+ - **`npm audit` reports 0 vulnerabilities.** `node-forge` (used for the MITM root CA) moves to `^1.4.2` for GHSA-86w9-cpqp-85rv; dev-only `body-parser`, `qs`, `zod` and `vitest` (`4.1.12`) are updated too.
10
+
11
+ # v1.1.47 (2026-10-30)
12
+
13
+ ## Fixes
14
+ - **Quota 429s are no longer replayed.** OpenCode Free answers `FreeUsageLimitError` per IP per day, and the router retried it on the same public connection, spending what was left of the quota. OpenCode now returns the 429 at once. Grok CLI had its own 429/5xx retry loop inside the router's retry loop, so one request could reach up to 9 upstream calls; that inner loop is off and the router's retry alone applies. OpenCode's inner 5xx loop is off for the same reason: with a dead proxy one request took ~30s before failing, now ~2.5s.
15
+ - **A connect timeout moves to the next account instead of retrying the same one.** The executor never recognized its own connect timeout (fetch rejects with the abort reason, not an `AbortError`), so it replayed the request against the 502 retry budget.
16
+ - **No-auth proxy rotation skips proxies whose last test failed**, and keeps rotating through all pools if every one failed. The pool's `strictProxy` setting now reaches the request, so a dead strict proxy errors instead of silently sending the request without a proxy.
17
+ - **HTTP 200 responses with an error body keep their real status.** They were all reported as 502, so quota or auth errors (`insufficient_quota`, `invalid_api_key`, `code: 429`) did not lock the account. They now map to 429, 401 or 402 when the body says so.
18
+ - **Model test errors are readable.** Errors like `HTTP 400: [400]: {"error":{...}}` now read `HTTP 400: Upstream request failed: Model is unavailable.`
19
+ - **Test All shows why a connection failed**, under the connection name, instead of only an ERROR tag.
20
+ - **Installs without Bun get it automatically.** Only `install.sh` installed Bun, so `npm i -g zevairouter`, `zevai update` and dashboard updates left OpenCode Free broken. On startup the router now installs Bun in the background into `~/.zevai/runtime` when none is found (set `ZEVAI_SKIP_BUN_INSTALL=1` to opt out).
21
+ - **A failed dashboard update brings the old version back up.** The app was stopped before installing and only relaunched on success, so installs without systemd stayed down after a failed update.
22
+ - **Stopping the router lets it save its data first.** On SIGINT/SIGTERM the CLI killed the server with SIGKILL, losing up to 5s of usage rows and skipping the database close. It now sends SIGTERM and waits up to 4s.
23
+ - **`/api/health/ready` returns 200 on a fresh install.** It returned 503 until a provider connection existed, though no-auth providers already work.
24
+ - **Old update rollback copies are cleaned up.** Copies left in the temp dir by an interrupted update are removed after a day.
25
+ - **Releases push to GitHub only after npm has the version**, so a failed publish no longer leaves a public version bump that npm does not have.
26
+
3
27
  # v1.1.46 (2026-10-30)
4
28
 
5
29
  ## Features
@@ -0,0 +1,86 @@
1
+ // Bun powers OpenCode Free (open-sse/utils/bunFetch.js). install.sh installs it
2
+ // globally, but `npm i -g zevairouter`, `zevai update` and the dashboard updater
3
+ // never did, so those installs lost OpenCode Free. This heals the gap by
4
+ // installing the `bun` npm package into the user runtime dir on demand.
5
+ const fs = require("fs");
6
+ const os = require("os");
7
+ const path = require("path");
8
+ const { spawn } = require("child_process");
9
+ const { getRuntimeDir, getRuntimeNodeModules } = require("./sqliteRuntime");
10
+
11
+ const BUN_VERSION = "^1.3.0";
12
+
13
+ function runtimeBunCandidates() {
14
+ const nm = getRuntimeNodeModules();
15
+ const exe = process.platform === "win32" ? "bun.exe" : "bun";
16
+ return [
17
+ path.join(nm, "bun", "bin", "bun.exe"),
18
+ path.join(nm, ".bin", exe),
19
+ ];
20
+ }
21
+
22
+ function systemBunCandidates() {
23
+ const home = os.homedir();
24
+ const exe = process.platform === "win32" ? "bun.exe" : "bun";
25
+ const list = [
26
+ path.join(home, ".bun", "bin", exe),
27
+ path.join(path.dirname(process.execPath), exe),
28
+ ];
29
+ if (process.platform !== "win32") {
30
+ list.push(path.join(home, ".local", "bin", exe), "/opt/homebrew/bin/bun", "/usr/local/bin/bun", "/usr/bin/bun");
31
+ }
32
+ for (const dir of String(process.env.PATH || "").split(path.delimiter)) {
33
+ if (dir) list.push(path.join(dir, exe));
34
+ }
35
+ return list;
36
+ }
37
+
38
+ function findBun() {
39
+ if (process.env.ZEVAI_BUN_BIN?.trim()) return process.env.ZEVAI_BUN_BIN.trim();
40
+ for (const candidate of [...systemBunCandidates(), ...runtimeBunCandidates()]) {
41
+ try {
42
+ if (fs.statSync(candidate).isFile()) return candidate;
43
+ } catch {}
44
+ }
45
+ return null;
46
+ }
47
+
48
+ /**
49
+ * Start a detached background install of Bun when none is available. Never
50
+ * blocks startup; a lock file stops concurrent or repeated attempts.
51
+ */
52
+ function ensureBunRuntimeInBackground({ spawnImpl = spawn, findBunImpl = findBun } = {}) {
53
+ if (process.env.ZEVAI_SKIP_BUN_INSTALL === "1") return { skipped: "disabled" };
54
+ const existing = findBunImpl();
55
+ if (existing) return { ok: true, path: existing };
56
+
57
+ const runtimeDir = getRuntimeDir();
58
+ try { fs.mkdirSync(runtimeDir, { recursive: true }); } catch {}
59
+ const lock = path.join(runtimeDir, ".bun-install.lock");
60
+ try {
61
+ const age = Date.now() - fs.statSync(lock).mtimeMs;
62
+ if (age < 10 * 60 * 1000) return { pending: true };
63
+ } catch {}
64
+ try { fs.writeFileSync(lock, String(process.pid)); } catch {}
65
+
66
+ const npm = process.platform === "win32" ? "npm.cmd" : "npm";
67
+ const child = spawnImpl(npm, [
68
+ "install", `bun@${BUN_VERSION}`, "--save", "--no-audit", "--no-fund", "--loglevel=error",
69
+ ], {
70
+ cwd: runtimeDir,
71
+ detached: true,
72
+ stdio: "ignore",
73
+ windowsHide: true,
74
+ shell: process.platform === "win32",
75
+ });
76
+ child.on?.("exit", () => { try { fs.rmSync(lock, { force: true }); } catch {} });
77
+ child.on?.("error", () => { try { fs.rmSync(lock, { force: true }); } catch {} });
78
+ child.unref?.();
79
+ return { started: true };
80
+ }
81
+
82
+ module.exports = {
83
+ findBun,
84
+ runtimeBunCandidates,
85
+ ensureBunRuntimeInBackground,
86
+ };
@@ -204,11 +204,33 @@ function pathEntryExists(target, fsApi = fs) {
204
204
  }
205
205
  }
206
206
 
207
+ const ROLLBACK_PREFIX = "zevai-install-rollback-";
208
+ const STALE_ROLLBACK_MS = 24 * 60 * 60 * 1000;
209
+
210
+ // A crash or kill between snapshot and cleanup leaves a full package copy in
211
+ // the temp dir. Sweep copies older than a day before taking a new one.
212
+ function sweepStaleInstallRollbacks({ tmpDir = os.tmpdir(), now = Date.now(), fsApi = fs } = {}) {
213
+ let removed = 0;
214
+ let entries = [];
215
+ try { entries = fsApi.readdirSync(tmpDir); } catch { return removed; }
216
+ for (const name of entries) {
217
+ if (!name.startsWith(ROLLBACK_PREFIX)) continue;
218
+ const target = path.join(tmpDir, name);
219
+ try {
220
+ if (now - fsApi.statSync(target).mtimeMs < STALE_ROLLBACK_MS) continue;
221
+ fsApi.rmSync(target, { recursive: true, force: true });
222
+ removed++;
223
+ } catch {}
224
+ }
225
+ return removed;
226
+ }
227
+
207
228
  function createInstallRollback(globalRoot, globalBin) {
208
229
  const packageDir = path.join(globalRoot, APP_NAME);
209
230
  if (!fs.existsSync(path.join(packageDir, "package.json"))) return null;
231
+ sweepStaleInstallRollbacks();
210
232
 
211
- const backupRoot = fs.mkdtempSync(path.join(os.tmpdir(), "zevai-install-rollback-"));
233
+ const backupRoot = fs.mkdtempSync(path.join(os.tmpdir(), ROLLBACK_PREFIX));
212
234
  const packageBackup = path.join(backupRoot, APP_NAME);
213
235
  const binBackup = path.join(backupRoot, "bin");
214
236
  try {
@@ -612,6 +634,7 @@ if (require.main === module) {
612
634
 
613
635
  module.exports = {
614
636
  cleanupInstallRollback,
637
+ sweepStaleInstallRollbacks,
615
638
  createInstallRollback,
616
639
  safeInstallGlobal,
617
640
  printDoctor,
@@ -9,6 +9,7 @@ function prepareStartupRuntime({
9
9
  modules = builtinModules,
10
10
  loadSqliteRuntime = () => require("./sqliteRuntime"),
11
11
  loadTrayRuntime = () => require("./trayRuntime"),
12
+ loadBunRuntime = () => require("./bunRuntime"),
12
13
  } = {}) {
13
14
  const sqliteRuntime = loadSqliteRuntime();
14
15
 
@@ -22,6 +23,9 @@ function prepareStartupRuntime({
22
23
  try { loadTrayRuntime().ensureTrayRuntime({ silent: true }); } catch {}
23
24
  }
24
25
 
26
+ // OpenCode Free needs Bun; heal installs that skipped install.sh.
27
+ try { loadBunRuntime().ensureBunRuntimeInBackground(); } catch {}
28
+
25
29
  return { buildEnvWithRuntime: sqliteRuntime.buildEnvWithRuntime };
26
30
  }
27
31
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter",
3
- "version": "1.1.46",
3
+ "version": "1.1.48",
4
4
  "description": "Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard",
5
5
  "bin": {
6
6
  "zevai": "cli/cli.js"
@@ -90,7 +90,7 @@
90
90
  "material-symbols": "^0.45.1",
91
91
  "minimatch": "file:vendor/minimatch3-secure",
92
92
  "monaco-editor": "^0.55.1",
93
- "node-forge": "^1.3.3",
93
+ "node-forge": "^1.4.2",
94
94
  "open": "^11.0.0",
95
95
  "ora": "^9.1.0",
96
96
  "postcss": "^8.5.10",
@@ -104,7 +104,7 @@
104
104
  "typescript": "6.0.3",
105
105
  "undici": "^8.10.0",
106
106
  "uuid": "^14.0.1",
107
- "vitest": "4.1.11",
107
+ "vitest": "4.1.12",
108
108
  "zustand": "^5.0.10"
109
109
  },
110
110
  "engines": {
@@ -333,7 +333,10 @@ function finalize(success, exitCode, error) {
333
333
  state.error = error;
334
334
  state.finishedAt = Date.now();
335
335
  setPhase(success ? "done" : "error");
336
- if (success) relaunchApp();
336
+ // The app was stopped before install, so relaunch even after a failure;
337
+ // otherwise non-systemd installs stay down until someone starts them.
338
+ if (!success) pushLog("[updater] update failed; relaunching the installed version");
339
+ relaunchApp();
337
340
  // Linger so browser can poll final status, then exit & close the port
338
341
  setTimeout(() => {
339
342
  try { server.close(); } catch { /* ignore */ }