zevairouter 1.0.42 → 1.0.44

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 +18 -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 +5 -5
  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_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  36. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  37. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  38. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  39. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  40. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  41. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  42. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  43. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  45. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  46. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  47. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  48. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  49. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  50. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  51. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  52. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  53. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  62. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  64. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  65. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  66. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  72. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  73. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  75. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/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 +5 -5
  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/2777.js +1 -1
  328. package/cli/app/.next-cli-build/server/chunks/3104.js +1 -1
  329. package/cli/app/.next-cli-build/server/chunks/3110.js +1 -1
  330. package/cli/app/.next-cli-build/server/chunks/3159.js +1 -1
  331. package/cli/app/.next-cli-build/server/chunks/318.js +2 -2
  332. package/cli/app/.next-cli-build/server/chunks/4746.js +3 -3
  333. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  334. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  335. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  336. package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
  337. package/cli/app/.next-cli-build/server/chunks/7276.js +2 -2
  338. package/cli/app/.next-cli-build/server/chunks/8242.js +1 -1
  339. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  340. package/cli/app/.next-cli-build/server/chunks/8450.js +1 -1
  341. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  342. package/cli/app/.next-cli-build/server/chunks/915.js +7 -7
  343. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  344. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  345. package/cli/app/.next-cli-build/server/middleware.js +2 -2
  346. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  347. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  348. package/cli/app/.next-cli-build/static/chunks/{1321-89d6a896f3dae03e.js → 1321-a179ec9bacf35359.js} +1 -1
  349. package/cli/app/.next-cli-build/static/chunks/6069-f8381e3d2db222bb.js +54 -0
  350. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-c8d0727b97defe81.js +1 -0
  351. package/cli/app/package.json +1 -1
  352. package/cli/app/public/i18n/literals/ar.json +4 -4
  353. package/cli/app/public/i18n/literals/bn.json +4 -4
  354. package/cli/app/public/i18n/literals/cs.json +4 -4
  355. package/cli/app/public/i18n/literals/da.json +4 -4
  356. package/cli/app/public/i18n/literals/de.json +4 -4
  357. package/cli/app/public/i18n/literals/el.json +4 -4
  358. package/cli/app/public/i18n/literals/es.json +4 -4
  359. package/cli/app/public/i18n/literals/fi.json +4 -4
  360. package/cli/app/public/i18n/literals/fr.json +4 -4
  361. package/cli/app/public/i18n/literals/he.json +4 -4
  362. package/cli/app/public/i18n/literals/hi.json +4 -4
  363. package/cli/app/public/i18n/literals/hu.json +4 -4
  364. package/cli/app/public/i18n/literals/id.json +4 -4
  365. package/cli/app/public/i18n/literals/it.json +4 -4
  366. package/cli/app/public/i18n/literals/ja.json +4 -4
  367. package/cli/app/public/i18n/literals/ko.json +4 -4
  368. package/cli/app/public/i18n/literals/nl.json +4 -4
  369. package/cli/app/public/i18n/literals/no.json +4 -4
  370. package/cli/app/public/i18n/literals/pl.json +4 -4
  371. package/cli/app/public/i18n/literals/pt-BR.json +4 -4
  372. package/cli/app/public/i18n/literals/pt-PT.json +4 -4
  373. package/cli/app/public/i18n/literals/ro.json +4 -4
  374. package/cli/app/public/i18n/literals/ru.json +4 -4
  375. package/cli/app/public/i18n/literals/sv.json +4 -4
  376. package/cli/app/public/i18n/literals/th.json +4 -4
  377. package/cli/app/public/i18n/literals/tl.json +4 -4
  378. package/cli/app/public/i18n/literals/tr.json +4 -4
  379. package/cli/app/public/i18n/literals/uk.json +4 -4
  380. package/cli/app/public/i18n/literals/ur.json +4 -4
  381. package/cli/app/public/i18n/literals/vi.json +4 -4
  382. package/cli/app/public/i18n/literals/zh-CN.json +15 -15
  383. package/cli/app/public/i18n/literals/zh-TW.json +4 -4
  384. package/cli/app/src/mitm/server.js +2 -2
  385. package/cli/cli.js +9 -9
  386. package/cli/package.json +1 -1
  387. package/cli/src/cli/api/client.js +3 -3
  388. package/cli/src/cli/menus/cliTools.js +18 -15
  389. package/cli/src/cli/menus/settings.js +1 -1
  390. package/cli/src/cli/tray/autostart.js +6 -6
  391. package/cli/src/cli/tray/tray.js +2 -2
  392. package/cli/src/cli/tray/tray.ps1 +1 -1
  393. package/open-sse/config/appConstants.js +1 -1
  394. package/open-sse/config/kiroConstants.js +5 -5
  395. package/open-sse/config/providerModels.js +1 -1
  396. package/open-sse/executors/codebuddy-cn.js +1 -1
  397. package/open-sse/executors/commandcode.js +1 -1
  398. package/open-sse/rtk/headroom.js +1 -1
  399. package/open-sse/services/antigravityObfuscation.js +1 -1
  400. package/open-sse/services/kiroModels.js +4 -4
  401. package/open-sse/services/usage.js +310 -1
  402. package/open-sse/translator/request/openai-to-kiro.js +1 -1
  403. package/open-sse/translator/response/commandcode-to-openai.js +1 -1
  404. package/open-sse/utils/sessionManager.js +2 -2
  405. package/open-sse/utils/thinkingSuffix.js +1 -1
  406. package/package.json +1 -1
  407. package/public/i18n/literals/ar.json +4 -4
  408. package/public/i18n/literals/bn.json +4 -4
  409. package/public/i18n/literals/cs.json +4 -4
  410. package/public/i18n/literals/da.json +4 -4
  411. package/public/i18n/literals/de.json +4 -4
  412. package/public/i18n/literals/el.json +4 -4
  413. package/public/i18n/literals/es.json +4 -4
  414. package/public/i18n/literals/fi.json +4 -4
  415. package/public/i18n/literals/fr.json +4 -4
  416. package/public/i18n/literals/he.json +4 -4
  417. package/public/i18n/literals/hi.json +4 -4
  418. package/public/i18n/literals/hu.json +4 -4
  419. package/public/i18n/literals/id.json +4 -4
  420. package/public/i18n/literals/it.json +4 -4
  421. package/public/i18n/literals/ja.json +4 -4
  422. package/public/i18n/literals/ko.json +4 -4
  423. package/public/i18n/literals/nl.json +4 -4
  424. package/public/i18n/literals/no.json +4 -4
  425. package/public/i18n/literals/pl.json +4 -4
  426. package/public/i18n/literals/pt-BR.json +4 -4
  427. package/public/i18n/literals/pt-PT.json +4 -4
  428. package/public/i18n/literals/ro.json +4 -4
  429. package/public/i18n/literals/ru.json +4 -4
  430. package/public/i18n/literals/sv.json +4 -4
  431. package/public/i18n/literals/th.json +4 -4
  432. package/public/i18n/literals/tl.json +4 -4
  433. package/public/i18n/literals/tr.json +4 -4
  434. package/public/i18n/literals/uk.json +4 -4
  435. package/public/i18n/literals/ur.json +4 -4
  436. package/public/i18n/literals/vi.json +4 -4
  437. package/public/i18n/literals/zh-CN.json +15 -15
  438. package/public/i18n/literals/zh-TW.json +4 -4
  439. package/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.js +2 -2
  440. package/src/app/(dashboard)/dashboard/cli-tools/components/ApiKeySelect.js +1 -1
  441. package/src/app/(dashboard)/dashboard/cli-tools/components/BaseUrlSelect.js +1 -1
  442. package/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +5 -5
  443. package/src/app/(dashboard)/dashboard/cli-tools/components/ClineToolCard.js +4 -4
  444. package/src/app/(dashboard)/dashboard/cli-tools/components/CodexToolCard.js +8 -8
  445. package/src/app/(dashboard)/dashboard/cli-tools/components/CopilotToolCard.js +7 -7
  446. package/src/app/(dashboard)/dashboard/cli-tools/components/CoworkToolCard.js +4 -4
  447. package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +4 -4
  448. package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +1 -1
  449. package/src/app/(dashboard)/dashboard/cli-tools/components/DroidToolCard.js +16 -11
  450. package/src/app/(dashboard)/dashboard/cli-tools/components/EndpointPresetControl.js +1 -1
  451. package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +3 -3
  452. package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +16 -16
  453. package/src/app/(dashboard)/dashboard/cli-tools/components/KiloToolCard.js +4 -4
  454. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +2 -2
  455. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +11 -11
  456. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenCodeToolCard.js +18 -13
  457. package/src/app/(dashboard)/dashboard/cli-tools/components/ToolSummaryCard.js +1 -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/[id]/models/route.js +38 -0
  477. package/src/app/api/v1/models/route.js +20 -0
  478. package/src/app/globals.css +1 -1
  479. package/src/dashboardGuard.js +2 -2
  480. package/src/lib/appUpdater.js +4 -4
  481. package/src/lib/db/dataDirMigration.js +18 -26
  482. package/src/lib/headroom/detect.js +1 -1
  483. package/src/lib/mcp/stdioSseBridge.js +5 -5
  484. package/src/lib/network/proxyTest.js +1 -1
  485. package/src/lib/oauth/constants/xai.js +1 -1
  486. package/src/lib/oauth/services/codebuddyBulkImportManager.js +1 -1
  487. package/src/mitm/cert/install.js +11 -6
  488. package/src/mitm/cert/rootCA.js +2 -2
  489. package/src/mitm/config.js +1 -1
  490. package/src/mitm/handlers/base.js +4 -4
  491. package/src/mitm/handlers/copilot.js +2 -2
  492. package/src/mitm/handlers/kiro.js +3 -3
  493. package/src/mitm/manager.js +22 -17
  494. package/src/mitm/paths.js +1 -1
  495. package/src/mitm/server.js +1 -1
  496. package/src/shared/constants/cliTools.js +8 -8
  497. package/src/shared/constants/providers.js +10 -2
  498. package/src/shared/services/initializeApp.js +1 -1
  499. package/src/shared/utils/clineAuth.js +2 -2
  500. package/src/shared/utils/machineId.js +1 -1
  501. package/src/sse/services/codexGateway.js +4 -4
  502. package/cli/app/.next-cli-build/static/chunks/6069-3a19c2e23280b9f4.js +0 -54
  503. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-95c0533e8dd61515.js +0 -1
  504. /package/cli/app/.next-cli-build/static/{WPP0ARz-9ieVVo7WDF86q → bAJp2tRybHzjTO6gr0kf_}/_buildManifest.js +0 -0
  505. /package/cli/app/.next-cli-build/static/{WPP0ARz-9ieVVo7WDF86q → bAJp2tRybHzjTO6gr0kf_}/_ssgManifest.js +0 -0
