n9router 0.4.59 → 0.4.60

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 (1053) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +20 -18
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/routes-manifest.json +12 -0
  6. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  13. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  16. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  19. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  22. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  25. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  34. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  37. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  40. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  43. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  46. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  52. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  55. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  58. package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  61. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  64. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  67. package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  70. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +3 -3
  73. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/_global-error/page.js +3 -3
  76. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/_global-error.html +1 -1
  78. package/app/.next/server/app/_global-error.rsc +1 -1
  79. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  80. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  81. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  82. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  83. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  84. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  85. package/app/.next/server/app/_not-found/page.js +2 -2
  86. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  87. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/_not-found.html +1 -1
  89. package/app/.next/server/app/_not-found.rsc +3 -3
  90. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  91. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  92. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  93. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  94. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  95. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  96. package/app/.next/server/app/api/antigravity-app/route.js +1 -1
  97. package/app/.next/server/app/api/antigravity-app-v2/route.js +1 -1
  98. package/app/.next/server/app/api/antigravity-ide/route.js +1 -1
  99. package/app/.next/server/app/api/antigravity-targets/route.js +1 -1
  100. package/app/.next/server/app/api/antigravity-tools/import/route.js +1 -1
  101. package/app/.next/server/app/api/antigravity-tools/import/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js +1 -1
  103. package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/auth/login/route.js +1 -1
  105. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  106. package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -1
  107. package/app/.next/server/app/api/auth/oidc/start/route.js +1 -1
  108. package/app/.next/server/app/api/auth/oidc/test/route.js +1 -1
  109. package/app/.next/server/app/api/auth/reset-password/route.js +1 -1
  110. package/app/.next/server/app/api/auth/saml/acs/route.js +1 -1
  111. package/app/.next/server/app/api/auth/saml/metadata/route.js +1 -1
  112. package/app/.next/server/app/api/auth/saml/start/route.js +1 -1
  113. package/app/.next/server/app/api/auth/saml/test/route.js +2 -2
  114. package/app/.next/server/app/api/auth/status/route.js +1 -1
  115. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +6 -6
  116. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  117. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  118. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  119. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  120. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  121. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  122. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  123. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  124. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  126. package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route.js +2 -2
  127. package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route.js +1 -1
  128. package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/route.js +1 -1
  129. package/app/.next/server/app/api/cli-tools/cursor-byok/route.js +1 -1
  130. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  131. package/app/.next/server/app/api/cli-tools/devin-settings/route.js +2 -2
  132. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  133. package/app/.next/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  134. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  135. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  136. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  137. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  138. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  139. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  140. package/app/.next/server/app/api/combos/route.js +1 -1
  141. package/app/.next/server/app/api/donate/route.js +1 -1
  142. package/app/.next/server/app/api/headroom/extras/route.js +1 -1
  143. package/app/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  144. package/app/.next/server/app/api/headroom/restart/route.js +1 -1
  145. package/app/.next/server/app/api/headroom/start/route.js +1 -1
  146. package/app/.next/server/app/api/headroom/status/route.js +1 -1
  147. package/app/.next/server/app/api/headroom/stop/route.js +1 -1
  148. package/app/.next/server/app/api/health/route.js +1 -1
  149. package/app/.next/server/app/api/init/route.js +1 -1
  150. package/app/.next/server/app/api/internal/account-health/route.js +1 -1
  151. package/app/.next/server/app/api/internal/request-detail/route.js +1 -1
  152. package/app/.next/server/app/api/internal/usage/route.js +1 -1
  153. package/app/.next/server/app/api/keys/[id]/reset-usage/route.js +1 -1
  154. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  155. package/app/.next/server/app/api/keys/[id]/usage/route.js +1 -1
  156. package/app/.next/server/app/api/keys/route.js +1 -1
  157. package/app/.next/server/app/api/locale/route.js +1 -1
  158. package/app/.next/server/app/api/mcp/[plugin]/message/route.js +1 -1
  159. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  160. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  161. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  162. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  163. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  164. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  165. package/app/.next/server/app/api/models/alias/route.js +1 -1
  166. package/app/.next/server/app/api/models/availability/route.js +1 -1
  167. package/app/.next/server/app/api/models/catalog-sync/route.js +1 -1
  168. package/app/.next/server/app/api/models/custom/route.js +1 -1
  169. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  170. package/app/.next/server/app/api/models/route.js +1 -1
  171. package/app/.next/server/app/api/models/test/route.js +1 -1
  172. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  173. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  175. package/app/.next/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
  177. package/app/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  179. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  180. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  181. package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  182. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  183. package/app/.next/server/app/api/oauth/kiro/api-key/route.js +1 -1
  184. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  185. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  186. package/app/.next/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  187. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  188. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  189. package/app/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -0
  190. package/app/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -0
  191. package/app/.next/server/app/api/oauth/xiaomi-mimo/api-key/route_client-reference-manifest.js +1 -0
  192. package/app/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +4 -0
  193. package/app/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -0
  194. package/app/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route_client-reference-manifest.js +1 -0
  195. package/app/.next/server/app/api/pricing/route.js +1 -1
  196. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  197. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  198. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  199. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  200. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  201. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  202. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  203. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  205. package/app/.next/server/app/api/providers/client/route.js +1 -1
  206. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  208. package/app/.next/server/app/api/providers/route.js +1 -1
  209. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  210. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  211. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  213. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  214. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  215. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  216. package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  217. package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  218. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  219. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  220. package/app/.next/server/app/api/pxpipe/health/route.js +2 -2
  221. package/app/.next/server/app/api/pxpipe/install/route.js +2 -2
  222. package/app/.next/server/app/api/pxpipe/logs/route.js +2 -2
  223. package/app/.next/server/app/api/pxpipe/restart/route.js +2 -2
  224. package/app/.next/server/app/api/pxpipe/start/route.js +2 -2
  225. package/app/.next/server/app/api/pxpipe/stats/route.js +2 -2
  226. package/app/.next/server/app/api/pxpipe/status/route.js +2 -2
  227. package/app/.next/server/app/api/pxpipe/stop/route.js +2 -2
  228. package/app/.next/server/app/api/settings/database/route.js +1 -1
  229. package/app/.next/server/app/api/settings/database/selective/route.js +1 -1
  230. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  231. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  232. package/app/.next/server/app/api/settings/route.js +1 -1
  233. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  234. package/app/.next/server/app/api/shutdown/route.js +1 -1
  235. package/app/.next/server/app/api/tags/route.js +1 -1
  236. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  237. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  238. package/app/.next/server/app/api/translator/load/route.js +1 -1
  239. package/app/.next/server/app/api/translator/save/route.js +1 -1
  240. package/app/.next/server/app/api/translator/send/route.js +1 -1
  241. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  242. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  243. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  244. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  245. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  246. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  247. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  248. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  249. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  250. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  251. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  252. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  253. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  254. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  255. package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  256. package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  258. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  259. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  260. package/app/.next/server/app/api/usage/history/route.js +1 -1
  261. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  262. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  263. package/app/.next/server/app/api/usage/report/route.js +1 -1
  264. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  265. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  266. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  267. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  268. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  269. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  270. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  271. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  273. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  275. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  276. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  277. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  278. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  279. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  280. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  282. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  283. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  284. package/app/.next/server/app/api/v1/models/[...model]/route.js +1 -1
  285. package/app/.next/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  286. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  287. package/app/.next/server/app/api/v1/models/route.js +1 -1
  288. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  289. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  290. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  291. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  292. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  293. package/app/.next/server/app/api/v1/route.js +1 -1
  294. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  295. package/app/.next/server/app/api/v1/search/route.js +1 -1
  296. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  297. package/app/.next/server/app/api/v1/videos/[id]/route.js +1 -1
  298. package/app/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  299. package/app/.next/server/app/api/v1/videos/edits/route.js +1 -1
  300. package/app/.next/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  301. package/app/.next/server/app/api/v1/videos/extensions/route.js +1 -1
  302. package/app/.next/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  303. package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
  304. package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  306. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  307. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  308. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  309. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  310. package/app/.next/server/app/api/version/route.js +1 -1
  311. package/app/.next/server/app/api/version/shutdown/route.js +1 -1
  312. package/app/.next/server/app/api/version/update/route.js +1 -1
  313. package/app/.next/server/app/callback/page.js +2 -2
  314. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  315. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  316. package/app/.next/server/app/callback.html +1 -1
  317. package/app/.next/server/app/callback.rsc +3 -3
  318. package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
  319. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  320. package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
  321. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  322. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  323. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  324. package/app/.next/server/app/dashboard/basic-chat.html +1 -1
  325. package/app/.next/server/app/dashboard/basic-chat.rsc +5 -5
  326. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  327. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  328. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  329. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  330. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  331. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  332. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  333. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  334. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  335. package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
  336. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  337. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  338. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  339. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  340. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  341. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  342. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  343. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  344. package/app/.next/server/app/dashboard/combos.html +1 -1
  345. package/app/.next/server/app/dashboard/combos.rsc +5 -5
  346. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  347. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  348. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  349. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  350. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  351. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  352. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  353. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  354. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  355. package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
  356. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  357. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  358. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  359. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  360. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  361. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  362. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  363. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  364. package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
  365. package/app/.next/server/app/dashboard/media-providers/web.rsc +5 -5
  366. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  367. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  368. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  369. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  370. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  371. package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  372. package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  373. package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  374. package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  375. package/app/.next/server/app/dashboard/mitm.html +1 -1
  376. package/app/.next/server/app/dashboard/mitm.rsc +5 -5
  377. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  378. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  379. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  380. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  381. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  382. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  383. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  384. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  385. package/app/.next/server/app/dashboard/profile.html +1 -1
  386. package/app/.next/server/app/dashboard/profile.rsc +5 -5
  387. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  388. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  389. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  390. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  391. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  392. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  393. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  394. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  395. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  396. package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
  397. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  398. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  399. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  400. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  401. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  402. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  403. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  404. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  405. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  406. package/app/.next/server/app/dashboard/providers.html +1 -1
  407. package/app/.next/server/app/dashboard/providers.rsc +5 -5
  408. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  409. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  410. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  411. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  412. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  413. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  414. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  415. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  416. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  417. package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
  418. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  419. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  420. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  421. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  422. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  423. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  424. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  425. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  426. package/app/.next/server/app/dashboard/pxpipe.html +1 -1
  427. package/app/.next/server/app/dashboard/pxpipe.rsc +5 -5
  428. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  429. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  430. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  431. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  432. package/app/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  433. package/app/.next/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  434. package/app/.next/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  435. package/app/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  436. package/app/.next/server/app/dashboard/quota.html +2 -2
  437. package/app/.next/server/app/dashboard/quota.rsc +6 -6
  438. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  439. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  440. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  441. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  442. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  443. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  444. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  445. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  446. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  447. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  448. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  449. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  450. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  451. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  452. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  453. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  454. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  455. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  456. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  457. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  458. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  459. package/app/.next/server/app/dashboard/skills.html +1 -1
  460. package/app/.next/server/app/dashboard/skills.rsc +5 -5
  461. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  462. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  463. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  464. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  465. package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  466. package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  467. package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  468. package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  469. package/app/.next/server/app/dashboard/token-saver.html +1 -1
  470. package/app/.next/server/app/dashboard/token-saver.rsc +5 -5
  471. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  472. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  473. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  474. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  475. package/app/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  476. package/app/.next/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  477. package/app/.next/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  478. package/app/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  479. package/app/.next/server/app/dashboard/translator.html +1 -1
  480. package/app/.next/server/app/dashboard/translator.rsc +5 -5
  481. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  482. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  483. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  484. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  485. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  486. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  487. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  488. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  489. package/app/.next/server/app/dashboard/usage.html +1 -1
  490. package/app/.next/server/app/dashboard/usage.rsc +5 -5
  491. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  492. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  493. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  494. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  495. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  496. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  497. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  498. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  499. package/app/.next/server/app/dashboard.html +1 -1
  500. package/app/.next/server/app/dashboard.rsc +5 -5
  501. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  502. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  503. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  504. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
  505. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  506. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
  507. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  508. package/app/.next/server/app/favicon.ico/route.js +1 -1
  509. package/app/.next/server/app/index.html +1 -1
  510. package/app/.next/server/app/index.rsc +3 -3
  511. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  512. package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
  513. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  514. package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
  515. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  516. package/app/.next/server/app/landing/page.js +2 -2
  517. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  518. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  519. package/app/.next/server/app/landing.html +1 -1
  520. package/app/.next/server/app/landing.rsc +3 -3
  521. package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
  522. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  523. package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
  524. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  525. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  526. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  527. package/app/.next/server/app/login/page.js +2 -2
  528. package/app/.next/server/app/login/page.js.nft.json +1 -1
  529. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  530. package/app/.next/server/app/login.html +1 -1
  531. package/app/.next/server/app/login.rsc +4 -4
  532. package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
  533. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  534. package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
  535. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  536. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  537. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  538. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  539. package/app/.next/server/app/page.js +2 -2
  540. package/app/.next/server/app/page.js.nft.json +1 -1
  541. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  542. package/app/.next/server/app-paths-manifest.json +20 -18
  543. package/app/.next/server/chunks/1470.js +1 -1
  544. package/app/.next/server/chunks/1998.js +1 -1
  545. package/app/.next/server/chunks/2251.js +2 -2
  546. package/app/.next/server/chunks/24.js +1 -1
  547. package/app/.next/server/chunks/318.js +23 -15
  548. package/app/.next/server/chunks/3225.js +1 -1
  549. package/app/.next/server/chunks/3490.js +1 -0
  550. package/app/.next/server/chunks/3535.js +1 -1
  551. package/app/.next/server/chunks/3676.js +1 -0
  552. package/app/.next/server/chunks/3753.js +1 -1
  553. package/app/.next/server/chunks/3913.js +1 -1
  554. package/app/.next/server/chunks/3943.js +1 -1
  555. package/app/.next/server/chunks/3962.js +1 -1
  556. package/app/.next/server/chunks/3998.js +1 -0
  557. package/app/.next/server/chunks/4037.js +1 -1
  558. package/app/.next/server/chunks/412.js +5 -5
  559. package/app/.next/server/chunks/4123.js +1 -1
  560. package/app/.next/server/chunks/4152.js +1 -0
  561. package/app/.next/server/chunks/436.js +1 -1
  562. package/app/.next/server/chunks/5615.js +21 -2
  563. package/app/.next/server/chunks/5729.js +1 -1
  564. package/app/.next/server/chunks/6630.js +1 -1
  565. package/app/.next/server/chunks/6763.js +1 -1
  566. package/app/.next/server/chunks/6922.js +1 -1
  567. package/app/.next/server/chunks/7137.js +1 -1
  568. package/app/.next/server/chunks/7211.js +1 -1
  569. package/app/.next/server/chunks/7220.js +1 -0
  570. package/app/.next/server/chunks/7247.js +1 -1
  571. package/app/.next/server/chunks/7828.js +1 -1
  572. package/app/.next/server/chunks/8145.js +1 -1
  573. package/app/.next/server/chunks/8236.js +1 -1
  574. package/app/.next/server/chunks/{4940.js → 8351.js} +8 -8
  575. package/app/.next/server/chunks/8402.js +1 -1
  576. package/app/.next/server/chunks/8416.js +1 -0
  577. package/app/.next/server/chunks/8499.js +8 -8
  578. package/app/.next/server/chunks/8635.js +1 -1
  579. package/app/.next/server/chunks/869.js +1 -1
  580. package/app/.next/server/chunks/8895.js +10 -16
  581. package/app/.next/server/chunks/8920.js +1 -1
  582. package/app/.next/server/chunks/8965.js +1 -0
  583. package/app/.next/server/chunks/9927.js +1 -1
  584. package/app/.next/server/middleware-build-manifest.js +1 -1
  585. package/app/.next/server/pages/404.html +1 -1
  586. package/app/.next/server/pages/500.html +1 -1
  587. package/app/.next/server/server-reference-manifest.js +1 -1
  588. package/app/.next/server/server-reference-manifest.json +1 -1
  589. package/app/.next/static/chunks/1321-75194193c4ebeb63.js +1 -0
  590. package/app/.next/static/chunks/{5497-378030367985bec2.js → 5497-885ce51ad3573289.js} +5 -5
  591. package/app/.next/static/chunks/{511-12d7a4aee984e083.js → 7391-b0886b3efb5ba015.js} +11 -11
  592. package/app/.next/static/chunks/8198-022f6b876963a14e.js +1 -0
  593. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-fbd0e639f6248423.js → page-3ac201b4c0d2f9aa.js} +1 -1
  594. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-de0a6e91c2d4eedd.js +1 -0
  595. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-c8943c6168a7bc3f.js → page-37c7894b246793c9.js} +1 -1
  596. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-07e99971e712f435.js +1 -0
  597. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-731ec27cfa6d662d.js +27 -0
  598. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-ae6574b656f3faf2.js +1 -0
  599. package/app/.next/static/chunks/app/(dashboard)/layout-29965adee8720b71.js +1 -0
  600. package/app/.next/static/chunks/app/_global-error/page-bec89eeae5edc8d0.js +1 -0
  601. package/app/.next/static/chunks/app/api/antigravity-app/route-bec89eeae5edc8d0.js +1 -0
  602. package/app/.next/static/chunks/app/api/antigravity-app-v2/route-bec89eeae5edc8d0.js +1 -0
  603. package/app/.next/static/chunks/app/api/antigravity-ide/route-bec89eeae5edc8d0.js +1 -0
  604. package/app/.next/static/chunks/app/api/antigravity-targets/route-bec89eeae5edc8d0.js +1 -0
  605. package/app/.next/static/chunks/app/api/antigravity-tools/import/route-bec89eeae5edc8d0.js +1 -0
  606. package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-bec89eeae5edc8d0.js +1 -0
  607. package/app/.next/static/chunks/app/api/auth/login/route-bec89eeae5edc8d0.js +1 -0
  608. package/app/.next/static/chunks/app/api/auth/logout/route-bec89eeae5edc8d0.js +1 -0
  609. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-bec89eeae5edc8d0.js +1 -0
  610. package/app/.next/static/chunks/app/api/auth/oidc/start/route-bec89eeae5edc8d0.js +1 -0
  611. package/app/.next/static/chunks/app/api/auth/oidc/test/route-bec89eeae5edc8d0.js +1 -0
  612. package/app/.next/static/chunks/app/api/auth/reset-password/route-bec89eeae5edc8d0.js +1 -0
  613. package/app/.next/static/chunks/app/api/auth/saml/acs/route-bec89eeae5edc8d0.js +1 -0
  614. package/app/.next/static/chunks/app/api/auth/saml/metadata/route-bec89eeae5edc8d0.js +1 -0
  615. package/app/.next/static/chunks/app/api/auth/saml/start/route-bec89eeae5edc8d0.js +1 -0
  616. package/app/.next/static/chunks/app/api/auth/saml/test/route-bec89eeae5edc8d0.js +1 -0
  617. package/app/.next/static/chunks/app/api/auth/status/route-bec89eeae5edc8d0.js +1 -0
  618. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-bec89eeae5edc8d0.js +1 -0
  619. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-bec89eeae5edc8d0.js +1 -0
  620. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-bec89eeae5edc8d0.js +1 -0
  621. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-bec89eeae5edc8d0.js +1 -0
  622. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-bec89eeae5edc8d0.js +1 -0
  623. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-bec89eeae5edc8d0.js +1 -0
  624. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-bec89eeae5edc8d0.js +1 -0
  625. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-bec89eeae5edc8d0.js +1 -0
  626. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-bec89eeae5edc8d0.js +1 -0
  627. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-bec89eeae5edc8d0.js +1 -0
  628. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-bec89eeae5edc8d0.js +1 -0
  629. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-bec89eeae5edc8d0.js +1 -0
  630. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-bec89eeae5edc8d0.js +1 -0
  631. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-bec89eeae5edc8d0.js +1 -0
  632. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-bec89eeae5edc8d0.js +1 -0
  633. package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-bec89eeae5edc8d0.js +1 -0
  634. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-bec89eeae5edc8d0.js +1 -0
  635. package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-bec89eeae5edc8d0.js +1 -0
  636. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-bec89eeae5edc8d0.js +1 -0
  637. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-bec89eeae5edc8d0.js +1 -0
  638. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-bec89eeae5edc8d0.js +1 -0
  639. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-bec89eeae5edc8d0.js +1 -0
  640. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-bec89eeae5edc8d0.js +1 -0
  641. package/app/.next/static/chunks/app/api/combos/[id]/route-bec89eeae5edc8d0.js +1 -0
  642. package/app/.next/static/chunks/app/api/combos/route-bec89eeae5edc8d0.js +1 -0
  643. package/app/.next/static/chunks/app/api/donate/route-bec89eeae5edc8d0.js +1 -0
  644. package/app/.next/static/chunks/app/api/headroom/extras/route-bec89eeae5edc8d0.js +1 -0
  645. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-bec89eeae5edc8d0.js +1 -0
  646. package/app/.next/static/chunks/app/api/headroom/restart/route-bec89eeae5edc8d0.js +1 -0
  647. package/app/.next/static/chunks/app/api/headroom/start/route-bec89eeae5edc8d0.js +1 -0
  648. package/app/.next/static/chunks/app/api/headroom/status/route-bec89eeae5edc8d0.js +1 -0
  649. package/app/.next/static/chunks/app/api/headroom/stop/route-bec89eeae5edc8d0.js +1 -0
  650. package/app/.next/static/chunks/app/api/health/route-bec89eeae5edc8d0.js +1 -0
  651. package/app/.next/static/chunks/app/api/init/route-bec89eeae5edc8d0.js +1 -0
  652. package/app/.next/static/chunks/app/api/internal/account-health/route-bec89eeae5edc8d0.js +1 -0
  653. package/app/.next/static/chunks/app/api/internal/request-detail/route-bec89eeae5edc8d0.js +1 -0
  654. package/app/.next/static/chunks/app/api/internal/usage/route-bec89eeae5edc8d0.js +1 -0
  655. package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-bec89eeae5edc8d0.js +1 -0
  656. package/app/.next/static/chunks/app/api/keys/[id]/route-bec89eeae5edc8d0.js +1 -0
  657. package/app/.next/static/chunks/app/api/keys/[id]/usage/route-bec89eeae5edc8d0.js +1 -0
  658. package/app/.next/static/chunks/app/api/keys/route-bec89eeae5edc8d0.js +1 -0
  659. package/app/.next/static/chunks/app/api/locale/route-bec89eeae5edc8d0.js +1 -0
  660. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-bec89eeae5edc8d0.js +1 -0
  661. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-bec89eeae5edc8d0.js +1 -0
  662. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-bec89eeae5edc8d0.js +1 -0
  663. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-bec89eeae5edc8d0.js +1 -0
  664. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-bec89eeae5edc8d0.js +1 -0
  665. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-bec89eeae5edc8d0.js +1 -0
  666. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-bec89eeae5edc8d0.js +1 -0
  667. package/app/.next/static/chunks/app/api/models/alias/route-bec89eeae5edc8d0.js +1 -0
  668. package/app/.next/static/chunks/app/api/models/availability/route-bec89eeae5edc8d0.js +1 -0
  669. package/app/.next/static/chunks/app/api/models/catalog-sync/route-bec89eeae5edc8d0.js +1 -0
  670. package/app/.next/static/chunks/app/api/models/custom/route-bec89eeae5edc8d0.js +1 -0
  671. package/app/.next/static/chunks/app/api/models/disabled/route-bec89eeae5edc8d0.js +1 -0
  672. package/app/.next/static/chunks/app/api/models/route-bec89eeae5edc8d0.js +1 -0
  673. package/app/.next/static/chunks/app/api/models/test/route-bec89eeae5edc8d0.js +1 -0
  674. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-bec89eeae5edc8d0.js +1 -0
  675. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-bec89eeae5edc8d0.js +1 -0
  676. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-bec89eeae5edc8d0.js +1 -0
  677. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-bec89eeae5edc8d0.js +1 -0
  678. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-bec89eeae5edc8d0.js +1 -0
  679. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-bec89eeae5edc8d0.js +1 -0
  680. package/app/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-bec89eeae5edc8d0.js +1 -0
  681. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-bec89eeae5edc8d0.js +1 -0
  682. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-bec89eeae5edc8d0.js +1 -0
  683. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-bec89eeae5edc8d0.js +1 -0
  684. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-bec89eeae5edc8d0.js +1 -0
  685. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-bec89eeae5edc8d0.js +1 -0
  686. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-bec89eeae5edc8d0.js +1 -0
  687. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-bec89eeae5edc8d0.js +1 -0
  688. package/app/.next/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-bec89eeae5edc8d0.js +1 -0
  689. package/app/.next/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-bec89eeae5edc8d0.js +1 -0
  690. package/app/.next/static/chunks/app/api/pricing/route-bec89eeae5edc8d0.js +1 -0
  691. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-bec89eeae5edc8d0.js +1 -0
  692. package/app/.next/static/chunks/app/api/provider-nodes/route-bec89eeae5edc8d0.js +1 -0
  693. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-bec89eeae5edc8d0.js +1 -0
  694. package/app/.next/static/chunks/app/api/providers/[id]/models/route-bec89eeae5edc8d0.js +1 -0
  695. package/app/.next/static/chunks/app/api/providers/[id]/route-bec89eeae5edc8d0.js +1 -0
  696. package/app/.next/static/chunks/app/api/providers/[id]/test/route-bec89eeae5edc8d0.js +1 -0
  697. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-bec89eeae5edc8d0.js +1 -0
  698. package/app/.next/static/chunks/app/api/providers/client/route-bec89eeae5edc8d0.js +1 -0
  699. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-bec89eeae5edc8d0.js +1 -0
  700. package/app/.next/static/chunks/app/api/providers/route-bec89eeae5edc8d0.js +1 -0
  701. package/app/.next/static/chunks/app/api/providers/suggested-models/route-bec89eeae5edc8d0.js +1 -0
  702. package/app/.next/static/chunks/app/api/providers/test-batch/route-bec89eeae5edc8d0.js +1 -0
  703. package/app/.next/static/chunks/app/api/providers/validate/route-bec89eeae5edc8d0.js +1 -0
  704. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-bec89eeae5edc8d0.js +1 -0
  705. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-bec89eeae5edc8d0.js +1 -0
  706. package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-bec89eeae5edc8d0.js +1 -0
  707. package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-bec89eeae5edc8d0.js +1 -0
  708. package/app/.next/static/chunks/app/api/proxy-pools/route-bec89eeae5edc8d0.js +1 -0
  709. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-bec89eeae5edc8d0.js +1 -0
  710. package/app/.next/static/chunks/app/api/pxpipe/health/route-bec89eeae5edc8d0.js +1 -0
  711. package/app/.next/static/chunks/app/api/pxpipe/install/route-bec89eeae5edc8d0.js +1 -0
  712. package/app/.next/static/chunks/app/api/pxpipe/logs/route-bec89eeae5edc8d0.js +1 -0
  713. package/app/.next/static/chunks/app/api/pxpipe/restart/route-bec89eeae5edc8d0.js +1 -0
  714. package/app/.next/static/chunks/app/api/pxpipe/start/route-bec89eeae5edc8d0.js +1 -0
  715. package/app/.next/static/chunks/app/api/pxpipe/stats/route-bec89eeae5edc8d0.js +1 -0
  716. package/app/.next/static/chunks/app/api/pxpipe/status/route-bec89eeae5edc8d0.js +1 -0
  717. package/app/.next/static/chunks/app/api/pxpipe/stop/route-bec89eeae5edc8d0.js +1 -0
  718. package/app/.next/static/chunks/app/api/settings/database/route-bec89eeae5edc8d0.js +1 -0
  719. package/app/.next/static/chunks/app/api/settings/database/selective/route-bec89eeae5edc8d0.js +1 -0
  720. package/app/.next/static/chunks/app/api/settings/proxy-test/route-bec89eeae5edc8d0.js +1 -0
  721. package/app/.next/static/chunks/app/api/settings/require-login/route-bec89eeae5edc8d0.js +1 -0
  722. package/app/.next/static/chunks/app/api/settings/route-bec89eeae5edc8d0.js +1 -0
  723. package/app/.next/static/chunks/app/api/shutdown/route-bec89eeae5edc8d0.js +1 -0
  724. package/app/.next/static/chunks/app/api/tags/route-bec89eeae5edc8d0.js +1 -0
  725. package/app/.next/static/chunks/app/api/translator/console-logs/route-bec89eeae5edc8d0.js +1 -0
  726. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-bec89eeae5edc8d0.js +1 -0
  727. package/app/.next/static/chunks/app/api/translator/load/route-bec89eeae5edc8d0.js +1 -0
  728. package/app/.next/static/chunks/app/api/translator/save/route-bec89eeae5edc8d0.js +1 -0
  729. package/app/.next/static/chunks/app/api/translator/send/route-bec89eeae5edc8d0.js +1 -0
  730. package/app/.next/static/chunks/app/api/translator/translate/route-bec89eeae5edc8d0.js +1 -0
  731. package/app/.next/static/chunks/app/api/tunnel/disable/route-bec89eeae5edc8d0.js +1 -0
  732. package/app/.next/static/chunks/app/api/tunnel/enable/route-bec89eeae5edc8d0.js +1 -0
  733. package/app/.next/static/chunks/app/api/tunnel/status/route-bec89eeae5edc8d0.js +1 -0
  734. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-bec89eeae5edc8d0.js +1 -0
  735. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-bec89eeae5edc8d0.js +1 -0
  736. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-bec89eeae5edc8d0.js +1 -0
  737. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-bec89eeae5edc8d0.js +1 -0
  738. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-bec89eeae5edc8d0.js +1 -0
  739. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-bec89eeae5edc8d0.js +1 -0
  740. package/app/.next/static/chunks/app/api/usage/chart/route-bec89eeae5edc8d0.js +1 -0
  741. package/app/.next/static/chunks/app/api/usage/history/route-bec89eeae5edc8d0.js +1 -0
  742. package/app/.next/static/chunks/app/api/usage/logs/route-bec89eeae5edc8d0.js +1 -0
  743. package/app/.next/static/chunks/app/api/usage/providers/route-bec89eeae5edc8d0.js +1 -0
  744. package/app/.next/static/chunks/app/api/usage/report/route-bec89eeae5edc8d0.js +1 -0
  745. package/app/.next/static/chunks/app/api/usage/request-details/route-bec89eeae5edc8d0.js +1 -0
  746. package/app/.next/static/chunks/app/api/usage/request-logs/route-bec89eeae5edc8d0.js +1 -0
  747. package/app/.next/static/chunks/app/api/usage/stats/route-bec89eeae5edc8d0.js +1 -0
  748. package/app/.next/static/chunks/app/api/usage/stream/route-bec89eeae5edc8d0.js +1 -0
  749. package/app/.next/static/chunks/app/api/v1/api/chat/route-bec89eeae5edc8d0.js +1 -0
  750. package/app/.next/static/chunks/app/api/v1/audio/speech/route-bec89eeae5edc8d0.js +1 -0
  751. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-bec89eeae5edc8d0.js +1 -0
  752. package/app/.next/static/chunks/app/api/v1/audio/voices/route-bec89eeae5edc8d0.js +1 -0
  753. package/app/.next/static/chunks/app/api/v1/chat/completions/route-bec89eeae5edc8d0.js +1 -0
  754. package/app/.next/static/chunks/app/api/v1/embeddings/route-bec89eeae5edc8d0.js +1 -0
  755. package/app/.next/static/chunks/app/api/v1/images/generations/route-bec89eeae5edc8d0.js +1 -0
  756. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-bec89eeae5edc8d0.js +1 -0
  757. package/app/.next/static/chunks/app/api/v1/messages/route-bec89eeae5edc8d0.js +1 -0
  758. package/app/.next/static/chunks/app/api/v1/models/[...model]/route-bec89eeae5edc8d0.js +1 -0
  759. package/app/.next/static/chunks/app/api/v1/models/info/route-bec89eeae5edc8d0.js +1 -0
  760. package/app/.next/static/chunks/app/api/v1/models/route-bec89eeae5edc8d0.js +1 -0
  761. package/app/.next/static/chunks/app/api/v1/responses/compact/route-bec89eeae5edc8d0.js +1 -0
  762. package/app/.next/static/chunks/app/api/v1/responses/route-bec89eeae5edc8d0.js +1 -0
  763. package/app/.next/static/chunks/app/api/v1/route-bec89eeae5edc8d0.js +1 -0
  764. package/app/.next/static/chunks/app/api/v1/search/route-bec89eeae5edc8d0.js +1 -0
  765. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-bec89eeae5edc8d0.js +1 -0
  766. package/app/.next/static/chunks/app/api/v1/videos/edits/route-bec89eeae5edc8d0.js +1 -0
  767. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-bec89eeae5edc8d0.js +1 -0
  768. package/app/.next/static/chunks/app/api/v1/videos/generations/route-bec89eeae5edc8d0.js +1 -0
  769. package/app/.next/static/chunks/app/api/v1/web/fetch/route-bec89eeae5edc8d0.js +1 -0
  770. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-bec89eeae5edc8d0.js +1 -0
  771. package/app/.next/static/chunks/app/api/v1beta/models/route-bec89eeae5edc8d0.js +1 -0
  772. package/app/.next/static/chunks/app/api/version/route-bec89eeae5edc8d0.js +1 -0
  773. package/app/.next/static/chunks/app/api/version/shutdown/route-bec89eeae5edc8d0.js +1 -0
  774. package/app/.next/static/chunks/app/api/version/update/route-bec89eeae5edc8d0.js +1 -0
  775. package/app/.next/static/chunks/app/manifest.webmanifest/route-bec89eeae5edc8d0.js +1 -0
  776. package/app/.next/static/chunks/app/page-bec89eeae5edc8d0.js +1 -0
  777. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-bec89eeae5edc8d0.js +1 -0
  778. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-bec89eeae5edc8d0.js +1 -0
  779. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-bec89eeae5edc8d0.js +1 -0
  780. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-bec89eeae5edc8d0.js +1 -0
  781. package/app/.next/static/pVz30g5r-30_iNnN7XF0H/_buildManifest.js +1 -0
  782. package/app/open-sse/config/appConstants.js +3 -0
  783. package/app/open-sse/config/providerModels.js +1 -1
  784. package/app/open-sse/executors/antigravity.js +35 -19
  785. package/app/open-sse/executors/codex.js +11 -1
  786. package/app/open-sse/executors/default.js +12 -1
  787. package/app/open-sse/executors/index.js +6 -0
  788. package/app/open-sse/executors/kiro.js +36 -16
  789. package/app/open-sse/executors/opencode-go.js +182 -0
  790. package/app/open-sse/executors/qoder.js +150 -31
  791. package/app/open-sse/executors/xiaomi-mimo.js +99 -0
  792. package/app/open-sse/handlers/chatCore/nonStreamingHandler.js +6 -11
  793. package/app/open-sse/handlers/chatCore/streamingHandler.js +5 -5
  794. package/app/open-sse/handlers/chatCore.js +31 -5
  795. package/app/open-sse/handlers/imageProviders/codex.js +26 -6
  796. package/app/open-sse/handlers/videoCore.js +55 -12
  797. package/app/open-sse/handlers/videoProviders/index.js +13 -0
  798. package/app/open-sse/handlers/videoProviders/openrouter.js +39 -0
  799. package/app/open-sse/handlers/videoProviders/vertex.js +159 -0
  800. package/app/open-sse/providers/capabilities.js +63 -20
  801. package/app/open-sse/providers/pricing.js +1 -0
  802. package/app/open-sse/providers/registry/antigravity.js +1 -0
  803. package/app/open-sse/providers/registry/api-airforce.js +6 -3
  804. package/app/open-sse/providers/registry/cline.js +4 -0
  805. package/app/open-sse/providers/registry/clinepass.js +6 -1
  806. package/app/open-sse/providers/registry/codebuddy-cn.js +12 -11
  807. package/app/open-sse/providers/registry/codex.js +15 -1
  808. package/app/open-sse/providers/registry/deepseek.js +15 -0
  809. package/app/open-sse/providers/registry/glm-cn.js +1 -0
  810. package/app/open-sse/providers/registry/glm.js +1 -0
  811. package/app/open-sse/providers/registry/index.js +0 -1
  812. package/app/open-sse/providers/registry/minimax-cn.js +1 -0
  813. package/app/open-sse/providers/registry/minimax.js +1 -0
  814. package/app/open-sse/providers/registry/openai.js +3 -0
  815. package/app/open-sse/providers/registry/opencode-go.js +22 -0
  816. package/app/open-sse/providers/registry/openrouter.js +10 -1
  817. package/app/open-sse/providers/registry/qoder.js +5 -2
  818. package/app/open-sse/providers/registry/vertex.js +8 -1
  819. package/app/open-sse/providers/registry/xiaomi-mimo.js +31 -1
  820. package/app/open-sse/providers/thinkingLevels.js +9 -3
  821. package/app/open-sse/rtk/systemInject.js +28 -72
  822. package/app/open-sse/services/clinepassModels.js +47 -15
  823. package/app/open-sse/services/projectId.js +8 -5
  824. package/app/open-sse/services/qoderModels.js +24 -0
  825. package/app/open-sse/services/thoughtSignatureStore.js +170 -0
  826. package/app/open-sse/services/tokenRefresh.js +2 -0
  827. package/app/open-sse/services/usage/antigravity-weekly.js +150 -0
  828. package/app/open-sse/services/usage/claude.js +16 -0
  829. package/app/open-sse/services/usage/codex.js +8 -1
  830. package/app/open-sse/services/usage/google.js +60 -2
  831. package/app/open-sse/services/usage/opencode-go.js +107 -0
  832. package/app/open-sse/services/usage/xiaomi-mimo.js +125 -0
  833. package/app/open-sse/services/usage.js +4 -0
  834. package/app/open-sse/shared/clineAuth.js +8 -1
  835. package/app/open-sse/shared/clineEnvelope.js +19 -0
  836. package/app/open-sse/shared/mimoAccount.js +264 -0
  837. package/app/open-sse/shared/qoder/attachments.js +341 -0
  838. package/app/open-sse/shared/qoder/constants.js +37 -1
  839. package/app/open-sse/shared/qoder/contextTier.js +160 -0
  840. package/app/open-sse/shared/qoder/sse.js +208 -0
  841. package/app/open-sse/translator/concerns/paramSupport.js +3 -0
  842. package/app/open-sse/translator/concerns/thinkingUnified.js +1 -1
  843. package/app/open-sse/translator/concerns/toolCall.js +15 -0
  844. package/app/open-sse/translator/formats/claude.js +122 -6
  845. package/app/open-sse/translator/formats/gemini.js +18 -0
  846. package/app/open-sse/translator/formats/responsesApi.js +53 -0
  847. package/app/open-sse/translator/request/claude-to-kiro.js +3 -6
  848. package/app/open-sse/translator/request/claude-to-openai.js +7 -0
  849. package/app/open-sse/translator/request/openai-responses.js +38 -17
  850. package/app/open-sse/translator/request/openai-to-gemini.js +36 -27
  851. package/app/open-sse/translator/request/openai-to-kiro.js +3 -6
  852. package/app/open-sse/translator/response/gemini-to-openai.js +23 -7
  853. package/app/open-sse/translator/response/openai-responses.js +45 -6
  854. package/app/open-sse/utils/codexToolSchema.js +80 -0
  855. package/app/open-sse/utils/stream.js +6 -4
  856. package/app/package.json +1 -1
  857. package/app/src/lib/oauth/providers/xiaomi-mimo.js +123 -0
  858. package/app/src/shared/constants/cliTools.js +29 -27
  859. package/app/src/sse/services/backgroundTokenRefresh.js +35 -46
  860. package/package.json +1 -1
  861. package/app/.next/server/chunks/2051.js +0 -1
  862. package/app/.next/server/chunks/5612.js +0 -1
  863. package/app/.next/server/chunks/7637.js +0 -1
  864. package/app/.next/server/chunks/9441.js +0 -1
  865. package/app/.next/server/chunks/9896.js +0 -1
  866. package/app/.next/static/4aSob9BYLKkmEZKpVTTCD/_buildManifest.js +0 -1
  867. package/app/.next/static/chunks/1321-c56f714b48ec75b1.js +0 -1
  868. package/app/.next/static/chunks/8198-2f2b63f52e0d44f9.js +0 -1
  869. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-9dd5b20bf0221838.js +0 -1
  870. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-0d1269add49cb3e2.js +0 -1
  871. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-e6ee66418932601a.js +0 -27
  872. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c48d4a86c94ab13a.js +0 -1
  873. package/app/.next/static/chunks/app/(dashboard)/layout-a0e61866894b6cee.js +0 -1
  874. package/app/.next/static/chunks/app/_global-error/page-b3fe65cd692af32a.js +0 -1
  875. package/app/.next/static/chunks/app/api/antigravity-app/route-b3fe65cd692af32a.js +0 -1
  876. package/app/.next/static/chunks/app/api/antigravity-app-v2/route-b3fe65cd692af32a.js +0 -1
  877. package/app/.next/static/chunks/app/api/antigravity-ide/route-b3fe65cd692af32a.js +0 -1
  878. package/app/.next/static/chunks/app/api/antigravity-targets/route-b3fe65cd692af32a.js +0 -1
  879. package/app/.next/static/chunks/app/api/antigravity-tools/import/route-b3fe65cd692af32a.js +0 -1
  880. package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-b3fe65cd692af32a.js +0 -1
  881. package/app/.next/static/chunks/app/api/auth/login/route-b3fe65cd692af32a.js +0 -1
  882. package/app/.next/static/chunks/app/api/auth/logout/route-b3fe65cd692af32a.js +0 -1
  883. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-b3fe65cd692af32a.js +0 -1
  884. package/app/.next/static/chunks/app/api/auth/oidc/start/route-b3fe65cd692af32a.js +0 -1
  885. package/app/.next/static/chunks/app/api/auth/oidc/test/route-b3fe65cd692af32a.js +0 -1
  886. package/app/.next/static/chunks/app/api/auth/reset-password/route-b3fe65cd692af32a.js +0 -1
  887. package/app/.next/static/chunks/app/api/auth/saml/acs/route-b3fe65cd692af32a.js +0 -1
  888. package/app/.next/static/chunks/app/api/auth/saml/metadata/route-b3fe65cd692af32a.js +0 -1
  889. package/app/.next/static/chunks/app/api/auth/saml/start/route-b3fe65cd692af32a.js +0 -1
  890. package/app/.next/static/chunks/app/api/auth/saml/test/route-b3fe65cd692af32a.js +0 -1
  891. package/app/.next/static/chunks/app/api/auth/status/route-b3fe65cd692af32a.js +0 -1
  892. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-b3fe65cd692af32a.js +0 -1
  893. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b3fe65cd692af32a.js +0 -1
  894. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-b3fe65cd692af32a.js +0 -1
  895. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-b3fe65cd692af32a.js +0 -1
  896. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-b3fe65cd692af32a.js +0 -1
  897. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-b3fe65cd692af32a.js +0 -1
  898. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-b3fe65cd692af32a.js +0 -1
  899. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-b3fe65cd692af32a.js +0 -1
  900. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-b3fe65cd692af32a.js +0 -1
  901. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-b3fe65cd692af32a.js +0 -1
  902. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-b3fe65cd692af32a.js +0 -1
  903. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-b3fe65cd692af32a.js +0 -1
  904. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-b3fe65cd692af32a.js +0 -1
  905. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-b3fe65cd692af32a.js +0 -1
  906. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-b3fe65cd692af32a.js +0 -1
  907. package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-b3fe65cd692af32a.js +0 -1
  908. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-b3fe65cd692af32a.js +0 -1
  909. package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-b3fe65cd692af32a.js +0 -1
  910. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-b3fe65cd692af32a.js +0 -1
  911. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-b3fe65cd692af32a.js +0 -1
  912. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-b3fe65cd692af32a.js +0 -1
  913. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-b3fe65cd692af32a.js +0 -1
  914. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-b3fe65cd692af32a.js +0 -1
  915. package/app/.next/static/chunks/app/api/combos/[id]/route-b3fe65cd692af32a.js +0 -1
  916. package/app/.next/static/chunks/app/api/combos/route-b3fe65cd692af32a.js +0 -1
  917. package/app/.next/static/chunks/app/api/donate/route-b3fe65cd692af32a.js +0 -1
  918. package/app/.next/static/chunks/app/api/headroom/extras/route-b3fe65cd692af32a.js +0 -1
  919. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-b3fe65cd692af32a.js +0 -1
  920. package/app/.next/static/chunks/app/api/headroom/restart/route-b3fe65cd692af32a.js +0 -1
  921. package/app/.next/static/chunks/app/api/headroom/start/route-b3fe65cd692af32a.js +0 -1
  922. package/app/.next/static/chunks/app/api/headroom/status/route-b3fe65cd692af32a.js +0 -1
  923. package/app/.next/static/chunks/app/api/headroom/stop/route-b3fe65cd692af32a.js +0 -1
  924. package/app/.next/static/chunks/app/api/health/route-b3fe65cd692af32a.js +0 -1
  925. package/app/.next/static/chunks/app/api/init/route-b3fe65cd692af32a.js +0 -1
  926. package/app/.next/static/chunks/app/api/internal/account-health/route-b3fe65cd692af32a.js +0 -1
  927. package/app/.next/static/chunks/app/api/internal/request-detail/route-b3fe65cd692af32a.js +0 -1
  928. package/app/.next/static/chunks/app/api/internal/usage/route-b3fe65cd692af32a.js +0 -1
  929. package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-b3fe65cd692af32a.js +0 -1
  930. package/app/.next/static/chunks/app/api/keys/[id]/route-b3fe65cd692af32a.js +0 -1
  931. package/app/.next/static/chunks/app/api/keys/[id]/usage/route-b3fe65cd692af32a.js +0 -1
  932. package/app/.next/static/chunks/app/api/keys/route-b3fe65cd692af32a.js +0 -1
  933. package/app/.next/static/chunks/app/api/locale/route-b3fe65cd692af32a.js +0 -1
  934. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-b3fe65cd692af32a.js +0 -1
  935. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-b3fe65cd692af32a.js +0 -1
  936. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-b3fe65cd692af32a.js +0 -1
  937. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-b3fe65cd692af32a.js +0 -1
  938. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-b3fe65cd692af32a.js +0 -1
  939. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-b3fe65cd692af32a.js +0 -1
  940. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-b3fe65cd692af32a.js +0 -1
  941. package/app/.next/static/chunks/app/api/models/alias/route-b3fe65cd692af32a.js +0 -1
  942. package/app/.next/static/chunks/app/api/models/availability/route-b3fe65cd692af32a.js +0 -1
  943. package/app/.next/static/chunks/app/api/models/catalog-sync/route-b3fe65cd692af32a.js +0 -1
  944. package/app/.next/static/chunks/app/api/models/custom/route-b3fe65cd692af32a.js +0 -1
  945. package/app/.next/static/chunks/app/api/models/disabled/route-b3fe65cd692af32a.js +0 -1
  946. package/app/.next/static/chunks/app/api/models/route-b3fe65cd692af32a.js +0 -1
  947. package/app/.next/static/chunks/app/api/models/test/route-b3fe65cd692af32a.js +0 -1
  948. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-b3fe65cd692af32a.js +0 -1
  949. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-b3fe65cd692af32a.js +0 -1
  950. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-b3fe65cd692af32a.js +0 -1
  951. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-b3fe65cd692af32a.js +0 -1
  952. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-b3fe65cd692af32a.js +0 -1
  953. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-b3fe65cd692af32a.js +0 -1
  954. package/app/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-b3fe65cd692af32a.js +0 -1
  955. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-b3fe65cd692af32a.js +0 -1
  956. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-b3fe65cd692af32a.js +0 -1
  957. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-b3fe65cd692af32a.js +0 -1
  958. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-b3fe65cd692af32a.js +0 -1
  959. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-b3fe65cd692af32a.js +0 -1
  960. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-b3fe65cd692af32a.js +0 -1
  961. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-b3fe65cd692af32a.js +0 -1
  962. package/app/.next/static/chunks/app/api/pricing/route-b3fe65cd692af32a.js +0 -1
  963. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-b3fe65cd692af32a.js +0 -1
  964. package/app/.next/static/chunks/app/api/provider-nodes/route-b3fe65cd692af32a.js +0 -1
  965. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-b3fe65cd692af32a.js +0 -1
  966. package/app/.next/static/chunks/app/api/providers/[id]/models/route-b3fe65cd692af32a.js +0 -1
  967. package/app/.next/static/chunks/app/api/providers/[id]/route-b3fe65cd692af32a.js +0 -1
  968. package/app/.next/static/chunks/app/api/providers/[id]/test/route-b3fe65cd692af32a.js +0 -1
  969. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-b3fe65cd692af32a.js +0 -1
  970. package/app/.next/static/chunks/app/api/providers/client/route-b3fe65cd692af32a.js +0 -1
  971. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-b3fe65cd692af32a.js +0 -1
  972. package/app/.next/static/chunks/app/api/providers/route-b3fe65cd692af32a.js +0 -1
  973. package/app/.next/static/chunks/app/api/providers/suggested-models/route-b3fe65cd692af32a.js +0 -1
  974. package/app/.next/static/chunks/app/api/providers/test-batch/route-b3fe65cd692af32a.js +0 -1
  975. package/app/.next/static/chunks/app/api/providers/validate/route-b3fe65cd692af32a.js +0 -1
  976. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-b3fe65cd692af32a.js +0 -1
  977. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-b3fe65cd692af32a.js +0 -1
  978. package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-b3fe65cd692af32a.js +0 -1
  979. package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-b3fe65cd692af32a.js +0 -1
  980. package/app/.next/static/chunks/app/api/proxy-pools/route-b3fe65cd692af32a.js +0 -1
  981. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-b3fe65cd692af32a.js +0 -1
  982. package/app/.next/static/chunks/app/api/pxpipe/health/route-b3fe65cd692af32a.js +0 -1
  983. package/app/.next/static/chunks/app/api/pxpipe/install/route-b3fe65cd692af32a.js +0 -1
  984. package/app/.next/static/chunks/app/api/pxpipe/logs/route-b3fe65cd692af32a.js +0 -1
  985. package/app/.next/static/chunks/app/api/pxpipe/restart/route-b3fe65cd692af32a.js +0 -1
  986. package/app/.next/static/chunks/app/api/pxpipe/start/route-b3fe65cd692af32a.js +0 -1
  987. package/app/.next/static/chunks/app/api/pxpipe/stats/route-b3fe65cd692af32a.js +0 -1
  988. package/app/.next/static/chunks/app/api/pxpipe/status/route-b3fe65cd692af32a.js +0 -1
  989. package/app/.next/static/chunks/app/api/pxpipe/stop/route-b3fe65cd692af32a.js +0 -1
  990. package/app/.next/static/chunks/app/api/settings/database/route-b3fe65cd692af32a.js +0 -1
  991. package/app/.next/static/chunks/app/api/settings/database/selective/route-b3fe65cd692af32a.js +0 -1
  992. package/app/.next/static/chunks/app/api/settings/proxy-test/route-b3fe65cd692af32a.js +0 -1
  993. package/app/.next/static/chunks/app/api/settings/require-login/route-b3fe65cd692af32a.js +0 -1
  994. package/app/.next/static/chunks/app/api/settings/route-b3fe65cd692af32a.js +0 -1
  995. package/app/.next/static/chunks/app/api/shutdown/route-b3fe65cd692af32a.js +0 -1
  996. package/app/.next/static/chunks/app/api/tags/route-b3fe65cd692af32a.js +0 -1
  997. package/app/.next/static/chunks/app/api/translator/console-logs/route-b3fe65cd692af32a.js +0 -1
  998. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-b3fe65cd692af32a.js +0 -1
  999. package/app/.next/static/chunks/app/api/translator/load/route-b3fe65cd692af32a.js +0 -1
  1000. package/app/.next/static/chunks/app/api/translator/save/route-b3fe65cd692af32a.js +0 -1
  1001. package/app/.next/static/chunks/app/api/translator/send/route-b3fe65cd692af32a.js +0 -1
  1002. package/app/.next/static/chunks/app/api/translator/translate/route-b3fe65cd692af32a.js +0 -1
  1003. package/app/.next/static/chunks/app/api/tunnel/disable/route-b3fe65cd692af32a.js +0 -1
  1004. package/app/.next/static/chunks/app/api/tunnel/enable/route-b3fe65cd692af32a.js +0 -1
  1005. package/app/.next/static/chunks/app/api/tunnel/status/route-b3fe65cd692af32a.js +0 -1
  1006. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-b3fe65cd692af32a.js +0 -1
  1007. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-b3fe65cd692af32a.js +0 -1
  1008. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-b3fe65cd692af32a.js +0 -1
  1009. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-b3fe65cd692af32a.js +0 -1
  1010. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-b3fe65cd692af32a.js +0 -1
  1011. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-b3fe65cd692af32a.js +0 -1
  1012. package/app/.next/static/chunks/app/api/usage/chart/route-b3fe65cd692af32a.js +0 -1
  1013. package/app/.next/static/chunks/app/api/usage/history/route-b3fe65cd692af32a.js +0 -1
  1014. package/app/.next/static/chunks/app/api/usage/logs/route-b3fe65cd692af32a.js +0 -1
  1015. package/app/.next/static/chunks/app/api/usage/providers/route-b3fe65cd692af32a.js +0 -1
  1016. package/app/.next/static/chunks/app/api/usage/report/route-b3fe65cd692af32a.js +0 -1
  1017. package/app/.next/static/chunks/app/api/usage/request-details/route-b3fe65cd692af32a.js +0 -1
  1018. package/app/.next/static/chunks/app/api/usage/request-logs/route-b3fe65cd692af32a.js +0 -1
  1019. package/app/.next/static/chunks/app/api/usage/stats/route-b3fe65cd692af32a.js +0 -1
  1020. package/app/.next/static/chunks/app/api/usage/stream/route-b3fe65cd692af32a.js +0 -1
  1021. package/app/.next/static/chunks/app/api/v1/api/chat/route-b3fe65cd692af32a.js +0 -1
  1022. package/app/.next/static/chunks/app/api/v1/audio/speech/route-b3fe65cd692af32a.js +0 -1
  1023. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-b3fe65cd692af32a.js +0 -1
  1024. package/app/.next/static/chunks/app/api/v1/audio/voices/route-b3fe65cd692af32a.js +0 -1
  1025. package/app/.next/static/chunks/app/api/v1/chat/completions/route-b3fe65cd692af32a.js +0 -1
  1026. package/app/.next/static/chunks/app/api/v1/embeddings/route-b3fe65cd692af32a.js +0 -1
  1027. package/app/.next/static/chunks/app/api/v1/images/generations/route-b3fe65cd692af32a.js +0 -1
  1028. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-b3fe65cd692af32a.js +0 -1
  1029. package/app/.next/static/chunks/app/api/v1/messages/route-b3fe65cd692af32a.js +0 -1
  1030. package/app/.next/static/chunks/app/api/v1/models/[...model]/route-b3fe65cd692af32a.js +0 -1
  1031. package/app/.next/static/chunks/app/api/v1/models/info/route-b3fe65cd692af32a.js +0 -1
  1032. package/app/.next/static/chunks/app/api/v1/models/route-b3fe65cd692af32a.js +0 -1
  1033. package/app/.next/static/chunks/app/api/v1/responses/compact/route-b3fe65cd692af32a.js +0 -1
  1034. package/app/.next/static/chunks/app/api/v1/responses/route-b3fe65cd692af32a.js +0 -1
  1035. package/app/.next/static/chunks/app/api/v1/route-b3fe65cd692af32a.js +0 -1
  1036. package/app/.next/static/chunks/app/api/v1/search/route-b3fe65cd692af32a.js +0 -1
  1037. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-b3fe65cd692af32a.js +0 -1
  1038. package/app/.next/static/chunks/app/api/v1/videos/edits/route-b3fe65cd692af32a.js +0 -1
  1039. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-b3fe65cd692af32a.js +0 -1
  1040. package/app/.next/static/chunks/app/api/v1/videos/generations/route-b3fe65cd692af32a.js +0 -1
  1041. package/app/.next/static/chunks/app/api/v1/web/fetch/route-b3fe65cd692af32a.js +0 -1
  1042. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-b3fe65cd692af32a.js +0 -1
  1043. package/app/.next/static/chunks/app/api/v1beta/models/route-b3fe65cd692af32a.js +0 -1
  1044. package/app/.next/static/chunks/app/api/version/route-b3fe65cd692af32a.js +0 -1
  1045. package/app/.next/static/chunks/app/api/version/shutdown/route-b3fe65cd692af32a.js +0 -1
  1046. package/app/.next/static/chunks/app/api/version/update/route-b3fe65cd692af32a.js +0 -1
  1047. package/app/.next/static/chunks/app/manifest.webmanifest/route-b3fe65cd692af32a.js +0 -1
  1048. package/app/.next/static/chunks/app/page-b3fe65cd692af32a.js +0 -1
  1049. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-b3fe65cd692af32a.js +0 -1
  1050. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-b3fe65cd692af32a.js +0 -1
  1051. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-b3fe65cd692af32a.js +0 -1
  1052. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b3fe65cd692af32a.js +0 -1
  1053. /package/app/.next/static/{4aSob9BYLKkmEZKpVTTCD → pVz30g5r-30_iNnN7XF0H}/_ssgManifest.js +0 -0
