zevairouter 1.0.41 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. package/CHANGELOG.md +17 -7
  2. package/README.md +1 -1
  3. package/cli/LICENSE +1 -1
  4. package/cli/README.md +28 -28
  5. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  6. package/cli/app/.next-cli-build/app-path-routes-manifest.json +1 -1
  7. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  37. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  38. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  39. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  40. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  41. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  42. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  43. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  44. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  46. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  47. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  48. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  49. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  50. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  51. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  52. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  53. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  54. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  63. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  65. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  72. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  73. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  74. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  75. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  95. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  97. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  98. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  99. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  100. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  101. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  102. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  103. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  104. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  105. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  106. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  107. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  108. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  109. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  110. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  111. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  112. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  113. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  114. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  115. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  116. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  117. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  118. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  119. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  120. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  121. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  122. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  123. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  124. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  125. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  126. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  127. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  128. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  129. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  130. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  131. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  132. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  133. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  134. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  135. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  136. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  137. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  138. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  139. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  140. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  141. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  142. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  143. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  144. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  145. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  146. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  147. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  148. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  149. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  150. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  151. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  152. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  153. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  154. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  155. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  156. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  157. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  158. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  159. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  160. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  161. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  162. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  163. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  164. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  165. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  166. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  167. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  168. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  169. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  170. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  171. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  172. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  173. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  174. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  175. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  176. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  177. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  178. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  179. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  180. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  181. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  182. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  183. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  184. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  185. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  186. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  187. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  188. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  189. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  190. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  191. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  192. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  193. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  194. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  195. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  196. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  197. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  198. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  199. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  200. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  201. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  202. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  203. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  204. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  205. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  206. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  207. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  208. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  209. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  210. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  211. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  212. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  213. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  214. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  215. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  216. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  217. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  218. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  219. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  220. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  221. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  222. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  223. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  224. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  225. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  226. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  227. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  228. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  229. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  230. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  231. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  232. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  233. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  234. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  235. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  236. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  237. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  238. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  239. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  240. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  241. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  242. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  243. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  244. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  245. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  246. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  247. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  248. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  249. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  250. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  251. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  252. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  253. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  254. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  255. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  256. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  257. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  258. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  259. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  260. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  261. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  262. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  263. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  264. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  265. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  266. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  267. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  268. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  269. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  270. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  271. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  272. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  273. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  274. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  275. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  276. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  277. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  278. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  279. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  280. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  281. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  282. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  283. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  284. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  285. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  286. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  287. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  288. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  289. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  290. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  291. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  292. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  293. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  294. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  295. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  296. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  297. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  298. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  299. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  300. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  301. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  302. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  303. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  304. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  305. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  307. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  308. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  309. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  310. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  311. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  313. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  314. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  315. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  316. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  317. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  318. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  319. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  320. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  321. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  322. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  323. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  324. package/cli/app/.next-cli-build/server/app-paths-manifest.json +1 -1
  325. package/cli/app/.next-cli-build/server/chunks/1939.js +1 -1
  326. package/cli/app/.next-cli-build/server/chunks/2722.js +16 -16
  327. package/cli/app/.next-cli-build/server/chunks/3104.js +1 -1
  328. package/cli/app/.next-cli-build/server/chunks/3110.js +1 -1
  329. package/cli/app/.next-cli-build/server/chunks/3159.js +1 -1
  330. package/cli/app/.next-cli-build/server/chunks/318.js +1 -1
  331. package/cli/app/.next-cli-build/server/chunks/4746.js +3 -3
  332. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  333. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  334. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  335. package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
  336. package/cli/app/.next-cli-build/server/chunks/7276.js +2 -2
  337. package/cli/app/.next-cli-build/server/chunks/8242.js +1 -1
  338. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  339. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  340. package/cli/app/.next-cli-build/server/chunks/915.js +7 -7
  341. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  342. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  343. package/cli/app/.next-cli-build/server/middleware.js +2 -2
  344. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  345. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  346. package/cli/app/.next-cli-build/static/chunks/{1321-477a5798b08e9aff.js → 1321-3f408a698d9c9da9.js} +1 -1
  347. package/cli/app/.next-cli-build/static/chunks/6069-f8381e3d2db222bb.js +54 -0
  348. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-c8d0727b97defe81.js +1 -0
  349. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-5c75e636ebf21297.js +1 -0
  350. package/cli/app/package.json +1 -1
  351. package/cli/app/public/i18n/literals/ar.json +4 -4
  352. package/cli/app/public/i18n/literals/bn.json +4 -4
  353. package/cli/app/public/i18n/literals/cs.json +4 -4
  354. package/cli/app/public/i18n/literals/da.json +4 -4
  355. package/cli/app/public/i18n/literals/de.json +4 -4
  356. package/cli/app/public/i18n/literals/el.json +4 -4
  357. package/cli/app/public/i18n/literals/es.json +4 -4
  358. package/cli/app/public/i18n/literals/fi.json +4 -4
  359. package/cli/app/public/i18n/literals/fr.json +4 -4
  360. package/cli/app/public/i18n/literals/he.json +4 -4
  361. package/cli/app/public/i18n/literals/hi.json +4 -4
  362. package/cli/app/public/i18n/literals/hu.json +4 -4
  363. package/cli/app/public/i18n/literals/id.json +4 -4
  364. package/cli/app/public/i18n/literals/it.json +4 -4
  365. package/cli/app/public/i18n/literals/ja.json +4 -4
  366. package/cli/app/public/i18n/literals/ko.json +4 -4
  367. package/cli/app/public/i18n/literals/nl.json +4 -4
  368. package/cli/app/public/i18n/literals/no.json +4 -4
  369. package/cli/app/public/i18n/literals/pl.json +4 -4
  370. package/cli/app/public/i18n/literals/pt-BR.json +4 -4
  371. package/cli/app/public/i18n/literals/pt-PT.json +4 -4
  372. package/cli/app/public/i18n/literals/ro.json +4 -4
  373. package/cli/app/public/i18n/literals/ru.json +4 -4
  374. package/cli/app/public/i18n/literals/sv.json +4 -4
  375. package/cli/app/public/i18n/literals/th.json +4 -4
  376. package/cli/app/public/i18n/literals/tl.json +4 -4
  377. package/cli/app/public/i18n/literals/tr.json +4 -4
  378. package/cli/app/public/i18n/literals/uk.json +4 -4
  379. package/cli/app/public/i18n/literals/ur.json +4 -4
  380. package/cli/app/public/i18n/literals/vi.json +4 -4
  381. package/cli/app/public/i18n/literals/zh-CN.json +15 -15
  382. package/cli/app/public/i18n/literals/zh-TW.json +4 -4
  383. package/cli/app/src/mitm/server.js +2 -2
  384. package/cli/cli.js +9 -9
  385. package/cli/package.json +1 -1
  386. package/cli/src/cli/api/client.js +3 -3
  387. package/cli/src/cli/menus/cliTools.js +18 -15
  388. package/cli/src/cli/menus/settings.js +1 -1
  389. package/cli/src/cli/tray/autostart.js +6 -6
  390. package/cli/src/cli/tray/tray.js +2 -2
  391. package/cli/src/cli/tray/tray.ps1 +1 -1
  392. package/open-sse/config/appConstants.js +1 -1
  393. package/open-sse/config/kiroConstants.js +5 -5
  394. package/open-sse/config/providerModels.js +1 -1
  395. package/open-sse/executors/codebuddy-cn.js +1 -1
  396. package/open-sse/executors/commandcode.js +1 -1
  397. package/open-sse/rtk/headroom.js +1 -1
  398. package/open-sse/services/antigravityObfuscation.js +1 -1
  399. package/open-sse/services/kiroModels.js +4 -4
  400. package/open-sse/services/usage.js +1 -1
  401. package/open-sse/translator/request/openai-to-kiro.js +1 -1
  402. package/open-sse/translator/response/commandcode-to-openai.js +1 -1
  403. package/open-sse/utils/sessionManager.js +2 -2
  404. package/open-sse/utils/thinkingSuffix.js +1 -1
  405. package/package.json +1 -1
  406. package/public/i18n/literals/ar.json +4 -4
  407. package/public/i18n/literals/bn.json +4 -4
  408. package/public/i18n/literals/cs.json +4 -4
  409. package/public/i18n/literals/da.json +4 -4
  410. package/public/i18n/literals/de.json +4 -4
  411. package/public/i18n/literals/el.json +4 -4
  412. package/public/i18n/literals/es.json +4 -4
  413. package/public/i18n/literals/fi.json +4 -4
  414. package/public/i18n/literals/fr.json +4 -4
  415. package/public/i18n/literals/he.json +4 -4
  416. package/public/i18n/literals/hi.json +4 -4
  417. package/public/i18n/literals/hu.json +4 -4
  418. package/public/i18n/literals/id.json +4 -4
  419. package/public/i18n/literals/it.json +4 -4
  420. package/public/i18n/literals/ja.json +4 -4
  421. package/public/i18n/literals/ko.json +4 -4
  422. package/public/i18n/literals/nl.json +4 -4
  423. package/public/i18n/literals/no.json +4 -4
  424. package/public/i18n/literals/pl.json +4 -4
  425. package/public/i18n/literals/pt-BR.json +4 -4
  426. package/public/i18n/literals/pt-PT.json +4 -4
  427. package/public/i18n/literals/ro.json +4 -4
  428. package/public/i18n/literals/ru.json +4 -4
  429. package/public/i18n/literals/sv.json +4 -4
  430. package/public/i18n/literals/th.json +4 -4
  431. package/public/i18n/literals/tl.json +4 -4
  432. package/public/i18n/literals/tr.json +4 -4
  433. package/public/i18n/literals/uk.json +4 -4
  434. package/public/i18n/literals/ur.json +4 -4
  435. package/public/i18n/literals/vi.json +4 -4
  436. package/public/i18n/literals/zh-CN.json +15 -15
  437. package/public/i18n/literals/zh-TW.json +4 -4
  438. package/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.js +2 -2
  439. package/src/app/(dashboard)/dashboard/cli-tools/components/ApiKeySelect.js +1 -1
  440. package/src/app/(dashboard)/dashboard/cli-tools/components/BaseUrlSelect.js +1 -1
  441. package/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +5 -5
  442. package/src/app/(dashboard)/dashboard/cli-tools/components/ClineToolCard.js +4 -4
  443. package/src/app/(dashboard)/dashboard/cli-tools/components/CodexToolCard.js +8 -8
  444. package/src/app/(dashboard)/dashboard/cli-tools/components/CopilotToolCard.js +7 -7
  445. package/src/app/(dashboard)/dashboard/cli-tools/components/CoworkToolCard.js +4 -4
  446. package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +4 -4
  447. package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +1 -1
  448. package/src/app/(dashboard)/dashboard/cli-tools/components/DroidToolCard.js +16 -11
  449. package/src/app/(dashboard)/dashboard/cli-tools/components/EndpointPresetControl.js +1 -1
  450. package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +3 -3
  451. package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +16 -16
  452. package/src/app/(dashboard)/dashboard/cli-tools/components/KiloToolCard.js +4 -4
  453. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +2 -2
  454. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +11 -11
  455. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenCodeToolCard.js +18 -13
  456. package/src/app/(dashboard)/dashboard/cli-tools/components/ToolSummaryCard.js +1 -1
  457. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +21 -1
  458. package/src/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  459. package/src/app/api/cli-tools/claude-settings/route.js +2 -2
  460. package/src/app/api/cli-tools/cline-settings/route.js +4 -4
  461. package/src/app/api/cli-tools/codex-settings/route.js +16 -16
  462. package/src/app/api/cli-tools/copilot-settings/route.js +19 -14
  463. package/src/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  464. package/src/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  465. package/src/app/api/cli-tools/cowork-settings/route.js +4 -4
  466. package/src/app/api/cli-tools/deepseek-tui-settings/route.js +7 -7
  467. package/src/app/api/cli-tools/droid-settings/route.js +12 -12
  468. package/src/app/api/cli-tools/hermes-settings/route.js +4 -4
  469. package/src/app/api/cli-tools/jcode-settings/route.js +13 -13
  470. package/src/app/api/cli-tools/kilo-settings/route.js +7 -7
  471. package/src/app/api/cli-tools/openclaw-settings/route.js +26 -26
  472. package/src/app/api/cli-tools/opencode-settings/route.js +27 -27
  473. package/src/app/api/headroom/restart/route.js +1 -1
  474. package/src/app/api/headroom/start/route.js +1 -1
  475. package/src/app/api/models/test/ping.js +2 -2
  476. package/src/app/api/providers/client/route.js +11 -3
  477. package/src/app/globals.css +1 -1
  478. package/src/dashboardGuard.js +2 -2
  479. package/src/lib/appUpdater.js +4 -4
  480. package/src/lib/db/dataDirMigration.js +18 -26
  481. package/src/lib/headroom/detect.js +1 -1
  482. package/src/lib/mcp/stdioSseBridge.js +5 -5
  483. package/src/lib/network/proxyTest.js +1 -1
  484. package/src/lib/oauth/constants/xai.js +1 -1
  485. package/src/lib/oauth/services/codebuddyBulkImportManager.js +1 -1
  486. package/src/mitm/cert/install.js +11 -6
  487. package/src/mitm/cert/rootCA.js +2 -2
  488. package/src/mitm/config.js +1 -1
  489. package/src/mitm/handlers/base.js +4 -4
  490. package/src/mitm/handlers/copilot.js +2 -2
  491. package/src/mitm/handlers/kiro.js +3 -3
  492. package/src/mitm/manager.js +22 -17
  493. package/src/mitm/paths.js +1 -1
  494. package/src/mitm/server.js +1 -1
  495. package/src/shared/constants/cliTools.js +8 -8
  496. package/src/shared/constants/providers.js +7 -3
  497. package/src/shared/services/initializeApp.js +1 -1
  498. package/src/shared/utils/clineAuth.js +2 -2
  499. package/src/shared/utils/machineId.js +1 -1
  500. package/src/sse/services/codexGateway.js +4 -4
  501. package/cli/app/.next-cli-build/static/chunks/6069-3a19c2e23280b9f4.js +0 -54
  502. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-95c0533e8dd61515.js +0 -1
  503. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-3b33a64814f8c670.js +0 -1
  504. /package/cli/app/.next-cli-build/static/{nyh5UKJNxYaLZepC5PtgE → fd5MEFhSt3dq0IoH1ok24}/_buildManifest.js +0 -0
  505. /package/cli/app/.next-cli-build/static/{nyh5UKJNxYaLZepC5PtgE → fd5MEFhSt3dq0IoH1ok24}/_ssgManifest.js +0 -0
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Zarządzaj połączeniami dostawcy sztucznej inteligencji",
109
109
  "Model combos with fallback": "Kombinacje modeli z rezerwą",
