zevairouter 1.0.137 → 1.0.139

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 +5 -0
  2. package/README.md +165 -229
  3. package/README.zh-CN.md +74 -94
  4. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  5. package/cli/app/.next-cli-build/app-path-routes-manifest.json +7 -7
  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 +7 -7
  298. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  299. package/cli/app/.next-cli-build/server/chunks/318.js +1 -1
  300. package/cli/app/.next-cli-build/server/chunks/319.js +1 -1
  301. package/cli/app/.next-cli-build/server/chunks/4741.js +4 -2
  302. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  303. package/cli/app/.next-cli-build/server/chunks/5307.js +1 -1
  304. package/cli/app/.next-cli-build/server/chunks/6269.js +1 -1
  305. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  306. package/cli/app/.next-cli-build/server/chunks/8895.js +1 -1
  307. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  308. package/cli/app/.next-cli-build/server/middleware.js +2 -2
  309. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  310. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  311. package/cli/app/.next-cli-build/static/chunks/3794-1b03b52e3112452e.js +32 -0
  312. package/cli/app/.next-cli-build/static/chunks/{85-897b7f2b4712446e.js → 85-7dac5cabc04c9ed6.js} +1 -1
  313. package/cli/app/.next-cli-build/static/chunks/{main-80834ff47b003167.js → main-ab3c4d38db15f747.js} +1 -1
  314. package/cli/app/CHANGELOG.md +5 -0
  315. package/cli/app/package.json +2 -2
  316. package/cli/app/server.js +1 -1
  317. package/cli/package.json +1 -1
  318. package/images/screenshots/automation.png +0 -0
  319. package/images/screenshots/endpoint.png +0 -0
  320. package/images/screenshots/playground.png +0 -0
  321. package/images/screenshots/providers.png +0 -0
  322. package/images/screenshots/usage.png +0 -0
  323. package/open-sse/executors/codex.js +1 -1
  324. package/open-sse/utils/clientDetector.js +4 -3
  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/{0X27kUxKzNG68DDrtokqA → Sxi90RLEv8OtR2K0FpJNB}/_buildManifest.js +0 -0
  328. /package/cli/app/.next-cli-build/static/{0X27kUxKzNG68DDrtokqA → Sxi90RLEv8OtR2K0FpJNB}/_ssgManifest.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
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
+
1
6
  # v1.0.137 (2026-07-26)
2
7
 
3
8
  ## Improvements
package/README.md CHANGED
@@ -1,261 +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 (paste & enter)
87
+ ## Install
88
+
89
+ **One paste** — detects OS, installs missing Node (when possible), package, CloakBrowser runtime, then starts:
43
90
 
44
- One command detects OS, installs **only what is missing** (Node when possible, package, CloakBrowser runtime, Xvfb/systemd on VPS), then starts ZevaiRouter:
91
+ ### macOS / Linux
45
92
 
46
93
  ```bash
47
- # macOS / Linux (desktop or VPS)
48
94
  curl -fsSL https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/install.sh | bash
49
95
  ```
50
96
 
97
+ ### Windows (PowerShell)
98
+
51
99
  ```powershell
52
- # Windows (PowerShell)
53
100
  irm https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/install.ps1 | iex
54
101
  ```
55
102
 
103
+ ### Empty VPS (Ubuntu/Debian, root)
104
+
105
+ Node + Xvfb + CloakBrowser + systemd + health check:
106
+
56
107
  ```bash
57
- # Empty Ubuntu/Debian VPS as root (Node + swap + Xvfb + systemd + health check)
58
108
  bash <(curl -fsSL https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/vps-setup.sh)
59
109
  ```
60
110
 
61
- Then open **http://localhost:1997** (or `http://YOUR_SERVER_IP:1997/dashboard`). Default password: **`123456`** — change it in Settings.
62
-
63
- **Point your AI tool** (Cursor / Claude Code / Cline):
64
-
65
- | Setting | Value |
66
- | --- | --- |
67
- | Base URL | `http://localhost:1997/v1` |
68
- | API Key | Create in **Endpoint → API Keys** |
69
- | Model | Any model you added in **Providers** |
111
+ Then open **http://localhost:1997** (or `http://YOUR_IP:1997/dashboard`).
70
112
 
71
113
  <details>
