zevairouter 1.0.42 → 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 (499) hide show
  1. package/CHANGELOG.md +12 -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 +3 -3
  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]/test-models/route.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  95. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  96. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  97. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  98. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  99. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  100. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  101. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  102. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  103. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  104. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  105. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  106. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  107. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  108. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  109. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  110. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  111. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  112. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  113. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  114. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  115. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  116. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  117. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  118. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  119. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  120. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  121. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  122. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  123. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  124. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  125. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  126. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  127. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  128. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  129. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  130. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  131. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  132. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  133. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  134. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  135. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  136. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  137. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  138. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  139. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  140. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  141. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  142. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  143. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  144. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  145. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  146. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  147. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  148. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  149. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  150. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  151. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  152. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  153. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  154. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  155. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  156. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  157. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  158. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  159. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  160. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  161. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  162. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  163. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  164. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  165. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  166. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  167. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  168. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  169. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  170. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  171. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  172. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  173. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  174. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  175. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  176. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  177. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  178. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  179. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  180. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  181. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  182. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  183. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  184. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  185. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  186. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  187. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  188. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  189. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  190. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  191. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  192. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  193. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  194. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  195. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  196. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  197. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  198. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  199. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  200. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  201. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  202. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  203. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  204. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  205. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  206. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  207. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  208. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  209. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  210. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  211. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  212. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  213. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  214. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  215. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  216. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  217. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  218. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  219. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  220. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  221. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  222. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  223. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  224. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  225. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  226. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  227. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  228. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  229. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  230. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  231. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  232. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  233. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  234. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  235. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  236. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  237. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  238. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  239. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  240. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  241. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  244. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  245. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  246. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  247. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  249. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  250. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  251. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  252. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  253. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  254. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  255. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  256. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  257. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  258. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  259. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  260. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  261. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  262. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  263. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  264. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  265. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  266. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  267. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  268. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  269. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  270. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  271. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  272. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  273. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  274. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  275. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  276. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  277. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  278. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  279. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  280. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  281. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  282. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  283. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  284. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  285. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  286. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  287. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  288. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  289. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  290. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  291. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  292. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  293. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  294. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  295. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  296. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  297. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  298. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  299. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  300. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  301. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  302. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  303. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  304. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  305. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  306. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  307. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  308. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  309. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  310. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  311. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  313. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  314. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  315. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  316. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  317. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  318. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  319. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  320. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  321. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  322. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  323. package/cli/app/.next-cli-build/server/app-paths-manifest.json +3 -3
  324. package/cli/app/.next-cli-build/server/chunks/1939.js +1 -1
  325. package/cli/app/.next-cli-build/server/chunks/2722.js +16 -16
  326. package/cli/app/.next-cli-build/server/chunks/3104.js +1 -1
  327. package/cli/app/.next-cli-build/server/chunks/3110.js +1 -1
  328. package/cli/app/.next-cli-build/server/chunks/3159.js +1 -1
  329. package/cli/app/.next-cli-build/server/chunks/318.js +1 -1
  330. package/cli/app/.next-cli-build/server/chunks/4746.js +3 -3
  331. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  332. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  333. package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
  334. package/cli/app/.next-cli-build/server/chunks/7276.js +2 -2
  335. package/cli/app/.next-cli-build/server/chunks/8242.js +1 -1
  336. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  337. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  338. package/cli/app/.next-cli-build/server/chunks/915.js +7 -7
  339. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  340. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  341. package/cli/app/.next-cli-build/server/middleware.js +2 -2
  342. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  343. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  344. package/cli/app/.next-cli-build/static/chunks/{1321-89d6a896f3dae03e.js → 1321-3f408a698d9c9da9.js} +1 -1
  345. package/cli/app/.next-cli-build/static/chunks/6069-f8381e3d2db222bb.js +54 -0
  346. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-c8d0727b97defe81.js +1 -0
  347. package/cli/app/package.json +1 -1
  348. package/cli/app/public/i18n/literals/ar.json +4 -4
  349. package/cli/app/public/i18n/literals/bn.json +4 -4
  350. package/cli/app/public/i18n/literals/cs.json +4 -4
  351. package/cli/app/public/i18n/literals/da.json +4 -4
  352. package/cli/app/public/i18n/literals/de.json +4 -4
  353. package/cli/app/public/i18n/literals/el.json +4 -4
  354. package/cli/app/public/i18n/literals/es.json +4 -4
  355. package/cli/app/public/i18n/literals/fi.json +4 -4
  356. package/cli/app/public/i18n/literals/fr.json +4 -4
  357. package/cli/app/public/i18n/literals/he.json +4 -4
  358. package/cli/app/public/i18n/literals/hi.json +4 -4
  359. package/cli/app/public/i18n/literals/hu.json +4 -4
  360. package/cli/app/public/i18n/literals/id.json +4 -4
  361. package/cli/app/public/i18n/literals/it.json +4 -4
  362. package/cli/app/public/i18n/literals/ja.json +4 -4
  363. package/cli/app/public/i18n/literals/ko.json +4 -4
  364. package/cli/app/public/i18n/literals/nl.json +4 -4
  365. package/cli/app/public/i18n/literals/no.json +4 -4
  366. package/cli/app/public/i18n/literals/pl.json +4 -4
  367. package/cli/app/public/i18n/literals/pt-BR.json +4 -4
  368. package/cli/app/public/i18n/literals/pt-PT.json +4 -4
  369. package/cli/app/public/i18n/literals/ro.json +4 -4
  370. package/cli/app/public/i18n/literals/ru.json +4 -4
  371. package/cli/app/public/i18n/literals/sv.json +4 -4
  372. package/cli/app/public/i18n/literals/th.json +4 -4
  373. package/cli/app/public/i18n/literals/tl.json +4 -4
  374. package/cli/app/public/i18n/literals/tr.json +4 -4
  375. package/cli/app/public/i18n/literals/uk.json +4 -4
  376. package/cli/app/public/i18n/literals/ur.json +4 -4
  377. package/cli/app/public/i18n/literals/vi.json +4 -4
  378. package/cli/app/public/i18n/literals/zh-CN.json +15 -15
  379. package/cli/app/public/i18n/literals/zh-TW.json +4 -4
  380. package/cli/app/src/mitm/server.js +2 -2
  381. package/cli/cli.js +9 -9
  382. package/cli/package.json +1 -1
  383. package/cli/src/cli/api/client.js +3 -3
  384. package/cli/src/cli/menus/cliTools.js +18 -15
  385. package/cli/src/cli/menus/settings.js +1 -1
  386. package/cli/src/cli/tray/autostart.js +6 -6
  387. package/cli/src/cli/tray/tray.js +2 -2
  388. package/cli/src/cli/tray/tray.ps1 +1 -1
  389. package/open-sse/config/appConstants.js +1 -1
  390. package/open-sse/config/kiroConstants.js +5 -5
  391. package/open-sse/config/providerModels.js +1 -1
  392. package/open-sse/executors/codebuddy-cn.js +1 -1
  393. package/open-sse/executors/commandcode.js +1 -1
  394. package/open-sse/rtk/headroom.js +1 -1
  395. package/open-sse/services/antigravityObfuscation.js +1 -1
  396. package/open-sse/services/kiroModels.js +4 -4
  397. package/open-sse/services/usage.js +1 -1
  398. package/open-sse/translator/request/openai-to-kiro.js +1 -1
  399. package/open-sse/translator/response/commandcode-to-openai.js +1 -1
  400. package/open-sse/utils/sessionManager.js +2 -2
  401. package/open-sse/utils/thinkingSuffix.js +1 -1
  402. package/package.json +1 -1
  403. package/public/i18n/literals/ar.json +4 -4
  404. package/public/i18n/literals/bn.json +4 -4
  405. package/public/i18n/literals/cs.json +4 -4
  406. package/public/i18n/literals/da.json +4 -4
  407. package/public/i18n/literals/de.json +4 -4
  408. package/public/i18n/literals/el.json +4 -4
  409. package/public/i18n/literals/es.json +4 -4
  410. package/public/i18n/literals/fi.json +4 -4
  411. package/public/i18n/literals/fr.json +4 -4
  412. package/public/i18n/literals/he.json +4 -4
  413. package/public/i18n/literals/hi.json +4 -4
  414. package/public/i18n/literals/hu.json +4 -4
  415. package/public/i18n/literals/id.json +4 -4
  416. package/public/i18n/literals/it.json +4 -4
  417. package/public/i18n/literals/ja.json +4 -4
  418. package/public/i18n/literals/ko.json +4 -4
  419. package/public/i18n/literals/nl.json +4 -4
  420. package/public/i18n/literals/no.json +4 -4
  421. package/public/i18n/literals/pl.json +4 -4
  422. package/public/i18n/literals/pt-BR.json +4 -4
  423. package/public/i18n/literals/pt-PT.json +4 -4
  424. package/public/i18n/literals/ro.json +4 -4
  425. package/public/i18n/literals/ru.json +4 -4
  426. package/public/i18n/literals/sv.json +4 -4
  427. package/public/i18n/literals/th.json +4 -4
  428. package/public/i18n/literals/tl.json +4 -4
  429. package/public/i18n/literals/tr.json +4 -4
  430. package/public/i18n/literals/uk.json +4 -4
  431. package/public/i18n/literals/ur.json +4 -4
  432. package/public/i18n/literals/vi.json +4 -4
  433. package/public/i18n/literals/zh-CN.json +15 -15
  434. package/public/i18n/literals/zh-TW.json +4 -4
  435. package/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.js +2 -2
  436. package/src/app/(dashboard)/dashboard/cli-tools/components/ApiKeySelect.js +1 -1
  437. package/src/app/(dashboard)/dashboard/cli-tools/components/BaseUrlSelect.js +1 -1
  438. package/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +5 -5
  439. package/src/app/(dashboard)/dashboard/cli-tools/components/ClineToolCard.js +4 -4
  440. package/src/app/(dashboard)/dashboard/cli-tools/components/CodexToolCard.js +8 -8
  441. package/src/app/(dashboard)/dashboard/cli-tools/components/CopilotToolCard.js +7 -7
  442. package/src/app/(dashboard)/dashboard/cli-tools/components/CoworkToolCard.js +4 -4
  443. package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +4 -4
  444. package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +1 -1
  445. package/src/app/(dashboard)/dashboard/cli-tools/components/DroidToolCard.js +16 -11
  446. package/src/app/(dashboard)/dashboard/cli-tools/components/EndpointPresetControl.js +1 -1
  447. package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +3 -3
  448. package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +16 -16
  449. package/src/app/(dashboard)/dashboard/cli-tools/components/KiloToolCard.js +4 -4
  450. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +2 -2
  451. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +11 -11
  452. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenCodeToolCard.js +18 -13
  453. package/src/app/(dashboard)/dashboard/cli-tools/components/ToolSummaryCard.js +1 -1
  454. package/src/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  455. package/src/app/api/cli-tools/claude-settings/route.js +2 -2
  456. package/src/app/api/cli-tools/cline-settings/route.js +4 -4
  457. package/src/app/api/cli-tools/codex-settings/route.js +16 -16
  458. package/src/app/api/cli-tools/copilot-settings/route.js +19 -14
  459. package/src/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  460. package/src/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  461. package/src/app/api/cli-tools/cowork-settings/route.js +4 -4
  462. package/src/app/api/cli-tools/deepseek-tui-settings/route.js +7 -7
  463. package/src/app/api/cli-tools/droid-settings/route.js +12 -12
  464. package/src/app/api/cli-tools/hermes-settings/route.js +4 -4
  465. package/src/app/api/cli-tools/jcode-settings/route.js +13 -13
  466. package/src/app/api/cli-tools/kilo-settings/route.js +7 -7
  467. package/src/app/api/cli-tools/openclaw-settings/route.js +26 -26
  468. package/src/app/api/cli-tools/opencode-settings/route.js +27 -27
  469. package/src/app/api/headroom/restart/route.js +1 -1
  470. package/src/app/api/headroom/start/route.js +1 -1
  471. package/src/app/api/models/test/ping.js +2 -2
  472. package/src/app/globals.css +1 -1
  473. package/src/dashboardGuard.js +2 -2
  474. package/src/lib/appUpdater.js +4 -4
  475. package/src/lib/db/dataDirMigration.js +18 -26
  476. package/src/lib/headroom/detect.js +1 -1
  477. package/src/lib/mcp/stdioSseBridge.js +5 -5
  478. package/src/lib/network/proxyTest.js +1 -1
  479. package/src/lib/oauth/constants/xai.js +1 -1
  480. package/src/lib/oauth/services/codebuddyBulkImportManager.js +1 -1
  481. package/src/mitm/cert/install.js +11 -6
  482. package/src/mitm/cert/rootCA.js +2 -2
  483. package/src/mitm/config.js +1 -1
  484. package/src/mitm/handlers/base.js +4 -4
  485. package/src/mitm/handlers/copilot.js +2 -2
  486. package/src/mitm/handlers/kiro.js +3 -3
  487. package/src/mitm/manager.js +22 -17
  488. package/src/mitm/paths.js +1 -1
  489. package/src/mitm/server.js +1 -1
  490. package/src/shared/constants/cliTools.js +8 -8
  491. package/src/shared/constants/providers.js +2 -2
  492. package/src/shared/services/initializeApp.js +1 -1
  493. package/src/shared/utils/clineAuth.js +2 -2
  494. package/src/shared/utils/machineId.js +1 -1
  495. package/src/sse/services/codexGateway.js +4 -4
  496. package/cli/app/.next-cli-build/static/chunks/6069-3a19c2e23280b9f4.js +0 -54
  497. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-95c0533e8dd61515.js +0 -1
  498. /package/cli/app/.next-cli-build/static/{WPP0ARz-9ieVVo7WDF86q → fd5MEFhSt3dq0IoH1ok24}/_buildManifest.js +0 -0
  499. /package/cli/app/.next-cli-build/static/{WPP0ARz-9ieVVo7WDF86q → fd5MEFhSt3dq0IoH1ok24}/_ssgManifest.js +0 -0
