n9router 0.4.57 → 0.4.59

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 (1099) hide show
  1. package/README.md +15 -0
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +20 -18
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/prerender-manifest.json +3 -3
  6. package/app/.next/routes-manifest.json +16 -4
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  8. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  14. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  17. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  20. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  23. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +5 -5
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  38. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  41. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  44. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +17 -4
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  53. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  56. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  59. package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  62. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  65. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  66. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  68. package/app/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  69. package/app/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  71. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  72. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +3 -3
  74. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  75. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/_global-error/page.js +2 -2
  77. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/_global-error.html +1 -1
  79. package/app/.next/server/app/_global-error.rsc +1 -1
  80. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  81. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  82. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  83. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  84. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  85. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  86. package/app/.next/server/app/_not-found/page.js +2 -2
  87. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  88. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/_not-found.html +1 -1
  90. package/app/.next/server/app/_not-found.rsc +4 -4
  91. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  92. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  93. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  94. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  95. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  96. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  97. package/app/.next/server/app/api/antigravity-app/route.js +1 -1
  98. package/app/.next/server/app/api/antigravity-app-v2/route.js +1 -1
  99. package/app/.next/server/app/api/antigravity-ide/route.js +1 -1
  100. package/app/.next/server/app/api/antigravity-targets/route.js +1 -1
  101. package/app/.next/server/app/api/antigravity-tools/import/route.js +1 -1
  102. package/app/.next/server/app/api/antigravity-tools/import/route.js.nft.json +1 -1
  103. package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js +1 -1
  104. package/app/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/auth/login/route.js +1 -1
  106. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  107. package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -1
  108. package/app/.next/server/app/api/auth/oidc/start/route.js +1 -1
  109. package/app/.next/server/app/api/auth/oidc/test/route.js +1 -1
  110. package/app/.next/server/app/api/auth/reset-password/route.js +1 -1
  111. package/app/.next/server/app/api/auth/saml/acs/route.js +1 -1
  112. package/app/.next/server/app/api/auth/saml/metadata/route.js +1 -1
  113. package/app/.next/server/app/api/auth/saml/start/route.js +1 -1
  114. package/app/.next/server/app/api/auth/saml/test/route.js +2 -2
  115. package/app/.next/server/app/api/auth/status/route.js +1 -1
  116. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +7 -7
  117. package/app/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  118. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  119. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  120. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  121. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  122. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  123. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  124. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  125. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  126. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  127. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route.js +2 -2
  129. package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route.js +1 -1
  130. package/app/.next/server/app/api/cli-tools/cursor-byok/jobs/route.js +1 -1
  131. package/app/.next/server/app/api/cli-tools/cursor-byok/route.js +1 -1
  132. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  133. package/app/.next/server/app/api/cli-tools/devin-settings/route.js +2 -2
  134. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  135. package/app/.next/server/app/api/cli-tools/grok-build-settings/route.js +3 -3
  136. package/app/.next/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  138. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  139. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  140. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  141. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  142. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  143. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/combos/route.js +1 -1
  145. package/app/.next/server/app/api/donate/route.js +1 -1
  146. package/app/.next/server/app/api/headroom/extras/route.js +1 -1
  147. package/app/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  148. package/app/.next/server/app/api/headroom/restart/route.js +1 -1
  149. package/app/.next/server/app/api/headroom/start/route.js +1 -1
  150. package/app/.next/server/app/api/headroom/status/route.js +1 -1
  151. package/app/.next/server/app/api/headroom/stop/route.js +1 -1
  152. package/app/.next/server/app/api/health/route.js +1 -1
  153. package/app/.next/server/app/api/init/route.js +1 -1
  154. package/app/.next/server/app/api/internal/account-health/route.js +1 -1
  155. package/app/.next/server/app/api/internal/request-detail/route.js +1 -1
  156. package/app/.next/server/app/api/internal/usage/route.js +1 -1
  157. package/app/.next/server/app/api/keys/[id]/reset-usage/route.js +1 -1
  158. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  159. package/app/.next/server/app/api/keys/[id]/usage/route.js +1 -1
  160. package/app/.next/server/app/api/keys/route.js +1 -1
  161. package/app/.next/server/app/api/locale/route.js +1 -1
  162. package/app/.next/server/app/api/mcp/[plugin]/message/route.js +1 -1
  163. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  164. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  165. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  166. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  168. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  169. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  170. package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/models/alias/route.js +1 -1
  172. package/app/.next/server/app/api/models/availability/route.js +1 -1
  173. package/app/.next/server/app/api/models/catalog-sync/route.js +1 -0
  174. package/app/.next/server/app/api/models/catalog-sync/route.js.nft.json +1 -0
  175. package/app/.next/server/app/api/models/catalog-sync/route_client-reference-manifest.js +1 -0
  176. package/app/.next/server/app/api/models/custom/route.js +1 -1
  177. package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  179. package/app/.next/server/app/api/models/route.js +1 -1
  180. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  181. package/app/.next/server/app/api/models/test/route.js +1 -1
  182. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  183. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  184. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  186. package/app/.next/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  187. package/app/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
  188. package/app/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  189. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  190. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  191. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  193. package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -0
  194. package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -0
  195. package/app/.next/server/app/api/oauth/grok-cli/bulk-import/route_client-reference-manifest.js +1 -0
  196. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  197. package/app/.next/server/app/api/oauth/kiro/api-key/route.js +1 -1
  198. package/app/.next/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  199. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  200. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  201. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  202. package/app/.next/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  203. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  204. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  205. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  206. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/pricing/route.js +1 -1
  208. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  209. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  210. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  212. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  213. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  214. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  215. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  216. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  218. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/providers/client/route.js +1 -1
  220. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  221. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  222. package/app/.next/server/app/api/providers/route.js +1 -1
  223. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  224. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  225. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  226. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  228. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  230. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  231. package/app/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  232. package/app/.next/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  233. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  234. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  235. package/app/.next/server/app/api/pxpipe/health/route.js +2 -2
  236. package/app/.next/server/app/api/pxpipe/install/route.js +2 -2
  237. package/app/.next/server/app/api/pxpipe/logs/route.js +2 -2
  238. package/app/.next/server/app/api/pxpipe/restart/route.js +2 -2
  239. package/app/.next/server/app/api/pxpipe/start/route.js +2 -2
  240. package/app/.next/server/app/api/pxpipe/stats/route.js +2 -2
  241. package/app/.next/server/app/api/pxpipe/status/route.js +2 -2
  242. package/app/.next/server/app/api/pxpipe/stop/route.js +2 -2
  243. package/app/.next/server/app/api/settings/database/route.js +1 -1
  244. package/app/.next/server/app/api/settings/database/selective/route.js +1 -1
  245. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  246. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  247. package/app/.next/server/app/api/settings/route.js +1 -1
  248. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  249. package/app/.next/server/app/api/shutdown/route.js +1 -1
  250. package/app/.next/server/app/api/tags/route.js +1 -1
  251. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  252. package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  254. package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  255. package/app/.next/server/app/api/translator/load/route.js +1 -1
  256. package/app/.next/server/app/api/translator/save/route.js +1 -1
  257. package/app/.next/server/app/api/translator/send/route.js +1 -1
  258. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  259. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  260. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  261. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  262. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  264. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  265. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  266. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  267. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  268. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  270. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  271. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  272. package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  273. package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  275. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  276. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  277. package/app/.next/server/app/api/usage/history/route.js +1 -1
  278. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  279. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  280. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/usage/report/route.js +1 -1
  282. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  283. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  284. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  285. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  286. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  287. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  288. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  289. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  290. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  291. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  293. package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  294. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  295. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  296. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  297. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  298. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  299. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  300. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  301. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  302. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  303. package/app/.next/server/app/api/v1/models/[...model]/route.js +1 -0
  304. package/app/.next/server/app/api/v1/models/{[kind] → [...model]}/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/v1/models/[...model]/route_client-reference-manifest.js +1 -0
  306. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  307. package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
  308. package/app/.next/server/app/api/v1/models/route.js +1 -1
  309. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  310. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  311. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  312. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  313. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  314. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  315. package/app/.next/server/app/api/v1/route.js +1 -1
  316. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  317. package/app/.next/server/app/api/v1/search/route.js +1 -1
  318. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  319. package/app/.next/server/app/api/v1/videos/[id]/route.js +1 -1
  320. package/app/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  321. package/app/.next/server/app/api/v1/videos/edits/route.js +1 -1
  322. package/app/.next/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  323. package/app/.next/server/app/api/v1/videos/extensions/route.js +1 -1
  324. package/app/.next/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  325. package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
  326. package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  327. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  328. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  329. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  330. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  331. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  332. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  333. package/app/.next/server/app/api/version/route.js +1 -1
  334. package/app/.next/server/app/api/version/shutdown/route.js +1 -1
  335. package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -1
  336. package/app/.next/server/app/api/version/update/route.js +1 -1
  337. package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
  338. package/app/.next/server/app/callback/page.js +2 -2
  339. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  340. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  341. package/app/.next/server/app/callback.html +1 -1
  342. package/app/.next/server/app/callback.rsc +4 -4
  343. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  344. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  345. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  346. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  347. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  348. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  349. package/app/.next/server/app/dashboard/basic-chat.html +1 -1
  350. package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
  351. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  352. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  353. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  354. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  355. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  356. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  357. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  358. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  359. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  360. package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
  361. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  362. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  363. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  364. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  365. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  366. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  367. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  368. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  369. package/app/.next/server/app/dashboard/combos.html +1 -1
  370. package/app/.next/server/app/dashboard/combos.rsc +6 -6
  371. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  372. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  373. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  374. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  375. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  376. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  377. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  378. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  379. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  380. package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
  381. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  382. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  383. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  384. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  385. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  386. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  387. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  388. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  389. package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
  390. package/app/.next/server/app/dashboard/media-providers/web.rsc +15 -14
  391. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  392. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  393. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  394. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  395. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  396. package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +15 -14
  397. package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  398. package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  399. package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  400. package/app/.next/server/app/dashboard/mitm.html +1 -1
  401. package/app/.next/server/app/dashboard/mitm.rsc +6 -6
  402. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  403. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  404. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  405. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  406. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  407. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  408. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  409. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  410. package/app/.next/server/app/dashboard/profile.html +1 -1
  411. package/app/.next/server/app/dashboard/profile.rsc +6 -6
  412. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  413. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  414. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  415. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  416. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  417. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  418. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  419. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  420. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  421. package/app/.next/server/app/dashboard/providers/new.rsc +15 -14
  422. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  423. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  424. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  425. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  426. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  427. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +15 -14
  428. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  429. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  430. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  431. package/app/.next/server/app/dashboard/providers.html +1 -1
  432. package/app/.next/server/app/dashboard/providers.rsc +6 -6
  433. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  434. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  435. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  436. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  437. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  438. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  439. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  440. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  441. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  442. package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
  443. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  444. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  445. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  446. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  447. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  448. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  449. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  450. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  451. package/app/.next/server/app/dashboard/pxpipe.html +1 -1
  452. package/app/.next/server/app/dashboard/pxpipe.rsc +6 -6
  453. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  454. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  455. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  456. package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  457. package/app/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  458. package/app/.next/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  459. package/app/.next/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
  460. package/app/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  461. package/app/.next/server/app/dashboard/quota.html +2 -2
  462. package/app/.next/server/app/dashboard/quota.rsc +7 -7
  463. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  464. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  465. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  466. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  467. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  468. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  469. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  470. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  471. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  472. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  473. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  474. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  475. package/app/.next/server/app/dashboard/settings/pricing.rsc +5 -5
  476. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  477. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  478. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  479. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  480. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  481. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  482. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  483. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  484. package/app/.next/server/app/dashboard/skills.html +1 -1
  485. package/app/.next/server/app/dashboard/skills.rsc +6 -6
  486. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  487. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  488. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  489. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  490. package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  491. package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  492. package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  493. package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  494. package/app/.next/server/app/dashboard/token-saver.html +1 -1
  495. package/app/.next/server/app/dashboard/token-saver.rsc +6 -6
  496. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  497. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  498. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  499. package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  500. package/app/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  501. package/app/.next/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  502. package/app/.next/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
  503. package/app/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  504. package/app/.next/server/app/dashboard/translator.html +1 -1
  505. package/app/.next/server/app/dashboard/translator.rsc +6 -6
  506. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  507. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  508. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  509. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  510. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  511. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  512. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  513. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  514. package/app/.next/server/app/dashboard/usage.html +1 -1
  515. package/app/.next/server/app/dashboard/usage.rsc +6 -6
  516. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  517. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  518. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  519. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  520. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  521. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  522. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  523. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  524. package/app/.next/server/app/dashboard.html +1 -1
  525. package/app/.next/server/app/dashboard.rsc +6 -6
  526. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  527. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  528. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  529. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
  530. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  531. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
  532. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  533. package/app/.next/server/app/favicon.ico/route.js +1 -1
  534. package/app/.next/server/app/index.html +1 -1
  535. package/app/.next/server/app/index.rsc +4 -4
  536. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  537. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  538. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  539. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  540. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  541. package/app/.next/server/app/landing/page.js +2 -2
  542. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  543. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  544. package/app/.next/server/app/landing.html +1 -1
  545. package/app/.next/server/app/landing.rsc +5 -5
  546. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  547. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  548. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  549. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  550. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  551. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  552. package/app/.next/server/app/login/page.js +2 -2
  553. package/app/.next/server/app/login/page.js.nft.json +1 -1
  554. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  555. package/app/.next/server/app/login.html +1 -1
  556. package/app/.next/server/app/login.rsc +5 -5
  557. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  558. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  559. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  560. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  561. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  562. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  563. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  564. package/app/.next/server/app/page.js +2 -2
  565. package/app/.next/server/app/page.js.nft.json +1 -1
  566. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  567. package/app/.next/server/app-paths-manifest.json +20 -18
  568. package/app/.next/server/chunks/1470.js +1 -1
  569. package/app/.next/server/chunks/24.js +1 -0
  570. package/app/.next/server/chunks/318.js +7 -7
  571. package/app/.next/server/chunks/3481.js +1 -1
  572. package/app/.next/server/chunks/3662.js +1 -0
  573. package/app/.next/server/chunks/3726.js +1 -0
  574. package/app/.next/server/chunks/3753.js +1 -0
  575. package/app/.next/server/chunks/3913.js +1 -1
  576. package/app/.next/server/chunks/3943.js +1 -1
  577. package/app/.next/server/chunks/3962.js +1 -1
  578. package/app/.next/server/chunks/4037.js +1 -1
  579. package/app/.next/server/chunks/412.js +1 -1
  580. package/app/.next/server/chunks/4123.js +1 -1
  581. package/app/.next/server/chunks/4125.js +1 -1
  582. package/app/.next/server/chunks/436.js +1 -0
  583. package/app/.next/server/chunks/4940.js +95 -0
  584. package/app/.next/server/chunks/{4676.js → 5139.js} +2 -2
  585. package/app/.next/server/chunks/5612.js +1 -1
  586. package/app/.next/server/chunks/5615.js +1 -1
  587. package/app/.next/server/chunks/5729.js +1 -0
  588. package/app/.next/server/chunks/6070.js +1 -1
  589. package/app/.next/server/chunks/615.js +1 -1
  590. package/app/.next/server/chunks/6763.js +1 -1
  591. package/app/.next/server/chunks/6777.js +1 -1
  592. package/app/.next/server/chunks/6818.js +1 -1
  593. package/app/.next/server/chunks/6922.js +1 -0
  594. package/app/.next/server/chunks/7137.js +1 -1
  595. package/app/.next/server/chunks/7211.js +1 -1
  596. package/app/.next/server/chunks/7247.js +1 -0
  597. package/app/.next/server/chunks/{4705.js → 7637.js} +1 -1
  598. package/app/.next/server/chunks/7716.js +1 -0
  599. package/app/.next/server/chunks/8145.js +1 -1
  600. package/app/.next/server/chunks/8236.js +1 -0
  601. package/app/.next/server/chunks/8402.js +1 -0
  602. package/app/.next/server/chunks/8499.js +8 -8
  603. package/app/.next/server/chunks/8635.js +3 -0
  604. package/app/.next/server/chunks/869.js +1 -1
  605. package/app/.next/server/chunks/8895.js +19 -13
  606. package/app/.next/server/chunks/8910.js +1 -1
  607. package/app/.next/server/chunks/8920.js +1 -1
  608. package/app/.next/server/chunks/9441.js +1 -0
  609. package/app/.next/server/chunks/9718.js +1 -1
  610. package/app/.next/server/chunks/9820.js +1 -0
  611. package/app/.next/server/chunks/9896.js +1 -0
  612. package/app/.next/server/chunks/{4443.js → 9927.js} +1 -1
  613. package/app/.next/server/instrumentation.js +1 -1
  614. package/app/.next/server/middleware-build-manifest.js +1 -1
  615. package/app/.next/server/middleware.js +1 -1
  616. package/app/.next/server/pages/404.html +1 -1
  617. package/app/.next/server/pages/500.html +1 -1
  618. package/app/.next/server/server-reference-manifest.js +1 -1
  619. package/app/.next/server/server-reference-manifest.json +1 -1
  620. package/app/.next/static/4aSob9BYLKkmEZKpVTTCD/_buildManifest.js +1 -0
  621. package/app/.next/static/chunks/1321-c56f714b48ec75b1.js +1 -0
  622. package/app/.next/static/chunks/511-12d7a4aee984e083.js +95 -0
  623. package/app/.next/static/chunks/5497-378030367985bec2.js +7 -0
  624. package/app/.next/static/chunks/{705-10f93cd2550e6494.js → 705-f07c546a169bc3d2.js} +1 -1
  625. package/app/.next/static/chunks/8198-2f2b63f52e0d44f9.js +1 -0
  626. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-ddcb29448c366123.js → page-fbd0e639f6248423.js} +1 -1
  627. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-bc35ad34049d7ff5.js → page-9dd5b20bf0221838.js} +1 -1
  628. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-00363c4bec619120.js +59 -0
  629. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-a571e53340e18f91.js → page-c8943c6168a7bc3f.js} +1 -1
  630. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-e6ee66418932601a.js +27 -0
  631. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-b2e8e7af27239aef.js +1 -0
  632. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c48d4a86c94ab13a.js +1 -0
  633. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-156920b6e519dc17.js +1 -0
  634. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-6aae3d87e3964ab9.js +1 -0
  635. package/app/.next/static/chunks/app/(dashboard)/layout-a0e61866894b6cee.js +1 -0
  636. package/app/.next/static/chunks/app/_global-error/page-b3fe65cd692af32a.js +1 -0
  637. package/app/.next/static/chunks/app/api/antigravity-app/route-b3fe65cd692af32a.js +1 -0
  638. package/app/.next/static/chunks/app/api/antigravity-app-v2/route-b3fe65cd692af32a.js +1 -0
  639. package/app/.next/static/chunks/app/api/antigravity-ide/route-b3fe65cd692af32a.js +1 -0
  640. package/app/.next/static/chunks/app/api/antigravity-targets/route-b3fe65cd692af32a.js +1 -0
  641. package/app/.next/static/chunks/app/api/antigravity-tools/import/route-b3fe65cd692af32a.js +1 -0
  642. package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-b3fe65cd692af32a.js +1 -0
  643. package/app/.next/static/chunks/app/api/auth/login/route-b3fe65cd692af32a.js +1 -0
  644. package/app/.next/static/chunks/app/api/auth/logout/route-b3fe65cd692af32a.js +1 -0
  645. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-b3fe65cd692af32a.js +1 -0
  646. package/app/.next/static/chunks/app/api/auth/oidc/start/route-b3fe65cd692af32a.js +1 -0
  647. package/app/.next/static/chunks/app/api/auth/oidc/test/route-b3fe65cd692af32a.js +1 -0
  648. package/app/.next/static/chunks/app/api/auth/reset-password/route-b3fe65cd692af32a.js +1 -0
  649. package/app/.next/static/chunks/app/api/auth/saml/acs/route-b3fe65cd692af32a.js +1 -0
  650. package/app/.next/static/chunks/app/api/auth/saml/metadata/route-b3fe65cd692af32a.js +1 -0
  651. package/app/.next/static/chunks/app/api/auth/saml/start/route-b3fe65cd692af32a.js +1 -0
  652. package/app/.next/static/chunks/app/api/auth/saml/test/route-b3fe65cd692af32a.js +1 -0
  653. package/app/.next/static/chunks/app/api/auth/status/route-b3fe65cd692af32a.js +1 -0
  654. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-b3fe65cd692af32a.js +1 -0
  655. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-b3fe65cd692af32a.js +1 -0
  656. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-b3fe65cd692af32a.js +1 -0
  657. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-b3fe65cd692af32a.js +1 -0
  658. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-b3fe65cd692af32a.js +1 -0
  659. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-b3fe65cd692af32a.js +1 -0
  660. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-b3fe65cd692af32a.js +1 -0
  661. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-b3fe65cd692af32a.js +1 -0
  662. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-b3fe65cd692af32a.js +1 -0
  663. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-b3fe65cd692af32a.js +1 -0
  664. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-b3fe65cd692af32a.js +1 -0
  665. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-b3fe65cd692af32a.js +1 -0
  666. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-b3fe65cd692af32a.js +1 -0
  667. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-b3fe65cd692af32a.js +1 -0
  668. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-b3fe65cd692af32a.js +1 -0
  669. package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-b3fe65cd692af32a.js +1 -0
  670. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-b3fe65cd692af32a.js +1 -0
  671. package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-b3fe65cd692af32a.js +1 -0
  672. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-b3fe65cd692af32a.js +1 -0
  673. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-b3fe65cd692af32a.js +1 -0
  674. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-b3fe65cd692af32a.js +1 -0
  675. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-b3fe65cd692af32a.js +1 -0
  676. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-b3fe65cd692af32a.js +1 -0
  677. package/app/.next/static/chunks/app/api/combos/[id]/route-b3fe65cd692af32a.js +1 -0
  678. package/app/.next/static/chunks/app/api/combos/route-b3fe65cd692af32a.js +1 -0
  679. package/app/.next/static/chunks/app/api/donate/route-b3fe65cd692af32a.js +1 -0
  680. package/app/.next/static/chunks/app/api/headroom/extras/route-b3fe65cd692af32a.js +1 -0
  681. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-b3fe65cd692af32a.js +1 -0
  682. package/app/.next/static/chunks/app/api/headroom/restart/route-b3fe65cd692af32a.js +1 -0
  683. package/app/.next/static/chunks/app/api/headroom/start/route-b3fe65cd692af32a.js +1 -0
  684. package/app/.next/static/chunks/app/api/headroom/status/route-b3fe65cd692af32a.js +1 -0
  685. package/app/.next/static/chunks/app/api/headroom/stop/route-b3fe65cd692af32a.js +1 -0
  686. package/app/.next/static/chunks/app/api/health/route-b3fe65cd692af32a.js +1 -0
  687. package/app/.next/static/chunks/app/api/init/route-b3fe65cd692af32a.js +1 -0
  688. package/app/.next/static/chunks/app/api/internal/account-health/route-b3fe65cd692af32a.js +1 -0
  689. package/app/.next/static/chunks/app/api/internal/request-detail/route-b3fe65cd692af32a.js +1 -0
  690. package/app/.next/static/chunks/app/api/internal/usage/route-b3fe65cd692af32a.js +1 -0
  691. package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-b3fe65cd692af32a.js +1 -0
  692. package/app/.next/static/chunks/app/api/keys/[id]/route-b3fe65cd692af32a.js +1 -0
  693. package/app/.next/static/chunks/app/api/keys/[id]/usage/route-b3fe65cd692af32a.js +1 -0
  694. package/app/.next/static/chunks/app/api/keys/route-b3fe65cd692af32a.js +1 -0
  695. package/app/.next/static/chunks/app/api/locale/route-b3fe65cd692af32a.js +1 -0
  696. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-b3fe65cd692af32a.js +1 -0
  697. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-b3fe65cd692af32a.js +1 -0
  698. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-b3fe65cd692af32a.js +1 -0
  699. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-b3fe65cd692af32a.js +1 -0
  700. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-b3fe65cd692af32a.js +1 -0
  701. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-b3fe65cd692af32a.js +1 -0
  702. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-b3fe65cd692af32a.js +1 -0
  703. package/app/.next/static/chunks/app/api/models/alias/route-b3fe65cd692af32a.js +1 -0
  704. package/app/.next/static/chunks/app/api/models/availability/route-b3fe65cd692af32a.js +1 -0
  705. package/app/.next/static/chunks/app/api/models/catalog-sync/route-b3fe65cd692af32a.js +1 -0
  706. package/app/.next/static/chunks/app/api/models/custom/route-b3fe65cd692af32a.js +1 -0
  707. package/app/.next/static/chunks/app/api/models/disabled/route-b3fe65cd692af32a.js +1 -0
  708. package/app/.next/static/chunks/app/api/models/route-b3fe65cd692af32a.js +1 -0
  709. package/app/.next/static/chunks/app/api/models/test/route-b3fe65cd692af32a.js +1 -0
  710. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-b3fe65cd692af32a.js +1 -0
  711. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-b3fe65cd692af32a.js +1 -0
  712. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-b3fe65cd692af32a.js +1 -0
  713. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-b3fe65cd692af32a.js +1 -0
  714. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-b3fe65cd692af32a.js +1 -0
  715. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-b3fe65cd692af32a.js +1 -0
  716. package/app/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-b3fe65cd692af32a.js +1 -0
  717. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-b3fe65cd692af32a.js +1 -0
  718. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-b3fe65cd692af32a.js +1 -0
  719. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-b3fe65cd692af32a.js +1 -0
  720. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-b3fe65cd692af32a.js +1 -0
  721. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-b3fe65cd692af32a.js +1 -0
  722. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-b3fe65cd692af32a.js +1 -0
  723. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-b3fe65cd692af32a.js +1 -0
  724. package/app/.next/static/chunks/app/api/pricing/route-b3fe65cd692af32a.js +1 -0
  725. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-b3fe65cd692af32a.js +1 -0
  726. package/app/.next/static/chunks/app/api/provider-nodes/route-b3fe65cd692af32a.js +1 -0
  727. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-b3fe65cd692af32a.js +1 -0
  728. package/app/.next/static/chunks/app/api/providers/[id]/models/route-b3fe65cd692af32a.js +1 -0
  729. package/app/.next/static/chunks/app/api/providers/[id]/route-b3fe65cd692af32a.js +1 -0
  730. package/app/.next/static/chunks/app/api/providers/[id]/test/route-b3fe65cd692af32a.js +1 -0
  731. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-b3fe65cd692af32a.js +1 -0
  732. package/app/.next/static/chunks/app/api/providers/client/route-b3fe65cd692af32a.js +1 -0
  733. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-b3fe65cd692af32a.js +1 -0
  734. package/app/.next/static/chunks/app/api/providers/route-b3fe65cd692af32a.js +1 -0
  735. package/app/.next/static/chunks/app/api/providers/suggested-models/route-b3fe65cd692af32a.js +1 -0
  736. package/app/.next/static/chunks/app/api/providers/test-batch/route-b3fe65cd692af32a.js +1 -0
  737. package/app/.next/static/chunks/app/api/providers/validate/route-b3fe65cd692af32a.js +1 -0
  738. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-b3fe65cd692af32a.js +1 -0
  739. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-b3fe65cd692af32a.js +1 -0
  740. package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-b3fe65cd692af32a.js +1 -0
  741. package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-b3fe65cd692af32a.js +1 -0
  742. package/app/.next/static/chunks/app/api/proxy-pools/route-b3fe65cd692af32a.js +1 -0
  743. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-b3fe65cd692af32a.js +1 -0
  744. package/app/.next/static/chunks/app/api/pxpipe/health/route-b3fe65cd692af32a.js +1 -0
  745. package/app/.next/static/chunks/app/api/pxpipe/install/route-b3fe65cd692af32a.js +1 -0
  746. package/app/.next/static/chunks/app/api/pxpipe/logs/route-b3fe65cd692af32a.js +1 -0
  747. package/app/.next/static/chunks/app/api/pxpipe/restart/route-b3fe65cd692af32a.js +1 -0
  748. package/app/.next/static/chunks/app/api/pxpipe/start/route-b3fe65cd692af32a.js +1 -0
  749. package/app/.next/static/chunks/app/api/pxpipe/stats/route-b3fe65cd692af32a.js +1 -0
  750. package/app/.next/static/chunks/app/api/pxpipe/status/route-b3fe65cd692af32a.js +1 -0
  751. package/app/.next/static/chunks/app/api/pxpipe/stop/route-b3fe65cd692af32a.js +1 -0
  752. package/app/.next/static/chunks/app/api/settings/database/route-b3fe65cd692af32a.js +1 -0
  753. package/app/.next/static/chunks/app/api/settings/database/selective/route-b3fe65cd692af32a.js +1 -0
  754. package/app/.next/static/chunks/app/api/settings/proxy-test/route-b3fe65cd692af32a.js +1 -0
  755. package/app/.next/static/chunks/app/api/settings/require-login/route-b3fe65cd692af32a.js +1 -0
  756. package/app/.next/static/chunks/app/api/settings/route-b3fe65cd692af32a.js +1 -0
  757. package/app/.next/static/chunks/app/api/shutdown/route-b3fe65cd692af32a.js +1 -0
  758. package/app/.next/static/chunks/app/api/tags/route-b3fe65cd692af32a.js +1 -0
  759. package/app/.next/static/chunks/app/api/translator/console-logs/route-b3fe65cd692af32a.js +1 -0
  760. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-b3fe65cd692af32a.js +1 -0
  761. package/app/.next/static/chunks/app/api/translator/load/route-b3fe65cd692af32a.js +1 -0
  762. package/app/.next/static/chunks/app/api/translator/save/route-b3fe65cd692af32a.js +1 -0
  763. package/app/.next/static/chunks/app/api/translator/send/route-b3fe65cd692af32a.js +1 -0
  764. package/app/.next/static/chunks/app/api/translator/translate/route-b3fe65cd692af32a.js +1 -0
  765. package/app/.next/static/chunks/app/api/tunnel/disable/route-b3fe65cd692af32a.js +1 -0
  766. package/app/.next/static/chunks/app/api/tunnel/enable/route-b3fe65cd692af32a.js +1 -0
  767. package/app/.next/static/chunks/app/api/tunnel/status/route-b3fe65cd692af32a.js +1 -0
  768. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-b3fe65cd692af32a.js +1 -0
  769. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-b3fe65cd692af32a.js +1 -0
  770. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-b3fe65cd692af32a.js +1 -0
  771. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-b3fe65cd692af32a.js +1 -0
  772. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-b3fe65cd692af32a.js +1 -0
  773. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-b3fe65cd692af32a.js +1 -0
  774. package/app/.next/static/chunks/app/api/usage/chart/route-b3fe65cd692af32a.js +1 -0
  775. package/app/.next/static/chunks/app/api/usage/history/route-b3fe65cd692af32a.js +1 -0
  776. package/app/.next/static/chunks/app/api/usage/logs/route-b3fe65cd692af32a.js +1 -0
  777. package/app/.next/static/chunks/app/api/usage/providers/route-b3fe65cd692af32a.js +1 -0
  778. package/app/.next/static/chunks/app/api/usage/report/route-b3fe65cd692af32a.js +1 -0
  779. package/app/.next/static/chunks/app/api/usage/request-details/route-b3fe65cd692af32a.js +1 -0
  780. package/app/.next/static/chunks/app/api/usage/request-logs/route-b3fe65cd692af32a.js +1 -0
  781. package/app/.next/static/chunks/app/api/usage/stats/route-b3fe65cd692af32a.js +1 -0
  782. package/app/.next/static/chunks/app/api/usage/stream/route-b3fe65cd692af32a.js +1 -0
  783. package/app/.next/static/chunks/app/api/v1/api/chat/route-b3fe65cd692af32a.js +1 -0
  784. package/app/.next/static/chunks/app/api/v1/audio/speech/route-b3fe65cd692af32a.js +1 -0
  785. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-b3fe65cd692af32a.js +1 -0
  786. package/app/.next/static/chunks/app/api/v1/audio/voices/route-b3fe65cd692af32a.js +1 -0
  787. package/app/.next/static/chunks/app/api/v1/chat/completions/route-b3fe65cd692af32a.js +1 -0
  788. package/app/.next/static/chunks/app/api/v1/embeddings/route-b3fe65cd692af32a.js +1 -0
  789. package/app/.next/static/chunks/app/api/v1/images/generations/route-b3fe65cd692af32a.js +1 -0
  790. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-b3fe65cd692af32a.js +1 -0
  791. package/app/.next/static/chunks/app/api/v1/messages/route-b3fe65cd692af32a.js +1 -0
  792. package/app/.next/static/chunks/app/api/v1/models/[...model]/route-b3fe65cd692af32a.js +1 -0
  793. package/app/.next/static/chunks/app/api/v1/models/info/route-b3fe65cd692af32a.js +1 -0
  794. package/app/.next/static/chunks/app/api/v1/models/route-b3fe65cd692af32a.js +1 -0
  795. package/app/.next/static/chunks/app/api/v1/responses/compact/route-b3fe65cd692af32a.js +1 -0
  796. package/app/.next/static/chunks/app/api/v1/responses/route-b3fe65cd692af32a.js +1 -0
  797. package/app/.next/static/chunks/app/api/v1/route-b3fe65cd692af32a.js +1 -0
  798. package/app/.next/static/chunks/app/api/v1/search/route-b3fe65cd692af32a.js +1 -0
  799. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-b3fe65cd692af32a.js +1 -0
  800. package/app/.next/static/chunks/app/api/v1/videos/edits/route-b3fe65cd692af32a.js +1 -0
  801. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-b3fe65cd692af32a.js +1 -0
  802. package/app/.next/static/chunks/app/api/v1/videos/generations/route-b3fe65cd692af32a.js +1 -0
  803. package/app/.next/static/chunks/app/api/v1/web/fetch/route-b3fe65cd692af32a.js +1 -0
  804. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-b3fe65cd692af32a.js +1 -0
  805. package/app/.next/static/chunks/app/api/v1beta/models/route-b3fe65cd692af32a.js +1 -0
  806. package/app/.next/static/chunks/app/api/version/route-b3fe65cd692af32a.js +1 -0
  807. package/app/.next/static/chunks/app/api/version/shutdown/route-b3fe65cd692af32a.js +1 -0
  808. package/app/.next/static/chunks/app/api/version/update/route-b3fe65cd692af32a.js +1 -0
  809. package/app/.next/static/chunks/app/landing/page-8aa1b64c49edfaf2.js +1 -0
  810. package/app/.next/static/chunks/app/manifest.webmanifest/route-b3fe65cd692af32a.js +1 -0
  811. package/app/.next/static/chunks/app/page-b3fe65cd692af32a.js +1 -0
  812. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-b3fe65cd692af32a.js +1 -0
  813. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-b3fe65cd692af32a.js +1 -0
  814. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-b3fe65cd692af32a.js +1 -0
  815. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b3fe65cd692af32a.js +1 -0
  816. package/app/.next/static/css/e88d3a3f66f134dd.css +1 -0
  817. package/app/open-sse/config/appConstants.js +7 -0
  818. package/app/open-sse/config/providerModels.js +5 -1
  819. package/app/open-sse/executors/antigravity.js +5 -5
  820. package/app/open-sse/executors/commandcode.js +235 -7
  821. package/app/open-sse/executors/opencode.js +56 -10
  822. package/app/open-sse/handlers/chatCore/requestDetail.js +8 -2
  823. package/app/open-sse/handlers/chatCore.js +15 -3
  824. package/app/open-sse/handlers/fetch/index.js +70 -3
  825. package/app/open-sse/handlers/imageProviders/antigravity.js +15 -2
  826. package/app/open-sse/handlers/search/callers.js +78 -0
  827. package/app/open-sse/handlers/search/chatSearch.js +101 -3
  828. package/app/open-sse/handlers/search/index.js +11 -2
  829. package/app/open-sse/handlers/search/normalizers.js +87 -1
  830. package/app/open-sse/providers/capabilities.js +98 -7
  831. package/app/open-sse/providers/catalogOverride.js +72 -0
  832. package/app/open-sse/providers/models/helpers.js +7 -0
  833. package/app/open-sse/providers/pricing.js +1 -0
  834. package/app/open-sse/providers/registry/antigravity.js +7 -3
  835. package/app/open-sse/providers/registry/claude.js +3 -2
  836. package/app/open-sse/providers/registry/codebuddy-cn.js +10 -2
  837. package/app/open-sse/providers/registry/deepseek.js +1 -0
  838. package/app/open-sse/providers/registry/glm-cn.js +2 -0
  839. package/app/open-sse/providers/registry/glm.js +15 -0
  840. package/app/open-sse/providers/registry/groq.js +10 -0
  841. package/app/open-sse/providers/registry/index.js +4 -0
  842. package/app/open-sse/providers/registry/ollama-search.js +35 -0
  843. package/app/open-sse/providers/registry/ollama.js +10 -1
  844. package/app/open-sse/providers/registry/opencode-go.js +2 -0
  845. package/app/open-sse/providers/registry/opencode.js +6 -1
  846. package/app/open-sse/providers/registry/tokenrouter.js +11 -109
  847. package/app/open-sse/providers/registry/xai.js +2 -0
  848. package/app/open-sse/providers/registry/xquik.js +35 -0
  849. package/app/open-sse/providers/shared.js +4 -4
  850. package/app/open-sse/providers/thinkingLevels.js +7 -0
  851. package/app/open-sse/providers/visionPatterns.js +42 -0
  852. package/app/open-sse/rtk/headroom.js +11 -1
  853. package/app/open-sse/rtk/systemInject.js +307 -68
  854. package/app/open-sse/services/tokenRefresh/providers.js +47 -0
  855. package/app/open-sse/services/tokenRefresh.js +3 -0
  856. package/app/open-sse/services/usage/codex.js +20 -0
  857. package/app/open-sse/services/usage/glm.js +88 -0
  858. package/app/open-sse/services/usage/groq.js +133 -0
  859. package/app/open-sse/services/usage/misc.js +2 -61
  860. package/app/open-sse/services/usage/zed.js +222 -0
  861. package/app/open-sse/services/usage.js +5 -1
  862. package/app/open-sse/shared/zedAuth.js +11 -7
  863. package/app/open-sse/translator/concerns/thinkingUnified.js +31 -11
  864. package/app/open-sse/translator/concerns/toolCall.js +14 -0
  865. package/app/open-sse/translator/formats/claude.js +62 -2
  866. package/app/open-sse/translator/formats/gemini.js +35 -0
  867. package/app/open-sse/translator/index.js +7 -4
  868. package/app/open-sse/translator/request/claude-to-kiro.js +0 -1
  869. package/app/open-sse/translator/request/openai-responses.js +17 -2
  870. package/app/open-sse/translator/request/openai-to-kiro.js +0 -1
  871. package/app/open-sse/translator/schema/blocks.js +2 -0
  872. package/app/open-sse/utils/claudeCloaking.js +33 -6
  873. package/app/open-sse/utils/claudeToolTypeSelfCheck.mjs +117 -0
  874. package/app/open-sse/utils/modelMarkers.js +20 -0
  875. package/app/open-sse/utils/sessionManager.js +5 -1
  876. package/app/open-sse/utils/stream.js +54 -33
  877. package/app/open-sse/utils/streamHandler.js +2 -1
  878. package/app/open-sse/utils/usageTracking.js +4 -1
  879. package/app/package.json +1 -1
  880. package/app/public/i18n/literals/id.json +1365 -169
  881. package/app/public/i18n/literals/pt-BR.json +144 -0
  882. package/app/public/i18n/literals/zh-CN.json +1 -0
  883. package/app/public/providers/alims-intl.png +0 -0
  884. package/app/public/providers/alitp-intl.png +0 -0
  885. package/app/public/providers/fish-audio.png +0 -0
  886. package/app/public/providers/selfhosted-embedding.png +0 -0
  887. package/app/public/providers/selfhosted-stt.png +0 -0
  888. package/app/public/providers/selfhosted-tts.png +0 -0
  889. package/app/public/providers/xquik.png +0 -0
  890. package/app/src/mitm/antigravityIdeVersion.js +49 -13
  891. package/app/src/mitm/config.js +1 -0
  892. package/app/src/mitm/handlers/kiro.js +573 -3
  893. package/app/src/mitm/server.js +1 -1
  894. package/app/src/shared/constants/providers.js +1 -1
  895. package/app/src/shared/constants/skills.js +1 -1
  896. package/package.json +1 -1
  897. package/app/.next/server/app/api/v1/models/[kind]/route.js +0 -1
  898. package/app/.next/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +0 -1
  899. package/app/.next/server/chunks/112.js +0 -3
  900. package/app/.next/server/chunks/4953.js +0 -1
  901. package/app/.next/server/chunks/4975.js +0 -1
  902. package/app/.next/server/chunks/5285.js +0 -1
  903. package/app/.next/server/chunks/5699.js +0 -1
  904. package/app/.next/server/chunks/6292.js +0 -1
  905. package/app/.next/server/chunks/6306.js +0 -1
  906. package/app/.next/server/chunks/6671.js +0 -1
  907. package/app/.next/server/chunks/8301.js +0 -92
  908. package/app/.next/static/KyRBZmQI6kYmOhE879dai/_buildManifest.js +0 -1
  909. package/app/.next/static/chunks/1321-13f12c43bc4c573f.js +0 -1
  910. package/app/.next/static/chunks/4028-85ab0e23e6b475d3.js +0 -92
  911. package/app/.next/static/chunks/5497-b32d50ab4f6874e1.js +0 -7
  912. package/app/.next/static/chunks/8198-8a92496ac8c02cb7.js +0 -1
  913. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-308fc8a3b8a069fe.js +0 -59
  914. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-2eaaf5721c2e8376.js +0 -14
  915. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-d6c97bcabadb38ca.js +0 -1
  916. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-c8a6e0e2bef2932e.js +0 -1
  917. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-3a3fbf978b69dabd.js +0 -1
  918. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/page-46e9c726ae1032e0.js +0 -1
  919. package/app/.next/static/chunks/app/(dashboard)/layout-98dba0673f8af6ad.js +0 -1
  920. package/app/.next/static/chunks/app/_global-error/page-1a2fcb867d9ffccf.js +0 -1
  921. package/app/.next/static/chunks/app/api/antigravity-app/route-1a2fcb867d9ffccf.js +0 -1
  922. package/app/.next/static/chunks/app/api/antigravity-app-v2/route-1a2fcb867d9ffccf.js +0 -1
  923. package/app/.next/static/chunks/app/api/antigravity-ide/route-1a2fcb867d9ffccf.js +0 -1
  924. package/app/.next/static/chunks/app/api/antigravity-targets/route-1a2fcb867d9ffccf.js +0 -1
  925. package/app/.next/static/chunks/app/api/antigravity-tools/import/route-1a2fcb867d9ffccf.js +0 -1
  926. package/app/.next/static/chunks/app/api/antigravity-tools/import-refresh-tokens/route-1a2fcb867d9ffccf.js +0 -1
  927. package/app/.next/static/chunks/app/api/auth/login/route-1a2fcb867d9ffccf.js +0 -1
  928. package/app/.next/static/chunks/app/api/auth/logout/route-1a2fcb867d9ffccf.js +0 -1
  929. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-1a2fcb867d9ffccf.js +0 -1
  930. package/app/.next/static/chunks/app/api/auth/oidc/start/route-1a2fcb867d9ffccf.js +0 -1
  931. package/app/.next/static/chunks/app/api/auth/oidc/test/route-1a2fcb867d9ffccf.js +0 -1
  932. package/app/.next/static/chunks/app/api/auth/reset-password/route-1a2fcb867d9ffccf.js +0 -1
  933. package/app/.next/static/chunks/app/api/auth/saml/acs/route-1a2fcb867d9ffccf.js +0 -1
  934. package/app/.next/static/chunks/app/api/auth/saml/metadata/route-1a2fcb867d9ffccf.js +0 -1
  935. package/app/.next/static/chunks/app/api/auth/saml/start/route-1a2fcb867d9ffccf.js +0 -1
  936. package/app/.next/static/chunks/app/api/auth/saml/test/route-1a2fcb867d9ffccf.js +0 -1
  937. package/app/.next/static/chunks/app/api/auth/status/route-1a2fcb867d9ffccf.js +0 -1
  938. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-1a2fcb867d9ffccf.js +0 -1
  939. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-1a2fcb867d9ffccf.js +0 -1
  940. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-1a2fcb867d9ffccf.js +0 -1
  941. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-1a2fcb867d9ffccf.js +0 -1
  942. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-1a2fcb867d9ffccf.js +0 -1
  943. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-1a2fcb867d9ffccf.js +0 -1
  944. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-1a2fcb867d9ffccf.js +0 -1
  945. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-1a2fcb867d9ffccf.js +0 -1
  946. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-1a2fcb867d9ffccf.js +0 -1
  947. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-1a2fcb867d9ffccf.js +0 -1
  948. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/events/route-1a2fcb867d9ffccf.js +0 -1
  949. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/[jobId]/sudo/route-1a2fcb867d9ffccf.js +0 -1
  950. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/jobs/route-1a2fcb867d9ffccf.js +0 -1
  951. package/app/.next/static/chunks/app/api/cli-tools/cursor-byok/route-1a2fcb867d9ffccf.js +0 -1
  952. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-1a2fcb867d9ffccf.js +0 -1
  953. package/app/.next/static/chunks/app/api/cli-tools/devin-settings/route-1a2fcb867d9ffccf.js +0 -1
  954. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-1a2fcb867d9ffccf.js +0 -1
  955. package/app/.next/static/chunks/app/api/cli-tools/grok-build-settings/route-1a2fcb867d9ffccf.js +0 -1
  956. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-1a2fcb867d9ffccf.js +0 -1
  957. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-1a2fcb867d9ffccf.js +0 -1
  958. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-1a2fcb867d9ffccf.js +0 -1
  959. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-1a2fcb867d9ffccf.js +0 -1
  960. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-1a2fcb867d9ffccf.js +0 -1
  961. package/app/.next/static/chunks/app/api/combos/[id]/route-1a2fcb867d9ffccf.js +0 -1
  962. package/app/.next/static/chunks/app/api/combos/route-1a2fcb867d9ffccf.js +0 -1
  963. package/app/.next/static/chunks/app/api/donate/route-1a2fcb867d9ffccf.js +0 -1
  964. package/app/.next/static/chunks/app/api/headroom/extras/route-1a2fcb867d9ffccf.js +0 -1
  965. package/app/.next/static/chunks/app/api/headroom/proxy/[...path]/route-1a2fcb867d9ffccf.js +0 -1
  966. package/app/.next/static/chunks/app/api/headroom/restart/route-1a2fcb867d9ffccf.js +0 -1
  967. package/app/.next/static/chunks/app/api/headroom/start/route-1a2fcb867d9ffccf.js +0 -1
  968. package/app/.next/static/chunks/app/api/headroom/status/route-1a2fcb867d9ffccf.js +0 -1
  969. package/app/.next/static/chunks/app/api/headroom/stop/route-1a2fcb867d9ffccf.js +0 -1
  970. package/app/.next/static/chunks/app/api/health/route-1a2fcb867d9ffccf.js +0 -1
  971. package/app/.next/static/chunks/app/api/init/route-1a2fcb867d9ffccf.js +0 -1
  972. package/app/.next/static/chunks/app/api/internal/account-health/route-1a2fcb867d9ffccf.js +0 -1
  973. package/app/.next/static/chunks/app/api/internal/request-detail/route-1a2fcb867d9ffccf.js +0 -1
  974. package/app/.next/static/chunks/app/api/internal/usage/route-1a2fcb867d9ffccf.js +0 -1
  975. package/app/.next/static/chunks/app/api/keys/[id]/reset-usage/route-1a2fcb867d9ffccf.js +0 -1
  976. package/app/.next/static/chunks/app/api/keys/[id]/route-1a2fcb867d9ffccf.js +0 -1
  977. package/app/.next/static/chunks/app/api/keys/[id]/usage/route-1a2fcb867d9ffccf.js +0 -1
  978. package/app/.next/static/chunks/app/api/keys/route-1a2fcb867d9ffccf.js +0 -1
  979. package/app/.next/static/chunks/app/api/locale/route-1a2fcb867d9ffccf.js +0 -1
  980. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-1a2fcb867d9ffccf.js +0 -1
  981. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-1a2fcb867d9ffccf.js +0 -1
  982. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-1a2fcb867d9ffccf.js +0 -1
  983. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-1a2fcb867d9ffccf.js +0 -1
  984. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-1a2fcb867d9ffccf.js +0 -1
  985. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-1a2fcb867d9ffccf.js +0 -1
  986. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-1a2fcb867d9ffccf.js +0 -1
  987. package/app/.next/static/chunks/app/api/models/alias/route-1a2fcb867d9ffccf.js +0 -1
  988. package/app/.next/static/chunks/app/api/models/availability/route-1a2fcb867d9ffccf.js +0 -1
  989. package/app/.next/static/chunks/app/api/models/custom/route-1a2fcb867d9ffccf.js +0 -1
  990. package/app/.next/static/chunks/app/api/models/disabled/route-1a2fcb867d9ffccf.js +0 -1
  991. package/app/.next/static/chunks/app/api/models/route-1a2fcb867d9ffccf.js +0 -1
  992. package/app/.next/static/chunks/app/api/models/test/route-1a2fcb867d9ffccf.js +0 -1
  993. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-1a2fcb867d9ffccf.js +0 -1
  994. package/app/.next/static/chunks/app/api/oauth/codex/bulk-import/route-1a2fcb867d9ffccf.js +0 -1
  995. package/app/.next/static/chunks/app/api/oauth/codex/import-token/route-1a2fcb867d9ffccf.js +0 -1
  996. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-1a2fcb867d9ffccf.js +0 -1
  997. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-1a2fcb867d9ffccf.js +0 -1
  998. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-1a2fcb867d9ffccf.js +0 -1
  999. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-1a2fcb867d9ffccf.js +0 -1
  1000. package/app/.next/static/chunks/app/api/oauth/kiro/api-key/route-1a2fcb867d9ffccf.js +0 -1
  1001. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-1a2fcb867d9ffccf.js +0 -1
  1002. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-1a2fcb867d9ffccf.js +0 -1
  1003. package/app/.next/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-1a2fcb867d9ffccf.js +0 -1
  1004. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-1a2fcb867d9ffccf.js +0 -1
  1005. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-1a2fcb867d9ffccf.js +0 -1
  1006. package/app/.next/static/chunks/app/api/pricing/route-1a2fcb867d9ffccf.js +0 -1
  1007. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-1a2fcb867d9ffccf.js +0 -1
  1008. package/app/.next/static/chunks/app/api/provider-nodes/route-1a2fcb867d9ffccf.js +0 -1
  1009. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-1a2fcb867d9ffccf.js +0 -1
  1010. package/app/.next/static/chunks/app/api/providers/[id]/models/route-1a2fcb867d9ffccf.js +0 -1
  1011. package/app/.next/static/chunks/app/api/providers/[id]/route-1a2fcb867d9ffccf.js +0 -1
  1012. package/app/.next/static/chunks/app/api/providers/[id]/test/route-1a2fcb867d9ffccf.js +0 -1
  1013. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-1a2fcb867d9ffccf.js +0 -1
  1014. package/app/.next/static/chunks/app/api/providers/client/route-1a2fcb867d9ffccf.js +0 -1
  1015. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-1a2fcb867d9ffccf.js +0 -1
  1016. package/app/.next/static/chunks/app/api/providers/route-1a2fcb867d9ffccf.js +0 -1
  1017. package/app/.next/static/chunks/app/api/providers/suggested-models/route-1a2fcb867d9ffccf.js +0 -1
  1018. package/app/.next/static/chunks/app/api/providers/test-batch/route-1a2fcb867d9ffccf.js +0 -1
  1019. package/app/.next/static/chunks/app/api/providers/validate/route-1a2fcb867d9ffccf.js +0 -1
  1020. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-1a2fcb867d9ffccf.js +0 -1
  1021. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-1a2fcb867d9ffccf.js +0 -1
  1022. package/app/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-1a2fcb867d9ffccf.js +0 -1
  1023. package/app/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-1a2fcb867d9ffccf.js +0 -1
  1024. package/app/.next/static/chunks/app/api/proxy-pools/route-1a2fcb867d9ffccf.js +0 -1
  1025. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-1a2fcb867d9ffccf.js +0 -1
  1026. package/app/.next/static/chunks/app/api/pxpipe/health/route-1a2fcb867d9ffccf.js +0 -1
  1027. package/app/.next/static/chunks/app/api/pxpipe/install/route-1a2fcb867d9ffccf.js +0 -1
  1028. package/app/.next/static/chunks/app/api/pxpipe/logs/route-1a2fcb867d9ffccf.js +0 -1
  1029. package/app/.next/static/chunks/app/api/pxpipe/restart/route-1a2fcb867d9ffccf.js +0 -1
  1030. package/app/.next/static/chunks/app/api/pxpipe/start/route-1a2fcb867d9ffccf.js +0 -1
  1031. package/app/.next/static/chunks/app/api/pxpipe/stats/route-1a2fcb867d9ffccf.js +0 -1
  1032. package/app/.next/static/chunks/app/api/pxpipe/status/route-1a2fcb867d9ffccf.js +0 -1
  1033. package/app/.next/static/chunks/app/api/pxpipe/stop/route-1a2fcb867d9ffccf.js +0 -1
  1034. package/app/.next/static/chunks/app/api/settings/database/route-1a2fcb867d9ffccf.js +0 -1
  1035. package/app/.next/static/chunks/app/api/settings/database/selective/route-1a2fcb867d9ffccf.js +0 -1
  1036. package/app/.next/static/chunks/app/api/settings/proxy-test/route-1a2fcb867d9ffccf.js +0 -1
  1037. package/app/.next/static/chunks/app/api/settings/require-login/route-1a2fcb867d9ffccf.js +0 -1
  1038. package/app/.next/static/chunks/app/api/settings/route-1a2fcb867d9ffccf.js +0 -1
  1039. package/app/.next/static/chunks/app/api/shutdown/route-1a2fcb867d9ffccf.js +0 -1
  1040. package/app/.next/static/chunks/app/api/tags/route-1a2fcb867d9ffccf.js +0 -1
  1041. package/app/.next/static/chunks/app/api/translator/console-logs/route-1a2fcb867d9ffccf.js +0 -1
  1042. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-1a2fcb867d9ffccf.js +0 -1
  1043. package/app/.next/static/chunks/app/api/translator/load/route-1a2fcb867d9ffccf.js +0 -1
  1044. package/app/.next/static/chunks/app/api/translator/save/route-1a2fcb867d9ffccf.js +0 -1
  1045. package/app/.next/static/chunks/app/api/translator/send/route-1a2fcb867d9ffccf.js +0 -1
  1046. package/app/.next/static/chunks/app/api/translator/translate/route-1a2fcb867d9ffccf.js +0 -1
  1047. package/app/.next/static/chunks/app/api/tunnel/disable/route-1a2fcb867d9ffccf.js +0 -1
  1048. package/app/.next/static/chunks/app/api/tunnel/enable/route-1a2fcb867d9ffccf.js +0 -1
  1049. package/app/.next/static/chunks/app/api/tunnel/status/route-1a2fcb867d9ffccf.js +0 -1
  1050. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-1a2fcb867d9ffccf.js +0 -1
  1051. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-1a2fcb867d9ffccf.js +0 -1
  1052. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-1a2fcb867d9ffccf.js +0 -1
  1053. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-1a2fcb867d9ffccf.js +0 -1
  1054. package/app/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-1a2fcb867d9ffccf.js +0 -1
  1055. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-1a2fcb867d9ffccf.js +0 -1
  1056. package/app/.next/static/chunks/app/api/usage/chart/route-1a2fcb867d9ffccf.js +0 -1
  1057. package/app/.next/static/chunks/app/api/usage/history/route-1a2fcb867d9ffccf.js +0 -1
  1058. package/app/.next/static/chunks/app/api/usage/logs/route-1a2fcb867d9ffccf.js +0 -1
  1059. package/app/.next/static/chunks/app/api/usage/providers/route-1a2fcb867d9ffccf.js +0 -1
  1060. package/app/.next/static/chunks/app/api/usage/report/route-1a2fcb867d9ffccf.js +0 -1
  1061. package/app/.next/static/chunks/app/api/usage/request-details/route-1a2fcb867d9ffccf.js +0 -1
  1062. package/app/.next/static/chunks/app/api/usage/request-logs/route-1a2fcb867d9ffccf.js +0 -1
  1063. package/app/.next/static/chunks/app/api/usage/stats/route-1a2fcb867d9ffccf.js +0 -1
  1064. package/app/.next/static/chunks/app/api/usage/stream/route-1a2fcb867d9ffccf.js +0 -1
  1065. package/app/.next/static/chunks/app/api/v1/api/chat/route-1a2fcb867d9ffccf.js +0 -1
  1066. package/app/.next/static/chunks/app/api/v1/audio/speech/route-1a2fcb867d9ffccf.js +0 -1
  1067. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-1a2fcb867d9ffccf.js +0 -1
  1068. package/app/.next/static/chunks/app/api/v1/audio/voices/route-1a2fcb867d9ffccf.js +0 -1
  1069. package/app/.next/static/chunks/app/api/v1/chat/completions/route-1a2fcb867d9ffccf.js +0 -1
  1070. package/app/.next/static/chunks/app/api/v1/embeddings/route-1a2fcb867d9ffccf.js +0 -1
  1071. package/app/.next/static/chunks/app/api/v1/images/generations/route-1a2fcb867d9ffccf.js +0 -1
  1072. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-1a2fcb867d9ffccf.js +0 -1
  1073. package/app/.next/static/chunks/app/api/v1/messages/route-1a2fcb867d9ffccf.js +0 -1
  1074. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-1a2fcb867d9ffccf.js +0 -1
  1075. package/app/.next/static/chunks/app/api/v1/models/info/route-1a2fcb867d9ffccf.js +0 -1
  1076. package/app/.next/static/chunks/app/api/v1/models/route-1a2fcb867d9ffccf.js +0 -1
  1077. package/app/.next/static/chunks/app/api/v1/responses/compact/route-1a2fcb867d9ffccf.js +0 -1
  1078. package/app/.next/static/chunks/app/api/v1/responses/route-1a2fcb867d9ffccf.js +0 -1
  1079. package/app/.next/static/chunks/app/api/v1/route-1a2fcb867d9ffccf.js +0 -1
  1080. package/app/.next/static/chunks/app/api/v1/search/route-1a2fcb867d9ffccf.js +0 -1
  1081. package/app/.next/static/chunks/app/api/v1/videos/[id]/route-1a2fcb867d9ffccf.js +0 -1
  1082. package/app/.next/static/chunks/app/api/v1/videos/edits/route-1a2fcb867d9ffccf.js +0 -1
  1083. package/app/.next/static/chunks/app/api/v1/videos/extensions/route-1a2fcb867d9ffccf.js +0 -1
  1084. package/app/.next/static/chunks/app/api/v1/videos/generations/route-1a2fcb867d9ffccf.js +0 -1
  1085. package/app/.next/static/chunks/app/api/v1/web/fetch/route-1a2fcb867d9ffccf.js +0 -1
  1086. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-1a2fcb867d9ffccf.js +0 -1
  1087. package/app/.next/static/chunks/app/api/v1beta/models/route-1a2fcb867d9ffccf.js +0 -1
  1088. package/app/.next/static/chunks/app/api/version/route-1a2fcb867d9ffccf.js +0 -1
  1089. package/app/.next/static/chunks/app/api/version/shutdown/route-1a2fcb867d9ffccf.js +0 -1
  1090. package/app/.next/static/chunks/app/api/version/update/route-1a2fcb867d9ffccf.js +0 -1
  1091. package/app/.next/static/chunks/app/landing/page-a438c82535cc676a.js +0 -1
  1092. package/app/.next/static/chunks/app/manifest.webmanifest/route-1a2fcb867d9ffccf.js +0 -1
  1093. package/app/.next/static/chunks/app/page-1a2fcb867d9ffccf.js +0 -1
  1094. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-1a2fcb867d9ffccf.js +0 -1
  1095. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-1a2fcb867d9ffccf.js +0 -1
  1096. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-1a2fcb867d9ffccf.js +0 -1
  1097. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1a2fcb867d9ffccf.js +0 -1
  1098. package/app/.next/static/css/c5181f678ef0b6e0.css +0 -1
  1099. /package/app/.next/static/{KyRBZmQI6kYmOhE879dai → 4aSob9BYLKkmEZKpVTTCD}/_ssgManifest.js +0 -0
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Groq usage — no dedicated quota endpoint. Rate-limit info instead rides on
3
+ * every API response as x-ratelimit-* headers (requests + tokens, always
4
+ * included). We piggyback on the models list (already used as
5
+ * transport.validateUrl) so reading usage never costs tokens.
6
+ *
7
+ * Headers:
8
+ * x-ratelimit-limit-requests / x-ratelimit-remaining-requests
9
+ * x-ratelimit-limit-tokens / x-ratelimit-remaining-tokens
10
+ * x-ratelimit-reset-requests / x-ratelimit-reset-tokens (duration strings, e.g. "2m59.56s")
11
+ *
12
+ * Docs: https://console.groq.com/docs/rate-limits
13
+ */
14
+
15
+ import { proxyAwareFetch } from "../../utils/proxyFetch.js";
16
+ import { U } from "./shared.js";
17
+
18
+ const MODELS_URL = U("groq").url;
19
+
20
+ // Groq reset headers are Go-style duration strings ("2m59.56s", "7.66s"), not
21
+ // timestamps — parse the h/m/s/ms components and add them to now().
22
+ function parseGroqDurationMs(value) {
23
+ if (typeof value !== "string" || !value.trim()) return null;
24
+
25
+ const re = /(\d+(?:\.\d+)?)(ms|s|m|h)/g;
26
+ let match;
27
+ let totalMs = 0;
28
+ let matched = false;
29
+ while ((match = re.exec(value))) {
30
+ matched = true;
31
+ const amount = Number(match[1]);
32
+ const unit = match[2];
33
+ const unitMs = unit === "h" ? 3600000 : unit === "m" ? 60000 : unit === "ms" ? 1 : 1000;
34
+ totalMs += amount * unitMs;
35
+ }
36
+ return matched ? totalMs : null;
37
+ }
38
+
39
+ function resetAtFromDuration(value) {
40
+ const ms = parseGroqDurationMs(value);
41
+ return ms === null ? null : new Date(Date.now() + ms).toISOString();
42
+ }
43
+
44
+ function buildRateLimitQuota(headers, limitKey, remainingKey, resetKey) {
45
+ // headers.get() returns null when absent, and Number(null) is 0 (a finite
46
+ // number) — check presence explicitly so a missing header can't masquerade
47
+ // as a real "0 remaining" quota.
48
+ const limitRaw = headers.get(limitKey);
49
+ const remainingRaw = headers.get(remainingKey);
50
+ if (limitRaw === null || remainingRaw === null) return null;
51
+
52
+ const limit = Number(limitRaw);
53
+ const remaining = Number(remainingRaw);
54
+ if (!Number.isFinite(limit) || !Number.isFinite(remaining)) return null;
55
+
56
+ return {
57
+ used: Math.max(0, limit - remaining),
58
+ total: limit,
59
+ resetAt: resetAtFromDuration(headers.get(resetKey)),
60
+ unlimited: false,
61
+ };
62
+ }
63
+
64
+ /**
65
+ * @param {string|null|undefined} apiKey
66
+ * @param {object|null} proxyOptions
67
+ */
68
+ export async function getGroqUsage(apiKey, proxyOptions = null) {
69
+ if (!apiKey || typeof apiKey !== "string" || !apiKey.trim()) {
70
+ return { message: "Groq API key not available. Add a key to view usage." };
71
+ }
72
+
73
+ try {
74
+ const response = await proxyAwareFetch(
75
+ MODELS_URL,
76
+ {
77
+ method: "GET",
78
+ headers: {
79
+ Authorization: `Bearer ${apiKey.trim()}`,
80
+ Accept: "application/json",
81
+ },
82
+ },
83
+ proxyOptions,
84
+ );
85
+
86
+ if (response.status === 401 || response.status === 403) {
87
+ return { plan: "Groq", message: "Groq authentication failed. Check the API key." };
88
+ }
89
+
90
+ if (!response.ok) {
91
+ const errText = await response.text().catch(() => "");
92
+ return {
93
+ plan: "Groq",
94
+ message: `Groq usage API error (${response.status})${errText ? `: ${errText.slice(0, 120)}` : ""}`,
95
+ };
96
+ }
97
+
98
+ // The quota data lives in headers, not the body — drain it so the
99
+ // connection can be released without needing the payload.
100
+ await response.text().catch(() => {});
101
+
102
+ const requests = buildRateLimitQuota(
103
+ response.headers,
104
+ "x-ratelimit-limit-requests",
105
+ "x-ratelimit-remaining-requests",
106
+ "x-ratelimit-reset-requests",
107
+ );
108
+ const tokens = buildRateLimitQuota(
109
+ response.headers,
110
+ "x-ratelimit-limit-tokens",
111
+ "x-ratelimit-remaining-tokens",
112
+ "x-ratelimit-reset-tokens",
113
+ );
114
+
115
+ if (!requests && !tokens) {
116
+ // Key is valid (request succeeded) but no rate-limit bucket reported —
117
+ // distinguish "not tracked yet" from an auth/error state.
118
+ return {
119
+ plan: "Groq",
120
+ message: "Groq connected. No rate-limit data reported for this key yet.",
121
+ quotas: {},
122
+ };
123
+ }
124
+
125
+ const quotas = {};
126
+ if (requests) quotas["Requests"] = requests;
127
+ if (tokens) quotas["Tokens"] = tokens;
128
+
129
+ return { plan: "Groq", quotas };
130
+ } catch (error) {
131
+ return { message: `Groq error: ${error.message}` };
132
+ }
133
+ }
@@ -5,11 +5,8 @@
5
5
  import { proxyAwareFetch } from "../../utils/proxyFetch.js";