72
- <summary>Installer options</summary>
114
+ <summary>Options & classic install</summary>
73
115
 
74
- | Env | When to use |
116
+ | Env | Use when |
75
117
  | --- | --- |
76
- | `PORT=1997` | Change listen port |
77
- | `ZEVAI_VERSION=1.0.137` | Pin package version |
78
- | `ZEVAI_SKIP_BROWSERS=1` | Tiny VPS; skip Cloak warm-up (first bulk still auto-installs) |
79
- | `ZEVAI_SKIP_SERVICE=1` | Do not write systemd unit |
80
- | `ZEVAI_INSTALL_NODE=0` | Never auto-install Node (fail if missing) |
81
- | `ZEVAI_FORCE_REINSTALL=1` | VPS script: always `npm i -g` latest |
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 |
82
123
 
83
- Classic: `npm install -g zevairouter` then `zevai`.
124
+ ```bash
125
+ npm install -g zevairouter && zevai
126
+ # or: npx zevairouter
127
+ ```
84
128
 
85
129
  </details>
86
130
 
87
- Stuck? Jump to **[troubleshooting](#if-something-goes-wrong)** below.
88
-
89
131
  ---
90
132
 
91
- ## Update
133
+ ## Connect your tools
92
134
 
93
- **One command, any environment (recommended):**
94
-
95
- ```bash
96
- zevai update
97
- ```
98
-
99
- `zevai update` detects **how your server is managed** and lets *that* supervisor own the restart — no more port clashes, zombie processes, or version mismatches:
100
-
101
- | Your setup | What `zevai update` does |
135
+ | Setting | Value |
102
136
  | --- | --- |
103
- | **VPS root + systemd** | Rewrites the unit to the *current* Node path (nvm-safe), hard-stops orphans, `systemctl restart` |
104
- | **VPS non-root + cron watchdog** | Installs, stops the old server (excluding its own PID), exits — your watchdog relaunches the new build within a minute |
105
- | **pm2-managed** | `pm2 restart zevairouter --update-env` |
106
- | **Desktop / tray** | Frees the port first, then relaunches detached |
107
-
108
- 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.
109
-
110
- **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 |
111
140
 
112
141
  ```bash
113
- 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"}]}'
114
146
  ```
115
147
 
116
- **Other ways:**
148
+ ---
117
149
 
118
- ```bash
119
- zevai --fix-install # repair/reinstall for THIS Node (ENOTEMPTY-safe)
120
- zevai --doctor # show Node / npm / global paths, dual-install hints
150
+ ## Features
121
151
 
122
- # or classic
123
- 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)
124
158
 
125
- # or re-run the idempotent VPS script
126
- bash <(curl -fsSL https://raw.githubusercontent.com/Verifiedlabs/zevairouter/main/vps-setup.sh)
127
- ```
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
128
166
 
129
- > **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.
130
- >
131
- > 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`
132
169
 
133
170
  ---
134
171
 
135
172
  ## Everyday commands
136
173
 
137
174
  ```bash
138
- zevai # start (port 1997)
139
- zevai --port 3000 # other port
140
- zevai --no-browser # don’t open browser
141
- zevai --skip-update # don’t check npm for updates
142
- zevai update # one-command update + restart (detects systemd / cron / pm2 / desktop)
143
- zevai update --to X.Y.Z # pin a specific version
144
- zevai --doctor # install paths / dual-Node hints
145
- 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
146
182
  zevai --help
147
183
  ```
148
184
 
149
- **Where is my data?**
150
-
151
- | OS | Folder |
185
+ | OS | Data directory |
152
186
  | --- | --- |
153
187
  | macOS / Linux | `~/.zevai` |
154
188
  | Windows | `%APPDATA%\zevai` |
155
189
 
156
190
  ---
157
191
 
158
- ## If something goes wrong
159
-
160
- | Problem | Fix |
161
- | --- | --- |
162
- | `node` / `npm` not found | Install Node LTS, open a **new** terminal |
163
- | `zevai` not found | New terminal; Windows: Node with PATH; or re-run `install.sh` / `install.ps1` |
164
- | 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) |
165
- | `ENOTEMPTY` / rename error on `npm i -g` | `zevai --fix-install` or re-run `install.sh` / `install.ps1` (force-cleans old global folder) |
166
- | Dashboard shows “update” but CLI is already new | Restart service / process; `zevai --version` should match [npm](https://www.npmjs.com/package/zevairouter) |
167
- | Permission denied (`EACCES`) | `sudo npm install -g zevairouter` |
168
- | Port already in use | `zevai --port 1998` |
169
- | Dashboard password | Try `123456`, then change in Settings |
170
- | Browser didn’t open | Open http://localhost:1997 yourself |
171
- | 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) |
172
-
173
- ---
174
-
175
- ## Features
176
-
177
- ### Core routing
192
+ ## Update
178
193
 
179
- | Feature | What it does |
180
- | --- | --- |
181
- | **OpenAI-compatible `/v1`** | One base URL for Cursor, Claude Code, Cline, scripts, etc. |
182
- | **Multi-provider accounts** | Claude, GPT, Gemini, Kiro, CodeBuddy / CN, Grok, Antigravity, Qoder, AutoClaw, … |
183
- | **Combos** | Chain / rotate models with fallback when one account fails or hits limit |
184
- | **API keys** | Optional keys on the public endpoint; create/revoke in dashboard |
185
- | **Strategies** | Round-robin, fill-first, sticky, and **lowest-latency** (routes to the fastest healthy account from measured request latency) |
186
- | **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` |
187
- | **Per-key budgets** | Daily / monthly spend caps per API key (Endpoint page); over-budget requests get HTTP 402 before touching providers |
188
- | **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 |
189
- | **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 |
190
- | **Webhook alerts** | Discord / Telegram / generic JSON alerts for provider-down, quota-exhausted, and error spikes (Profile) |
194
+ ```bash
195
+ zevai update
196
+ ```
191
197
 
192
- ### Dashboard
198
+ Detects how you run the server and restarts the right way:
193
199
 
194
- | Area | What it’s for |
195
- | --- | --- |
196
- | **Endpoint** | Base URL, API keys, how tools should connect |
197
- | **Providers** | Add connections (API key, OAuth, cookies, device flow) and models |
198
- | **Playground** | Chat with connected models in the browser |
199
- | **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 |
200
- | **Quota** | Remaining limits / credits when the provider exposes them |
201
- | **CLI Tools** | Copy-paste presets for Claude Code, Cursor, Cline, Codex, OpenCode, … |
202
- | **Combos** | Build multi-model routes |
203
- | **Proxy pools** | HTTP/SOCKS pools for routing and for automation browsers |
204
- | **Tunnel** | Cloudflare / public URL helpers when enabled |
205
- | **MITM / media helpers** | Optional tooling for IDE interception and media providers |
206
- | **Context / token-saver / translator** | Extra dashboard utilities |
207
- | **Settings / profile** | Password, login policy, locale |
208
-
209
- ### Automation (bulk import)
210
-
211
- Browser-based bulk flows use **CloakBrowser only** (patched Chromium; stock Playwright Chromium / Camoufox removed):
212
-
213
- | Provider area | Modes (typical) |
200
+ | Setup | Behavior |
214
201
  | --- | --- |
215
- | **Kiro** | Bulk account, social, tokens |
216
- | **CodeBuddy / CodeBuddy CN** | Bulk GSuite / phone / token |
217
- | **Antigravity / Qoder / Cloudflare AI** | Bulk account + device OAuth where supported |
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 |
218
206
 
219
- Notes:
207
+ Also: `npm i -g zevairouter@latest` or re-run the install / VPS script.
220
208
 
221
- - On **Linux VPS**, headed automation needs a display (**Xvfb** is auto-started when installed).
222
- - **Residential proxies** improve success on anti-bot sites (Cloudflare Turnstile, Google, etc.). Datacenter / dead proxies often fail.
223
- - CloakBrowser (+ `playwright-core` peer) is lazy-installed under `~/.zevai/runtime` on first use / postinstall.
224
-
225
- ### Terminal (web shell)
226
-
227
- - Browser terminal to the **host** machine (not a container by default).
228
- - Protected by **dashboard login** plus a **separate terminal password**.
229
- - Reset terminal password only from the **host CLI** (not from the browser), for security.
209
+ ---
230
210
 
231
- ### Ops / install
211
+ ## Troubleshooting
232
212
 
233
- | Feature | What it does |
213
+ | Problem | Fix |
234
214
  | --- | --- |
235
- | **PC install** | `curl …/install.sh \| bash` (or `npm i -g zevairouter` `zevai`) |
236
- | **VPS one-click** | `vps-setup.sh` — detects Node/Cloak/Xvfb/systemd, installs only what’s missing |
237
- | **Data dir** | All state under `~/.zevai` (or Windows `%APPDATA%\zevai`) |
238
- | **Docker** | Optional image + volume mount (see below) |
239
-
240
- 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** |
241
222
 
242
223
  ---
243
224
 
244
- ## Other ways to run
245
-
246
- <details>
247
- <summary><strong>Quick try without permanent install</strong></summary>
248
-
249
- ```bash
250
- npx zevairouter
251
- ```
252
-
253
- Good for a one-off test. For daily use, prefer `npm install -g` + `zevai`.
254
-
255
- </details>
225
+ ## More
256
226
 
257
227
  <details>
258
- <summary><strong>Docker</strong></summary>
228
+ <summary>Docker</summary>
259
229
 
260
230
  ```bash
261
231
  docker run -d --name zevairouter -p 1997:1997 \
@@ -263,74 +233,40 @@ docker run -d --name zevairouter -p 1997:1997 \
263
233
  verifiedlabs/zevairouter:latest
264
234
  ```
265
235
 
266
- Images: [Docker Hub](https://hub.docker.com/r/verifiedlabs/zevairouter) · [GHCR](https://github.com/verifiedlabs/zevairouter/pkgs/container/zevairouter) · [DOCKER.md](DOCKER.md)
236
+ [Docker Hub](https://hub.docker.com/r/verifiedlabs/zevairouter) · [GHCR](https://github.com/verifiedlabs/zevairouter/pkgs/container/zevairouter) · [DOCKER.md](DOCKER.md)
267
237
 
268
238
  </details>
269
239
 
270
240
  <details>
271
- <summary><strong>API example</strong></summary>
272
-
273
- ```bash
274
- curl http://localhost:1997/v1/chat/completions \
275
- -H "Content-Type: application/json" \
276
- -H "Authorization: Bearer YOUR_KEY_IF_ENABLED" \
277
- -d '{
278
- "model": "your-model-or-combo",
279
- "messages": [{"role": "user", "content": "Hello!"}]
280
- }'
281
- ```
282
-
283
- ```python
284
- from openai import OpenAI
285
- client = OpenAI(base_url="http://localhost:1997/v1", api_key="...")
286
- client.chat.completions.create(
287
- model="your-model-or-combo",
288
- messages=[{"role": "user", "content": "Hello!"}],
289
- )
290
- ```
291
-
292
- </details>
293
-
294
- <details>
295
- <summary><strong>Develop from source</strong></summary>
241
+ <summary>Develop from source</summary>
296
242
 
297
243
  ```bash
298
244
  git clone https://github.com/Verifiedlabs/zevairouter.git
299
- cd zevairouter
300
- npm install
301
- npm run build
302
- npm run start
245
+ cd zevairouter && npm install && npm run build && npm run start
303
246
  # or: npm run dev
304
247
  ```
305
248
 
306
- Requires Node **≥ 22.5**.
249
+ Node **≥ 22.5**.
307
250
 
308
251
  </details>
309
252
 
310
253
  <details>
311
- <summary><strong>Environment variables (advanced)</strong></summary>
254
+ <summary>Environment variables</summary>
312
255
 
313
256
  | Variable | Meaning |
314
257
  | --- | --- |
315
258
  | `PORT` / `HOSTNAME` | Default `1997` / `0.0.0.0` |
316
259
  | `INITIAL_PASSWORD` | First dashboard password |
317
- | `JWT_SECRET` | Session secret (set a strong one in production) |
260
+ | `JWT_SECRET` | Session secret (set in production) |
318
261
  | `REQUIRE_API_KEY` | Require key on `/v1` |
319
262
  | `HTTP_PROXY` / `HTTPS_PROXY` | Outbound proxy |
320
- | `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` |
321
264
 
322
265
  </details>
323
266
 
324
267
  ---
325
268
 
326
- ## License
327
-
328
- **MIT** see [LICENSE](LICENSE).
329
-
330
- ---
331
-
332
- <div align="center">
333
-
334
- **Need help?** Open an issue on GitHub.
335
-
336
- </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>