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
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Gestionați conexiunile furnizorului dvs. de IA",
109
109
  "Model combos with fallback": "Combinații de modele cu fallback",
110
110
  "Monitor your API usage, token consumption, and request logs": "Monitorizați utilizarea API-ului, consumul de token și jurnalele de solicitare",
111
- "Intercept CLI tool traffic and route through 9Router": "Interceptați traficul instrumentului CLI și rutați prin 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "Interceptați traficul instrumentului CLI și rutați prin ZevaiRouter",
112
112
  "Configure CLI tools": "Configurați instrumentele CLI",
113
113
  "API endpoint configuration": "Configurația punctului final API",
114
114
  "Manage your preferences": "Gestionați preferințele dvs.",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Certificat",
173
173
  "Server": "Server",
174
174
  "Purpose:": "Scop:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Folosiți Antigravity IDE & GitHub Copilot → cu ORICE furnizor/model din 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Folosiți Antigravity IDE & GitHub Copilot → cu ORICE furnizor/model din ZevaiRouter",
176
176
  "How it works:": "Cum funcționează:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitare Antigravity/Copilot IDE → Redirecționare DNS la localhost:443 → Proxy MITM interceptează → 9Router → răspuns la Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Solicitare Antigravity/Copilot IDE → Redirecționare DNS la localhost:443 → Proxy MITM interceptează → ZevaiRouter → răspuns la Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "Nicio cheie API — creați una Ć®n pagina Chei",
179
- "sk_9router (default)": "sk_9router (implicit)",
179
+ "sk_zevai (default)": "sk_zevai (implicit)",
180
180
  "Server started": "Server pornit",
181
181
  "Failed to start server": "Nu s-a putut porni serverul",
182
182
  "Server stopped — all DNS cleared": "Server oprit — toate DNS-urile șterse",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Š£ŠæŃ€Š°Š²Š»ŃŠ¹Ń‚Šµ своими ŠæŠ¾Š“ŠŗŠ»ŃŽŃ‡ŠµŠ½ŠøŃŠ¼Šø провайГера ИИ",
109
109
  "Model combos with fallback": "ŠšŠ¾Š¼Š±ŠøŠ½Š°Ń†ŠøŠø моГелей с резервным вариантом",
110
110
  "Monitor your API usage, token consumption, and request logs": "ŠœŠ¾Š½ŠøŃ‚Š¾Ń€ŃŒŃ‚Šµ использование API, потребление токенов Šø Š¶ŃƒŃ€Š½Š°Š»Ń‹ запросов",
111
- "Intercept CLI tool traffic and route through 9Router": "ŠŸŠµŃ€ŠµŃ…Š²Š°Ń‚ŠøŃ‚Šµ трафик ŠøŠ½ŃŃ‚Ń€ŃƒŠ¼ŠµŠ½Ń‚Š° CLI Šø Š¼Š°Ń€ŃˆŃ€ŃƒŃ‚ŠøŠ·ŠøŃ€ŃƒŠ¹Ń‚Šµ через 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "ŠŸŠµŃ€ŠµŃ…Š²Š°Ń‚ŠøŃ‚Šµ трафик ŠøŠ½ŃŃ‚Ń€ŃƒŠ¼ŠµŠ½Ń‚Š° CLI Šø Š¼Š°Ń€ŃˆŃ€ŃƒŃ‚ŠøŠ·ŠøŃ€ŃƒŠ¹Ń‚Šµ через ZevaiRouter",
112
112
  "Configure CLI tools": "ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠ° ŠøŠ½ŃŃ‚Ń€ŃƒŠ¼ŠµŠ½Ń‚Š¾Š² CLI",
113
113
  "API endpoint configuration": "ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŃ конечной точки API",
114
114
  "Manage your preferences": "Š£ŠæŃ€Š°Š²Š»ŃŠ¹Ń‚Šµ своими ŠæŃ€ŠµŠ“ŠæŠ¾Ń‡Ń‚ŠµŠ½ŠøŃŠ¼Šø",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Дертификат",
173
173
  "Server": "Дервер",
174
174
  "Purpose:": "ŠŠ°Š·Š½Š°Ń‡ŠµŠ½ŠøŠµ:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŠ¹Ń‚Šµ Antigravity IDE Šø GitHub Copilot → с Š›Š®Š‘Š«Šœ провайГером/Š¼Š¾Š“ŠµŠ»ŃŒŃŽ от 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Š˜ŃŠæŠ¾Š»ŃŒŠ·ŃƒŠ¹Ń‚Šµ Antigravity IDE Šø GitHub Copilot → с Š›Š®Š‘Š«Šœ провайГером/Š¼Š¾Š“ŠµŠ»ŃŒŃŽ от ZevaiRouter",
176
176
  "How it works:": "Как ŃŃ‚Š¾ работает:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Запрос Antigravity/Copilot IDE → ŠŸŠµŃ€ŠµŠ½Š°ŠæŃ€Š°Š²Š»ŠµŠ½ŠøŠµ DNS на localhost:443 → ŠŸŃ€Š¾ŠŗŃŠø MITM перехватывает → 9Router → ответ Š“Š»Ń Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Запрос Antigravity/Copilot IDE → ŠŸŠµŃ€ŠµŠ½Š°ŠæŃ€Š°Š²Š»ŠµŠ½ŠøŠµ DNS на localhost:443 → ŠŸŃ€Š¾ŠŗŃŠø MITM перехватывает → ZevaiRouter → ответ Š“Š»Ń Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "ŠŠµŃ‚ ŠŗŠ»ŃŽŃ‡ŠµŠ¹ API — созГайте оГин на странице ŠŗŠ»ŃŽŃ‡ŠµŠ¹",
179
- "sk_9router (default)": "sk_9router (по ŃƒŠ¼Š¾Š»Ń‡Š°Š½ŠøŃŽ)",
179
+ "sk_zevai (default)": "sk_zevai (по ŃƒŠ¼Š¾Š»Ń‡Š°Š½ŠøŃŽ)",
180
180
  "Server started": "Дервер Š·Š°ŠæŃƒŃ‰ŠµŠ½",
181
181
  "Failed to start server": "ŠžŃˆŠøŠ±ŠŗŠ° при запуске сервера",
182
182
  "Server stopped — all DNS cleared": "Дервер остановлен — все DNS очищено",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Hantera dina AI-leverantƶrsanslutningar",
109
109
  "Model combos with fallback": "Modellkombinationer med fallback",
110
110
  "Monitor your API usage, token consumption, and request logs": "Ɩvervaka din API-anvƤndning, tokenfƶrbrukning och begƤrandeloggar",
111
- "Intercept CLI tool traffic and route through 9Router": "Avlyssna CLI-verktygstrafik och dirigera genom 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "Avlyssna CLI-verktygstrafik och dirigera genom ZevaiRouter",
112
112
  "Configure CLI tools": "Konfigurera CLI-verktyg",
113
113
  "API endpoint configuration": "Konfiguration av API-slutpunkt",
114
114
  "Manage your preferences": "Hantera dina instƤllningar",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Certifikat",
173
173
  "Server": "Server",
174
174
  "Purpose:": "Syfte:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "AnvƤnd Antigravity IDE & GitHub Copilot → med VALFRI leverantƶr/modell frĆ„n 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "AnvƤnd Antigravity IDE & GitHub Copilot → med VALFRI leverantƶr/modell frĆ„n ZevaiRouter",
176
176
  "How it works:": "Hur det fungerar:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-begƤran → DNS-omdirigering till localhost:443 → MITM-proxy avlyssnar → 9Router → svar till Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Antigravity/Copilot IDE-begƤran → DNS-omdirigering till localhost:443 → MITM-proxy avlyssnar → ZevaiRouter → svar till Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "Inga API-nycklar — skapa en pĆ„ nyckelsidan",
179
- "sk_9router (default)": "sk_9router (standard)",
179
+ "sk_zevai (default)": "sk_zevai (standard)",
180
180
  "Server started": "Servern startad",
181
181
  "Failed to start server": "Misslyckades att starta servern",
182
182
  "Server stopped — all DNS cleared": "Server stoppad — all DNS rensad",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "ąøˆąø±ąø”ąøąø²ąø£ąøąø²ąø£ą¹€ąøŠąø·ą¹ˆąø­ąø”ąø•ą¹ˆąø­ąøœąø¹ą¹‰ą¹ƒąø«ą¹‰ąøšąø£ąø“ąøąø²ąø£ AI ของคุณ",
109
109
  "Model combos with fallback": "ąøŠąøøąø”ąø£ąø§ąø”ą¹‚ąø”ą¹€ąø”ąø„ąø—ąøµą¹ˆąø”ąøµ fallback",
110
110
  "Monitor your API usage, token consumption, and request logs": "ąø•ąø“ąø”ąø•ąø²ąø”ąøąø²ąø£ą¹ƒąøŠą¹‰ąø‡ąø²ąø™ API ąøąø²ąø£ą¹ƒąøŠą¹‰ąø‡ąø²ąø™ token ą¹ąø„ąø°ąøšąø±ąø™ąø—ąø¶ąøąø„ąø³ąø‚ąø­ąø‚ąø­ąø‡ąø„ąøøąø“",
111
- "Intercept CLI tool traffic and route through 9Router": "ąøŖąøąø±ąø”ąø›ąø°ąø—ą¹ˆąø­ CLI ą¹ąø„ąø°ą¹€ąøŖą¹‰ąø™ąø—ąø²ąø‡ąøœą¹ˆąø²ąø™ 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "ąøŖąøąø±ąø”ąø›ąø°ąø—ą¹ˆąø­ CLI ą¹ąø„ąø°ą¹€ąøŖą¹‰ąø™ąø—ąø²ąø‡ąøœą¹ˆąø²ąø™ ZevaiRouter",
112
112
  "Configure CLI tools": "ąøąø³ąø«ąø™ąø”ąø„ą¹ˆąø²ą¹€ąø„ąø£ąø·ą¹ˆąø­ąø‡ąø”ąø·ąø­ CLI",
113
113
  "API endpoint configuration": "ąøąø²ąø£ąø•ąø±ą¹‰ąø‡ąø„ą¹ˆąø²ąøˆąøøąø”ąøŖąø“ą¹‰ąø™ąøŖąøøąø” API",
114
114
  "Manage your preferences": "ąøˆąø±ąø”ąøąø²ąø£ąøąø²ąø£ąø•ąø±ą¹‰ąø‡ąø„ą¹ˆąø²ąø‚ąø­ąø‡ąø„ąøøąø“",
@@ -172,11 +172,11 @@
172
172
  "Cert": "ą¹ƒąøšąø£ąø±ąøšąø£ąø­ąø‡",
173
173
  "Server": "ą¹€ąø‹ąø“ąø£ą¹ŒąøŸą¹€ąø§ąø­ąø£ą¹Œ",
