zevairouter 1.0.41 → 1.0.43

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 (505) hide show
  1. package/CHANGELOG.md +17 -7
  2. package/README.md +1 -1
  3. package/cli/LICENSE +1 -1
  4. package/cli/README.md +28 -28
  5. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  6. package/cli/app/.next-cli-build/app-path-routes-manifest.json +1 -1
  7. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  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.js +3 -3
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  37. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  38. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  39. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  40. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  41. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  42. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  43. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  44. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  46. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  47. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  48. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  49. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  50. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  51. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  52. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  53. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  54. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  63. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  65. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  72. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  73. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  74. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  75. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  95. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  97. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  98. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  99. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  100. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  101. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  102. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  103. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  104. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  105. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  106. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  107. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  108. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  109. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  110. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  111. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  112. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  113. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  114. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  115. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  116. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  117. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  118. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  119. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  120. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  121. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  122. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  123. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  124. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  125. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  126. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  127. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  128. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  129. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  130. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  131. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  132. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  133. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  134. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  135. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  136. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  137. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  138. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  139. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  140. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  141. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  142. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  143. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  144. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  145. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  146. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  147. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  148. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  149. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  150. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  151. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  152. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  153. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  154. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  155. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  156. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  157. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  158. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  159. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  160. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  161. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  162. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  163. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  164. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  165. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  166. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  167. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  168. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  169. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  170. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  171. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  172. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  173. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  174. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  175. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  176. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  177. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  178. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  179. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  180. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  181. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  182. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  183. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  184. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  185. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  186. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  187. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  188. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  189. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  190. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  191. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  192. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  193. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  194. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  195. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  196. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  197. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  198. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  199. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  200. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  201. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  202. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  203. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  204. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  205. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  206. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  207. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  208. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  209. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  210. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  211. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  212. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  213. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  214. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  215. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  216. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  217. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  218. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  219. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  220. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  221. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  222. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  223. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  224. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  225. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  226. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  227. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  228. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  229. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  230. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  231. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  232. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  233. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  234. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  235. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  236. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  237. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  238. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  239. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  240. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  241. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  242. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  243. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  244. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  245. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  246. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  247. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  248. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  249. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  250. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  251. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  252. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  253. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  254. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  255. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  256. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  257. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  258. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  259. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  260. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  261. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  262. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  263. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  264. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  265. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  266. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  267. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  268. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  269. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  270. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  271. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  272. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  273. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  274. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  275. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  276. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  277. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  278. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  279. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  280. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  281. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  282. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  283. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  284. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  285. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  286. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  287. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  288. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  289. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  290. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  291. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  292. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  293. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  294. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  295. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  296. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  297. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  298. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  299. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  300. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  301. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  302. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  303. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  304. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  305. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  307. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  308. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  309. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  310. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  311. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  313. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  314. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  315. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  316. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  317. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  318. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  319. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  320. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  321. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  322. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  323. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  324. package/cli/app/.next-cli-build/server/app-paths-manifest.json +1 -1
  325. package/cli/app/.next-cli-build/server/chunks/1939.js +1 -1
  326. package/cli/app/.next-cli-build/server/chunks/2722.js +16 -16
  327. package/cli/app/.next-cli-build/server/chunks/3104.js +1 -1
  328. package/cli/app/.next-cli-build/server/chunks/3110.js +1 -1
  329. package/cli/app/.next-cli-build/server/chunks/3159.js +1 -1
  330. package/cli/app/.next-cli-build/server/chunks/318.js +1 -1
  331. package/cli/app/.next-cli-build/server/chunks/4746.js +3 -3
  332. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  333. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  334. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  335. package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
  336. package/cli/app/.next-cli-build/server/chunks/7276.js +2 -2
  337. package/cli/app/.next-cli-build/server/chunks/8242.js +1 -1
  338. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  339. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  340. package/cli/app/.next-cli-build/server/chunks/915.js +7 -7
  341. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  342. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  343. package/cli/app/.next-cli-build/server/middleware.js +2 -2
  344. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  345. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  346. package/cli/app/.next-cli-build/static/chunks/{1321-477a5798b08e9aff.js → 1321-3f408a698d9c9da9.js} +1 -1
  347. package/cli/app/.next-cli-build/static/chunks/6069-f8381e3d2db222bb.js +54 -0
  348. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-c8d0727b97defe81.js +1 -0
  349. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-5c75e636ebf21297.js +1 -0
  350. package/cli/app/package.json +1 -1
  351. package/cli/app/public/i18n/literals/ar.json +4 -4
  352. package/cli/app/public/i18n/literals/bn.json +4 -4
  353. package/cli/app/public/i18n/literals/cs.json +4 -4
  354. package/cli/app/public/i18n/literals/da.json +4 -4
  355. package/cli/app/public/i18n/literals/de.json +4 -4
  356. package/cli/app/public/i18n/literals/el.json +4 -4
  357. package/cli/app/public/i18n/literals/es.json +4 -4
  358. package/cli/app/public/i18n/literals/fi.json +4 -4
  359. package/cli/app/public/i18n/literals/fr.json +4 -4
  360. package/cli/app/public/i18n/literals/he.json +4 -4
  361. package/cli/app/public/i18n/literals/hi.json +4 -4
  362. package/cli/app/public/i18n/literals/hu.json +4 -4
  363. package/cli/app/public/i18n/literals/id.json +4 -4
  364. package/cli/app/public/i18n/literals/it.json +4 -4
  365. package/cli/app/public/i18n/literals/ja.json +4 -4
  366. package/cli/app/public/i18n/literals/ko.json +4 -4
  367. package/cli/app/public/i18n/literals/nl.json +4 -4
  368. package/cli/app/public/i18n/literals/no.json +4 -4
  369. package/cli/app/public/i18n/literals/pl.json +4 -4
  370. package/cli/app/public/i18n/literals/pt-BR.json +4 -4
  371. package/cli/app/public/i18n/literals/pt-PT.json +4 -4
  372. package/cli/app/public/i18n/literals/ro.json +4 -4
  373. package/cli/app/public/i18n/literals/ru.json +4 -4
  374. package/cli/app/public/i18n/literals/sv.json +4 -4
  375. package/cli/app/public/i18n/literals/th.json +4 -4
  376. package/cli/app/public/i18n/literals/tl.json +4 -4
  377. package/cli/app/public/i18n/literals/tr.json +4 -4
  378. package/cli/app/public/i18n/literals/uk.json +4 -4
  379. package/cli/app/public/i18n/literals/ur.json +4 -4
  380. package/cli/app/public/i18n/literals/vi.json +4 -4
  381. package/cli/app/public/i18n/literals/zh-CN.json +15 -15
  382. package/cli/app/public/i18n/literals/zh-TW.json +4 -4
  383. package/cli/app/src/mitm/server.js +2 -2
  384. package/cli/cli.js +9 -9
  385. package/cli/package.json +1 -1
  386. package/cli/src/cli/api/client.js +3 -3
  387. package/cli/src/cli/menus/cliTools.js +18 -15
  388. package/cli/src/cli/menus/settings.js +1 -1
  389. package/cli/src/cli/tray/autostart.js +6 -6
  390. package/cli/src/cli/tray/tray.js +2 -2
  391. package/cli/src/cli/tray/tray.ps1 +1 -1
  392. package/open-sse/config/appConstants.js +1 -1
  393. package/open-sse/config/kiroConstants.js +5 -5
  394. package/open-sse/config/providerModels.js +1 -1
  395. package/open-sse/executors/codebuddy-cn.js +1 -1
  396. package/open-sse/executors/commandcode.js +1 -1
  397. package/open-sse/rtk/headroom.js +1 -1
  398. package/open-sse/services/antigravityObfuscation.js +1 -1
  399. package/open-sse/services/kiroModels.js +4 -4
  400. package/open-sse/services/usage.js +1 -1
  401. package/open-sse/translator/request/openai-to-kiro.js +1 -1
  402. package/open-sse/translator/response/commandcode-to-openai.js +1 -1
  403. package/open-sse/utils/sessionManager.js +2 -2
  404. package/open-sse/utils/thinkingSuffix.js +1 -1
  405. package/package.json +1 -1
  406. package/public/i18n/literals/ar.json +4 -4
  407. package/public/i18n/literals/bn.json +4 -4
  408. package/public/i18n/literals/cs.json +4 -4
  409. package/public/i18n/literals/da.json +4 -4
  410. package/public/i18n/literals/de.json +4 -4
  411. package/public/i18n/literals/el.json +4 -4
  412. package/public/i18n/literals/es.json +4 -4
  413. package/public/i18n/literals/fi.json +4 -4
  414. package/public/i18n/literals/fr.json +4 -4
  415. package/public/i18n/literals/he.json +4 -4
  416. package/public/i18n/literals/hi.json +4 -4
  417. package/public/i18n/literals/hu.json +4 -4
  418. package/public/i18n/literals/id.json +4 -4
  419. package/public/i18n/literals/it.json +4 -4
  420. package/public/i18n/literals/ja.json +4 -4
  421. package/public/i18n/literals/ko.json +4 -4
  422. package/public/i18n/literals/nl.json +4 -4
  423. package/public/i18n/literals/no.json +4 -4
  424. package/public/i18n/literals/pl.json +4 -4
  425. package/public/i18n/literals/pt-BR.json +4 -4
  426. package/public/i18n/literals/pt-PT.json +4 -4
  427. package/public/i18n/literals/ro.json +4 -4
  428. package/public/i18n/literals/ru.json +4 -4
  429. package/public/i18n/literals/sv.json +4 -4
  430. package/public/i18n/literals/th.json +4 -4
  431. package/public/i18n/literals/tl.json +4 -4
  432. package/public/i18n/literals/tr.json +4 -4
  433. package/public/i18n/literals/uk.json +4 -4
  434. package/public/i18n/literals/ur.json +4 -4
  435. package/public/i18n/literals/vi.json +4 -4
  436. package/public/i18n/literals/zh-CN.json +15 -15
  437. package/public/i18n/literals/zh-TW.json +4 -4
  438. package/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.js +2 -2
  439. package/src/app/(dashboard)/dashboard/cli-tools/components/ApiKeySelect.js +1 -1
  440. package/src/app/(dashboard)/dashboard/cli-tools/components/BaseUrlSelect.js +1 -1
  441. package/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +5 -5
  442. package/src/app/(dashboard)/dashboard/cli-tools/components/ClineToolCard.js +4 -4
  443. package/src/app/(dashboard)/dashboard/cli-tools/components/CodexToolCard.js +8 -8
  444. package/src/app/(dashboard)/dashboard/cli-tools/components/CopilotToolCard.js +7 -7
  445. package/src/app/(dashboard)/dashboard/cli-tools/components/CoworkToolCard.js +4 -4
  446. package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +4 -4
  447. package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +1 -1
  448. package/src/app/(dashboard)/dashboard/cli-tools/components/DroidToolCard.js +16 -11
  449. package/src/app/(dashboard)/dashboard/cli-tools/components/EndpointPresetControl.js +1 -1
  450. package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +3 -3
  451. package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +16 -16
  452. package/src/app/(dashboard)/dashboard/cli-tools/components/KiloToolCard.js +4 -4
  453. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +2 -2
  454. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +11 -11
  455. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenCodeToolCard.js +18 -13
  456. package/src/app/(dashboard)/dashboard/cli-tools/components/ToolSummaryCard.js +1 -1
  457. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +21 -1
  458. package/src/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  459. package/src/app/api/cli-tools/claude-settings/route.js +2 -2
  460. package/src/app/api/cli-tools/cline-settings/route.js +4 -4
  461. package/src/app/api/cli-tools/codex-settings/route.js +16 -16
  462. package/src/app/api/cli-tools/copilot-settings/route.js +19 -14
  463. package/src/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  464. package/src/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  465. package/src/app/api/cli-tools/cowork-settings/route.js +4 -4
  466. package/src/app/api/cli-tools/deepseek-tui-settings/route.js +7 -7
  467. package/src/app/api/cli-tools/droid-settings/route.js +12 -12
  468. package/src/app/api/cli-tools/hermes-settings/route.js +4 -4
  469. package/src/app/api/cli-tools/jcode-settings/route.js +13 -13
  470. package/src/app/api/cli-tools/kilo-settings/route.js +7 -7
  471. package/src/app/api/cli-tools/openclaw-settings/route.js +26 -26
  472. package/src/app/api/cli-tools/opencode-settings/route.js +27 -27
  473. package/src/app/api/headroom/restart/route.js +1 -1
  474. package/src/app/api/headroom/start/route.js +1 -1
  475. package/src/app/api/models/test/ping.js +2 -2
  476. package/src/app/api/providers/client/route.js +11 -3
  477. package/src/app/globals.css +1 -1
  478. package/src/dashboardGuard.js +2 -2
  479. package/src/lib/appUpdater.js +4 -4
  480. package/src/lib/db/dataDirMigration.js +18 -26
  481. package/src/lib/headroom/detect.js +1 -1
  482. package/src/lib/mcp/stdioSseBridge.js +5 -5
  483. package/src/lib/network/proxyTest.js +1 -1
  484. package/src/lib/oauth/constants/xai.js +1 -1
  485. package/src/lib/oauth/services/codebuddyBulkImportManager.js +1 -1
  486. package/src/mitm/cert/install.js +11 -6
  487. package/src/mitm/cert/rootCA.js +2 -2
  488. package/src/mitm/config.js +1 -1
  489. package/src/mitm/handlers/base.js +4 -4
  490. package/src/mitm/handlers/copilot.js +2 -2
  491. package/src/mitm/handlers/kiro.js +3 -3
  492. package/src/mitm/manager.js +22 -17
  493. package/src/mitm/paths.js +1 -1
  494. package/src/mitm/server.js +1 -1
  495. package/src/shared/constants/cliTools.js +8 -8
  496. package/src/shared/constants/providers.js +7 -3
  497. package/src/shared/services/initializeApp.js +1 -1
  498. package/src/shared/utils/clineAuth.js +2 -2
  499. package/src/shared/utils/machineId.js +1 -1
  500. package/src/sse/services/codexGateway.js +4 -4
  501. package/cli/app/.next-cli-build/static/chunks/6069-3a19c2e23280b9f4.js +0 -54
  502. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-95c0533e8dd61515.js +0 -1
  503. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-3b33a64814f8c670.js +0 -1
  504. /package/cli/app/.next-cli-build/static/{nyh5UKJNxYaLZepC5PtgE → fd5MEFhSt3dq0IoH1ok24}/_buildManifest.js +0 -0
  505. /package/cli/app/.next-cli-build/static/{nyh5UKJNxYaLZepC5PtgE → fd5MEFhSt3dq0IoH1ok24}/_ssgManifest.js +0 -0