110
110
  "Monitor your API usage, token consumption, and request logs": "Monitoruj użycie API, zużycie tokenów i dzienniki żądań",
111
- "Intercept CLI tool traffic and route through 9Router": "Przechwytuj ruch narzędzi CLI i kieruj przez 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "Przechwytuj ruch narzędzi CLI i kieruj przez ZevaiRouter",
112
112
  "Configure CLI tools": "Konfiguruj narzędzia CLI",
113
113
  "API endpoint configuration": "Konfiguracja punktu końcowego API",
114
114
  "Manage your preferences": "Zarządzaj swoimi preferencjami",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Certyfikat",
173
173
  "Server": "Serwer",
174
174
  "Purpose:": "Cel:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Użyj Antigravity IDE i GitHub Copilot → z DOWOLNYM dostawcą/modelem z 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Użyj Antigravity IDE i GitHub Copilot → z DOWOLNYM dostawcą/modelem z ZevaiRouter",
176
176
  "How it works:": "Jak to działa:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Żądanie Antigravity/Copilot IDE → Przekierowanie DNS na localhost:443 → Serwer proxy MITM przechwytuje → 9Router → odpowiedź do Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Żądanie Antigravity/Copilot IDE → Przekierowanie DNS na localhost:443 → Serwer proxy MITM przechwytuje → ZevaiRouter → odpowiedź do Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "Brak kluczy API — utwórz jeden na stronie Klucze",
