zevairouter 1.0.0

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 (2011) hide show
  1. package/CHANGELOG.md +260 -0
  2. package/LICENSE +21 -0
  3. package/README.md +124 -0
  4. package/README.zh-CN.md +124 -0
  5. package/cli/LICENSE +42 -0
  6. package/cli/README.md +125 -0
  7. package/cli/app/.next-cli-build/BUILD_ID +1 -0
  8. package/cli/app/.next-cli-build/app-path-routes-manifest.json +173 -0
  9. package/cli/app/.next-cli-build/build-manifest.json +20 -0
  10. package/cli/app/.next-cli-build/package.json +1 -0
  11. package/cli/app/.next-cli-build/prerender-manifest.json +594 -0
  12. package/cli/app/.next-cli-build/react-loadable-manifest.json +8 -0
  13. package/cli/app/.next-cli-build/required-server-files.json +381 -0
  14. package/cli/app/.next-cli-build/routes-manifest.json +1161 -0
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -0
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -0
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -0
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -0
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -0
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -0
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +24 -0
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -0
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -0
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -0
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -0
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -0
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -0
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -0
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -0
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -0
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -0
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -0
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -0
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -0
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -0
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +60 -0
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -0
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -0
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -0
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -0
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -0
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +5 -0
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -0
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -0
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -0
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -0
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -0
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -0
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -0
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -0
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -0
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -0
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -0
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -0
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -0
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -0
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -0
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -0
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -0
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -0
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -0
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -0
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -0
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -0
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -0
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +5 -0
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -0
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -0
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -0
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -0
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -0
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -0
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -0
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -0
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -0
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -0
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -0
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -0
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -0
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -0
  81. package/cli/app/.next-cli-build/server/app/_global-error/page.js +32 -0
  82. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -0
  83. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -0
  84. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -0
  85. package/cli/app/.next-cli-build/server/app/_global-error.meta +16 -0
  86. package/cli/app/.next-cli-build/server/app/_global-error.rsc +14 -0
  87. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +14 -0
  88. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  89. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  90. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +5 -0
  91. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +5 -0
  92. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  93. package/cli/app/.next-cli-build/server/app/_not-found/page.js +2 -0
  94. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -0
  95. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -0
  96. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -0
  97. package/cli/app/.next-cli-build/server/app/_not-found.meta +16 -0
  98. package/cli/app/.next-cli-build/server/app/_not-found.rsc +20 -0
  99. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +20 -0
  100. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +6 -0
  101. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +8 -0
  102. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  103. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  104. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +4 -0
  105. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -0
  106. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -0
  107. package/cli/app/.next-cli-build/server/app/api/auth/login/route_client-reference-manifest.js +1 -0
  108. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -0
  109. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -0
  110. package/cli/app/.next-cli-build/server/app/api/auth/logout/route_client-reference-manifest.js +1 -0
  111. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -0
  112. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -0
  113. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -0
  114. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -0
  115. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -0
  116. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -0
  117. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -0
  118. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -0
  119. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -0
  120. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -0
  121. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -0
  122. package/cli/app/.next-cli-build/server/app/api/auth/status/route_client-reference-manifest.js +1 -0
  123. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +17 -0
  124. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -0
  125. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -0
  126. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -0
  127. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -0
  128. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -0
  129. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -0
  130. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -0
  131. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -0
  132. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -0
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -0
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -0
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -0
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -0
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -0
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -0
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -0
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route_client-reference-manifest.js +1 -0
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -0
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -0
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -0
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -0
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -0
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -0
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -0
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -0
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -0
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -0
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -0
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -0
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -0
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -0
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -0
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +9 -0
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -0
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -0
  159. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -0
  160. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -0
  161. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -0
  162. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +10 -0
  163. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -0
  164. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js +1 -0
  165. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -0
  166. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -0
  167. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -0
  168. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -0
  169. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -0
  170. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -0
  171. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -0
  172. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -0
  173. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -0
  174. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -0
  175. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -0
  176. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -0
  177. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -0
  178. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -0
  179. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -0
  180. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -0
  181. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -0
  182. package/cli/app/.next-cli-build/server/app/api/combos/route_client-reference-manifest.js +1 -0
  183. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -0
  184. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -0
  185. package/cli/app/.next-cli-build/server/app/api/health/route_client-reference-manifest.js +1 -0
  186. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -0
  187. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -0
  188. package/cli/app/.next-cli-build/server/app/api/init/route_client-reference-manifest.js +1 -0
  189. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -0
  190. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -0
  191. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -0
  192. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -0
  193. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -0
  194. package/cli/app/.next-cli-build/server/app/api/keys/route_client-reference-manifest.js +1 -0
  195. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -0
  196. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -0
  197. package/cli/app/.next-cli-build/server/app/api/locale/route_client-reference-manifest.js +1 -0
  198. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +7 -0
  199. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -0
  200. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -0
  201. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +7 -0
  202. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -0
  203. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -0
  204. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -0
  205. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -0
  206. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -0
  207. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -0
  208. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -0
  209. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -0
  210. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -0
  211. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -0
  212. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -0
  213. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -0
  214. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -0
  215. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -0
  216. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -0
  217. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -0
  218. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -0
  219. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -0
  220. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -0
  221. package/cli/app/.next-cli-build/server/app/api/models/alias/route_client-reference-manifest.js +1 -0
  222. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -0
  223. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -0
  224. package/cli/app/.next-cli-build/server/app/api/models/availability/route_client-reference-manifest.js +1 -0
  225. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -0
  226. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -0
  227. package/cli/app/.next-cli-build/server/app/api/models/custom/route_client-reference-manifest.js +1 -0
  228. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -0
  229. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -0
  230. package/cli/app/.next-cli-build/server/app/api/models/disabled/route_client-reference-manifest.js +1 -0
  231. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -0
  232. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -0
  233. package/cli/app/.next-cli-build/server/app/api/models/route_client-reference-manifest.js +1 -0
  234. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -0
  235. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -0
  236. package/cli/app/.next-cli-build/server/app/api/models/test/route_client-reference-manifest.js +1 -0
  237. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -0
  238. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -0
  239. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -0
  240. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -0
  241. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -0
  242. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -0
  243. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -0
  244. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -0
  245. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -0
  246. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -0
  247. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -0
  248. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route_client-reference-manifest.js +1 -0
  249. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -0
  250. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -0
  251. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route_client-reference-manifest.js +1 -0
  252. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -0
  253. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -0
  254. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route_client-reference-manifest.js +1 -0
  255. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -0
  256. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -0
  257. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route_client-reference-manifest.js +1 -0
  258. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -0
  259. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -0
  260. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route_client-reference-manifest.js +1 -0
  261. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -0
  262. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -0
  263. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -0
  264. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +4 -0
  265. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -0
  266. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -0
  267. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -0
  268. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -0
  269. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -0
  270. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -0
  271. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -0
  272. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -0
  273. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -0
  274. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -0
  275. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -0
  276. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -0
  277. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -0
  278. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -0
  279. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -0
  280. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -0
  281. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -0
  282. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -0
  283. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -0
  284. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -0
  285. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -0
  286. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -0
  287. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route_client-reference-manifest.js +1 -0
  288. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -0
  289. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -0
  290. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route_client-reference-manifest.js +1 -0
  291. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -0
  292. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -0
  293. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route_client-reference-manifest.js +1 -0
  294. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -0
  295. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -0
  296. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -0
  297. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -0
  298. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -0
  299. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -0
  300. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -0
  301. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -0
  302. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -0
  303. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -0
  304. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -0
  305. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -0
  306. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -0
  307. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -0
  308. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -0
  309. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -0
  310. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -0
  311. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route_client-reference-manifest.js +1 -0
  312. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -0
  313. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -0
  314. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route_client-reference-manifest.js +1 -0
  315. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -0
  316. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -0
  317. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route_client-reference-manifest.js +1 -0
  318. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -0
  319. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -0
  320. package/cli/app/.next-cli-build/server/app/api/pricing/route_client-reference-manifest.js +1 -0
  321. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -0
  322. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -0
  323. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -0
  324. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -0
  325. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -0
  326. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -0
  327. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -0
  328. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -0
  329. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -0
  330. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -0
  331. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -0
  332. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -0
  333. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -0
  334. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -0
  335. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -0
  336. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -0
  337. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -0
  338. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -0
  339. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -0
  340. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -0
  341. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -0
  342. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -0
  343. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -0
  344. package/cli/app/.next-cli-build/server/app/api/providers/client/route_client-reference-manifest.js +1 -0
  345. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -0
  346. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -0
  347. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -0
  348. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -0
  349. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -0
  350. package/cli/app/.next-cli-build/server/app/api/providers/route_client-reference-manifest.js +1 -0
  351. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -0
  352. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -0
  353. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -0
  354. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -0
  355. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -0
  356. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -0
  357. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -0
  358. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -0
  359. package/cli/app/.next-cli-build/server/app/api/providers/validate/route_client-reference-manifest.js +1 -0
  360. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -0
  361. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -0
  362. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -0
  363. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -0
  364. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -0
  365. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -0
  366. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +43 -0
  367. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -0
  368. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -0
  369. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +40 -0
  370. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -0
  371. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -0
  372. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -0
  373. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -0
  374. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -0
  375. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +33 -0
  376. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -0
  377. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -0
  378. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -0
  379. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -0
  380. package/cli/app/.next-cli-build/server/app/api/settings/database/route_client-reference-manifest.js +1 -0
  381. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -0
  382. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -0
  383. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -0
  384. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -0
  385. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -0
  386. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -0
  387. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -0
  388. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -0
  389. package/cli/app/.next-cli-build/server/app/api/settings/route_client-reference-manifest.js +1 -0
  390. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -0
  391. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -0
  392. package/cli/app/.next-cli-build/server/app/api/shutdown/route_client-reference-manifest.js +1 -0
  393. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -0
  394. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -0
  395. package/cli/app/.next-cli-build/server/app/api/tags/route_client-reference-manifest.js +1 -0
  396. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -0
  397. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -0
  398. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -0
  399. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +7 -0
  400. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -0
  401. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -0
  402. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -0
  403. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -0
  404. package/cli/app/.next-cli-build/server/app/api/translator/load/route_client-reference-manifest.js +1 -0
  405. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -0
  406. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -0
  407. package/cli/app/.next-cli-build/server/app/api/translator/save/route_client-reference-manifest.js +1 -0
  408. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -0
  409. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -0
  410. package/cli/app/.next-cli-build/server/app/api/translator/send/route_client-reference-manifest.js +1 -0
  411. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -0
  412. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -0
  413. package/cli/app/.next-cli-build/server/app/api/translator/translate/route_client-reference-manifest.js +1 -0
  414. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -0
  415. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -0
  416. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -0
  417. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -0
  418. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -0
  419. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -0
  420. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -0
  421. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -0
  422. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -0
  423. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -0
  424. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -0
  425. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -0
  426. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -0
  427. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -0
  428. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -0
  429. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -0
  430. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -0
  431. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -0
  432. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +5 -0
  433. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -0
  434. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -0
  435. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -0
  436. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -0
  437. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -0
  438. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -0
  439. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -0
  440. package/cli/app/.next-cli-build/server/app/api/usage/chart/route_client-reference-manifest.js +1 -0
  441. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -0
  442. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -0
  443. package/cli/app/.next-cli-build/server/app/api/usage/history/route_client-reference-manifest.js +1 -0
  444. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -0
  445. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -0
  446. package/cli/app/.next-cli-build/server/app/api/usage/providers/route_client-reference-manifest.js +1 -0
  447. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -0
  448. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -0
  449. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -0
  450. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -0
  451. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -0
  452. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -0
  453. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -0
  454. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -0
  455. package/cli/app/.next-cli-build/server/app/api/usage/stats/route_client-reference-manifest.js +1 -0
  456. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +7 -0
  457. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -0
  458. package/cli/app/.next-cli-build/server/app/api/usage/stream/route_client-reference-manifest.js +1 -0
  459. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -0
  460. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -0
  461. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -0
  462. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -0
  463. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -0
  464. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -0
  465. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -0
  466. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -0
  467. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -0
  468. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -0
  469. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -0
  470. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -0
  471. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -0
  472. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -0
  473. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -0
  474. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -0
  475. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -0
  476. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -0
  477. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +4 -0
  478. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -0
  479. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -0
  480. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -0
  481. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -0
  482. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -0
  483. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -0
  484. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -0
  485. package/cli/app/.next-cli-build/server/app/api/v1/messages/route_client-reference-manifest.js +1 -0
  486. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -0
  487. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -0
  488. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +1 -0
  489. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -0
  490. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -0
  491. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -0
  492. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -0
  493. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -0
  494. package/cli/app/.next-cli-build/server/app/api/v1/models/route_client-reference-manifest.js +1 -0
  495. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -0
  496. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -0
  497. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -0
  498. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -0
  499. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -0
  500. package/cli/app/.next-cli-build/server/app/api/v1/responses/route_client-reference-manifest.js +1 -0
  501. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -0
  502. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -0
  503. package/cli/app/.next-cli-build/server/app/api/v1/route_client-reference-manifest.js +1 -0
  504. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -0
  505. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -0
  506. package/cli/app/.next-cli-build/server/app/api/v1/search/route_client-reference-manifest.js +1 -0
  507. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -0
  508. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -0
  509. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -0
  510. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -0
  511. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -0
  512. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -0
  513. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -0
  514. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -0
  515. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -0
  516. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -0
  517. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -0
  518. package/cli/app/.next-cli-build/server/app/api/version/route_client-reference-manifest.js +1 -0
  519. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -0
  520. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -0
  521. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -0
  522. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -0
  523. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -0
  524. package/cli/app/.next-cli-build/server/app/api/version/update/route_client-reference-manifest.js +1 -0
  525. package/cli/app/.next-cli-build/server/app/callback/page.js +2 -0
  526. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -0
  527. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -0
  528. package/cli/app/.next-cli-build/server/app/callback.html +1 -0
  529. package/cli/app/.next-cli-build/server/app/callback.meta +15 -0
  530. package/cli/app/.next-cli-build/server/app/callback.rsc +24 -0
  531. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +24 -0
  532. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +6 -0
  533. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +8 -0
  534. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +4 -0
  535. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +9 -0
  536. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +5 -0
  537. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -0
  538. package/cli/app/.next-cli-build/server/app/dashboard/automation.meta +17 -0
  539. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +26 -0
  540. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +9 -0
  541. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +5 -0
  542. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  543. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  544. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +26 -0
  545. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +6 -0
  546. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +8 -0
  547. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +5 -0
  548. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -0
  549. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.meta +17 -0
  550. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +23 -0
  551. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +6 -0
  552. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +5 -0
  553. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  554. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  555. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +23 -0
  556. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +6 -0
  557. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +8 -0
  558. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +5 -0
  559. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -0
  560. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.meta +17 -0
  561. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +24 -0
  562. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -0
  563. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +5 -0
  564. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  565. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  566. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +24 -0
  567. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +6 -0
  568. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +8 -0
  569. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +5 -0
  570. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -0
  571. package/cli/app/.next-cli-build/server/app/dashboard/combos.meta +17 -0
  572. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +26 -0
  573. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +9 -0
  574. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +5 -0
  575. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  576. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  577. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +26 -0
  578. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +6 -0
  579. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +8 -0
  580. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +5 -0
  581. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -0
  582. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.meta +17 -0
  583. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +24 -0
  584. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +6 -0
  585. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +5 -0
  586. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  587. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  588. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +24 -0
  589. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +6 -0
  590. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +8 -0
  591. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +5 -0
  592. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -0
  593. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.meta +18 -0
  594. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +26 -0
  595. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +9 -0
  596. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +5 -0
  597. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +5 -0
  598. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  599. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  600. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +26 -0
  601. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +6 -0
  602. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +8 -0
  603. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +5 -0
  604. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -0
  605. package/cli/app/.next-cli-build/server/app/dashboard/mitm.meta +17 -0
  606. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +23 -0
  607. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +6 -0
  608. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +5 -0
  609. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  610. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  611. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +23 -0
  612. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +6 -0
  613. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +8 -0
  614. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +5 -0
  615. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -0
  616. package/cli/app/.next-cli-build/server/app/dashboard/profile.meta +17 -0
  617. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +26 -0
  618. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +9 -0
  619. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +5 -0
  620. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  621. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  622. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +26 -0
  623. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +6 -0
  624. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +8 -0
  625. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +5 -0
  626. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -0
  627. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.meta +18 -0
  628. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +26 -0
  629. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +9 -0
  630. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +5 -0
  631. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +5 -0
  632. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  633. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  634. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +26 -0
  635. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +6 -0
  636. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +8 -0
  637. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +5 -0
  638. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -0
  639. package/cli/app/.next-cli-build/server/app/dashboard/providers.meta +17 -0
  640. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +26 -0
  641. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +9 -0
  642. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +5 -0
  643. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  644. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  645. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +26 -0
  646. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +6 -0
  647. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +8 -0
  648. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +5 -0
  649. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -0
  650. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.meta +17 -0
  651. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +26 -0
  652. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +9 -0
  653. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +5 -0
  654. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  655. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  656. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +26 -0
  657. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +6 -0
  658. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +8 -0
  659. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +5 -0
  660. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -0
  661. package/cli/app/.next-cli-build/server/app/dashboard/quota.meta +17 -0
  662. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +24 -0
  663. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +7 -0
  664. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +5 -0
  665. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  666. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  667. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +24 -0
  668. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +6 -0
  669. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +8 -0
  670. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +5 -0
  671. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -0
  672. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -0
  673. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -0
  674. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -0
  675. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.meta +17 -0
  676. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +24 -0
  677. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +24 -0
  678. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +6 -0
  679. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +8 -0
  680. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +4 -0
  681. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +9 -0
  682. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +5 -0
  683. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +5 -0
  684. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +5 -0
  685. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -0
  686. package/cli/app/.next-cli-build/server/app/dashboard/skills.meta +17 -0
  687. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +26 -0
  688. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +9 -0
  689. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +5 -0
  690. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  691. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  692. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +26 -0
  693. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +6 -0
  694. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +8 -0
  695. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +5 -0
  696. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -0
  697. package/cli/app/.next-cli-build/server/app/dashboard/translator.meta +17 -0
  698. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +26 -0
  699. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +9 -0
  700. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +5 -0
  701. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  702. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  703. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +26 -0
  704. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +6 -0
  705. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +8 -0
  706. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +5 -0
  707. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -0
  708. package/cli/app/.next-cli-build/server/app/dashboard/usage.meta +17 -0
  709. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +26 -0
  710. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +9 -0
  711. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +5 -0
  712. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  713. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  714. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +26 -0
  715. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +6 -0
  716. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +8 -0
  717. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +5 -0
  718. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -0
  719. package/cli/app/.next-cli-build/server/app/dashboard.meta +16 -0
  720. package/cli/app/.next-cli-build/server/app/dashboard.rsc +24 -0
  721. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +6 -0
  722. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  723. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  724. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +24 -0
  725. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +6 -0
  726. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +8 -0
  727. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +5 -0
  728. package/cli/app/.next-cli-build/server/app/index.html +1 -0
  729. package/cli/app/.next-cli-build/server/app/index.meta +16 -0
  730. package/cli/app/.next-cli-build/server/app/index.rsc +19 -0
  731. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -0
  732. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +19 -0
  733. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +6 -0
  734. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +8 -0
  735. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +4 -0
  736. package/cli/app/.next-cli-build/server/app/landing/page.js +2 -0
  737. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -0
  738. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -0
  739. package/cli/app/.next-cli-build/server/app/landing.html +1 -0
  740. package/cli/app/.next-cli-build/server/app/landing.meta +15 -0
  741. package/cli/app/.next-cli-build/server/app/landing.rsc +24 -0
  742. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +24 -0
  743. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +6 -0
  744. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +8 -0
  745. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +4 -0
  746. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +9 -0
  747. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +5 -0
  748. package/cli/app/.next-cli-build/server/app/login/page.js +2 -0
  749. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -0
  750. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -0
  751. package/cli/app/.next-cli-build/server/app/login.html +1 -0
  752. package/cli/app/.next-cli-build/server/app/login.meta +15 -0
  753. package/cli/app/.next-cli-build/server/app/login.rsc +25 -0
  754. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +25 -0
  755. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +6 -0
  756. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +8 -0
  757. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +5 -0
  758. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +10 -0
  759. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +5 -0
  760. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +16 -0
  761. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -0
  762. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -0
  763. package/cli/app/.next-cli-build/server/app/manifest.webmanifest.body +1 -0
  764. package/cli/app/.next-cli-build/server/app/manifest.webmanifest.meta +1 -0
  765. package/cli/app/.next-cli-build/server/app/page.js +2 -0
  766. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -0
  767. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -0
  768. package/cli/app/.next-cli-build/server/app-paths-manifest.json +173 -0
  769. package/cli/app/.next-cli-build/server/chunks/1051.js +1 -0
  770. package/cli/app/.next-cli-build/server/chunks/1260.js +1 -0
  771. package/cli/app/.next-cli-build/server/chunks/1322.js +1 -0
  772. package/cli/app/.next-cli-build/server/chunks/1517.js +1 -0
  773. package/cli/app/.next-cli-build/server/chunks/1531.js +1 -0
  774. package/cli/app/.next-cli-build/server/chunks/1813.js +1 -0
  775. package/cli/app/.next-cli-build/server/chunks/1998.js +1 -0
  776. package/cli/app/.next-cli-build/server/chunks/2030.js +8 -0
  777. package/cli/app/.next-cli-build/server/chunks/2409.js +1 -0
  778. package/cli/app/.next-cli-build/server/chunks/241.js +1 -0
  779. package/cli/app/.next-cli-build/server/chunks/2558.js +1 -0
  780. package/cli/app/.next-cli-build/server/chunks/2722.js +54 -0
  781. package/cli/app/.next-cli-build/server/chunks/3104.js +43 -0
  782. package/cli/app/.next-cli-build/server/chunks/3110.js +69 -0
  783. package/cli/app/.next-cli-build/server/chunks/318.js +190 -0
  784. package/cli/app/.next-cli-build/server/chunks/319.js +45 -0
  785. package/cli/app/.next-cli-build/server/chunks/3593.js +9 -0
  786. package/cli/app/.next-cli-build/server/chunks/4013.js +1 -0
  787. package/cli/app/.next-cli-build/server/chunks/4055.js +9 -0
  788. package/cli/app/.next-cli-build/server/chunks/412.js +7 -0
  789. package/cli/app/.next-cli-build/server/chunks/4136.js +1 -0
  790. package/cli/app/.next-cli-build/server/chunks/4177.js +1 -0
  791. package/cli/app/.next-cli-build/server/chunks/42.js +1 -0
  792. package/cli/app/.next-cli-build/server/chunks/4229.js +1 -0
  793. package/cli/app/.next-cli-build/server/chunks/4404.js +1 -0
  794. package/cli/app/.next-cli-build/server/chunks/4491.js +1 -0
  795. package/cli/app/.next-cli-build/server/chunks/4632.js +1 -0
  796. package/cli/app/.next-cli-build/server/chunks/4739.js +9 -0
  797. package/cli/app/.next-cli-build/server/chunks/4741.js +18 -0
  798. package/cli/app/.next-cli-build/server/chunks/4746.js +7 -0
  799. package/cli/app/.next-cli-build/server/chunks/4780.js +9 -0
  800. package/cli/app/.next-cli-build/server/chunks/4884.js +13 -0
  801. package/cli/app/.next-cli-build/server/chunks/5000.js +6 -0
  802. package/cli/app/.next-cli-build/server/chunks/507.js +9 -0
  803. package/cli/app/.next-cli-build/server/chunks/5217.js +9 -0
  804. package/cli/app/.next-cli-build/server/chunks/5258.js +9 -0
  805. package/cli/app/.next-cli-build/server/chunks/5433.js +1 -0
  806. package/cli/app/.next-cli-build/server/chunks/5573.js +1 -0
  807. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -0
  808. package/cli/app/.next-cli-build/server/chunks/5949.js +1 -0
  809. package/cli/app/.next-cli-build/server/chunks/595.js +1 -0
  810. package/cli/app/.next-cli-build/server/chunks/6036.js +1 -0
  811. package/cli/app/.next-cli-build/server/chunks/6064.js +1 -0
  812. package/cli/app/.next-cli-build/server/chunks/6108.js +1 -0
  813. package/cli/app/.next-cli-build/server/chunks/6457.js +4 -0
  814. package/cli/app/.next-cli-build/server/chunks/6505.js +1 -0
  815. package/cli/app/.next-cli-build/server/chunks/6844.js +1 -0
  816. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -0
  817. package/cli/app/.next-cli-build/server/chunks/6935.js +1 -0
  818. package/cli/app/.next-cli-build/server/chunks/698.js +9 -0
  819. package/cli/app/.next-cli-build/server/chunks/7153.js +1 -0
  820. package/cli/app/.next-cli-build/server/chunks/7341.js +1 -0
  821. package/cli/app/.next-cli-build/server/chunks/7774.js +121 -0
  822. package/cli/app/.next-cli-build/server/chunks/7828.js +1 -0
  823. package/cli/app/.next-cli-build/server/chunks/7879.js +10 -0
  824. package/cli/app/.next-cli-build/server/chunks/7965.js +9 -0
  825. package/cli/app/.next-cli-build/server/chunks/8242.js +3 -0
  826. package/cli/app/.next-cli-build/server/chunks/8520.js +9 -0
  827. package/cli/app/.next-cli-build/server/chunks/8590.js +1 -0
  828. package/cli/app/.next-cli-build/server/chunks/8895.js +55 -0
  829. package/cli/app/.next-cli-build/server/chunks/891.js +1 -0
  830. package/cli/app/.next-cli-build/server/chunks/8971.js +1 -0
  831. package/cli/app/.next-cli-build/server/chunks/915.js +63 -0
  832. package/cli/app/.next-cli-build/server/chunks/9326.js +1 -0
  833. package/cli/app/.next-cli-build/server/chunks/9476.js +66 -0
  834. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -0
  835. package/cli/app/.next-cli-build/server/chunks/9528.js +32 -0
  836. package/cli/app/.next-cli-build/server/functions-config-manifest.json +19 -0
  837. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -0
  838. package/cli/app/.next-cli-build/server/middleware-manifest.json +6 -0
  839. package/cli/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -0
  840. package/cli/app/.next-cli-build/server/middleware.js +26 -0
  841. package/cli/app/.next-cli-build/server/next-font-manifest.js +1 -0
  842. package/cli/app/.next-cli-build/server/next-font-manifest.json +1 -0
  843. package/cli/app/.next-cli-build/server/pages/404.html +1 -0
  844. package/cli/app/.next-cli-build/server/pages/500.html +1 -0
  845. package/cli/app/.next-cli-build/server/pages-manifest.json +4 -0
  846. package/cli/app/.next-cli-build/server/prefetch-hints.json +1 -0
  847. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -0
  848. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -0
  849. package/cli/app/.next-cli-build/server/webpack-runtime.js +1 -0
  850. package/cli/app/.next-cli-build/static/chTn_bEW8IhYbr1Xfz4Z7/_buildManifest.js +1 -0
  851. package/cli/app/.next-cli-build/static/chTn_bEW8IhYbr1Xfz4Z7/_ssgManifest.js +1 -0
  852. package/cli/app/.next-cli-build/static/chunks/1321-cf52e8b09b3e4eb9.js +1 -0
  853. package/cli/app/.next-cli-build/static/chunks/1a258343-bc0b514c079d8898.js +1 -0
  854. package/cli/app/.next-cli-build/static/chunks/3794-e569667691edc8f7.js +32 -0
  855. package/cli/app/.next-cli-build/static/chunks/4343-ccad00872974a61b.js +66 -0
  856. package/cli/app/.next-cli-build/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
  857. package/cli/app/.next-cli-build/static/chunks/523-f7b3c8d7c81efb19.js +3 -0
  858. package/cli/app/.next-cli-build/static/chunks/5242-bb1a1a7ec3bfb62f.js +1 -0
  859. package/cli/app/.next-cli-build/static/chunks/5497-70fc52280004a89d.js +7 -0
  860. package/cli/app/.next-cli-build/static/chunks/6069-0cd36c573934b38b.js +54 -0
  861. package/cli/app/.next-cli-build/static/chunks/7055-e60e20f43bfbe5f8.js +1 -0
  862. package/cli/app/.next-cli-build/static/chunks/8202.1ffc6ce531e066ce.js +1 -0
  863. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/page-f6d65af164c2bd0d.js +1 -0
  864. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-6ce60f0572ead047.js +1 -0
  865. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-226479ac738b37ff.js +1 -0
  866. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-95c0533e8dd61515.js +1 -0
  867. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-323aadfc160c2878.js +1 -0
  868. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-4ea1e971b8145dc4.js +1 -0
  869. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-aec3b7aaf412c4b7.js +1 -0
  870. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-b9fdd2a9fe053f2f.js +59 -0
  871. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-11695d955cd6efe1.js +1 -0
  872. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-161fa58c2092f120.js +4 -0
  873. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-353c0a06aa99738e.js +1 -0
  874. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-1be9ecb194cb9f76.js +1 -0
  875. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-a643d18e501e18b8.js +1 -0
  876. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-8ebc210239b86dfa.js +1 -0
  877. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-f204758bcc0ed5af.js +3 -0
  878. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-4abf89bfa4f40de4.js +1 -0
  879. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-349d9c103cfcca46.js +1 -0
  880. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-3e0b28bcc4733bda.js +4 -0
  881. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-be4721f0e8d602c8.js +1 -0
  882. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-004e5cddf1ab755d.js +1 -0
  883. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-e9adc48166d1420d.js +1 -0
  884. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-04b511f4715af499.js +1 -0
  885. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-f4b9f25d8f2ee3e3.js +1 -0
  886. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-b749a32da7b50d0e.js +1 -0
  887. package/cli/app/.next-cli-build/static/chunks/app/_not-found/page-499de2bdd91e139f.js +1 -0
  888. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-b749a32da7b50d0e.js +1 -0
  889. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-b749a32da7b50d0e.js +1 -0
  890. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-b749a32da7b50d0e.js +1 -0
  891. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-b749a32da7b50d0e.js +1 -0
  892. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-b749a32da7b50d0e.js +1 -0
  893. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-b749a32da7b50d0e.js +1 -0
  894. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-b749a32da7b50d0e.js +1 -0
  895. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b749a32da7b50d0e.js +1 -0
  896. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-b749a32da7b50d0e.js +1 -0
  897. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-b749a32da7b50d0e.js +1 -0
  898. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-b749a32da7b50d0e.js +1 -0
  899. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-b749a32da7b50d0e.js +1 -0
  900. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-b749a32da7b50d0e.js +1 -0
  901. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-b749a32da7b50d0e.js +1 -0
  902. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-b749a32da7b50d0e.js +1 -0
  903. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-b749a32da7b50d0e.js +1 -0
  904. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-b749a32da7b50d0e.js +1 -0
  905. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-b749a32da7b50d0e.js +1 -0
  906. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-b749a32da7b50d0e.js +1 -0
  907. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-b749a32da7b50d0e.js +1 -0
  908. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-b749a32da7b50d0e.js +1 -0
  909. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-b749a32da7b50d0e.js +1 -0
  910. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-b749a32da7b50d0e.js +1 -0
  911. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-b749a32da7b50d0e.js +1 -0
  912. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-b749a32da7b50d0e.js +1 -0
  913. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-b749a32da7b50d0e.js +1 -0
  914. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-b749a32da7b50d0e.js +1 -0
  915. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-b749a32da7b50d0e.js +1 -0
  916. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-b749a32da7b50d0e.js +1 -0
  917. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-b749a32da7b50d0e.js +1 -0
  918. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-b749a32da7b50d0e.js +1 -0
  919. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-b749a32da7b50d0e.js +1 -0
  920. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-b749a32da7b50d0e.js +1 -0
  921. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-b749a32da7b50d0e.js +1 -0
  922. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-b749a32da7b50d0e.js +1 -0
  923. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-b749a32da7b50d0e.js +1 -0
  924. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-b749a32da7b50d0e.js +1 -0
  925. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-b749a32da7b50d0e.js +1 -0
  926. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-b749a32da7b50d0e.js +1 -0
  927. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-b749a32da7b50d0e.js +1 -0
  928. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-b749a32da7b50d0e.js +1 -0
  929. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-b749a32da7b50d0e.js +1 -0
  930. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-b749a32da7b50d0e.js +1 -0
  931. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-b749a32da7b50d0e.js +1 -0
  932. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-b749a32da7b50d0e.js +1 -0
  933. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-b749a32da7b50d0e.js +1 -0
  934. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-b749a32da7b50d0e.js +1 -0
  935. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-b749a32da7b50d0e.js +1 -0
  936. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-b749a32da7b50d0e.js +1 -0
  937. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-b749a32da7b50d0e.js +1 -0
  938. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-b749a32da7b50d0e.js +1 -0
  939. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-b749a32da7b50d0e.js +1 -0
  940. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-b749a32da7b50d0e.js +1 -0
  941. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-b749a32da7b50d0e.js +1 -0
  942. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-b749a32da7b50d0e.js +1 -0
  943. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-b749a32da7b50d0e.js +1 -0
  944. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-b749a32da7b50d0e.js +1 -0
  945. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-b749a32da7b50d0e.js +1 -0
  946. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-b749a32da7b50d0e.js +1 -0
  947. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-b749a32da7b50d0e.js +1 -0
  948. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-b749a32da7b50d0e.js +1 -0
  949. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-b749a32da7b50d0e.js +1 -0
  950. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-b749a32da7b50d0e.js +1 -0
  951. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-b749a32da7b50d0e.js +1 -0
  952. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-b749a32da7b50d0e.js +1 -0
  953. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-b749a32da7b50d0e.js +1 -0
  954. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-b749a32da7b50d0e.js +1 -0
  955. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-b749a32da7b50d0e.js +1 -0
  956. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-b749a32da7b50d0e.js +1 -0
  957. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-b749a32da7b50d0e.js +1 -0
  958. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-b749a32da7b50d0e.js +1 -0
  959. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-b749a32da7b50d0e.js +1 -0
  960. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-b749a32da7b50d0e.js +1 -0
  961. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-b749a32da7b50d0e.js +1 -0
  962. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-b749a32da7b50d0e.js +1 -0
  963. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-b749a32da7b50d0e.js +1 -0
  964. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-b749a32da7b50d0e.js +1 -0
  965. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-b749a32da7b50d0e.js +1 -0
  966. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-b749a32da7b50d0e.js +1 -0
  967. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-b749a32da7b50d0e.js +1 -0
  968. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-b749a32da7b50d0e.js +1 -0
  969. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-b749a32da7b50d0e.js +1 -0
  970. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-b749a32da7b50d0e.js +1 -0
  971. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-b749a32da7b50d0e.js +1 -0
  972. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-b749a32da7b50d0e.js +1 -0
  973. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-b749a32da7b50d0e.js +1 -0
  974. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-b749a32da7b50d0e.js +1 -0
  975. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-b749a32da7b50d0e.js +1 -0
  976. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-b749a32da7b50d0e.js +1 -0
  977. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-b749a32da7b50d0e.js +1 -0
  978. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-b749a32da7b50d0e.js +1 -0
  979. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-b749a32da7b50d0e.js +1 -0
  980. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-b749a32da7b50d0e.js +1 -0
  981. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-b749a32da7b50d0e.js +1 -0
  982. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-b749a32da7b50d0e.js +1 -0
  983. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-b749a32da7b50d0e.js +1 -0
  984. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-b749a32da7b50d0e.js +1 -0
  985. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-b749a32da7b50d0e.js +1 -0
  986. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-b749a32da7b50d0e.js +1 -0
  987. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-b749a32da7b50d0e.js +1 -0
  988. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-b749a32da7b50d0e.js +1 -0
  989. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-b749a32da7b50d0e.js +1 -0
  990. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-b749a32da7b50d0e.js +1 -0
  991. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-b749a32da7b50d0e.js +1 -0
  992. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-b749a32da7b50d0e.js +1 -0
  993. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-b749a32da7b50d0e.js +1 -0
  994. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-b749a32da7b50d0e.js +1 -0
  995. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-b749a32da7b50d0e.js +1 -0
  996. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-b749a32da7b50d0e.js +1 -0
  997. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-b749a32da7b50d0e.js +1 -0
  998. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-b749a32da7b50d0e.js +1 -0
  999. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-b749a32da7b50d0e.js +1 -0
  1000. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-b749a32da7b50d0e.js +1 -0
  1001. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-b749a32da7b50d0e.js +1 -0
  1002. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-b749a32da7b50d0e.js +1 -0
  1003. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-b749a32da7b50d0e.js +1 -0
  1004. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-b749a32da7b50d0e.js +1 -0
  1005. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-b749a32da7b50d0e.js +1 -0
  1006. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-b749a32da7b50d0e.js +1 -0
  1007. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-b749a32da7b50d0e.js +1 -0
  1008. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-b749a32da7b50d0e.js +1 -0
  1009. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-b749a32da7b50d0e.js +1 -0
  1010. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-b749a32da7b50d0e.js +1 -0
  1011. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-b749a32da7b50d0e.js +1 -0
  1012. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-b749a32da7b50d0e.js +1 -0
  1013. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-b749a32da7b50d0e.js +1 -0
  1014. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-b749a32da7b50d0e.js +1 -0
  1015. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-b749a32da7b50d0e.js +1 -0
  1016. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-b749a32da7b50d0e.js +1 -0
  1017. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-b749a32da7b50d0e.js +1 -0
  1018. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-b749a32da7b50d0e.js +1 -0
  1019. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-b749a32da7b50d0e.js +1 -0
  1020. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-b749a32da7b50d0e.js +1 -0
  1021. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-b749a32da7b50d0e.js +1 -0
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-b749a32da7b50d0e.js +1 -0
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-b749a32da7b50d0e.js +1 -0
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-b749a32da7b50d0e.js +1 -0
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-b749a32da7b50d0e.js +1 -0
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-b749a32da7b50d0e.js +1 -0
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-b749a32da7b50d0e.js +1 -0
  1028. package/cli/app/.next-cli-build/static/chunks/app/callback/page-8cb1045c2ddcdffa.js +1 -0
  1029. package/cli/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-d886f4bea6d1980a.js +1 -0
  1030. package/cli/app/.next-cli-build/static/chunks/app/landing/page-a57b3c6af8b364c9.js +1 -0
  1031. package/cli/app/.next-cli-build/static/chunks/app/layout-8bbe21551973d1d5.js +1 -0
  1032. package/cli/app/.next-cli-build/static/chunks/app/login/page-ba6a269c3140fa69.js +1 -0
  1033. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-b749a32da7b50d0e.js +1 -0
  1034. package/cli/app/.next-cli-build/static/chunks/app/page-b749a32da7b50d0e.js +1 -0
  1035. package/cli/app/.next-cli-build/static/chunks/framework-711ef29bc66f648c.js +1 -0
  1036. package/cli/app/.next-cli-build/static/chunks/main-7070798b89352aeb.js +5 -0
  1037. package/cli/app/.next-cli-build/static/chunks/main-app-5a6578c0256da676.js +1 -0
  1038. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-b749a32da7b50d0e.js +1 -0
  1039. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-b749a32da7b50d0e.js +1 -0
  1040. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/global-error-06f8cd887d9b83e5.js +1 -0
  1041. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-b749a32da7b50d0e.js +1 -0
  1042. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-b749a32da7b50d0e.js +1 -0
  1043. package/cli/app/.next-cli-build/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  1044. package/cli/app/.next-cli-build/static/chunks/webpack-f482ccef6733ebcc.js +1 -0
  1045. package/cli/app/.next-cli-build/static/css/008a05b0ad6b854a.css +31 -0
  1046. package/cli/app/.next-cli-build/static/css/59fa758a67601733.css +1 -0
  1047. package/cli/app/.next-cli-build/static/css/f0a349c70ab9fca8.css +1 -0
  1048. package/cli/app/.next-cli-build/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
  1049. package/cli/app/.next-cli-build/static/media/21350d82a1f187e9-s.woff2 +0 -0
  1050. package/cli/app/.next-cli-build/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  1051. package/cli/app/.next-cli-build/static/media/ba9851c3c22cd980-s.woff2 +0 -0
  1052. package/cli/app/.next-cli-build/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
  1053. package/cli/app/.next-cli-build/static/media/df0a9ae256c0569c-s.woff2 +0 -0
  1054. package/cli/app/.next-cli-build/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  1055. package/cli/app/.next-cli-build/static/media/material-symbols-outlined.cf1f75f5.woff2 +0 -0
  1056. package/cli/app/cli/hooks/camoufoxRuntime.js +169 -0
  1057. package/cli/app/cli/hooks/playwrightRuntime.js +168 -0
  1058. package/cli/app/cli/hooks/postinstall.js +22 -0
  1059. package/cli/app/cli/hooks/sqliteRuntime.js +147 -0
  1060. package/cli/app/cli/hooks/trayRuntime.js +107 -0
  1061. package/cli/app/package.json +106 -0
  1062. package/cli/app/public/favicon.svg +12 -0
  1063. package/cli/app/public/file.svg +1 -0
  1064. package/cli/app/public/globe.svg +1 -0
  1065. package/cli/app/public/i18n/literals/ar.json +195 -0
  1066. package/cli/app/public/i18n/literals/bn.json +195 -0
  1067. package/cli/app/public/i18n/literals/cs.json +195 -0
  1068. package/cli/app/public/i18n/literals/da.json +195 -0
  1069. package/cli/app/public/i18n/literals/de.json +195 -0
  1070. package/cli/app/public/i18n/literals/el.json +195 -0
  1071. package/cli/app/public/i18n/literals/es.json +195 -0
  1072. package/cli/app/public/i18n/literals/fi.json +195 -0
  1073. package/cli/app/public/i18n/literals/fr.json +195 -0
  1074. package/cli/app/public/i18n/literals/he.json +195 -0
  1075. package/cli/app/public/i18n/literals/hi.json +195 -0
  1076. package/cli/app/public/i18n/literals/hu.json +195 -0
  1077. package/cli/app/public/i18n/literals/id.json +195 -0
  1078. package/cli/app/public/i18n/literals/it.json +195 -0
  1079. package/cli/app/public/i18n/literals/ja.json +195 -0
  1080. package/cli/app/public/i18n/literals/ko.json +195 -0
  1081. package/cli/app/public/i18n/literals/nl.json +195 -0
  1082. package/cli/app/public/i18n/literals/no.json +195 -0
  1083. package/cli/app/public/i18n/literals/pl.json +195 -0
  1084. package/cli/app/public/i18n/literals/pt-BR.json +195 -0
  1085. package/cli/app/public/i18n/literals/pt-PT.json +195 -0
  1086. package/cli/app/public/i18n/literals/ro.json +195 -0
  1087. package/cli/app/public/i18n/literals/ru.json +195 -0
  1088. package/cli/app/public/i18n/literals/sv.json +195 -0
  1089. package/cli/app/public/i18n/literals/th.json +195 -0
  1090. package/cli/app/public/i18n/literals/tl.json +195 -0
  1091. package/cli/app/public/i18n/literals/tr.json +195 -0
  1092. package/cli/app/public/i18n/literals/uk.json +195 -0
  1093. package/cli/app/public/i18n/literals/ur.json +195 -0
  1094. package/cli/app/public/i18n/literals/vi.json +195 -0
  1095. package/cli/app/public/i18n/literals/zh-CN.json +772 -0
  1096. package/cli/app/public/i18n/literals/zh-TW.json +195 -0
  1097. package/cli/app/public/icons/discord.svg +4 -0
  1098. package/cli/app/public/icons/icon-192.svg +12 -0
  1099. package/cli/app/public/icons/icon-512.svg +12 -0
  1100. package/cli/app/public/next.svg +1 -0
  1101. package/cli/app/public/providers/alicode-intl.png +0 -0
  1102. package/cli/app/public/providers/alicode.png +0 -0
  1103. package/cli/app/public/providers/amp.png +0 -0
  1104. package/cli/app/public/providers/anthropic-m.png +0 -0
  1105. package/cli/app/public/providers/anthropic.png +0 -0
  1106. package/cli/app/public/providers/antigravity.png +0 -0
  1107. package/cli/app/public/providers/assemblyai.png +0 -0
  1108. package/cli/app/public/providers/aws-polly.png +0 -0
  1109. package/cli/app/public/providers/azure.png +0 -0
  1110. package/cli/app/public/providers/black-forest-labs.png +0 -0
  1111. package/cli/app/public/providers/blackbox.png +0 -0
  1112. package/cli/app/public/providers/brave-search.png +0 -0
  1113. package/cli/app/public/providers/byteplus.png +0 -0
  1114. package/cli/app/public/providers/cartesia.png +0 -0
  1115. package/cli/app/public/providers/cerebras.png +0 -0
  1116. package/cli/app/public/providers/chutes.png +0 -0
  1117. package/cli/app/public/providers/claude.png +0 -0
  1118. package/cli/app/public/providers/cline.png +0 -0
  1119. package/cli/app/public/providers/cloudflare-ai.png +0 -0
  1120. package/cli/app/public/providers/codebuddy-cn.png +0 -0
  1121. package/cli/app/public/providers/codebuddy.png +0 -0
  1122. package/cli/app/public/providers/codebuddy.svg +37 -0
  1123. package/cli/app/public/providers/codex.png +0 -0
  1124. package/cli/app/public/providers/cohere.png +0 -0
  1125. package/cli/app/public/providers/comfyui.png +0 -0
  1126. package/cli/app/public/providers/commandcode.png +0 -0
  1127. package/cli/app/public/providers/continue.png +0 -0
  1128. package/cli/app/public/providers/copilot.png +0 -0
  1129. package/cli/app/public/providers/coqui.png +0 -0
  1130. package/cli/app/public/providers/cursor.png +0 -0
  1131. package/cli/app/public/providers/deepgram.png +0 -0
  1132. package/cli/app/public/providers/deepseek-tui.png +0 -0
  1133. package/cli/app/public/providers/deepseek.png +0 -0
  1134. package/cli/app/public/providers/droid.png +0 -0
  1135. package/cli/app/public/providers/edge-tts.png +0 -0
  1136. package/cli/app/public/providers/elevenlabs.png +0 -0
  1137. package/cli/app/public/providers/exa.png +0 -0
  1138. package/cli/app/public/providers/fal-ai.png +0 -0
  1139. package/cli/app/public/providers/firecrawl.png +0 -0
  1140. package/cli/app/public/providers/fireworks.png +0 -0
  1141. package/cli/app/public/providers/gemini-cli.png +0 -0
  1142. package/cli/app/public/providers/gemini.png +0 -0
  1143. package/cli/app/public/providers/github.png +0 -0
  1144. package/cli/app/public/providers/glm-cn.png +0 -0
  1145. package/cli/app/public/providers/glm.png +0 -0
  1146. package/cli/app/public/providers/google-pse.png +0 -0
  1147. package/cli/app/public/providers/google-tts.png +0 -0
  1148. package/cli/app/public/providers/grok-web.png +0 -0
  1149. package/cli/app/public/providers/groq.png +0 -0
  1150. package/cli/app/public/providers/hermes.png +0 -0
  1151. package/cli/app/public/providers/huggingface.png +0 -0
  1152. package/cli/app/public/providers/hyperbolic.png +0 -0
  1153. package/cli/app/public/providers/iflow.png +0 -0
  1154. package/cli/app/public/providers/inworld.png +0 -0
  1155. package/cli/app/public/providers/jcode.png +0 -0
  1156. package/cli/app/public/providers/jina-ai.png +0 -0
  1157. package/cli/app/public/providers/jina-reader.png +0 -0
  1158. package/cli/app/public/providers/kilocode.png +0 -0
  1159. package/cli/app/public/providers/kimi-coding.png +0 -0
  1160. package/cli/app/public/providers/kimi.png +0 -0
  1161. package/cli/app/public/providers/kiro.png +0 -0
  1162. package/cli/app/public/providers/linkup.png +0 -0
  1163. package/cli/app/public/providers/local-device.png +0 -0
  1164. package/cli/app/public/providers/minimax-cn.png +0 -0
  1165. package/cli/app/public/providers/minimax.png +0 -0
  1166. package/cli/app/public/providers/mistral.png +0 -0
  1167. package/cli/app/public/providers/nanobanana.png +0 -0
  1168. package/cli/app/public/providers/nebius.png +0 -0
  1169. package/cli/app/public/providers/nvidia.png +0 -0
  1170. package/cli/app/public/providers/oai-cc.png +0 -0
  1171. package/cli/app/public/providers/oai-r.png +0 -0
  1172. package/cli/app/public/providers/ollama-local.png +0 -0
  1173. package/cli/app/public/providers/ollama.png +0 -0
  1174. package/cli/app/public/providers/openai.png +0 -0
  1175. package/cli/app/public/providers/openclaw.png +0 -0
  1176. package/cli/app/public/providers/opencode-go.png +0 -0
  1177. package/cli/app/public/providers/opencode.png +0 -0
  1178. package/cli/app/public/providers/openrouter.png +0 -0
  1179. package/cli/app/public/providers/perplexity-web.png +0 -0
  1180. package/cli/app/public/providers/perplexity.png +0 -0
  1181. package/cli/app/public/providers/playht.png +0 -0
  1182. package/cli/app/public/providers/qoder.png +0 -0
  1183. package/cli/app/public/providers/qwen.png +0 -0
  1184. package/cli/app/public/providers/recraft.png +0 -0
  1185. package/cli/app/public/providers/roo.png +0 -0
  1186. package/cli/app/public/providers/runwayml.png +0 -0
  1187. package/cli/app/public/providers/sdwebui.png +0 -0
  1188. package/cli/app/public/providers/searchapi.png +0 -0
  1189. package/cli/app/public/providers/searxng.png +0 -0
  1190. package/cli/app/public/providers/serper.png +0 -0
  1191. package/cli/app/public/providers/siliconflow.png +0 -0
  1192. package/cli/app/public/providers/stability-ai.png +0 -0
  1193. package/cli/app/public/providers/tavily.png +0 -0
  1194. package/cli/app/public/providers/together.png +0 -0
  1195. package/cli/app/public/providers/topaz.png +0 -0
  1196. package/cli/app/public/providers/tortoise.png +0 -0
  1197. package/cli/app/public/providers/vertex-partner.png +0 -0
  1198. package/cli/app/public/providers/vertex.png +0 -0
  1199. package/cli/app/public/providers/volcengine-ark.png +0 -0
  1200. package/cli/app/public/providers/voyage-ai.png +0 -0
  1201. package/cli/app/public/providers/xai.png +0 -0
  1202. package/cli/app/public/providers/xiaomi-mimo.png +0 -0
  1203. package/cli/app/public/providers/xiaomi-tokenplan.png +0 -0
  1204. package/cli/app/public/providers/youcom.png +0 -0
  1205. package/cli/app/public/sw.js +22 -0
  1206. package/cli/app/public/vercel.svg +1 -0
  1207. package/cli/app/public/window.svg +1 -0
  1208. package/cli/app/server.js +38 -0
  1209. package/cli/app/src/lib/db/adapters/betterSqliteAdapter.js +55 -0
  1210. package/cli/app/src/lib/db/adapters/bunSqliteAdapter.js +63 -0
  1211. package/cli/app/src/lib/db/adapters/nodeSqliteAdapter.js +84 -0
  1212. package/cli/app/src/lib/db/adapters/sqljsAdapter.js +115 -0
  1213. package/cli/app/src/lib/db/maintenance.js +72 -0
  1214. package/cli/app/src/lib/db/migrate.js +286 -0
  1215. package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +132 -0
  1216. package/cli/app/src/lib/oauth/services/xai.js +238 -0
  1217. package/cli/app/src/lib/updater/updater.js +235 -0
  1218. package/cli/app/src/mitm/server.js +60 -0
  1219. package/cli/app/src/shared/utils/apiKey.js +98 -0
  1220. package/cli/cli.js +818 -0
  1221. package/cli/hooks/camoufoxRuntime.js +169 -0
  1222. package/cli/hooks/playwrightRuntime.js +168 -0
  1223. package/cli/hooks/postinstall.js +22 -0
  1224. package/cli/hooks/sqliteRuntime.js +147 -0
  1225. package/cli/hooks/trayRuntime.js +107 -0
  1226. package/cli/package.json +54 -0
  1227. package/cli/src/cli/api/client.js +547 -0
  1228. package/cli/src/cli/menus/apiKeys.js +233 -0
  1229. package/cli/src/cli/menus/cliTools.js +618 -0
  1230. package/cli/src/cli/menus/combos.js +477 -0
  1231. package/cli/src/cli/menus/providers.js +846 -0
  1232. package/cli/src/cli/menus/settings.js +207 -0
  1233. package/cli/src/cli/terminalUI.js +121 -0
  1234. package/cli/src/cli/tray/autostart.js +306 -0
  1235. package/cli/src/cli/tray/icon.ico +0 -0
  1236. package/cli/src/cli/tray/icon.png +0 -0
  1237. package/cli/src/cli/tray/tray.js +322 -0
  1238. package/cli/src/cli/tray/tray.ps1 +79 -0
  1239. package/cli/src/cli/tray/trayWin.js +89 -0
  1240. package/cli/src/cli/utils/clipboard.js +30 -0
  1241. package/cli/src/cli/utils/display.js +156 -0
  1242. package/cli/src/cli/utils/endpoint.js +32 -0
  1243. package/cli/src/cli/utils/format.js +125 -0
  1244. package/cli/src/cli/utils/input.js +156 -0
  1245. package/cli/src/cli/utils/menuHelper.js +156 -0
  1246. package/cli/src/cli/utils/modelSelector.js +136 -0
  1247. package/i18n/README.ja-JP.md +1209 -0
  1248. package/i18n/README.ru.md +1311 -0
  1249. package/i18n/README.vi.md +1310 -0
  1250. package/i18n/README.zh-CN.md +1306 -0
  1251. package/images/9router.png +0 -0
  1252. package/jsconfig.json +12 -0
  1253. package/next.config.mjs +85 -0
  1254. package/open-sse/config/appConstants.js +203 -0
  1255. package/open-sse/config/codexInstructions.js +119 -0
  1256. package/open-sse/config/constants.js +4 -0
  1257. package/open-sse/config/defaultThinkingSignature.js +12 -0
  1258. package/open-sse/config/errorConfig.js +85 -0
  1259. package/open-sse/config/googleTtsLanguages.js +62 -0
  1260. package/open-sse/config/kiroConstants.js +322 -0
  1261. package/open-sse/config/models.js +13 -0
  1262. package/open-sse/config/ollamaModels.js +19 -0
  1263. package/open-sse/config/providerModels.js +953 -0
  1264. package/open-sse/config/providers.js +466 -0
  1265. package/open-sse/config/runtimeConfig.js +72 -0
  1266. package/open-sse/config/ttsModels.js +129 -0
  1267. package/open-sse/executors/antigravity.js +504 -0
  1268. package/open-sse/executors/azure.js +57 -0
  1269. package/open-sse/executors/base.js +185 -0
  1270. package/open-sse/executors/codex.js +469 -0
  1271. package/open-sse/executors/commandcode.js +88 -0
  1272. package/open-sse/executors/cursor.js +795 -0
  1273. package/open-sse/executors/default.js +531 -0
  1274. package/open-sse/executors/gemini-cli.js +89 -0
  1275. package/open-sse/executors/github.js +379 -0
  1276. package/open-sse/executors/grok-web.js +345 -0
  1277. package/open-sse/executors/iflow.js +108 -0
  1278. package/open-sse/executors/index.js +75 -0
  1279. package/open-sse/executors/kiro.js +508 -0
  1280. package/open-sse/executors/ollama-local.js +14 -0
  1281. package/open-sse/executors/opencode-go.js +41 -0
  1282. package/open-sse/executors/opencode.js +32 -0
  1283. package/open-sse/executors/perplexity-web.js +507 -0
  1284. package/open-sse/executors/qoder.js +468 -0
  1285. package/open-sse/executors/qwen.js +129 -0
  1286. package/open-sse/executors/vertex.js +131 -0
  1287. package/open-sse/executors/xiaomi-tokenplan.js +19 -0
  1288. package/open-sse/handlers/chatCore/nonStreamingHandler.js +230 -0
  1289. package/open-sse/handlers/chatCore/requestDetail.js +102 -0
  1290. package/open-sse/handlers/chatCore/sseToJsonHandler.js +231 -0
  1291. package/open-sse/handlers/chatCore/streamingHandler.js +103 -0
  1292. package/open-sse/handlers/chatCore.js +287 -0
  1293. package/open-sse/handlers/embeddingProviders/_base.js +4 -0
  1294. package/open-sse/handlers/embeddingProviders/gemini.js +54 -0
  1295. package/open-sse/handlers/embeddingProviders/index.js +23 -0
  1296. package/open-sse/handlers/embeddingProviders/openai.js +39 -0
  1297. package/open-sse/handlers/embeddingProviders/openaiCompatNode.js +13 -0
  1298. package/open-sse/handlers/embeddingsCore.js +126 -0
  1299. package/open-sse/handlers/fetch/index.js +237 -0
  1300. package/open-sse/handlers/imageGenerationCore.js +189 -0
  1301. package/open-sse/handlers/imageProviders/_base.js +31 -0
  1302. package/open-sse/handlers/imageProviders/blackForestLabs.js +43 -0
  1303. package/open-sse/handlers/imageProviders/cloudflareAi.js +178 -0
  1304. package/open-sse/handlers/imageProviders/codex.js +198 -0
  1305. package/open-sse/handlers/imageProviders/comfyui.js +8 -0
  1306. package/open-sse/handlers/imageProviders/falAi.js +41 -0
  1307. package/open-sse/handlers/imageProviders/gemini.js +25 -0
  1308. package/open-sse/handlers/imageProviders/huggingface.js +22 -0
  1309. package/open-sse/handlers/imageProviders/index.js +40 -0
  1310. package/open-sse/handlers/imageProviders/nanobanana.js +58 -0
  1311. package/open-sse/handlers/imageProviders/openai.js +40 -0
  1312. package/open-sse/handlers/imageProviders/runwayml.js +47 -0
  1313. package/open-sse/handlers/imageProviders/sdwebui.js +17 -0
  1314. package/open-sse/handlers/imageProviders/stabilityAi.js +34 -0
  1315. package/open-sse/handlers/responsesHandler.js +103 -0
  1316. package/open-sse/handlers/search/callers.js +371 -0
  1317. package/open-sse/handlers/search/chatSearch.js +409 -0
  1318. package/open-sse/handlers/search/index.js +201 -0
  1319. package/open-sse/handlers/search/normalizers.js +223 -0
  1320. package/open-sse/handlers/sttCore.js +194 -0
  1321. package/open-sse/handlers/ttsCore.js +74 -0
  1322. package/open-sse/handlers/ttsProviders/_base.js +39 -0
  1323. package/open-sse/handlers/ttsProviders/edgeTts.js +89 -0
  1324. package/open-sse/handlers/ttsProviders/elevenlabs.js +48 -0
  1325. package/open-sse/handlers/ttsProviders/gemini.js +117 -0
  1326. package/open-sse/handlers/ttsProviders/genericFormats.js +169 -0
  1327. package/open-sse/handlers/ttsProviders/googleTts.js +54 -0
  1328. package/open-sse/handlers/ttsProviders/index.js +50 -0
  1329. package/open-sse/handlers/ttsProviders/localDevice.js +87 -0
  1330. package/open-sse/handlers/ttsProviders/minimax.js +59 -0
  1331. package/open-sse/handlers/ttsProviders/openai.js +30 -0
  1332. package/open-sse/handlers/ttsProviders/openrouter.js +70 -0
  1333. package/open-sse/index.js +82 -0
  1334. package/open-sse/rtk/applyFilter.js +15 -0
  1335. package/open-sse/rtk/autodetect.js +111 -0
  1336. package/open-sse/rtk/caveman.js +100 -0
  1337. package/open-sse/rtk/cavemanPrompts.js +78 -0
  1338. package/open-sse/rtk/constants.js +55 -0
  1339. package/open-sse/rtk/filters/buildOutput.js +127 -0
  1340. package/open-sse/rtk/filters/dedupLog.js +44 -0
  1341. package/open-sse/rtk/filters/find.js +49 -0
  1342. package/open-sse/rtk/filters/gitDiff.js +92 -0
  1343. package/open-sse/rtk/filters/gitStatus.js +117 -0
  1344. package/open-sse/rtk/filters/grep.js +48 -0
  1345. package/open-sse/rtk/filters/ls.js +79 -0
  1346. package/open-sse/rtk/filters/readNumbered.js +27 -0
  1347. package/open-sse/rtk/filters/searchList.js +52 -0
  1348. package/open-sse/rtk/filters/smartTruncate.js +15 -0
  1349. package/open-sse/rtk/filters/tree.js +32 -0
  1350. package/open-sse/rtk/index.js +155 -0
  1351. package/open-sse/rtk/registry.js +38 -0
  1352. package/open-sse/services/accountFallback.js +238 -0
  1353. package/open-sse/services/combo.js +198 -0
  1354. package/open-sse/services/compact.js +71 -0
  1355. package/open-sse/services/kiroModels.js +332 -0
  1356. package/open-sse/services/model.js +263 -0
  1357. package/open-sse/services/oauthCredentialManager.js +151 -0
  1358. package/open-sse/services/projectId.js +306 -0
  1359. package/open-sse/services/provider.js +356 -0
  1360. package/open-sse/services/qoderModels.js +216 -0
  1361. package/open-sse/services/tokenRefresh.js +947 -0
  1362. package/open-sse/services/usage.js +1587 -0
  1363. package/open-sse/transformer/responsesTransformer.js +439 -0
  1364. package/open-sse/transformer/streamToJsonConverter.js +103 -0
  1365. package/open-sse/translator/formats.js +36 -0
  1366. package/open-sse/translator/helpers/claudeHelper.js +216 -0
  1367. package/open-sse/translator/helpers/geminiHelper.js +372 -0
  1368. package/open-sse/translator/helpers/imageHelper.js +34 -0
  1369. package/open-sse/translator/helpers/maxTokensHelper.js +27 -0
  1370. package/open-sse/translator/helpers/openaiHelper.js +130 -0
  1371. package/open-sse/translator/helpers/responsesApiHelper.js +139 -0
  1372. package/open-sse/translator/helpers/toolCallHelper.js +148 -0
  1373. package/open-sse/translator/index.js +251 -0
  1374. package/open-sse/translator/request/antigravity-to-openai.js +229 -0
  1375. package/open-sse/translator/request/claude-to-openai.js +232 -0
  1376. package/open-sse/translator/request/gemini-to-openai.js +147 -0
  1377. package/open-sse/translator/request/openai-responses.js +318 -0
  1378. package/open-sse/translator/request/openai-to-claude.js +401 -0
  1379. package/open-sse/translator/request/openai-to-commandcode.js +170 -0
  1380. package/open-sse/translator/request/openai-to-cursor.js +183 -0
  1381. package/open-sse/translator/request/openai-to-gemini.js +470 -0
  1382. package/open-sse/translator/request/openai-to-kiro.js +629 -0
  1383. package/open-sse/translator/request/openai-to-kiro.old.js +278 -0
  1384. package/open-sse/translator/request/openai-to-ollama.js +192 -0
  1385. package/open-sse/translator/request/openai-to-vertex.js +42 -0
  1386. package/open-sse/translator/response/claude-to-openai.js +206 -0
  1387. package/open-sse/translator/response/commandcode-to-openai.js +197 -0
  1388. package/open-sse/translator/response/cursor-to-openai.js +30 -0
  1389. package/open-sse/translator/response/gemini-to-openai.js +245 -0
  1390. package/open-sse/translator/response/kiro-to-openai.js +195 -0
  1391. package/open-sse/translator/response/ollama-to-openai.js +152 -0
  1392. package/open-sse/translator/response/openai-responses.js +590 -0
  1393. package/open-sse/translator/response/openai-to-antigravity.js +122 -0
  1394. package/open-sse/translator/response/openai-to-claude.js +266 -0
  1395. package/open-sse/utils/bypassHandler.js +298 -0
  1396. package/open-sse/utils/claudeCloaking.js +155 -0
  1397. package/open-sse/utils/claudeHeaderCache.js +70 -0
  1398. package/open-sse/utils/clientDetector.js +63 -0
  1399. package/open-sse/utils/cursorChecksum.js +149 -0
  1400. package/open-sse/utils/cursorProtobuf.js +904 -0
  1401. package/open-sse/utils/debugLog.js +14 -0
  1402. package/open-sse/utils/error.js +147 -0
  1403. package/open-sse/utils/ollamaTransform.js +85 -0
  1404. package/open-sse/utils/proxyFetch.js +368 -0
  1405. package/open-sse/utils/reasoningContentInjector.js +79 -0
  1406. package/open-sse/utils/requestLogger.js +260 -0
  1407. package/open-sse/utils/responsesStreamHelpers.js +49 -0
  1408. package/open-sse/utils/sessionManager.js +82 -0
  1409. package/open-sse/utils/stream.js +462 -0
  1410. package/open-sse/utils/streamHandler.js +250 -0
  1411. package/open-sse/utils/streamHelpers.js +122 -0
  1412. package/open-sse/utils/toolDeduper.js +49 -0
  1413. package/open-sse/utils/usageTracking.js +347 -0
  1414. package/package.json +106 -0
  1415. package/postcss.config.mjs +12 -0
  1416. package/public/favicon.svg +12 -0
  1417. package/public/file.svg +1 -0
  1418. package/public/globe.svg +1 -0
  1419. package/public/i18n/literals/ar.json +195 -0
  1420. package/public/i18n/literals/bn.json +195 -0
  1421. package/public/i18n/literals/cs.json +195 -0
  1422. package/public/i18n/literals/da.json +195 -0
  1423. package/public/i18n/literals/de.json +195 -0
  1424. package/public/i18n/literals/el.json +195 -0
  1425. package/public/i18n/literals/es.json +195 -0
  1426. package/public/i18n/literals/fi.json +195 -0
  1427. package/public/i18n/literals/fr.json +195 -0
  1428. package/public/i18n/literals/he.json +195 -0
  1429. package/public/i18n/literals/hi.json +195 -0
  1430. package/public/i18n/literals/hu.json +195 -0
  1431. package/public/i18n/literals/id.json +195 -0
  1432. package/public/i18n/literals/it.json +195 -0
  1433. package/public/i18n/literals/ja.json +195 -0
  1434. package/public/i18n/literals/ko.json +195 -0
  1435. package/public/i18n/literals/nl.json +195 -0
  1436. package/public/i18n/literals/no.json +195 -0
  1437. package/public/i18n/literals/pl.json +195 -0
  1438. package/public/i18n/literals/pt-BR.json +195 -0
  1439. package/public/i18n/literals/pt-PT.json +195 -0
  1440. package/public/i18n/literals/ro.json +195 -0
  1441. package/public/i18n/literals/ru.json +195 -0
  1442. package/public/i18n/literals/sv.json +195 -0
  1443. package/public/i18n/literals/th.json +195 -0
  1444. package/public/i18n/literals/tl.json +195 -0
  1445. package/public/i18n/literals/tr.json +195 -0
  1446. package/public/i18n/literals/uk.json +195 -0
  1447. package/public/i18n/literals/ur.json +195 -0
  1448. package/public/i18n/literals/vi.json +195 -0
  1449. package/public/i18n/literals/zh-CN.json +772 -0
  1450. package/public/i18n/literals/zh-TW.json +195 -0
  1451. package/public/icons/discord.svg +4 -0
  1452. package/public/icons/icon-192.svg +12 -0
  1453. package/public/icons/icon-512.svg +12 -0
  1454. package/public/next.svg +1 -0
  1455. package/public/providers/alicode-intl.png +0 -0
  1456. package/public/providers/alicode.png +0 -0
  1457. package/public/providers/amp.png +0 -0
  1458. package/public/providers/anthropic-m.png +0 -0
  1459. package/public/providers/anthropic.png +0 -0
  1460. package/public/providers/antigravity.png +0 -0
  1461. package/public/providers/assemblyai.png +0 -0
  1462. package/public/providers/aws-polly.png +0 -0
  1463. package/public/providers/azure.png +0 -0
  1464. package/public/providers/black-forest-labs.png +0 -0
  1465. package/public/providers/blackbox.png +0 -0
  1466. package/public/providers/brave-search.png +0 -0
  1467. package/public/providers/byteplus.png +0 -0
  1468. package/public/providers/cartesia.png +0 -0
  1469. package/public/providers/cerebras.png +0 -0
  1470. package/public/providers/chutes.png +0 -0
  1471. package/public/providers/claude.png +0 -0
  1472. package/public/providers/cline.png +0 -0
  1473. package/public/providers/cloudflare-ai.png +0 -0
  1474. package/public/providers/codebuddy-cn.png +0 -0
  1475. package/public/providers/codebuddy.png +0 -0
  1476. package/public/providers/codebuddy.svg +37 -0
  1477. package/public/providers/codex.png +0 -0
  1478. package/public/providers/cohere.png +0 -0
  1479. package/public/providers/comfyui.png +0 -0
  1480. package/public/providers/commandcode.png +0 -0
  1481. package/public/providers/continue.png +0 -0
  1482. package/public/providers/copilot.png +0 -0
  1483. package/public/providers/coqui.png +0 -0
  1484. package/public/providers/cursor.png +0 -0
  1485. package/public/providers/deepgram.png +0 -0
  1486. package/public/providers/deepseek-tui.png +0 -0
  1487. package/public/providers/deepseek.png +0 -0
  1488. package/public/providers/droid.png +0 -0
  1489. package/public/providers/edge-tts.png +0 -0
  1490. package/public/providers/elevenlabs.png +0 -0
  1491. package/public/providers/exa.png +0 -0
  1492. package/public/providers/fal-ai.png +0 -0
  1493. package/public/providers/firecrawl.png +0 -0
  1494. package/public/providers/fireworks.png +0 -0
  1495. package/public/providers/gemini-cli.png +0 -0
  1496. package/public/providers/gemini.png +0 -0
  1497. package/public/providers/github.png +0 -0
  1498. package/public/providers/glm-cn.png +0 -0
  1499. package/public/providers/glm.png +0 -0
  1500. package/public/providers/google-pse.png +0 -0
  1501. package/public/providers/google-tts.png +0 -0
  1502. package/public/providers/grok-web.png +0 -0
  1503. package/public/providers/groq.png +0 -0
  1504. package/public/providers/hermes.png +0 -0
  1505. package/public/providers/huggingface.png +0 -0
  1506. package/public/providers/hyperbolic.png +0 -0
  1507. package/public/providers/iflow.png +0 -0
  1508. package/public/providers/inworld.png +0 -0
  1509. package/public/providers/jcode.png +0 -0
  1510. package/public/providers/jina-ai.png +0 -0
  1511. package/public/providers/jina-reader.png +0 -0
  1512. package/public/providers/kilocode.png +0 -0
  1513. package/public/providers/kimi-coding.png +0 -0
  1514. package/public/providers/kimi.png +0 -0
  1515. package/public/providers/kiro.png +0 -0
  1516. package/public/providers/linkup.png +0 -0
  1517. package/public/providers/local-device.png +0 -0
  1518. package/public/providers/minimax-cn.png +0 -0
  1519. package/public/providers/minimax.png +0 -0
  1520. package/public/providers/mistral.png +0 -0
  1521. package/public/providers/nanobanana.png +0 -0
  1522. package/public/providers/nebius.png +0 -0
  1523. package/public/providers/nvidia.png +0 -0
  1524. package/public/providers/oai-cc.png +0 -0
  1525. package/public/providers/oai-r.png +0 -0
  1526. package/public/providers/ollama-local.png +0 -0
  1527. package/public/providers/ollama.png +0 -0
  1528. package/public/providers/openai.png +0 -0
  1529. package/public/providers/openclaw.png +0 -0
  1530. package/public/providers/opencode-go.png +0 -0
  1531. package/public/providers/opencode.png +0 -0
  1532. package/public/providers/openrouter.png +0 -0
  1533. package/public/providers/perplexity-web.png +0 -0
  1534. package/public/providers/perplexity.png +0 -0
  1535. package/public/providers/playht.png +0 -0
  1536. package/public/providers/qoder.png +0 -0
  1537. package/public/providers/qwen.png +0 -0
  1538. package/public/providers/recraft.png +0 -0
  1539. package/public/providers/roo.png +0 -0
  1540. package/public/providers/runwayml.png +0 -0
  1541. package/public/providers/sdwebui.png +0 -0
  1542. package/public/providers/searchapi.png +0 -0
  1543. package/public/providers/searxng.png +0 -0
  1544. package/public/providers/serper.png +0 -0
  1545. package/public/providers/siliconflow.png +0 -0
  1546. package/public/providers/stability-ai.png +0 -0
  1547. package/public/providers/tavily.png +0 -0
  1548. package/public/providers/together.png +0 -0
  1549. package/public/providers/topaz.png +0 -0
  1550. package/public/providers/tortoise.png +0 -0
  1551. package/public/providers/vertex-partner.png +0 -0
  1552. package/public/providers/vertex.png +0 -0
  1553. package/public/providers/volcengine-ark.png +0 -0
  1554. package/public/providers/voyage-ai.png +0 -0
  1555. package/public/providers/xai.png +0 -0
  1556. package/public/providers/xiaomi-mimo.png +0 -0
  1557. package/public/providers/xiaomi-tokenplan.png +0 -0
  1558. package/public/providers/youcom.png +0 -0
  1559. package/public/sw.js +22 -0
  1560. package/public/vercel.svg +1 -0
  1561. package/public/window.svg +1 -0
  1562. package/scripts/start-standalone.mjs +43 -0
  1563. package/scripts/translate-readme.js +201 -0
  1564. package/src/app/(dashboard)/dashboard/automation/page.js +475 -0
  1565. package/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js +967 -0
  1566. package/src/app/(dashboard)/dashboard/basic-chat/page.js +5 -0
  1567. package/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js +66 -0
  1568. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/ToolDetailClient.js +173 -0
  1569. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +11 -0
  1570. package/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.js +481 -0
  1571. package/src/app/(dashboard)/dashboard/cli-tools/components/ApiKeySelect.js +66 -0
  1572. package/src/app/(dashboard)/dashboard/cli-tools/components/BaseUrlSelect.js +174 -0
  1573. package/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +390 -0
  1574. package/src/app/(dashboard)/dashboard/cli-tools/components/ClineToolCard.js +301 -0
  1575. package/src/app/(dashboard)/dashboard/cli-tools/components/CodexToolCard.js +458 -0
  1576. package/src/app/(dashboard)/dashboard/cli-tools/components/CopilotToolCard.js +323 -0
  1577. package/src/app/(dashboard)/dashboard/cli-tools/components/CoworkToolCard.js +640 -0
  1578. package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +338 -0
  1579. package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +271 -0
  1580. package/src/app/(dashboard)/dashboard/cli-tools/components/DroidToolCard.js +410 -0
  1581. package/src/app/(dashboard)/dashboard/cli-tools/components/EndpointPresetControl.js +128 -0
  1582. package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +317 -0
  1583. package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +380 -0
  1584. package/src/app/(dashboard)/dashboard/cli-tools/components/KiloToolCard.js +275 -0
  1585. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmLinkCard.js +40 -0
  1586. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +329 -0
  1587. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmToolCard.js +318 -0
  1588. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +388 -0
  1589. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenCodeToolCard.js +500 -0
  1590. package/src/app/(dashboard)/dashboard/cli-tools/components/ToolSummaryCard.js +39 -0
  1591. package/src/app/(dashboard)/dashboard/cli-tools/components/cliEndpointMatch.js +13 -0
  1592. package/src/app/(dashboard)/dashboard/cli-tools/components/index.js +19 -0
  1593. package/src/app/(dashboard)/dashboard/cli-tools/page.js +7 -0
  1594. package/src/app/(dashboard)/dashboard/combos/page.js +612 -0
  1595. package/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js +91 -0
  1596. package/src/app/(dashboard)/dashboard/console-log/page.js +8 -0
  1597. package/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js +1555 -0
  1598. package/src/app/(dashboard)/dashboard/endpoint/page.js +7 -0
  1599. package/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1903 -0
  1600. package/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js +289 -0
  1601. package/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +410 -0
  1602. package/src/app/(dashboard)/dashboard/media-providers/web/page.js +209 -0
  1603. package/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js +117 -0
  1604. package/src/app/(dashboard)/dashboard/mitm/page.js +5 -0
  1605. package/src/app/(dashboard)/dashboard/page.js +7 -0
  1606. package/src/app/(dashboard)/dashboard/profile/page.js +1140 -0
  1607. package/src/app/(dashboard)/dashboard/providers/[id]/AddApiKeyModal.js +389 -0
  1608. package/src/app/(dashboard)/dashboard/providers/[id]/AddCustomModelModal.js +125 -0
  1609. package/src/app/(dashboard)/dashboard/providers/[id]/CompatibleModelsSection.js +250 -0
  1610. package/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js +307 -0
  1611. package/src/app/(dashboard)/dashboard/providers/[id]/CooldownTimer.js +42 -0
  1612. package/src/app/(dashboard)/dashboard/providers/[id]/EditCompatibleNodeModal.js +161 -0
  1613. package/src/app/(dashboard)/dashboard/providers/[id]/ModelRow.js +95 -0
  1614. package/src/app/(dashboard)/dashboard/providers/[id]/PassthroughModelsSection.js +183 -0
  1615. package/src/app/(dashboard)/dashboard/providers/[id]/page.js +2052 -0
  1616. package/src/app/(dashboard)/dashboard/providers/[id]/page.new.js +1724 -0
  1617. package/src/app/(dashboard)/dashboard/providers/components/ConnectionsCard.js +497 -0
  1618. package/src/app/(dashboard)/dashboard/providers/components/ModelAvailabilityBadge.js +185 -0
  1619. package/src/app/(dashboard)/dashboard/providers/components/ModelsCard.js +294 -0
  1620. package/src/app/(dashboard)/dashboard/providers/new/page.js +220 -0
  1621. package/src/app/(dashboard)/dashboard/providers/page.js +1370 -0
  1622. package/src/app/(dashboard)/dashboard/proxy-pools/page.js +1092 -0
  1623. package/src/app/(dashboard)/dashboard/quota/page.js +11 -0
  1624. package/src/app/(dashboard)/dashboard/skills/page.js +112 -0
  1625. package/src/app/(dashboard)/dashboard/translator/page.js +303 -0
  1626. package/src/app/(dashboard)/dashboard/usage/components/OverviewCards.js +35 -0
  1627. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/ProviderLimitCard.js +185 -0
  1628. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaProgressBar.js +127 -0
  1629. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js +259 -0
  1630. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js +1394 -0
  1631. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +244 -0
  1632. package/src/app/(dashboard)/dashboard/usage/components/ProviderTopology.js +327 -0
  1633. package/src/app/(dashboard)/dashboard/usage/components/RequestDetailsTab.js +433 -0
  1634. package/src/app/(dashboard)/dashboard/usage/components/UsageChart.js +141 -0
  1635. package/src/app/(dashboard)/dashboard/usage/components/UsageTable.js +247 -0
  1636. package/src/app/(dashboard)/dashboard/usage/page.js +75 -0
  1637. package/src/app/(dashboard)/layout.js +6 -0
  1638. package/src/app/api/auth/login/route.js +76 -0
  1639. package/src/app/api/auth/logout/route.js +12 -0
  1640. package/src/app/api/auth/oidc/callback/route.js +87 -0
  1641. package/src/app/api/auth/oidc/start/route.js +52 -0
  1642. package/src/app/api/auth/oidc/test/route.js +84 -0
  1643. package/src/app/api/auth/status/route.js +45 -0
  1644. package/src/app/api/cli-tools/all-statuses/route.js +46 -0
  1645. package/src/app/api/cli-tools/antigravity-mitm/alias/route.js +53 -0
  1646. package/src/app/api/cli-tools/antigravity-mitm/route.js +202 -0
  1647. package/src/app/api/cli-tools/claude-settings/route.js +203 -0
  1648. package/src/app/api/cli-tools/cline-settings/route.js +133 -0
  1649. package/src/app/api/cli-tools/codex-gateway/accounts/route.js +16 -0
  1650. package/src/app/api/cli-tools/codex-settings/route.js +239 -0
  1651. package/src/app/api/cli-tools/copilot-settings/route.js +148 -0
  1652. package/src/app/api/cli-tools/cowork-mcp-registry/route.js +77 -0
  1653. package/src/app/api/cli-tools/cowork-mcp-tools/route.js +95 -0
  1654. package/src/app/api/cli-tools/cowork-settings/route.js +412 -0
  1655. package/src/app/api/cli-tools/deepseek-tui-settings/route.js +164 -0
  1656. package/src/app/api/cli-tools/droid-settings/route.js +213 -0
  1657. package/src/app/api/cli-tools/hermes-settings/route.js +175 -0
  1658. package/src/app/api/cli-tools/jcode-settings/route.js +216 -0
  1659. package/src/app/api/cli-tools/kilo-settings/route.js +131 -0
  1660. package/src/app/api/cli-tools/openclaw-settings/route.js +292 -0
  1661. package/src/app/api/cli-tools/opencode-settings/route.js +259 -0
  1662. package/src/app/api/combos/[id]/route.js +81 -0
  1663. package/src/app/api/combos/route.js +48 -0
  1664. package/src/app/api/health/route.js +15 -0
  1665. package/src/app/api/init/route.js +4 -0
  1666. package/src/app/api/keys/[id]/route.js +58 -0
  1667. package/src/app/api/keys/route.js +42 -0
  1668. package/src/app/api/locale/route.js +30 -0
  1669. package/src/app/api/mcp/[plugin]/message/route.js +21 -0
  1670. package/src/app/api/mcp/[plugin]/sse/route.js +37 -0
  1671. package/src/app/api/media-providers/tts/deepgram/voices/route.js +65 -0
  1672. package/src/app/api/media-providers/tts/elevenlabs/voices/route.js +71 -0
  1673. package/src/app/api/media-providers/tts/inworld/voices/route.js +61 -0
  1674. package/src/app/api/media-providers/tts/minimax/voices/route.js +113 -0
  1675. package/src/app/api/media-providers/tts/voices/route.js +99 -0
  1676. package/src/app/api/models/alias/route.js +53 -0
  1677. package/src/app/api/models/availability/route.js +103 -0
  1678. package/src/app/api/models/custom/route.js +48 -0
  1679. package/src/app/api/models/disabled/route.js +50 -0
  1680. package/src/app/api/models/route.js +64 -0
  1681. package/src/app/api/models/test/ping.js +191 -0
  1682. package/src/app/api/models/test/route.js +14 -0
  1683. package/src/app/api/oauth/[provider]/[action]/route.js +343 -0
  1684. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +19 -0
  1685. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +30 -0
  1686. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +23 -0
  1687. package/src/app/api/oauth/codebuddy/bulk-import/latest/route.js +25 -0
  1688. package/src/app/api/oauth/codebuddy/bulk-import/route.js +52 -0
  1689. package/src/app/api/oauth/codebuddy/bulk-token/route.js +118 -0
  1690. package/src/app/api/oauth/codebuddy/quota-cookie/route.js +133 -0
  1691. package/src/app/api/oauth/codex/import-token/route.js +96 -0
  1692. package/src/app/api/oauth/cursor/auto-import/route.js +258 -0
  1693. package/src/app/api/oauth/cursor/import/route.js +100 -0
  1694. package/src/app/api/oauth/gitlab/pat/route.js +62 -0
  1695. package/src/app/api/oauth/iflow/cookie/route.js +137 -0
  1696. package/src/app/api/oauth/kiro/auto-import/route.js +85 -0
  1697. package/src/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +18 -0
  1698. package/src/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +29 -0
  1699. package/src/app/api/oauth/kiro/bulk-import/[jobId]/route.js +22 -0
  1700. package/src/app/api/oauth/kiro/bulk-import/latest/route.js +25 -0
  1701. package/src/app/api/oauth/kiro/bulk-import/route.js +52 -0
  1702. package/src/app/api/oauth/kiro/import/route.js +110 -0
  1703. package/src/app/api/oauth/kiro/social-authorize/route.js +27 -0
  1704. package/src/app/api/oauth/kiro/social-exchange/route.js +41 -0
  1705. package/src/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +18 -0
  1706. package/src/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +29 -0
  1707. package/src/app/api/oauth/qoder/bulk-import/[jobId]/route.js +23 -0
  1708. package/src/app/api/oauth/qoder/bulk-import/latest/route.js +24 -0
  1709. package/src/app/api/oauth/qoder/bulk-import/route.js +50 -0
  1710. package/src/app/api/pricing/route.js +134 -0
  1711. package/src/app/api/provider-nodes/[id]/route.js +101 -0
  1712. package/src/app/api/provider-nodes/route.js +104 -0
  1713. package/src/app/api/provider-nodes/validate/route.js +201 -0
  1714. package/src/app/api/providers/[id]/models/route.js +526 -0
  1715. package/src/app/api/providers/[id]/route.js +189 -0
  1716. package/src/app/api/providers/[id]/test/route.js +23 -0
  1717. package/src/app/api/providers/[id]/test/testUtils.js +741 -0
  1718. package/src/app/api/providers/[id]/test-models/route.js +66 -0
  1719. package/src/app/api/providers/client/route.js +126 -0
  1720. package/src/app/api/providers/kilo/free-models/route.js +55 -0
  1721. package/src/app/api/providers/route.js +207 -0
  1722. package/src/app/api/providers/suggested-models/filters.js +20 -0
  1723. package/src/app/api/providers/suggested-models/route.js +32 -0
  1724. package/src/app/api/providers/test-batch/route.js +131 -0
  1725. package/src/app/api/providers/validate/route.js +637 -0
  1726. package/src/app/api/proxy-pools/[id]/route.js +123 -0
  1727. package/src/app/api/proxy-pools/[id]/test/route.js +70 -0
  1728. package/src/app/api/proxy-pools/cloudflare-deploy/route.js +145 -0
  1729. package/src/app/api/proxy-pools/deno-deploy/route.js +175 -0
  1730. package/src/app/api/proxy-pools/route.js +93 -0
  1731. package/src/app/api/proxy-pools/vercel-deploy/route.js +142 -0
  1732. package/src/app/api/settings/database/route.js +36 -0
  1733. package/src/app/api/settings/proxy-test/route.js +23 -0
  1734. package/src/app/api/settings/require-login/route.js +15 -0
  1735. package/src/app/api/settings/route.js +100 -0
  1736. package/src/app/api/shutdown/route.js +24 -0
  1737. package/src/app/api/tags/route.js +18 -0
  1738. package/src/app/api/translator/console-logs/route.js +24 -0
  1739. package/src/app/api/translator/console-logs/stream/route.js +79 -0
  1740. package/src/app/api/translator/load/route.js +45 -0
  1741. package/src/app/api/translator/save/route.js +44 -0
  1742. package/src/app/api/translator/send/route.js +94 -0
  1743. package/src/app/api/translator/translate/route.js +90 -0
  1744. package/src/app/api/tunnel/disable/route.js +12 -0
  1745. package/src/app/api/tunnel/enable/route.js +16 -0
  1746. package/src/app/api/tunnel/status/route.js +13 -0
  1747. package/src/app/api/tunnel/tailscale-check/route.js +50 -0
  1748. package/src/app/api/tunnel/tailscale-disable/route.js +12 -0
  1749. package/src/app/api/tunnel/tailscale-enable/route.js +12 -0
  1750. package/src/app/api/tunnel/tailscale-install/route.js +72 -0
  1751. package/src/app/api/usage/[connectionId]/route.js +188 -0
  1752. package/src/app/api/usage/chart/route.js +21 -0
  1753. package/src/app/api/usage/history/route.js +12 -0
  1754. package/src/app/api/usage/logs/route.js +12 -0
  1755. package/src/app/api/usage/providers/route.js +42 -0
  1756. package/src/app/api/usage/request-details/route.js +57 -0
  1757. package/src/app/api/usage/request-logs/route.js +13 -0
  1758. package/src/app/api/usage/stats/route.js +23 -0
  1759. package/src/app/api/usage/stream/route.js +79 -0
  1760. package/src/app/api/v1/api/chat/route.js +37 -0
  1761. package/src/app/api/v1/audio/speech/route.js +16 -0
  1762. package/src/app/api/v1/audio/transcriptions/route.js +19 -0
  1763. package/src/app/api/v1/audio/voices/route.js +68 -0
  1764. package/src/app/api/v1/chat/completions/route.js +35 -0
  1765. package/src/app/api/v1/embeddings/route.js +21 -0
  1766. package/src/app/api/v1/images/generations/route.js +16 -0
  1767. package/src/app/api/v1/messages/count_tokens/route.js +52 -0
  1768. package/src/app/api/v1/messages/route.js +36 -0
  1769. package/src/app/api/v1/models/[kind]/route.js +55 -0
  1770. package/src/app/api/v1/models/info/route.js +110 -0
  1771. package/src/app/api/v1/models/route.js +451 -0
  1772. package/src/app/api/v1/responses/compact/route.js +37 -0
  1773. package/src/app/api/v1/responses/route.js +30 -0
  1774. package/src/app/api/v1/route.js +1 -0
  1775. package/src/app/api/v1/search/route.js +21 -0
  1776. package/src/app/api/v1/web/fetch/route.js +21 -0
  1777. package/src/app/api/v1beta/models/[...path]/route.js +328 -0
  1778. package/src/app/api/v1beta/models/route.js +44 -0
  1779. package/src/app/api/version/route.js +45 -0
  1780. package/src/app/api/version/shutdown/route.js +15 -0
  1781. package/src/app/api/version/update/route.js +21 -0
  1782. package/src/app/callback/page.js +148 -0
  1783. package/src/app/dashboard/settings/pricing/page.js +173 -0
  1784. package/src/app/globals.css +575 -0
  1785. package/src/app/landing/components/AnimatedBackground.js +57 -0
  1786. package/src/app/landing/components/Features.js +133 -0
  1787. package/src/app/landing/components/FlowAnimation.js +175 -0
  1788. package/src/app/landing/components/Footer.js +61 -0
  1789. package/src/app/landing/components/GetStarted.js +97 -0
  1790. package/src/app/landing/components/HeroSection.js +47 -0
  1791. package/src/app/landing/components/HowItWorks.js +66 -0
  1792. package/src/app/landing/components/Navigation.js +72 -0
  1793. package/src/app/landing/page.js +106 -0
  1794. package/src/app/layout.js +49 -0
  1795. package/src/app/login/page.js +197 -0
  1796. package/src/app/manifest.js +30 -0
  1797. package/src/app/page.js +5 -0
  1798. package/src/dashboardGuard.js +242 -0
  1799. package/src/i18n/RuntimeI18nProvider.js +27 -0
  1800. package/src/i18n/config.js +146 -0
  1801. package/src/i18n/runtime.js +162 -0
  1802. package/src/lib/appUpdater.js +200 -0
  1803. package/src/lib/auth/dashboardSession.js +68 -0
  1804. package/src/lib/auth/loginLimiter.js +52 -0
  1805. package/src/lib/auth/oidc.js +234 -0
  1806. package/src/lib/consoleLogBuffer.js +79 -0
  1807. package/src/lib/dataDir.js +29 -0
  1808. package/src/lib/db/adapters/betterSqliteAdapter.js +55 -0
  1809. package/src/lib/db/adapters/bunSqliteAdapter.js +63 -0
  1810. package/src/lib/db/adapters/nodeSqliteAdapter.js +84 -0
  1811. package/src/lib/db/adapters/sqljsAdapter.js +115 -0
  1812. package/src/lib/db/backup.js +35 -0
  1813. package/src/lib/db/dataDirMigration.js +61 -0
  1814. package/src/lib/db/driver.js +90 -0
  1815. package/src/lib/db/helpers/jsonCol.js +9 -0
  1816. package/src/lib/db/helpers/kvStore.js +39 -0
  1817. package/src/lib/db/helpers/metaStore.js +22 -0
  1818. package/src/lib/db/index.js +171 -0
  1819. package/src/lib/db/maintenance.js +72 -0
  1820. package/src/lib/db/migrate.js +286 -0
  1821. package/src/lib/db/migrations/001-initial.js +14 -0
  1822. package/src/lib/db/migrations/index.js +10 -0
  1823. package/src/lib/db/paths.js +21 -0
  1824. package/src/lib/db/repos/aliasRepo.js +62 -0
  1825. package/src/lib/db/repos/apiKeysRepo.js +75 -0
  1826. package/src/lib/db/repos/combosRepo.js +73 -0
  1827. package/src/lib/db/repos/connectionsRepo.js +226 -0
  1828. package/src/lib/db/repos/disabledModelsRepo.js +56 -0
  1829. package/src/lib/db/repos/nodesRepo.js +95 -0
  1830. package/src/lib/db/repos/pricingRepo.js +108 -0
  1831. package/src/lib/db/repos/proxyPoolsRepo.js +103 -0
  1832. package/src/lib/db/repos/requestDetailsRepo.js +259 -0
  1833. package/src/lib/db/repos/settingsRepo.js +104 -0
  1834. package/src/lib/db/repos/usageRepo.js +731 -0
  1835. package/src/lib/db/schema.js +157 -0
  1836. package/src/lib/db/version.js +21 -0
  1837. package/src/lib/disabledModelsDb.js +4 -0
  1838. package/src/lib/localDb.js +21 -0
  1839. package/src/lib/mcp/stdioSseBridge.js +198 -0
  1840. package/src/lib/mitmAliasCache.js +46 -0
  1841. package/src/lib/network/connectionProxy.js +160 -0
  1842. package/src/lib/network/initOutboundProxy.js +25 -0
  1843. package/src/lib/network/outboundProxy.js +68 -0
  1844. package/src/lib/network/proxyTest.js +91 -0
  1845. package/src/lib/oauth/constants/oauth.js +304 -0
  1846. package/src/lib/oauth/constants/xai.js +61 -0
  1847. package/src/lib/oauth/providers.js +1608 -0
  1848. package/src/lib/oauth/services/antigravity.js +321 -0
  1849. package/src/lib/oauth/services/bulkImportBrowserEngine.js +132 -0
  1850. package/src/lib/oauth/services/claude.js +136 -0
  1851. package/src/lib/oauth/services/codebuddyAutomation.js +6 -0
  1852. package/src/lib/oauth/services/codebuddyBulkImportManager.js +1031 -0
  1853. package/src/lib/oauth/services/codex.js +144 -0
  1854. package/src/lib/oauth/services/cursor.js +179 -0
  1855. package/src/lib/oauth/services/gemini.js +240 -0
  1856. package/src/lib/oauth/services/github.js +225 -0
  1857. package/src/lib/oauth/services/googleAutomation.js +9 -0
  1858. package/src/lib/oauth/services/iflow.js +202 -0
  1859. package/src/lib/oauth/services/index.js +17 -0
  1860. package/src/lib/oauth/services/kiro.js +334 -0
  1861. package/src/lib/oauth/services/kiroBulkImportManager.js +1168 -0
  1862. package/src/lib/oauth/services/kiroConnections.js +93 -0
  1863. package/src/lib/oauth/services/kiroGoogleAutomation.js +1421 -0
  1864. package/src/lib/oauth/services/oauth.js +157 -0
  1865. package/src/lib/oauth/services/openai.js +123 -0
  1866. package/src/lib/oauth/services/qoder.js +233 -0
  1867. package/src/lib/oauth/services/qoderBulkImportManager.js +334 -0
  1868. package/src/lib/oauth/services/qwen.js +170 -0
  1869. package/src/lib/oauth/services/xai.js +238 -0
  1870. package/src/lib/oauth/utils/banner.js +63 -0
  1871. package/src/lib/oauth/utils/pkce.js +39 -0
  1872. package/src/lib/oauth/utils/server.js +415 -0
  1873. package/src/lib/oauth/utils/ui.js +48 -0
  1874. package/src/lib/providerNormalization.js +45 -0
  1875. package/src/lib/qoder/constants.js +64 -0
  1876. package/src/lib/qoder/cosy.js +175 -0
  1877. package/src/lib/qoder/encoding.js +55 -0
  1878. package/src/lib/requestDetailsDb.js +4 -0
  1879. package/src/lib/systemSpecs.js +167 -0
  1880. package/src/lib/tunnel/cloudflare/cloudflared.js +449 -0
  1881. package/src/lib/tunnel/cloudflare/config.js +9 -0
  1882. package/src/lib/tunnel/cloudflare/healthCheck.js +29 -0
  1883. package/src/lib/tunnel/cloudflare/manager.js +151 -0
  1884. package/src/lib/tunnel/cloudflare/pid.js +23 -0
  1885. package/src/lib/tunnel/index.js +48 -0
  1886. package/src/lib/tunnel/shared/dnsResolver.js +17 -0
  1887. package/src/lib/tunnel/shared/internetCheck.js +26 -0
  1888. package/src/lib/tunnel/shared/state.js +41 -0
  1889. package/src/lib/tunnel/shared/watchdogConfig.js +8 -0
  1890. package/src/lib/tunnel/tailscale/config.js +7 -0
  1891. package/src/lib/tunnel/tailscale/healthCheck.js +29 -0
  1892. package/src/lib/tunnel/tailscale/manager.js +129 -0
  1893. package/src/lib/tunnel/tailscale/tailscale.js +790 -0
  1894. package/src/lib/updater/updater.js +235 -0
  1895. package/src/lib/usage/fetcher.js +208 -0
  1896. package/src/lib/usageDb.js +7 -0
  1897. package/src/mitm/antigravityIdeVersion.js +50 -0
  1898. package/src/mitm/cert/generate.js +32 -0
  1899. package/src/mitm/cert/install.js +269 -0
  1900. package/src/mitm/cert/rootCA.js +173 -0
  1901. package/src/mitm/config.js +87 -0
  1902. package/src/mitm/dbReader.js +22 -0
  1903. package/src/mitm/dns/dnsConfig.js +266 -0
  1904. package/src/mitm/handlers/antigravity.js +33 -0
  1905. package/src/mitm/handlers/base.js +226 -0
  1906. package/src/mitm/handlers/copilot.js +35 -0
  1907. package/src/mitm/handlers/cursor.js +15 -0
  1908. package/src/mitm/handlers/kiro.js +526 -0
  1909. package/src/mitm/logger.js +106 -0
  1910. package/src/mitm/manager.js +851 -0
  1911. package/src/mitm/paths.js +32 -0
  1912. package/src/mitm/server.js +435 -0
  1913. package/src/mitm/winElevated.js +81 -0
  1914. package/src/models/index.js +38 -0
  1915. package/src/proxy.js +5 -0
  1916. package/src/shared/components/AddCustomEmbeddingModal.js +183 -0
  1917. package/src/shared/components/Avatar.js +88 -0
  1918. package/src/shared/components/Badge.js +54 -0
  1919. package/src/shared/components/BulkAccountAutomationModal.js +614 -0
  1920. package/src/shared/components/Button.js +56 -0
  1921. package/src/shared/components/Card.js +116 -0
  1922. package/src/shared/components/ChangelogModal.js +97 -0
  1923. package/src/shared/components/CodeBuddyQuotaCookieModal.js +109 -0
  1924. package/src/shared/components/ComboFormModal.js +176 -0
  1925. package/src/shared/components/CursorAuthModal.js +212 -0
  1926. package/src/shared/components/DonateModal.js +136 -0
  1927. package/src/shared/components/Drawer.js +82 -0
  1928. package/src/shared/components/EditConnectionModal.js +286 -0
  1929. package/src/shared/components/Footer.js +132 -0
  1930. package/src/shared/components/GitLabAuthModal.js +194 -0
  1931. package/src/shared/components/Header.js +364 -0
  1932. package/src/shared/components/HeaderLanguage.js +46 -0
  1933. package/src/shared/components/HeaderMenu.js +126 -0
  1934. package/src/shared/components/IFlowCookieModal.js +132 -0
  1935. package/src/shared/components/Input.js +65 -0
  1936. package/src/shared/components/KiroAuthModal.js +1171 -0
  1937. package/src/shared/components/KiroOAuthWrapper.js +149 -0
  1938. package/src/shared/components/KiroSocialOAuthModal.js +205 -0
  1939. package/src/shared/components/LanguageSwitcher.js +190 -0
  1940. package/src/shared/components/Loading.js +75 -0
  1941. package/src/shared/components/ManualConfigModal.js +44 -0
  1942. package/src/shared/components/McpMarketplaceModal.js +255 -0
  1943. package/src/shared/components/Modal.js +146 -0
  1944. package/src/shared/components/ModelSelectModal.js +537 -0
  1945. package/src/shared/components/NineRemoteButton.js +23 -0
  1946. package/src/shared/components/NineRemotePromoModal.js +99 -0
  1947. package/src/shared/components/NoAuthProxyCard.js +86 -0
  1948. package/src/shared/components/OAuthModal.js +682 -0
  1949. package/src/shared/components/Pagination.js +150 -0
  1950. package/src/shared/components/PricingModal.js +208 -0
  1951. package/src/shared/components/ProviderIcon.js +63 -0
  1952. package/src/shared/components/ProviderInfoCard.js +82 -0
  1953. package/src/shared/components/RequestLogger.js +121 -0
  1954. package/src/shared/components/SegmentedControl.js +48 -0
  1955. package/src/shared/components/Select.js +67 -0
  1956. package/src/shared/components/Sidebar.js +445 -0
  1957. package/src/shared/components/ThemeProvider.js +15 -0
  1958. package/src/shared/components/ThemeToggle.js +42 -0
  1959. package/src/shared/components/Toggle.js +69 -0
  1960. package/src/shared/components/Tooltip.js +25 -0
  1961. package/src/shared/components/UsageStats.js +505 -0
  1962. package/src/shared/components/index.js +46 -0
  1963. package/src/shared/components/layouts/AuthLayout.js +29 -0
  1964. package/src/shared/components/layouts/DashboardLayout.js +104 -0
  1965. package/src/shared/components/layouts/index.js +4 -0
  1966. package/src/shared/constants/cliTools.js +397 -0
  1967. package/src/shared/constants/colors.js +77 -0
  1968. package/src/shared/constants/config.js +99 -0
  1969. package/src/shared/constants/coworkPlugins.js +75 -0
  1970. package/src/shared/constants/index.js +4 -0
  1971. package/src/shared/constants/locales.js +36 -0
  1972. package/src/shared/constants/mitmToolHosts.js +12 -0
  1973. package/src/shared/constants/models.js +38 -0
  1974. package/src/shared/constants/pricing.js +303 -0
  1975. package/src/shared/constants/providers.js +293 -0
  1976. package/src/shared/constants/skills.js +78 -0
  1977. package/src/shared/constants/ttsProviders.js +138 -0
  1978. package/src/shared/hooks/index.js +2 -0
  1979. package/src/shared/hooks/useCopyToClipboard.js +43 -0
  1980. package/src/shared/hooks/useTheme.js +60 -0
  1981. package/src/shared/services/bootstrap.js +12 -0
  1982. package/src/shared/services/initializeApp.js +268 -0
  1983. package/src/shared/utils/api.js +93 -0
  1984. package/src/shared/utils/apiKey.js +98 -0
  1985. package/src/shared/utils/clineAuth.js +37 -0
  1986. package/src/shared/utils/cn.js +11 -0
  1987. package/src/shared/utils/connectionStatus.js +162 -0
  1988. package/src/shared/utils/index.js +40 -0
  1989. package/src/shared/utils/machine.js +6 -0
  1990. package/src/shared/utils/machineId.js +66 -0
  1991. package/src/shared/utils/providerModelsFetcher.js +30 -0
  1992. package/src/sse/handlers/chat.js +261 -0
  1993. package/src/sse/handlers/embeddings.js +141 -0
  1994. package/src/sse/handlers/fetch.js +213 -0
  1995. package/src/sse/handlers/imageGeneration.js +142 -0
  1996. package/src/sse/handlers/search.js +206 -0
  1997. package/src/sse/handlers/stt.js +88 -0
  1998. package/src/sse/handlers/tts.js +114 -0
  1999. package/src/sse/services/auth.js +388 -0
  2000. package/src/sse/services/codexGateway.js +215 -0
  2001. package/src/sse/services/model.js +99 -0
  2002. package/src/sse/services/tokenRefresh.js +319 -0
  2003. package/src/sse/utils/logger.js +75 -0
  2004. package/src/store/headerSearchStore.js +19 -0
  2005. package/src/store/index.js +6 -0
  2006. package/src/store/notificationStore.js +45 -0
  2007. package/src/store/providerStore.js +55 -0
  2008. package/src/store/settingsStore.js +51 -0
  2009. package/src/store/themeStore.js +54 -0
  2010. package/src/store/userStore.js +20 -0
  2011. package/start.sh +4 -0