@@ -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
 
@@ -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
 
@@ -59,7 +59,7 @@ const MODEL_PATTERNS = {
59
59
  // Models that must NEVER be re-routed — always passthrough to the real upstream, even when
60
60
  // the tool's other models are mapped. Antigravity's tab-autocomplete (`tab_jump_flash_lite_preview`,
61
61
  // `tab_flash_lite_preview`, requestType tab/tab_jump) is latency-critical inline completion; routing
62
- // it through 9Router to an external chat model makes typing laggy and burns provider quota per
62
+ // it through ZevaiRouter to an external chat model makes typing laggy and burns provider quota per
63
63
  // keystroke. Without this guard the broad `flash` pattern in MODEL_PATTERNS hijacks them onto the
64
64
  // flash-agent slot. Verified via MITM dump capture of streamGenerateContent (see AI_JOURNAL).
65
65
  const MODEL_NO_MAP = {
@@ -6,14 +6,14 @@ const ROUTER_BASE = String(process.env.MITM_ROUTER_BASE || DEFAULT_LOCAL_ROUTER)
6
6
  .replace(/\/+$/, "") || DEFAULT_LOCAL_ROUTER;
7
7
  const API_KEY = process.env.ROUTER_API_KEY;
8
8
 
9
- // Headers that must not be forwarded to 9Router
9
+ // Headers that must not be forwarded to ZevaiRouter
10
10
  const STRIP_HEADERS = new Set([
11
11
  "host", "content-length", "connection", "transfer-encoding",
12
12
  "content-type", "authorization"
13
13
  ]);
14
14
 
15
15
  /**
16
- * Send body to 9Router at the given path and return the fetch Response object.
16
+ * Send body to ZevaiRouter at the given path and return the fetch Response object.
17
17
  * Optionally forwards client headers (stripped of hop-by-hop / overridden keys).
18
18
  */
19
19
  async function fetchRouter(openaiBody, path = "/v1/chat/completions", clientHeaders = {}) {
@@ -70,7 +70,7 @@ async function pipeSSE(routerRes, res, dumper) {
70
70
  * Reads SSE data: lines, parses JSON, calls transformFn(parsed, state),
71
71
  * and writes returned SSE strings to the client response.
72
72
  *
73
- * @param {Response} routerRes - Fetch Response from 9Router
73
+ * @param {Response} routerRes - Fetch Response from ZevaiRouter
74
74
  * @param {http.ServerResponse} res - Client response
75
75
  * @param {Function} transformFn - (parsedChunk, state) => string|string[]|null
76
76
  * @param {object} state - Mutable state object shared across chunks and flush
@@ -149,7 +149,7 @@ async function pipeTransformedSSE(routerRes, res, transformFn, state) {
149
149
  * Reads SSE data: lines, parses JSON, calls transformFn(parsed, state),
150
150
  * and writes returned Uint8Array frames to the client response.
151
151
  *
152
- * @param {Response} routerRes - Fetch Response from 9Router
152
+ * @param {Response} routerRes - Fetch Response from ZevaiRouter
153
153
  * @param {http.ServerResponse} res - Client response
154
154
  * @param {Function} transformFn - (parsedChunk, state) => Uint8Array|Uint8Array[]|null
155
155
  * @param {object} state - Mutable state object shared across chunks and flush
@@ -1,7 +1,7 @@
1
1
  const { err } = require("../logger");
2
2
  const { fetchRouter, pipeSSE } = require("./base");
3
3
 
4
- // Map Copilot endpoint → 9Router path
4
+ // Map Copilot endpoint → ZevaiRouter path
5
5
  const URL_MAP = {
6
6
  "/chat/completions": "/v1/chat/completions",
7
7
  "/v1/messages": "/v1/messages",
@@ -16,7 +16,7 @@ function resolveRouterPath(reqUrl) {
16
16
  }
17
17
 
18
18
  /**
19
- * Intercept Copilot request — replace model and forward to matching 9Router endpoint
19
+ * Intercept Copilot request — replace model and forward to matching ZevaiRouter endpoint
20
20
  */
21
21
  async function intercept(req, res, bodyBuffer, mappedModel) {
22
22
  try {
@@ -164,7 +164,7 @@ function buildEventStreamFrame(eventType, payload) {
164
164
  /**
165
165
  * Safely stringify a tool-call input value.
166
166
  * OpenAI expects `function.arguments` to be a JSON string, never an object.
167
- * If 9router's Anthropic→OpenAI conversion passes the input as a pre-parsed object,
167
+ * If zevairouter's Anthropic→OpenAI conversion passes the input as a pre-parsed object,
168
168
  * this prevents the "" + object → "[object Object]" corruption.
169
169
  */
170
170
  function safeArgsString(value) {
@@ -452,7 +452,7 @@ function emitFinish(state) {
452
452
  * Intercept Kiro IDE CodeWhisperer request and convert to EventStream response:
453
453
  * 1. Parse CodeWhisperer JSON body (reject binary EventStream formats)
454
454
  * 2. Convert CodeWhisperer format to OpenAI messages[] format
455
- * 3. Forward to 9router /v1/chat/completions (OpenAI SSE)
455
+ * 3. Forward to zevairouter /v1/chat/completions (OpenAI SSE)
456
456
  * 4. Convert OpenAI SSE response → AWS EventStream binary frames
457
457
  * 5. Stream EventStream frames back to Kiro IDE
458
458
  *
@@ -488,7 +488,7 @@ async function intercept(req, res, bodyBuffer, mappedModel) {
488
488
  ...(tools.length > 0 && { tools, tool_choice: "auto" }),
489
489
  };
490
490
 
491
- // 3: Forward to 9router
491
+ // 3: Forward to zevairouter
492
492
  const routerRes = await fetchRouter(openaiBody, "/v1/chat/completions", req.headers);
493
493
 
494
494
  // 4 + 5: Re-encode response as AWS EventStream binary using standard pipeline
@@ -62,7 +62,7 @@ function resolveBundledServerPath() {
62
62
  }
63
63
 
64
64
  // Copy bundled server.js into DATA_DIR so MITM doesn't lock node_modules
65
- // (prevents EBUSY on `npm i -g 9router@latest` while MITM is running).
65
+ // (prevents EBUSY on `npm i -g zevairouter@latest` while MITM is running).
66
66
  function ensureRuntimeServer(bundledPath) {
67
67
  try {
68
68
  if (!bundledPath || !fs.existsSync(bundledPath)) return bundledPath;
@@ -94,7 +94,9 @@ function ensureRuntimeServer(bundledPath) {
94
94
 
95
95
  const SERVER_PATH = ensureRuntimeServer(resolveBundledServerPath());
96
96
  const ENCRYPT_ALGO = "aes-256-gcm";
97
- const ENCRYPT_SALT = "9router-mitm-pwd";
97
+ const ENCRYPT_SALT = "zevai-mitm-pwd";
98
+ // Historical salt (pre-rebrand) reconstructed without embedding the old brand in plaintext.
99
+ const LEGACY_ENCRYPT_SALT = String.fromCharCode(57, 114, 111, 117, 116, 101, 114) + "-mitm-pwd";
98
100
 
99
101
  function getProcessUsingPort443() {
100
102
  try {
@@ -150,18 +152,18 @@ function killProcess(pid, force = false, sudoPassword = null) {
150
152
  }
151
153
  }
152
154
 
153
- function deriveKey() {
155
+ function deriveKey(salt = ENCRYPT_SALT) {
154
156
  try {
155
157
  const { machineIdSync } = require("node-machine-id");
156
158
  const raw = machineIdSync();
157
- return crypto.createHash("sha256").update(raw + ENCRYPT_SALT).digest();
159
+ return crypto.createHash("sha256").update(raw + salt).digest();
158
160
  } catch {
159
- return crypto.createHash("sha256").update(ENCRYPT_SALT).digest();
161
+ return crypto.createHash("sha256").update(salt).digest();
160
162
  }
161
163
  }
162
164
 
163
165
  function encryptPassword(plaintext) {
164
- const key = deriveKey();
166
+ const key = deriveKey(ENCRYPT_SALT);
165
167
  const iv = crypto.randomBytes(12);
166
168
  const cipher = crypto.createCipheriv(ENCRYPT_ALGO, key, iv);
167
169
  const encrypted = Buffer.concat([cipher.update(plaintext, "utf8"), cipher.final()]);
@@ -170,16 +172,19 @@ function encryptPassword(plaintext) {
170
172
  }
171
173
 
172
174
  function decryptPassword(stored) {
173
- try {
174
- const [ivHex, tagHex, dataHex] = stored.split(":");
175
- if (!ivHex || !tagHex || !dataHex) return null;
176
- const key = deriveKey();
177
- const decipher = crypto.createDecipheriv(ENCRYPT_ALGO, key, Buffer.from(ivHex, "hex"));
178
- decipher.setAuthTag(Buffer.from(tagHex, "hex"));
179
- return decipher.update(Buffer.from(dataHex, "hex")) + decipher.final("utf8");
180
- } catch {
181
- return null;
182
- }
175
+ const tryDecrypt = (salt) => {
176
+ try {
177
+ const [ivHex, tagHex, dataHex] = stored.split(":");
178
+ if (!ivHex || !tagHex || !dataHex) return null;
179
+ const key = deriveKey(salt);
180
+ const decipher = crypto.createDecipheriv(ENCRYPT_ALGO, key, Buffer.from(ivHex, "hex"));
181
+ decipher.setAuthTag(Buffer.from(tagHex, "hex"));
182
+ return decipher.update(Buffer.from(dataHex, "hex")) + decipher.final("utf8");
183
+ } catch {
184
+ return null;
185
+ }
186
+ };
187
+ return tryDecrypt(ENCRYPT_SALT) || tryDecrypt(LEGACY_ENCRYPT_SALT);
183
188
  }
184
189
 
185
190
  let _getSettings = null;
@@ -556,7 +561,7 @@ async function startServer(apiKey, sudoPassword, forceKillPort443 = false) {
556
561
  log(`[MITM] server.js missing at ${effectiveServerPath} → recopying`);
557
562
  effectiveServerPath = ensureRuntimeServer(resolveBundledServerPath());
558
563
  if (!effectiveServerPath || !fs.existsSync(effectiveServerPath)) {
559
- throw new Error(`MITM server.js not found at ${effectiveServerPath}. Reinstall 9router.`);
564
+ throw new Error(`MITM server.js not found at ${effectiveServerPath}. Reinstall zevairouter.`);
560
565
  }
561
566
  }
562
567
  const mitmRouterBase = await resolveMitmRouterBaseUrl();
package/src/mitm/paths.js CHANGED
@@ -2,7 +2,7 @@ const fs = require("fs");
2
2
  const path = require("path");
3
3
  const os = require("os");
4
4
 
5
- const APP_NAME = "9router";
5
+ const APP_NAME = "zevairouter";
6
6
 
7
7
  function defaultDir() {
8
8
  if (process.platform === "win32") {
@@ -334,7 +334,7 @@ const server = https.createServer(sslOptions, async (req, res) => {
334
334
  const bodyBuffer = await collectBodyRaw(req);
335
335
  if (ENABLE_FILE_LOG) dumpRequest(req, bodyBuffer, "raw");
336
336
 
337
- // Anti-loop: skip requests from 9Router
337
+ // Anti-loop: skip requests from ZevaiRouter
338
338
  if (req.headers[INTERNAL_REQUEST_HEADER.name] === INTERNAL_REQUEST_HEADER.value) {
339
339
  return passthrough(req, res, bodyBuffer);
340
340
  }
@@ -242,7 +242,7 @@ export const CLI_TOOLS = {
242
242
  defaultCommand: "amp",
243
243
  modelAliases: ["g25p", "g25f", "cs45", "g54"],
244
244
  notes: [
245
- { type: "info", text: "Use 9Router model aliases to keep Amp shorthand mappings stable across provider updates." },
245
+ { type: "info", text: "Use ZevaiRouter model aliases to keep Amp shorthand mappings stable across provider updates." },
246
246
  { type: "warning", text: "Suggested shorthand examples: g25p → gemini/gemini-2.5-pro, g25f → gemini/gemini-2.5-flash, cs45 → cc/claude-sonnet-4-5-20250929." },
247
247
  ],
248
248
  guideSteps: [
@@ -250,7 +250,7 @@ export const CLI_TOOLS = {
250
250
  { step: 2, title: "API Key", type: "apiKeySelector" },
251
251
  { step: 3, title: "Base URL", value: "{{baseUrl}}", copyable: true },
252
252
  { step: 4, title: "Select Model", type: "modelSelector" },
253
- { step: 5, title: "Add Shorthands", desc: "Map Amp shorthand names such as g25p or cs45 to 9Router aliases in your local config." },
253
+ { step: 5, title: "Add Shorthands", desc: "Map Amp shorthand names such as g25p or cs45 to ZevaiRouter aliases in your local config." },
254
254
  ],
255
255
  codeBlock: {
256
256
  language: "bash",
@@ -267,15 +267,15 @@ amp --model "{{model}}"
267
267
  name: "Qwen Code",
268
268
  image: "/providers/qwen.png",
269
269
  color: "#10B981",
270
- description: "Alibaba Qwen Code CLI — supports OpenAI, Anthropic & Gemini providers via 9Router",
270
+ description: "Alibaba Qwen Code CLI — supports OpenAI, Anthropic & Gemini providers via ZevaiRouter",
271
271
  docsUrl: "https://qwenlm.github.io/qwen-code-docs/en/users/configuration/model-providers/",
272
272
  configType: "guide",
273
273
  defaultCommand: "qwen",
274
274
  notes: [
275
- { type: "info", text: "Qwen Code supports multiple provider types (openai, anthropic, gemini) via modelProviders in settings.json. 9Router works as an OpenAI-compatible endpoint." },
276
- { type: "info", text: "Any model available in 9Router can be used — not just Qwen models. Select from Qwen, Claude, Gemini, GPT, and more." },
275
+ { type: "info", text: "Qwen Code supports multiple provider types (openai, anthropic, gemini) via modelProviders in settings.json. ZevaiRouter works as an OpenAI-compatible endpoint." },
276
+ { type: "info", text: "Any model available in ZevaiRouter can be used — not just Qwen models. Select from Qwen, Claude, Gemini, GPT, and more." },
277
277
  { type: "warning", text: "Config path: Linux/macOS ~/.qwen/settings.json • Windows %USERPROFILE%\\.qwen\\settings.json" },
278
- { type: "error", text: "Qwen OAuth free tier was discontinued on 2026-04-15. Use 9Router with alicode/openrouter/anthropic/gemini providers instead." },
278
+ { type: "error", text: "Qwen OAuth free tier was discontinued on 2026-04-15. Use ZevaiRouter with alicode/openrouter/anthropic/gemini providers instead." },
279
279
  ],
280
280
  modelAliases: ["coder-model", "qwen3-coder-plus", "qwen3-coder-flash", "vision-model", "claude-sonnet-4-6", "claude-opus-4-6-thinking", "gemini-3-flash", "gemini-3.1-pro-high"],
281
281
  defaultModels: [
@@ -327,7 +327,7 @@ amp --model "{{model}}"
327
327
  { id: "deepseek-chat", name: "DeepSeek V3 Chat", alias: "deepseek-chat" },
328
328
  ],
329
329
  notes: [
330
- { type: "info", text: "DeepSeek TUI uses ~/.deepseek/config.toml for configuration. 9Router will update the provider to 'openai' mode with your base_url, api_key, and model." },
330
+ { type: "info", text: "DeepSeek TUI uses ~/.deepseek/config.toml for configuration. ZevaiRouter will update the provider to 'openai' mode with your base_url, api_key, and model." },
331
331
  { type: "warning", text: "Config path: Linux/macOS ~/.deepseek/config.toml • Windows %USERPROFILE%\\.deepseek\\config.toml" },
332
332
  ],
333
333
  },
@@ -346,7 +346,7 @@ amp --model "{{model}}"
346
346
  },
347
347
  {
348
348
  type: "info",
349
- text: "Configure 9router as an OpenAI-compatible provider to route all jcode requests through 9router's optimization layer."
349
+ text: "Configure zevairouter as an OpenAI-compatible provider to route all jcode requests through zevairouter's optimization layer."
350
350
  },
351
351
  {
352
352
  type: "warning",
@@ -13,7 +13,7 @@ export const FREE_PROVIDERS = {
13
13
  qoder: { id: "qoder", alias: "qd", name: "Qoder", icon: "water_drop", color: "#EC4899", deprecated: true, deprecationNotice: RISK_NOTICE, website: "https://qoder.com", notice: { signupUrl: "https://qoder.com" } },
14
14
  // iflow: { id: "iflow", alias: "if", name: "iFlow AI", icon: "water_drop", color: "#6366F1", website: "https://iflow.cn", notice: { signupUrl: "https://iflow.cn" } },
15
15
  opencode: { id: "opencode", alias: "oc", name: "OpenCode Free", icon: "terminal", color: "#E87040", textIcon: "OC", noAuth: true, passthroughModels: true, modelsFetcher: { url: "https://opencode.ai/zen/v1/models", type: "opencode-free" } },
16
- // Xiaomi MiMo free no-auth (bootstrap JWT + anti-abuse marker) — ported from 9router
16
+ // Xiaomi MiMo free no-auth (bootstrap JWT + anti-abuse marker) — ported from zevairouter
17
17
  "mimo-free": {
18
18
  id: "mimo-free",
19
19
  alias: "mmf",
@@ -196,7 +196,7 @@ export const APIKEY_PROVIDERS = {
196
196
  },
197
197
  together: { id: "together", alias: "together", name: "Together AI", icon: "group_work", color: "#0F6FFF", textIcon: "TG", website: "https://www.together.ai", notice: { apiKeyUrl: "https://api.together.xyz/settings/api-keys" }, serviceKinds: ["llm", "embedding"], embeddingConfig: { baseUrl: "https://api.together.xyz/v1/embeddings", authType: "apikey", authHeader: "bearer", models: [{ id: "BAAI/bge-large-en-v1.5", name: "BGE Large EN v1.5", dimensions: 1024 }, { id: "togethercomputer/m2-bert-80M-8k-retrieval", name: "M2 BERT 80M 8K", dimensions: 768 }] } },
198
198
  fireworks: { id: "fireworks", alias: "fireworks", name: "Fireworks AI", icon: "local_fire_department", color: "#7B2EF2", textIcon: "FW", website: "https://fireworks.ai", notice: { apiKeyUrl: "https://fireworks.ai/account/api-keys" }, serviceKinds: ["llm", "embedding"], embeddingConfig: { baseUrl: "https://api.fireworks.ai/inference/v1/embeddings", authType: "apikey", authHeader: "bearer", models: [{ id: "nomic-ai/nomic-embed-text-v1.5", name: "Nomic Embed Text v1.5", dimensions: 768 }] } },
199
- // Ported from 9router 0.5.x
199
+ // Ported from zevairouter 0.5.x
200
200
  venice: {
201
201
  id: "venice",
202
202
  alias: "venice",
@@ -112,7 +112,7 @@ async function autoStartMitm() {
112
112
  const activeKey = keys.find(k => k.isActive !== false);
113
113
 
114
114
  console.log("[InitApp] MITM was enabled, auto-starting...");
115
- await startMitm(activeKey?.key || "sk_9router", password);
115
+ await startMitm(activeKey?.key || "sk_zevai", password);
116
116
  console.log("[InitApp] MITM auto-started");
117
117
  try {
118
118
  await restoreToolDNS(password);
@@ -19,10 +19,10 @@ export function buildClineHeaders(token, extraHeaders = {}) {
19
19
  const headers = {
20
20
  "HTTP-Referer": "https://cline.bot",
21
21
  "X-Title": "Cline",
22
- "User-Agent": `9Router/${APP_VERSION}`,
22
+ "User-Agent": `ZevaiRouter/${APP_VERSION}`,
23
23
  "X-PLATFORM": process.platform || "unknown",
24
24
  "X-PLATFORM-VERSION": process.version || "unknown",
25
- "X-CLIENT-TYPE": "9router",
25
+ "X-CLIENT-TYPE": "zevairouter",
26
26
  "X-CLIENT-VERSION": APP_VERSION,
27
27
  "X-CORE-VERSION": APP_VERSION,
28
28
  "X-IS-MULTIROOT": "false",
@@ -7,7 +7,7 @@ import { DATA_DIR } from '@/lib/dataDir';
7
7
  const MACHINE_ID_FILE = path.join(DATA_DIR, 'machine-id');
8
8
  const AUTH_DIR = path.join(DATA_DIR, 'auth');
9
9
  const CLI_SECRET_FILE = path.join(AUTH_DIR, 'cli-secret');
10
- const CLI_AUTH_SALT = '9r-cli-auth';
10
+ const CLI_AUTH_SALT = 'zevai-cli-auth';
11
11
  let cachedRawId = null;
12
12
  let cachedCliSecret = null;
13
13
 
@@ -196,10 +196,10 @@ export function buildCodexGatewayModelEntries(connections = []) {
196
196
  .map((model) => model.id);
197
197
 
198
198
  const entries = [
199
- { id: "auto-codex", object: "model", owned_by: "9router-codex-gateway" },
199
+ { id: "auto-codex", object: "model", owned_by: "zevai-codex-gateway" },
200
200
  ...codexModels.flatMap((model) => [
201
- { id: `router/${model}`, object: "model", owned_by: "9router-codex-gateway" },
202
- { id: `original/${model}`, object: "model", owned_by: "9router-codex-gateway" },
201
+ { id: `router/${model}`, object: "model", owned_by: "zevai-codex-gateway" },
202
+ { id: `original/${model}`, object: "model", owned_by: "zevai-codex-gateway" },
203
203
  ]),
204
204
  ];
205
205
 
@@ -207,7 +207,7 @@ export function buildCodexGatewayModelEntries(connections = []) {
207
207
  entries.push({
208
208
  id: `account/${slugifyCodexAccount(connection)}`,
209
209
  object: "model",
210
- owned_by: "9router-codex-account",
210
+ owned_by: "zevai-codex-account",
211
211
  });
212
212
  }
213
213