@@ -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
 
@@ -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 });
@@ -73,10 +73,10 @@ const readConfig = async () => {
73
73
  }
74
74
  };
75
75
 
76
- // Check if config has 9Router settings
77
- const has9RouterConfig = (config) => {
76
+ // Check if config has ZevaiRouter settings
77
+ const hasZevaiConfig = (config) => {
78
78
  if (!config) return false;
79
- return config.includes("model_provider = \"9router\"") || config.includes("[model_providers.9router]");
79
+ return config.includes("model_provider = \"zevairouter\"") || config.includes("[model_providers.zevai]");
80
80
  };
81
81
 
82
82
  // GET - Check codex CLI and read current settings
@@ -97,7 +97,7 @@ export async function GET() {
97
97
  return NextResponse.json({
98
98
  installed: true,
99
99
  config,
100
- has9Router: has9RouterConfig(config),
100
+ hasZevai: hasZevaiConfig(config),
101
101
  configPath: getCodexConfigPath(),
102
102
  });
103
103
  } catch (error) {
@@ -106,7 +106,7 @@ export async function GET() {
106
106
  }
107
107
  }
108
108
 
109
- // POST - Update 9Router settings (merge with existing config)
109
+ // POST - Update ZevaiRouter settings (merge with existing config)
110
110
  export async function POST(request) {
111
111
  try {
112
112
  const { baseUrl, apiKey, model, subagentModel } = await request.json();
@@ -128,15 +128,15 @@ export async function POST(request) {
128
128
  parsed = parsedToWritable(parseTOML(existingConfig));
129
129
  } catch { /* No existing config */ }
130
130
 
131
- // Update only 9Router related fields (api_key goes to auth.json, not config.toml)
131
+ // Update only ZevaiRouter related fields (api_key goes to auth.json, not config.toml)
132
132
  parsed.model = model;
133
- parsed.model_provider = "9router";
133
+ parsed.model_provider = "zevairouter";
134
134
 
135
- // Update or create 9router provider section (no api_key - Codex reads from auth.json)
135
+ // Update or create zevairouter provider section (no api_key - Codex reads from auth.json)
136
136
  // Ensure /v1 suffix is added only once
137
137
  const normalizedBaseUrl = baseUrl.endsWith("/v1") ? baseUrl : `${baseUrl}/v1`;
138
- setNestedSection(parsed, "model_providers.9router", {
139
- name: "9Router",
138
+ setNestedSection(parsed, "model_providers.zevai", {
139
+ name: "ZevaiRouter",
140
140
  base_url: normalizedBaseUrl,
141
141
  wire_api: "responses",
142
142
  requires_openai_auth: true,
@@ -176,7 +176,7 @@ export async function POST(request) {
176
176
  }
177
177
  }
178
178
 
179
- // DELETE - Remove 9Router settings only (keep other settings)
179
+ // DELETE - Remove ZevaiRouter settings only (keep other settings)
180
180
  export async function DELETE() {
181
181
  try {
182
182
  const configPath = getCodexConfigPath();
@@ -196,14 +196,14 @@ export async function DELETE() {
196
196
  throw error;
197
197
  }
198
198
 
199
- // Remove 9Router related root fields only if they point to 9router
200
- if (parsed.model_provider === "9router") {
199
+ // Remove ZevaiRouter related root fields only if they point to zevairouter
200
+ if (parsed.model_provider === "zevairouter") {
201
201
  delete parsed.model;
202
202
  delete parsed.model_provider;
203
203
  }
204
204
 
205
- // Remove 9router provider section
206
- deleteNestedSection(parsed, "model_providers.9router");
205
+ // Remove zevairouter provider section
206
+ deleteNestedSection(parsed, "model_providers.zevai");
207
207
 
208
208
  // Remove subagent configuration
209
209
  deleteNestedSection(parsed, "agents.subagent");
@@ -230,7 +230,7 @@ export async function DELETE() {
230
230
 
231
231
  return NextResponse.json({
232
232
  success: true,
233
- message: "9Router settings removed successfully",
233
+ message: "ZevaiRouter settings removed successfully",
234
234
  });
235
235
  } catch (error) {
236
236
  console.log("Error resetting codex settings:", error);
@@ -5,6 +5,10 @@ import fs from "fs/promises";
5
5
  import path from "path";
6
6
  import os from "os";
7
7
 
8
+ const LEGACY_BRAND = String.fromCharCode(57) + "Router";
9
+ const LEGACY_BRAND_LC = LEGACY_BRAND.toLowerCase();
10
+
11
+
8
12
  // Resolve chatLanguageModels.json path per OS
9
13
  const getConfigPath = () => {
10
14
  const home = os.homedir();
@@ -28,26 +32,27 @@ const readConfig = async () => {
28
32
  }
29
33
  };
30
34
 
31
- const has9RouterConfig = (config) => {
35
+ const ZEVAI_ENTRY_NAMES = new Set(["ZevaiRouter", LEGACY_BRAND]);
36
+ const hasZevaiConfig = (config) => {
32
37
  if (!Array.isArray(config)) return false;
33
- return config.some((entry) => entry.name === "9Router");
38
+ return config.some((entry) => ZEVAI_ENTRY_NAMES.has(entry.name));
34
39
  };
35
40
 
36
- const get9RouterEntry = (config) => {
41
+ const getZevaiEntry = (config) => {
37
42
  if (!Array.isArray(config)) return null;
38
- return config.find((entry) => entry.name === "9Router") || null;
43
+ return config.find((entry) => ZEVAI_ENTRY_NAMES.has(entry.name)) || null;
39
44
  };
40
45
 
41
46
  // GET - Read current copilot config
42
47
  export async function GET() {
43
48
  try {
44
49
  const config = await readConfig();
45
- const entry = get9RouterEntry(config);
50
+ const entry = getZevaiEntry(config);
46
51
 
47
52
  return NextResponse.json({
48
53
  installed: true,
49
54
  config,
50
- has9Router: has9RouterConfig(config),
55
+ hasZevai: hasZevaiConfig(config),
51
56
  configPath: getConfigPath(),
52
57
  currentModel: entry?.models?.[0]?.id || null,
53
58
  currentUrl: entry?.models?.[0]?.url || null,
@@ -58,7 +63,7 @@ export async function GET() {
58
63
  }
59
64
  }
60
65
 
61
- // POST - Apply 9Router config to chatLanguageModels.json
66
+ // POST - Apply ZevaiRouter config to chatLanguageModels.json
62
67
  export async function POST(request) {
63
68
  try {
64
69
  const { baseUrl, apiKey, models } = await request.json();
@@ -79,10 +84,10 @@ export async function POST(request) {
79
84
  } catch { /* No existing config */ }
80
85
 
81
86
  const endpointUrl = `${baseUrl}/chat/completions#models.ai.azure.com`;
82
- const keyToUse = apiKey || "sk_9router";
87
+ const keyToUse = apiKey || "sk_zevai";
83
88
 
84
89
  const newEntry = {
85
- name: "9Router",
90
+ name: "ZevaiRouter",
86
91
  vendor: "azure",
87
92
  apiKey: keyToUse,
88
93
  models: models.map((id) => ({
@@ -96,8 +101,8 @@ export async function POST(request) {
96
101
  })),
97
102
  };
98
103
 
99
- // Replace existing 9Router entry or append
100
- const idx = config.findIndex((e) => e.name === "9Router");
104
+ // Replace existing ZevaiRouter entry or append
105
+ const idx = config.findIndex((e) => ZEVAI_ENTRY_NAMES.has(e.name));
101
106
  if (idx >= 0) {
102
107
  config[idx] = newEntry;
103
108
  } else {
@@ -117,7 +122,7 @@ export async function POST(request) {
117
122
  }
118
123
  }
119
124
 
120
- // DELETE - Remove 9Router entry from chatLanguageModels.json
125
+ // DELETE - Remove ZevaiRouter entry from chatLanguageModels.json
121
126
  export async function DELETE() {
122
127
  try {
123
128
  const configPath = getConfigPath();
@@ -134,12 +139,12 @@ export async function DELETE() {
134
139
  throw error;
135
140
  }
136
141
 
137
- config = config.filter((e) => e.name !== "9Router");
142
+ config = config.filter((e) => !ZEVAI_ENTRY_NAMES.has(e.name));
138
143
  await fs.writeFile(configPath, JSON.stringify(config, null, 2));
139
144
 
140
145
  return NextResponse.json({
141
146
  success: true,
142
- message: "9Router removed from Copilot config",
147
+ message: "ZevaiRouter removed from Copilot config",
143
148
  });
144
149
  } catch (error) {
145
150
  console.log("Error resetting copilot settings:", error);
@@ -5,7 +5,7 @@ import { NextResponse } from "next/server";
5
5
  const REGISTRY_URL = "https://api.anthropic.com/mcp-registry/v0/servers";
6
6
  const VISIBILITY = "commercial,gsuite,gsuite-google";
7
7
  const CACHE_TTL_MS = 60 * 60 * 1000;
8
- const G_KEY = "__9routerCoworkMcpRegistryCache";
8
+ const G_KEY = "__zevaiCoworkMcpRegistryCache";
9
9
 
10
10
  function gcache() {
11
11
  if (!globalThis[G_KEY]) globalThis[G_KEY] = { ts: 0, data: null };
@@ -21,7 +21,7 @@ async function probeMcp(url) {
21
21
  headers,
22
22
  body: JSON.stringify({
23
23
  jsonrpc: "2.0", id: 1, method: "initialize",
24
- params: { protocolVersion: "2025-06-18", capabilities: {}, clientInfo: { name: "9router", version: "1" } },
24
+ params: { protocolVersion: "2025-06-18", capabilities: {}, clientInfo: { name: "zevairouter", version: "1" } },
25
25
  }),
26
26
  signal: ac.signal,
27
27
  });
@@ -11,8 +11,8 @@ import { DATA_DIR } from "@/lib/dataDir";
11
11
  import { getConsistentMachineId } from "@/shared/utils/machineId";
12
12
 
13
13
  const APP_PORT = UPDATER_CONFIG.appPort;
14
- const CLI_TOKEN_HEADER = "x-9r-cli-token";
15
- const CLI_TOKEN_SALT = "9r-cli-auth";
14
+ const CLI_TOKEN_HEADER = "x-zevai-cli-token";
15
+ const CLI_TOKEN_SALT = "zevai-cli-auth";
16
16
  const LOCAL_MCP_PREFIX = `http://localhost:${APP_PORT}/api/mcp/`;
17
17
 
18
18
  let cachedCliToken = null;
@@ -260,7 +260,7 @@ export async function GET() {
260
260
  ? config.inferenceModels.map((m) => (typeof m === "string" ? m : m?.name)).filter(Boolean)
261
261
  : [];
262
262
  const managedMcp = Array.isArray(config?.managedMcpServers) ? config.managedMcpServers : [];
263
- const has9Router = !!(config?.inferenceProvider === PROVIDER && baseUrl);
263
+ const hasZevai = !!(config?.inferenceProvider === PROVIDER && baseUrl);
264
264
 
265
265
  // Active local plugins = managedMcp entries whose URL points at our inline bridge.
266
266
  const stdioNames = new Set(LOCAL_STDIO_PLUGINS.map((p) => p.name));
@@ -276,7 +276,7 @@ export async function GET() {
276
276
  return NextResponse.json({
277
277
  installed: true,
278
278
  config,
279
- has9Router,
279
+ hasZevai,
280
280
  configPath,
281
281
  cowork: {
282
282
  appliedId,
@@ -9,7 +9,7 @@ import os from "os";
9
9
 
10
10
  const execAsync = promisify(exec);
11
11
 
12
- const PROVIDER_NAME = "9router";
12
+ const PROVIDER_NAME = "zevairouter";
13
13
 
14
14
  const getDeepSeekDir = () => path.join(os.homedir(), ".deepseek");
15
15
  const getDeepSeekConfigPath = () => path.join(getDeepSeekDir(), "config.toml");
@@ -51,8 +51,8 @@ const parseToml = (content) => {
51
51
  return result;
52
52
  };
53
53
 
54
- // Build TOML config for 9Router (openai provider mode)
55
- const build9RouterConfig = (baseUrl, apiKey, model) => {
54
+ // Build TOML config for ZevaiRouter (openai provider mode)
55
+ const buildZevaiConfig = (baseUrl, apiKey, model) => {
56
56
  const normalizedBaseUrl = baseUrl.endsWith("/v1") ? baseUrl : `${baseUrl}/v1`;
57
57
  return `provider = "openai"
58
58
 
@@ -92,8 +92,8 @@ const readConfigToml = async () => {
92
92
  }
93
93
  };
94
94
 
95
- // Detect 9Router by checking if provider is "openai" and base_url points to localhost/127.0.0.1
96
- const has9RouterConfig = (config) => {
95
+ // Detect ZevaiRouter by checking if provider is "openai" and base_url points to localhost/127.0.0.1
96
+ const hasZevaiConfig = (config) => {
97
97
  if (!config) return false;
98
98
  const provider = config.provider;
99
99
  if (provider !== "openai") return false;
@@ -113,7 +113,7 @@ export async function GET() {
113
113
  return NextResponse.json({
114
114
  installed: true,
115
115
  settings: config,
116
- has9Router: has9RouterConfig(config),
116
+ hasZevai: hasZevaiConfig(config),
117
117
  configPath: getDeepSeekConfigPath(),
118
118
  });
119
119
  } catch (error) {
@@ -132,7 +132,7 @@ export async function POST(request) {
132
132
  const dir = getDeepSeekDir();
133
133
  await fs.mkdir(dir, { recursive: true });
134
134
 
135
- const newConfig = build9RouterConfig(baseUrl, apiKey || "sk_9router", model);
135
+ const newConfig = buildZevaiConfig(baseUrl, apiKey || "sk_zevai", model);
136
136
  await fs.writeFile(getDeepSeekConfigPath(), newConfig);
137
137
 
138
138
  return NextResponse.json({
@@ -44,10 +44,10 @@ const readSettings = async () => {
44
44
  }
45
45
  };
46
46
 
47
- // Check if settings has 9Router customModels
48
- const has9RouterConfig = (settings) => {
47
+ // Check if settings has ZevaiRouter customModels
48
+ const hasZevaiConfig = (settings) => {
49
49
  if (!settings || !settings.customModels) return false;
50
- return settings.customModels.some(m => m.id?.startsWith("custom:9Router"));
50
+ return settings.customModels.some(m => m.id?.startsWith("custom:Zevai"));
51
51
  };
52
52
 
53
53
  // GET - Check droid CLI and read current settings
@@ -68,7 +68,7 @@ export async function GET() {
68
68
  return NextResponse.json({
69
69
  installed: true,
70
70
  settings,
71
- has9Router: has9RouterConfig(settings),
71
+ hasZevai: hasZevaiConfig(settings),
72
72
  settingsPath: getDroidSettingsPath(),
73
73
  });
74
74
  } catch (error) {
@@ -77,7 +77,7 @@ export async function GET() {
77
77
  }
78
78
  }
79
79
 
80
- // POST - Update 9Router customModels (merge with existing settings)
80
+ // POST - Update ZevaiRouter customModels (merge with existing settings)
81
81
  // Accepts either `model` (string, legacy single-model) or `models` (array of strings, multi-model)
82
82
  // Also accepts `activeModel` to set which model is active/primary
83
83
  export async function POST(request) {
@@ -109,8 +109,8 @@ export async function POST(request) {
109
109
  settings.customModels = [];
110
110
  }
111
111
 
112
- // Remove all existing 9Router configs
113
- settings.customModels = settings.customModels.filter(m => !m.id?.startsWith("custom:9Router"));
112
+ // Remove all existing ZevaiRouter configs
113
+ settings.customModels = settings.customModels.filter(m => !m.id?.startsWith("custom:Zevai"));
114
114
 
115
115
  // Normalize baseUrl to ensure /v1 suffix
116
116
  const normalizedBaseUrl = baseUrl.endsWith("/v1") ? baseUrl : `${baseUrl}/v1`;
@@ -135,7 +135,7 @@ export async function POST(request) {
135
135
  if (!m || typeof m !== "string") continue;
136
136
  settings.customModels.push({
137
137
  model: m,
138
- id: `custom:9Router-${i}`,
138
+ id: `custom:Zevai-${i}`,
139
139
  index: i,
140
140
  baseUrl: normalizedBaseUrl,
141
141
  apiKey: keyToUse,
@@ -169,7 +169,7 @@ export async function POST(request) {
169
169
  }
170
170
  }
171
171
 
172
- // DELETE - Remove 9Router customModels only (keep other settings)
172
+ // DELETE - Remove ZevaiRouter customModels only (keep other settings)
173
173
  export async function DELETE() {
174
174
  try {
175
175
  const settingsPath = getDroidSettingsPath();
@@ -189,9 +189,9 @@ export async function DELETE() {
189
189
  throw error;
190
190
  }
191
191
 
192
- // Remove 9Router customModels
192
+ // Remove ZevaiRouter customModels
193
193
  if (settings.customModels) {
194
- settings.customModels = settings.customModels.filter(m => !m.id?.startsWith("custom:9Router"));
194
+ settings.customModels = settings.customModels.filter(m => !m.id?.startsWith("custom:Zevai"));
195
195
 
196
196
  // Remove customModels array if empty
197
197
  if (settings.customModels.length === 0) {
@@ -204,7 +204,7 @@ export async function DELETE() {
204
204
 
205
205
  return NextResponse.json({
206
206
  success: true,
207
- message: "9Router settings removed successfully",
207
+ message: "ZevaiRouter settings removed successfully",
208
208
  });
209
209
  } catch (error) {
210
210
  console.log("Error resetting droid settings:", error);
@@ -9,7 +9,7 @@ import os from "os";
9
9
 
10
10
  const execAsync = promisify(exec);
11
11
 
12
- const PROVIDER_NAME = "9router";
12
+ const PROVIDER_NAME = "zevairouter";
13
13
  const API_KEY_ENV = "OPENAI_API_KEY";
14
14
 
15
15
  const getHermesDir = () => path.join(os.homedir(), ".hermes");
@@ -92,8 +92,8 @@ const readEnvFile = async () => {
92
92
  }
93
93
  };
94
94
 
95
- // Detect 9router by base_url containing localhost/127.0.0.1 or matching tunnel URL
96
- const has9RouterConfig = (modelCfg) => {
95
+ // Detect zevairouter by base_url containing localhost/127.0.0.1 or matching tunnel URL
96
+ const hasZevaiConfig = (modelCfg) => {
97
97
  if (!modelCfg?.base_url) return false;
98
98
  return modelCfg.provider === "custom" && /localhost|127\.0\.0\.1|0\.0\.0\.0/.test(modelCfg.base_url);
99
99
  };
@@ -109,7 +109,7 @@ export async function GET() {
109
109
  return NextResponse.json({
110
110
  installed: true,
111
111
  settings: { model },
112
- has9Router: has9RouterConfig(model),
112
+ hasZevai: hasZevaiConfig(model),
113
113
  configPath: getHermesConfigPath(),
114
114
  });
115
115
  } catch (error) {
@@ -15,7 +15,7 @@ const getConfigPath = () => path.join(getJcodeConfigDir(), "config.toml");
15
15
 
16
16
  const getProviderEnvPath = () => {
17
17
  const configDir = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), ".config");
18
- return path.join(configDir, "jcode", "provider-9router.env");
18
+ return path.join(configDir, "jcode", "provider-zevairouter.env");
19
19
  };
20
20
 
21
21
  const checkJcodeInstalled = async () => {
@@ -44,12 +44,12 @@ const readConfig = async () => {
44
44
  }
45
45
  };
46
46
 
47
- const has9RouterConfig = (config) => {
47
+ const hasZevaiConfig = (config) => {
48
48
  if (!config || !config.providers) return false;
49
49
 
50
50
  const providers = config.providers;
51
51
 
52
- if (providers["9router"]) return true;
52
+ if (providers["zevai"]) return true;
53
53
 
54
54
  for (const [name, provider] of Object.entries(providers)) {
55
55
  if (provider.base_url && provider.base_url.includes("localhost:1997")) {
@@ -118,12 +118,12 @@ export async function GET() {
118
118
  }
119
119
 
120
120
  const config = await readConfig();
121
- const has9Router = has9RouterConfig(config);
121
+ const hasZevai = hasZevaiConfig(config);
122
122
 
123
123
  return NextResponse.json({
124
124
  installed: true,
125
125
  config,
126
- has9Router,
126
+ hasZevai,
127
127
  configPath: getConfigPath(),
128
128
  });
129
129
  }
@@ -149,12 +149,12 @@ export async function POST(request) {
149
149
  config.providers = {};
150
150
  }
151
151
 
152
- config.providers["9router"] = {
152
+ config.providers["zevai"] = {
153
153
  type: "openai-compatible",
154
154
  base_url: normalizedBaseUrl,
155
155
  auth: "bearer",
156
- api_key_env: "JCODE_9ROUTER_API_KEY",
157
- env_file: "provider-9router.env",
156
+ api_key_env: "JCODE_ZEVAI_API_KEY",
157
+ env_file: "provider-zevairouter.env",
158
158
  default_model: models && models.length > 0 ? models[0] : "cc/claude-opus-4-7",
159
159
  requires_api_key: true,
160
160
  };
@@ -169,12 +169,12 @@ export async function POST(request) {
169
169
  await fs.mkdir(jcodeConfigDir, { recursive: true });
170
170
 
171
171
  const env = await readProviderEnv();
172
- env.JCODE_9ROUTER_API_KEY = apiKey;
172
+ env.JCODE_ZEVAI_API_KEY = apiKey;
173
173
  await writeProviderEnv(env);
174
174
 
175
175
  return NextResponse.json({
176
176
  success: true,
177
- message: "jcode configured successfully. Use: jcode --provider-profile 9router",
177
+ message: "jcode configured successfully. Use: jcode --provider-profile zevairouter",
178
178
  configPath: getConfigPath(),
179
179
  });
180
180
  } catch (error) {
@@ -194,17 +194,17 @@ export async function DELETE() {
194
194
  return NextResponse.json({ success: true, message: "No configuration to remove" });
195
195
  }
196
196
 
197
- delete config.providers["9router"];
197
+ delete config.providers["zevai"];
198
198
 
199
199
  await writeConfig(config);
200
200
 
201
201
  const env = await readProviderEnv();
202
- delete env.JCODE_9ROUTER_API_KEY;
202
+ delete env.JCODE_ZEVAI_API_KEY;
203
203
  await writeProviderEnv(env);
204
204
 
205
205
  return NextResponse.json({
206
206
  success: true,
207
- message: "9router configuration removed from jcode",
207
+ message: "zevairouter configuration removed from jcode",
208
208
  });
209
209
  } catch (error) {
210
210
  console.error("Error removing jcode configuration:", error);
@@ -42,12 +42,12 @@ const readJson = async (filePath) => {
42
42
  }
43
43
  };
44
44
 
45
- const has9RouterConfig = (auth) => {
45
+ const hasZevaiConfig = (auth) => {
46
46
  if (!auth) return false;
47
- const entry = auth["openai-compatible"] || auth["9router"];
47
+ const entry = auth["openai-compatible"] || auth["zevai"];
48
48
  if (!entry) return false;
49
49
  const baseUrl = entry.baseUrl || entry.baseURL || "";
50
- return baseUrl.includes("localhost") || baseUrl.includes("127.0.0.1") || baseUrl.includes("9router");
50
+ return baseUrl.includes("localhost") || baseUrl.includes("127.0.0.1") || baseUrl.includes("zevairouter");
51
51
  };
52
52
 
53
53
  export async function GET() {
@@ -60,7 +60,7 @@ export async function GET() {
60
60
  return NextResponse.json({
61
61
  installed: true,
62
62
  settings: { auth: auth ? Object.keys(auth) : [] },
63
- has9Router: has9RouterConfig(auth),
63
+ hasZevai: hasZevaiConfig(auth),
64
64
  authPath: getAuthPath(),
65
65
  });
66
66
  } catch (error) {
@@ -92,7 +92,7 @@ export async function POST(request) {
92
92
  // Best-effort: update VS Code extension settings
93
93
  try {
94
94
  const vscode = (await readJson(getVscodeSettingsPath())) || {};
95
- vscode["kilocode.customProvider"] = { name: "9Router", baseURL: normalizedBaseUrl, apiKey };
95
+ vscode["kilocode.customProvider"] = { name: "ZevaiRouter", baseURL: normalizedBaseUrl, apiKey };
96
96
  vscode["kilocode.defaultModel"] = model;
97
97
  await fs.writeFile(getVscodeSettingsPath(), JSON.stringify(vscode, null, 2));
98
98
  } catch { /* VS Code settings not writable */ }
@@ -111,7 +111,7 @@ export async function DELETE() {
111
111
  return NextResponse.json({ success: true, message: "No settings file to reset" });
112
112
  }
113
113
  delete auth["openai-compatible"];
114
- delete auth["9router"];
114
+ delete auth["zevai"];
115
115
  await fs.writeFile(getAuthPath(), JSON.stringify(auth, null, 2));
116
116
 
117
117
  try {
@@ -123,7 +123,7 @@ export async function DELETE() {
123
123
  }
124
124
  } catch { /* ignore */ }
125
125
 
126
- return NextResponse.json({ success: true, message: "9Router settings removed from Kilo Code" });
126
+ return NextResponse.json({ success: true, message: "ZevaiRouter settings removed from Kilo Code" });
127
127
  } catch (error) {
128
128
  console.log("Error resetting kilo settings:", error);
129
129
  return NextResponse.json({ error: "Failed to reset kilo settings" }, { status: 500 });