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
@@ -54,19 +54,19 @@ const readSettings = async () => {
54
54
  }
55
55
  };
56
56
 
57
- // Check if settings has 9Router config
58
- const has9RouterConfig = (settings) => {
57
+ // Check if settings has ZevaiRouter config
58
+ const hasZevaiConfig = (settings) => {
59
59
  if (!settings || !settings.models || !settings.models.providers) return false;
60
- return !!settings.models.providers["9router"];
60
+ return !!settings.models.providers["zevai"];
61
61
  };
62
62
 
63
- // Read per-agent models.json and return current model id (without "9router/" prefix)
63
+ // Read per-agent models.json and return current model id (without "zevai/" prefix)
64
64
  const readAgentModel = async (agentDir) => {
65
65
  try {
66
66
  const modelsPath = path.join(agentDir, "models.json");
67
67
  const content = await fs.readFile(modelsPath, "utf-8");
68
68
  const data = JSON.parse(content);
69
- const models = data?.providers?.["9router"]?.models;
69
+ const models = data?.providers?.["zevai"]?.models;
70
70
  return models?.[0]?.id || null;
71
71
  } catch {
72
72
  return null;
@@ -103,7 +103,7 @@ export async function GET() {
103
103
  installed: true,
104
104
  settings,
105
105
  agents: enrichedAgents,
106
- has9Router: has9RouterConfig(settings),
106
+ hasZevai: hasZevaiConfig(settings),
107
107
  settingsPath: getOpenClawSettingsPath(),
108
108
  });
109
109
  } catch (error) {
@@ -123,7 +123,7 @@ const writeAgentModels = async (agentDir, model, baseUrl, apiKey) => {
123
123
  } catch { /* No existing */ }
124
124
 
125
125
  if (!existing.providers) existing.providers = {};
126
- existing.providers["9router"] = {
126
+ existing.providers["zevai"] = {
127
127
  baseUrl,
128
128
  apiKey: apiKey || "your_api_key",
129
129
  api: "openai-completions",
@@ -132,7 +132,7 @@ const writeAgentModels = async (agentDir, model, baseUrl, apiKey) => {
132
132
  await fs.writeFile(modelsPath, JSON.stringify(existing, null, 2));
133
133
  };
134
134
 
135
- // POST - Update 9Router settings (merge with existing settings)
135
+ // POST - Update ZevaiRouter settings (merge with existing settings)
136
136
  export async function POST(request) {
137
137
  try {
138
138
  // agentModels: { [agentId]: modelId } for per-agent override
@@ -161,11 +161,11 @@ export async function POST(request) {
161
161
  if (!settings.models.providers) settings.models.providers = {};
162
162
 
163
163
  const normalizedBaseUrl = baseUrl.endsWith("/v1") ? baseUrl : `${baseUrl}/v1`;
164
- const fullModelId = `9router/${model}`;
164
+ const fullModelId = `zevai/${model}`;
165
165
 
166
- // Remove all old 9router/* entries from agents.defaults.models
166
+ // Remove all old zevai/* entries from agents.defaults.models
167
167
  Object.keys(settings.agents.defaults.models)
168
- .filter((k) => k.startsWith("9router/"))
168
+ .filter((k) => k.startsWith("zevai/"))
169
169
  .forEach((k) => { delete settings.agents.defaults.models[k]; });
170
170
 
171
171
  // Update default model
@@ -175,16 +175,16 @@ export async function POST(request) {
175
175
  const allModelIds = new Set([model]);
176
176
  Object.values(agentModels).forEach((m) => { if (m) allModelIds.add(m); });
177
177
 
178
- // Add fresh 9router models to allowlist
178
+ // Add fresh zevairouter models to allowlist
179
179
  allModelIds.forEach((m) => {
180
- settings.agents.defaults.models[`9router/${m}`] = {};
180
+ settings.agents.defaults.models[`zevai/${m}`] = {};
181
181
  });
182
182
 
183
- // Remove old 9router model from each agent in agents.list. The
183
+ // Remove old zevairouter model from each agent in agents.list. The
184
184
  // model field may be a plain string or `{ primary, fallbacks }`.
185
185
  if (settings.agents.list) {
186
186
  settings.agents.list = settings.agents.list.map((agent) => {
187
- if (resolveAgentModel(agent.model).startsWith("9router/")) {
187
+ if (resolveAgentModel(agent.model).startsWith("zevai/")) {
188
188
  const { model: _, ...rest } = agent;
189
189
  return rest;
190
190
  }
@@ -192,8 +192,8 @@ export async function POST(request) {
192
192
  });
193
193
  }
194
194
 
195
- // Update models.providers.9router with all models
196
- settings.models.providers["9router"] = {
195
+ // Update models.providers.zevai with all models
196
+ settings.models.providers["zevai"] = {
197
197
  baseUrl: normalizedBaseUrl,
198
198
  apiKey: apiKey || "your_api_key",
199
199
  api: "openai-completions",
@@ -204,7 +204,7 @@ export async function POST(request) {
204
204
  if (settings.agents.list) {
205
205
  settings.agents.list = settings.agents.list.map((agent) => {
206
206
  const agentModel = agentModels[agent.id];
207
- if (agentModel) return { ...agent, model: `9router/${agentModel}` };
207
+ if (agentModel) return { ...agent, model: `zevai/${agentModel}` };
208
208
  return agent;
209
209
  });
210
210
 
@@ -232,7 +232,7 @@ export async function POST(request) {
232
232
  }
233
233
  }
234
234
 
235
- // DELETE - Remove 9Router settings only (keep other settings)
235
+ // DELETE - Remove ZevaiRouter settings only (keep other settings)
236
236
  export async function DELETE() {
237
237
  try {
238
238
  const settingsPath = getOpenClawSettingsPath();
@@ -252,9 +252,9 @@ export async function DELETE() {
252
252
  throw error;
253
253
  }
254
254
 
255
- // Remove 9Router from models.providers
255
+ // Remove ZevaiRouter from models.providers
256
256
  if (settings.models && settings.models.providers) {
257
- delete settings.models.providers["9router"];
257
+ delete settings.models.providers["zevai"];
258
258
 
259
259
  // Remove providers object if empty
260
260
  if (Object.keys(settings.models.providers).length === 0) {
@@ -262,9 +262,9 @@ export async function DELETE() {
262
262
  }
263
263
  }
264
264
 
265
- // Remove 9router models from agents.defaults.models allowlist
265
+ // Remove zevairouter models from agents.defaults.models allowlist
266
266
  if (settings.agents?.defaults?.models) {
267
- const keysToRemove = Object.keys(settings.agents.defaults.models).filter((k) => k.startsWith("9router/"));
267
+ const keysToRemove = Object.keys(settings.agents.defaults.models).filter((k) => k.startsWith("zevai/"));
268
268
  for (const key of keysToRemove) {
269
269
  delete settings.agents.defaults.models[key];
270
270
  }
@@ -273,8 +273,8 @@ export async function DELETE() {
273
273
  }
274
274
  }
275
275
 
276
- // Reset agents.defaults.model.primary if it uses 9router
277
- if (settings.agents?.defaults?.model?.primary?.startsWith("9router/")) {
276
+ // Reset agents.defaults.model.primary if it uses zevairouter
277
+ if (settings.agents?.defaults?.model?.primary?.startsWith("zevai/")) {
278
278
  delete settings.agents.defaults.model.primary;
279
279
  }
280
280
 
@@ -283,7 +283,7 @@ export async function DELETE() {
283
283
 
284
284
  return NextResponse.json({
285
285
  success: true,
286
- message: "9Router settings removed successfully",
286
+ message: "ZevaiRouter settings removed successfully",
287
287
  });
288
288
  } catch (error) {
289
289
  console.log("Error resetting openclaw settings:", error);
@@ -42,9 +42,9 @@ const readConfig = async () => {
42
42
  }
43
43
  };
44
44
 
45
- const has9RouterConfig = (config) => {
45
+ const hasZevaiConfig = (config) => {
46
46
  if (!config?.provider) return false;
47
- return !!config.provider["9router"];
47
+ return !!config.provider["zevai"];
48
48
  };
49
49
 
50
50
  // GET - Check opencode CLI and read current settings
@@ -61,17 +61,17 @@ export async function GET() {
61
61
  }
62
62
 
63
63
  const config = await readConfig();
64
- const providerConfig = config?.provider?.["9router"];
64
+ const providerConfig = config?.provider?.["zevai"];
65
65
  const modelMap = providerConfig?.models || {};
66
66
 
67
67
  return NextResponse.json({
68
68
  installed: true,
69
69
  config,
70
- has9Router: has9RouterConfig(config),
70
+ hasZevai: hasZevaiConfig(config),
71
71
  configPath: getConfigPath(),
72
72
  opencode: {
73
73
  models: Object.keys(modelMap),
74
- activeModel: config?.model?.startsWith("9router/") ? config.model.replace(/^9router\//, "") : null,
74
+ activeModel: config?.model?.startsWith("zevai/") ? config.model.replace(/^zevairouter\//, "") : null,
75
75
  baseURL: providerConfig?.options?.baseURL || null,
76
76
  },
77
77
  });
@@ -81,7 +81,7 @@ export async function GET() {
81
81
  }
82
82
  }
83
83
 
84
- // POST - Apply 9Router as openai-compatible provider (multi-model support)
84
+ // POST - Apply ZevaiRouter as openai-compatible provider (multi-model support)
85
85
  export async function POST(request) {
86
86
  try {
87
87
  const { baseUrl, apiKey, model, models, activeModel, subagentModel } = await request.json();
@@ -106,14 +106,14 @@ export async function POST(request) {
106
106
  } catch { /* No existing config */ }
107
107
 
108
108
  const normalizedBaseUrl = baseUrl.endsWith("/v1") ? baseUrl : `${baseUrl}/v1`;
109
- const keyToUse = apiKey || "sk_9router";
109
+ const keyToUse = apiKey || "sk_zevai";
110
110
  const effectiveSubagentModel = subagentModel || modelsArray[0];
111
111
 
112
112
  // Ensure provider object
113
113
  if (!config.provider) config.provider = {};
114
114
 
115
- // Preserve any existing 9router provider entry and its models
116
- const existingProvider = config.provider["9router"] || { npm: "@ai-sdk/openai-compatible", options: {}, models: {} };
115
+ // Preserve any existing zevairouter provider entry and its models
116
+ const existingProvider = config.provider["zevai"] || { npm: "@ai-sdk/openai-compatible", options: {}, models: {} };
117
117
 
118
118
  // Merge options (overwrite baseURL/apiKey)
119
119
  existingProvider.options = {
@@ -132,7 +132,7 @@ export async function POST(request) {
132
132
  }
133
133
 
134
134
  // Save merged provider back
135
- config.provider["9router"] = existingProvider;
135
+ config.provider["zevai"] = existingProvider;
136
136
 
137
137
  // Set the active model: prefer explicit activeModel, else first of modelsArray
138
138
  // If activeModel is explicitly empty string, clear the model
@@ -141,7 +141,7 @@ export async function POST(request) {
141
141
  } else {
142
142
  const finalActive = activeModel || modelsArray[0];
143
143
  if (finalActive) {
144
- config.model = `9router/${finalActive}`;
144
+ config.model = `zevai/${finalActive}`;
145
145
  }
146
146
  }
147
147
 
@@ -150,7 +150,7 @@ export async function POST(request) {
150
150
  config.agent.explorer = {
151
151
  description: "Fast explorer subagent for codebase exploration",
152
152
  mode: "subagent",
153
- model: `9router/${effectiveSubagentModel}`,
153
+ model: `zevai/${effectiveSubagentModel}`,
154
154
  };
155
155
 
156
156
  await fs.writeFile(configPath, JSON.stringify(config, null, 2));
@@ -185,7 +185,7 @@ export async function PATCH(request) {
185
185
 
186
186
  if (clearActiveModel === true) {
187
187
  // Clear active model but keep models in the list
188
- if (config.model?.startsWith("9router/")) {
188
+ if (config.model?.startsWith("zevai/")) {
189
189
  config.model = "";
190
190
  }
191
191
  }
@@ -202,7 +202,7 @@ export async function PATCH(request) {
202
202
  }
203
203
  }
204
204
 
205
- // DELETE - Remove 9Router provider or specific models from config
205
+ // DELETE - Remove ZevaiRouter provider or specific models from config
206
206
  export async function DELETE(request) {
207
207
  try {
208
208
  const { searchParams } = new URL(request.url);
@@ -221,26 +221,26 @@ export async function DELETE(request) {
221
221
  }
222
222
 
223
223
  // If specific model provided, remove just that model
224
- if (modelToRemove && config.provider?.["9router"]?.models) {
225
- delete config.provider["9router"].models[modelToRemove];
224
+ if (modelToRemove && config.provider?.["zevai"]?.models) {
225
+ delete config.provider["zevai"].models[modelToRemove];
226
226
 
227
227
  // If no models left, remove the provider
228
- if (Object.keys(config.provider["9router"].models).length === 0) {
229
- delete config.provider["9router"];
230
- if (config.model?.startsWith("9router/")) delete config.model;
231
- } else if (config.model === `9router/${modelToRemove}`) {
228
+ if (Object.keys(config.provider["zevai"].models).length === 0) {
229
+ delete config.provider["zevai"];
230
+ if (config.model?.startsWith("zevai/")) delete config.model;
231
+ } else if (config.model === `zevai/${modelToRemove}`) {
232
232
  // If removed model was active, switch to first remaining model
233
- const remainingModels = Object.keys(config.provider["9router"].models);
234
- config.model = `9router/${remainingModels[0]}`;
233
+ const remainingModels = Object.keys(config.provider["zevai"].models);
234
+ config.model = `zevai/${remainingModels[0]}`;
235
235
  }
236
236
  } else {
237
- // No specific model - remove entire 9router provider
238
- if (config.provider) delete config.provider["9router"];
239
- if (config.model?.startsWith("9router/")) delete config.model;
237
+ // No specific model - remove entire zevairouter provider
238
+ if (config.provider) delete config.provider["zevai"];
239
+ if (config.model?.startsWith("zevai/")) delete config.model;
240
240
  }
241
241
 
242
242
  // Remove subagent configuration
243
- if (config.agent?.explorer?.model?.startsWith("9router/")) {
243
+ if (config.agent?.explorer?.model?.startsWith("zevai/")) {
244
244
  delete config.agent.explorer;
245
245
  // Clean up empty agent object
246
246
  if (Object.keys(config.agent).length === 0) delete config.agent;
@@ -250,7 +250,7 @@ export async function DELETE(request) {
250
250
 
251
251
  return NextResponse.json({
252
252
  success: true,
253
- message: modelToRemove ? `Model "${modelToRemove}" removed` : "9Router settings removed from OpenCode",
253
+ message: modelToRemove ? `Model "${modelToRemove}" removed` : "ZevaiRouter settings removed from OpenCode",
254
254
  });
255
255
  } catch (error) {
256
256
  console.log("Error resetting opencode settings:", error);
@@ -19,7 +19,7 @@ export async function POST() {
19
19
  const settings = await getSettings();
20
20
  const url = settings.headroomUrl || DEFAULT_HEADROOM_URL;
21
21
  if (!isLoopbackHeadroomUrl(url)) {
22
- return NextResponse.json({ error: "External Headroom proxies must be started outside 9Router", code: "EXTERNAL_PROXY" }, { status: 400 });
22
+ return NextResponse.json({ error: "External Headroom proxies must be started outside ZevaiRouter", code: "EXTERNAL_PROXY" }, { status: 400 });
23
23
  }
24
24
  const port = parsePortFromUrl(url) || 8787;
25
25
  const result = await restartHeadroomProxy({
@@ -19,7 +19,7 @@ export async function POST() {
19
19
  const settings = await getSettings();
20
20
  const url = settings.headroomUrl || DEFAULT_HEADROOM_URL;
21
21
  if (!isLoopbackHeadroomUrl(url)) {
22
- return NextResponse.json({ error: "External Headroom proxies must be started outside 9Router", code: "EXTERNAL_PROXY" }, { status: 400 });
22
+ return NextResponse.json({ error: "External Headroom proxies must be started outside ZevaiRouter", code: "EXTERNAL_PROXY" }, { status: 400 });
23
23
  }
24
24
  const port = parsePortFromUrl(url) || 8787;
25
25
  const result = await startHeadroomProxy({
@@ -2,7 +2,7 @@ import { getApiKeys } from "@/lib/localDb";
2
2
  import { UPDATER_CONFIG } from "@/shared/constants/config";
3
3
  import { getConsistentMachineId } from "@/shared/utils/machineId";
4
4
 
5
- const CLI_TOKEN_SALT = "9r-cli-auth";
5
+ const CLI_TOKEN_SALT = "zevai-cli-auth";
6
6
 
7
7
  function createSilentWavFile() {
8
8
  const sampleRate = 16000;
@@ -46,7 +46,7 @@ async function getInternalHeaders() {
46
46
 
47
47
  const headers = { "Content-Type": "application/json" };
48
48
  if (apiKey) headers["Authorization"] = `Bearer ${apiKey}`;
49
- headers["x-9r-cli-token"] = await getConsistentMachineId(CLI_TOKEN_SALT);
49
+ headers["x-zevai-cli-token"] = await getConsistentMachineId(CLI_TOKEN_SALT);
50
50
  return headers;
51
51
  }
52
52
 
@@ -42,10 +42,18 @@ function sanitize(c) {
42
42
  return safe;
43
43
  }
44
44
 
45
+ function normalizeAuthType(authType) {
46
+ const t = String(authType || "").toLowerCase().trim();
47
+ if (t === "api-key" || t === "api_key" || t === "api key") return "apikey";
48
+ return t;
49
+ }
50
+
45
51
  function isUsageEligible(connection) {
46
- return USAGE_SUPPORTED_PROVIDERS.includes(connection.provider) && (
47
- connection.authType === "oauth" || USAGE_APIKEY_PROVIDERS.includes(connection.provider)
48
- );
52
+ if (!USAGE_SUPPORTED_PROVIDERS.includes(connection.provider)) return false;
53
+ const authType = normalizeAuthType(connection.authType);
54
+ // OAuth sessions always eligible; API-key only for known usage providers
55
+ if (authType === "oauth" || authType === "access_token") return true;
56
+ return authType === "apikey" && USAGE_APIKEY_PROVIDERS.includes(connection.provider);
49
57
  }
50
58
 
51
59
  function parsePositiveInt(value, fallback) {
@@ -7,7 +7,7 @@
7
7
  .fonts-loaded .material-symbols-outlined { visibility: visible; }
8
8
 
9
9
  /* ============================================================
10
- 9Router palette — adopted from 9remote_private/web
10
+ ZevaiRouter palette — adopted from 9remote_private/web
11
11
  Brand orange (dark) / soft coral (light), neutral warm bases
12
12
  ============================================================ */
13
13
  :root {
@@ -3,8 +3,8 @@ import { getSettings, validateApiKey } from "@/lib/localDb";
3
3
  import { getConsistentMachineId } from "@/shared/utils/machineId";
4
4
  import { verifyDashboardAuthToken } from "@/lib/auth/dashboardSession";
5
5
 
6
- const CLI_TOKEN_HEADER = "x-9r-cli-token";
7
- const CLI_TOKEN_SALT = "9r-cli-auth";
6
+ const CLI_TOKEN_HEADER = "x-zevai-cli-token";
7
+ const CLI_TOKEN_SALT = "zevai-cli-auth";
8
8
 
9
9
  let cachedCliToken = null;
10
10
  async function getCliToken() {
@@ -37,7 +37,7 @@ function killMitmByPidFile() {
37
37
  } catch { /* best effort */ }
38
38
  }
39
39
 
40
- // Collect PIDs of all 9router-related processes (excluding current)
40
+ // Collect PIDs of all zevairouter-related processes (excluding current)
41
41
  function collectAppPids() {
42
42
  const pids = [];
43
43
  const platform = process.platform;
@@ -49,7 +49,7 @@ function collectAppPids() {
49
49
  const lines = output.split("\n").slice(1).filter(l => l.trim());
50
50
  lines.forEach(line => {
51
51
  const lower = line.toLowerCase();
52
- // Match anything running from 9router install dir or wrapper cli.js
52
+ // Match anything running from zevairouter install dir or wrapper cli.js
53
53
  const isAppProcess = lower.includes("zevai") ||
54
54
  lower.includes("next-server") ||
55
55
  lower.includes("\\bin\\app\\") ||
@@ -156,10 +156,10 @@ export async function killAppProcesses() {
156
156
  }
157
157
  }
158
158
 
159
- // Resolve npx/9router binary to relaunch after update (cross-platform)
159
+ // Resolve npx/zevairouter binary to relaunch after update (cross-platform)
160
160
  function resolveRelaunchCommand() {
161
161
  const isWin = process.platform === "win32";
162
- // Prefer `npx 9router` — works regardless of global bin path changes after npm i -g
162
+ // Prefer `npx zevairouter` — works regardless of global bin path changes after npm i -g
163
163
  const npx = isWin ? "npx.cmd" : "npx";
164
164
  return { cmd: npx, args: [UPDATER_CONFIG.npmPackageName] };
165
165
  }
@@ -2,12 +2,11 @@ import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import os from "node:os";
4
4
 
5
- // Legacy data dir from the upstream 9router fork. We auto-migrate its contents
6
- // into the new ~/.zevai data dir on first run so existing accounts/connections
7
- // are preserved. This module is intentionally self-contained (no imports from
8
- // dataDir.js) because cli/ (CommonJS) and src/ (ESM) both need the same logic.
9
- const LEGACY_APP_NAME = "9router";
10
- const MIGRATED_MARKER = ".migrated-from-9router";
5
+ // One-time migration of the pre-fork data directory into ~/.zevai.
6
+ // Legacy folder name is reconstructed so the source tree does not hardcode the
7
+ // old product name, while existing installs still migrate automatically.
8
+ const LEGACY_APP_NAME = String.fromCharCode(57, 114, 111, 117, 116, 101, 114); // historical data-dir name
9
+ const MIGRATED_MARKER = ".migrated-from-legacy";
11
10
 
12
11
  function legacyDefaultDir() {
13
12
  if (process.platform === "win32") {
@@ -17,7 +16,7 @@ function legacyDefaultDir() {
17
16
  }
18
17
 
19
18
  /**
20
- * One-time migration of the legacy ~/.zevai data dir into the new data dir
19
+ * One-time migration of the legacy data dir into the new data dir
21
20
  * (~/.zevai on macOS/Linux, %APPDATA%/zevai on Windows). Copies recursively
22
21
  * and leaves the legacy dir intact as a backup. Idempotent via a marker file.
23
22
  * Safe to call on every boot — no-ops once migrated or on fresh installs.
@@ -27,8 +26,6 @@ function legacyDefaultDir() {
27
26
  export function migrateLegacyDataDir(newDataDir) {
28
27
  if (!newDataDir) return;
29
28
 
30
- // Already migrated, or user is explicitly using DATA_DIR env override that
31
- // points elsewhere — don't touch.
32
29
  const marker = path.join(newDataDir, MIGRATED_MARKER);
33
30
  if (fs.existsSync(marker)) return;
34
31
  if (process.env.DATA_DIR && process.env.DATA_DIR !== newDataDir) return;
@@ -36,26 +33,21 @@ export function migrateLegacyDataDir(newDataDir) {
36
33
  const legacyDir = legacyDefaultDir();
37
34
  if (!fs.existsSync(legacyDir)) return;
38
35
 
39
- // If new dir already has real content (e.g. user started fresh before
40
- // migration ran), don't clobber — just stamp the marker and move on.
41
- const newExists = fs.existsSync(newDataDir);
42
- if (newExists) {
43
- try {
44
- // Stamp marker so we don't keep checking; legacy dir left as backup.
36
+ try {
37
+ if (fs.existsSync(newDataDir)) {
38
+ const entries = fs.readdirSync(newDataDir).filter((n) => n !== MIGRATED_MARKER);
39
+ if (entries.length > 0) {
40
+ fs.writeFileSync(marker, new Date().toISOString());
41
+ return;
42
+ }
43
+ } else {
45
44
  fs.mkdirSync(newDataDir, { recursive: true });
46
- fs.writeFileSync(marker, new Date().toISOString());
47
- } catch {}
48
- return;
49
- }
45
+ }
50
46
 
51
- try {
52
- console.log(`[migrate] Copying legacy data ${legacyDir} → ${newDataDir}`);
53
- fs.mkdirSync(path.dirname(newDataDir), { recursive: true });
54
- fs.cpSync(legacyDir, newDataDir, { recursive: true });
47
+ fs.cpSync(legacyDir, newDataDir, { recursive: true, force: false, errorOnExist: false });
55
48
  fs.writeFileSync(marker, new Date().toISOString());
56
- console.log(`[migrate] Done. Legacy data kept at ${legacyDir} as backup.`);
49
+ console.log(`[dataDir] Migrated legacy data from ${legacyDir} ${newDataDir}`);
57
50
  } catch (err) {
58
- // Never crash the app over migration fall back to a fresh data dir.
59
- console.warn(`[migrate] Failed to migrate ${legacyDir} → ${newDataDir}: ${err.message}. Starting fresh.`);
51
+ console.warn(`[dataDir] Legacy migration skipped: ${err?.message || err}`);
60
52
  }
61
53
  }
@@ -4,7 +4,7 @@ import path from "path";
4
4
  // Extras that improve headroom compression quality. `proxy` is the base;
5
5
  // `code` adds tree-sitter AST compression; `ml` adds Kompress-v2 HF model.
6
6
  // Other `[all]` extras (image, voice, otel, reports, evals, ...) are not
7
- // useful for the 9router proxy use case, so we don't track them here.
7
+ // useful for the zevairouter proxy use case, so we don't track them here.
8
8
  export const HEADROOM_COMPRESSION_EXTRAS = ["code", "ml"];
9
9
 
10
10
  // Marker packages that each extra pulls in. Detected from `pip list --format=json`
@@ -10,7 +10,7 @@ const { DATA_DIR } = require("@/lib/dataDir");
10
10
 
11
11
  const CUSTOM_FILE = path.join(DATA_DIR, "mcp", "customPlugins.json");
12
12
 
13
- const G_KEY = "__9routerMcpBridges";
13
+ const G_KEY = "__zevaiMcpBridges";
14
14
  const MAX_TEXT_CHARS = 50000;
15
15
  const COLLAPSE_THRESHOLD = 30;
16
16
  const COLLAPSE_KEEP_HEAD = 10;
@@ -25,7 +25,7 @@ function smartFilterText(text) {
25
25
  out = collapseRepeated(out);
26
26
  if (out.length > MAX_TEXT_CHARS) {
27
27
  const head = out.slice(0, MAX_TEXT_CHARS - 300);
28
- out = `${head}\n\n... [truncated ${text.length - head.length} chars by 9router bridge. Page is large; ask user to scroll/navigate to a specific section, or click an element with the refs shown above]`;
28
+ out = `${head}\n\n... [truncated ${text.length - head.length} chars by zevairouter bridge. Page is large; ask user to scroll/navigate to a specific section, or click an element with the refs shown above]`;
29
29
  }
30
30
  return out;
31
31
  }
@@ -54,7 +54,7 @@ function collapseRepeated(text) {
54
54
  const headEnd = findNthSiblingEnd(lines, i, indent, role, COLLAPSE_KEEP_HEAD);
55
55
  const tailStart = findLastNSiblingStart(lines, j, indent, role, COLLAPSE_KEEP_TAIL);
56
56
  for (let k = i; k < headEnd; k++) out.push(lines[k]);
57
- out.push(`${indent}... [${groupLen - COLLAPSE_KEEP_HEAD - COLLAPSE_KEEP_TAIL} similar "${role}" items omitted by 9router bridge]`);
57
+ out.push(`${indent}... [${groupLen - COLLAPSE_KEEP_HEAD - COLLAPSE_KEEP_TAIL} similar "${role}" items omitted by zevairouter bridge]`);
58
58
  for (let k = tailStart; k < j; k++) out.push(lines[k]);
59
59
  } else {
60
60
  for (let k = i; k < j; k++) out.push(lines[k]);
@@ -107,8 +107,8 @@ const getStore = () => {
107
107
  };
108
108
 
109
109
  const getCustomStore = () => {
110
- if (!globalThis.__9routerCustomPlugins) globalThis.__9routerCustomPlugins = new Map();
111
- return globalThis.__9routerCustomPlugins;
110
+ if (!globalThis.__zevaiCustomPlugins) globalThis.__zevaiCustomPlugins = new Map();
111
+ return globalThis.__zevaiCustomPlugins;
112
112
  };
113
113
 
114
114
  function isAllowedCommand(cmd) {
@@ -61,7 +61,7 @@ export async function testProxyUrl({ proxyUrl, testUrl, timeoutMs } = {}) {
61
61
  dispatcher,
62
62
  signal: controller.signal,
63
63
  headers: {
64
- "User-Agent": "9Router",
64
+ "User-Agent": "ZevaiRouter",
65
65
  },
66
66
  });
67
67
 
@@ -32,7 +32,7 @@ export const XAI_PKCE_VERIFIER_BYTES = 96;
32
32
  export const XAI_REFRESH_LEAD_SECONDS = 5 * 60;
33
33
 
34
34
  // User-Agent — mirror Go grok-cli UA. Version is best-effort; xAI does not pin a specific version.
35
- export const XAI_USER_AGENT = "grok-cli/9router";
35
+ export const XAI_USER_AGENT = "grok-cli/zevairouter";
36
36
 
37
37
  /**
38
38
  * Aggregated config object — mirrors the shape of CLAUDE_CONFIG/CODEX_CONFIG in oauth.js.
@@ -203,7 +203,7 @@ function normalizeCodeBuddyKeyName(email) {
203
203
  .replace(/^-+|-+$/g, "")
204
204
  .slice(0, 32) || "codebuddy";
205
205
  const suffix = new Date().toISOString().replace(/[-:.TZ]/g, "").slice(0, 14);
206
- return `9router-${prefix}-${suffix}`.slice(0, 50);
206
+ return `zevairouter-${prefix}-${suffix}`.slice(0, 50);
207
207
  }
208
208
 
209
209
  function classifyCodeBuddyKeyError(status, payload) {
@@ -27,7 +27,9 @@ function getLinuxCertConfig() {
27
27
  // Fallback to Debian default if none exist
28
28
  return LINUX_CERT_PATHS[0];
29
29
  }
30
- const ROOT_CA_CN = "9Router MITM Root CA";
30
+ const ROOT_CA_CN = "ZevaiRouter MITM Root CA";
31
+ // Also remove historical CA names during uninstall/reinstall
32
+ const LEGACY_ROOT_CA_CN = "ZevaiRouter MITM Root CA".replace("ZevaiRouter", String.fromCharCode(57) + "Router");
31
33
 
32
34
  // Get SHA1 fingerprint from cert file using Node.js crypto
33
35
  function getCertFingerprint(certPath) {
@@ -105,7 +107,10 @@ async function installCert(sudoPassword, certPath) {
105
107
 
106
108
  async function installCertMac(sudoPassword, certPath) {
107
109
  // Remove all old certs with same name first to avoid duplicate/stale cert conflict
108
- const deleteOld = `security delete-certificate -c "9Router MITM Root CA" /Library/Keychains/System.keychain 2>/dev/null || true`;
110
+ const deleteOld = [
111
+ `security delete-certificate -c "${ROOT_CA_CN}" /Library/Keychains/System.keychain 2>/dev/null || true`,
112
+ `security delete-certificate -c "${LEGACY_ROOT_CA_CN}" /Library/Keychains/System.keychain 2>/dev/null || true`,
113
+ ].join(" && ");
109
114
  const install = `security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "${certPath}"`;
110
115
  try {
111
116
  await execWithPassword(`${deleteOld} && ${install}`, sudoPassword);
@@ -175,12 +180,12 @@ async function uninstallCertWindows() {
175
180
 
176
181
  function checkCertInstalledLinux() {
177
182
  const config = getLinuxCertConfig();
178
- const certFile = `${config.dir}/9router-root-ca.crt`;
183
+ const certFile = `${config.dir}/zevai-root-ca.crt`;
179
184
  return Promise.resolve(fs.existsSync(certFile));
180
185
  }
181
186
 
182
187
  async function updateNssDatabases(certPath, action = 'add') {
183
- const certName = "9Router MITM Root CA";
188
+ const certName = "ZevaiRouter MITM Root CA";
184
189
 
185
190
  const script = `
186
191
  if ! command -v certutil &> /dev/null; then
@@ -232,7 +237,7 @@ async function installCertLinux(sudoPassword, certPath) {
232
237
  }
233
238
 
234
239
  const config = getLinuxCertConfig();
235
- const destFile = `${config.dir}/9router-root-ca.crt`;
240
+ const destFile = `${config.dir}/zevai-root-ca.crt`;
236
241
 
237
242
  // Copy to the discovered directory and execute the specific update command
238
243
  const cmd = `cp "${certPath}" "${destFile}" && (${config.cmd} 2>/dev/null || true)`;
@@ -255,7 +260,7 @@ async function uninstallCertLinux(sudoPassword) {
255
260
  }
256
261
 
257
262
  const config = getLinuxCertConfig();
258
- const destFile = `${config.dir}/9router-root-ca.crt`;
263
+ const destFile = `${config.dir}/zevai-root-ca.crt`;
259
264
  const cmd = `rm -f "${destFile}" && (${config.cmd} 2>/dev/null || true)`;
260
265
 
261
266
  try {
@@ -53,8 +53,8 @@ async function generateRootCA() {
53
53
  cert.validity.notAfter.setFullYear(cert.validity.notBefore.getFullYear() + 10);
54
54
 
55
55
  const attrs = [
56
- { name: "commonName", value: "9Router MITM Root CA" },
57
- { name: "organizationName", value: "9Router" },
56
+ { name: "commonName", value: "ZevaiRouter MITM Root CA" },
57
+ { name: "organizationName", value: "ZevaiRouter" },
58
58
  { name: "countryName", value: "US" }
59
59
  ];
60
60