6
6
  import { U } from "./shared.js";
7
7
 
8
- // GLM quota endpoints (region-aware) — url from registry transport.usage
9
- const GLM_QUOTA_URLS = {
10
- international: U("glm").url,
11
- china: U("glm-cn").url,
12
- };
8
+ export { getGlmUsage } from "./glm.js";
9
+
13
10
 
14
11
  // Vercel AI Gateway credits endpoint
15
12
  // Returns { balance: "95.50", total_used: "4.50" } (USD as decimal strings).
@@ -112,63 +109,7 @@ export async function getOllamaUsage(apiKey, providerSpecificData, proxyOptions
112
109
  }
113
110
  }
114
111
 
115
- /**
116
- * GLM Coding Plan usage (international + China regions)
117
- */
118
- export async function getGlmUsage(apiKey, provider, proxyOptions = null) {
119
- if (!apiKey) {
120
- return { message: "GLM API key not available." };
121
- }
122
-
123
- const region = provider === "glm-cn" ? "china" : "international";
124
- const quotaUrl = GLM_QUOTA_URLS[region];
125
-
126
- try {
127
- const response = await proxyAwareFetch(quotaUrl, {
128
- headers: {
129
- Authorization: `Bearer ${apiKey}`,
130
- Accept: "application/json",
131
- },
132
- }, proxyOptions);
133
112
 
134
- if (!response.ok) {
135
- if (response.status === 401) {
136
- return { message: "GLM API key invalid or expired." };
137
- }
138
- return { message: `GLM quota API error (${response.status}).` };
139
- }
140
-
141
- const json = await response.json();
142
- const data = json?.data && typeof json.data === "object" ? json.data : {};
143
- const limits = Array.isArray(data.limits) ? data.limits : [];
144
- const quotas = {};
145
-
146
- for (const limit of limits) {
147
- if (!limit || limit.type !== "TOKENS_LIMIT") continue;
148
- const usedPercent = Number(limit.percentage) || 0;
149
- const resetMs = Number(limit.nextResetTime) || 0;
150
- const remaining = Math.max(0, 100 - usedPercent);
151
-
152
- quotas["session"] = {
153
- used: usedPercent,
154
- total: 100,
155
- remaining,
156
- remainingPercentage: remaining,
157
- resetAt: resetMs > 0 ? new Date(resetMs).toISOString() : null,
158
- unlimited: false,
159
- };
160
- }
161
-
162
- const levelRaw = typeof data.level === "string" ? data.level : "";
163
- const plan = levelRaw
164
- ? levelRaw.charAt(0).toUpperCase() + levelRaw.slice(1).toLowerCase()
165
- : "Unknown";
166
-
167
- return { plan, quotas };
168
- } catch (error) {
169
- return { message: `GLM error: ${error.message}` };
170
- }
171
- }
172
113
 
