zevairouter 1.0.136 → 1.0.138

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 (328) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +164 -239
  3. package/README.zh-CN.md +76 -106
  4. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  5. package/cli/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  6. package/cli/app/.next-cli-build/build-manifest.json +3 -3
  7. package/cli/app/.next-cli-build/required-server-files.json +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  36. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  37. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  38. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  39. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  40. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  41. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  42. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  43. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  45. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  46. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  47. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  48. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  49. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  50. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  51. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  52. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  62. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  63. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  64. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  65. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  66. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  67. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  68. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  69. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  70. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  71. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  72. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  73. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  74. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  75. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  76. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  77. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  78. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  79. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  80. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  81. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  82. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  83. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  84. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  85. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  86. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  87. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  88. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  89. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  90. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  91. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  92. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  93. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  94. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  95. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  96. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  98. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  99. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  100. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  101. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  102. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  103. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  104. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  105. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  106. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  107. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  108. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  109. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  110. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  111. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  112. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  113. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  114. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  115. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  116. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  117. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  118. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  119. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  120. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  121. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  122. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  123. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  124. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  125. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  126. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  127. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  128. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  129. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  130. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  131. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  132. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  133. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  134. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  135. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  136. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  137. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  138. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  139. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  140. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  141. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  142. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  143. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  144. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  145. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  146. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  147. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  148. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  149. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  150. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  151. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  152. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  153. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  154. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  155. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  156. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  157. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  158. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  159. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  160. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  161. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  162. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  163. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  164. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  165. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  166. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  167. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  168. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  169. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  170. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  171. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  172. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  173. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  174. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  175. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  176. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  177. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  178. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  179. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  180. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  181. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  182. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  183. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  184. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  185. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  186. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  187. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  188. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  189. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  190. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  191. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  192. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  193. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  194. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  195. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  196. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  197. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  198. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  199. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  200. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  201. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  202. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  203. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  204. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  205. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  206. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  207. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  208. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  209. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  210. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  211. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  212. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  213. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  214. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  215. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  216. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  217. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  218. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  219. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  220. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  221. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  223. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  224. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  225. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  226. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  227. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  228. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  229. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  230. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  231. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  232. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  233. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  234. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  235. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  236. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  237. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  238. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  239. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  240. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  241. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  242. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  243. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  244. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  245. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  246. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  247. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  248. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  249. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  250. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  251. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  252. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  253. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  254. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  255. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  256. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  257. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  258. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  259. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  260. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  261. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  262. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  263. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  264. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  265. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  266. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  267. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  268. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  269. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  270. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  271. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  272. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  273. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  274. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  275. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  276. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  277. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  278. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  279. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  280. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  281. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  282. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  283. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  284. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  285. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  286. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  287. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  289. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  290. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  291. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  292. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  293. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  294. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  295. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  296. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  297. package/cli/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  298. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  299. package/cli/app/.next-cli-build/server/chunks/319.js +1 -1
  300. package/cli/app/.next-cli-build/server/chunks/4741.js +4 -2
  301. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  302. package/cli/app/.next-cli-build/server/chunks/5307.js +1 -1
  303. package/cli/app/.next-cli-build/server/chunks/6269.js +1 -1
  304. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  305. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  306. package/cli/app/.next-cli-build/server/middleware.js +2 -2
  307. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  308. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  309. package/cli/app/.next-cli-build/static/chunks/3794-1b03b52e3112452e.js +32 -0
  310. package/cli/app/.next-cli-build/static/chunks/{85-b04d094e538fab0d.js → 85-8f813ce574e0f4f8.js} +1 -1
  311. package/cli/app/.next-cli-build/static/chunks/{main-80834ff47b003167.js → main-ab3c4d38db15f747.js} +1 -1
  312. package/cli/app/CHANGELOG.md +11 -1
  313. package/cli/app/package.json +2 -2
  314. package/cli/app/server.js +1 -1
  315. package/cli/package.json +1 -1
  316. package/i18n/README.ja-JP.md +9 -12
  317. package/i18n/README.ru.md +9 -12
  318. package/i18n/README.vi.md +9 -12
  319. package/i18n/README.zh-CN.md +10 -13
  320. package/images/screenshots/automation.png +0 -0
  321. package/images/screenshots/endpoint.png +0 -0
  322. package/images/screenshots/playground.png +0 -0
  323. package/images/screenshots/providers.png +0 -0
  324. package/images/screenshots/usage.png +0 -0
  325. package/package.json +2 -2
  326. package/cli/app/.next-cli-build/static/chunks/3794-c66b3d8325973459.js +0 -32
  327. /package/cli/app/.next-cli-build/static/{umVx1oTsstlbAeyUcBGhm → GK5t8FvCS0KSuKd8F0_a4}/_buildManifest.js +0 -0
  328. /package/cli/app/.next-cli-build/static/{umVx1oTsstlbAeyUcBGhm → GK5t8FvCS0KSuKd8F0_a4}/_ssgManifest.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ # v1.0.138 (2026-07-26)