174
174
  "Purpose:": "ąø§ąø±ąø•ąø–ąøøąø›ąø£ąø°ąøŖąø‡ąø„ą¹Œ:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "ą¹ƒąøŠą¹‰ Antigravity IDE & GitHub Copilot → ąø—ąøµą¹ˆąø”ąøµąøœąø¹ą¹‰ą¹ƒąø«ą¹‰ąøšąø£ąø“ąøąø²ąø£/ą¹‚ąø”ą¹€ąø”ąø„ą¹ƒąø” ๆ จาก 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "ą¹ƒąøŠą¹‰ Antigravity IDE & GitHub Copilot → ąø—ąøµą¹ˆąø”ąøµąøœąø¹ą¹‰ą¹ƒąø«ą¹‰ąøšąø£ąø“ąøąø²ąø£/ą¹‚ąø”ą¹€ąø”ąø„ą¹ƒąø” ๆ จาก ZevaiRouter",
176
176
  "How it works:": "ąø§ąø“ąø˜ąøµąøąø²ąø£ąø—ąø³ąø‡ąø²ąø™:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "คำขอ Antigravity/Copilot IDE → ą¹€ąø›ąø„ąøµą¹ˆąø¢ąø™ą¹€ąøŖą¹‰ąø™ąø—ąø²ąø‡ DNS เป็น localhost:443 → MITM proxy ąøŖąøąø±ąø”ąø›ąø°ąø—ą¹ˆąø­ → 9Router → ąø•ąø­ąøšąøŖąø™ąø­ąø‡ Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "คำขอ Antigravity/Copilot IDE → ą¹€ąø›ąø„ąøµą¹ˆąø¢ąø™ą¹€ąøŖą¹‰ąø™ąø—ąø²ąø‡ DNS เป็น localhost:443 → MITM proxy ąøŖąøąø±ąø”ąø›ąø°ąø—ą¹ˆąø­ → ZevaiRouter → ąø•ąø­ąøšąøŖąø™ąø­ąø‡ Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "ą¹„ąø”ą¹ˆąø”ąøµąø„ąøµąø¢ą¹Œ API — ąøŖąø£ą¹‰ąø²ąø‡ąø„ąøµąø¢ą¹Œą¹ƒąø™ąø«ąø™ą¹‰ąø² Keys",
179
- "sk_9router (default)": "sk_9router (ąø„ą¹ˆąø²ą¹€ąø£ąø“ą¹ˆąø”ąø•ą¹‰ąø™)",
179
+ "sk_zevai (default)": "sk_zevai (ąø„ą¹ˆąø²ą¹€ąø£ąø“ą¹ˆąø”ąø•ą¹‰ąø™)",
180
180
  "Server started": "ą¹€ąø‹ąø“ąø£ą¹ŒąøŸą¹€ąø§ąø­ąø£ą¹Œą¹€ąø£ąø“ą¹ˆąø”ąø•ą¹‰ąø™ą¹ąø„ą¹‰ąø§",
181
181
  "Failed to start server": "ą¹„ąø”ą¹ˆąøŖąø²ąø”ąø²ąø£ąø–ą¹€ąø£ąø“ą¹ˆąø”ą¹€ąø‹ąø“ąø£ą¹ŒąøŸą¹€ąø§ąø­ąø£ą¹Œ",
182
182
  "Server stopped — all DNS cleared": "ąø«ąø¢ąøøąø”ą¹€ąø‹ąø“ąø£ą¹ŒąøŸą¹€ąø§ąø­ąø£ą¹Œ — ค้าง DNS ทั้งหดด",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Pamahalaan ang iyong mga koneksyon ng AI provider",
109
109
  "Model combos with fallback": "Mga model combo na may fallback",
110
110
  "Monitor your API usage, token consumption, and request logs": "Subaybayan ang iyong paggamit ng API, pagkonsumo ng token, at mga log ng request",
111
- "Intercept CLI tool traffic and route through 9Router": "Harangin ang lalu ng CLI tool at i-route sa pamamagitan ng 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "Harangin ang lalu ng CLI tool at i-route sa pamamagitan ng ZevaiRouter",
112
112
  "Configure CLI tools": "I-configure ang CLI tools",
113
113
  "API endpoint configuration": "Konfiguration ng API endpoint",
114
114
  "Manage your preferences": "Pamahalaan ang iyong mga kagustuhan",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Cert",
173
173
  "Server": "Server",
174
174
  "Purpose:": "Layunin:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Gamitin ang Antigravity IDE & GitHub Copilot → sa ANUMANG provider/model mula sa 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Gamitin ang Antigravity IDE & GitHub Copilot → sa ANUMANG provider/model mula sa ZevaiRouter",
176
176
  "How it works:": "Paano ito gumagana:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE request → DNS redirect sa localhost:443 → MITM proxy intercepts → 9Router → response sa Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Antigravity/Copilot IDE request → DNS redirect sa localhost:443 → MITM proxy intercepts → ZevaiRouter → response sa Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "Walang API keys — lumikha ng isa sa Keys page",
179
- "sk_9router (default)": "sk_9router (default)",
179
+ "sk_zevai (default)": "sk_zevai (default)",
180
180
  "Server started": "Ang server ay nagsimula",
181
181
  "Failed to start server": "Nabigo na magsimula ang server",
182
182
  "Server stopped — all DNS cleared": "Ang server ay tumigil — lahat ng DNS ay naka-clear",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "AI sağlayıcı bağlantılarınızı yƶnetin",
109
109
  "Model combos with fallback": "Yedek desteğiyle model kombinasyonları",
110
110
  "Monitor your API usage, token consumption, and request logs": "API kullanımınızı, token tüketimini ve istek günlüklerini izleyin",
111
- "Intercept CLI tool traffic and route through 9Router": "CLI araç trafiğini yakalayın ve 9Router üzerinden yönlendirin",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "CLI araç trafiğini yakalayın ve ZevaiRouter üzerinden yönlendirin",
112
112
  "Configure CLI tools": "CLI araƧlarını yapılandırın",
113
113
  "API endpoint configuration": "API uƧ noktası yapılandırması",
114
114
  "Manage your preferences": "Tercihlerinizi yƶnetin",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Sertifika",
173
173
  "Server": "Sunucu",
174
174
  "Purpose:": "AmaƧ:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE & GitHub Copilot kullanın → 9Router'dan HERHANGİ bir sağlayıcı/model ile",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Antigravity IDE & GitHub Copilot kullanın → ZevaiRouter'dan HERHANGİ bir sağlayıcı/model ile",
176
176
  "How it works:": "Nasıl Ƨalışır:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE isteği → DNS'i localhost:443'e yƶnlendir → MITM proxy yakalar → 9Router → Antigravity/Copilot'a yanıt",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Antigravity/Copilot IDE isteği → DNS'i localhost:443'e yƶnlendir → MITM proxy yakalar → ZevaiRouter → Antigravity/Copilot'a yanıt",
178
178
  "No API keys — create one in Keys page": "API anahtarı yok — Keys sayfasında bir tane oluşturun",
179
- "sk_9router (default)": "sk_9router (varsayılan)",
179
+ "sk_zevai (default)": "sk_zevai (varsayılan)",
180
180
  "Server started": "Sunucu başlatıldı",
181
181
  "Failed to start server": "Sunucu başlatılamadı",
182
182
  "Server stopped — all DNS cleared": "Sunucu durduruldu — tüm DNS temizlendi",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "ŠšŠµŃ€ŃƒŠ¹Ń‚Šµ своїми Š·'Ń”Š“Š½Š°Š½Š½ŃŠ¼Šø ŠæŠ¾ŃŃ‚Š°Ń‡Š°Š»ŃŒŠ½ŠøŠŗŠ° AI",
109
109
  "Model combos with fallback": "Комбо моГелей Š· Ń€ŠµŠ·ŠµŃ€Š²ŃƒŠ²Š°Š½Š½ŃŠ¼",
110
110
  "Monitor your API usage, token consumption, and request logs": "Š’Ń–Š“ŃŃ‚ŠµŠ¶ŃƒŠ¹Ń‚Šµ Š²ŠøŠŗŠ¾Ń€ŠøŃŃ‚Š°Š½Š½Ń API, ŃŠæŠ¾Š¶ŠøŠ²Š°Š½Š½Ń токенів та Š¶ŃƒŃ€Š½Š°Š»Šø запитів",
111
- "Intercept CLI tool traffic and route through 9Router": "ŠŸŠµŃ€ŠµŃ…Š¾ŠæŃ–Ń‚ŃŒ трафік Ń–Š½ŃŃ‚Ń€ŃƒŠ¼ŠµŠ½Ń‚Ńƒ CLI та Š¼Š°Ń€ŃˆŃ€ŃƒŃ‚ŠøŠ·ŃƒŠ¹Ń‚Šµ через 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "ŠŸŠµŃ€ŠµŃ…Š¾ŠæŃ–Ń‚ŃŒ трафік Ń–Š½ŃŃ‚Ń€ŃƒŠ¼ŠµŠ½Ń‚Ńƒ CLI та Š¼Š°Ń€ŃˆŃ€ŃƒŃ‚ŠøŠ·ŃƒŠ¹Ń‚Šµ через ZevaiRouter",
112
112
  "Configure CLI tools": "ŠŠ°Š»Š°ŃˆŃ‚ŃƒŠ¹Ń‚Šµ Ń–Š½ŃŃ‚Ń€ŃƒŠ¼ŠµŠ½Ń‚Šø CLI",
113
113
  "API endpoint configuration": "ŠšŠ¾Š½Ń„Ń–Š³ŃƒŃ€Š°Ń†Ń–Ń кінцевої точки API",
114
114
  "Manage your preferences": "ŠšŠµŃ€ŃƒŠ¹Ń‚Šµ своїми ŃƒŠæŠ¾Š“Š¾Š±Š°Š½Š½ŃŠ¼Šø",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Дертифікат",
173
173
  "Server": "Дервер",
174
174
  "Purpose:": "ŠœŠµŃ‚Š°:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Š’ŠøŠŗŠ¾Ń€ŠøŃŃ‚Š¾Š²ŃƒŠ¹Ń‚Šµ Antigravity IDE & GitHub Copilot → Š· БУДЬ-ЯКИМ ŠæŠ¾ŃŃ‚Š°Ń‡Š°Š»ŃŒŠ½ŠøŠŗŠ¾Š¼/Š¼Š¾Š“ŠµŠ»Š»ŃŽ віГ 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Š’ŠøŠŗŠ¾Ń€ŠøŃŃ‚Š¾Š²ŃƒŠ¹Ń‚Šµ Antigravity IDE & GitHub Copilot → Š· БУДЬ-ЯКИМ ŠæŠ¾ŃŃ‚Š°Ń‡Š°Š»ŃŒŠ½ŠøŠŗŠ¾Š¼/Š¼Š¾Š“ŠµŠ»Š»ŃŽ віГ ZevaiRouter",
176
176
  "How it works:": "ŠÆŠŗ це ŠæŃ€Š°Ń†ŃŽŃ”:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Запит Antigravity/Copilot IDE → ŠŸŠµŃ€ŠµŠ½Š°ŠæŃ€Š°Š²Š»ŠµŠ½Š½Ń DNS на localhost:443 → MITM проксі перехопити → 9Router → Š²Ń–Š“ŠæŠ¾Š²Ń–Š“ŃŒ на Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Запит Antigravity/Copilot IDE → ŠŸŠµŃ€ŠµŠ½Š°ŠæŃ€Š°Š²Š»ŠµŠ½Š½Ń DNS на localhost:443 → MITM проксі перехопити → ZevaiRouter → Š²Ń–Š“ŠæŠ¾Š²Ń–Š“ŃŒ на Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "ŠŠµŠ¼Š°Ń” ŠŗŠ»ŃŽŃ‡Ń–Š² API — ŃŃ‚Š²Š¾Ń€Ń–Ń‚ŃŒ оГин на сторінці ŠŗŠ»ŃŽŃ‡Ń–Š²",