173
114
  /**
174
115
  * Vercel AI Gateway usage — credit balance for the API key
@@ -0,0 +1,222 @@
1
+ /**
2
+ * Zed usage — GET https://cloud.zed.dev/client/users/me
3
+ * Auth: Authorization: {user_id} {access_token}
4
+ *
5
+ * Quota rows are derived from plan.usage (edit_predictions, optional model_requests)
6
+ * and subscription_period.ended_at for billing-cycle reset.
7
+ */
8
+
9
+ import { fetchZedAuthenticatedUser } from "../../shared/zedAuth.js";
10
+ import { parseResetTime, toFiniteNumber } from "./shared.js";
11
+
12
+ /** Map plan_v3 ids to dashboard labels (CodexBar-compatible). */
13
+ export function formatZedPlanLabel(rawPlan) {
14
+ const raw = String(rawPlan || "").trim();
15
+ if (!raw) return "Zed";
16
+ switch (raw.toLowerCase()) {
17
+ case "zed_free":
18
+ return "Zed Free";
19
+ case "zed_pro":
20
+ return "Zed Pro";
21
+ case "zed_pro_trial":
22
+ return "Zed Pro Trial";
23
+ case "zed_student":
24
+ return "Zed Student";
25
+ case "zed_business":
26
+ return "Zed Business";
27
+ default:
28
+ return raw
29
+ .replace(/_/g, " ")
30
+ .split(/\s+/)
31
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
32
+ .join(" ");
33
+ }
34
+ }
35
+
36
+ /**
37
+ * Parse Zed UsageLimit JSON: "unlimited", a number, or { limited: N }.
38
+ */
39
+ export function parseZedUsageLimit(limit) {
40
+ if (limit == null) return { unlimited: false, total: 0 };
41
+
42
+ if (limit === "unlimited" || limit?.unlimited === true) {
43
+ return { unlimited: true, total: 0 };
44
+ }
45
+
46
+ if (typeof limit === "number" && Number.isFinite(limit)) {
47
+ return { unlimited: false, total: Math.max(0, limit) };
48
+ }
49
+
50
+ if (typeof limit === "string") {
51
+ const trimmed = limit.trim();
52
+ if (trimmed === "unlimited") return { unlimited: true, total: 0 };
53
+ const parsed = Number(trimmed);
54
+ if (Number.isFinite(parsed)) return { unlimited: false, total: Math.max(0, parsed) };
55
+ }
56
+
57
+ const limited = limit.limited ?? limit.Limited;
58
+ if (typeof limited === "number" && Number.isFinite(limited)) {
59
+ return { unlimited: false, total: Math.max(0, limited) };
60
+ }
61
+
62
+ return { unlimited: false, total: 0 };
63
+ }
64
+
65
+ /** limit `{ limited: 0 }` on Pro/Student means token billing, not a 0-cap request quota. */
66
+ export function isZedTokenBillingModelRequestsLimit(limitRaw) {
67
+ const info = parseZedUsageLimit(limitRaw);
68
+ return !info.unlimited && info.total === 0;
69
+ }
70
+
71
+ function makeZedQuotaRow(name, usedRaw, limitRaw, resetAt = null) {
72
+ const used = Math.max(0, toFiniteNumber(usedRaw, 0));
73
+ const limitInfo = parseZedUsageLimit(limitRaw);
74
+
75
+ if (limitInfo.unlimited) {
76
+ return {
77
+ used,
78
+ total: 0,
79
+ remainingPercentage: 100,
80
+ resetAt: resetAt || null,
81
+ unlimited: true,
82
+ };
83
+ }
84
+
85
+ const total = limitInfo.total;
86
+ if (total <= 0) {
87
+ return {
88
+ used,
89
+ total: 0,
90
+ remainingPercentage: 0,
91
+ resetAt: resetAt || null,
92
+ unlimited: false,
93
+ };
94
+ }
95
+
96
+ const clampedUsed = Math.min(used, total);
97
+ const remaining = Math.max(0, total - clampedUsed);
98
+ return {
99
+ used: clampedUsed,
100
+ total,
101
+ remainingPercentage: (remaining / total) * 100,
102
+ resetAt: resetAt || null,
103
+ unlimited: false,
104
+ };
105
+ }
106
+
107
+ function usageBucketLimit(bucket) {
108
+ if (!bucket || typeof bucket !== "object") return null;
109
+ if (bucket.limit != null) return bucket.limit;
110
+ return bucket;
111
+ }
112
+
113
+ /**
114
+ * Map /client/users/me JSON → { plan, quotas, message } for the dashboard.
115
+ */
116
+ export function parseZedAuthenticatedUserUsage(userInfo) {
117
+ const plan = userInfo?.plan || {};
118
+ const planId =
119
+ plan.plan_v3 || plan.plan_v2 || plan.plan || userInfo?.plan_v3 || null;
120
+ const resetAt =
121
+ parseResetTime(plan.subscription_period?.ended_at) ||
122
+ parseResetTime(plan.subscriptionPeriod?.endedAt) ||
123
+ null;
124
+
125
+ const quotas = {};
126
+ const usage = plan.usage || {};
127
+
128
+ const editPredictions = usage.edit_predictions || usage.editPredictions;
129
+ if (editPredictions) {
130
+ quotas["Edit Predictions"] = makeZedQuotaRow(
131
+ "Edit Predictions",
132
+ editPredictions.used,
133
+ editPredictions.limit,
134
+ resetAt,
135
+ );
136
+ }
137
+
138
+ const modelRequests = usage.model_requests || usage.modelRequests;
139
+ if (modelRequests) {
140
+ const limitRaw =
141
+ modelRequests.limit != null
142
+ ? modelRequests.limit
143
+ : usageBucketLimit(modelRequests)?.limit;
144
+ const limitInfo = parseZedUsageLimit(limitRaw);
145
+ // Token-billed plans report model_requests.limit=0 — not a request quota.
146
+ if (limitInfo.unlimited || limitInfo.total > 0) {
147
+ quotas["Hosted Model Requests"] = makeZedQuotaRow(
148
+ "Hosted Model Requests",
149
+ modelRequests.used,
150
+ limitRaw,
151
+ resetAt,
152
+ );
153
+ }
154
+ }
155
+
156
+ const tokenBillingNote =
157
+ modelRequests &&
158
+ isZedTokenBillingModelRequestsLimit(
159
+ modelRequests.limit ?? usageBucketLimit(modelRequests)?.limit,
160
+ )
161
+ ? "Hosted AI models are billed per token (not request count). Edit Predictions are tracked below. Token spend is on dashboard.zed.dev."
162
+ : null;
163
+
164
+ let planLabel = formatZedPlanLabel(planId);
165
+ if (plan.trial_started_at || plan.trialStartedAt) {
166
+ if (!/trial/i.test(planLabel)) planLabel = `${planLabel} (Trial active)`;
167
+ }
168
+
169
+ let message = tokenBillingNote;
170
+ if (plan.has_overdue_invoices || plan.hasOverdueInvoices) {
171
+ message = "This Zed account has overdue invoices. Usage may be blocked until billing is resolved.";
172
+ }
173
+
174
+ return {
175
+ plan: planLabel,
176
+ quotas,
177
+ message,
178
+ hasOverdueInvoices: !!(plan.has_overdue_invoices || plan.hasOverdueInvoices),
179
+ trialStarted: !!(plan.trial_started_at || plan.trialStartedAt),
180
+ planId: planId || null,
181
+ resetAt,
182
+ };
183
+ }
184
+
185
+ /**
186
+ * @param {string|null|undefined} accessToken
187
+ * @param {object|null|undefined} providerSpecificData
188
+ * @param {object|null|undefined} proxyOptions
189
+ */
190
+ export async function getZedUsage(
191
+ accessToken = null,
192
+ providerSpecificData = {},
193
+ proxyOptions = null,
194
+ ) {
195
+ const psd = providerSpecificData || {};
196
+ const userId = psd.userId;
197
+
198
+ if (!accessToken || typeof accessToken !== "string" || !accessToken.trim()) {
199
+ return { message: "Zed access token not available. Re-connect Zed to view quota." };
200
+ }
201
+ if (!userId) {
202
+ return { message: "Zed credential is missing user id. Re-connect Zed to view quota." };
203
+ }
204
+
205
+ const credentials = {
206
+ accessToken: accessToken.trim(),
207
+ providerSpecificData: psd,
208
+ };
209
+
210
+ try {
211
+ const userInfo = await fetchZedAuthenticatedUser(credentials, { proxyOptions });
212
+ return parseZedAuthenticatedUserUsage(userInfo);
213
+ } catch (error) {
214
+ const status = error?.status;
215
+ if (status === 401 || status === 403) {
216
+ return {
217
+ message: "Zed authentication failed. Sign in again from the dashboard or Zed editor.",
218
+ };
219
+ }
220
+ return { message: `Zed error: ${error.message || "Failed to fetch quota"}` };
221
+ }
222
+ }
@@ -14,11 +14,13 @@ import { getCodeBuddyCnUsage, getCodeBuddyIntlUsage } from "./usage/codebuddy-cn
14
14
  import { getGrokCliUsage } from "./usage/grok-cli.js";