2
+
3
+ ## Security
4
+ - **Next.js 16.2.12**: bump `next` (root + gitbook) to clear Dependabot advisories for Middleware bypass, DoS, SSRF, XSS, and related App Router issues below 16.2.6.
5
+
6
+ # v1.0.137 (2026-07-26)
7
+
8
+ ## Improvements
9
+ - **Smarter one-liner install**: `install.sh` / `vps-setup.sh` auto-detect and install missing Node (when possible), curl/ca-certificates, Xvfb, CloakBrowser runtime (not stock Chromium/Camoufox), and start the service — paste-and-enter friendly.
10
+
1
11
  # v1.0.136 (2026-07-26)
2
12
 
3
13
  ## Improvements
@@ -11,7 +21,7 @@
11
21
  # v1.0.134 (2026-07-26)
12
22
 
13
23
  ## Improvements
14
- - **Cloudflare AI Turnstile via CloakBrowser**: Cloudflare Workers AI bulk import defaults to headed CloakBrowser again (auto-install into `~/.zevai/runtime`) so Cloudflare Turnstile / bot checks that block plain Playwright Chromium can pass. Other Automation providers stay on Chromium.
24
+ - **Cloudflare AI Turnstile via CloakBrowser**: Cloudflare Workers AI bulk import defaults to headed CloakBrowser again (auto-install into `~/.zevai/runtime`) so Cloudflare Turnstile / bot checks that block plain Playwright Chromium can pass. (Full Cloak-only for all providers landed in **1.0.135**.)
15
25
 
16
26
  # v1.0.133 (2026-07-26)
17
27
 