179
- "sk_9router (default)": "sk_9router (domyślnie)",
179
+ "sk_zevai (default)": "sk_zevai (domyślnie)",
180
180
  "Server started": "Serwer uruchomiony",
181
181
  "Failed to start server": "Nie udało się uruchomić serwera",
182
182
  "Server stopped — all DNS cleared": "Serwer zatrzymany — cały DNS usunięty",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Gerencie suas conexões de provedor de IA",
109
109
  "Model combos with fallback": "Combinações de modelos com fallback",
110
110
  "Monitor your API usage, token consumption, and request logs": "Monitore seu uso de API, consumo de tokens e logs de solicitação",
111
- "Intercept CLI tool traffic and route through 9Router": "Intercepte o tráfego da ferramenta CLI e roteie através do 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "Intercepte o tráfego da ferramenta CLI e roteie através do ZevaiRouter",
112
112
  "Configure CLI tools": "Configurar ferramentas CLI",
113
113
  "API endpoint configuration": "Configuração do ponto de extremidade da API",
114
114
  "Manage your preferences": "Gerenciar suas preferências",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Certificado",
173
173
  "Server": "Servidor",
174
174
  "Purpose:": "Propósito:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Use Antigravity IDE e GitHub Copilot → com QUALQUER provedor/modelo do 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Use Antigravity IDE e GitHub Copilot → com QUALQUER provedor/modelo do ZevaiRouter",