@@ -1,5 +1,7 @@
1
1
  "use client";
2
2
 
3
+
4
+
3
5
  import { useState, useEffect, useRef } from "react";
4
6
  import { Card, Button, ModelSelectModal, ManualConfigModal } from "@/shared/components";
5
7
  import Image from "next/image";
@@ -7,6 +9,9 @@ import BaseUrlSelect from "./BaseUrlSelect";
7
9
  import ApiKeySelect from "./ApiKeySelect";
8
10
  import { matchKnownEndpoint } from "./cliEndpointMatch";
9
11
 
12
+ const LEGACY_BRAND = String.fromCharCode(57) + "Router";
13
+ const LEGACY_BRAND_LC = LEGACY_BRAND.toLowerCase();
14
+
10
15
  const CLOUD_URL = process.env.NEXT_PUBLIC_CLOUD_URL;
11
16
 
12
17
  export default function DroidToolCard({
@@ -41,8 +46,8 @@ export default function DroidToolCard({
41
46
 
42
47
  const getConfigStatus = () => {
43
48
  if (!droidStatus?.installed) return null;
44
- // Check for any 9Router model entry (support multi-model: custom:9Router-0, custom:9Router-1, ...)
45
- const currentConfig = droidStatus.settings?.customModels?.find(m => m.id?.startsWith("custom:9Router"));
49
+ // Check for any ZevaiRouter model entry (support multi-model: custom:Zevai-0, custom:Zevai-1, ...)
50
+ const currentConfig = droidStatus.settings?.customModels?.find(m => (m.id?.startsWith("custom:Zevai") || m.id?.startsWith(`custom:${LEGACY_BRAND}`)));
46
51
  if (!currentConfig) return "not_configured";
47
52
  return matchKnownEndpoint(currentConfig.baseUrl, { tunnelPublicUrl, tailscaleUrl, cloudUrl: cloudEnabled ? CLOUD_URL : null }) ? "configured" : "other";
48
53
  };
@@ -82,14 +87,14 @@ export default function DroidToolCard({
82
87
  if (droidStatus?.installed && !hasInitializedModel.current) {
83
88
  hasInitializedModel.current = true;
84
89
  const existingModels = (droidStatus.settings?.customModels || [])
85
- .filter(m => m.id?.startsWith("custom:9Router"))
90
+ .filter(m => (m.id?.startsWith("custom:Zevai") || m.id?.startsWith(`custom:${LEGACY_BRAND}`)))
86
91
  .sort((a, b) => (a.index || 0) - (b.index || 0))
87
92
  .map(m => m.model);
88
93
  if (existingModels.length > 0) {
89
94
  setModelList(existingModels);
90
95
  } else {
91
- // Legacy: single model stored as custom:9Router-0
92
- const legacy = droidStatus.settings?.customModels?.find(m => m.id === "custom:9Router-0");
96
+ // Legacy: single model stored as custom:Zevai-0
97
+ const legacy = droidStatus.settings?.customModels?.find(m => (m.id === "custom:Zevai-0" || m.id === `custom:${LEGACY_BRAND}-0`));
93
98
  if (legacy?.model) {
94
99
  setModelList([legacy.model]);
95
100
  }
@@ -141,7 +146,7 @@ export default function DroidToolCard({
141
146
  try {
142
147
  const keyToUse = selectedApiKey?.trim()
143
148
  || (apiKeys?.length > 0 ? apiKeys[0].key : null)
144
- || (!cloudEnabled ? "sk_9router" : null);
149
+ || (!cloudEnabled ? "sk_zevai" : null);
145
150
 
146
151
  const res = await fetch("/api/cli-tools/droid-settings", {
147
152
  method: "POST",
@@ -190,12 +195,12 @@ export default function DroidToolCard({
190
195
  const getManualConfigs = () => {
191
196
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
192
197
  ? selectedApiKey
193
- : (!cloudEnabled ? "sk_9router" : "<API_KEY_FROM_DASHBOARD>");
198
+ : (!cloudEnabled ? "sk_zevai" : "<API_KEY_FROM_DASHBOARD>");
194
199
 
195
200
  const settingsContent = {
196
201
  customModels: modelList.map((m, i) => ({
197
202
  model: m,
198
- id: `custom:9Router-${i}`,
203
+ id: `custom:Zevai-${i}`,
199
204
  index: i,
200
205
  baseUrl: getEffectiveBaseUrl(),
201
206
  apiKey: keyToUse,
@@ -304,12 +309,12 @@ export default function DroidToolCard({
304
309
  </div>
305
310
 
306
311
  {/* Current configured */}
307
- {droidStatus?.settings?.customModels?.find(m => m.id?.startsWith("custom:9Router"))?.baseUrl && (
312
+ {droidStatus?.settings?.customModels?.find(m => (m.id?.startsWith("custom:Zevai") || m.id?.startsWith(`custom:${LEGACY_BRAND}`)))?.baseUrl && (
308
313
  <div className="grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2">
309
314
  <span className="text-xs font-semibold text-text-main sm:text-right sm:text-sm">Current</span>
310
315
  <span className="material-symbols-outlined hidden text-text-muted text-[14px] sm:inline">arrow_forward</span>
311
316
  <span className="min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5">
312
- {droidStatus.settings.customModels.find(m => m.id?.startsWith("custom:9Router")).baseUrl}
317
+ {droidStatus.settings.customModels.find(m => (m.id?.startsWith("custom:Zevai") || m.id?.startsWith(`custom:${LEGACY_BRAND}`))).baseUrl}
313
318
  </span>
314
319
  </div>
315
320
  )}
@@ -377,7 +382,7 @@ export default function DroidToolCard({
377
382
  <Button variant="primary" size="sm" onClick={handleApplySettings} disabled={modelList.length === 0} loading={applying}>
378
383
  <span className="material-symbols-outlined text-[14px] mr-1">save</span>Apply
379
384
  </Button>
380
- <Button variant="outline" size="sm" onClick={handleResetSettings} disabled={!droidStatus?.has9Router} loading={restoring}>
385
+ <Button variant="outline" size="sm" onClick={handleResetSettings} disabled={!droidStatus?.hasZevai} loading={restoring}>
381
386
  <span className="material-symbols-outlined text-[14px] mr-1">restore</span>Reset
382
387
  </Button>
383
388
  <Button variant="ghost" size="sm" onClick={() => setShowManualConfigModal(true)}>
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useEffect, useMemo, useState } from "react";
4
4
 
5
- const STORAGE_KEY = "9router.cliToolEndpointPresets";
5
+ const STORAGE_KEY = "zevai.cliToolEndpointPresets";
6
6
 
7
7
  function maskApiKey(apiKey) {
8
8
  if (!apiKey) return "No API key";
@@ -116,7 +116,7 @@ export default function HermesToolCard({
116
116
  try {
117
117
  const keyToUse = selectedApiKey?.trim()
118
118
  || (apiKeys?.length > 0 ? apiKeys[0].key : null)
119
- || (!cloudEnabled ? "sk_9router" : null);
119
+ || (!cloudEnabled ? "sk_zevai" : null);
120
120
 
121
121
  const res = await fetch(ENDPOINT, {
122
122
  method: "POST",
@@ -169,7 +169,7 @@ export default function HermesToolCard({
169
169
  const getManualConfigs = () => {
170
170
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
171
171
  ? selectedApiKey
172
- : (!cloudEnabled ? "sk_9router" : "<API_KEY_FROM_DASHBOARD>");
172
+ : (!cloudEnabled ? "sk_zevai" : "<API_KEY_FROM_DASHBOARD>");
173
173
 
174
174
  const yamlContent = `model:\n default: "${selectedModel || "provider/model-id"}"\n provider: "custom"\n base_url: "${getEffectiveBaseUrl()}"\n`;
175
175
  const envContent = `OPENAI_API_KEY=${keyToUse}\n`;
@@ -284,7 +284,7 @@ export default function HermesToolCard({
284
284
  <Button variant="primary" size="sm" onClick={handleApply} disabled={!selectedModel} loading={applying} className="w-full sm:w-auto">
285
285
  <span className="material-symbols-outlined text-[14px] mr-1">save</span>Apply
286
286
  </Button>
287
- <Button variant="outline" size="sm" onClick={handleReset} disabled={!hermesStatus?.has9Router} loading={restoring} className="w-full sm:w-auto">
287
+ <Button variant="outline" size="sm" onClick={handleReset} disabled={!hermesStatus?.hasZevai} loading={restoring} className="w-full sm:w-auto">
288
288
  <span className="material-symbols-outlined text-[14px] mr-1">restore</span>Reset
289
289
  </Button>
290
290
  <Button variant="ghost" size="sm" onClick={() => setShowManualConfigModal(true)} className="w-full sm:w-auto">
@@ -37,8 +37,8 @@ export default function JcodeToolCard({
37
37
 
38
38
  const getConfigStatus = () => {
39
39
  if (!jcodeStatus?.installed) return null;
40
- if (!jcodeStatus?.has9Router) return "not_configured";
41
- const currentProvider = jcodeStatus.config?.providers?.["9router"];
40
+ if (!jcodeStatus?.hasZevai) return "not_configured";
41
+ const currentProvider = jcodeStatus.config?.providers?.["zevai"];
42
42
  if (!currentProvider) return "not_configured";
43
43
  return matchKnownEndpoint(currentProvider.base_url, { tunnelPublicUrl, tailscaleUrl }) ? "configured" : "other";
44
44
  };
@@ -76,7 +76,7 @@ export default function JcodeToolCard({
76
76
  useEffect(() => {
77
77
  if (jcodeStatus?.installed && !hasInitializedModel.current) {
78
78
  hasInitializedModel.current = true;
79
- const provider = jcodeStatus.config?.providers?.["9router"];
79
+ const provider = jcodeStatus.config?.providers?.["zevai"];
80
80
  if (provider) {
81
81
  if (provider.default_model) {
82
82
  setSelectedModel(provider.default_model);
@@ -128,7 +128,7 @@ export default function JcodeToolCard({
128
128
  try {
129
129
  const keyToUse = selectedApiKey?.trim()
130
130
  || (apiKeys?.length > 0 ? apiKeys[0].key : null)
131
- || (!cloudEnabled ? "sk_9router" : null);
131
+ || (!cloudEnabled ? "sk_zevai" : null);
132
132
 
133
133
  const res = await fetch("/api/cli-tools/jcode-settings", {
134
134
  method: "POST",
@@ -182,21 +182,21 @@ export default function JcodeToolCard({
182
182
  const getManualConfigs = () => {
183
183
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
184
184
  ? selectedApiKey
185
- : (!cloudEnabled ? "sk_9router" : "<API_KEY_FROM_DASHBOARD>");
185
+ : (!cloudEnabled ? "sk_zevai" : "<API_KEY_FROM_DASHBOARD>");
186
186
 
187
- const configToml = `[providers.9router]
187
+ const configToml = `[providers.zevai]
188
188
  type = "openai-compatible"
189
189
  base_url = "${getEffectiveBaseUrl()}"
190
190
  auth = "bearer"
191
- api_key_env = "JCODE_9ROUTER_API_KEY"
192
- env_file = "provider-9router.env"
191
+ api_key_env = "JCODE_ZEVAI_API_KEY"
192
+ env_file = "provider-zevairouter.env"
193
193
  default_model = "${selectedModel || "cc/claude-opus-4-7"}"
194
194
  requires_api_key = true
195
195
 
196
- [[providers.9router.models]]
196
+ [[providers.zevai.models]]
197
197
  id = "${selectedModel || "cc/claude-opus-4-7"}"`;
198
198
 
199
- const envContent = `JCODE_9ROUTER_API_KEY="${keyToUse}"`;
199
+ const envContent = `JCODE_ZEVAI_API_KEY="${keyToUse}"`;
200
200
 
201
201
  return [
202
202
  {
@@ -204,7 +204,7 @@ id = "${selectedModel || "cc/claude-opus-4-7"}"`;
204
204
  content: configToml,
205
205
  },
206
206
  {
207
- filename: "~/.config/jcode/provider-9router.env",
207
+ filename: "~/.config/jcode/provider-zevairouter.env",
208
208
  content: envContent,
209
209
  },
210
210
  ];
@@ -300,12 +300,12 @@ id = "${selectedModel || "cc/claude-opus-4-7"}"`;
300
300
  </div>
301
301
 
302
302
  {/* Current configured */}
303
- {jcodeStatus?.config?.providers?.["9router"]?.base_url && (
303
+ {jcodeStatus?.config?.providers?.["zevai"]?.base_url && (
304
304
  <div className="grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2">
305
305
  <span className="text-xs font-semibold text-text-main sm:text-right sm:text-sm">Current</span>
306
306
  <span className="material-symbols-outlined hidden text-text-muted text-[14px] sm:inline">arrow_forward</span>
307
307
  <span className="min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5">
308
- {jcodeStatus.config.providers["9router"].base_url}
308
+ {jcodeStatus.config.providers["zevai"].base_url}
309
309
  </span>
310
310
  </div>
311
311
  )}
@@ -331,8 +331,8 @@ id = "${selectedModel || "cc/claude-opus-4-7"}"`;
331
331
  {/* Usage hint */}
332
332
  <div className="flex flex-col gap-1 p-3 bg-blue-500/5 border border-blue-500/20 rounded-lg">
333
333
  <p className="text-xs font-medium text-blue-600 dark:text-blue-400">Usage:</p>
334
- <code className="text-xs font-mono text-text-muted">jcode --provider-profile 9router</code>
335
- <code className="text-xs font-mono text-text-muted">jcode --provider-profile 9router --model {selectedModel || "cc/claude-opus-4-7"}</code>
334
+ <code className="text-xs font-mono text-text-muted">jcode --provider-profile zevairouter</code>
335
+ <code className="text-xs font-mono text-text-muted">jcode --provider-profile zevairouter --model {selectedModel || "cc/claude-opus-4-7"}</code>
336
336
  </div>
337
337
  </div>
338
338
 
@@ -347,7 +347,7 @@ id = "${selectedModel || "cc/claude-opus-4-7"}"`;
347
347
  <Button variant="primary" size="sm" onClick={handleApplySettings} disabled={!selectedModel} loading={applying}>
348
348
  <span className="material-symbols-outlined text-[14px] mr-1">save</span>Apply
349
349
  </Button>
350
- <Button variant="outline" size="sm" onClick={handleResetSettings} disabled={!jcodeStatus?.has9Router} loading={restoring}>
350
+ <Button variant="outline" size="sm" onClick={handleResetSettings} disabled={!jcodeStatus?.hasZevai} loading={restoring}>
351
351
  <span className="material-symbols-outlined text-[14px] mr-1">restore</span>Reset
352
352
  </Button>
353
353
  <Button variant="ghost" size="sm" onClick={() => setShowManualConfigModal(true)}>
@@ -49,7 +49,7 @@ export default function KiloToolCard({ tool, isExpanded, onToggle, baseUrl, apiK
49
49
 
50
50
  const getConfigStatus = () => {
51
51
  if (!status?.installed) return null;
52
- return status.has9Router ? "configured" : "not_configured";
52
+ return status.hasZevai ? "configured" : "not_configured";
53
53
  };
54
54
 
55
55
  const configStatus = getConfigStatus();
@@ -80,7 +80,7 @@ export default function KiloToolCard({ tool, isExpanded, onToggle, baseUrl, apiK
80
80
  try {
81
81
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
82
82
  ? selectedApiKey
83
- : (!cloudEnabled ? "sk_9router" : selectedApiKey);
83
+ : (!cloudEnabled ? "sk_zevai" : selectedApiKey);
84
84
 
85
85
  const res = await fetch("/api/cli-tools/kilo-settings", {
86
86
  method: "POST",
@@ -124,7 +124,7 @@ export default function KiloToolCard({ tool, isExpanded, onToggle, baseUrl, apiK
124
124
  const getManualConfigs = () => {
125
125
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
126
126
  ? selectedApiKey
127
- : (!cloudEnabled ? "sk_9router" : "<API_KEY_FROM_DASHBOARD>");
127
+ : (!cloudEnabled ? "sk_zevai" : "<API_KEY_FROM_DASHBOARD>");
128
128
 
129
129
  return [{
130
130
  filename: "~/.local/share/kilo/auth.json",
@@ -174,7 +174,7 @@ export default function KiloToolCard({ tool, isExpanded, onToggle, baseUrl, apiK
174
174
  <span className="material-symbols-outlined text-yellow-500">warning</span>
175
175
  <div className="flex-1">
176
176
  <p className="font-medium text-yellow-600 dark:text-yellow-400">Kilo Code not detected locally</p>
177
- <p className="text-sm text-text-muted">Manual configuration is still available if 9router is deployed on a remote server.</p>
177
+ <p className="text-sm text-text-muted">Manual configuration is still available if zevairouter is deployed on a remote server.</p>
178
178
  </div>
179
179
  </div>
180
180
  <div className="flex items-center gap-2 pl-9">
@@ -76,7 +76,7 @@ export default function MitmServerCard({ apiKeys, cloudEnabled, onStatusChange }
76
76
  } else if (action === "start") {
77
77
  const keyToUse = selectedApiKey?.trim()
78
78
  || (apiKeys?.length > 0 ? apiKeys[0].key : null)
79
- || (!cloudEnabled ? "sk_9router" : null);
79
+ || (!cloudEnabled ? "sk_zevai" : null);
80
80
  res = await fetch("/api/cli-tools/antigravity-mitm", {
81
81
  method: "POST",
82
82
  headers: { "Content-Type": "application/json" },
@@ -195,7 +195,7 @@ export default function MitmServerCard({ apiKeys, cloudEnabled, onStatusChange }
195
195
  list="mitm-api-keys"
196
196
  value={selectedApiKey}
197
197
  onChange={(e) => setSelectedApiKey(e.target.value)}
198
- placeholder={cloudEnabled ? "Enter or pick API key" : "sk_9router (default)"}
198
+ placeholder={cloudEnabled ? "Enter or pick API key" : "sk_zevai (default)"}
199
199
  className="flex-1 min-w-0 px-2 py-1.5 bg-surface rounded border border-border text-xs text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50"
200
200
  />
201
201
  {apiKeys?.length > 0 && (
@@ -39,7 +39,7 @@ export default function OpenClawToolCard({
39
39
 
40
40
  const getConfigStatus = () => {
41
41
  if (!openclawStatus?.installed) return null;
42
- const currentProvider = openclawStatus.settings?.models?.providers?.["9router"];
42
+ const currentProvider = openclawStatus.settings?.models?.providers?.["zevai"];
43
43
  if (!currentProvider) return "not_configured";
44
44
  return matchKnownEndpoint(currentProvider.baseUrl, { tunnelPublicUrl, tailscaleUrl }) ? "configured" : "other";
45
45
  };
@@ -77,10 +77,10 @@ export default function OpenClawToolCard({
77
77
  useEffect(() => {
78
78
  if (openclawStatus?.installed && !hasInitializedModel.current) {
79
79
  hasInitializedModel.current = true;
80
- const provider = openclawStatus.settings?.models?.providers?.["9router"];
80
+ const provider = openclawStatus.settings?.models?.providers?.["zevai"];
81
81
  if (provider) {
82
82
  const primaryModel = openclawStatus.settings?.agents?.defaults?.model?.primary;
83
- if (primaryModel) setSelectedModel(primaryModel.replace("9router/", ""));
83
+ if (primaryModel) setSelectedModel(primaryModel.replace("zevai/", ""));
84
84
  if (provider.apiKey && apiKeys?.some(k => k.key === provider.apiKey)) {
85
85
  setSelectedApiKey(provider.apiKey);
86
86
  }
@@ -133,7 +133,7 @@ export default function OpenClawToolCard({
133
133
  try {
134
134
  const keyToUse = selectedApiKey?.trim()
135
135
  || (apiKeys?.length > 0 ? apiKeys[0].key : null)
136
- || (!cloudEnabled ? "sk_9router" : null);
136
+ || (!cloudEnabled ? "sk_zevai" : null);
137
137
 
138
138
  const res = await fetch("/api/cli-tools/openclaw-settings", {
139
139
  method: "POST",
@@ -193,19 +193,19 @@ export default function OpenClawToolCard({
193
193
  const getManualConfigs = () => {
194
194
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
195
195
  ? selectedApiKey
196
- : (!cloudEnabled ? "sk_9router" : "<API_KEY_FROM_DASHBOARD>");
196
+ : (!cloudEnabled ? "sk_zevai" : "<API_KEY_FROM_DASHBOARD>");
197
197
 
198
198
  const settingsContent = {
199
199
  agents: {
200
200
  defaults: {
201
201
  model: {
202
- primary: `9router/${selectedModel || "provider/model-id"}`,
202
+ primary: `zevai/${selectedModel || "provider/model-id"}`,
203
203
  },
204
204
  },
205
205
  },
206
206
  models: {
207
207
  providers: {
208
- "9router": {
208
+ "zevai": {
209
209
  baseUrl: getEffectiveBaseUrl(),
210
210
  apiKey: keyToUse,
211
211
  api: "openai-completions",
@@ -264,7 +264,7 @@ export default function OpenClawToolCard({
264
264
  <span className="material-symbols-outlined text-yellow-500">warning</span>
265
265
  <div className="flex-1">
266
266
  <p className="font-medium text-yellow-600 dark:text-yellow-400">Open Claw CLI not detected locally</p>
267
- <p className="text-sm text-text-muted">Manual configuration is still available if 9router is deployed on a remote server.</p>
267
+ <p className="text-sm text-text-muted">Manual configuration is still available if zevairouter is deployed on a remote server.</p>
268
268
  </div>
269
269
  </div>
270
270
  <div className="flex items-center gap-2 pl-9">
@@ -296,12 +296,12 @@ export default function OpenClawToolCard({
296
296
  </div>
297
297
 
298
298
  {/* Current configured */}
299
- {openclawStatus?.settings?.models?.providers?.["9router"]?.baseUrl && (
299
+ {openclawStatus?.settings?.models?.providers?.["zevai"]?.baseUrl && (
300
300
  <div className="grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2">
301
301
  <span className="text-xs font-semibold text-text-main sm:text-right sm:text-sm">Current</span>
302
302
  <span className="material-symbols-outlined hidden text-text-muted text-[14px] sm:inline">arrow_forward</span>
303
303
  <span className="min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5">
304
- {openclawStatus.settings.models.providers["9router"].baseUrl}
304
+ {openclawStatus.settings.models.providers["zevai"].baseUrl}
305
305
  </span>
306
306
  </div>
307
307
  )}
@@ -355,7 +355,7 @@ export default function OpenClawToolCard({
355
355
  <Button variant="primary" size="sm" onClick={handleApplySettings} disabled={!selectedModel} loading={applying}>
356
356
  <span className="material-symbols-outlined text-[14px] mr-1">save</span>Apply
357
357
  </Button>
358
- <Button variant="outline" size="sm" onClick={handleResetSettings} disabled={!openclawStatus?.has9Router} loading={restoring}>
358
+ <Button variant="outline" size="sm" onClick={handleResetSettings} disabled={!openclawStatus?.hasZevai} loading={restoring}>
359
359
  <span className="material-symbols-outlined text-[14px] mr-1">restore</span>Reset
360
360
  </Button>
361
361
  <Button variant="ghost" size="sm" onClick={() => setShowManualConfigModal(true)}>
@@ -1,5 +1,7 @@
1
1
  "use client";
2
2
 
3
+
4
+
3
5
  import { useState, useEffect, useRef } from "react";
4
6
  import { Card, Button, ModelSelectModal, ManualConfigModal } from "@/shared/components";
5
7
  import Image from "next/image";
@@ -7,6 +9,9 @@ import BaseUrlSelect from "./BaseUrlSelect";
7
9
  import ApiKeySelect from "./ApiKeySelect";
8
10
  import { matchKnownEndpoint } from "./cliEndpointMatch";
9
11
 
12
+ const LEGACY_BRAND = String.fromCharCode(57) + "Router";
13
+ const LEGACY_BRAND_LC = LEGACY_BRAND.toLowerCase();
14
+
10
15
  export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl, apiKeys, activeProviders, cloudEnabled, initialStatus, tunnelEnabled, tunnelPublicUrl, tailscaleEnabled, tailscaleUrl }) {
11
16
  const [status, setStatus] = useState(initialStatus || null);
12
17
  const [checking, setChecking] = useState(false);
@@ -58,8 +63,8 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
58
63
  }
59
64
 
60
65
  // Parse subagent settings from agent.explorer if exists
61
- if (status?.config?.agent?.explorer?.model?.startsWith("9router/")) {
62
- setSubagentModel(status.config.agent.explorer.model.replace("9router/", ""));
66
+ if (status?.config?.agent?.explorer?.model?.startsWith("zevai/") || status.config?.agent?.explorer?.model?.startsWith(`${LEGACY_BRAND_LC}/`)) {
67
+ setSubagentModel(status.config.agent.explorer.model.replace(new RegExp("^zevai/|^" + LEGACY_BRAND_LC + "/"), ""));
63
68
  }
64
69
  }, [status]);
65
70
 
@@ -77,7 +82,7 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
77
82
  try {
78
83
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
79
84
  ? selectedApiKey
80
- : (!cloudEnabled ? "sk_9router" : selectedApiKey);
85
+ : (!cloudEnabled ? "sk_zevai" : selectedApiKey);
81
86
  const validActiveModel = models.includes(activeModel) ? activeModel : (models[0] || "");
82
87
  await fetch("/api/cli-tools/opencode-settings", {
83
88
  method: "POST",
@@ -98,8 +103,8 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
98
103
  const getConfigStatus = () => {
99
104
  if (!status?.installed) return null;
100
105
  if (!status.config) return "not_configured";
101
- if (!status.has9Router) return "not_configured";
102
- const url = status.config?.provider?.["9router"]?.options?.baseURL || "";
106
+ if (!status.hasZevai) return "not_configured";
107
+ const url = (status.config?.provider?.["zevai"] || status.config?.provider?.[LEGACY_BRAND_LC])?.options?.baseURL || "";
103
108
  return matchKnownEndpoint(url, { tunnelPublicUrl, tailscaleUrl }) ? "configured" : "other";
104
109
  };
105
110
 
@@ -131,7 +136,7 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
131
136
  try {
132
137
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
133
138
  ? selectedApiKey
134
- : (!cloudEnabled ? "sk_9router" : selectedApiKey);
139
+ : (!cloudEnabled ? "sk_zevai" : selectedApiKey);
135
140
 
136
141
  const res = await fetch("/api/cli-tools/opencode-settings", {
137
142
  method: "POST",
@@ -184,7 +189,7 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
184
189
  const getManualConfigs = () => {
185
190
  const keyToUse = (selectedApiKey && selectedApiKey.trim())
186
191
  ? selectedApiKey
187
- : (!cloudEnabled ? "sk_9router" : "<API_KEY_FROM_DASHBOARD>");
192
+ : (!cloudEnabled ? "sk_zevai" : "<API_KEY_FROM_DASHBOARD>");
188
193
 
189
194
  const modelsToShow = selectedModels.length > 0 ? selectedModels : ["provider/model-id"];
190
195
  const activeModelToShow = activeModel || selectedModels[0] || modelsToShow[0];
@@ -199,18 +204,18 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
199
204
  filename: "~/.config/opencode/opencode.json",
200
205
  content: JSON.stringify({
201
206
  provider: {
202
- "9router": {
207
+ "zevai": {
203
208
  npm: "@ai-sdk/openai-compatible",
204
209
  options: { baseURL: getEffectiveBaseUrl(), apiKey: keyToUse },
205
210
  models: modelsObj,
206
211
  },
207
212
  },
208
- model: `9router/${activeModelToShow}`,
213
+ model: `zevai/${activeModelToShow}`,
209
214
  agent: {
210
215
  explorer: {
211
216
  description: "Fast explorer subagent for codebase exploration",
212
217
  mode: "subagent",
213
- model: `9router/${effectiveSubagentModel}`
218
+ model: `zevai/${effectiveSubagentModel}`
214
219
  }
215
220
  }
216
221
  }, null, 2),
@@ -302,12 +307,12 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
302
307
  </div>
303
308
 
304
309
  {/* Current configured */}
305
- {status?.config?.provider?.["9router"]?.options?.baseURL && (
310
+ {status?.config?.provider?.["zevai"]?.options?.baseURL && (
306
311
  <div className="grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2">
307
312
  <span className="text-xs font-semibold text-text-main sm:text-right sm:text-sm">Current</span>
308
313
  <span className="material-symbols-outlined hidden text-text-muted text-[14px] sm:inline">arrow_forward</span>
309
314
  <span className="min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5">
310
- {status.config.provider["9router"].options.baseURL}
315
+ {(status.config.provider["zevai"] || status.config.provider[LEGACY_BRAND_LC]).options.baseURL}
311
316
  </span>
312
317
  </div>
313
318
  )}
@@ -440,7 +445,7 @@ export default function OpenCodeToolCard({ tool, isExpanded, onToggle, baseUrl,
440
445
  <Button variant="primary" size="sm" onClick={handleApply} disabled={selectedModels.length === 0} loading={applying}>
441
446
  <span className="material-symbols-outlined text-[14px] mr-1">save</span>Apply
442
447
  </Button>
443
- <Button variant="outline" size="sm" onClick={handleReset} disabled={!status.has9Router} loading={restoring}>
448
+ <Button variant="outline" size="sm" onClick={handleReset} disabled={!status.hasZevai} loading={restoring}>
444
449
  <span className="material-symbols-outlined text-[14px] mr-1">restore</span>Reset
445
450
  </Button>
446
451
  <Button variant="ghost" size="sm" onClick={() => setShowManualConfigModal(true)}>
@@ -8,7 +8,7 @@ import { Card } from "@/shared/components";
8
8
  function getStatus(status) {
9
9
  if (!status) return { label: "Unknown", cls: "bg-gray-500/10 text-gray-500" };
10
10
  if (!status.installed) return { label: "Not installed", cls: "bg-gray-500/10 text-gray-500" };
11
- if (status.has9Router) return { label: "Connected", cls: "bg-green-500/10 text-green-600 dark:text-green-400" };
11
+ if (status.hasZevai) return { label: "Connected", cls: "bg-green-500/10 text-green-600 dark:text-green-400" };
12
12
  return { label: "Not configured", cls: "bg-yellow-500/10 text-yellow-600 dark:text-yellow-400" };
13
13
  }
14
14
 
@@ -224,8 +224,24 @@ export function parseQuotaData(provider, data) {
224
224
  }
225
225
  break;
226
226
 
227
+ case "grok-cli":
228
+ // Grok Build billing: On-demand / Prepaid / Credits with remainingPercentage
229
+ if (data.quotas) {
230
+ Object.entries(data.quotas).forEach(([name, quota]) => {
231
+ normalizedQuotas.push({
232
+ name,
233
+ used: quota.used || 0,
234
+ total: quota.total || 0,
235
+ resetAt: quota.resetAt || null,
236
+ remainingPercentage: quota.remainingPercentage,
237
+ unlimited: quota.unlimited === true,
238
+ });
239
+ });
240
+ }
241
+ break;
242
+
227
243
  default:
228
- // Generic fallback for unknown providers
244
+ // Generic fallback for unknown providers (pass through remaining % when present)
229
245
  if (data.quotas) {
230
246
  Object.entries(data.quotas).forEach(([name, quota]) => {
231
247
  normalizedQuotas.push({
@@ -233,6 +249,10 @@ export function parseQuotaData(provider, data) {
233
249
  used: quota.used || 0,
234
250
  total: quota.total || 0,
235
251
  resetAt: quota.resetAt || null,
252
+ ...(quota.remainingPercentage != null
253
+ ? { remainingPercentage: quota.remainingPercentage }
254
+ : {}),
255
+ ...(quota.unlimited === true ? { unlimited: true } : {}),
236
256
  });
237
257
  });
238
258
  }
@@ -105,7 +105,7 @@ export async function POST(request) {
105
105
 
106
106
  if (!checkPrivilege(pwd)) {
107
107
  return NextResponse.json(
108
- { error: isWin ? "Administrator required — restart 9Router as Administrator" : "Root or sudo password required to start MITM" },
108
+ { error: isWin ? "Administrator required — restart ZevaiRouter as Administrator" : "Root or sudo password required to start MITM" },
109
109
  { status: 403 }
110
110
  );
111
111
  }
@@ -173,7 +173,7 @@ export async function PATCH(request) {
173
173
  }
174
174
  if (!checkPrivilege(pwd)) {
175
175
  return NextResponse.json(
176
- { error: isWin ? "Administrator required — restart 9Router as Administrator" : "Root or sudo password required to modify DNS" },
176
+ { error: isWin ? "Administrator required — restart ZevaiRouter as Administrator" : "Root or sudo password required to modify DNS" },
177
177
  { status: 403 }
178
178
  );
179
179
  }
@@ -64,12 +64,12 @@ export async function GET() {
64
64
  }
65
65
 
66
66
  const settings = await readSettings();
67
- const has9Router = !!(settings?.env?.ANTHROPIC_BASE_URL);
67
+ const hasZevai = !!(settings?.env?.ANTHROPIC_BASE_URL);
68
68
 
69
69
  return NextResponse.json({
70
70
  installed: true,
71
71
  settings: settings,
72
- has9Router: has9Router,
72
+ hasZevai: hasZevai,
73
73
  settingsPath: getClaudeSettingsPath(),
74
74
  });
75
75
  } catch (error) {
@@ -42,12 +42,12 @@ const readJson = async (filePath) => {
42
42
  }
43
43
  };
44
44
 
45
- const has9RouterConfig = (globalState) => {
45
+ const hasZevaiConfig = (globalState) => {
46
46
  if (!globalState) return false;
47
47
  const isOpenAi =
48
48
  globalState.actModeApiProvider === "openai" || globalState.planModeApiProvider === "openai";
49
49
  const baseUrl = globalState.openAiBaseUrl || "";
50
- return isOpenAi && (baseUrl.includes("localhost") || baseUrl.includes("127.0.0.1") || baseUrl.includes("9router"));
50
+ return isOpenAi && (baseUrl.includes("localhost") || baseUrl.includes("127.0.0.1") || baseUrl.includes("zevairouter"));
51
51
  };
52
52
 
53
53
  export async function GET() {
@@ -65,7 +65,7 @@ export async function GET() {
65
65
  openAiBaseUrl: globalState?.openAiBaseUrl,
66
66
  openAiModelId: globalState?.openAiModelId,
67
67
  },
68
- has9Router: has9RouterConfig(globalState),
68
+ hasZevai: hasZevaiConfig(globalState),
69
69
  globalStatePath: getGlobalStatePath(),
70
70
  });
71
71
  } catch (error) {
@@ -125,7 +125,7 @@ export async function DELETE() {
125
125
  delete secrets.openAiApiKey;
126
126
  await fs.writeFile(getSecretsPath(), JSON.stringify(secrets, null, 2));
127
127
 
128
- return NextResponse.json({ success: true, message: "9Router settings removed from Cline" });
128
+ return NextResponse.json({ success: true, message: "ZevaiRouter settings removed from Cline" });
129
129
  } catch (error) {
130
130
  console.log("Error resetting cline settings:", error);
131
131
  return NextResponse.json({ error: "Failed to reset cline settings" }, { status: 500 });