15
15
  import { getKimiUsage } from "./usage/kimi.js";
16
16
  import { getDeepseekUsage } from "./usage/deepseek.js";
17
+ import { getGroqUsage } from "./usage/groq.js";
18
+ import { getZedUsage } from "./usage/zed.js";
17
19
  import { resolveQoderCredentials } from "./qoderModels.js";
20
+ import { getGlmUsage } from "./usage/glm.js";
18
21
  import {
19
22
  getIflowUsage,
20
23
  getOllamaUsage,
21
- getGlmUsage,
22
24
  getVercelAiGatewayUsage,
23
25
  getQoderUsage,
24
26
  } from "./usage/misc.js";
@@ -54,6 +56,8 @@ const USAGE_HANDLERS = {
54
56
  "grok-cli": (c) => getGrokCliUsage(c.accessToken, c.providerSpecificData, c.proxyOptions),
55
57
  kimi: (c) => getKimiUsage(c.accessToken, c.apiKey, c.proxyOptions, c.providerSpecificData),
56
58
  deepseek: (c) => getDeepseekUsage(c.apiKey, c.proxyOptions),
59
+ groq: (c) => getGroqUsage(c.apiKey, c.proxyOptions),
60
+ zed: (c) => getZedUsage(c.accessToken, c.providerSpecificData, c.proxyOptions),
57
61
  };