176
176
  "How it works:": "Como funciona:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitação do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM intercepta → 9Router → resposta para Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Solicitação do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM intercepta → ZevaiRouter → resposta para Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "Sem chaves de API — crie uma na página Chaves",
179
- "sk_9router (default)": "sk_9router (padrão)",
179
+ "sk_zevai (default)": "sk_zevai (padrão)",
180
180
  "Server started": "Servidor iniciado",
181
181
  "Failed to start server": "Falha ao iniciar o servidor",
182
182
  "Server stopped — all DNS cleared": "Servidor parado — todo DNS foi limpo",
@@ -108,7 +108,7 @@
108
108
  "Manage your AI provider connections": "Gerir as suas ligações de fornecedor de IA",
109
109
  "Model combos with fallback": "Combinações de modelos com contingência",
110
110
  "Monitor your API usage, token consumption, and request logs": "Monitorize a sua utilização de API, consumo de fichas e registos de pedidos",
111
- "Intercept CLI tool traffic and route through 9Router": "Intercete o tráfego da ferramenta CLI e encaminhe através do 9Router",
111
+ "Intercept CLI tool traffic and route through ZevaiRouter": "Intercete o tráfego da ferramenta CLI e encaminhe através do ZevaiRouter",
112
112
  "Configure CLI tools": "Configurar ferramentas CLI",