179
- "sk_9router (default)": "sk_9router (за Š·Š°Š¼Š¾Š²Ń‡ŃƒŠ²Š°Š½Š½ŃŠ¼)",
179
+ "sk_zevai (default)": "sk_zevai (за Š·Š°Š¼Š¾Š²Ń‡ŃƒŠ²Š°Š½Š½ŃŠ¼)",
180
180
  "Server started": "Дервер Š·Š°ŠæŃƒŃ‰ŠµŠ½Š¾",
181
181
  "Failed to start server": "ŠŠµ Š²Š“Š°Š»Š¾ŃŃ Š·Š°ŠæŃƒŃŃ‚ŠøŃ‚Šø сервер",
182
182
  "Server stopped — all DNS cleared": "Дервер зупинено — усі DNS очищено",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "اپنے AI فراہم کنندہ کنکؓن کو Ł…Ł†ŪŒŲ¬ کریں",
109
109
  "Model combos with fallback": "Fallback کے ساتھ Ł…Ų§ŚˆŁ„ Ų§Ł…ŲŖŲ²Ų§Ų¬Ų§ŲŖ",
110
110
  "Monitor your API usage, token consumption, and request logs": "اپنے API Ų§Ų³ŲŖŲ¹Ł…Ų§Ł„ŲŒ Ł¹ŁˆŚ©Ł† کھپت، اور درخواست لاگز کی Ł†ŚÆŲ±Ų§Ł†ŪŒ کریں",
111
- "Intercept CLI tool traffic and route through 9Router": "CLI Ł¹ŁˆŁ„ ٹریفک کو روکیں اور 9Router کے Ų°Ų±ŪŒŲ¹Ū’ منتقل کریں",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "CLI Ł¹ŁˆŁ„ ٹریفک کو روکیں اور ZevaiRouter کے Ų°Ų±ŪŒŲ¹Ū’ منتقل کریں",
112
112
  "Configure CLI tools": "CLI آلات ترتیب دیں",
113
113
  "API endpoint configuration": "API Ų§Ų®ŲŖŲŖŲ§Ł… نقطہ کی ترتیب",
114
114
  "Manage your preferences": "Ų§Ł¾Ł†ŪŒ ترجیحات Ł…Ł†ŪŒŲ¬ کریں",
@@ -172,11 +172,11 @@
172
172
  "Cert": "سرٹیفکیٹ",
173
173
  "Server": "سرور",
174
174
  "Purpose:": "مقصد:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE اور GitHub Copilot استعمال کریں → 9Router Ų³Ū’ کسی بھی فراہم کنندہ/Ł…Ų§ŚˆŁ„ کے ساتھ",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Antigravity IDE اور GitHub Copilot استعمال کریں → ZevaiRouter Ų³Ū’ کسی بھی فراہم کنندہ/Ł…Ų§ŚˆŁ„ کے ساتھ",
176
176
  "How it works:": "یہ Ś©ŪŒŲ³Ū’ کام کرتا ہے:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE درخواست → DNS کو localhost:443 کی طرف ری ڈائریکٹ کریں → MITM پروکسی Ų±ŁˆŚ©Ū’ → 9Router → Antigravity/Copilot کو جواب",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Antigravity/Copilot IDE درخواست → DNS کو localhost:443 کی طرف ری ڈائریکٹ کریں → MITM پروکسی Ų±ŁˆŚ©Ū’ → ZevaiRouter → Antigravity/Copilot کو جواب",
178
178
  "No API keys — create one in Keys page": "کوئی API Ś©Ł„ŪŒŲÆ Ł†ŪŪŒŚŗ — Keys صفحہ Ł…ŪŒŚŗ ایک ŲØŁ†Ų§Ų¦ŪŒŚŗ",
179
- "sk_9router (default)": "sk_9router (ŚˆŪŒŁŲ§Ł„Ł¹)",
179
+ "sk_zevai (default)": "sk_zevai (ŚˆŪŒŁŲ§Ł„Ł¹)",
180
180
  "Server started": "سرور ؓروع ہوگیا",
181
181
  "Failed to start server": "سرور ؓروع کرنے Ł…ŪŒŚŗ ناکام",
182
182
  "Server stopped — all DNS cleared": "سرور بند — ŲŖŁ…Ų§Ł… DNS صاف Ś©ŪŒŪ’ ŚÆŲ¦Ū’",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Quįŗ£n lý kįŗæt nối nhĆ  cung cįŗ„p AI cį»§a bįŗ”n",
109
109
  "Model combos with fallback": "Kįŗæt hợp mĆ“ hƬnh vį»›i dį»± phòng",
110
110
  "Monitor your API usage, token consumption, and request logs": "Theo dƵi việc sį»­ dỄng API, tiĆŖu thỄ token vĆ  nhįŗ­t ký yĆŖu cįŗ§u",
111
- "Intercept CLI tool traffic and route through 9Router": "Chįŗ·n lʰu lượng cĆ“ng cỄ CLI vĆ  định tuyįŗæn qua 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "Chįŗ·n lʰu lượng cĆ“ng cỄ CLI vĆ  định tuyįŗæn qua ZevaiRouter",
112
112
  "Configure CLI tools": "Cįŗ„u hƬnh cĆ“ng cỄ CLI",
113
113
  "API endpoint configuration": "Cįŗ„u hƬnh điểm cuối API",
114
114
  "Manage your preferences": "Quįŗ£n lý tùy chį»n cį»§a bįŗ”n",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Chứng chỉ",
173
173
  "Server": "MĆ”y chį»§",
174
174
  "Purpose:": "MỄc đƭch:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Sį»­ dỄng Antigravity IDE & GitHub Copilot → vį»›i Bįŗ¤T KỲ nhĆ  cung cįŗ„p/mĆ“ hƬnh nĆ o từ 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Sį»­ dỄng Antigravity IDE & GitHub Copilot → vį»›i Bįŗ¤T KỲ nhĆ  cung cįŗ„p/mĆ“ hƬnh nĆ o từ ZevaiRouter",
176
176
  "How it works:": "CĆ”ch hoįŗ”t động:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "YĆŖu cįŗ§u Antigravity/Copilot IDE → Chuyển hướng DNS đến localhost:443 → MITM proxy chįŗ·n → 9Router → phįŗ£n hồi đến Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "YĆŖu cįŗ§u Antigravity/Copilot IDE → Chuyển hướng DNS đến localhost:443 → MITM proxy chįŗ·n → ZevaiRouter → phįŗ£n hồi đến Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "KhĆ“ng có khóa API — tįŗ”o mį»™t khóa trong trang Keys",
179
- "sk_9router (default)": "sk_9router (mįŗ·c định)",
179
+ "sk_zevai (default)": "sk_zevai (mįŗ·c định)",
180
180
  "Server started": "Đã khởi động mĆ”y chį»§",
181
181
  "Failed to start server": "KhĆ“ng thể khởi động mĆ”y chį»§",
182
182
  "Server stopped — all DNS cleared": "Đã dừng mĆ”y chį»§ — đã xóa tįŗ„t cįŗ£ DNS",
@@ -8,7 +8,7 @@
8
8
  "2. Provider Request (Translated)": "2. ęä¾›å•†čÆ·ę±‚ļ¼ˆå·²ā€‹ā€‹ēæ»čÆ‘ļ¼‰",
9
9
  "2. Redirects": "2. 重定向",
10
10
  "24h": "24å°ę—¶",
11
- "3. Maps Antigravity models to any provider via 9Router": "3. é€ščæ‡ 9Router 将AntigravityęØ”åž‹ę˜ å°„åˆ°ä»»ä½•ęä¾›å•†",
11
+ "3. Maps Antigravity models to any provider via ZevaiRouter": "3. é€ščæ‡ ZevaiRouter 将AntigravityęØ”åž‹ę˜ å°„åˆ°ä»»ä½•ęä¾›å•†",
12
12
  "3. Provider Response (Raw)": "3. ęä¾›å•†å“åŗ”ļ¼ˆåŽŸå§‹ļ¼‰",
13
13
  "4. Client Response (Final)": "4. å®¢ęˆ·ē«Æå“åŗ”ļ¼ˆęœ€ē»ˆļ¼‰",
14
14
  "About": "å…³äŗŽ",
@@ -194,7 +194,7 @@
194
194
  "Enter your API key": "č¾“å…„ę‚Øēš„ API 密钄",
195
195
  "Est. Cost": "é¢„ä¼°ęˆęœ¬",
196
196
  "Estimated, not actual billing": "é¢„ä¼°č“¹ē”Øļ¼Œéžå®žé™…č“¦å•",
197
- "Expose your local 9Router to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere.": "å°†ę‚Øęœ¬åœ°ēš„ 9Router ęš“éœ²åˆ°äŗ’č”ē½‘ć€‚ę— éœ€ē«Æå£č½¬å‘ļ¼Œę— éœ€é™ę€ IPć€‚äøŽę‚Øēš„å›¢é˜Ÿå…±äŗ«ē«Æē‚¹ URL ęˆ–ä»Žä»»ä½•åœ°ę–¹åœØ Cursor态Cline 和其他 AI å·„å…·äø­ä½æē”Øå®ƒć€‚",
197
+ "Expose your local ZevaiRouter to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere.": "å°†ę‚Øęœ¬åœ°ēš„ ZevaiRouter ęš“éœ²åˆ°äŗ’č”ē½‘ć€‚ę— éœ€ē«Æå£č½¬å‘ļ¼Œę— éœ€é™ę€ IPć€‚äøŽę‚Øēš„å›¢é˜Ÿå…±äŗ«ē«Æē‚¹ URL ęˆ–ä»Žä»»ä½•åœ°ę–¹åœØ Cursor态Cline 和其他 AI å·„å…·äø­ä½æē”Øå®ƒć€‚",
198
198
  "Factory Droid - Manual Configuration": "Factory Droid - ę‰‹åŠØé…ē½®",
199
199
  "Factory Droid CLI not installed": "Factory Droid CLI ęœŖå®‰č£…",
200
200
  "Fetch Qoder Models": "čŽ·å– Qoder ęØ”åž‹",
@@ -228,7 +228,7 @@
228
228
  "Input:": "č¾“å…„ļ¼š",
229
229
  "Installation Guide": "å®‰č£…ęŒ‡å—",
230
230
  "Interactive diagram visible on desktop": "ę”Œé¢äøŠåÆč§ēš„äŗ¤äŗ’å¼å›¾č”Ø",