@@ -0,0 +1,170 @@
1
+ import { makeKv } from "../../src/lib/kvStore.js";
2
+
3
+ const MAX_SIGNATURES = 2000;
4
+ const MAX_PERSISTED_SIGNATURES = 10_000;
5
+ const MEMORY_TTL_MS = 1000 * 60 * 60; // 1 hour
6
+ const PERSISTED_TTL_MS = 1000 * 60 * 60 * 24 * 7; // 7 days
7
+ const SCOPE = "gemini_thought_signatures";
8
+
9
+ const signatureKv = makeKv(SCOPE);
10
+ const memorySignatures = new Map();
11
+ let pruneCounter = 0;
12
+
13
+ function pruneMemoryExpired() {
14
+ const now = Date.now();
15
+ for (const [key, value] of memorySignatures.entries()) {
16
+ if (value.expiresAt <= now) {
17
+ memorySignatures.delete(key);
18
+ }
19
+ }
20
+
21
+ while (memorySignatures.size > MAX_SIGNATURES) {
22
+ const oldestKey = memorySignatures.keys().next().value;
23
+ if (!oldestKey) break;
24
+ memorySignatures.delete(oldestKey);
25
+ }
26
+ }
27
+
28
+ async function maybePrunePersisted() {
29
+ pruneCounter++;
30
+ if (pruneCounter % 100 !== 0) return;
31
+
32
+ try {
33
+ const all = await signatureKv.getAll();
34
+ const keys = Object.keys(all);
35
+ const now = Date.now();
36
+ const expiredKeys = [];
37
+ const valid = [];
38
+
39
+ for (const k of keys) {
40
+ const entry = all[k];
41
+ if (!entry || typeof entry.signature !== "string" || (entry.expiresAt && entry.expiresAt <= now)) {
42
+ expiredKeys.push(k);
43
+ } else {
44
+ valid.push({ key: k, createdAt: entry.createdAt || 0 });
45
+ }
46
+ }
47
+
48
+ for (const k of expiredKeys) {
49
+ await signatureKv.remove(k).catch(() => {});
50
+ }
51
+
52
+ if (valid.length > MAX_PERSISTED_SIGNATURES) {
53
+ valid.sort((a, b) => b.createdAt - a.createdAt);
54
+ const toRemove = valid.slice(MAX_PERSISTED_SIGNATURES);
55
+ for (const item of toRemove) {
56
+ await signatureKv.remove(item.key).catch(() => {});
57
+ }
58
+ }
59
+ } catch {
60
+ // Fail-open
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Store a thought signature for a tool_call_id with optional sessionId namespace (RAM + persisted kv async)
66
+ */
67
+ export function storeGeminiThoughtSignature(toolCallId, signature, sessionId = null) {
68
+ if (typeof toolCallId !== "string" || !toolCallId) return;
69
+ if (typeof signature !== "string" || !signature) return;
70
+
71
+ const now = Date.now();
72
+ pruneMemoryExpired();
73
+
74
+ const keys = [];
75
+ if (sessionId && typeof sessionId === "string") {
76
+ keys.push(`${sessionId}:${toolCallId}`);
77
+ }
78
+ keys.push(toolCallId);
79
+
80
+ for (const k of keys) {
81
+ memorySignatures.set(k, {
82
+ signature,
83
+ expiresAt: now + MEMORY_TTL_MS,
84
+ });
85
+
86
+ // Async persist to the kv store without blocking
87
+ signatureKv.set(k, {
88
+ signature,
89
+ createdAt: now,
90
+ expiresAt: now + PERSISTED_TTL_MS,
91
+ }).catch(() => {});
92
+ }
93
+
94
+ maybePrunePersisted().catch(() => {});
95
+ }
96
+
97
+ /**
98
+ * Retrieve a thought signature by tool_call_id (RAM first, then persisted kv fallback)
99
+ */
100
+ export async function getGeminiThoughtSignature(toolCallId, sessionId = null) {
101
+ if (typeof toolCallId !== "string" || !toolCallId) return null;
102
+
103
+ pruneMemoryExpired();
104
+
105
+ if (sessionId && typeof sessionId === "string") {
106
+ const sessionKey = `${sessionId}:${toolCallId}`;
107
+ const sessionEntry = memorySignatures.get(sessionKey);
108
+ if (sessionEntry && sessionEntry.expiresAt > Date.now()) {
109
+ return sessionEntry.signature;
110
+ }
111
+ }
112
+
113
+ const entry = memorySignatures.get(toolCallId);
114
+ if (entry && entry.expiresAt > Date.now()) {
115
+ return entry.signature;
116
+ }
117
+
118
+ try {
119
+ if (sessionId && typeof sessionId === "string") {
120
+ const sessionKey = `${sessionId}:${toolCallId}`;
121
+ const sessionRow = await signatureKv.get(sessionKey);
122
+ if (sessionRow && typeof sessionRow.signature === "string" && (!sessionRow.expiresAt || sessionRow.expiresAt > Date.now())) {
123
+ memorySignatures.set(sessionKey, {
124
+ signature: sessionRow.signature,
125
+ expiresAt: Date.now() + MEMORY_TTL_MS,
126
+ });
127
+ return sessionRow.signature;
128
+ }
129
+ }
130
+
131
+ const row = await signatureKv.get(toolCallId);
132
+ if (row && typeof row.signature === "string") {
133
+ if (row.expiresAt && row.expiresAt <= Date.now()) {
134
+ signatureKv.remove(toolCallId).catch(() => {});
135
+ return null;
136
+ }
137
+ memorySignatures.set(toolCallId, {
138
+ signature: row.signature,
139
+ expiresAt: Date.now() + MEMORY_TTL_MS,
140
+ });
141
+ return row.signature;
142
+ }
143
+ } catch {
144
+ // Fail-open
145
+ }
146
+
147
+ return null;
148
+ }
149
+
150
+ /**
151
+ * Synchronous get from RAM cache only (for sync translators)
152
+ */
153
+ export function getGeminiThoughtSignatureSync(toolCallId, sessionId = null) {
154
+ if (typeof toolCallId !== "string" || !toolCallId) return null;
155
+ pruneMemoryExpired();
156
+
157
+ if (sessionId && typeof sessionId === "string") {
158
+ const sessionKey = `${sessionId}:${toolCallId}`;
159
+ const sessionEntry = memorySignatures.get(sessionKey);
160
+ if (sessionEntry && sessionEntry.expiresAt > Date.now()) {
161
+ return sessionEntry.signature;
162
+ }
163
+ }
164
+
165
+ const entry = memorySignatures.get(toolCallId);
166
+ if (entry && entry.expiresAt > Date.now()) {
167
+ return entry.signature;
168
+ }
169
+ return null;
170
+ }
@@ -148,6 +148,8 @@ const REFRESH_HANDLERS = {
148
148
  "codebuddy-intl": (c, log) => refreshCodebuddyIntlToken(c.refreshToken, log),
149
149
  trae: (c, log) => refreshTraeToken(c.refreshToken, c, log),
150
150
  cline: (c, log) => refreshClineToken(c.refreshToken, log),
151
+ // ClinePass shares Cline's WorkOS auth endpoints, so the same refresh works.
152
+ clinepass: (c, log) => refreshClineToken(c.refreshToken, log),
151
153
  zed: () => refreshZedToken(),
152
154
  windsurf: (c, log) => refreshWindsurfToken(c, log),
153
155
  // Kimi Code OAuth (merged into id `kimi`); legacy id still routes here
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Antigravity weekly quota — best-effort retrieval from retrieveUserQuotaSummary.
3
+ * Failure never breaks existing per-model quota display.
4
+ */
5
+
6
+ import { U, parseResetTime, fetchWithTimeout } from "./shared.js";
7
+ import { ANTIGRAVITY_IDE_USER_AGENT, ANTIGRAVITY_IDE_VERSION } from "../../providers/shared.js";
8
+
9
+ // — Weekly quota summary config ——————————————————————————————
10
+ const WEEKLY_CONFIG = {
11
+ ...U("antigravity"),
12
+ userAgent: ANTIGRAVITY_IDE_USER_AGENT,
13
+ };
14
+
15
+ // — Cache: TTL + in-flight dedup per project ———————————————
16
+ const WEEKLY_CACHE_TTL_MS = 180_000; // 3 minutes
17
+ const weeklyCache = new Map(); // cacheKey -> { result, expiresAt } | { promise }
18
+
19
+ function cacheKey(accessToken, projectId) {
20
+ return `${accessToken}::${projectId || ""}`;
21
+ }
22
+
23
+ // Exported for tests only
24
+ export function _clearWeeklyCache() {
25
+ weeklyCache.clear();
26
+ }
27
+
28
+ // — Group-name to stable key mapping ——————————————————————
29
+ const GROUP_MATCHERS = [
30
+ { pattern: /gemini/i, key: "gemini_weekly", displayName: "Gemini (Weekly)" },
31
+ { pattern: /claude|gpt/i, key: "claude_gpt_weekly", displayName: "Claude & GPT (Weekly)" },
32
+ ];
33
+
34
+ /**
35
+ * Parse a retrieveUserQuotaSummary response into normalized weekly quotas.
36
+ * Pure function — safe to unit-test without network.
37
+ *
38
+ * @param {Object|null} data Raw JSON response
39
+ * @returns {Object} e.g. { gemini_weekly: { used, total, ... }, claude_gpt_weekly: { ... } }
40
+ */
41
+ export function parseWeeklyQuotaSummary(data) {
42
+ if (!data || typeof data !== "object") return {};
43
+
44
+ // Groups may live at data.groups or data.quotaSummary.groups
45
+ const groups = Array.isArray(data.groups)
46
+ ? data.groups
47
+ : Array.isArray(data.quotaSummary?.groups)
48
+ ? data.quotaSummary.groups
49
+ : null;
50
+
51
+ if (!groups) return {};
52
+
53
+ const result = {};
54
+
55
+ for (const group of groups) {
56
+ if (!group || typeof group !== "object") continue;
57
+ const displayName = group.displayName || "";
58
+
59
+ const buckets = Array.isArray(group.buckets) ? group.buckets : [];
60
+ for (const bucket of buckets) {
61
+ if (!bucket || typeof bucket !== "object") continue;
62
+
63
+ // Identify weekly buckets by checking bucketId + displayName for "weekly"
64
+ const bucketText = `${bucket.bucketId || ""} ${bucket.displayName || ""}`.toLowerCase();
65
+ if (!bucketText.includes("weekly")) continue;
66
+
67
+ // Skip disabled buckets
68
+ if (bucket.disabled === true) continue;
69
+
70
+ const remainingFraction = Number(bucket.remainingFraction);
71
+ if (!Number.isFinite(remainingFraction)) continue;
72
+
73
+ // Match group to a known family
74
+ for (const matcher of GROUP_MATCHERS) {
75
+ if (matcher.pattern.test(displayName)) {
76
+ const total = 1000;
77
+ const remaining = Math.round(total * remainingFraction);
78
+ const used = Math.max(0, total - remaining);
79
+
80
+ result[matcher.key] = {
81
+ used,
82
+ total,
83
+ resetAt: parseResetTime(bucket.resetTime),
84
+ remainingPercentage: remainingFraction * 100,
85
+ unlimited: false,
86
+ displayName: matcher.displayName,
87
+ };
88
+ break; // first matching bucket per family wins
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
+ return result;
95
+ }
96
+
97
+ /**
98
+ * Fetch weekly quota summary — cached, deduped, never throws.
99
+ */
100
+ export async function fetchAntigravityWeeklyQuota(accessToken, projectId, proxyOptions = null) {
101
+ const key = cacheKey(accessToken, projectId);
102
+
103
+ // Serve in-flight or cached
104
+ const hit = weeklyCache.get(key);
105
+ if (hit?.promise) return hit.promise;
106
+ if (hit && hit.expiresAt > Date.now()) return hit.result;
107
+
108
+ const promise = (async () => {
109
+ try {
110
+ const url = WEEKLY_CONFIG.quotaSummaryApiUrl;
111
+ if (!url) return {};
112
+
113
+ const response = await fetchWithTimeout(url, {
114
+ method: "POST",
115
+ headers: {
116
+ "Authorization": `Bearer ${accessToken}`,
117
+ "User-Agent": WEEKLY_CONFIG.userAgent,
118
+ "Content-Type": "application/json",
119
+ "X-Client-Name": "antigravity",
120
+ "X-Client-Version": ANTIGRAVITY_IDE_VERSION,
121
+ },
122
+ body: JSON.stringify({
123
+ ...(projectId ? { project: projectId } : {}),
124
+ }),
125
+ }, 10000, proxyOptions);
126
+
127
+ if (!response.ok) return {};
128
+
129
+ const data = await response.json();
130
+ return parseWeeklyQuotaSummary(data);
131
+ } catch {
132
+ return {};
133
+ }
134
+ })();
135
+
136
+ weeklyCache.set(key, { promise });
137
+
138
+ try {
139
+ const result = await promise;
140
+ if (result && Object.keys(result).length > 0) {
141
+ weeklyCache.set(key, { result, expiresAt: Date.now() + WEEKLY_CACHE_TTL_MS });
142
+ } else {
143
+ weeklyCache.delete(key);
144
+ }
145
+ return result;
146
+ } catch {
147
+ weeklyCache.delete(key);
148
+ return {};
149
+ }
150
+ }
@@ -110,6 +110,22 @@ async function fetchClaudeUsageRaw(accessToken, proxyOptions = null) {
110
110
  }
111
111
  }
112
112
 
113
+ // Model-scoped weekly limits (e.g. Fable) arrive in limits[], not as
114
+ // seven_day_* keys: { kind: "weekly_scoped", percent, resets_at,
115
+ // scope: { model: { display_name: "Fable" } } }. No limits entry means
116
+ // the account has no such window — omit the row, never fabricate one.
117
+ if (Array.isArray(data.limits)) {
118
+ for (const limit of data.limits) {
119
+ if (limit?.kind !== "weekly_scoped") continue;
120
+ const modelName = String(limit?.scope?.model?.display_name || "").trim().toLowerCase();
121
+ if (!modelName || typeof limit.percent !== "number") continue;
122
+ quotas[`weekly ${modelName} (7d)`] = createQuotaObject({
123
+ utilization: Math.max(0, Math.min(100, limit.percent)),
124
+ resets_at: limit.resets_at,
125
+ });
126
+ }
127
+ }
128
+
113
129
  return {
114
130
  plan: "Claude Code",
115
131
  extraUsage: data.extra_usage ?? null,
@@ -21,6 +21,13 @@ function toIsoDate(value) {
21
21
  return Number.isFinite(time) ? date.toISOString() : null;
22
22
  }
23
23
 
24
+ function errorMessage(value, fallback) {
25
+ if (!value) return fallback;
26
+ if (typeof value === "string") return value;
27
+ if (typeof value.message === "string") return value.message;
28
+ return JSON.stringify(value);
29
+ }
30
+
24
31
  function getCodexAccountId(providerSpecificData) {
25
32
  return providerSpecificData?.workspaceId || providerSpecificData?.accountId || providerSpecificData?.chatgptAccountId || null;
26
33
  }
@@ -162,7 +169,7 @@ export async function getCodexRateLimitResetCredits(accessToken, proxyOptions =
162
169
  }
163
170
 
164
171
  if (!response.ok) {
165
- const message = data?.message || data?.error || data?.detail || `Codex reset credits API unavailable (${response.status}).`;
172
+ const message = errorMessage(data?.message || data?.error || data?.detail, `Codex reset credits API unavailable (${response.status}).`);
166
173
  throw new Error(message);
167
174
  }
168
175
 
@@ -5,6 +5,7 @@
5
5
  import { CLIENT_METADATA } from "../../config/appConstants.js";
6
6
  import { ANTIGRAVITY_IDE_USER_AGENT, ANTIGRAVITY_IDE_VERSION, ANTIGRAVITY_OAUTH_CLIENT } from "../../providers/shared.js";
7
7
  import { U, parseResetTime, normalizeCloudCodeProjectId, fetchWithTimeout } from "./shared.js";
8
+ import { fetchAntigravityWeeklyQuota } from "./antigravity-weekly.js";
8
9
 
9
10
  // Antigravity API config (from Quotio) — urls from registry, oauth client + dynamic UA kept here
10
11
  const ANTIGRAVITY_CONFIG = {
@@ -185,8 +186,15 @@ export async function getAntigravityUsage(accessToken, providerSpecificData, pro
185
186
  }
186
187
  const quotas = {};
187
188
 
188
- // Parse model quotas (inspired by vscode-antigravity-cockpit)
189
- if (data.models) {
189
+ // Detect tier: free-tier accounts only have weekly quotas (no separate 5h window).
190
+ // On free-tier, fetchAvailableModels returns misleading per-model quota info
191
+ // (missing remainingFraction defaults to 0, or reflects the weekly limit not a 5h window).
192
+ const paidTierId = subscriptionInfo?.paidTier?.id;
193
+ const isFreeTier = !paidTierId || paidTierId === "free-tier";
194
+
195
+ // Parse model quotas only for paid-tier accounts.
196
+ // Free-tier accounts skip this — their only meaningful quota is the weekly limit.
197
+ if (!isFreeTier && data.models) {
190
198
  // Filter only recommended/important models (must match PROVIDER_MODELS ag ids,
191
199
  // plus live fetchAvailableModels keys that have not been split into tiers yet).
192
200
  const importantModels = {
@@ -245,6 +253,56 @@ export async function getAntigravityUsage(accessToken, providerSpecificData, pro
245
253
  }
246
254
  }
247
255
 
256
+ // Best-effort weekly quota overlay — never blocks or breaks per-model results
257
+ try {
258
+ const weeklyQuotas = await fetchAntigravityWeeklyQuota(
259
+ accessToken,
260
+ projectId,
261
+ proxyOptions
262
+ );
263
+
264
+ // Reconcile weekly quota against model family status:
265
+ // If every model in a family is locked/exhausted (remainingPercentage === 0)
266
+ // until a future reset time, the weekly limit cannot be 100% available.
267
+ // On Google's Free Starter tier, retrieveUserQuotaSummary buggily reports
268
+ // remainingFraction: 1 even after the starter quota is depleted and all models 429.
269
+ const entries = Object.entries(quotas);
270
+ const geminiModels = entries.filter(([k]) => k.startsWith("gemini-") && !k.includes("image"));
271
+ const claudeModels = entries.filter(([k]) => k.startsWith("claude-"));
272
+
273
+ if (weeklyQuotas.gemini_weekly && geminiModels.length > 0) {
274
+ const allGeminiExhausted = geminiModels.every(([, q]) => (q.remainingPercentage ?? 0) === 0);
275
+ if (allGeminiExhausted && weeklyQuotas.gemini_weekly.remainingPercentage > 0) {
276
+ const maxResetAt = geminiModels.reduce((max, [, q]) =>
277
+ !max || (q.resetAt && new Date(q.resetAt) > new Date(max)) ? q.resetAt : max, null
278
+ );
279
+ weeklyQuotas.gemini_weekly.used = weeklyQuotas.gemini_weekly.total;
280
+ weeklyQuotas.gemini_weekly.remainingPercentage = 0;
281
+ if (maxResetAt) {
282
+ weeklyQuotas.gemini_weekly.resetAt = maxResetAt;
283
+ }
284
+ }
285
+ }
286
+
287
+ if (weeklyQuotas.claude_gpt_weekly && claudeModels.length > 0) {
288
+ const allClaudeExhausted = claudeModels.every(([, q]) => (q.remainingPercentage ?? 0) === 0);
289
+ if (allClaudeExhausted && weeklyQuotas.claude_gpt_weekly.remainingPercentage > 0) {
290
+ const maxResetAt = claudeModels.reduce((max, [, q]) =>
291
+ !max || (q.resetAt && new Date(q.resetAt) > new Date(max)) ? q.resetAt : max, null
292
+ );
293
+ weeklyQuotas.claude_gpt_weekly.used = weeklyQuotas.claude_gpt_weekly.total;
294
+ weeklyQuotas.claude_gpt_weekly.remainingPercentage = 0;
295
+ if (maxResetAt) {
296
+ weeklyQuotas.claude_gpt_weekly.resetAt = maxResetAt;
297
+ }
298
+ }
299
+ }
300
+
301
+ Object.assign(quotas, weeklyQuotas);
302
+ } catch {
303
+ // Silently ignore — weekly is best-effort
304
+ }
305
+
248
306
  return {
249
307
  plan: subscriptionInfo?.currentTier?.name || "Unknown",
250
308
  quotas,
@@ -0,0 +1,107 @@
1
+ /**
2
+ * OpenCode Go usage — GET https://opencode.ai/zen/go/v1/usage
3
+ * Auth: Bearer <apiKey>
4
+ */
5
+
6
+ import { proxyAwareFetch } from "../../utils/proxyFetch.js";
7
+ import { parseResetTime, toFiniteNumber, U } from "./shared.js";
8
+
9
+ const USAGE_URL = U("opencode-go").url;
10
+ const QUOTA_NAMES = {
11
+ rolling: "Rolling",
12
+ weekly: "Weekly",
13
+ monthly: "Monthly",
14
+ };
15
+
16
+ function parsePercent(value) {
17
+ if (typeof value === "number" && Number.isFinite(value)) return value;
18
+ if (typeof value === "string" && value.trim()) {
19
+ const parsed = Number(value);
20
+ if (Number.isFinite(parsed)) return parsed;
21
+ }
22
+ return null;
23
+ }
24
+
25
+ export async function getOpenCodeGoUsage(apiKey = null, proxyOptions = null) {
26
+ if (!apiKey || typeof apiKey !== "string" || !apiKey.trim()) {
27
+ return {
28
+ message: "OpenCode Go API key not available. Add a key to view usage.",
29
+ };
30
+ }
31
+
32
+ try {
33
+ const response = await proxyAwareFetch(
34
+ USAGE_URL,
35
+ {
36
+ method: "GET",
37
+ headers: {
38
+ Authorization: `Bearer ${apiKey.trim()}`,
39
+ Accept: "application/json",
40
+ },
41
+ },
42
+ proxyOptions,
43
+ );
44
+
45
+ if (response.status === 401) {
46
+ return {
47
+ plan: "OpenCode Go",
48
+ message: "OpenCode Go authentication failed. Check the API key.",
49
+ };
50
+ }
51
+
52
+ if (response.status === 403) {
53
+ const error = await response.json().catch(() => null);
54
+ const subscriptionRequired = error?.error?.type === "EntitlementError";
55
+ return {
56
+ plan: "OpenCode Go",
57
+ message: subscriptionRequired
58
+ ? "OpenCode Go subscription required for this API key."
59
+ : "OpenCode Go access forbidden for this API key.",
60
+ };
61
+ }
62
+
63
+ if (!response.ok) {
64
+ return {
65
+ plan: "OpenCode Go",
66
+ message: `OpenCode Go usage API error (${response.status}).`,
67
+ };
68
+ }
69
+
70
+ const data = await response.json().catch(() => null);
71
+ if (!data?.usage || typeof data.usage !== "object") {
72
+ return {
73
+ plan: "OpenCode Go",
74
+ message: "OpenCode Go usage response did not contain quota data.",
75
+ };
76
+ }
77
+
78
+ const quotas = {};
79
+ for (const [period, name] of Object.entries(QUOTA_NAMES)) {
80
+ const quota = data.usage[period];
81
+ if (!quota || typeof quota !== "object") continue;
82
+ const percent = parsePercent(quota.percent);
83
+ if (percent === null) continue;
84
+ const used = Math.max(0, Math.min(100, toFiniteNumber(percent, 0)));
85
+ quotas[name] = {
86
+ used,
87
+ total: 100,
88
+ remaining: 100 - used,
89
+ remainingPercentage: 100 - used,
90
+ resetAt: parseResetTime(quota.resetsAt),
91
+ unlimited: false,
92
+ };
93
+ }
94
+
95
+
96
+ if (Object.keys(quotas).length === 0) {
97
+ return {
98
+ plan: "OpenCode Go",
99
+ message: "OpenCode Go usage response did not contain valid quota data.",
100
+ };
101
+ }
102
+
103
+ return { plan: "OpenCode Go", quotas };
104
+ } catch (error) {
105
+ return { message: `OpenCode Go error: ${error.message}` };
106
+ }
107
+ }
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Xiaomi MiMo usage — weekly quota from the Xiaomi account session.
3
+ *
4
+ * Primary path: GET {mimo-server}/api/user/usage authorized by the account-session
5
+ * cookie (see shared/mimoAccount.js). Response: { code: 0, data: { percent (remaining
6
+ * %), resetDate, resetAt } }.
7
+ *
8
+ * Fallback: the sk- API key cannot read the quota, so when no account session is
9
+ * available we surface a graceful message instead of failing.
10
+ */
11
+
12
+ import { proxyAwareFetch } from "../../utils/proxyFetch.js";
13
+ import { getMimoAccountUsage } from "../../shared/mimoAccount.js";
14
+
15
+ const USAGE_URL = "https://aistudio.xiaomimimo.com/open-apis/v1/user/usage";
16
+
17
+ /**
18
+ * @param {string|null|undefined} accessToken - sk- API key
19
+ * @param {object|null} providerSpecificData - may contain mimoPassToken, uid, etc.
20
+ * @param {object|null} proxyOptions
21
+ */
22
+ export async function getXiaomiMimoUsage(accessToken = null, providerSpecificData = null, proxyOptions = null) {
23
+ // Preferred path: the weekly quota comes from the account service session
24
+ // (mimo-server /api/user/usage), which the sk- key cannot reach. The session is
25
+ // derived from MiMo Desktop's persisted passToken via the SSO/sts handshake.
26
+ const account = await getMimoAccountUsage(providerSpecificData, proxyOptions);
27
+ if (typeof account.percent === "number" && Number.isFinite(account.percent)) {
28
+ const remaining = Math.max(0, Math.min(100, Math.round(account.percent)));
29
+ const used = 100 - remaining;
30
+ let resetAt = null;
31
+ if (typeof account.resetAt === "number" && account.resetAt > 0) {
32
+ resetAt = new Date(account.resetAt * 1000).toISOString();
33
+ } else if (typeof account.resetDate === "string") {
34
+ const parsed = new Date(`${account.resetDate}T00:00:00Z`);
35
+ if (!Number.isNaN(parsed.getTime())) resetAt = parsed.toISOString();
36
+ }
37
+ return {
38
+ plan: "Xiaomi MiMo Desktop",
39
+ quotas: {
40
+ Weekly: { used, total: 100, remainingPercentage: remaining, resetAt, unlimited: false },
41
+ },
42
+ };
43
+ }
44
+
45
+ // Fallback: no account session available (Desktop never logged in, or its cookie
46
+ // store is locked). The sk- key cannot read the quota, so surface a clear message.
47
+ const key = accessToken || providerSpecificData?.apiKey;
48
+ if (!key || typeof key !== "string" || !key.trim()) {
49
+ return { message: "Xiaomi MiMo Desktop not connected. Add credentials to view usage." };
50
+ }
51
+
52
+ try {
53
+ const response = await proxyAwareFetch(
54
+ USAGE_URL,
55
+ {
56
+ method: "GET",
57
+ headers: {
58
+ Authorization: `Bearer ${key.trim()}`,
59
+ "X-Mimo-Source": "mimocode-cli",
60
+ Accept: "application/json",
61
+ },
62
+ signal: AbortSignal.timeout(10000),
63
+ },
64
+ proxyOptions,
65
+ );
66
+
67
+ if (response.status === 401) {
68
+ return {
69
+ plan: "Xiaomi MiMo Desktop",
70
+ message: "Weekly quota requires Xiaomi account session. API key alone is insufficient.",
71
+ };
72
+ }
73
+
74
+ if (!response.ok) {
75
+ return {
76
+ plan: "Xiaomi MiMo Desktop",
77
+ message: `Usage API error (${response.status})`,
78
+ };
79
+ }
80
+
81
+ const data = await response.json().catch(() => null);
82
+ if (!data || data.code !== 0 || !data.data) {
83
+ return {
84
+ plan: "Xiaomi MiMo Desktop",
85
+ message: "Usage endpoint returned unexpected response.",
86
+ };
87
+ }
88
+
89
+ const { percent, resetDate } = data.data;
90
+ if (typeof percent !== "number" || !Number.isFinite(percent)) {
91
+ return {
92
+ plan: "Xiaomi MiMo Desktop",
93
+ message: "Usage data missing percent field.",
94
+ };
95
+ }
96
+
97
+ // percent = remaining percentage (e.g. 94 means 94% remaining)
98
+ const remaining = Math.max(0, Math.min(100, Math.round(percent)));
99
+ const used = 100 - remaining;
100
+
101
+ // Parse resetDate — expected format "2026-09-16"
102
+ let resetAt = null;
103
+ if (resetDate && typeof resetDate === "string") {
104
+ const parsed = new Date(`${resetDate}T00:00:00Z`);
105
+ if (!Number.isNaN(parsed.getTime())) {
106
+ resetAt = parsed.toISOString();
107
+ }
108
+ }
109
+
110
+ return {
111
+ plan: "Xiaomi MiMo Desktop",
112
+ quotas: {
113
+ Weekly: {
114
+ used,
115
+ total: 100,
116
+ remainingPercentage: remaining,
117
+ resetAt,
118
+ unlimited: false,
119
+ },
120
+ },
121
+ };
122
+ } catch (error) {
123
+ return { message: `Xiaomi MiMo Desktop usage error: ${error.message}` };
124
+ }
125
+ }