58
62
 
59
63
  export async function getUsageForProvider(connection, proxyOptions = null, options = {}) {
@@ -172,8 +172,8 @@ function getSystemId(credentials) {
172
172
  );
173
173
  }
174
174
 
175
- async function fetchJson(url, options) {
176
- const res = await proxyAwareFetch(url, options);
175
+ async function fetchJson(url, options, proxyOptions = null) {
176
+ const res = await proxyAwareFetch(url, options, proxyOptions);
177
177
  const text = await res.text();
178
178
  let data = null;
179
179
  if (text) {
@@ -203,11 +203,15 @@ export async function fetchZedAuthenticatedUser(credentials, options = {}) {
203
203
  const systemId = getSystemId(credentials);
204
204
  if (systemId) headers[ZED_HEADERS.systemId] = systemId;
205
205
 
206
- return fetchJson(zedUrl(config, "cloudBaseUrl", "/client/users/me", ZED_CLOUD_BASE_URL), {
207
- method: "GET",
208
- headers,
209
- signal: options.signal ?? undefined,
210
- });
206
+ return fetchJson(
207
+ zedUrl(config, "cloudBaseUrl", "/client/users/me", ZED_CLOUD_BASE_URL),
208
+ {
209
+ method: "GET",
210
+ headers,
211
+ signal: options.signal ?? undefined,
212
+ },
213
+ options.proxyOptions ?? null,
214
+ );
211
215
  }
212
216
 
213
217
  function normalizeOrganizationId(value) {
@@ -58,6 +58,15 @@ export function extractThinking(body) {
58
58
  return { mode: "level", level: e };
59
59
  }
60
60
 
61
+ // OpenAI chat / Responses shape — check effort first (zai sends both thinking object and reasoning.effort)
62
+ const effort = body.reasoning_effort ?? (typeof body.reasoning === "object" ? body.reasoning?.effort : null);
63
+ if (typeof effort === "string" && effort) {
64
+ const e = effort.toLowerCase();
65
+ if (e === "none" || e === "off") return { mode: "none" };
66
+ if (e === "auto") return { mode: "auto" };
67
+ return { mode: "level", level: e };
68
+ }
69
+
61
70
  // Claude shape
62
71
  const t = body.thinking;
63
72
  if (t && typeof t === "object") {
@@ -69,15 +78,6 @@ export function extractThinking(body) {
69
78
  }
70
79
  }
71
80
 
72
- // OpenAI chat / Responses shape
73
- const effort = body.reasoning_effort ?? (typeof body.reasoning === "object" ? body.reasoning?.effort : null);
74
- if (typeof effort === "string" && effort) {
75
- const e = effort.toLowerCase();
76
- if (e === "none" || e === "off") return { mode: "none" };
77
- if (e === "auto") return { mode: "auto" };
78
- return { mode: "level", level: e };
79
- }
80
-
81
81
  // Gemini shape (top-level, generationConfig, or request envelope)
82
82
  const tc = body.thinkingConfig || body.generationConfig?.thinkingConfig || body.request?.generationConfig?.thinkingConfig;
83
83
  if (tc && typeof tc === "object") {
@@ -105,12 +105,16 @@ export function extractThinking(body) {
105
105
  // at the call-site where intent is snapshotted before format translation.
106
106
  export const captureThinking = extractThinking;
107
107
 
108
- // Resolve thinking format: provider override > capability > derive(targetFormat).
108
+ const NATIVE_ONLY_FORMATS = new Set(["gemini-level", "gemini-budget", "claude-budget", "claude-adaptive", "kiro"]);
109
+
109
110
  function resolveFormat(targetFormat, model, provider) {
110
111
  const providerFmt = provider ? PROVIDERS[provider]?.thinkingFormat : null;
111
112
  if (providerFmt) return providerFmt;
112
113
  const caps = getCapabilitiesForModel(provider, model);
113
- if (caps.thinkingFormat) return caps.thinkingFormat;
114
+ const isOpenAIWire = targetFormat === "openai" || targetFormat === "openai-responses";
115
+ if (caps.thinkingFormat && !(isOpenAIWire && NATIVE_ONLY_FORMATS.has(caps.thinkingFormat))) {
116
+ return caps.thinkingFormat;
117
+ }
114
118
  return FORMAT_TO_NATIVE[targetFormat] || "openai";
115
119
  }
116
120
 
@@ -237,6 +241,10 @@ function applyFormat(fmt, body, cfg, caps, supportedLevels) {
237
241
  }
238
242
  case "claude-adaptive": {
239
243
  if (none && canDisable) { body.thinking = { type: "disabled" }; break; }
244
+ // Models that can disable thinking need the explicit adaptive switch.
245
+ // Permanently adaptive models such as Fable 5.1 accept effort directly.
246
+ if (canDisable) body.thinking = { type: "adaptive" };
247
+ else delete body.thinking;
240
248
  const level = toLevel(eff);
241
249
  body.output_config = { effort: level === "xhigh" ? "high" : level };
242
250
  break;
@@ -264,6 +272,18 @@ function applyFormat(fmt, body, cfg, caps, supportedLevels) {
264
272
  // Z.ai ignores thinking.disabled → must use enable_thinking:false to turn off.
265
273
  if (none && canDisable) { body.enable_thinking = false; delete body.thinking; break; }
266
274
  body.thinking = { type: "enabled" };
275
+ // reasoning_effort is only read by z.ai from GLM-5.2 onward — older GLM ignores it
276
+ // (see thinkingEffortSupported in capabilities.js). Skip on unsupported models so we
277
+ // don't send a field the API doesn't recognize.
278
+ if (caps.thinkingEffortSupported) {
279
+ const zaiLvl = toLevel(eff);
280
+ // GLM-5.3 only accepts exactly low|high|max (anything else errors); GLM-5.2 accepts
281
+ // a wider set but z.ai maps low/medium->high and xhigh->max server-side anyway, so
282
+ // this 3-value mapping matches both.
283
+ body.reasoning_effort = (zaiLvl === "low" || zaiLvl === "minimal") ? "low"
284
+ : (zaiLvl === "high" || zaiLvl === "medium") ? "high"
285
+ : "max";
286
+ }
267
287
  break;
268
288
  }
269
289
  case "qwen": {
@@ -151,3 +151,17 @@ export function fixMissingToolResponses(body) {
151
151
  return body;
152
152
  }
153
153
 
154
+ // Default `type: "custom"` on Claude-format tools that arrive without one.
155
+ // Anthropic's Claude tool schema requires `type` to be explicitly set; strict gateways
156
+ // (e.g., MiniMax Anthropic-compatible endpoint, error 2013) reject legacy payloads that
157
+ // omit it with HTTP 400. Tools that already carry a truthy `type` (e.g., `computer_use`,
158
+ // `bash`, `web_search_20250305`) are passed through untouched.
159
+ //
160
+ // Spread order matters: `{ ...tool, type: "custom" }` (spread first, override last)
161
+ // ensures that falsy `type` values (null, undefined, "") in the original tool don't
162
+ // overwrite the default. `{ type: "custom", ...tool }` would let `type: null` survive.
163
+ export function defaultClaudeToolType(tools) {
164
+ if (!Array.isArray(tools)) return tools;
165
+ return tools.map(tool => tool?.type ? tool : { ...tool, type: "custom" });
166
+ }
167
+