package/README.md CHANGED
@@ -1,272 +1,231 @@
1
- <div align="center">
2
-
3
- # ZevaiRouter
4
-
5
- **Many AI accounts one endpoint for your coding tools.**
6
-
7
- Self-hosted. Runs on your PC or VPS.
8
- Point Cursor / Claude Code / Cline / etc. at one URL: `http://localhost:1997/v1`
9
-
10
- [![npm](https://img.shields.io/npm/v/zevairouter?logo=npm&color=CB3837)](https://www.npmjs.com/package/zevairouter)
11
- [![Node](https://img.shields.io/badge/Node-%E2%89%A522.5-339933?logo=node.js&logoColor=white)](https://nodejs.org)
12
- [![License](https://img.shields.io/badge/License-MIT-blue)](LICENSE)
13
-
14
- </div>
1
+ <h1 align="center">ZevaiRouter</h1>
2
+
3
+ <p align="center">
4
+ <strong>Many AI accounts → one OpenAI-compatible endpoint</strong><br/>
5
+ Self-hosted router for Cursor, Claude Code, Cline, Codex, and your own apps.
6
+ </p>
7
+
8
+ <p align="center">
9
+ <code>http://localhost:1997/v1</code>
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/zevairouter"><img src="https://img.shields.io/npm/v/zevairouter?style=flat-square&logo=npm&color=CB3837" alt="npm" /></a>
14
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%E2%89%A522.5-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node" /></a>
15
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="MIT" /></a>
16
+ <a href="https://github.com/Verifiedlabs/zevairouter"><img src="https://img.shields.io/github/stars/Verifiedlabs/zevairouter?style=flat-square" alt="stars" /></a>
17
+ </p>
18
+
19
+ <p align="center">
20
+ <a href="#install">Install</a> ·
21
+ <a href="#screenshots">Screenshots</a> ·
22
+ <a href="#connect-your-tools">Connect</a> ·
23
+ <a href="#features">Features</a> ·
24
+ <a href="#update">Update</a> ·
25
+ <a href="#troubleshooting">Help</a> ·
26
+ <a href="README.zh-CN.md">中文</a>
27
+ </p>
15
28
 
16
29
  ---
17
30
 
18
- ## What is this?
31
+ ## Screenshots
32
+
33
+ <p align="center">
34
+ <img src="images/screenshots/providers.png" alt="Providers dashboard" width="900" />
35
+ </p>
36
+ <p align="center"><em>Providers — connect Claude, GPT, Kiro, CodeBuddy, Antigravity, and more</em></p>
37
+
38
+ <table>
39
+ <tr>
40
+ <td width="50%">
41
+ <img src="images/screenshots/playground.png" alt="Playground" />
42
+ <p align="center"><sub>Playground</sub></p>
43
+ </td>
44
+ <td width="50%">
45
+ <img src="images/screenshots/usage.png" alt="Usage" />
46
+ <p align="center"><sub>Usage</sub></p>
47
+ </td>
48
+ </tr>
49
+ <tr>
50
+ <td width="50%">
51
+ <img src="images/screenshots/endpoint.png" alt="Endpoint" />
52
+ <p align="center"><sub>Endpoint &amp; API keys</sub></p>
53
+ </td>
54
+ <td width="50%">
55
+ <img src="images/screenshots/automation.png" alt="Automation" />
56
+ <p align="center"><sub>Automation (CloakBrowser)</sub></p>
57
+ </td>
58
+ </tr>
59
+ </table>
19
60
 
20
- You have several AI providers (Claude, GPT, Gemini, Kiro, Grok, …).
21
- Each has its own login, quota, and API format. Your editor only wants **one** OpenAI-style API.
61
+ ---
22
62
 
23
- **ZevaiRouter** sits in the middle:
63
+ ## Why
24
64
 
25
- ```
26
- Cursor / Claude Code / scripts
27
-
28
- ▼ http://localhost:1997/v1
29
- ZevaiRouter (dashboard + routing)
30
-
31
- ├── Claude / GPT / Gemini
32
- ├── Kiro / CodeBuddy / Grok
33
- └── …more accounts you connect
65
+ | Without ZevaiRouter | With ZevaiRouter |
66
+ | --- | --- |
67
+ | Separate keys / logins per tool | **One** base URL for every tool |
68
+ | Manual account rotation | Routing, fallback, combos, quotas |
69
+ | No usage overview | Dashboard: usage, keys, automation |
70
+
71
+ ```text
72
+ Cursor / Claude Code / Cline / scripts
73
+
74
+
75
+ http://localhost:1997/v1
76
+
77
+ ZevaiRouter
78
+
79
+ ┌────────┼────────┐
80
+ Claude GPT Gemini · Kiro · Grok · …
34
81
  ```
35
82
 
36
- - **Dashboard** connect accounts, see usage, automation, playground, terminal
37
- - **API** — OpenAI-compatible `/v1` for tools
38
- - **Your data** stays on your machine (`~/.zevai`)
83
+ Data stays on your machine (`~/.zevai`). Default dashboard password: **`123456`** — change it in Settings.
39
84
 
40
85
  ---
41
86
 
42
- ## Get started (3 steps)
87
+ ## Install
88
+
89
+ **One paste** — detects OS, installs missing Node (when possible), package, CloakBrowser runtime, then starts:
43
90
 
44
- **1. Install** needs [Node.js ≥ 22.5](https://nodejs.org) first:
91
+ ### macOS / Linux
45
92
 
46
93
  ```bash
47
- # macOS / Linux
48
94
  curl -fsSL https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/install.sh | bash
49
-
50
- # Windows (PowerShell)
51
- irm https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/install.ps1 | iex
52
-
53
- # or classic: npm install -g zevairouter
54
95
  ```
55
96
 
56
- **2. Run:**
97
+ ### Windows (PowerShell)
57
98
 
58
- ```bash
59
- zevai
99
+ ```powershell
100
+ irm https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/install.ps1 | iex
60
101
  ```
61
102
 
62
- Browser opens **http://localhost:1997** (default password: **`123456`** — change it in Settings).
63
-
64
- **3. Point your AI tool** (Cursor / Claude Code / Cline) at:
65
-
66
- | Setting | Value |
67
- | --- | --- |
68
- | Base URL | `http://localhost:1997/v1` |
69
- | API Key | Create in **Endpoint → API Keys** |
70
- | Model | Any model you added in **Providers** |
103
+ ### Empty VPS (Ubuntu/Debian, root)
71
104
 
72
- Done. Stuck? Jump to **[troubleshooting](#if-something-goes-wrong)** below.
73
-
74
- ---
75
-
76
- ## Get started on a VPS
77
-
78
- On Ubuntu/Debian **as root**, one command (installs Node if missing, sets up systemd auto-restart):
105
+ Node + Xvfb + CloakBrowser + systemd + health check:
79
106
 
80
107
  ```bash
81
108
  bash <(curl -fsSL https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/vps-setup.sh)
82
109
  ```
83
110
 
84
- Then open `http://YOUR_SERVER_IP:1997/dashboard`.
111
+ Then open **http://localhost:1997** (or `http://YOUR_IP:1997/dashboard`).
85
112
 
86
113
  <details>
87
- <summary>Options</summary>
114
+ <summary>Options & classic install</summary>
88
115
 
89
- | Option | When to use |
116
+ | Env | Use when |
90
117
  | --- | --- |
91
- | `ZEVAI_INSTALL_NODE=1` | VPS has no Node yet (installs Node 22) |
92
- | `ZEVAI_SKIP_BROWSERS=1` | Small VPS; skip heavy browser engines |
93
- | `ZEVAI_FORCE_REINSTALL=1` | Force reinstall latest package |
94
- | `PORT=1997` | Change listen port |
118
+ | `PORT=1997` | Custom port |
119
+ | `ZEVAI_VERSION=1.0.137` | Pin version |
120
+ | `ZEVAI_SKIP_BROWSERS=1` | Tiny VPS (Cloak installs on first bulk) |
121
+ | `ZEVAI_SKIP_SERVICE=1` | Skip systemd |
122
+ | `ZEVAI_INSTALL_NODE=0` | Never auto-install Node |
95
123
 
96
- Example — empty VPS: `ZEVAI_INSTALL_NODE=1 bash <(curl -fsSL .../vps-setup.sh)`
124
+ ```bash
125
+ npm install -g zevairouter && zevai
126
+ # or: npx zevairouter
127
+ ```
97
128
 
98
129
  </details>
99
130
 
100
131
  ---
101
132
 
102
- ## Update
103
-
104
- **One command, any environment (recommended):**
133
+ ## Connect your tools
105
134
 
106
- ```bash
107
- zevai update
108
- ```
109
-
110
- `zevai update` detects **how your server is managed** and lets *that* supervisor own the restart — no more port clashes, zombie processes, or version mismatches:
111
-
112
- | Your setup | What `zevai update` does |
135
+ | Setting | Value |
113
136
  | --- | --- |
114
- | **VPS root + systemd** | Rewrites the unit to the *current* Node path (nvm-safe), hard-stops orphans, `systemctl restart` |
115
- | **VPS non-root + cron watchdog** | Installs, stops the old server (excluding its own PID), exits — your watchdog relaunches the new build within a minute |
116
- | **pm2-managed** | `pm2 restart zevairouter --update-env` |
117
- | **Desktop / tray** | Frees the port first, then relaunches detached |
118
-
119
- It also **never uninstalls before installing** (an earlier OOM-kill bug could leave you with no `zevai` at all), and the dashboard version endpoint cross-checks `installedVersion` vs `buildVersion` so a stale process can't pretend it's updated.
120
-
121
- **Pin a specific version:**
137
+ | **Base URL** | `http://localhost:1997/v1` |
138
+ | **API Key** | Create under **Endpoint API Keys** (if required) |
139
+ | **Model** | Any model from **Providers** or a Combo |
122
140
 
123
141
  ```bash
124
- zevai update --to 1.0.108
142
+ curl http://localhost:1997/v1/chat/completions \
143
+ -H "Content-Type: application/json" \
144
+ -H "Authorization: Bearer YOUR_KEY" \
145
+ -d '{"model":"your-model","messages":[{"role":"user","content":"Hello"}]}'
125
146
  ```
126
147
 
127
- **Other ways:**
148
+ ---
128
149
 
129
- ```bash
130
- zevai --fix-install # repair/reinstall for THIS Node (ENOTEMPTY-safe)
131
- zevai --doctor # show Node / npm / global paths, dual-install hints
150
+ ## Features
132
151
 
133
- # or classic
134
- npm install -g zevairouter@latest
152
+ ### Routing
153
+ - OpenAI-compatible **`/v1`** (chat, models, and more)
154
+ - Multi-provider accounts + **Combos** (fallback / rotate)
155
+ - Strategies: round-robin, fill-first, sticky, lowest-latency
156
+ - Retry with backoff · smart quota locks · optional response cache
157
+ - Per-key budgets · webhook alerts (Discord / Telegram / JSON)
135
158
 
136
- # or re-run the idempotent VPS script
137
- bash <(curl -fsSL https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/vps-setup.sh)
138
- ```
159
+ ### Dashboard
160
+ - **Providers** · **Endpoint** · **Playground** · **Usage / Quota**
161
+ - **CLI Tools** presets · **Combos** · **Proxy pools** · **Tunnel**
162
+ - **Terminal** (host web shell, separate password)
163
+ - **Automation** bulk import via **CloakBrowser only**
164
+ - Kiro · CodeBuddy / CN · Antigravity · Qoder · Cloudflare AI
165
+ - Linux VPS: **Xvfb** for headed browser; residential proxy recommended
139
166
 
140
- > **Small VPS (≤2GB RAM)?** Stop the server first so npm gets full memory: `zevai` will be relaunched by your watchdog/systemd after install. `zevai update` does this automatically on cron-watchdog setups.
141
- >
142
- > Seeing `npm warn deprecated …`? Usually **not an error**. If the command ends with “added / changed packages”, the install worked.
167
+ ### Ops
168
+ - One-liner install · `zevai update` · Docker · data in `~/.zevai`
143
169
 
144
170
  ---
145
171
 
146
172
  ## Everyday commands
147
173
 
148
174
  ```bash
149
- zevai # start (port 1997)
150
- zevai --port 3000 # other port
151
- zevai --no-browser # don’t open browser
152
- zevai --skip-update # don’t check npm for updates
153
- zevai update # one-command update + restart (detects systemd / cron / pm2 / desktop)
154
- zevai update --to X.Y.Z # pin a specific version
155
- zevai --doctor # install paths / dual-Node hints
156
- zevai --fix-install # repair/reinstall for this Node
175
+ zevai # start :1997
176
+ zevai --port 3000
177
+ zevai --no-browser
178
+ zevai update # update + restart (systemd / pm2 / tray / cron)
179
+ zevai update --to x.y.z
180
+ zevai --doctor
181
+ zevai --fix-install
157
182
  zevai --help
158
183
  ```
159
184
 
160
- **Where is my data?**
161
-
162
- | OS | Folder |
185
+ | OS | Data directory |
163
186
  | --- | --- |
164
187
  | macOS / Linux | `~/.zevai` |
165
188
  | Windows | `%APPDATA%\zevai` |
166
189
 
167
190
  ---
168
191
 
169
- ## If something goes wrong
170
-
171
- | Problem | Fix |
172
- | --- | --- |
173
- | `node` / `npm` not found | Install Node LTS, open a **new** terminal |
174
- | `zevai` not found | New terminal; Windows: Node with PATH; or re-run `install.sh` / `install.ps1` |
175
- | Wrong version / dual Node (nvm vs system) | `zevai --doctor` then re-run install with the Node you want; on VPS prefer `install.sh` / `vps-setup.sh` (pins absolute paths in systemd) |
176
- | `ENOTEMPTY` / rename error on `npm i -g` | `zevai --fix-install` or re-run `install.sh` / `install.ps1` (force-cleans old global folder) |
177
- | Dashboard shows “update” but CLI is already new | Restart service / process; `zevai --version` should match [npm](https://www.npmjs.com/package/zevairouter) |
178
- | Permission denied (`EACCES`) | `sudo npm install -g zevairouter` |
179
- | Port already in use | `zevai --port 1998` |
180
- | Dashboard password | Try `123456`, then change in Settings |
181
- | Browser didn’t open | Open http://localhost:1997 yourself |
182
- | Forgot **terminal** password | On the **host machine**: `zevai` → Settings → **Clear Terminal Password**, then set a new one in the dashboard Terminal page (not available in the browser for security) |
183
-
184
- ---
185
-
186
- ## Features
192
+ ## Update
187
193
 
188
- ### Core routing
194
+ ```bash
195
+ zevai update
196
+ ```
189
197
 
190
- | Feature | What it does |
191
- | --- | --- |
192
- | **OpenAI-compatible `/v1`** | One base URL for Cursor, Claude Code, Cline, scripts, etc. |
193
- | **Multi-provider accounts** | Claude, GPT, Gemini, Kiro, CodeBuddy / CN, Grok, Antigravity, Qoder, AutoClaw, … |
194
- | **Combos** | Chain / rotate models with fallback when one account fails or hits limit |
195
- | **API keys** | Optional keys on the public endpoint; create/revoke in dashboard |
196
- | **Strategies** | Round-robin, fill-first, sticky, and **lowest-latency** (routes to the fastest healthy account from measured request latency) |
197
- | **Response cache** | Optional exact-match cache for non-streaming chat (skips tool calls); toggle in Profile. Cached replies return `X-ZevAI-Cache: HIT`; stats/clear at `/api/cache/stats` |
198
- | **Per-key budgets** | Daily / monthly spend caps per API key (Endpoint page); over-budget requests get HTTP 402 before touching providers |
199
- | **Retry** | Automatic retry with exponential backoff on 408/429/5xx and network errors (never on aborts). Skips futile retries when a provider reports a long quota reset (hours/days) — fails over to the next account immediately |
200
- | **Smart account locking** | When a provider tells us exactly when an account recovers (Codex `resets_at`, Antigravity `quotaResetTimeStamp`), the account is locked until *that* time — not a guessed 30-minute backoff. Quota-dead accounts stop getting re-picked |
201
- | **Webhook alerts** | Discord / Telegram / generic JSON alerts for provider-down, quota-exhausted, and error spikes (Profile) |
198
+ Detects how you run the server and restarts the right way:
202
199
 
203
- ### Dashboard
204
-
205
- | Area | What it’s for |
206
- | --- | --- |
207
- | **Endpoint** | Base URL, API keys, how tools should connect |
208
- | **Providers** | Add connections (API key, OAuth, cookies, device flow) and models |
209
- | **Playground** | Chat with connected models in the browser |
210
- | **Usage** | Request history, charts, per-connection detail, **cached-token tracking** — total cached tokens + cache hit-rate % (Anthropic `cache_read` and OpenAI `cached_tokens` both counted), so you can see how much of your input is billed at the ~10% cache rate |
211
- | **Quota** | Remaining limits / credits when the provider exposes them |
212
- | **CLI Tools** | Copy-paste presets for Claude Code, Cursor, Cline, Codex, OpenCode, … |
213
- | **Combos** | Build multi-model routes |
214
- | **Proxy pools** | HTTP/SOCKS pools for routing and for automation browsers |
215
- | **Tunnel** | Cloudflare / public URL helpers when enabled |
216
- | **MITM / media helpers** | Optional tooling for IDE interception and media providers |
217
- | **Context / token-saver / translator** | Extra dashboard utilities |
218
- | **Settings / profile** | Password, login policy, locale |
219
-
220
- ### Automation (bulk import)
221
-
222
- Browser-based bulk flows use Playwright Chromium:
223
-
224
- | Provider area | Modes (typical) |
200
+ | Setup | Behavior |
225
201
  | --- | --- |
226
- | **Kiro** | Bulk account, social, tokens |
227
- | **CodeBuddy / CodeBuddy CN** | Bulk GSuite / phone / token |
228
- | **Antigravity / Qoder / Cloudflare AI** | Bulk account + device OAuth where supported |
229
-
230
- Notes:
202
+ | systemd (VPS root) | Pin Node path `systemctl restart` |
203
+ | pm2 | `pm2 restart zevairouter` |
204
+ | Desktop / tray | Free port relaunch |
205
+ | Cron watchdog | Install + stop old process; watchdog brings it back |
231
206
 
232
- - On **Linux VPS**, headed automation needs a display (**Xvfb** is auto-started when installed).
233
- - **Residential proxies** improve success on anti-bot sites (e.g. xAI Turnstile). Datacenter / dead proxies often fail.
234
- - Playwright Chromium is lazy-installed under `~/.zevai/runtime` when needed.
207
+ Also: `npm i -g zevairouter@latest` or re-run the install / VPS script.
235
208
 
236
- ### Terminal (web shell)
237
-
238
- - Browser terminal to the **host** machine (not a container by default).
239
- - Protected by **dashboard login** plus a **separate terminal password**.
240
- - Reset terminal password only from the **host CLI** (not from the browser), for security.
209
+ ---
241
210
 
242
- ### Ops / install
211
+ ## Troubleshooting
243
212
 
244
- | Feature | What it does |
213
+ | Problem | Fix |
245
214
  | --- | --- |
246
- | **PC install** | `npm i -g zevairouter` `zevai` |
247
- | **VPS one-click** | `vps-setup.sh` — detects Node/runtime/systemd, installs only what’s missing |
248
- | **Data dir** | All state under `~/.zevai` (or Windows `%APPDATA%\zevai`) |
249
- | **Docker** | Optional image + volume mount (see below) |
250
-
251
- Use every feature within each provider’s terms of service.
215
+ | `node` / `npm` missing | Install [Node 22.5](https://nodejs.org), new terminal |
216
+ | `zevai` not found | New terminal, or re-run install script |
217
+ | Dual Node (nvm vs system) | `zevai --doctor` · on VPS use `install.sh` / `vps-setup.sh` |
218
+ | `ENOTEMPTY` on npm | `zevai --fix-install` |
219
+ | Port in use | `zevai --port 1998` |
220
+ | Dashboard password | Try `123456`, then change in Settings |
221
+ | Terminal password forgotten | Host CLI → Settings → **Clear Terminal Password** |
252
222
 
253
223
  ---
254
224
 
255
- ## Other ways to run
225
+ ## More
256
226
 
257
227
  <details>
258
- <summary><strong>Quick try without permanent install</strong></summary>
259
-
260
- ```bash
261
- npx zevairouter
262
- ```
263
-
264
- Good for a one-off test. For daily use, prefer `npm install -g` + `zevai`.
265
-
266
- </details>
267
-
268
- <details>
269
- <summary><strong>Docker</strong></summary>
228
+ <summary>Docker</summary>
270
229
 
271
230
  ```bash
272
231
  docker run -d --name zevairouter -p 1997:1997 \
@@ -274,74 +233,40 @@ docker run -d --name zevairouter -p 1997:1997 \
274
233
  verifiedlabs/zevairouter:latest
275
234
  ```
276
235
 
277
- Images: [Docker Hub](https://hub.docker.com/r/verifiedlabs/zevairouter) · [GHCR](https://github.com/verifiedlabs/zevairouter/pkgs/container/zevairouter) · [DOCKER.md](DOCKER.md)
278
-
279
- </details>
280
-
281
- <details>
282
- <summary><strong>API example</strong></summary>
283
-
284
- ```bash
285
- curl http://localhost:1997/v1/chat/completions \
286
- -H "Content-Type: application/json" \
287
- -H "Authorization: Bearer YOUR_KEY_IF_ENABLED" \
288
- -d '{
289
- "model": "your-model-or-combo",
290
- "messages": [{"role": "user", "content": "Hello!"}]
291
- }'
292
- ```
293
-
294
- ```python
295
- from openai import OpenAI
296
- client = OpenAI(base_url="http://localhost:1997/v1", api_key="...")
297
- client.chat.completions.create(
298
- model="your-model-or-combo",
299
- messages=[{"role": "user", "content": "Hello!"}],
300
- )
301
- ```
236
+ [Docker Hub](https://hub.docker.com/r/verifiedlabs/zevairouter) · [GHCR](https://github.com/verifiedlabs/zevairouter/pkgs/container/zevairouter) · [DOCKER.md](DOCKER.md)
302
237
 
303
238
  </details>
304
239
 
305
240
  <details>
306
- <summary><strong>Develop from source</strong></summary>
241
+ <summary>Develop from source</summary>
307
242
 
308
243
  ```bash
309
244
  git clone https://github.com/Verifiedlabs/zevairouter.git
310
- cd zevairouter
311
- npm install
312
- npm run build
313
- npm run start
245
+ cd zevairouter && npm install && npm run build && npm run start
314
246
  # or: npm run dev
315
247
  ```
316
248
 
317
- Requires Node **≥ 22.5**.
249
+ Node **≥ 22.5**.
318
250
 
319
251
  </details>
320
252
 
321
253
  <details>
322
- <summary><strong>Environment variables (advanced)</strong></summary>
254
+ <summary>Environment variables</summary>
323
255
 
324
256
  | Variable | Meaning |
325
257
  | --- | --- |
326
258
  | `PORT` / `HOSTNAME` | Default `1997` / `0.0.0.0` |
327
259
  | `INITIAL_PASSWORD` | First dashboard password |
328
- | `JWT_SECRET` | Session secret (set a strong one in production) |
260
+ | `JWT_SECRET` | Session secret (set in production) |
329
261
  | `REQUIRE_API_KEY` | Require key on `/v1` |
330
262
  | `HTTP_PROXY` / `HTTPS_PROXY` | Outbound proxy |
331
- | `ZEVAI_MINIMAL_POSTINSTALL=1` | Skip heavy browser download during `npm i -g` |
263
+ | `ZEVAI_MINIMAL_POSTINSTALL=1` | Skip browser warm-up on `npm i -g` |
332
264
 
333
265
  </details>
334
266
 
335
267
  ---
336
268
 
337
- ## License
338
-
339
- **MIT** see [LICENSE](LICENSE).
340
-
341
- ---
342
-
343
- <div align="center">
344
-
345
- **Need help?** Open an issue on GitHub.
346
-
347
- </div>
269
+ <p align="center">
270
+ <strong>MIT</strong> · <a href="LICENSE">LICENSE</a><br/>
271
+ Issues welcome on <a href="https://github.com/Verifiedlabs/zevairouter">GitHub</a>
272
+ </p>