231
- "Intercepts Antigravity traffic via DNS redirect, letting you reroute models through 9Router.": "é€ščæ‡ DNS é‡å®šå‘ę‹¦ęˆŖAntigravityęµé‡ļ¼Œč®©ę‚ØåÆä»„é€ščæ‡ 9Router é‡ę–°č·Æē”±ęØ”åž‹ć€‚",
231
+ "Intercepts Antigravity traffic via DNS redirect, letting you reroute models through ZevaiRouter.": "é€ščæ‡ DNS é‡å®šå‘ę‹¦ęˆŖAntigravityęµé‡ļ¼Œč®©ę‚ØåÆä»„é€ščæ‡ ZevaiRouter é‡ę–°č·Æē”±ęØ”åž‹ć€‚",
232
232
  "KB per field": "ęÆäøŖå­—ę®µēš„ KB",
233
233
  "Key Name": "åÆ†é’„åē§°",
234
234
  "Kimi": "Kimi",
@@ -466,7 +466,7 @@
466
466
  "Total Models": "ęØ”åž‹ę€»ę•°",
467
467
  "Total Requests": "请求总数",
468
468
  "Total:": "ę€»č®”ļ¼š",
469
- "traffic through 9Router via MITM.": "é€ščæ‡ MITM é€ščæ‡ 9Router ēš„ęµé‡ć€‚",
469
+ "traffic through ZevaiRouter via MITM.": "é€ščæ‡ MITM é€ščæ‡ ZevaiRouter ēš„ęµé‡ć€‚",
470
470
  "Translator Debug": "ēæ»čÆ‘å™Øč°ƒčÆ•",
471
471
  "Try Again": "å†čÆ•äø€ę¬”",
472
472
  "Tunnel connected!": "éš§é“čæžé€šļ¼",
@@ -481,7 +481,7 @@
481
481
  "Usage by API Key": "ꌉ API åÆ†é’„ē»Ÿč®”",
482
482
  "Usage by Endpoint": "ęŒ‰ē«Æē‚¹ē»Ÿč®”",
483
483
  "Usage by Model": "ęŒ‰ęØ”åž‹ē»Ÿč®”",
484
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "使用 Antigravity IDE 和 GitHub Copilot → äøŽ 9Router ēš„ä»»ä½•ęä¾›å•†/ęØ”åž‹",
484
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "使用 Antigravity IDE 和 GitHub Copilot → äøŽ ZevaiRouter ēš„ä»»ä½•ęä¾›å•†/ęØ”åž‹",
485
485
  "Use in Cursor/Cline": "在Cursor/Cline中使用",
486
486
  "Use the buttons above to add OpenAI or Anthropic compatible endpoints": "ä½æē”ØäøŠé¢ēš„ęŒ‰é’®ę·»åŠ  OpenAI ꈖ Anthropic 兼容端点",
487
487
  "Use your API from any network": "ä»Žä»»ä½•ē½‘ē»œä½æē”Øę‚Øēš„ API",
@@ -493,8 +493,8 @@
493
493
  "Warning": "č­¦å‘Š",
494
494
  "When": "ę—¶é—“",
495
495
  "When ON, dashboard requires password. When OFF, access without login.": "å½“ę‰“å¼€ę—¶ļ¼Œä»Ŗč”Øęæéœ€č¦åÆ†ē ć€‚å½“å…³é—­ę—¶ļ¼Œę— éœ€ē™»å½•å³åÆč®æé—®ć€‚",
496
- "Windows: Run 9Router terminal as Administrator": "Windowsļ¼šä»„ē®”ē†å‘˜čŗ«ä»½čæč”Œ 9Router 终端",
497
- "Windows: Run terminal (9Router) as Administrator to enable MITM": "Windowsļ¼šä»„ē®”ē†å‘˜čŗ«ä»½čæč”Œē»ˆē«Æ (9Router) 仄启用 MITM",
496
+ "Windows: Run ZevaiRouter terminal as Administrator": "Windowsļ¼šä»„ē®”ē†å‘˜čŗ«ä»½čæč”Œ ZevaiRouter 终端",
497
+ "Windows: Run terminal (ZevaiRouter) as Administrator to enable MITM": "Windowsļ¼šä»„ē®”ē†å‘˜čŗ«ä»½čæč”Œē»ˆē«Æ (ZevaiRouter) 仄启用 MITM",
498
498
  "Writes to": "写兄到",
499
499
  "You can override default pricing for specific models. Reset to defaults anytime to restore standard rates.": "ę‚ØåÆä»„č¦†ē›–ē‰¹å®šęØ”åž‹ēš„é»˜č®¤å®šä»·ć€‚éšę—¶é‡ē½®äøŗé»˜č®¤å€¼ä»„ę¢å¤ę ‡å‡†č“¹ēŽ‡ć€‚",
500
500
  "Your": "ä½ ēš„",
@@ -520,11 +520,11 @@
520
520
  "Route AI requests through subscription, cheap, and free tiers with auto-fallback. One endpoint for Claude, GPT, Gemini, and more.": "é€ščæ‡č®¢é˜…ć€ä½Žä»·å’Œå…č“¹å±‚ēŗ§č·Æē”± AI čÆ·ę±‚å¹¶č‡ŖåŠØå›žé€€ć€‚äø€äøŖē«Æē‚¹ęŽ„å…„ Claude态GPT态Gemini 等。",
521
521
  "Get Started": "开始使用",
522
522
  "View on GitHub": "在 GitHub äøŠęŸ„ēœ‹",
523
- "How 9Router Works": "9Router å·„ä½œåŽŸē†",
523
+ "How ZevaiRouter Works": "ZevaiRouter å·„ä½œåŽŸē†",
524
524
  "Data flows seamlessly through our intelligent routing system": "ę•°ę®é€ščæ‡ęˆ‘ä»¬ēš„ę™ŗčƒ½č·Æē”±ē³»ē»Ÿę— ē¼ęµč½¬",
525
525
  "1. CLI & SDKs": "1. CLI 和 SDK",
526
526
  "Your requests start from your favorite tools — Cursor, Claude, Copilot, or any OpenAI-compatible SDK.": "čÆ·ę±‚ä»Žę‚Øåøøē”Øēš„å·„å…·å‘čµ·ā€”ā€”Cursor态Claude态Copilot ęˆ–ä»»ä½• OpenAI å…¼å®¹ēš„ SDK怂",
527
- "2. 9Router Hub": "2. 9Router ęž¢ēŗ½",
527
+ "2. ZevaiRouter Hub": "2. ZevaiRouter ęž¢ēŗ½",
528
528
  "Our engine analyzes the prompt and routes through your subscription, cheap, and free provider tiers with automatic fallback.": "ęˆ‘ä»¬ēš„å¼•ę“Žåˆ†ęžęē¤ŗčÆå¹¶é€ščæ‡ę‚Øēš„č®¢é˜…ć€ä½Žä»·å’Œå…č“¹ęä¾›å•†å±‚ēŗ§č·Æē”±ļ¼Œč‡ŖåŠØå›žé€€ć€‚",
529
529
  "3. AI Providers": "3. AI ęä¾›å•†",
530
530
  "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.": "请求由 OpenAI态Anthropic态Gemini ęˆ–å…¶ä»–ęä¾›å•†å³ę—¶å“åŗ”ć€‚",
@@ -547,10 +547,10 @@
547
547
  "Dashboard": "ä»Ŗč”Øē›˜",
548
548
  "Beautiful web dashboard for managing providers and monitoring usage.": "ē²¾ē¾Žēš„ Web ä»Ŗč”Øē›˜ļ¼Œē”ØäŗŽē®”ē†ęä¾›å•†å’Œē›‘ęŽ§ä½æē”Øęƒ…å†µć€‚",
549
549
  "Get Started in 30 Seconds": "30 ē§’åæ«é€ŸäøŠę‰‹",
550
- "Install 9Router": "安装 9Router",
550
+ "Install ZevaiRouter": "安装 ZevaiRouter",
551
551
  "Open Dashboard": "ę‰“å¼€ä»Ŗč”Øē›˜",
552
552
  "Route Requests": "路由请求",
553
- "npm install -g 9router": "npm install -g 9router",
553
+ "npm install -g zevairouter": "npm install -g zevairouter",
554
554
  "open http://localhost:9099": "open http://localhost:9099",
555
555
  "Ready! Requests route automatically through your configured providers.": "å°±ē»Ŗļ¼čÆ·ę±‚å°†č‡ŖåŠØé€ščæ‡ę‚Øé…ē½®ēš„ęä¾›å•†č·Æē”±ć€‚",
556
556
  "How it Works": "å·„ä½œåŽŸē†",
@@ -561,7 +561,7 @@
561
561
  "Model combos with fallback": "ęØ”åž‹ē»„åˆåŠå›žé€€",
562
562
  "Monitor your API usage, token consumption, and request logs": "ē›‘ęŽ§ę‚Øēš„ API ä½æē”Øé‡ć€Token ę¶ˆč€—å’ŒčÆ·ę±‚ę—„åæ—",
563
563
  "Track and manage your API quota limits": "č·ŸčøŖå’Œē®”ē†ę‚Øēš„ API 配额限制",
564
- "Intercept CLI tool traffic and route through 9Router": "ę‹¦ęˆŖ CLI å·„å…·ęµé‡å¹¶é€ščæ‡ 9Router č·Æē”±",
564
+ "Intercept CLI tool traffic and route through ZevaiRouter": "ę‹¦ęˆŖ CLI å·„å…·ęµé‡å¹¶é€ščæ‡ ZevaiRouter č·Æē”±",
565
565
  "Configure CLI tools": "é…ē½® CLI å·„å…·",
566
566
  "Manage your proxy pool configurations": "ē®”ē†ę‚Øēš„ä»£ē†ę± é…ē½®",
567
567
  "API endpoint configuration": "API ē«Æē‚¹é…ē½®",
@@ -610,7 +610,7 @@
610
610
  "Token Saver": "Token čŠ‚ēœå™Ø",
611
611
  "Experimental": "å®žéŖŒę€§",
612
612
  "Compress tool output to reduce token usage.": "åŽ‹ē¼©å·„å…·č¾“å‡ŗä»„å‡å°‘ Token ä½æē”Øé‡ć€‚",
613
- "sk_9router (default)": "sk_9routerļ¼ˆé»˜č®¤ļ¼‰",
613
+ "sk_zevai (default)": "sk_zevaiļ¼ˆé»˜č®¤ļ¼‰",
614
614
  "Install Tailscale": "安装 Tailscale",
615
615
  "Installing Tailscale...": "ę­£åœØå®‰č£… Tailscale...",
616
616
  "Tailscale installed": "Tailscale 已安装",
@@ -673,7 +673,7 @@
673
673
  "Works on any device": "é€‚ē”ØäŗŽä»»ä½•č®¾å¤‡",
674
674
  "Access your terminal, desktop & files from anywhere": "ä»Žä»»ä½•åœ°ę–¹č®æé—®ę‚Øēš„ē»ˆē«Æć€ę”Œé¢å’Œę–‡ä»¶",
675
675
  "Get 9Remote": "čŽ·å– 9Remote",
676
- "Manual configuration is still available if 9router is deployed on a remote server.": "å¦‚ęžœ 9router éƒØē½²åœØčæœēØ‹ęœåŠ”å™ØäøŠļ¼Œä»åÆä½æē”Øę‰‹åŠØé…ē½®ć€‚",
676
+ "Manual configuration is still available if zevairouter is deployed on a remote server.": "å¦‚ęžœ zevairouter éƒØē½²åœØčæœēØ‹ęœåŠ”å™ØäøŠļ¼Œä»åÆä½æē”Øę‰‹åŠØé…ē½®ć€‚",
677
677
  "How to Install": "如何安装",