@@ -0,0 +1,1587 @@
1
+ /**
2
+ * Usage Fetcher - Get usage data from provider APIs
3
+ */
4
+
5
+ import { CLIENT_METADATA, getPlatformUserAgent } from "../config/appConstants.js";
6
+ import { proxyAwareFetch } from "../utils/proxyFetch.js";
7
+
8
+ // GitHub API config
9
+ const GITHUB_CONFIG = {
10
+ apiVersion: "2022-11-28",
11
+ userAgent: "GitHubCopilotChat/0.26.7",
12
+ };
13
+
14
+ // GLM quota endpoints (region-aware)
15
+ const GLM_QUOTA_URLS = {
16
+ international: "https://api.z.ai/api/monitor/usage/quota/limit",
17
+ china: "https://open.bigmodel.cn/api/monitor/usage/quota/limit",
18
+ };
19
+
20
+ // MiniMax usage endpoints (try in order, fallback on transient errors)
21
+ const MINIMAX_USAGE_URLS = {
22
+ minimax: [
23
+ "https://www.minimax.io/v1/token_plan/remains",
24
+ "https://api.minimax.io/v1/api/openplatform/coding_plan/remains",
25
+ ],
26
+ "minimax-cn": [
27
+ "https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains",
28
+ "https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains",
29
+ ],
30
+ };
31
+
32
+ // Antigravity API config (from Quotio)
33
+ const ANTIGRAVITY_CONFIG = {
34
+ quotaApiUrl: "https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",
35
+ loadProjectApiUrl: "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",
36
+ tokenUrl: "https://oauth2.googleapis.com/token",
37
+ clientId: "1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",
38
+ clientSecret: "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",
39
+ userAgent: getPlatformUserAgent(),
40
+ };
41
+
42
+ // Codex (OpenAI) API config
43
+ const CODEX_CONFIG = {
44
+ usageUrl: "https://chatgpt.com/backend-api/wham/usage",
45
+ };
46
+
47
+ // Claude API config
48
+ const CLAUDE_CONFIG = {
49
+ oauthUsageUrl: "https://api.anthropic.com/api/oauth/usage",
50
+ usageUrl: "https://api.anthropic.com/v1/organizations/{org_id}/usage",
51
+ settingsUrl: "https://api.anthropic.com/v1/settings",
52
+ apiVersion: "2023-06-01",
53
+ };
54
+
55
+ const CODEBUDDY_CONFIG = {
56
+ usageUrlPath: "/v2/billing/meter/get-user-resource",
57
+ productCode: "p_tcaca",
58
+ packageCodes: {
59
+ free: "TCACA_code_001_PqouKr6QWV",
60
+ proMon: "TCACA_code_002_AkiJS3ZHF5",
61
+ gift: "TCACA_code_006_DbXS0lrypC",
62
+ activity: "TCACA_code_007_nzdH5h4Nl0",
63
+ proYear: "TCACA_code_003_FAnt7lcmRT",
64
+ freeMon: "TCACA_code_008_cfWoLwvjU4",
65
+ extra: "TCACA_code_009_0XmEQc2xOf",
66
+ },
67
+ };
68
+
69
+ // Build the billing/meter endpoint for the given provider-specific data.
70
+ // Global edition uses www.codebuddy.ai; the China edition (codebuddy-cn)
71
+ // is served from www.codebuddy.cn. The stored domain takes precedence;
72
+ // otherwise the provider id determines the default domain.
73
+ function getCodeBuddyUsageUrl(providerSpecificData = {}, provider = "codebuddy") {
74
+ const defaultDomain = provider === "codebuddy-cn" ? "www.codebuddy.cn" : "www.codebuddy.ai";
75
+ const domain = providerSpecificData?.domain || providerSpecificData?.rawAuth?.domain || defaultDomain;
76
+ return `https://${domain}${CODEBUDDY_CONFIG.usageUrlPath}`;
77
+ }
78
+
79
+ /**
80
+ * Get usage data for a provider connection
81
+ * @param {Object} connection - Provider connection with accessToken
82
+ * @returns {Object} Usage data with quotas
83
+ */
84
+ export async function getUsageForProvider(connection, proxyOptions = null) {
85
+ const { provider, accessToken, apiKey, providerSpecificData, projectId } = connection;
86
+ const providerDataWithProjectId = {
87
+ ...(providerSpecificData || {}),
88
+ ...(projectId ? { projectId } : {}),
89
+ };
90
+
91
+ switch (provider) {
92
+ case "github":
93
+ return await getGitHubUsage(accessToken, providerSpecificData, proxyOptions);
94
+ case "gemini-cli":
95
+ return await getGeminiUsage(accessToken, providerDataWithProjectId, proxyOptions);
96
+ case "antigravity":
97
+ return await getAntigravityUsage(accessToken, providerSpecificData, proxyOptions);
98
+ case "claude":
99
+ return await getClaudeUsage(accessToken, proxyOptions);
100
+ case "codex":
101
+ return await getCodexUsage(accessToken, proxyOptions);
102
+ case "kiro":
103
+ return await getKiroUsage(accessToken, providerSpecificData, proxyOptions);
104
+ case "codebuddy":
105
+ case "codebuddy-cn":
106
+ return await getCodeBuddyUsage(accessToken, providerSpecificData, proxyOptions, apiKey, provider);
107
+ case "qoder":
108
+ return await getQoderUsage(accessToken, proxyOptions);
109
+ case "qwen":
110
+ return await getQwenUsage(accessToken, providerSpecificData);
111
+ case "iflow":
112
+ return await getIflowUsage(accessToken);
113
+ case "ollama":
114
+ return await getOllamaUsage(accessToken);
115
+ case "glm":
116
+ case "glm-cn":
117
+ return await getGlmUsage(apiKey, provider, proxyOptions);
118
+ case "minimax":
119
+ case "minimax-cn":
120
+ return await getMiniMaxUsage(apiKey, provider, proxyOptions);
121
+ default:
122
+ return { message: `Usage API not implemented for ${provider}` };
123
+ }
124
+ }
125
+
126
+ async function fetchCodeBuddyUid(accessToken, providerSpecificData = {}, proxyOptions = null, provider = "codebuddy") {
127
+ const cachedUid = providerSpecificData?.uid || providerSpecificData?.rawAuth?.uid;
128
+ if (cachedUid) return { uid: cachedUid, enterpriseId: providerSpecificData?.enterpriseId || null };
129
+
130
+ const defaultDomain = provider === "codebuddy-cn" ? "www.codebuddy.cn" : "www.codebuddy.ai";
131
+ const domain = providerSpecificData?.domain || providerSpecificData?.rawAuth?.domain || defaultDomain;
132
+ try {
133
+ const response = await proxyAwareFetch(`https://${domain}/v2/plugin/accounts`, {
134
+ method: "GET",
135
+ headers: {
136
+ Authorization: `Bearer ${accessToken}`,
137
+ Accept: "application/json",
138
+ "X-Domain": domain,
139
+ },
140
+ }, proxyOptions);
141
+
142
+ if (!response.ok) return { uid: null, enterpriseId: null };
143
+
144
+ const body = await response.json();
145
+ const accounts = body?.data?.accounts || [];
146
+ const account = accounts.find((a) => a.lastLogin) || accounts[0] || {};
147
+ return {
148
+ uid: account.uid || null,
149
+ enterpriseId: account.enterpriseId || null,
150
+ };
151
+ } catch {
152
+ return { uid: null, enterpriseId: null };
153
+ }
154
+ }
155
+
156
+ async function getCodeBuddyUsage(accessToken, providerSpecificData = {}, proxyOptions = null, apiKey = null, provider = "codebuddy") {
157
+ // Prefer the IDE OAuth token; fall back to the API key (chat key) when no
158
+ // OAuth token is stored. The billing/meter endpoint on both the global (.ai)
159
+ // and China (.cn) editions accepts the API key via Authorization: Bearer +
160
+ // X-Api-Key, so even zevairouter-generated chat keys are tried. If the
161
+ // endpoint rejects the key (401/403) we fall back to the local-router
162
+ // tracking message instead of throwing.
163
+ const isGeneratedKey = providerSpecificData?.authMode === "generated-api-key";
164
+ const effectiveToken = accessToken || apiKey;
165
+ const authMode = accessToken ? "oauth" : apiKey ? "api-key" : null;
166
+
167
+ if (!effectiveToken) {
168
+ return {
169
+ plan: "CodeBuddy",
170
+ message: "CodeBuddy upstream quota is unavailable because no valid IDE OAuth token or API key is stored.",
171
+ quotas: {},
172
+ trackingMode: "unavailable",
173
+ };
174
+ }
175
+
176
+ // Local-router fallback message used when an API-key (chat key) connection
177
+ // cannot read upstream quota — e.g. a generated key the upstream rejects.
178
+ const chatKeyFallback = {
179
+ plan: "CodeBuddy",
180
+ message: "CodeBuddy chat key active. Upstream quota is unavailable without a valid IDE OAuth token; use ZevaiRouter Usage for local request and token tracking.",
181
+ quotas: {},
182
+ authMode: isGeneratedKey ? "generated-api-key" : "api-key",
183
+ trackingMode: "local-router",
184
+ };
185
+
186
+ try {
187
+ const { uid, enterpriseId } = await fetchCodeBuddyUid(effectiveToken, providerSpecificData, proxyOptions, provider);
188
+
189
+ const response = await proxyAwareFetch(getCodeBuddyUsageUrl(providerSpecificData, provider), {
190
+ method: "POST",
191
+ headers: buildCodeBuddyUsageHeaders(effectiveToken, providerSpecificData, uid, enterpriseId, apiKey),
192
+ body: JSON.stringify(buildCodeBuddyUsageBody()),
193
+ }, proxyOptions);
194
+
195
+ const rawText = await response.text();
196
+ let payload = null;
197
+ try {
198
+ payload = rawText ? JSON.parse(rawText) : null;
199
+ } catch {
200
+ payload = null;
201
+ }
202
+
203
+ if (response.status === 401 || response.status === 403) {
204
+ // OAuth token rejected — surface explicitly (callers may force-refresh & retry).
205
+ if (authMode === "oauth") {
206
+ return {
207
+ plan: "CodeBuddy",
208
+ message: `CodeBuddy IDE OAuth token was rejected (${response.status}). Upstream quota is unavailable; use ZevaiRouter Usage for local request and token tracking.`,
209
+ quotas: {},
210
+ authMode: "oauth-rejected",
211
+ trackingMode: "local-router",
212
+ };
213
+ }
214
+ // API key (chat key) rejected — fall back to local-router tracking.
215
+ return chatKeyFallback;
216
+ }
217
+
218
+ if (!response.ok) {
219
+ return {
220
+ plan: "CodeBuddy",
221
+ message: `CodeBuddy quota endpoint returned ${response.status}.`,
222
+ quotas: {},
223
+ };
224
+ }
225
+
226
+ return {
227
+ ...parseCodeBuddyUsage(payload),
228
+ authMode,
229
+ };
230
+ } catch (error) {
231
+ return { plan: "CodeBuddy", message: `CodeBuddy connected. Unable to fetch quota: ${error.message}`, quotas: {} };
232
+ }
233
+ }
234
+
235
+ /**
236
+ * Parse reset date/time to ISO string
237
+ * Handles multiple formats: Unix timestamp (ms), ISO date string, etc.
238
+ */
239
+ function parseResetTime(resetValue) {
240
+ if (!resetValue) return null;
241
+
242
+ try {
243
+ // If it's already a Date object
244
+ if (resetValue instanceof Date) {
245
+ return resetValue.toISOString();
246
+ }
247
+
248
+ // Unix timestamps from provider APIs may be seconds or milliseconds.
249
+ if (typeof resetValue === 'number') {
250
+ return new Date(resetValue < 1e12 ? resetValue * 1000 : resetValue).toISOString();
251
+ }
252
+
253
+ // If it's a numeric string, treat it like a Unix timestamp too.
254
+ if (typeof resetValue === 'string') {
255
+ if (/^\d+$/.test(resetValue)) {
256
+ const timestamp = Number(resetValue);
257
+ return new Date(timestamp < 1e12 ? timestamp * 1000 : timestamp).toISOString();
258
+ }
259
+ return new Date(resetValue).toISOString();
260
+ }
261
+
262
+ return null;
263
+ } catch (error) {
264
+ console.warn(`Failed to parse reset time: ${resetValue}`, error);
265
+ return null;
266
+ }
267
+ }
268
+
269
+ function formatCodeBuddyDate(date) {
270
+ const pad = (value) => String(value).padStart(2, "0");
271
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
272
+ }
273
+
274
+ function buildCodeBuddyUsageBody() {
275
+ const now = new Date();
276
+ const rangeEnd = new Date(now);
277
+ rangeEnd.setFullYear(rangeEnd.getFullYear() + 101);
278
+
279
+ return {
280
+ PageNumber: 1,
281
+ PageSize: 200,
282
+ ProductCode: CODEBUDDY_CONFIG.productCode,
283
+ Status: [0, 3],
284
+ PackageCodes: Object.values(CODEBUDDY_CONFIG.packageCodes),
285
+ PackageEndTimeRangeBegin: formatCodeBuddyDate(now),
286
+ PackageEndTimeRangeEnd: formatCodeBuddyDate(rangeEnd),
287
+ };
288
+ }
289
+
290
+ function buildCodeBuddyUsageHeaders(accessToken, providerSpecificData = {}, uid = null, enterpriseId = null, apiKey = null) {
291
+ const domain = providerSpecificData?.domain || providerSpecificData?.rawAuth?.domain || "www.codebuddy.ai";
292
+
293
+ const headers = {
294
+ Authorization: `Bearer ${accessToken}`,
295
+ Accept: "application/json, text/plain, */*",
296
+ "Accept-Language": "zh-CN,zh;q=0.9",
297
+ "Content-Type": "application/json",
298
+ "X-Domain": domain,
299
+ };
300
+
301
+ // When authenticating with an API key (chat key) instead of an IDE OAuth
302
+ // token, also send the key via X-Api-Key — the billing/meter endpoint on
303
+ // both the global (.ai) and China (.cn) editions accepts this header.
304
+ if (apiKey) {
305
+ headers["X-Api-Key"] = apiKey;
306
+ }
307
+
308
+ if (uid) {
309
+ headers["X-User-Id"] = uid;
310
+ }
311
+ if (enterpriseId) {
312
+ headers["X-Enterprise-Id"] = enterpriseId;
313
+ headers["X-Tenant-Id"] = enterpriseId;
314
+ }
315
+
316
+ return headers;
317
+ }
318
+
319
+ function parseCodeBuddyUsage(payload) {
320
+ const data = payload?.data?.Response?.Data || payload?.Response?.Data || payload?.data || payload || {};
321
+ const accounts = Array.isArray(data?.Accounts)
322
+ ? data.Accounts
323
+ : Array.isArray(data?.accounts)
324
+ ? data.accounts
325
+ : [];
326
+
327
+ if (accounts.length === 0) {
328
+ return {
329
+ plan: "CodeBuddy",
330
+ message: "CodeBuddy connected. No quota records were returned.",
331
+ quotas: {},
332
+ };
333
+ }
334
+
335
+ const quotas = {};
336
+ let hasProPackage = false;
337
+
338
+ for (const account of accounts) {
339
+ if (!account || typeof account !== "object") continue;
340
+ const label = getCodeBuddyQuotaLabel(account.PackageCode);
341
+ if (!label) continue;
342
+
343
+ if (account.PackageCode === CODEBUDDY_CONFIG.packageCodes.proMon || account.PackageCode === CODEBUDDY_CONFIG.packageCodes.proYear) {
344
+ hasProPackage = true;
345
+ }
346
+
347
+ const quota = getCodeBuddyQuotaValues(account);
348
+ if (!quota) continue;
349
+
350
+ if (!quotas[label]) {
351
+ quotas[label] = {
352
+ used: 0,
353
+ total: 0,
354
+ remaining: 0,
355
+ resetAt: null,
356
+ unit: "credits",
357
+ unlimited: false,
358
+ };
359
+ }
360
+
361
+ quotas[label].used += quota.used;
362
+ quotas[label].total += quota.total;
363
+ quotas[label].remaining += quota.remaining;
364
+ quotas[label].resetAt = getEarlierReset(quotas[label].resetAt, quota.resetAt);
365
+ }
366
+
367
+ if (Object.keys(quotas).length === 0) {
368
+ return {
369
+ plan: hasProPackage ? "Pro" : "Free",
370
+ message: "CodeBuddy connected. Unable to extract quota values.",
371
+ quotas: {},
372
+ };
373
+ }
374
+
375
+ for (const quota of Object.values(quotas)) {
376
+ quota.remainingPercentage = quota.total > 0
377
+ ? Math.max(0, Math.min(100, (quota.remaining / quota.total) * 100))
378
+ : 0;
379
+ }
380
+
381
+ return {
382
+ plan: hasProPackage ? "Pro" : "Free",
383
+ quotas,
384
+ };
385
+ }
386
+
387
+ function getCodeBuddyQuotaLabel(packageCode) {
388
+ const codes = CODEBUDDY_CONFIG.packageCodes;
389
+ switch (packageCode) {
390
+ case codes.free:
391
+ case codes.freeMon:
392
+ case codes.proMon:
393
+ case codes.proYear:
394
+ return "Monthly Credits";
395
+ case codes.gift:
396
+ return "Gift Credits";
397
+ case codes.extra:
398
+ return "Extra Credits";
399
+ case codes.activity:
400
+ return "Activity Credits";
401
+ default:
402
+ return packageCode ? "Other Credits" : null;
403
+ }
404
+ }
405
+
406
+ function getCodeBuddyQuotaValues(account) {
407
+ const total = firstFiniteNumber(
408
+ account.CycleCapacitySizePrecise,
409
+ account.CycleCapacitySize,
410
+ account.CapacitySizePrecise,
411
+ account.CapacitySize,
412
+ );
413
+ const remaining = firstFiniteNumber(
414
+ account.CycleCapacityRemainPrecise,
415
+ account.CapacityRemainPrecise,
416
+ account.CapacityRemain,
417
+ );
418
+ const used = firstFiniteNumber(
419
+ account.CapacityUsedPrecise,
420
+ account.CapacityUsed,
421
+ total !== null && remaining !== null ? Math.max(0, total - remaining) : null,
422
+ );
423
+
424
+ if (total === null && remaining === null && used === null) return null;
425
+
426
+ const safeTotal = Math.max(0, total ?? ((used ?? 0) + (remaining ?? 0)));
427
+ const safeRemaining = Math.max(0, remaining ?? Math.max(0, safeTotal - (used ?? 0)));
428
+ const safeUsed = Math.max(0, used ?? Math.max(0, safeTotal - safeRemaining));
429
+
430
+ return {
431
+ total: safeTotal,
432
+ remaining: safeRemaining,
433
+ used: safeUsed,
434
+ resetAt: parseResetTime(account.CycleEndTime || account.DeductionEndTime || account.ExpiredTime),
435
+ };
436
+ }
437
+
438
+ function firstFiniteNumber(...values) {
439
+ for (const value of values) {
440
+ if (value === null || value === undefined || value === "") continue;
441
+ const number = Number(value);
442
+ if (Number.isFinite(number)) return number;
443
+ }
444
+ return null;
445
+ }
446
+
447
+ function getEarlierReset(current, next) {
448
+ if (!current) return next || null;
449
+ if (!next) return current;
450
+ return new Date(next).getTime() < new Date(current).getTime() ? next : current;
451
+ }
452
+
453
+ /**
454
+ * GitHub Copilot Usage
455
+ * Uses GitHub accessToken (not copilotToken) to call copilot_internal/user API
456
+ */
457
+ async function getGitHubUsage(accessToken, providerSpecificData, proxyOptions = null) {
458
+ try {
459
+ if (!accessToken) {
460
+ throw new Error("No GitHub access token available. Please re-authorize the connection.");
461
+ }
462
+
463
+ // copilot_internal/user API requires GitHub OAuth token, not copilotToken
464
+ const response = await proxyAwareFetch("https://api.github.com/copilot_internal/user", {
465
+ headers: {
466
+ "Authorization": `token ${accessToken}`,
467
+ "Accept": "application/json",
468
+ "X-GitHub-Api-Version": GITHUB_CONFIG.apiVersion,
469
+ "User-Agent": GITHUB_CONFIG.userAgent,
470
+ "Editor-Version": "vscode/1.100.0",
471
+ "Editor-Plugin-Version": "copilot-chat/0.26.7",
472
+ },
473
+ }, proxyOptions);
474
+
475
+ if (!response.ok) {
476
+ const error = await response.text();
477
+ throw new Error(`GitHub API error: ${error}`);
478
+ }
479
+
480
+ const data = await response.json();
481
+
482
+ // Handle different response formats (paid vs free)
483
+ if (data.quota_snapshots) {
484
+ // Paid plan format
485
+ const snapshots = data.quota_snapshots;
486
+ const resetAt = parseResetTime(data.quota_reset_date);
487
+
488
+ return {
489
+ plan: data.copilot_plan,
490
+ resetDate: data.quota_reset_date,
491
+ quotas: {
492
+ chat: { ...formatGitHubQuotaSnapshot(snapshots.chat), resetAt },
493
+ completions: { ...formatGitHubQuotaSnapshot(snapshots.completions), resetAt },
494
+ premium_interactions: { ...formatGitHubQuotaSnapshot(snapshots.premium_interactions), resetAt },
495
+ },
496
+ };
497
+ } else if (data.monthly_quotas || data.limited_user_quotas) {
498
+ // Free/limited plan format
499
+ const monthlyQuotas = data.monthly_quotas || {};
500
+ const usedQuotas = data.limited_user_quotas || {};
501
+ const resetAt = parseResetTime(data.limited_user_reset_date);
502
+
503
+ return {
504
+ plan: data.copilot_plan || data.access_type_sku,
505
+ resetDate: data.limited_user_reset_date,
506
+ quotas: {
507
+ chat: {
508
+ used: usedQuotas.chat || 0,
509
+ total: monthlyQuotas.chat || 0,
510
+ unlimited: false,
511
+ resetAt,
512
+ },
513
+ completions: {
514
+ used: usedQuotas.completions || 0,
515
+ total: monthlyQuotas.completions || 0,
516
+ unlimited: false,
517
+ resetAt,
518
+ },
519
+ },
520
+ };
521
+ }
522
+
523
+ return { message: "GitHub Copilot connected. Unable to parse quota data." };
524
+ } catch (error) {
525
+ throw new Error(`Failed to fetch GitHub usage: ${error.message}`);
526
+ }
527
+ }
528
+
529
+ function formatGitHubQuotaSnapshot(quota) {
530
+ if (!quota) return { used: 0, total: 0, unlimited: true };
531
+
532
+ return {
533
+ used: quota.entitlement - quota.remaining,
534
+ total: quota.entitlement,
535
+ remaining: quota.remaining,
536
+ unlimited: quota.unlimited || false,
537
+ };
538
+ }
539
+
540
+ /**
541
+ * Gemini CLI Usage \u2014 fetch per-model quota via Cloud Code Assist API.
542
+ * Uses retrieveUserQuota (same endpoint as `gemini /stats`) returning
543
+ * per-model buckets with remainingFraction + resetTime.
544
+ */
545
+ async function getGeminiUsage(accessToken, providerSpecificData, proxyOptions = null) {
546
+ if (!accessToken) {
547
+ return { plan: "Free", message: "Gemini CLI access token not available." };
548
+ }
549
+
550
+ try {
551
+ // Resolve project id: prefer connection-stored id, else loadCodeAssist lookup.
552
+ // #1271: OAuth save stores projectId on the connection, not providerSpecificData.
553
+ let projectId = normalizeCloudCodeProjectId(providerSpecificData?.projectId);
554
+ let plan = "Free";
555
+
556
+ if (!projectId) {
557
+ const subInfo = await getGeminiSubscriptionInfo(accessToken, proxyOptions);
558
+ projectId = normalizeCloudCodeProjectId(subInfo?.cloudaicompanionProject);
559
+ plan = subInfo?.currentTier?.name || plan;
560
+ }
561
+
562
+ if (!projectId) {
563
+ return {
564
+ plan,
565
+ message: "Gemini CLI project ID not available. Reconnect Gemini CLI, or configure a Google Cloud project with Gemini Code Assist access before checking quota.",
566
+ };
567
+ }
568
+
569
+ const controller = new AbortController();
570
+ const timeoutId = setTimeout(() => controller.abort(), 10000);
571
+ let response;
572
+ try {
573
+ response = await proxyAwareFetch(
574
+ "https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",
575
+ {
576
+ method: "POST",
577
+ headers: {
578
+ Authorization: `Bearer ${accessToken}`,
579
+ "Content-Type": "application/json",
580
+ },
581
+ body: JSON.stringify({ project: projectId }),
582
+ signal: controller.signal,
583
+ },
584
+ proxyOptions
585
+ );
586
+ } finally {
587
+ clearTimeout(timeoutId);
588
+ }
589
+
590
+ if (!response.ok) {
591
+ return { plan, message: `Gemini CLI quota error (${response.status}).` };
592
+ }
593
+
594
+ const data = await response.json();
595
+ const quotas = {};
596
+
597
+ if (Array.isArray(data.buckets)) {
598
+ for (const bucket of data.buckets) {
599
+ if (!bucket.modelId || bucket.remainingFraction == null) continue;
600
+
601
+ const remainingFraction = Number(bucket.remainingFraction) || 0;
602
+ const total = 1000; // Normalized base, matches antigravity convention
603
+ const remaining = Math.round(total * remainingFraction);
604
+ const used = Math.max(0, total - remaining);
605
+
606
+ quotas[bucket.modelId] = {
607
+ used,
608
+ total,
609
+ resetAt: parseResetTime(bucket.resetTime),
610
+ remainingPercentage: remainingFraction * 100,
611
+ unlimited: false,
612
+ };
613
+ }
614
+ }
615
+
616
+ return { plan, quotas };
617
+ } catch (error) {
618
+ return { message: `Gemini CLI error: ${error.message}` };
619
+ }
620
+ }
621
+
622
+ function normalizeCloudCodeProjectId(project) {
623
+ if (typeof project === "string") return project.trim() || null;
624
+ if (project && typeof project === "object" && typeof project.id === "string") {
625
+ return project.id.trim() || null;
626
+ }
627
+ return null;
628
+ }
629
+
630
+ /**
631
+ * Get Gemini CLI subscription info via loadCodeAssist
632
+ */
633
+ async function getGeminiSubscriptionInfo(accessToken, proxyOptions = null) {
634
+ const controller = new AbortController();
635
+ const timeoutId = setTimeout(() => controller.abort(), 10000);
636
+ try {
637
+ const response = await proxyAwareFetch(
638
+ "https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",
639
+ {
640
+ method: "POST",
641
+ headers: {
642
+ Authorization: `Bearer ${accessToken}`,
643
+ "Content-Type": "application/json",
644
+ },
645
+ body: JSON.stringify({
646
+ metadata: CLIENT_METADATA,
647
+ }),
648
+ signal: controller.signal,
649
+ },
650
+ proxyOptions
651
+ );
652
+ if (!response.ok) return null;
653
+ return await response.json();
654
+ } catch {
655
+ return null;
656
+ } finally {
657
+ clearTimeout(timeoutId);
658
+ }
659
+ }
660
+
661
+ /**
662
+ * Antigravity Usage - Fetch quota from Google Cloud Code API
663
+ */
664
+ async function getAntigravityUsage(accessToken, providerSpecificData, proxyOptions = null) {
665
+ try {
666
+ // Fetch subscription info once \u2014 reuse for both projectId and plan
667
+ const subscriptionInfo = await getAntigravitySubscriptionInfo(accessToken, proxyOptions);
668
+ const projectId = subscriptionInfo?.cloudaicompanionProject || null;
669
+
670
+ // Fetch quota data with timeout
671
+ const controller = new AbortController();
672
+ const timeoutId = setTimeout(() => controller.abort(), 10000); // 10s timeout
673
+
674
+ let response;
675
+ try {
676
+ response = await proxyAwareFetch(ANTIGRAVITY_CONFIG.quotaApiUrl, {
677
+ method: "POST",
678
+ headers: {
679
+ "Authorization": `Bearer ${accessToken}`,
680
+ "User-Agent": ANTIGRAVITY_CONFIG.userAgent,
681
+ "Content-Type": "application/json",
682
+ "X-Client-Name": "antigravity",
683
+ "X-Client-Version": "1.107.0",
684
+ "x-request-source": "local", // MITM bypass
685
+ },
686
+ body: JSON.stringify({
687
+ ...(projectId ? { project: projectId } : {})
688
+ }),
689
+ signal: controller.signal,
690
+ }, proxyOptions);
691
+ } finally {
692
+ clearTimeout(timeoutId);
693
+ }
694
+
695
+ if (response.status === 403) {
696
+ return {
697
+ message: "Antigravity quota API access forbidden. Chat may still work.",
698
+ quotas: {}
699
+ };
700
+ }
701
+
702
+ if (response.status === 401) {
703
+ return {
704
+ message: "Antigravity quota API authentication expired. Chat may still work.",
705
+ quotas: {}
706
+ };
707
+ }
708
+
709
+ if (!response.ok) {
710
+ throw new Error(`Antigravity API error: ${response.status}`);
711
+ }
712
+
713
+ const data = await response.json();
714
+ const quotas = {};
715
+
716
+ // Parse model quotas (inspired by vscode-antigravity-cockpit)
717
+ if (data.models) {
718
+ // Filter only recommended/important models (must match PROVIDER_MODELS ag ids)
719
+ const importantModels = [
720
+ 'gemini-3-flash-agent',
721
+ 'gemini-3.5-flash-low',
722
+ 'gemini-3.5-flash-extra-low',
723
+ 'gemini-pro-agent',
724
+ 'gemini-3.1-pro-low',
725
+ 'claude-sonnet-4-6',
726
+ 'claude-opus-4-6-thinking',
727
+ 'gpt-oss-120b-medium',
728
+ 'gemini-3-flash',
729
+ ];
730
+
731
+ for (const [modelKey, info] of Object.entries(data.models)) {
732
+ // Skip models without quota info
733
+ if (!info.quotaInfo) {
734
+ continue;
735
+ }
736
+
737
+ // Skip internal models and non-important models
738
+ if (info.isInternal || !importantModels.includes(modelKey)) {
739
+ continue;
740
+ }
741
+
742
+ const remainingFraction = info.quotaInfo.remainingFraction || 0;
743
+ const remainingPercentage = remainingFraction * 100;
744
+
745
+ // Convert percentage to used/total for UI compatibility
746
+ const total = 1000; // Normalized base
747
+ const remaining = Math.round(total * remainingFraction);
748
+ const used = total - remaining;
749
+
750
+ // Use modelKey as key (matches PROVIDER_MODELS id)
751
+ quotas[modelKey] = {
752
+ used,
753
+ total,
754
+ resetAt: parseResetTime(info.quotaInfo.resetTime),
755
+ remainingPercentage,
756
+ unlimited: false,
757
+ displayName: info.displayName || modelKey,
758
+ };
759
+ }
760
+ }
761
+
762
+ return {
763
+ plan: subscriptionInfo?.currentTier?.name || "Unknown",
764
+ quotas,
765
+ subscriptionInfo,
766
+ };
767
+ } catch (error) {
768
+ console.error("[Antigravity Usage] Error:", error.message, error.cause);
769
+ return { message: `Antigravity error: ${error.message}` };
770
+ }
771
+ }
772
+
773
+ /**
774
+ * Get Antigravity project ID from subscription info
775
+ */
776
+ async function getAntigravityProjectId(accessToken) {
777
+ try {
778
+ const info = await getAntigravitySubscriptionInfo(accessToken);
779
+ return info?.cloudaicompanionProject || null;
780
+ } catch {
781
+ return null;
782
+ }
783
+ }
784
+
785
+ /**
786
+ * Get Antigravity subscription info
787
+ */
788
+ async function getAntigravitySubscriptionInfo(accessToken, proxyOptions = null) {
789
+ const controller = new AbortController();
790
+ const timeoutId = setTimeout(() => controller.abort(), 10000); // 10s timeout
791
+ try {
792
+ const response = await proxyAwareFetch(ANTIGRAVITY_CONFIG.loadProjectApiUrl, {
793
+ method: "POST",
794
+ headers: {
795
+ "Authorization": `Bearer ${accessToken}`,
796
+ "User-Agent": ANTIGRAVITY_CONFIG.userAgent,
797
+ "Content-Type": "application/json",
798
+ "x-request-source": "local", // MITM bypass
799
+ },
800
+ body: JSON.stringify({ metadata: CLIENT_METADATA, mode: 1 }),
801
+ signal: controller.signal,
802
+ }, proxyOptions);
803
+
804
+ if (!response.ok) return null;
805
+ return await response.json();
806
+ } catch (error) {
807
+ console.error("[Antigravity Subscription] Error:", error.message);
808
+ return null;
809
+ } finally {
810
+ clearTimeout(timeoutId);
811
+ }
812
+ }
813
+
814
+ /**
815
+ * Claude Usage - Primary: OAuth endpoint, Fallback: legacy settings/org endpoint
816
+ */
817
+ async function getClaudeUsage(accessToken, proxyOptions = null) {
818
+ try {
819
+ // Primary: OAuth usage endpoint (Claude Code consumer OAuth tokens)
820
+ const oauthResponse = await proxyAwareFetch(CLAUDE_CONFIG.oauthUsageUrl, {
821
+ method: "GET",
822
+ headers: {
823
+ "Authorization": `Bearer ${accessToken}`,
824
+ "anthropic-beta": "oauth-2025-04-20",
825
+ "anthropic-version": CLAUDE_CONFIG.apiVersion,
826
+ },
827
+ }, proxyOptions);
828
+
829
+ if (oauthResponse.ok) {
830
+ const data = await oauthResponse.json();
831
+ const quotas = {};
832
+
833
+ // utilization = % USED (e.g. 87 means 87% used, 13% remaining)
834
+ const hasUtilization = (window) =>
835
+ window && typeof window === "object" && typeof window.utilization === "number";
836
+
837
+ const createQuotaObject = (window) => {
838
+ const used = window.utilization;
839
+ const remaining = Math.max(0, 100 - used);
840
+ return {
841
+ used,
842
+ total: 100,
843
+ remaining,
844
+ remainingPercentage: remaining,
845
+ resetAt: parseResetTime(window.resets_at),
846
+ unlimited: false,
847
+ };
848
+ };
849
+
850
+ if (hasUtilization(data.five_hour)) {
851
+ quotas["session (5h)"] = createQuotaObject(data.five_hour);
852
+ }
853
+
854
+ if (hasUtilization(data.seven_day)) {
855
+ quotas["weekly (7d)"] = createQuotaObject(data.seven_day);
856
+ }
857
+
858
+ // Parse model-specific weekly windows (e.g. seven_day_sonnet, seven_day_opus)
859
+ for (const [key, value] of Object.entries(data)) {
860
+ if (key.startsWith("seven_day_") && key !== "seven_day" && hasUtilization(value)) {
861
+ const modelName = key.replace("seven_day_", "");
862
+ quotas[`weekly ${modelName} (7d)`] = createQuotaObject(value);
863
+ }
864
+ }
865
+
866
+ return {
867
+ plan: "Claude Code",
868
+ extraUsage: data.extra_usage ?? null,
869
+ quotas,
870
+ };
871
+ }
872
+
873
+ // Fallback: legacy settings + org usage endpoint
874
+ console.warn(`[Claude Usage] OAuth endpoint returned ${oauthResponse.status}, falling back to legacy`);
875
+ return await getClaudeUsageLegacy(accessToken, proxyOptions);
876
+ } catch (error) {
877
+ return { message: `Claude connected. Unable to fetch usage: ${error.message}` };
878
+ }
879
+ }
880
+
881
+ /**
882
+ * Legacy Claude usage for API key / org admin users
883
+ */
884
+ async function getClaudeUsageLegacy(accessToken, proxyOptions = null) {
885
+ try {
886
+ const settingsResponse = await proxyAwareFetch(CLAUDE_CONFIG.settingsUrl, {
887
+ method: "GET",
888
+ headers: {
889
+ "Authorization": `Bearer ${accessToken}`,
890
+ "anthropic-version": CLAUDE_CONFIG.apiVersion,
891
+ },
892
+ }, proxyOptions);
893
+
894
+ if (settingsResponse.ok) {
895
+ const settings = await settingsResponse.json();
896
+
897
+ if (settings.organization_id) {
898
+ const usageResponse = await proxyAwareFetch(
899
+ CLAUDE_CONFIG.usageUrl.replace("{org_id}", settings.organization_id),
900
+ {
901
+ method: "GET",
902
+ headers: {
903
+ "Authorization": `Bearer ${accessToken}`,
904
+ "anthropic-version": CLAUDE_CONFIG.apiVersion,
905
+ },
906
+ },
907
+ proxyOptions
908
+ );
909
+
910
+ if (usageResponse.ok) {
911
+ const usage = await usageResponse.json();
912
+ return {
913
+ plan: settings.plan || "Unknown",
914
+ organization: settings.organization_name,
915
+ quotas: usage,
916
+ };
917
+ }
918
+ }
919
+
920
+ return {
921
+ plan: settings.plan || "Unknown",
922
+ organization: settings.organization_name,
923
+ message: "Claude connected. Usage details require admin access.",
924
+ };
925
+ }
926
+
927
+ return { message: "Claude connected. Usage API requires admin permissions." };
928
+ } catch (error) {
929
+ return { message: `Claude connected. Unable to fetch usage: ${error.message}` };
930
+ }
931
+ }
932
+
933
+ /**
934
+ * Codex (OpenAI) Usage - Fetch from ChatGPT backend API
935
+ */
936
+ function toFiniteNumber(value, fallback = 0) {
937
+ if (typeof value === "number" && Number.isFinite(value)) return value;
938
+ if (typeof value === "string" && value.trim()) {
939
+ const parsed = Number(value);
940
+ if (Number.isFinite(parsed)) return parsed;
941
+ }
942
+ return fallback;
943
+ }
944
+
945
+ function getCodexRateLimitBody(snapshot) {
946
+ if (!snapshot || typeof snapshot !== "object" || Array.isArray(snapshot)) return null;
947
+ return snapshot.rate_limit && typeof snapshot.rate_limit === "object"
948
+ ? snapshot.rate_limit
949
+ : snapshot;
950
+ }
951
+
952
+ function formatCodexWindow(window) {
953
+ const used = Math.max(0, Math.min(100, toFiniteNumber(window?.used_percent ?? window?.percent_used, 0)));
954
+ return {
955
+ used,
956
+ total: 100,
957
+ remaining: Math.max(0, 100 - used),
958
+ resetAt: parseResetTime(window?.reset_at ?? window?.resets_at ?? window?.resetAt ?? null),
959
+ unlimited: false,
960
+ };
961
+ }
962
+
963
+ function appendCodexQuotaWindows(quotas, prefix, snapshot) {
964
+ const rateLimit = getCodexRateLimitBody(snapshot);
965
+ if (!rateLimit) return false;
966
+
967
+ const primary = rateLimit.primary_window || rateLimit.primary || snapshot.primary_window || snapshot.primary;
968
+ const secondary = rateLimit.secondary_window || rateLimit.secondary || snapshot.secondary_window || snapshot.secondary;
969
+ let added = false;
970
+
971
+ if (primary) {
972
+ quotas[prefix ? `${prefix}_session` : "session"] = formatCodexWindow(primary);
973
+ added = true;
974
+ }
975
+ if (secondary) {
976
+ quotas[prefix ? `${prefix}_weekly` : "weekly"] = formatCodexWindow(secondary);
977
+ added = true;
978
+ }
979
+
980
+ return added;
981
+ }
982
+
983
+ function getCodexReviewRateLimit(data) {
984
+ if (data.code_review_rate_limit || data.review_rate_limit) {
985
+ return data.code_review_rate_limit || data.review_rate_limit;
986
+ }
987
+
988
+ const byLimitId = data.rate_limits_by_limit_id;
989
+ if (byLimitId && typeof byLimitId === "object" && !Array.isArray(byLimitId)) {
990
+ return byLimitId.code_review || byLimitId.codex_review || byLimitId.review || null;
991
+ }
992
+
993
+ const additional = Array.isArray(data.additional_rate_limits) ? data.additional_rate_limits : [];
994
+ return additional.find((entry) => {
995
+ const id = String(entry?.limit_name || entry?.metered_feature || entry?.id || "").toLowerCase();
996
+ return id === "code_review" || id === "codex_review" || id === "review" || id.includes("review");
997
+ }) || null;
998
+ }
999
+
1000
+ async function getCodexUsage(accessToken, proxyOptions = null) {
1001
+ try {
1002
+ const response = await proxyAwareFetch(CODEX_CONFIG.usageUrl, {
1003
+ method: "GET",
1004
+ headers: {
1005
+ "Authorization": `Bearer ${accessToken}`,
1006
+ "Accept": "application/json",
1007
+ },
1008
+ }, proxyOptions);
1009
+
1010
+ if (!response.ok) {
1011
+ return { message: `Codex connected. Usage API temporarily unavailable (${response.status}).` };
1012
+ }
1013
+
1014
+ const data = await response.json();
1015
+ const normalRateLimit = data.rate_limit || data.rate_limits || data.rate_limits_by_limit_id?.codex || {};
1016
+ const reviewRateLimit = getCodexReviewRateLimit(data);
1017
+ const quotas = {};
1018
+
1019
+ appendCodexQuotaWindows(quotas, "", normalRateLimit);
1020
+ appendCodexQuotaWindows(quotas, "review", reviewRateLimit);
1021
+
1022
+ return {
1023
+ plan: data.plan_type || data.summary?.plan || "unknown",
1024
+ limitReached: getCodexRateLimitBody(normalRateLimit)?.limit_reached || false,
1025
+ reviewLimitReached: getCodexRateLimitBody(reviewRateLimit)?.limit_reached || false,
1026
+ quotas,
1027
+ };
1028
+ } catch (error) {
1029
+ throw new Error(`Failed to fetch Codex usage: ${error.message}`);
1030
+ }
1031
+ }
1032
+
1033
+ /**
1034
+ * Kiro (AWS CodeWhisperer) Usage
1035
+ */
1036
+ function parseKiroQuotaData(data) {
1037
+ const usageList = data.usageBreakdownList || [];
1038
+ const quotaInfo = {};
1039
+ const resetAt = parseResetTime(data.nextDateReset || data.resetDate);
1040
+
1041
+ usageList.forEach((breakdown) => {
1042
+ const resourceType = breakdown.resourceType?.toLowerCase() || "unknown";
1043
+ const used = breakdown.currentUsageWithPrecision || 0;
1044
+ const total = breakdown.usageLimitWithPrecision || 0;
1045
+
1046
+ quotaInfo[resourceType] = {
1047
+ used,
1048
+ total,
1049
+ remaining: total - used,
1050
+ resetAt,
1051
+ unlimited: false,
1052
+ };
1053
+
1054
+ // Add free trial if available
1055
+ if (breakdown.freeTrialInfo) {
1056
+ const freeUsed = breakdown.freeTrialInfo.currentUsageWithPrecision || 0;
1057
+ const freeTotal = breakdown.freeTrialInfo.usageLimitWithPrecision || 0;
1058
+
1059
+ quotaInfo[`${resourceType}_freetrial`] = {
1060
+ used: freeUsed,
1061
+ total: freeTotal,
1062
+ remaining: freeTotal - freeUsed,
1063
+ resetAt: parseResetTime(breakdown.freeTrialInfo.freeTrialExpiry || resetAt),
1064
+ unlimited: false,
1065
+ };
1066
+ }
1067
+ });
1068
+
1069
+ return {
1070
+ plan: data.subscriptionInfo?.subscriptionTitle || "Kiro",
1071
+ quotas: quotaInfo,
1072
+ };
1073
+ }
1074
+
1075
+ async function getKiroUsage(accessToken, providerSpecificData, proxyOptions = null) {
1076
+ // Default profileArn fallback
1077
+ const DEFAULT_PROFILE_ARN = "arn:aws:codewhisperer:us-east-1:638616132270:profile/AAAACCCCXXXX";
1078
+ const profileArn = providerSpecificData?.profileArn || DEFAULT_PROFILE_ARN;
1079
+ const authMethod = providerSpecificData?.authMethod || "builder-id";
1080
+
1081
+ const getUsageParams = new URLSearchParams({
1082
+ isEmailRequired: "true",
1083
+ origin: "AI_EDITOR",
1084
+ resourceType: "AGENTIC_REQUEST",
1085
+ });
1086
+
1087
+ // For compatibility, try multiple known Kiro usage endpoints
1088
+ const attempts = [
1089
+ {
1090
+ name: "codewhisperer-get",
1091
+ run: async () => proxyAwareFetch(
1092
+ `https://codewhisperer.us-east-1.amazonaws.com/getUsageLimits?${getUsageParams.toString()}`,
1093
+ {
1094
+ method: "GET",
1095
+ headers: {
1096
+ "Authorization": `Bearer ${accessToken}`,
1097
+ "Accept": "application/json",
1098
+ "x-amz-user-agent": "aws-sdk-js/1.0.0 KiroIDE",
1099
+ "user-agent": "aws-sdk-js/1.0.0 KiroIDE",
1100
+ },
1101
+ },
1102
+ proxyOptions
1103
+ ),
1104
+ },
1105
+ {
1106
+ name: "codewhisperer-post",
1107
+ run: async () => proxyAwareFetch("https://codewhisperer.us-east-1.amazonaws.com", {
1108
+ method: "POST",
1109
+ headers: {
1110
+ "Authorization": `Bearer ${accessToken}`,
1111
+ "Content-Type": "application/x-amz-json-1.0",
1112
+ "x-amz-target": "AmazonCodeWhispererService.GetUsageLimits",
1113
+ "Accept": "application/json",
1114
+ },
1115
+ body: JSON.stringify({
1116
+ origin: "AI_EDITOR",
1117
+ profileArn,
1118
+ resourceType: "AGENTIC_REQUEST",
1119
+ }),
1120
+ }, proxyOptions),
1121
+ },
1122
+ {
1123
+ name: "q-get",
1124
+ run: async () => {
1125
+ const params = new URLSearchParams({
1126
+ origin: "AI_EDITOR",
1127
+ profileArn,
1128
+ resourceType: "AGENTIC_REQUEST",
1129
+ });
1130
+ return proxyAwareFetch(`https://q.us-east-1.amazonaws.com/getUsageLimits?${params}`, {
1131
+ method: "GET",
1132
+ headers: {
1133
+ "Authorization": `Bearer ${accessToken}`,
1134
+ "Accept": "application/json",
1135
+ },
1136
+ }, proxyOptions);
1137
+ },
1138
+ },
1139
+ ];
1140
+
1141
+ let sawAuthError = false;
1142
+ const errors = [];
1143
+
1144
+ for (const attempt of attempts) {
1145
+ try {
1146
+ const response = await attempt.run();
1147
+ if (!response.ok) {
1148
+ const errorText = await response.text().catch(() => "");
1149
+ if (response.status === 401 || response.status === 403) {
1150
+ sawAuthError = true;
1151
+ }
1152
+ errors.push(`${attempt.name}:${response.status}${errorText ? `:${errorText}` : ""}`);
1153
+ continue;
1154
+ }
1155
+
1156
+ const data = await response.json();
1157
+ return parseKiroQuotaData(data);
1158
+ } catch (error) {
1159
+ errors.push(`${attempt.name}:${error.message}`);
1160
+ }
1161
+ }
1162
+
1163
+ if (sawAuthError && authMethod === "idc") {
1164
+ return {
1165
+ message: "Kiro quota API is unavailable for the current AWS IAM Identity Center session. Chat may still work. If this persists after renewing your session, reconnect Kiro.",
1166
+ quotas: {},
1167
+ };
1168
+ }
1169
+
1170
+ // Social auth (Google/GitHub) - these use a different token format that may not work with AWS CodeWhisperer quota APIs
1171
+ if (sawAuthError && (authMethod === "google" || authMethod === "github")) {
1172
+ return {
1173
+ message: "Kiro quota API authentication expired. Chat may still work.",
1174
+ quotas: {},
1175
+ };
1176
+ }
1177
+
1178
+ if (sawAuthError) {
1179
+ return {
1180
+ message: "Kiro quota API rejected the current token. Chat may still work.",
1181
+ quotas: {},
1182
+ };
1183
+ }
1184
+
1185
+ const fallbackMessage =
1186
+ errors.length > 0
1187
+ ? `Unable to fetch Kiro usage right now. (${errors[errors.length - 1]})`
1188
+ : "Unable to fetch Kiro usage right now.";
1189
+
1190
+ return {
1191
+ message: fallbackMessage,
1192
+ quotas: {},
1193
+ };
1194
+ }
1195
+
1196
+ /**
1197
+ * Qwen Usage
1198
+ */
1199
+ async function getQwenUsage(accessToken, providerSpecificData) {
1200
+ try {
1201
+ const resourceUrl = providerSpecificData?.resourceUrl;
1202
+ if (!resourceUrl) {
1203
+ return { message: "Qwen connected. No resource URL available." };
1204
+ }
1205
+
1206
+ // Qwen may have usage endpoint at resource URL
1207
+ return { message: "Qwen connected. Usage tracked per request." };
1208
+ } catch (error) {
1209
+ return { message: "Unable to fetch Qwen usage." };
1210
+ }
1211
+ }
1212
+
1213
+ /**
1214
+ * iFlow Usage
1215
+ */
1216
+ async function getIflowUsage(accessToken) {
1217
+ try {
1218
+ // iFlow may have usage endpoint
1219
+ return { message: "iFlow connected. Usage tracked per request." };
1220
+ } catch (error) {
1221
+ return { message: "Unable to fetch iFlow usage." };
1222
+ }
1223
+ }
1224
+
1225
+ /**
1226
+ * Ollama Cloud Usage
1227
+ * Ollama Cloud uses an API key from ollama.com/settings/keys
1228
+ * and has no public usage API \u2014 free tier has light usage limits (resets every 5h & 7d).
1229
+ * This returns an informational message with the plan details.
1230
+ */
1231
+ async function getOllamaUsage(accessToken, providerSpecificData) {
1232
+ try {
1233
+ // Ollama Cloud does not expose a public quota/usage API.
1234
+ // The provider is configured as noAuth with a notice explaining limits.
1235
+ // We return a graceful message so the UI shows a friendly state instead of an error.
1236
+ const plan = providerSpecificData?.plan || "Free";
1237
+ return {
1238
+ plan,
1239
+ message: "Ollama Cloud uses a free tier with light usage limits (resets every 5h & 7d). For detailed usage tracking, visit ollama.com/settings/keys.",
1240
+ quotas: [],
1241
+ };
1242
+ } catch (error) {
1243
+ return { message: "Unable to fetch Ollama Cloud usage." };
1244
+ }
1245
+ }
1246
+
1247
+ /**
1248
+ * GLM Coding Plan usage (international + China regions)
1249
+ */
1250
+ async function getGlmUsage(apiKey, provider, proxyOptions = null) {
1251
+ if (!apiKey) {
1252
+ return { message: "GLM API key not available." };
1253
+ }
1254
+
1255
+ const region = provider === "glm-cn" ? "china" : "international";
1256
+ const quotaUrl = GLM_QUOTA_URLS[region];
1257
+
1258
+ try {
1259
+ const response = await proxyAwareFetch(quotaUrl, {
1260
+ headers: {
1261
+ Authorization: `Bearer ${apiKey}`,
1262
+ Accept: "application/json",
1263
+ },
1264
+ }, proxyOptions);
1265
+
1266
+ if (!response.ok) {
1267
+ if (response.status === 401) {
1268
+ return { message: "GLM API key invalid or expired." };
1269
+ }
1270
+ return { message: `GLM quota API error (${response.status}).` };
1271
+ }
1272
+
1273
+ const json = await response.json();
1274
+ const data = json?.data && typeof json.data === "object" ? json.data : {};
1275
+ const limits = Array.isArray(data.limits) ? data.limits : [];
1276
+ const quotas = {};
1277
+
1278
+ for (const limit of limits) {
1279
+ if (!limit || limit.type !== "TOKENS_LIMIT") continue;
1280
+ const usedPercent = Number(limit.percentage) || 0;
1281
+ const resetMs = Number(limit.nextResetTime) || 0;
1282
+ const remaining = Math.max(0, 100 - usedPercent);
1283
+
1284
+ quotas["session"] = {
1285
+ used: usedPercent,
1286
+ total: 100,
1287
+ remaining,
1288
+ remainingPercentage: remaining,
1289
+ resetAt: resetMs > 0 ? new Date(resetMs).toISOString() : null,
1290
+ unlimited: false,
1291
+ };
1292
+ }
1293
+
1294
+ const levelRaw = typeof data.level === "string" ? data.level : "";
1295
+ const plan = levelRaw
1296
+ ? levelRaw.charAt(0).toUpperCase() + levelRaw.slice(1).toLowerCase()
1297
+ : "Unknown";
1298
+
1299
+ return { plan, quotas };
1300
+ } catch (error) {
1301
+ return { message: `GLM error: ${error.message}` };
1302
+ }
1303
+ }
1304
+
1305
+ // \u2500\u2500 MiniMax helpers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
1306
+ function getMiniMaxField(model, snakeKey, camelKey) {
1307
+ if (!model || typeof model !== "object") return null;
1308
+ return model[snakeKey] ?? model[camelKey] ?? null;
1309
+ }
1310
+
1311
+ function getMiniMaxModelName(model) {
1312
+ return String(getMiniMaxField(model, "model_name", "modelName") || "").trim();
1313
+ }
1314
+
1315
+ function formatMiniMaxQuotaName(model) {
1316
+ const rawName = getMiniMaxModelName(model);
1317
+ if (!rawName) return "MiniMax";
1318
+
1319
+ // M3+ shared quota pool: MiniMax reports M-series as a single wildcard
1320
+ // bucket ("MiniMax-M*"). Newer responses rename it to plain "general".
1321
+ // Render both as a friendly series label rather than leaking the
1322
+ // asterisk or the vague "general" word to the UI.
1323
+ if (rawName === "MiniMax-M*" || rawName === "general") return "M-series";
1324
+
1325
+ return rawName
1326
+ .replace(/[_-]+/g, " ")
1327
+ .replace(/\s+/g, " ")
1328
+ .trim()
1329
+ .replace(/\b\w/g, (ch) => ch.toUpperCase())
1330
+ .replace(/\bTo\b/g, "to")
1331
+ .replace(/\bTts\b/g, "TTS")
1332
+ .replace(/\bHd\b/g, "HD");
1333
+ }
1334
+
1335
+ function getMiniMaxProvidedPercent(model, snakeKey, camelKey) {
1336
+ if (!model || typeof model !== "object") return null;
1337
+ const raw = model[snakeKey] ?? model[camelKey];
1338
+ if (raw === null || raw === undefined) return null;
1339
+ const num = Number(raw);
1340
+ if (!Number.isFinite(num)) return null;
1341
+ return Math.max(0, Math.min(100, num));
1342
+ }
1343
+
1344
+ function getMiniMaxSessionTotal(model) {
1345
+ return Math.max(0, Number(getMiniMaxField(model, "current_interval_total_count", "currentIntervalTotalCount")) || 0);
1346
+ }
1347
+
1348
+ function getMiniMaxWeeklyTotal(model) {
1349
+ return Math.max(0, Number(getMiniMaxField(model, "current_weekly_total_count", "currentWeeklyTotalCount")) || 0);
1350
+ }
1351
+
1352
+ function hasMiniMaxQuota(model) {
1353
+ // Old format has real count totals; M3-era M-series buckets ship percent-only
1354
+ // (count fields are 0) so accept those too.
1355
+ if (getMiniMaxSessionTotal(model) > 0 || getMiniMaxWeeklyTotal(model) > 0) return true;
1356
+ if (getMiniMaxProvidedPercent(model, "current_interval_remaining_percent", "currentIntervalRemainingPercent") !== null) return true;
1357
+ if (getMiniMaxProvidedPercent(model, "current_weekly_remaining_percent", "currentWeeklyRemainingPercent") !== null) return true;
1358
+ return false;
1359
+ }
1360
+
1361
+ function getMiniMaxResetAt(model, capturedAtMs, remainsSnake, remainsCamel, endSnake, endCamel) {
1362
+ const remainsMs = Number(getMiniMaxField(model, remainsSnake, remainsCamel)) || 0;
1363
+ if (remainsMs > 0) return new Date(capturedAtMs + remainsMs).toISOString();
1364
+ return parseResetTime(getMiniMaxField(model, endSnake, endCamel));
1365
+ }
1366
+
1367
+ function buildMiniMaxQuota(total, count, resetAt, countMeansRemaining, providedPercent = null) {
1368
+ const safeTotal = Math.max(0, total);
1369
+ const used = countMeansRemaining ? Math.max(safeTotal - count, 0) : Math.min(Math.max(0, count), safeTotal);
1370
+ const remaining = Math.max(safeTotal - used, 0);
1371
+ // M-series buckets ship percent-only (count = 0). Prefer the upstream value
1372
+ // when present, otherwise fall back to the computed percentage. When the
1373
+ // quota is unbounded (no count) and no upstream percent is available, surface
1374
+ // the percent anyway as long as it is defined.
1375
+ const remainingPercentage = providedPercentage(providedPercent, remaining, safeTotal);
1376
+ return {
1377
+ used,
1378
+ total: safeTotal,
1379
+ remaining,
1380
+ remainingPercentage,
1381
+ resetAt,
1382
+ unlimited: false,
1383
+ };
1384
+ }
1385
+
1386
+ function providedPercentage(provided, remaining, total) {
1387
+ if (provided !== null && provided !== undefined && Number.isFinite(provided)) {
1388
+ return Math.max(0, Math.min(100, provided));
1389
+ }
1390
+ return total > 0 ? Math.max(0, Math.min(100, (remaining / total) * 100)) : 0;
1391
+ }
1392
+
1393
+ function addMiniMaxQuota(quotas, key, model, getTotal, countSnake, countCamel, percentSnake, percentCamel, resetArgs, countMeansRemaining) {
1394
+ const total = getTotal(model);
1395
+ const providedPercent = getMiniMaxProvidedPercent(model, percentSnake, percentCamel);
1396
+ if (total <= 0 && providedPercent === null) return;
1397
+
1398
+ const count = Math.max(0, Number(getMiniMaxField(model, countSnake, countCamel)) || 0);
1399
+ let effectiveTotal = total;
1400
+ let effectiveCount = count;
1401
+ if (total <= 0) {
1402
+ // M-series bucket: API only ships *_remaining_percent (count = 0). Normalize
1403
+ // to total=100. The downstream buildMiniMaxQuota treats the count as
1404
+ // "used" or "remaining" depending on countMeansRemaining, so the synthetic
1405
+ // count has to match that semantic \u2014 otherwise the UI flips the percentage.
1406
+ effectiveTotal = 100;
1407
+ const pct = providedPercent;
1408
+ effectiveCount = countMeansRemaining
1409
+ ? Math.round(effectiveTotal * (pct / 100))
1410
+ : Math.round(effectiveTotal * (1 - pct / 100));
1411
+ }
1412
+ quotas[key] = buildMiniMaxQuota(
1413
+ effectiveTotal,
1414
+ effectiveCount,
1415
+ getMiniMaxResetAt(model, ...resetArgs),
1416
+ countMeansRemaining,
1417
+ providedPercent
1418
+ );
1419
+ }
1420
+
1421
+ /**
1422
+ * MiniMax Token Plan / Coding Plan usage
1423
+ */
1424
+ async function getMiniMaxUsage(apiKey, provider, proxyOptions = null) {
1425
+ if (!apiKey) {
1426
+ return { message: "MiniMax API key not available." };
1427
+ }
1428
+
1429
+ const usageUrls = MINIMAX_USAGE_URLS[provider] || [];
1430
+ let lastErrorMessage = "";
1431
+
1432
+ for (let index = 0; index < usageUrls.length; index += 1) {
1433
+ const usageUrl = usageUrls[index];
1434
+ const canFallback = index < usageUrls.length - 1;
1435
+
1436
+ try {
1437
+ const response = await proxyAwareFetch(usageUrl, {
1438
+ method: "GET",
1439
+ headers: {
1440
+ Authorization: `Bearer ${apiKey}`,
1441
+ Accept: "application/json",
1442
+ "Content-Type": "application/json",
1443
+ },
1444
+ }, proxyOptions);
1445
+
1446
+ const rawText = await response.text();
1447
+ let payload = {};
1448
+ if (rawText) {
1449
+ try { payload = JSON.parse(rawText); } catch { payload = {}; }
1450
+ }
1451
+
1452
+ const baseResp = (payload?.base_resp ?? payload?.baseResp) || {};
1453
+ const apiStatusCode = Number(baseResp.status_code ?? baseResp.statusCode) || 0;
1454
+ const apiStatusMessage = String(baseResp.status_msg ?? baseResp.statusMsg ?? "").trim();
1455
+ const combined = `${apiStatusMessage} ${rawText}`.trim();
1456
+ const authLike = /token plan|coding plan|invalid api key|invalid key|unauthorized|inactive/i;
1457
+
1458
+ if (response.status === 401 || response.status === 403 || apiStatusCode === 1004 || authLike.test(combined)) {
1459
+ return { message: "MiniMax API key invalid or inactive. Use an active Token/Coding Plan key." };
1460
+ }
1461
+
1462
+ if (!response.ok) {
1463
+ lastErrorMessage = `MiniMax usage endpoint error (${response.status})`;
1464
+ if ((response.status === 404 || response.status === 405 || response.status >= 500) && canFallback) continue;
1465
+ return { message: `MiniMax connected. ${lastErrorMessage}` };
1466
+ }
1467
+
1468
+ if (apiStatusCode !== 0) {
1469
+ return { message: `MiniMax connected. ${apiStatusMessage || "Upstream quota API error"}` };
1470
+ }
1471
+
1472
+ const modelRemains = payload?.model_remains ?? payload?.modelRemains;
1473
+ const allModels = Array.isArray(modelRemains) ? modelRemains : [];
1474
+ const quotaModels = allModels.filter(hasMiniMaxQuota);
1475
+
1476
+ if (quotaModels.length === 0) {
1477
+ return { message: "MiniMax connected. No quota data was returned." };
1478
+ }
1479
+
1480
+ const capturedAtMs = Date.now();
1481
+ const countMeansRemaining = usageUrl.includes("/coding_plan/remains");
1482
+ const quotas = {};
1483
+
1484
+ for (const model of quotaModels) {
1485
+ const displayName = formatMiniMaxQuotaName(model);
1486
+ addMiniMaxQuota(
1487
+ quotas,
1488
+ `${displayName} (5h)`,
1489
+ model,
1490
+ getMiniMaxSessionTotal,
1491
+ "current_interval_usage_count",
1492
+ "currentIntervalUsageCount",
1493
+ "current_interval_remaining_percent",
1494
+ "currentIntervalRemainingPercent",
1495
+ [capturedAtMs, "remains_time", "remainsTime", "end_time", "endTime"],
1496
+ countMeansRemaining
1497
+ );
1498
+
1499
+ addMiniMaxQuota(
1500
+ quotas,
1501
+ `${displayName} (7d)`,
1502
+ model,
1503
+ getMiniMaxWeeklyTotal,
1504
+ "current_weekly_usage_count",
1505
+ "currentWeeklyUsageCount",
1506
+ "current_weekly_remaining_percent",
1507
+ "currentWeeklyRemainingPercent",
1508
+ [capturedAtMs, "weekly_remains_time", "weeklyRemainsTime", "weekly_end_time", "weeklyEndTime"],
1509
+ countMeansRemaining
1510
+ );
1511
+ }
1512
+
1513
+ if (Object.keys(quotas).length === 0) {
1514
+ return { message: "MiniMax connected. Unable to extract quota usage." };
1515
+ }
1516
+
1517
+ return { quotas };
1518
+ } catch (error) {
1519
+ lastErrorMessage = error.message;
1520
+ if (!canFallback) break;
1521
+ }
1522
+ }
1523
+
1524
+ return { message: lastErrorMessage ? `MiniMax connected. Unable to fetch usage: ${lastErrorMessage}` : "MiniMax connected. Unable to fetch usage." };
1525
+ }
1526
+
1527
+ async function getQoderUsage(accessToken, proxyOptions = null) {
1528
+ if (!accessToken) {
1529
+ return { message: "Qoder usage unavailable: no access token" };
1530
+ }
1531
+ try {
1532
+ const response = await proxyAwareFetch(
1533
+ "https://openapi.qoder.sh/api/v2/quota/usage",
1534
+ {
1535
+ method: "GET",
1536
+ headers: {
1537
+ Authorization: `Bearer ${accessToken}`,
1538
+ Accept: "application/json",
1539
+ },
1540
+ },
1541
+ proxyOptions,
1542
+ );
1543
+ if (!response.ok) {
1544
+ return { message: `Qoder connected. Usage fetch returned ${response.status}.` };
1545
+ }
1546
+ const body = await response.json().catch(() => null);
1547
+ if (!body) {
1548
+ return { message: "Qoder connected. Usage response was not JSON." };
1549
+ }
1550
+ // Quota records live under `quotas`; scalar metadata
1551
+ // (totalUsagePercentage, isQuotaExceeded, expiresAt) are surfaced as
1552
+ // siblings so the dashboard parser doesn't try to render them as rows.
1553
+ const userQuota = body.userQuota || {};
1554
+ const orgQuota = body.orgResourcePackage || {};
1555
+ // Qoder publishes a single absolute reset timestamp (`expiresAt` in ms);
1556
+ // surface it on every quota record as ISO so the table can render
1557
+ // "resets at" alongside used/total.
1558
+ const expiresAtMs = Number.isFinite(Number(body.expiresAt)) && Number(body.expiresAt) > 0
1559
+ ? Number(body.expiresAt)
1560
+ : null;
1561
+ const resetAt = expiresAtMs ? new Date(expiresAtMs).toISOString() : null;
1562
+ const quotas = {
1563
+ user: {
1564
+ total: Number(userQuota.total) || 0,
1565
+ used: Number(userQuota.used) || 0,
1566
+ remaining: Number(userQuota.remaining) || 0,
1567
+ unit: userQuota.unit || "credits",
1568
+ resetAt,
1569
+ },
1570
+ organization: {
1571
+ total: Number(orgQuota.total) || 0,
1572
+ used: Number(orgQuota.used) || 0,
1573
+ remaining: Number(orgQuota.remaining) || 0,
1574
+ unit: orgQuota.unit || "credits",
1575
+ resetAt,
1576
+ },
1577
+ };
1578
+ return {
1579
+ quotas,
1580
+ totalUsagePercentage: Number(body.totalUsagePercentage) || 0,
1581
+ isQuotaExceeded: !!body.isQuotaExceeded,
1582
+ expiresAt: expiresAtMs,
1583
+ };
1584
+ } catch (error) {
1585
+ return { message: `Qoder connected. Unable to fetch usage: ${error.message}` };
1586
+ }
1587
+ }