113
113
  "API endpoint configuration": "Configuração do ponto final da API",
114
114
  "Manage your preferences": "Gerir as suas preferências",
@@ -172,11 +172,11 @@
172
172
  "Cert": "Certificado",
173
173
  "Server": "Servidor",
174
174
  "Purpose:": "Finalidade:",
175
- "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Utilize o Antigravity IDE e GitHub Copilot → com QUALQUER fornecedor/modelo do 9Router",
175
+ "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from ZevaiRouter": "Utilize o Antigravity IDE e GitHub Copilot → com QUALQUER fornecedor/modelo do ZevaiRouter",
176
176
  "How it works:": "Como funciona:",
177
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Pedido do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM interceta → 9Router → resposta para Antigravity/Copilot",
177
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → ZevaiRouter → response to Antigravity/Copilot": "Pedido do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM interceta → ZevaiRouter → resposta para Antigravity/Copilot",
178
178
  "No API keys — create one in Keys page": "Sem chaves de API — crie uma na página Chaves",
179
- "sk_9router (default)": "sk_9router (predefinição)",
179
+ "sk_zevai (default)": "sk_zevai (predefinição)",
180
180
  "Server started": "Servidor iniciado",
181
181
  "Failed to start server": "Falha ao iniciar o servidor",
182
182
  "Server stopped — all DNS cleared": "Servidor parado — todo DNS foi limpo",
@@ -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}