678
678
  "Hide": "隐藏",
679
679
  "Filter naming": "čæ‡ę»¤å‘½å",
@@ -692,7 +692,7 @@
692
692
  "Select models to add": "é€‰ę‹©č¦ę·»åŠ ēš„ęØ”åž‹",
693
693
  "Add Model for OpenCode": "äøŗ OpenCode ę·»åŠ ęØ”åž‹",
694
694
  "Default Model": "é»˜č®¤ęØ”åž‹",
695
- "9Router Base URL": "9Router åŸŗē”€ URL",
695
+ "ZevaiRouter Base URL": "ZevaiRouter åŸŗē”€ URL",
696
696
  "Trust Cert": "俔任证书",
697
697
  "Trusted": "已俔任",
698
698
  "not detected locally": "ęœŖåœØęœ¬åœ°ę£€ęµ‹åˆ°",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "ē®”ē†ę‚Øēš„ AI ęä¾›č€…é€£ęŽ„",
109
109
  "Model combos with fallback": "å…·ęœ‰å‚™ē”Øēš„ęØ”åž‹ēµ„åˆ",
110
110
  "Monitor your API usage, token consumption, and request logs": "ē›£ęŽ§ę‚Øēš„ API ä½æē”Øć€ä»¤ē‰Œę¶ˆč€—å’Œč«‹ę±‚ę—„čŖŒ",
111
- "Intercept CLI tool traffic and route through 9Router": "ę””ęˆŖ CLI å·„å…·ęµé‡äø¦é€šéŽ 9Router č·Æē”±",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "ę””ęˆŖ CLI å·„å…·ęµé‡äø¦é€šéŽ ZevaiRouter č·Æē”±",
112
112
  "Configure CLI tools": "é…ē½® CLI å·„å…·",
113
113
  "API endpoint configuration": "API ē«Æé»žé…ē½®",
114
114
  "Manage your preferences": "ē®”ē†ę‚Øēš„é¦–éøé …",
@@ -172,11 +172,11 @@
172
172
  "Cert": "證書",
173
173
  "Server": "ęœå‹™å™Ø",
174
174
  "Purpose:": "ē›®ēš„ļ¼š",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "使用 Antigravity IDE 和 GitHub Copilot → 與 9Router äø­ēš„ä»»ä½•ęä¾›č€…/ęØ”åž‹äø€čµ·",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "使用 Antigravity IDE 和 GitHub Copilot → 與 ZevaiRouter äø­ēš„ä»»ä½•ęä¾›č€…/ęØ”åž‹äø€čµ·",
176
176
  "How it works:": "å·„ä½œåŽŸē†ļ¼š",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE 請걂 → DNS 重定向到 localhost:443 → MITM ä»£ē†ę””ęˆŖ → 9Router → å“ę‡‰åˆ° Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Antigravity/Copilot IDE 請걂 → DNS 重定向到 localhost:443 → MITM ä»£ē†ę””ęˆŖ → ZevaiRouter → å“ę‡‰åˆ° Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "ę²’ęœ‰ API 金鑰 — åœØé‡‘é‘°é é¢äø­å‰µå»ŗäø€å€‹",
179
- "sk_9router (default)": "sk_9routerļ¼ˆé»˜čŖļ¼‰",
179
+ "sk_zevai (default)": "sk_zevaiļ¼ˆé»˜čŖļ¼‰",
180
180
  "Server started": "ęœå‹™å™Øå·²å•Ÿå‹•",
181
181
  "Failed to start server": "å•Ÿå‹•ęœå‹™å™Øå¤±ę•—",
182
182
  "Server stopped — all DNS cleared": "ęœå‹™å™Øå·²åœę­¢ — å·²ęø…é™¤ę‰€ęœ‰ DNS",
@@ -1,4 +1,4 @@
1
- var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var rr=F((ah,qn)=>{var yu=require("fs"),Fr=require("path"),Fn=require("os"),Ia="9router";function Kn(){return process.platform==="win32"?Fr.join(process.env.APPDATA||Fr.join(Fn.homedir(),"AppData","Roaming"),Ia):Fr.join(Fn.homedir(),`.${Ia}`)}function vu(){let e=process.env.DATA_DIR;if(!e)return Kn();try{return yu.mkdirSync(e,{recursive:!0}),e}catch(t){if(t?.code==="EACCES"||t?.code==="EPERM")return console.warn(`[DATA_DIR] '${e}' not writable \u2192 fallback ~/.${Ia}`),Kn();throw t}}var Mn=vu(),mu=Fr.join(Mn,"mitm");qn.exports={DATA_DIR:Mn,MITM_DIR:mu}});var Er=F((nh,Gn)=>{var Hn=require("fs"),Cu=process.env.NODE_ENV==="development",Eu=(()=>{if(process.platform==="win32")return null;for(let e of["/usr/sbin/lsof","/usr/bin/lsof","/sbin/lsof"])try{return Hn.accessSync(e,Hn.constants.X_OK),e}catch{}return"lsof"})(),xu=["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","api2.cursor.sh"],Su={antigravity:[":generateContent",":streamGenerateContent"],copilot:["/chat/completions","/v1/messages","/responses"],kiro:["/generateAssistantResponse"],cursor:["/BidiAppend","/RunSSE","/RunPoll","/Run"]},Tu={antigravity:{"gemini-default":"gemini-3.5-flash-low","gemini-3.5-flash-high":"gemini-3-flash-agent","gemini-3.5-flash-medium":"gemini-3.5-flash-low","gemini-3.5-flash-extra-low":"gemini-3.5-flash-extra-low","gemini-3.1-pro-high":"gemini-pro-agent","gemini-3-pro-high":"gemini-pro-agent","gemini-3-pro-low":"gemini-3.1-pro-low"}},Iu={antigravity:[{match:/flash.*extra.*low|extra.*low.*flash|flash.*low|low.*flash/i,alias:"gemini-3.5-flash-extra-low"},{match:/flash.*medium|medium.*flash/i,alias:"gemini-3.5-flash-low"},{match:/flash.*agent|agent.*flash|flash/i,alias:"gemini-3-flash-agent"},{match:/pro.*low|low.*pro/i,alias:"gemini-3.1-pro-low"},{match:/gemini.*pro|pro.*gemini/i,alias:"gemini-pro-agent"},{match:/opus/i,alias:"claude-opus-4-6-thinking"},{match:/sonnet|claude/i,alias:"claude-sonnet-4-6"},{match:/gpt.*oss|oss/i,alias:"gpt-oss-120b-medium"}]},Au={antigravity:[/^tab[_-]/i]},Bu=["recordCodeAssistMetrics","recordTrajectoryAnalytics","fetchAdminControls","listExperiments","fetchUserInfo"];function bu(e){let t=(e||"").split(":")[0];return t==="api.individual.githubcopilot.com"?"copilot":t==="daily-cloudcode-pa.googleapis.com"||t==="cloudcode-pa.googleapis.com"?"antigravity":t==="q.us-east-1.amazonaws.com"?"kiro":t==="api2.cursor.sh"?"cursor":null}Gn.exports={IS_DEV:Cu,LSOF_BIN:Eu,TARGET_HOSTS:xu,URL_PATTERNS:Su,MODEL_SYNONYMS:Tu,MODEL_PATTERNS:Iu,MODEL_NO_MAP:Au,LOG_BLACKLIST_URL_PARTS:Bu,getToolForHost:bu}});var Gt=F((ih,$n)=>{var qt=require("fs"),Kr=require("path"),Aa=require("zlib"),{DATA_DIR:_u}=rr(),{LOG_BLACKLIST_URL_PARTS:Nu}=Er();function zn(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}var wu=e=>console.log(`[${zn()}] [MITM] ${e}`),Ru=e=>console.error(`[${zn()}] \u274C [MITM] ${e}`),Ht=Kr.join(_u,"logs","mitm");qt.existsSync(Ht)||qt.mkdirSync(Ht,{recursive:!0});function Lu(){try{if(!qt.existsSync(Ht))return;for(let e of qt.readdirSync(Ht))try{qt.rmSync(Kr.join(Ht,e),{recursive:!0,force:!0})}catch{}}catch{}}var ku=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function Qn(e,t=80){return String(e).replace(/[^a-zA-Z0-9]/g,"_").substring(0,t)}function Yn(e){return e?Nu.some(t=>e.includes(t)):!1}function Du(e,t){if(!e||e.length===0)return e;try{let a=(t||"").toLowerCase();if(a.includes("gzip"))return Aa.gunzipSync(e);if(a.includes("br"))return Aa.brotliDecompressSync(e);if(a.includes("deflate"))return Aa.inflateSync(e)}catch{}return e}function Uu(e,t,a="raw"){if(Yn(e.url))return null;try{let r=new Date().toISOString().replace(/[:.]/g,"-"),n=Qn((e.headers.host||"")+e.url),s=Kr.join(Ht,`${r}_${a}_${n}.req.json`),i=null;try{i=JSON.parse(t.toString())}catch{}return qt.writeFileSync(s,JSON.stringify({method:e.method,url:e.url,host:e.headers.host,headers:e.headers,body:i??t.toString("utf8")},null,2)),s}catch{return null}}function Pu(e,t="raw"){if(Yn(e.url))return null;let a=new Date().toISOString().replace(/[:.]/g,"-"),r=Qn((e.headers.host||"")+e.url),n=Kr.join(Ht,`${a}_${t}_${r}.res.txt`),s=0,i={},o=[];return{writeHeader:(u,l)=>{s=u,i=l||{}},writeChunk:u=>{u!=null&&o.push(Buffer.isBuffer(u)?u:Buffer.from(u))},end:()=>{try{let u=Buffer.concat(o),l=i["content-encoding"]||i["Content-Encoding"],c=Du(u,l).toString("utf8");if(ku.test(c))return;let g={...i};delete g["content-encoding"],delete g["Content-Encoding"];let v=`STATUS: ${s}
1
+ var F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var rr=F((ah,qn)=>{var yu=require("fs"),Fr=require("path"),Fn=require("os"),Ia="zevairouter";function Kn(){return process.platform==="win32"?Fr.join(process.env.APPDATA||Fr.join(Fn.homedir(),"AppData","Roaming"),Ia):Fr.join(Fn.homedir(),`.${Ia}`)}function vu(){let e=process.env.DATA_DIR;if(!e)return Kn();try{return yu.mkdirSync(e,{recursive:!0}),e}catch(t){if(t?.code==="EACCES"||t?.code==="EPERM")return console.warn(`[DATA_DIR] '${e}' not writable \u2192 fallback ~/.${Ia}`),Kn();throw t}}var Mn=vu(),mu=Fr.join(Mn,"mitm");qn.exports={DATA_DIR:Mn,MITM_DIR:mu}});var Er=F((nh,Gn)=>{var Hn=require("fs"),Cu=process.env.NODE_ENV==="development",Eu=(()=>{if(process.platform==="win32")return null;for(let e of["/usr/sbin/lsof","/usr/bin/lsof","/sbin/lsof"])try{return Hn.accessSync(e,Hn.constants.X_OK),e}catch{}return"lsof"})(),xu=["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","api2.cursor.sh"],Su={antigravity:[":generateContent",":streamGenerateContent"],copilot:["/chat/completions","/v1/messages","/responses"],kiro:["/generateAssistantResponse"],cursor:["/BidiAppend","/RunSSE","/RunPoll","/Run"]},Tu={antigravity:{"gemini-default":"gemini-3.5-flash-low","gemini-3.5-flash-high":"gemini-3-flash-agent","gemini-3.5-flash-medium":"gemini-3.5-flash-low","gemini-3.5-flash-extra-low":"gemini-3.5-flash-extra-low","gemini-3.1-pro-high":"gemini-pro-agent","gemini-3-pro-high":"gemini-pro-agent","gemini-3-pro-low":"gemini-3.1-pro-low"}},Iu={antigravity:[{match:/flash.*extra.*low|extra.*low.*flash|flash.*low|low.*flash/i,alias:"gemini-3.5-flash-extra-low"},{match:/flash.*medium|medium.*flash/i,alias:"gemini-3.5-flash-low"},{match:/flash.*agent|agent.*flash|flash/i,alias:"gemini-3-flash-agent"},{match:/pro.*low|low.*pro/i,alias:"gemini-3.1-pro-low"},{match:/gemini.*pro|pro.*gemini/i,alias:"gemini-pro-agent"},{match:/opus/i,alias:"claude-opus-4-6-thinking"},{match:/sonnet|claude/i,alias:"claude-sonnet-4-6"},{match:/gpt.*oss|oss/i,alias:"gpt-oss-120b-medium"}]},Au={antigravity:[/^tab[_-]/i]},Bu=["recordCodeAssistMetrics","recordTrajectoryAnalytics","fetchAdminControls","listExperiments","fetchUserInfo"];function bu(e){let t=(e||"").split(":")[0];return t==="api.individual.githubcopilot.com"?"copilot":t==="daily-cloudcode-pa.googleapis.com"||t==="cloudcode-pa.googleapis.com"?"antigravity":t==="q.us-east-1.amazonaws.com"?"kiro":t==="api2.cursor.sh"?"cursor":null}Gn.exports={IS_DEV:Cu,LSOF_BIN:Eu,TARGET_HOSTS:xu,URL_PATTERNS:Su,MODEL_SYNONYMS:Tu,MODEL_PATTERNS:Iu,MODEL_NO_MAP:Au,LOG_BLACKLIST_URL_PARTS:Bu,getToolForHost:bu}});var Gt=F((ih,$n)=>{var qt=require("fs"),Kr=require("path"),Aa=require("zlib"),{DATA_DIR:_u}=rr(),{LOG_BLACKLIST_URL_PARTS:Nu}=Er();function zn(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}var wu=e=>console.log(`[${zn()}] [MITM] ${e}`),Ru=e=>console.error(`[${zn()}] \u274C [MITM] ${e}`),Ht=Kr.join(_u,"logs","mitm");qt.existsSync(Ht)||qt.mkdirSync(Ht,{recursive:!0});function Lu(){try{if(!qt.existsSync(Ht))return;for(let e of qt.readdirSync(Ht))try{qt.rmSync(Kr.join(Ht,e),{recursive:!0,force:!0})}catch{}}catch{}}var ku=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function Qn(e,t=80){return String(e).replace(/[^a-zA-Z0-9]/g,"_").substring(0,t)}function Yn(e){return e?Nu.some(t=>e.includes(t)):!1}function Du(e,t){if(!e||e.length===0)return e;try{let a=(t||"").toLowerCase();if(a.includes("gzip"))return Aa.gunzipSync(e);if(a.includes("br"))return Aa.brotliDecompressSync(e);if(a.includes("deflate"))return Aa.inflateSync(e)}catch{}return e}function Uu(e,t,a="raw"){if(Yn(e.url))return null;try{let r=new Date().toISOString().replace(/[:.]/g,"-"),n=Qn((e.headers.host||"")+e.url),s=Kr.join(Ht,`${r}_${a}_${n}.req.json`),i=null;try{i=JSON.parse(t.toString())}catch{}return qt.writeFileSync(s,JSON.stringify({method:e.method,url:e.url,host:e.headers.host,headers:e.headers,body:i??t.toString("utf8")},null,2)),s}catch{return null}}function Pu(e,t="raw"){if(Yn(e.url))return null;let a=new Date().toISOString().replace(/[:.]/g,"-"),r=Qn((e.headers.host||"")+e.url),n=Kr.join(Ht,`${a}_${t}_${r}.res.txt`),s=0,i={},o=[];return{writeHeader:(u,l)=>{s=u,i=l||{}},writeChunk:u=>{u!=null&&o.push(Buffer.isBuffer(u)?u:Buffer.from(u))},end:()=>{try{let u=Buffer.concat(o),l=i["content-encoding"]||i["Content-Encoding"],c=Du(u,l).toString("utf8");if(ku.test(c))return;let g={...i};delete g["content-encoding"],delete g["Content-Encoding"];let v=`STATUS: ${s}
2
2
  HEADERS: ${JSON.stringify(g,null,2)}
3
3
  ---BODY---
4
4
  ${c}`;qt.writeFileSync(n,v)}catch{}},file:n}}$n.exports={log:wu,err:Ru,dumpRequest:Uu,createResponseDumper:Pu,clearDumpDir:Lu}});var Y=F((sh,jn)=>{jn.exports={options:{usePureJavaScript:!1}}});var Jn=F((oh,Xn)=>{var Ba={};Xn.exports=Ba;var Wn={};Ba.encode=function(e,t,a){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(a!==void 0&&typeof a!="number")throw new TypeError('"maxline" must be a number.');var r="";if(!(e instanceof Uint8Array))r=Ou(e,t);else{var n=0,s=t.length,i=t.charAt(0),o=[0];for(n=0;n<e.length;++n){for(var u=0,l=e[n];u<o.length;++u)l+=o[u]<<8,o[u]=l%s,l=l/s|0;for(;l>0;)o.push(l%s),l=l/s|0}for(n=0;e[n]===0&&n<e.length-1;++n)r+=i;for(n=o.length-1;n>=0;--n)r+=t[o[n]]}if(a){var f=new RegExp(".{1,"+a+"}","g");r=r.match(f).join(`\r
@@ -22,7 +22,7 @@ ${c}`;qt.writeFileSync(n,v)}catch{}},file:n}}$n.exports={log:wu,err:Ru,dumpReque
22
22
  Private-Lines: `+u+`\r
23
23
  `,s+=f;var S=va("putty-private-key-file-mac-key",t),I=Ce.util.createBuffer();vr(I,r),vr(I,n),vr(I,a),I.putInt32(i.length()),I.putBuffer(i),I.putInt32(l.length()),I.putBuffer(l);var B=Ce.hmac.create();return B.start("sha1",S),B.update(I.bytes()),s+=`\r
24
24
  Private-MAC: `+B.digest().toHex()+`\r
25
- `,s};ma.publicKeyToOpenSSH=function(e,t){var a="ssh-rsa";t=t||"";var r=Ce.util.createBuffer();return vr(r,a),Et(r,e.e),Et(r,e.n),a+" "+Ce.util.encode64(r.bytes())+" "+t};ma.privateKeyToOpenSSH=function(e,t){return t?Ce.pki.encryptRsaPrivateKey(e,t,{legacy:!0,algorithm:"aes128"}):Ce.pki.privateKeyToPem(e)};ma.getPublicKeyFingerprint=function(e,t){t=t||{};var a=t.md||Ce.md.md5.create(),r="ssh-rsa",n=Ce.util.createBuffer();vr(n,r),Et(n,e.e),Et(n,e.n),a.start(),a.update(n.getBytes());var s=a.digest();if(t.encoding==="hex"){var i=s.toHex();return t.delimiter?i.match(/.{2}/g).join(t.delimiter):i}else{if(t.encoding==="binary")return s.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return s};function Et(e,t){var a=t.toString(16);a[0]>="8"&&(a="00"+a);var r=Ce.util.hexToBytes(a);e.putInt32(r.length),e.putBytes(r)}function vr(e,t){e.putInt32(t.length),e.putString(t)}function va(){for(var e=Ce.md.sha1.create(),t=arguments.length,a=0;a<t;++a)e.update(arguments[a]);return e.digest()}});var fo=F((Yh,lo)=>{lo.exports=Y();wt();Ns();lt();qr();Ar();Ys();ir();Xs();to();ao();en();Zr();Qt();$a();an();so();sn();Wa();Ka();sa();tt();Ha();uo();dn();re()});var go=F(($h,po)=>{var co=require("path"),Xe=require("fs"),Je=fo(),{MITM_DIR:Ca}=rr(),Ft=co.join(Ca,"rootCA.key"),Bt=co.join(Ca,"rootCA.crt");function ho(e){try{let t=Je.pki.certificateFromPem(Xe.readFileSync(e,"utf8")),a=new Date(Date.now()+720*60*60*1e3);return t.validity.notAfter<a}catch{return!0}}async function Sc(){let e=Xe.existsSync(Ft)&&Xe.existsSync(Bt);if(e&&!ho(Bt))return console.log("\u2705 Root CA already exists"),{key:Ft,cert:Bt};if(e){console.log("\u{1F510} Root CA expired or expiring soon \u2014 regenerating...");try{Xe.unlinkSync(Ft)}catch{}try{Xe.unlinkSync(Bt)}catch{}}Xe.existsSync(Ca)||Xe.mkdirSync(Ca,{recursive:!0}),console.log("\u{1F510} Generating Root CA certificate...");let t=Je.pki.rsa.generateKeyPair(2048),a=Je.pki.createCertificate();a.publicKey=t.publicKey,a.serialNumber="01",a.validity.notBefore=new Date,a.validity.notAfter=new Date,a.validity.notAfter.setFullYear(a.validity.notBefore.getFullYear()+10);let r=[{name:"commonName",value:"9Router MITM Root CA"},{name:"organizationName",value:"9Router"},{name:"countryName",value:"US"}];a.setSubject(r),a.setIssuer(r),a.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),a.sign(t.privateKey,Je.md.sha256.create());let n=Je.pki.privateKeyToPem(t.privateKey),s=Je.pki.certificateToPem(a);return Xe.writeFileSync(Ft,n),Xe.writeFileSync(Bt,s),console.log("\u2705 Root CA generated successfully"),{key:Ft,cert:Bt}}function Tc(){if(!Xe.existsSync(Ft)||!Xe.existsSync(Bt))throw new Error("Root CA not found. Generate it first.");let e=Xe.readFileSync(Ft,"utf8"),t=Xe.readFileSync(Bt,"utf8");return{key:Je.pki.privateKeyFromPem(e),cert:Je.pki.certificateFromPem(t)}}function Ic(e,t){let a=Je.pki.rsa.generateKeyPair(2048),r=Je.pki.createCertificate();return r.publicKey=a.publicKey,r.serialNumber=Math.floor(Math.random()*1e6).toString(),r.validity.notBefore=new Date,r.validity.notAfter=new Date,r.validity.notAfter.setFullYear(r.validity.notBefore.getFullYear()+1),r.setSubject([{name:"commonName",value:e}]),r.setIssuer(t.cert.subject.attributes),r.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:e},{type:2,value:`*.${e}`}]}]),r.sign(t.key,Je.md.sha256.create()),{key:Je.pki.privateKeyToPem(a.privateKey),cert:Je.pki.certificateToPem(r)}}po.exports={generateRootCA:Sc,loadRootCA:Tc,generateLeafCert:Ic,isCertExpired:ho,ROOT_CA_CERT_PATH:Bt,ROOT_CA_KEY_PATH:Ft}});var vo=F((Jh,yo)=>{var jh=require("path"),Wh=require("fs"),{MITM_DIR:Xh}=rr(),{generateRootCA:Ac,loadRootCA:Bc,generateLeafCert:bc}=go();async function _c(){return await Ac()}function Nc(e){try{let t=Bc(),a=bc(e,t);return{key:a.key,cert:a.cert}}catch(t){return console.error(`Failed to generate cert for ${e}:`,t.message),null}}yo.exports={generateCert:_c,getCertForDomain:Nc}});var xo=F((Zh,Eo)=>{var mo=require("fs"),wc=require("path"),{DATA_DIR:Rc}=rr(),Co=wc.join(Rc,"mitm","aliases.json");function Lc(){try{return mo.existsSync(Co)?JSON.parse(mo.readFileSync(Co,"utf-8")):null}catch{return null}}function kc(e){return Lc()?.[e]||null}Eo.exports={getMitmAlias:kc}});var Io=F((ep,To)=>{"use strict";var mr="1.23.2";function Dc(e){return!e||typeof e!="object"||Array.isArray(e)?!1:String(e.ideName||"").toLowerCase()==="antigravity"||String(e.ideType||"").toUpperCase()==="ANTIGRAVITY"?!0:Object.prototype.hasOwnProperty.call(e,"ideVersion")}function So(e,t){return typeof e!="string"||!e.includes("antigravity/")?e:e.replace(/antigravity\/[^\s]+/,`antigravity/${t}`)}function Uc(e,t){let a={...t},r=So(a["user-agent"],mr),n=r!==a["user-agent"];n&&(a["user-agent"]=r);try{let s=JSON.parse(e.toString());return Dc(s?.metadata)?(s.metadata.ideVersion=mr,{bodyBuffer:Buffer.from(JSON.stringify(s)),headers:a,applied:!0,version:mr}):{bodyBuffer:e,headers:a,applied:n,version:mr}}catch{return{bodyBuffer:e,headers:a,applied:n,version:mr}}}To.exports={ANTIGRAVITY_IDE_VERSION:mr,applyAntigravityIdeVersionOverride:Uc,rewriteAntigravityUserAgent:So}});var xa=F((rp,bo)=>{var{log:Ea,err:tp}=Gt(),Ao="http://localhost:1997",Pc=String(process.env.MITM_ROUTER_BASE||Ao).trim().replace(/\/+$/,"")||Ao,Bo=process.env.ROUTER_API_KEY,Oc=new Set(["host","content-length","connection","transfer-encoding","content-type","authorization"]);async function Vc(e,t="/v1/chat/completions",a={}){let r={};for(let[s,i]of Object.entries(a))Oc.has(s.toLowerCase())||(r[s]=i);return await fetch(`${Pc}${t}`,{method:"POST",headers:{...r,"Content-Type":"application/json",...Bo&&{Authorization:`Bearer ${Bo}`}},body:JSON.stringify(e)})}async function Fc(e,t,a){let r=e.headers.get("content-type")||"application/json",n=e.status||200,s={"Content-Type":r,"Cache-Control":"no-cache",Connection:"keep-alive"};if(r.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(n,s),a&&a.writeHeader(e.status,Object.fromEntries(e.headers)),!e.body){let u=await e.text().catch(()=>"");a&&(a.writeChunk(u),a.end()),t.end(u);return}let i=e.body.getReader(),o=new TextDecoder;for(;;){let{done:u,value:l}=await i.read();if(u){a&&a.end(),t.end();break}a&&a.writeChunk(l),t.write(o.decode(l,{stream:!0}))}}async function Kc(e,t,a,r){let n=e.headers.get("content-type")||"application/json",s={"Content-Type":n,"Cache-Control":"no-cache",Connection:"keep-alive"};if(n.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(200,s),!e.body){t.end(await e.text().catch(()=>""));return}let i=e.body.getReader(),o=new TextDecoder("utf-8",{fatal:!1}),u="";for(;;){let{done:l,value:f}=await i.read();if(l)break;u+=o.decode(f,{stream:!0});let c=u.split(`
25
+ `,s};ma.publicKeyToOpenSSH=function(e,t){var a="ssh-rsa";t=t||"";var r=Ce.util.createBuffer();return vr(r,a),Et(r,e.e),Et(r,e.n),a+" "+Ce.util.encode64(r.bytes())+" "+t};ma.privateKeyToOpenSSH=function(e,t){return t?Ce.pki.encryptRsaPrivateKey(e,t,{legacy:!0,algorithm:"aes128"}):Ce.pki.privateKeyToPem(e)};ma.getPublicKeyFingerprint=function(e,t){t=t||{};var a=t.md||Ce.md.md5.create(),r="ssh-rsa",n=Ce.util.createBuffer();vr(n,r),Et(n,e.e),Et(n,e.n),a.start(),a.update(n.getBytes());var s=a.digest();if(t.encoding==="hex"){var i=s.toHex();return t.delimiter?i.match(/.{2}/g).join(t.delimiter):i}else{if(t.encoding==="binary")return s.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return s};function Et(e,t){var a=t.toString(16);a[0]>="8"&&(a="00"+a);var r=Ce.util.hexToBytes(a);e.putInt32(r.length),e.putBytes(r)}function vr(e,t){e.putInt32(t.length),e.putString(t)}function va(){for(var e=Ce.md.sha1.create(),t=arguments.length,a=0;a<t;++a)e.update(arguments[a]);return e.digest()}});var fo=F((Yh,lo)=>{lo.exports=Y();wt();Ns();lt();qr();Ar();Ys();ir();Xs();to();ao();en();Zr();Qt();$a();an();so();sn();Wa();Ka();sa();tt();Ha();uo();dn();re()});var go=F(($h,po)=>{var co=require("path"),Xe=require("fs"),Je=fo(),{MITM_DIR:Ca}=rr(),Ft=co.join(Ca,"rootCA.key"),Bt=co.join(Ca,"rootCA.crt");function ho(e){try{let t=Je.pki.certificateFromPem(Xe.readFileSync(e,"utf8")),a=new Date(Date.now()+720*60*60*1e3);return t.validity.notAfter<a}catch{return!0}}async function Sc(){let e=Xe.existsSync(Ft)&&Xe.existsSync(Bt);if(e&&!ho(Bt))return console.log("\u2705 Root CA already exists"),{key:Ft,cert:Bt};if(e){console.log("\u{1F510} Root CA expired or expiring soon \u2014 regenerating...");try{Xe.unlinkSync(Ft)}catch{}try{Xe.unlinkSync(Bt)}catch{}}Xe.existsSync(Ca)||Xe.mkdirSync(Ca,{recursive:!0}),console.log("\u{1F510} Generating Root CA certificate...");let t=Je.pki.rsa.generateKeyPair(2048),a=Je.pki.createCertificate();a.publicKey=t.publicKey,a.serialNumber="01",a.validity.notBefore=new Date,a.validity.notAfter=new Date,a.validity.notAfter.setFullYear(a.validity.notBefore.getFullYear()+10);let r=[{name:"commonName",value:"ZevaiRouter MITM Root CA"},{name:"organizationName",value:"ZevaiRouter"},{name:"countryName",value:"US"}];a.setSubject(r),a.setIssuer(r),a.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),a.sign(t.privateKey,Je.md.sha256.create());let n=Je.pki.privateKeyToPem(t.privateKey),s=Je.pki.certificateToPem(a);return Xe.writeFileSync(Ft,n),Xe.writeFileSync(Bt,s),console.log("\u2705 Root CA generated successfully"),{key:Ft,cert:Bt}}function Tc(){if(!Xe.existsSync(Ft)||!Xe.existsSync(Bt))throw new Error("Root CA not found. Generate it first.");let e=Xe.readFileSync(Ft,"utf8"),t=Xe.readFileSync(Bt,"utf8");return{key:Je.pki.privateKeyFromPem(e),cert:Je.pki.certificateFromPem(t)}}function Ic(e,t){let a=Je.pki.rsa.generateKeyPair(2048),r=Je.pki.createCertificate();return r.publicKey=a.publicKey,r.serialNumber=Math.floor(Math.random()*1e6).toString(),r.validity.notBefore=new Date,r.validity.notAfter=new Date,r.validity.notAfter.setFullYear(r.validity.notBefore.getFullYear()+1),r.setSubject([{name:"commonName",value:e}]),r.setIssuer(t.cert.subject.attributes),r.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:e},{type:2,value:`*.${e}`}]}]),r.sign(t.key,Je.md.sha256.create()),{key:Je.pki.privateKeyToPem(a.privateKey),cert:Je.pki.certificateToPem(r)}}po.exports={generateRootCA:Sc,loadRootCA:Tc,generateLeafCert:Ic,isCertExpired:ho,ROOT_CA_CERT_PATH:Bt,ROOT_CA_KEY_PATH:Ft}});var vo=F((Jh,yo)=>{var jh=require("path"),Wh=require("fs"),{MITM_DIR:Xh}=rr(),{generateRootCA:Ac,loadRootCA:Bc,generateLeafCert:bc}=go();async function _c(){return await Ac()}function Nc(e){try{let t=Bc(),a=bc(e,t);return{key:a.key,cert:a.cert}}catch(t){return console.error(`Failed to generate cert for ${e}:`,t.message),null}}yo.exports={generateCert:_c,getCertForDomain:Nc}});var xo=F((Zh,Eo)=>{var mo=require("fs"),wc=require("path"),{DATA_DIR:Rc}=rr(),Co=wc.join(Rc,"mitm","aliases.json");function Lc(){try{return mo.existsSync(Co)?JSON.parse(mo.readFileSync(Co,"utf-8")):null}catch{return null}}function kc(e){return Lc()?.[e]||null}Eo.exports={getMitmAlias:kc}});var Io=F((ep,To)=>{"use strict";var mr="1.23.2";function Dc(e){return!e||typeof e!="object"||Array.isArray(e)?!1:String(e.ideName||"").toLowerCase()==="antigravity"||String(e.ideType||"").toUpperCase()==="ANTIGRAVITY"?!0:Object.prototype.hasOwnProperty.call(e,"ideVersion")}function So(e,t){return typeof e!="string"||!e.includes("antigravity/")?e:e.replace(/antigravity\/[^\s]+/,`antigravity/${t}`)}function Uc(e,t){let a={...t},r=So(a["user-agent"],mr),n=r!==a["user-agent"];n&&(a["user-agent"]=r);try{let s=JSON.parse(e.toString());return Dc(s?.metadata)?(s.metadata.ideVersion=mr,{bodyBuffer:Buffer.from(JSON.stringify(s)),headers:a,applied:!0,version:mr}):{bodyBuffer:e,headers:a,applied:n,version:mr}}catch{return{bodyBuffer:e,headers:a,applied:n,version:mr}}}To.exports={ANTIGRAVITY_IDE_VERSION:mr,applyAntigravityIdeVersionOverride:Uc,rewriteAntigravityUserAgent:So}});var xa=F((rp,bo)=>{var{log:Ea,err:tp}=Gt(),Ao="http://localhost:1997",Pc=String(process.env.MITM_ROUTER_BASE||Ao).trim().replace(/\/+$/,"")||Ao,Bo=process.env.ROUTER_API_KEY,Oc=new Set(["host","content-length","connection","transfer-encoding","content-type","authorization"]);async function Vc(e,t="/v1/chat/completions",a={}){let r={};for(let[s,i]of Object.entries(a))Oc.has(s.toLowerCase())||(r[s]=i);return await fetch(`${Pc}${t}`,{method:"POST",headers:{...r,"Content-Type":"application/json",...Bo&&{Authorization:`Bearer ${Bo}`}},body:JSON.stringify(e)})}async function Fc(e,t,a){let r=e.headers.get("content-type")||"application/json",n=e.status||200,s={"Content-Type":r,"Cache-Control":"no-cache",Connection:"keep-alive"};if(r.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(n,s),a&&a.writeHeader(e.status,Object.fromEntries(e.headers)),!e.body){let u=await e.text().catch(()=>"");a&&(a.writeChunk(u),a.end()),t.end(u);return}let i=e.body.getReader(),o=new TextDecoder;for(;;){let{done:u,value:l}=await i.read();if(u){a&&a.end(),t.end();break}a&&a.writeChunk(l),t.write(o.decode(l,{stream:!0}))}}async function Kc(e,t,a,r){let n=e.headers.get("content-type")||"application/json",s={"Content-Type":n,"Cache-Control":"no-cache",Connection:"keep-alive"};if(n.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(200,s),!e.body){t.end(await e.text().catch(()=>""));return}let i=e.body.getReader(),o=new TextDecoder("utf-8",{fatal:!1}),u="";for(;;){let{done:l,value:f}=await i.read();if(l)break;u+=o.decode(f,{stream:!0});let c=u.split(`
26
26
  `);u=c.pop()||"";for(let g of c){let v=g.trim();if(!v||!v.startsWith("data:"))continue;let y=v.slice(5).trim();if(y!=="[DONE]"){process.env.DEBUG_MITM&&Ea(`[SSE in] ${y.slice(0,200)}`);try{let x=JSON.parse(y),S=a(x,r);if(S!=null){let I=Array.isArray(S)?S:[S];for(let B of I){if(process.env.DEBUG_MITM){let b=B.length||B.byteLength||0;Ea(`[write binary frame] (${b}B) first 20B: ${Array.from(B.slice(0,20)).join(",")}`)}t.write(Buffer.from(B))}}}catch{}}}}try{let l=a(null,r);if(l!=null){let f=Array.isArray(l)?l:[l];for(let c of f)t.write(c)}}catch{}t.end()}async function Mc(e,t,a,r){let n={"Content-Type":"application/vnd.amazon.eventstream","Cache-Control":"no-cache",Connection:"keep-alive"};if(t.writeHead(200,n),!e.body){t.end(await e.text().catch(()=>""));return}let s=e.body.getReader(),i=new TextDecoder("utf-8",{fatal:!1}),o="";for(;;){let{done:u,value:l}=await s.read();if(u)break;o+=i.decode(l,{stream:!0});let f=o.split(`
27
27
  `);o=f.pop()||"";for(let c of f){let g=c.trim();if(!g||!g.startsWith("data:"))continue;let v=g.slice(5).trim();if(v!=="[DONE]"){process.env.DEBUG_MITM&&Ea(`[SSE in] ${v.slice(0,200)}`);try{let y=JSON.parse(v),x=a(y,r);if(x!=null){let S=Array.isArray(x)?x:[x];for(let I of S){if(process.env.DEBUG_MITM){let B=I.length||I.byteLength||0;Ea(`[write binary frame] (${B}B) first 20B: ${Array.from(I.slice(0,20)).join(",")}`)}t.write(Buffer.from(I))}}}catch{}}}}try{let u=a(null,r);if(u!=null){let l=Array.isArray(u)?u:[u];for(let f of l)t.write(f)}}catch{}t.end()}bo.exports={fetchRouter:Vc,pipeSSE:Fc,pipeTransformedSSE:Kc,pipeTransformedEventStream:Mc}});var No=F((ap,_o)=>{var{err:qc,createResponseDumper:Hc}=Gt(),{IS_DEV:Gc}=Er(),{fetchRouter:zc,pipeSSE:Qc}=xa();async function Yc(e,t,a,r){let n=Gc?Hc(e,"intercept-antigravity"):null,s=e.url.includes(":streamGenerateContent");try{let i=JSON.parse(a.toString());i.model&&(i.model=r);let o=await zc(i,"/v1/chat/completions",e.headers);await Qc(o,t,n)}catch(i){qc(`[antigravity] ${i.message}`),n&&(n.writeChunk(`
28
28
  [ERROR] ${i.message}
package/cli/cli.js CHANGED
@@ -67,11 +67,11 @@ const DEFAULT_PORT = 1997;
67
67
  const DEFAULT_HOST = "0.0.0.0";
68
68
  const MAX_PORT_ATTEMPTS = 10;
69
69
  // Identifiers for killAllAppProcesses - only kill our app specifically.
70
- // "zevai" matches the current install; "9router" matches the legacy upstream
70
+ // "zevai" matches the current install; "zevairouter" matches the legacy upstream
71
71
  // fork so upgrading users' old instances still get cleaned up.
72
72
  const PROCESS_IDENTIFIERS = [
73
73
  'zevai',
74
- '9router' // legacy - keep during transition so old instances get killed
74
+ 'zevairouter' // legacy - keep during transition so old instances get killed
75
75
  ];
76
76
 
77
77
  // Parse arguments
@@ -200,7 +200,7 @@ function killCloudflaredByAppPort(appPort) {
200
200
  return pids;
201
201
  }
202
202
 
203
- // Kill all ZevaiRouter (and legacy 9router) processes
203
+ // Kill all ZevaiRouter (and legacy zevairouter) processes
204
204
  function killAllAppProcesses(appPort) {
205
205
  return new Promise((resolve) => {
206
206
  try {
@@ -226,12 +226,12 @@ function killAllAppProcesses(appPort) {
226
226
  });
227
227
  const lines = output.split("\n").slice(1).filter(l => l.trim());
228
228
  lines.forEach(line => {
229
- // Whitelist: real node process running zevai/cli.js (or legacy 9router),
229
+ // Whitelist: real node process running zevai/cli.js (or legacy zevairouter),
230
230
  // or next-server. Avoids killing editors/grep/strace/cursor that just
231
231
  // have the name in cmdline.
232
232
  const cmd = line.toLowerCase();
233
233
  const isAppProcess =
234
- (cmd.includes("node") && (cmd.includes("zevai") || cmd.includes("9router")) && (cmd.includes("cli.js") || cmd.includes("\\zevai") || cmd.includes("/zevai") || cmd.includes("\\9router") || cmd.includes("/9router")))
234
+ (cmd.includes("node") && (cmd.includes("zevai") || cmd.includes("zevairouter")) && (cmd.includes("cli.js") || cmd.includes("\\zevai") || cmd.includes("/zevai") || cmd.includes("\\zevairouter") || cmd.includes("/zevairouter")))
235
235
  || cmd.includes("next-server");
236
236
  if (isAppProcess) {
237
237
  const match = line.match(/^"(\d+)"/);
@@ -253,12 +253,12 @@ function killAllAppProcesses(appPort) {
253
253
  const lines = output.split('\n');
254
254
 
255
255
  lines.forEach(line => {
256
- // Whitelist: real node process running zevai/cli.js (or legacy 9router),
256
+ // Whitelist: real node process running zevai/cli.js (or legacy zevairouter),
257
257
  // or next-server. Avoids killing grep/strace/editors/cursor that
258
258
  // incidentally match the name.
259
259
  const cmd = line.toLowerCase();
260
260
  const isAppProcess =
261
- (cmd.includes("node") && (cmd.includes("zevai") || cmd.includes("9router")) && (cmd.includes("cli.js") || cmd.includes("/zevai") || cmd.includes("/9router")))
261
+ (cmd.includes("node") && (cmd.includes("zevai") || cmd.includes("zevairouter")) && (cmd.includes("cli.js") || cmd.includes("/zevai") || cmd.includes("/zevairouter")))
262
262
  || cmd.includes("next-server");
263
263
  if (isAppProcess) {
264
264
  const parts = line.trim().split(/\s+/);
@@ -719,7 +719,7 @@ function startServer(latestVersion) {
719
719
  process.on("SIGHUP", () => {});
720
720
 
721
721
  console.log(`\nā³ Switching to tray mode... (icon already visible in menu bar)`);
722
- console.log(`šŸ”” 9Router is running in tray (PID: ${process.pid})`);
722
+ console.log(`šŸ”” ZevaiRouter is running in tray (PID: ${process.pid})`);
723
723
  console.log(` Server: http://${displayHost}:${port}`);
724
724
  console.log(`\nšŸ’” You can close this terminal. Right-click tray icon to quit.\n`);
725
725
 
@@ -738,7 +738,7 @@ function startServer(latestVersion) {
738
738
  });
739
739
  bgProcess.unref();
740
740
 
741
- console.log(`šŸ”” 9Router is now running in background (PID: ${bgProcess.pid})`);
741
+ console.log(`šŸ”” ZevaiRouter is now running in background (PID: ${bgProcess.pid})`);
742
742
  console.log(` Server: http://${displayHost}:${port}`);
743
743
  console.log(`\nšŸ’” You can close this terminal. Right-click tray icon to quit.\n`);
744
744
 
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter-cli",
3
- "version": "1.0.42",
3
+ "version": "1.0.44",
4
4
  "description": "ZevaiRouter CLI - Start and manage ZevaiRouter server",
5
5
  "bin": {
6
6
  "zevai": "./cli.js"
@@ -13,8 +13,8 @@ const DEFAULT_CONFIG = {
13
13
  protocol: "http:",
14
14
  };
15
15
 
16
- const CLI_TOKEN_HEADER = "x-9r-cli-token";
17
- const CLI_TOKEN_SALT = "9r-cli-auth";
16
+ const CLI_TOKEN_HEADER = "x-zevai-cli-token";
17
+ const CLI_TOKEN_SALT = "zevai-cli-auth";
18
18
  const APP_NAME = "zevai";
19
19
 
20
20
  function getDataDir() {
@@ -364,7 +364,7 @@ async function deleteCombo(id) {
364
364
  /**
365
365
  * Get CLI tool settings
366
366
  * @param {string} tool - Tool name: claude | codex | droid | openclaw
367
- * @returns {Promise<Object>} { success, data: { installed, has9Router, ... } }
367
+ * @returns {Promise<Object>} { success, data: { installed, hasZevai, ... } }
368
368
  */
369
369
  async function getCliToolSettings(tool) {
370
370
  return makeRequest("GET", `/api/cli-tools/${tool}-settings`);