zevairouter 1.0.154 → 1.0.155

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 (1857) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/DOCKER.md +403 -0
  3. package/README.md +49 -22
  4. package/README.zh-CN.md +18 -11
  5. package/cli/LICENSE +1 -22
  6. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  7. package/cli/app/.next-cli-build/app-path-routes-manifest.json +9 -9
  8. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  9. package/cli/app/.next-cli-build/required-server-files.json +4 -4
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -2
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +2 -2
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +2 -2
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  86. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  91. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  92. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  93. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  94. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  95. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  96. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  99. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  100. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  101. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  102. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  103. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  104. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  105. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  106. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  107. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  108. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/changelog/route_client-reference-manifest.js +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route_client-reference-manifest.js +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/combos/route_client-reference-manifest.js +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/context/[id]/route_client-reference-manifest.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/context/bulk/route_client-reference-manifest.js +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/context/route_client-reference-manifest.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route_client-reference-manifest.js +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route_client-reference-manifest.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route_client-reference-manifest.js +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route_client-reference-manifest.js +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route_client-reference-manifest.js +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route_client-reference-manifest.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/headroom/start/route_client-reference-manifest.js +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/headroom/status/route_client-reference-manifest.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route_client-reference-manifest.js +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/health/ready/route_client-reference-manifest.js +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/health/route_client-reference-manifest.js +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/init/route_client-reference-manifest.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route_client-reference-manifest.js +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/keys/route_client-reference-manifest.js +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/locale/route_client-reference-manifest.js +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/metrics/route_client-reference-manifest.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/models/custom/route_client-reference-manifest.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/models/disabled/route_client-reference-manifest.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/models/route_client-reference-manifest.js +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route_client-reference-manifest.js +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route_client-reference-manifest.js +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route_client-reference-manifest.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route_client-reference-manifest.js +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route_client-reference-manifest.js +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route_client-reference-manifest.js +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route_client-reference-manifest.js +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route_client-reference-manifest.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route_client-reference-manifest.js +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route_client-reference-manifest.js +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  362. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route_client-reference-manifest.js +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route_client-reference-manifest.js +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  368. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -1
  370. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  376. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  377. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  378. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
  379. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  380. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  381. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  382. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  383. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  384. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  385. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  386. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  388. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  389. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  391. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  393. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  395. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  396. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route_client-reference-manifest.js +1 -1
  397. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  399. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route_client-reference-manifest.js +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  401. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  402. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  403. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  405. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  406. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  407. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  408. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  409. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  411. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  412. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  413. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  414. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  416. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  418. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  420. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route_client-reference-manifest.js +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  422. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route_client-reference-manifest.js +1 -1
  424. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  426. package/cli/app/.next-cli-build/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  427. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  428. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  429. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  430. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  431. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  432. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  433. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  434. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  435. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  436. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  437. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  438. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  439. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  440. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  441. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  442. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  443. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  444. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  445. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  446. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  447. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  448. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  449. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  450. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route_client-reference-manifest.js +1 -1
  451. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  452. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  453. package/cli/app/.next-cli-build/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  454. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  455. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  456. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -1
  457. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  458. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  459. package/cli/app/.next-cli-build/server/app/api/providers/route_client-reference-manifest.js +1 -1
  460. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  461. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  462. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -1
  463. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  464. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  465. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  466. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  467. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  468. package/cli/app/.next-cli-build/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  469. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  470. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  471. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  472. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  473. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  474. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  475. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  476. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  477. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -1
  478. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  479. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  480. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -1
  481. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  482. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  483. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  484. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  485. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  486. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -1
  487. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +1 -1
  488. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  489. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route_client-reference-manifest.js +1 -1
  490. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +1 -1
  491. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  492. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route_client-reference-manifest.js +1 -1
  493. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +1 -1
  494. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  495. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route_client-reference-manifest.js +1 -1
  496. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +1 -1
  497. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  498. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route_client-reference-manifest.js +1 -1
  499. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +1 -1
  500. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  501. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route_client-reference-manifest.js +1 -1
  502. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
  503. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  504. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route_client-reference-manifest.js +1 -1
  505. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +1 -1
  506. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  507. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route_client-reference-manifest.js +1 -1
  508. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  509. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  510. package/cli/app/.next-cli-build/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  511. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  512. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  513. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  514. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  515. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  516. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  517. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  518. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  519. package/cli/app/.next-cli-build/server/app/api/settings/route_client-reference-manifest.js +1 -1
  520. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  521. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  522. package/cli/app/.next-cli-build/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  523. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  524. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  525. package/cli/app/.next-cli-build/server/app/api/tags/route_client-reference-manifest.js +1 -1
  526. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  527. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  528. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route_client-reference-manifest.js +1 -1
  529. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  530. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  531. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route_client-reference-manifest.js +1 -1
  532. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  533. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  534. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route_client-reference-manifest.js +1 -1
  535. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  536. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  537. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route_client-reference-manifest.js +1 -1
  538. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  539. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  540. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route_client-reference-manifest.js +1 -1
  541. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  542. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  543. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route_client-reference-manifest.js +1 -1
  544. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +1 -1
  545. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  546. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route_client-reference-manifest.js +1 -1
  547. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  548. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  549. package/cli/app/.next-cli-build/server/app/api/terminal/session/route_client-reference-manifest.js +1 -1
  550. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  551. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  552. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  553. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  554. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  555. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  556. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  557. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  558. package/cli/app/.next-cli-build/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  559. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  560. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  561. package/cli/app/.next-cli-build/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  562. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  563. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  564. package/cli/app/.next-cli-build/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  565. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  566. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  567. package/cli/app/.next-cli-build/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  568. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  569. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  570. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  571. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  572. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  573. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  574. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  575. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  576. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  577. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  578. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  579. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -1
  580. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  581. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  582. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -1
  583. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  584. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  585. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -1
  586. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  587. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  588. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -1
  589. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  590. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  591. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  592. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  593. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  594. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route_client-reference-manifest.js +1 -1
  595. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  596. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  597. package/cli/app/.next-cli-build/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  598. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  599. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  600. package/cli/app/.next-cli-build/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  601. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  602. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  603. package/cli/app/.next-cli-build/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  604. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  605. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  606. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  607. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  608. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  609. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  610. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  611. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  612. package/cli/app/.next-cli-build/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  613. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  614. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  615. package/cli/app/.next-cli-build/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  616. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  617. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  618. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  619. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  620. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  621. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  622. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  623. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  624. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  625. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  626. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  627. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -1
  628. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  629. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  630. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  631. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  632. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  633. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  634. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  635. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  636. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  637. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  638. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  639. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  640. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  641. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  642. package/cli/app/.next-cli-build/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  643. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  644. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  645. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +1 -1
  646. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  647. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  648. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -1
  649. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  650. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  651. package/cli/app/.next-cli-build/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  652. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  653. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  654. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -1
  655. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  656. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  657. package/cli/app/.next-cli-build/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  658. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  659. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  660. package/cli/app/.next-cli-build/server/app/api/v1/route_client-reference-manifest.js +1 -1
  661. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  662. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  663. package/cli/app/.next-cli-build/server/app/api/v1/search/route_client-reference-manifest.js +1 -1
  664. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  665. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  666. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -1
  667. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  668. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  669. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  670. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  671. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  672. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  673. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  674. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  675. package/cli/app/.next-cli-build/server/app/api/version/route_client-reference-manifest.js +1 -1
  676. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  677. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  678. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -1
  679. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  680. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  681. package/cli/app/.next-cli-build/server/app/api/version/update/route_client-reference-manifest.js +1 -1
  682. package/cli/app/.next-cli-build/server/app/callback/page.js +1 -1
  683. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  684. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  685. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  686. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  687. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  688. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  689. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  690. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  691. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  692. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  693. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  694. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  695. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  696. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  697. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  698. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  699. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  700. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  701. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  702. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  703. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  704. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  705. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  706. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  707. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  708. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  709. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  710. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  711. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  712. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  713. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  714. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  715. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  716. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  717. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  718. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  719. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  720. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  721. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  722. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  723. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  724. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  725. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  726. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  727. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  728. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  729. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  730. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  731. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  732. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  733. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  734. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  735. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  736. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  737. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  738. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  739. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  740. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  741. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  742. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  743. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  744. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  745. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  746. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  747. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  748. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  749. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  750. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  751. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  752. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  753. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  754. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  755. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  756. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  757. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  758. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  759. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  760. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  761. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  762. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  763. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  764. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  765. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  766. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  767. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  768. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  769. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  770. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  771. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  772. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  773. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  774. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  775. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  776. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  777. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  778. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  779. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  780. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  781. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  782. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  783. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  784. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  785. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  786. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  787. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  788. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  789. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  790. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  791. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  792. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  793. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  794. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  795. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  796. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  797. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  798. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  799. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  800. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  801. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  802. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  803. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  804. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  805. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  806. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  807. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  808. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  809. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  810. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  811. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  812. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  813. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  814. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  815. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  816. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  817. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  818. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  819. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  820. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  821. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  822. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  823. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  824. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  825. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  826. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  827. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  828. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  829. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  830. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  831. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  832. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  833. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  834. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  835. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  836. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  837. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  838. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  839. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  840. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  841. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  842. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  843. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  844. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  845. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  846. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  847. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  848. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  849. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  850. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  851. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  852. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  853. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  854. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  855. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  856. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  857. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  858. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  859. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  860. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  861. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  862. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  863. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  864. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  865. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  866. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  867. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  868. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  869. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  870. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  871. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  872. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  873. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  874. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  875. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  876. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  877. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  878. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  879. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  880. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  881. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  882. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  883. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  884. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  885. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  886. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  887. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  888. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  889. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  890. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  891. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  892. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  893. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  894. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  895. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  896. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  897. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  898. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  899. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  900. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  901. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  902. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  903. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  904. package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
  905. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  906. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  907. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  908. package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
  909. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  910. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  911. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  912. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  913. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  914. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  915. package/cli/app/.next-cli-build/server/app/login/page.js +2 -2
  916. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  917. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  918. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  919. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  920. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  921. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  922. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  923. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  924. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  925. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  926. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  927. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  928. package/cli/app/.next-cli-build/server/app/page.js +1 -1
  929. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  930. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  931. package/cli/app/.next-cli-build/server/app-paths-manifest.json +9 -9
  932. package/cli/app/.next-cli-build/server/chunks/2030.js +1 -1
  933. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  934. package/cli/app/.next-cli-build/server/chunks/319.js +3 -3
  935. package/cli/app/.next-cli-build/server/chunks/4650.js +1 -1
  936. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  937. package/cli/app/.next-cli-build/server/chunks/5307.js +1 -1
  938. package/cli/app/.next-cli-build/server/chunks/5469.js +1 -1
  939. package/cli/app/.next-cli-build/server/chunks/5949.js +12 -11
  940. package/cli/app/.next-cli-build/server/chunks/8242.js +1 -1
  941. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  942. package/cli/app/.next-cli-build/server/chunks/9372.js +1 -1
  943. package/cli/app/.next-cli-build/server/chunks/9621.js +1 -1
  944. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  945. package/cli/app/.next-cli-build/server/next-font-manifest.js +1 -1
  946. package/cli/app/.next-cli-build/server/next-font-manifest.json +1 -1
  947. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  948. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  949. package/cli/app/.next-cli-build/static/chunks/{620-a13f0f7b318585ab.js → 620-90911eeb765ca4bd.js} +1 -1
  950. package/cli/app/.next-cli-build/static/chunks/app/login/page-f7df7d9a053d65b7.js +1 -0
  951. package/cli/app/CHANGELOG.md +29 -0
  952. package/cli/app/cli/hooks/postinstall.js +82 -50
  953. package/cli/app/cli/hooks/safeGlobalInstall.js +178 -10
  954. package/cli/app/cli/hooks/startupRuntime.js +31 -0
  955. package/cli/app/cli/hooks/streamCommand.js +63 -0
  956. package/cli/app/package.json +46 -39
  957. package/cli/app/server.js +1 -1
  958. package/cli/cli.js +708 -248
  959. package/cli/hooks/postinstall.js +82 -50
  960. package/cli/hooks/safeGlobalInstall.js +178 -10
  961. package/cli/hooks/startupRuntime.js +31 -0
  962. package/cli/hooks/streamCommand.js +63 -0
  963. package/cli/package.json +6 -5
  964. package/cli/src/cli/systemdEnv.js +93 -0
  965. package/cli/src/cli/tray/autostart.js +55 -21
  966. package/cli/src/cli/tray/tray.js +1 -1
  967. package/cli/src/cli/updateRuntimeState.js +976 -0
  968. package/package.json +46 -39
  969. package/scripts/start-standalone.mjs +24 -15
  970. package/cli/app/.next-cli-build/static/chunks/app/login/page-9ea3f794879db097.js +0 -1
  971. package/i18n/README.ja-JP.md +0 -34
  972. package/i18n/README.ru.md +0 -34
  973. package/i18n/README.vi.md +0 -34
  974. package/i18n/README.zh-CN.md +0 -34
  975. package/images/screenshots/automation.png +0 -0
  976. package/images/screenshots/endpoint.png +0 -0
  977. package/images/screenshots/playground.png +0 -0
  978. package/images/screenshots/providers.png +0 -0
  979. package/images/screenshots/usage.png +0 -0
  980. package/images/zevairouter.png +0 -0
  981. package/jsconfig.json +0 -12
  982. package/next.config.mjs +0 -96
  983. package/open-sse/config/appConstants.js +0 -230
  984. package/open-sse/config/codexInstructions.js +0 -119
  985. package/open-sse/config/constants.js +0 -4
  986. package/open-sse/config/defaultThinkingSignature.js +0 -12
  987. package/open-sse/config/errorConfig.js +0 -92
  988. package/open-sse/config/googleTtsLanguages.js +0 -62
  989. package/open-sse/config/kiroConstants.js +0 -360
  990. package/open-sse/config/models.js +0 -13
  991. package/open-sse/config/ollamaModels.js +0 -19
  992. package/open-sse/config/providerModels.js +0 -1058
  993. package/open-sse/config/providers.js +0 -543
  994. package/open-sse/config/runtimeConfig.js +0 -72
  995. package/open-sse/config/ttsModels.js +0 -129
  996. package/open-sse/context/injectContext.js +0 -82
  997. package/open-sse/executors/antigravity.js +0 -605
  998. package/open-sse/executors/autoclaw.js +0 -121
  999. package/open-sse/executors/azure.js +0 -57
  1000. package/open-sse/executors/base.js +0 -221
  1001. package/open-sse/executors/codebuddy-cn.js +0 -31
  1002. package/open-sse/executors/codex.js +0 -484
  1003. package/open-sse/executors/commandcode.js +0 -88
  1004. package/open-sse/executors/cursor.js +0 -795
  1005. package/open-sse/executors/default.js +0 -532
  1006. package/open-sse/executors/gemini-cli.js +0 -89
  1007. package/open-sse/executors/github.js +0 -383
  1008. package/open-sse/executors/grok-cli.js +0 -397
  1009. package/open-sse/executors/grok-web.js +0 -345
  1010. package/open-sse/executors/iflow.js +0 -108
  1011. package/open-sse/executors/index.js +0 -92
  1012. package/open-sse/executors/kimchi.js +0 -123
  1013. package/open-sse/executors/kiro.js +0 -537
  1014. package/open-sse/executors/mimo-free.js +0 -156
  1015. package/open-sse/executors/ollama-local.js +0 -14
  1016. package/open-sse/executors/opencode-go.js +0 -41
  1017. package/open-sse/executors/opencode.js +0 -32
  1018. package/open-sse/executors/perplexity-web.js +0 -507
  1019. package/open-sse/executors/qoder.js +0 -468
  1020. package/open-sse/executors/qwen.js +0 -129
  1021. package/open-sse/executors/vertex.js +0 -131
  1022. package/open-sse/executors/xiaomi-tokenplan.js +0 -19
  1023. package/open-sse/handlers/chatCore/nonStreamingHandler.js +0 -261
  1024. package/open-sse/handlers/chatCore/requestDetail.js +0 -112
  1025. package/open-sse/handlers/chatCore/sseToJsonHandler.js +0 -540
  1026. package/open-sse/handlers/chatCore/streamingHandler.js +0 -125
  1027. package/open-sse/handlers/chatCore.js +0 -398
  1028. package/open-sse/handlers/embeddingProviders/_base.js +0 -4
  1029. package/open-sse/handlers/embeddingProviders/gemini.js +0 -57
  1030. package/open-sse/handlers/embeddingProviders/index.js +0 -23
  1031. package/open-sse/handlers/embeddingProviders/openai.js +0 -39
  1032. package/open-sse/handlers/embeddingProviders/openaiCompatNode.js +0 -16
  1033. package/open-sse/handlers/embeddingsCore.js +0 -126
  1034. package/open-sse/handlers/fetch/index.js +0 -237
  1035. package/open-sse/handlers/imageGenerationCore.js +0 -189
  1036. package/open-sse/handlers/imageProviders/_base.js +0 -31
  1037. package/open-sse/handlers/imageProviders/blackForestLabs.js +0 -46
  1038. package/open-sse/handlers/imageProviders/cloudflareAi.js +0 -181
  1039. package/open-sse/handlers/imageProviders/codex.js +0 -201
  1040. package/open-sse/handlers/imageProviders/comfyui.js +0 -11
  1041. package/open-sse/handlers/imageProviders/falAi.js +0 -44
  1042. package/open-sse/handlers/imageProviders/gemini.js +0 -28
  1043. package/open-sse/handlers/imageProviders/huggingface.js +0 -25
  1044. package/open-sse/handlers/imageProviders/index.js +0 -40
  1045. package/open-sse/handlers/imageProviders/nanobanana.js +0 -61
  1046. package/open-sse/handlers/imageProviders/openai.js +0 -40
  1047. package/open-sse/handlers/imageProviders/runwayml.js +0 -50
  1048. package/open-sse/handlers/imageProviders/sdwebui.js +0 -20
  1049. package/open-sse/handlers/imageProviders/stabilityAi.js +0 -37
  1050. package/open-sse/handlers/responsesHandler.js +0 -46
  1051. package/open-sse/handlers/search/callers.js +0 -371
  1052. package/open-sse/handlers/search/chatSearch.js +0 -409
  1053. package/open-sse/handlers/search/index.js +0 -201
  1054. package/open-sse/handlers/search/normalizers.js +0 -223
  1055. package/open-sse/handlers/sttCore.js +0 -194
  1056. package/open-sse/handlers/ttsCore.js +0 -74
  1057. package/open-sse/handlers/ttsProviders/_base.js +0 -39
  1058. package/open-sse/handlers/ttsProviders/edgeTts.js +0 -92
  1059. package/open-sse/handlers/ttsProviders/elevenlabs.js +0 -51
  1060. package/open-sse/handlers/ttsProviders/gemini.js +0 -120
  1061. package/open-sse/handlers/ttsProviders/genericFormats.js +0 -169
  1062. package/open-sse/handlers/ttsProviders/googleTts.js +0 -57
  1063. package/open-sse/handlers/ttsProviders/index.js +0 -50
  1064. package/open-sse/handlers/ttsProviders/localDevice.js +0 -90
  1065. package/open-sse/handlers/ttsProviders/minimax.js +0 -59
  1066. package/open-sse/handlers/ttsProviders/openai.js +0 -33
  1067. package/open-sse/handlers/ttsProviders/openrouter.js +0 -73
  1068. package/open-sse/index.js +0 -82
  1069. package/open-sse/rtk/applyFilter.js +0 -15
  1070. package/open-sse/rtk/autodetect.js +0 -111
  1071. package/open-sse/rtk/caveman.js +0 -100
  1072. package/open-sse/rtk/cavemanPrompts.js +0 -78
  1073. package/open-sse/rtk/constants.js +0 -55
  1074. package/open-sse/rtk/filters/buildOutput.js +0 -127
  1075. package/open-sse/rtk/filters/dedupLog.js +0 -44
  1076. package/open-sse/rtk/filters/find.js +0 -49
  1077. package/open-sse/rtk/filters/gitDiff.js +0 -92
  1078. package/open-sse/rtk/filters/gitStatus.js +0 -117
  1079. package/open-sse/rtk/filters/grep.js +0 -48
  1080. package/open-sse/rtk/filters/ls.js +0 -79
  1081. package/open-sse/rtk/filters/readNumbered.js +0 -27
  1082. package/open-sse/rtk/filters/searchList.js +0 -52
  1083. package/open-sse/rtk/filters/smartTruncate.js +0 -15
  1084. package/open-sse/rtk/filters/tree.js +0 -32
  1085. package/open-sse/rtk/headroom.js +0 -348
  1086. package/open-sse/rtk/index.js +0 -155
  1087. package/open-sse/rtk/ponytail.js +0 -91
  1088. package/open-sse/rtk/ponytailPrompts.js +0 -44
  1089. package/open-sse/rtk/pxpipe.js +0 -104
  1090. package/open-sse/rtk/registry.js +0 -38
  1091. package/open-sse/services/accountFallback.js +0 -467
  1092. package/open-sse/services/antigravityHeaderScrub.js +0 -78
  1093. package/open-sse/services/antigravityIdentity.js +0 -115
  1094. package/open-sse/services/antigravityObfuscation.js +0 -92
  1095. package/open-sse/services/clinepassModels.js +0 -63
  1096. package/open-sse/services/combo.js +0 -189
  1097. package/open-sse/services/compact.js +0 -71
  1098. package/open-sse/services/copilotModels.js +0 -155
  1099. package/open-sse/services/kimchiModels.js +0 -176
  1100. package/open-sse/services/kiroModels.js +0 -320
  1101. package/open-sse/services/model.js +0 -281
  1102. package/open-sse/services/oauthCredentialManager.js +0 -151
  1103. package/open-sse/services/projectId.js +0 -463
  1104. package/open-sse/services/provider.js +0 -356
  1105. package/open-sse/services/qoderModels.js +0 -216
  1106. package/open-sse/services/tokenRefresh.js +0 -949
  1107. package/open-sse/services/usage.js +0 -2415
  1108. package/open-sse/transformer/responsesTransformer.js +0 -509
  1109. package/open-sse/transformer/streamToJsonConverter.js +0 -151
  1110. package/open-sse/translator/formats.js +0 -36
  1111. package/open-sse/translator/helpers/claudeHelper.js +0 -217
  1112. package/open-sse/translator/helpers/geminiHelper.js +0 -372
  1113. package/open-sse/translator/helpers/imageHelper.js +0 -98
  1114. package/open-sse/translator/helpers/maxTokensHelper.js +0 -27
  1115. package/open-sse/translator/helpers/openaiHelper.js +0 -130
  1116. package/open-sse/translator/helpers/responsesApiHelper.js +0 -214
  1117. package/open-sse/translator/helpers/toolCallHelper.js +0 -148
  1118. package/open-sse/translator/index.js +0 -254
  1119. package/open-sse/translator/request/antigravity-to-openai.js +0 -255
  1120. package/open-sse/translator/request/claude-to-openai.js +0 -278
  1121. package/open-sse/translator/request/gemini-to-openai.js +0 -147
  1122. package/open-sse/translator/request/openai-responses.js +0 -212
  1123. package/open-sse/translator/request/openai-to-claude.js +0 -427
  1124. package/open-sse/translator/request/openai-to-commandcode.js +0 -178
  1125. package/open-sse/translator/request/openai-to-cursor.js +0 -195
  1126. package/open-sse/translator/request/openai-to-gemini.js +0 -478
  1127. package/open-sse/translator/request/openai-to-kiro.js +0 -641
  1128. package/open-sse/translator/request/openai-to-kiro.old.js +0 -278
  1129. package/open-sse/translator/request/openai-to-ollama.js +0 -192
  1130. package/open-sse/translator/request/openai-to-vertex.js +0 -42
  1131. package/open-sse/translator/response/claude-to-openai.js +0 -206
  1132. package/open-sse/translator/response/commandcode-to-openai.js +0 -197
  1133. package/open-sse/translator/response/cursor-to-openai.js +0 -30
  1134. package/open-sse/translator/response/gemini-to-openai.js +0 -245
  1135. package/open-sse/translator/response/kiro-to-openai.js +0 -195
  1136. package/open-sse/translator/response/ollama-to-openai.js +0 -152
  1137. package/open-sse/translator/response/openai-responses.js +0 -624
  1138. package/open-sse/translator/response/openai-to-antigravity.js +0 -122
  1139. package/open-sse/translator/response/openai-to-claude.js +0 -266
  1140. package/open-sse/utils/bypassHandler.js +0 -298
  1141. package/open-sse/utils/claudeCloaking.js +0 -155
  1142. package/open-sse/utils/claudeHeaderCache.js +0 -70
  1143. package/open-sse/utils/clientDetector.js +0 -64
  1144. package/open-sse/utils/cursorChecksum.js +0 -152
  1145. package/open-sse/utils/cursorProtobuf.js +0 -907
  1146. package/open-sse/utils/debugLog.js +0 -14
  1147. package/open-sse/utils/error.js +0 -147
  1148. package/open-sse/utils/ollamaTransform.js +0 -85
  1149. package/open-sse/utils/proxyFetch.js +0 -369
  1150. package/open-sse/utils/reasoningContentInjector.js +0 -79
  1151. package/open-sse/utils/requestLogger.js +0 -251
  1152. package/open-sse/utils/responsesStreamHelpers.js +0 -106
  1153. package/open-sse/utils/sessionManager.js +0 -231
  1154. package/open-sse/utils/stream.js +0 -590
  1155. package/open-sse/utils/streamHandler.js +0 -274
  1156. package/open-sse/utils/streamHelpers.js +0 -122
  1157. package/open-sse/utils/thinkingSuffix.js +0 -64
  1158. package/open-sse/utils/toolDeduper.js +0 -49
  1159. package/open-sse/utils/usageTracking.js +0 -351
  1160. package/postcss.config.mjs +0 -14
  1161. package/public/favicon.svg +0 -16
  1162. package/public/file.svg +0 -1
  1163. package/public/globe.svg +0 -1
  1164. package/public/i18n/literals/ar.json +0 -195
  1165. package/public/i18n/literals/bn.json +0 -195
  1166. package/public/i18n/literals/cs.json +0 -195
  1167. package/public/i18n/literals/da.json +0 -195
  1168. package/public/i18n/literals/de.json +0 -195
  1169. package/public/i18n/literals/el.json +0 -195
  1170. package/public/i18n/literals/es.json +0 -195
  1171. package/public/i18n/literals/fi.json +0 -195
  1172. package/public/i18n/literals/fr.json +0 -195
  1173. package/public/i18n/literals/he.json +0 -195
  1174. package/public/i18n/literals/hi.json +0 -195
  1175. package/public/i18n/literals/hu.json +0 -195
  1176. package/public/i18n/literals/id.json +0 -195
  1177. package/public/i18n/literals/it.json +0 -195
  1178. package/public/i18n/literals/ja.json +0 -195
  1179. package/public/i18n/literals/ko.json +0 -195
  1180. package/public/i18n/literals/nl.json +0 -195
  1181. package/public/i18n/literals/no.json +0 -195
  1182. package/public/i18n/literals/pl.json +0 -195
  1183. package/public/i18n/literals/pt-BR.json +0 -195
  1184. package/public/i18n/literals/pt-PT.json +0 -195
  1185. package/public/i18n/literals/ro.json +0 -195
  1186. package/public/i18n/literals/ru.json +0 -195
  1187. package/public/i18n/literals/sv.json +0 -195
  1188. package/public/i18n/literals/th.json +0 -195
  1189. package/public/i18n/literals/tl.json +0 -195
  1190. package/public/i18n/literals/tr.json +0 -195
  1191. package/public/i18n/literals/uk.json +0 -195
  1192. package/public/i18n/literals/ur.json +0 -195
  1193. package/public/i18n/literals/vi.json +0 -195
  1194. package/public/i18n/literals/zh-CN.json +0 -772
  1195. package/public/i18n/literals/zh-TW.json +0 -195
  1196. package/public/icons/discord.svg +0 -4
  1197. package/public/icons/icon-192.svg +0 -16
  1198. package/public/icons/icon-512.svg +0 -16
  1199. package/public/next.svg +0 -1
  1200. package/public/providers/alicode-intl.png +0 -0
  1201. package/public/providers/alicode.png +0 -0
  1202. package/public/providers/amp.png +0 -0
  1203. package/public/providers/anthropic-m.png +0 -0
  1204. package/public/providers/anthropic.png +0 -0
  1205. package/public/providers/antigravity.png +0 -0
  1206. package/public/providers/assemblyai.png +0 -0
  1207. package/public/providers/autoclaw.png +0 -0
  1208. package/public/providers/aws-polly.png +0 -0
  1209. package/public/providers/azure.png +0 -0
  1210. package/public/providers/black-forest-labs.png +0 -0
  1211. package/public/providers/blackbox.png +0 -0
  1212. package/public/providers/brave-search.png +0 -0
  1213. package/public/providers/byteplus.png +0 -0
  1214. package/public/providers/cartesia.png +0 -0
  1215. package/public/providers/cerebras.png +0 -0
  1216. package/public/providers/chutes.png +0 -0
  1217. package/public/providers/claude.png +0 -0
  1218. package/public/providers/cline.png +0 -0
  1219. package/public/providers/clinepass.png +0 -0
  1220. package/public/providers/cloudflare-ai.png +0 -0
  1221. package/public/providers/codebuddy-cn.png +0 -0
  1222. package/public/providers/codebuddy.png +0 -0
  1223. package/public/providers/codebuddy.svg +0 -37
  1224. package/public/providers/codex.png +0 -0
  1225. package/public/providers/cohere.png +0 -0
  1226. package/public/providers/comfyui.png +0 -0
  1227. package/public/providers/commandcode.png +0 -0
  1228. package/public/providers/continue.png +0 -0
  1229. package/public/providers/copilot.png +0 -0
  1230. package/public/providers/coqui.png +0 -0
  1231. package/public/providers/cursor.png +0 -0
  1232. package/public/providers/deepgram.png +0 -0
  1233. package/public/providers/deepseek-tui.png +0 -0
  1234. package/public/providers/deepseek.png +0 -0
  1235. package/public/providers/droid.png +0 -0
  1236. package/public/providers/edge-tts.png +0 -0
  1237. package/public/providers/elevenlabs.png +0 -0
  1238. package/public/providers/exa.png +0 -0
  1239. package/public/providers/fal-ai.png +0 -0
  1240. package/public/providers/firecrawl.png +0 -0
  1241. package/public/providers/fireworks.png +0 -0
  1242. package/public/providers/gemini-cli.png +0 -0
  1243. package/public/providers/gemini.png +0 -0
  1244. package/public/providers/github.png +0 -0
  1245. package/public/providers/glm-cn.png +0 -0
  1246. package/public/providers/glm.png +0 -0
  1247. package/public/providers/google-pse.png +0 -0
  1248. package/public/providers/google-tts.png +0 -0
  1249. package/public/providers/grok-cli.png +0 -0
  1250. package/public/providers/grok-web.png +0 -0
  1251. package/public/providers/groq.png +0 -0
  1252. package/public/providers/hermes.png +0 -0
  1253. package/public/providers/huggingface.png +0 -0
  1254. package/public/providers/hyperbolic.png +0 -0
  1255. package/public/providers/iflow.png +0 -0
  1256. package/public/providers/inworld.png +0 -0
  1257. package/public/providers/jcode.png +0 -0
  1258. package/public/providers/jina-ai.png +0 -0
  1259. package/public/providers/jina-reader.png +0 -0
  1260. package/public/providers/kilocode.png +0 -0
  1261. package/public/providers/kimchi.png +0 -0
  1262. package/public/providers/kimchi.svg +0 -4
  1263. package/public/providers/kimi-coding.png +0 -0
  1264. package/public/providers/kimi.png +0 -0
  1265. package/public/providers/kiro.png +0 -0
  1266. package/public/providers/linkup.png +0 -0
  1267. package/public/providers/local-device.png +0 -0
  1268. package/public/providers/mimo-free.png +0 -0
  1269. package/public/providers/minimax-cn.png +0 -0
  1270. package/public/providers/minimax.png +0 -0
  1271. package/public/providers/mistral.png +0 -0
  1272. package/public/providers/nanobanana.png +0 -0
  1273. package/public/providers/nebius.png +0 -0
  1274. package/public/providers/nvidia.png +0 -0
  1275. package/public/providers/oai-cc.png +0 -0
  1276. package/public/providers/oai-r.png +0 -0
  1277. package/public/providers/ollama-local.png +0 -0
  1278. package/public/providers/ollama.png +0 -0
  1279. package/public/providers/openai.png +0 -0
  1280. package/public/providers/openclaw.png +0 -0
  1281. package/public/providers/opencode-go.png +0 -0
  1282. package/public/providers/opencode.png +0 -0
  1283. package/public/providers/openrouter.png +0 -0
  1284. package/public/providers/perplexity-agent.png +0 -0
  1285. package/public/providers/perplexity-web.png +0 -0
  1286. package/public/providers/perplexity.png +0 -0
  1287. package/public/providers/playht.png +0 -0
  1288. package/public/providers/qoder.png +0 -0
  1289. package/public/providers/qwen.png +0 -0
  1290. package/public/providers/recraft.png +0 -0
  1291. package/public/providers/roo.png +0 -0
  1292. package/public/providers/runwayml.png +0 -0
  1293. package/public/providers/sdwebui.png +0 -0
  1294. package/public/providers/searchapi.png +0 -0
  1295. package/public/providers/searxng.png +0 -0
  1296. package/public/providers/serper.png +0 -0
  1297. package/public/providers/siliconflow.png +0 -0
  1298. package/public/providers/stability-ai.png +0 -0
  1299. package/public/providers/tavily.png +0 -0
  1300. package/public/providers/together.png +0 -0
  1301. package/public/providers/topaz.png +0 -0
  1302. package/public/providers/tortoise.png +0 -0
  1303. package/public/providers/vertex-partner.png +0 -0
  1304. package/public/providers/vertex.png +0 -0
  1305. package/public/providers/volcengine-ark.png +0 -0
  1306. package/public/providers/voyage-ai.png +0 -0
  1307. package/public/providers/xai.png +0 -0
  1308. package/public/providers/xiaomi-mimo.png +0 -0
  1309. package/public/providers/xiaomi-tokenplan.png +0 -0
  1310. package/public/providers/youcom.png +0 -0
  1311. package/public/sw.js +0 -22
  1312. package/public/vercel.svg +0 -1
  1313. package/public/window.svg +0 -1
  1314. package/scripts/translate-readme.js +0 -201
  1315. package/src/app/(dashboard)/dashboard/automation/page.js +0 -774
  1316. package/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js +0 -1592
  1317. package/src/app/(dashboard)/dashboard/basic-chat/page.js +0 -5
  1318. package/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js +0 -81
  1319. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/ToolDetailClient.js +0 -173
  1320. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +0 -11
  1321. package/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.js +0 -487
  1322. package/src/app/(dashboard)/dashboard/cli-tools/components/ApiKeySelect.js +0 -14
  1323. package/src/app/(dashboard)/dashboard/cli-tools/components/BaseUrlSelect.js +0 -176
  1324. package/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +0 -396
  1325. package/src/app/(dashboard)/dashboard/cli-tools/components/ClineToolCard.js +0 -307
  1326. package/src/app/(dashboard)/dashboard/cli-tools/components/CodexToolCard.js +0 -466
  1327. package/src/app/(dashboard)/dashboard/cli-tools/components/CopilotToolCard.js +0 -330
  1328. package/src/app/(dashboard)/dashboard/cli-tools/components/CoworkToolCard.js +0 -646
  1329. package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +0 -344
  1330. package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +0 -271
  1331. package/src/app/(dashboard)/dashboard/cli-tools/components/DroidToolCard.js +0 -421
  1332. package/src/app/(dashboard)/dashboard/cli-tools/components/EndpointPresetControl.js +0 -129
  1333. package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +0 -323
  1334. package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +0 -386
  1335. package/src/app/(dashboard)/dashboard/cli-tools/components/KiloToolCard.js +0 -280
  1336. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmLinkCard.js +0 -40
  1337. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +0 -329
  1338. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmToolCard.js +0 -320
  1339. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +0 -394
  1340. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenCodeToolCard.js +0 -512
  1341. package/src/app/(dashboard)/dashboard/cli-tools/components/ToolSummaryCard.js +0 -40
  1342. package/src/app/(dashboard)/dashboard/cli-tools/components/cliEndpointMatch.js +0 -13
  1343. package/src/app/(dashboard)/dashboard/cli-tools/components/index.js +0 -19
  1344. package/src/app/(dashboard)/dashboard/cli-tools/page.js +0 -7
  1345. package/src/app/(dashboard)/dashboard/combos/page.js +0 -615
  1346. package/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js +0 -118
  1347. package/src/app/(dashboard)/dashboard/console-log/page.js +0 -8
  1348. package/src/app/(dashboard)/dashboard/context/page.js +0 -276
  1349. package/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js +0 -1594
  1350. package/src/app/(dashboard)/dashboard/endpoint/endpointConstants.js +0 -32
  1351. package/src/app/(dashboard)/dashboard/endpoint/page.js +0 -7
  1352. package/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +0 -1907
  1353. package/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js +0 -289
  1354. package/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +0 -413
  1355. package/src/app/(dashboard)/dashboard/media-providers/web/page.js +0 -209
  1356. package/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js +0 -121
  1357. package/src/app/(dashboard)/dashboard/mitm/page.js +0 -5
  1358. package/src/app/(dashboard)/dashboard/page.js +0 -7
  1359. package/src/app/(dashboard)/dashboard/playground/page.js +0 -5
  1360. package/src/app/(dashboard)/dashboard/profile/page.js +0 -1284
  1361. package/src/app/(dashboard)/dashboard/providers/[id]/AddApiKeyModal.js +0 -389
  1362. package/src/app/(dashboard)/dashboard/providers/[id]/AddCustomModelModal.js +0 -126
  1363. package/src/app/(dashboard)/dashboard/providers/[id]/CompatibleModelsSection.js +0 -250
  1364. package/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js +0 -295
  1365. package/src/app/(dashboard)/dashboard/providers/[id]/CooldownTimer.js +0 -42
  1366. package/src/app/(dashboard)/dashboard/providers/[id]/EditCompatibleNodeModal.js +0 -162
  1367. package/src/app/(dashboard)/dashboard/providers/[id]/ModelRow.js +0 -99
  1368. package/src/app/(dashboard)/dashboard/providers/[id]/PassthroughModelsSection.js +0 -183
  1369. package/src/app/(dashboard)/dashboard/providers/[id]/page.js +0 -2170
  1370. package/src/app/(dashboard)/dashboard/providers/[id]/page.new.js +0 -1726
  1371. package/src/app/(dashboard)/dashboard/providers/components/ConnectionsCard.js +0 -486
  1372. package/src/app/(dashboard)/dashboard/providers/components/ModelAvailabilityBadge.js +0 -186
  1373. package/src/app/(dashboard)/dashboard/providers/components/ModelsCard.js +0 -295
  1374. package/src/app/(dashboard)/dashboard/providers/new/page.js +0 -220
  1375. package/src/app/(dashboard)/dashboard/providers/page.js +0 -1518
  1376. package/src/app/(dashboard)/dashboard/proxy-pools/page.js +0 -1107
  1377. package/src/app/(dashboard)/dashboard/pxpipe/PxpipeClient.js +0 -284
  1378. package/src/app/(dashboard)/dashboard/pxpipe/page.js +0 -5
  1379. package/src/app/(dashboard)/dashboard/quota/page.js +0 -11
  1380. package/src/app/(dashboard)/dashboard/terminal/TerminalPageClient.js +0 -735
  1381. package/src/app/(dashboard)/dashboard/terminal/page.js +0 -7
  1382. package/src/app/(dashboard)/dashboard/token-saver/TokenSaverClient.js +0 -1018
  1383. package/src/app/(dashboard)/dashboard/token-saver/page.js +0 -5
  1384. package/src/app/(dashboard)/dashboard/translator/page.js +0 -303
  1385. package/src/app/(dashboard)/dashboard/usage/components/OverviewCards.js +0 -87
  1386. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/ProviderLimitCard.js +0 -183
  1387. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaProgressBar.js +0 -127
  1388. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js +0 -269
  1389. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js +0 -1571
  1390. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +0 -320
  1391. package/src/app/(dashboard)/dashboard/usage/components/ProviderTopology.js +0 -468
  1392. package/src/app/(dashboard)/dashboard/usage/components/RequestDetailsTab.js +0 -454
  1393. package/src/app/(dashboard)/dashboard/usage/components/UsageChart.js +0 -155
  1394. package/src/app/(dashboard)/dashboard/usage/components/UsageTable.js +0 -253
  1395. package/src/app/(dashboard)/dashboard/usage/page.js +0 -75
  1396. package/src/app/(dashboard)/layout.js +0 -6
  1397. package/src/app/api/auth/login/route.js +0 -76
  1398. package/src/app/api/auth/logout/route.js +0 -14
  1399. package/src/app/api/auth/oidc/callback/route.js +0 -87
  1400. package/src/app/api/auth/oidc/start/route.js +0 -52
  1401. package/src/app/api/auth/oidc/test/route.js +0 -86
  1402. package/src/app/api/auth/status/route.js +0 -45
  1403. package/src/app/api/cache/stats/route.js +0 -13
  1404. package/src/app/api/changelog/route.js +0 -48
  1405. package/src/app/api/cli-tools/all-statuses/route.js +0 -46
  1406. package/src/app/api/cli-tools/antigravity-mitm/alias/route.js +0 -53
  1407. package/src/app/api/cli-tools/antigravity-mitm/route.js +0 -202
  1408. package/src/app/api/cli-tools/claude-settings/route.js +0 -203
  1409. package/src/app/api/cli-tools/cline-settings/route.js +0 -133
  1410. package/src/app/api/cli-tools/codex-gateway/accounts/route.js +0 -16
  1411. package/src/app/api/cli-tools/codex-settings/route.js +0 -271
  1412. package/src/app/api/cli-tools/copilot-settings/route.js +0 -153
  1413. package/src/app/api/cli-tools/cowork-mcp-registry/route.js +0 -77
  1414. package/src/app/api/cli-tools/cowork-mcp-tools/route.js +0 -95
  1415. package/src/app/api/cli-tools/cowork-settings/route.js +0 -412
  1416. package/src/app/api/cli-tools/deepseek-tui-settings/route.js +0 -164
  1417. package/src/app/api/cli-tools/droid-settings/route.js +0 -213
  1418. package/src/app/api/cli-tools/hermes-settings/route.js +0 -175
  1419. package/src/app/api/cli-tools/jcode-settings/route.js +0 -216
  1420. package/src/app/api/cli-tools/kilo-settings/route.js +0 -131
  1421. package/src/app/api/cli-tools/openclaw-settings/route.js +0 -292
  1422. package/src/app/api/cli-tools/opencode-settings/route.js +0 -259
  1423. package/src/app/api/combos/[id]/route.js +0 -81
  1424. package/src/app/api/combos/route.js +0 -48
  1425. package/src/app/api/context/[id]/route.js +0 -35
  1426. package/src/app/api/context/bulk/route.js +0 -25
  1427. package/src/app/api/context/route.js +0 -33
  1428. package/src/app/api/dashboard/chat/completions/route.js +0 -74
  1429. package/src/app/api/dashboard/cli-tools/keys/route.js +0 -33
  1430. package/src/app/api/dashboard/media/[operation]/route.js +0 -60
  1431. package/src/app/api/headroom/extras/route.js +0 -46
  1432. package/src/app/api/headroom/proxy/[...path]/route.js +0 -104
  1433. package/src/app/api/headroom/restart/route.js +0 -35
  1434. package/src/app/api/headroom/start/route.js +0 -35
  1435. package/src/app/api/headroom/status/route.js +0 -18
  1436. package/src/app/api/headroom/stop/route.js +0 -14
  1437. package/src/app/api/health/ready/route.js +0 -21
  1438. package/src/app/api/health/route.js +0 -15
  1439. package/src/app/api/init/route.js +0 -12
  1440. package/src/app/api/keys/[id]/rotate/route.js +0 -14
  1441. package/src/app/api/keys/[id]/route.js +0 -119
  1442. package/src/app/api/keys/route.js +0 -56
  1443. package/src/app/api/locale/route.js +0 -30
  1444. package/src/app/api/mcp/[plugin]/message/route.js +0 -21
  1445. package/src/app/api/mcp/[plugin]/sse/route.js +0 -37
  1446. package/src/app/api/media-providers/tts/deepgram/voices/route.js +0 -65
  1447. package/src/app/api/media-providers/tts/elevenlabs/voices/route.js +0 -71
  1448. package/src/app/api/media-providers/tts/inworld/voices/route.js +0 -61
  1449. package/src/app/api/media-providers/tts/minimax/voices/route.js +0 -113
  1450. package/src/app/api/media-providers/tts/voices/route.js +0 -99
  1451. package/src/app/api/metrics/route.js +0 -33
  1452. package/src/app/api/models/alias/route.js +0 -53
  1453. package/src/app/api/models/availability/route.js +0 -103
  1454. package/src/app/api/models/custom/route.js +0 -48
  1455. package/src/app/api/models/disabled/route.js +0 -50
  1456. package/src/app/api/models/route.js +0 -68
  1457. package/src/app/api/models/test/ping.js +0 -191
  1458. package/src/app/api/models/test/route.js +0 -14
  1459. package/src/app/api/oauth/[provider]/[action]/route.js +0 -340
  1460. package/src/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +0 -19
  1461. package/src/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1462. package/src/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +0 -23
  1463. package/src/app/api/oauth/antigravity/bulk-import/latest/route.js +0 -24
  1464. package/src/app/api/oauth/antigravity/bulk-import/route.js +0 -51
  1465. package/src/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +0 -19
  1466. package/src/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1467. package/src/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +0 -25
  1468. package/src/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +0 -27
  1469. package/src/app/api/oauth/cloudflare-ai/bulk-import/route.js +0 -56
  1470. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +0 -19
  1471. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1472. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +0 -23
  1473. package/src/app/api/oauth/codebuddy/bulk-import/latest/route.js +0 -25
  1474. package/src/app/api/oauth/codebuddy/bulk-import/route.js +0 -51
  1475. package/src/app/api/oauth/codebuddy/bulk-token/route.js +0 -118
  1476. package/src/app/api/oauth/codebuddy/quota-cookie/route.js +0 -133
  1477. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +0 -19
  1478. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1479. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +0 -26
  1480. package/src/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +0 -27
  1481. package/src/app/api/oauth/codebuddy-cn/bulk-import/route.js +0 -61
  1482. package/src/app/api/oauth/codebuddy-cn/bulk-token/route.js +0 -119
  1483. package/src/app/api/oauth/codebuddy-cn/quota-cookie/route.js +0 -28
  1484. package/src/app/api/oauth/codex/import-token/route.js +0 -96
  1485. package/src/app/api/oauth/cursor/auto-import/route.js +0 -257
  1486. package/src/app/api/oauth/cursor/import/route.js +0 -100
  1487. package/src/app/api/oauth/gitlab/pat/route.js +0 -62
  1488. package/src/app/api/oauth/iflow/cookie/route.js +0 -137
  1489. package/src/app/api/oauth/kiro/auto-import/route.js +0 -85
  1490. package/src/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +0 -19
  1491. package/src/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1492. package/src/app/api/oauth/kiro/bulk-import/[jobId]/route.js +0 -23
  1493. package/src/app/api/oauth/kiro/bulk-import/latest/route.js +0 -25
  1494. package/src/app/api/oauth/kiro/bulk-import/route.js +0 -51
  1495. package/src/app/api/oauth/kiro/import/route.js +0 -110
  1496. package/src/app/api/oauth/kiro/social-authorize/route.js +0 -27
  1497. package/src/app/api/oauth/kiro/social-exchange/route.js +0 -41
  1498. package/src/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +0 -19
  1499. package/src/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1500. package/src/app/api/oauth/qoder/bulk-import/[jobId]/route.js +0 -23
  1501. package/src/app/api/oauth/qoder/bulk-import/latest/route.js +0 -24
  1502. package/src/app/api/oauth/qoder/bulk-import/route.js +0 -49
  1503. package/src/app/api/pricing/route.js +0 -134
  1504. package/src/app/api/provider-nodes/[id]/route.js +0 -101
  1505. package/src/app/api/provider-nodes/route.js +0 -104
  1506. package/src/app/api/provider-nodes/validate/route.js +0 -201
  1507. package/src/app/api/providers/[id]/models/route.js +0 -605
  1508. package/src/app/api/providers/[id]/route.js +0 -251
  1509. package/src/app/api/providers/[id]/test/route.js +0 -23
  1510. package/src/app/api/providers/[id]/test/testUtils.js +0 -811
  1511. package/src/app/api/providers/[id]/test-models/route.js +0 -66
  1512. package/src/app/api/providers/bulk-delete/route.js +0 -60
  1513. package/src/app/api/providers/client/route.js +0 -136
  1514. package/src/app/api/providers/kilo/free-models/route.js +0 -55
  1515. package/src/app/api/providers/route.js +0 -278
  1516. package/src/app/api/providers/suggested-models/filters.js +0 -20
  1517. package/src/app/api/providers/suggested-models/route.js +0 -34
  1518. package/src/app/api/providers/test-batch/route.js +0 -131
  1519. package/src/app/api/providers/validate/route.js +0 -637
  1520. package/src/app/api/proxy-pools/[id]/route.js +0 -135
  1521. package/src/app/api/proxy-pools/[id]/test/route.js +0 -72
  1522. package/src/app/api/proxy-pools/cloudflare-deploy/route.js +0 -145
  1523. package/src/app/api/proxy-pools/deno-deploy/route.js +0 -175
  1524. package/src/app/api/proxy-pools/route.js +0 -112
  1525. package/src/app/api/proxy-pools/vercel-deploy/route.js +0 -142
  1526. package/src/app/api/pxpipe/health/route.js +0 -16
  1527. package/src/app/api/pxpipe/install/route.js +0 -20
  1528. package/src/app/api/pxpipe/logs/route.js +0 -21
  1529. package/src/app/api/pxpipe/restart/route.js +0 -16
  1530. package/src/app/api/pxpipe/start/route.js +0 -26
  1531. package/src/app/api/pxpipe/stats/route.js +0 -17
  1532. package/src/app/api/pxpipe/status/route.js +0 -21
  1533. package/src/app/api/pxpipe/stop/route.js +0 -16
  1534. package/src/app/api/settings/database/route.js +0 -36
  1535. package/src/app/api/settings/proxy-test/route.js +0 -23
  1536. package/src/app/api/settings/require-login/route.js +0 -15
  1537. package/src/app/api/settings/route.js +0 -115
  1538. package/src/app/api/shutdown/route.js +0 -24
  1539. package/src/app/api/tags/route.js +0 -18
  1540. package/src/app/api/terminal/auth/setup/route.js +0 -72
  1541. package/src/app/api/terminal/auth/status/route.js +0 -27
  1542. package/src/app/api/terminal/auth/unlock/route.js +0 -69
  1543. package/src/app/api/terminal/session/[id]/input/route.js +0 -32
  1544. package/src/app/api/terminal/session/[id]/resize/route.js +0 -18
  1545. package/src/app/api/terminal/session/[id]/route.js +0 -37
  1546. package/src/app/api/terminal/session/[id]/stream/route.js +0 -100
  1547. package/src/app/api/terminal/session/route.js +0 -30
  1548. package/src/app/api/translator/console-logs/route.js +0 -24
  1549. package/src/app/api/translator/console-logs/stream/route.js +0 -79
  1550. package/src/app/api/translator/load/route.js +0 -45
  1551. package/src/app/api/translator/save/route.js +0 -44
  1552. package/src/app/api/translator/send/route.js +0 -94
  1553. package/src/app/api/translator/translate/route.js +0 -90
  1554. package/src/app/api/tunnel/disable/route.js +0 -12
  1555. package/src/app/api/tunnel/enable/route.js +0 -16
  1556. package/src/app/api/tunnel/status/route.js +0 -13
  1557. package/src/app/api/tunnel/tailscale-check/route.js +0 -50
  1558. package/src/app/api/tunnel/tailscale-disable/route.js +0 -12
  1559. package/src/app/api/tunnel/tailscale-enable/route.js +0 -12
  1560. package/src/app/api/tunnel/tailscale-install/route.js +0 -72
  1561. package/src/app/api/usage/[connectionId]/route.js +0 -40
  1562. package/src/app/api/usage/aggregate/route.js +0 -126
  1563. package/src/app/api/usage/chart/route.js +0 -21
  1564. package/src/app/api/usage/history/route.js +0 -12
  1565. package/src/app/api/usage/logs/route.js +0 -12
  1566. package/src/app/api/usage/providers/route.js +0 -42
  1567. package/src/app/api/usage/request-details/route.js +0 -57
  1568. package/src/app/api/usage/request-logs/route.js +0 -13
  1569. package/src/app/api/usage/stats/route.js +0 -23
  1570. package/src/app/api/usage/stream/route.js +0 -142
  1571. package/src/app/api/v1/api/chat/route.js +0 -37
  1572. package/src/app/api/v1/audio/speech/route.js +0 -16
  1573. package/src/app/api/v1/audio/transcriptions/route.js +0 -19
  1574. package/src/app/api/v1/audio/voices/route.js +0 -68
  1575. package/src/app/api/v1/chat/completions/route.js +0 -35
  1576. package/src/app/api/v1/embeddings/route.js +0 -21
  1577. package/src/app/api/v1/images/generations/route.js +0 -16
  1578. package/src/app/api/v1/messages/count_tokens/route.js +0 -59
  1579. package/src/app/api/v1/messages/route.js +0 -36
  1580. package/src/app/api/v1/models/[kind]/route.js +0 -55
  1581. package/src/app/api/v1/models/info/route.js +0 -110
  1582. package/src/app/api/v1/models/route.js +0 -497
  1583. package/src/app/api/v1/responses/compact/route.js +0 -55
  1584. package/src/app/api/v1/responses/route.js +0 -30
  1585. package/src/app/api/v1/route.js +0 -1
  1586. package/src/app/api/v1/search/route.js +0 -21
  1587. package/src/app/api/v1/web/fetch/route.js +0 -21
  1588. package/src/app/api/v1beta/models/[...path]/route.js +0 -368
  1589. package/src/app/api/v1beta/models/route.js +0 -44
  1590. package/src/app/api/version/route.js +0 -198
  1591. package/src/app/api/version/shutdown/route.js +0 -15
  1592. package/src/app/api/version/update/route.js +0 -21
  1593. package/src/app/callback/page.js +0 -149
  1594. package/src/app/dashboard/settings/pricing/page.js +0 -174
  1595. package/src/app/globals.css +0 -659
  1596. package/src/app/landing/components/AnimatedBackground.js +0 -57
  1597. package/src/app/landing/components/Features.js +0 -133
  1598. package/src/app/landing/components/FlowAnimation.js +0 -175
  1599. package/src/app/landing/components/Footer.js +0 -61
  1600. package/src/app/landing/components/GetStarted.js +0 -97
  1601. package/src/app/landing/components/HeroSection.js +0 -72
  1602. package/src/app/landing/components/HowItWorks.js +0 -66
  1603. package/src/app/landing/components/Navigation.js +0 -77
  1604. package/src/app/landing/page.js +0 -106
  1605. package/src/app/layout.js +0 -48
  1606. package/src/app/login/page.js +0 -197
  1607. package/src/app/manifest.js +0 -30
  1608. package/src/app/page.js +0 -5
  1609. package/src/dashboardGuard.js +0 -288
  1610. package/src/i18n/RuntimeI18nProvider.js +0 -27
  1611. package/src/i18n/config.js +0 -146
  1612. package/src/i18n/runtime.js +0 -162
  1613. package/src/lib/alerter.js +0 -122
  1614. package/src/lib/appUpdater.js +0 -204
  1615. package/src/lib/auth/dashboardSession.js +0 -68
  1616. package/src/lib/auth/loginLimiter.js +0 -52
  1617. package/src/lib/auth/oidc.js +0 -303
  1618. package/src/lib/auth/terminalSession.js +0 -88
  1619. package/src/lib/autoclaw/constants.js +0 -63
  1620. package/src/lib/consoleLogBuffer.js +0 -79
  1621. package/src/lib/dataDir.js +0 -29
  1622. package/src/lib/db/adapters/betterSqliteAdapter.js +0 -58
  1623. package/src/lib/db/adapters/bunSqliteAdapter.js +0 -65
  1624. package/src/lib/db/adapters/nodeSqliteAdapter.js +0 -86
  1625. package/src/lib/db/adapters/sqljsAdapter.js +0 -207
  1626. package/src/lib/db/backup.js +0 -36
  1627. package/src/lib/db/dataDirMigration.js +0 -52
  1628. package/src/lib/db/driver.js +0 -131
  1629. package/src/lib/db/helpers/jsonCol.js +0 -9
  1630. package/src/lib/db/helpers/kvStore.js +0 -39
  1631. package/src/lib/db/helpers/metaStore.js +0 -22
  1632. package/src/lib/db/index.js +0 -218
  1633. package/src/lib/db/maintenance.js +0 -78
  1634. package/src/lib/db/migrate.js +0 -295
  1635. package/src/lib/db/migrations/001-initial.js +0 -17
  1636. package/src/lib/db/migrations/index.js +0 -10
  1637. package/src/lib/db/paths.js +0 -21
  1638. package/src/lib/db/repos/aliasRepo.js +0 -62
  1639. package/src/lib/db/repos/apiKeysRepo.js +0 -193
  1640. package/src/lib/db/repos/combosRepo.js +0 -73
  1641. package/src/lib/db/repos/connectionsRepo.js +0 -247
  1642. package/src/lib/db/repos/contextFilesRepo.js +0 -124
  1643. package/src/lib/db/repos/disabledModelsRepo.js +0 -56
  1644. package/src/lib/db/repos/nodesRepo.js +0 -95
  1645. package/src/lib/db/repos/pricingRepo.js +0 -108
  1646. package/src/lib/db/repos/proxyPoolsRepo.js +0 -103
  1647. package/src/lib/db/repos/quotaCacheRepo.js +0 -80
  1648. package/src/lib/db/repos/requestDetailsRepo.js +0 -275
  1649. package/src/lib/db/repos/settingsRepo.js +0 -120
  1650. package/src/lib/db/repos/usageRepo.js +0 -935
  1651. package/src/lib/db/schema.js +0 -193
  1652. package/src/lib/db/version.js +0 -21
  1653. package/src/lib/disabledModelsDb.js +0 -4
  1654. package/src/lib/headroom/detect.js +0 -192
  1655. package/src/lib/headroom/process.js +0 -327
  1656. package/src/lib/localDb.js +0 -26
  1657. package/src/lib/mcp/stdioSseBridge.js +0 -198
  1658. package/src/lib/mitmAliasCache.js +0 -46
  1659. package/src/lib/network/connectionProxy.js +0 -187
  1660. package/src/lib/network/initOutboundProxy.js +0 -25
  1661. package/src/lib/network/outboundProxy.js +0 -82
  1662. package/src/lib/network/proxyTest.js +0 -91
  1663. package/src/lib/oauth/constants/oauth.js +0 -337
  1664. package/src/lib/oauth/constants/xai.js +0 -61
  1665. package/src/lib/oauth/providers.js +0 -1821
  1666. package/src/lib/oauth/services/antigravity.js +0 -321
  1667. package/src/lib/oauth/services/antigravityBulkImportManager.js +0 -364
  1668. package/src/lib/oauth/services/autoclawTokenMonitor.js +0 -145
  1669. package/src/lib/oauth/services/bulkImportBrowserEngine.js +0 -756
  1670. package/src/lib/oauth/services/claude.js +0 -136
  1671. package/src/lib/oauth/services/cloudflareAiBulkImportManager.js +0 -503
  1672. package/src/lib/oauth/services/codebuddyAutomation.js +0 -6
  1673. package/src/lib/oauth/services/codebuddyBulkImportManager.js +0 -1033
  1674. package/src/lib/oauth/services/codebuddyCnBulkImportManager.js +0 -2088
  1675. package/src/lib/oauth/services/codebuddyCnPhoneAutomation.js +0 -1294
  1676. package/src/lib/oauth/services/codex.js +0 -144
  1677. package/src/lib/oauth/services/cursor.js +0 -179
  1678. package/src/lib/oauth/services/displayEnv.js +0 -134
  1679. package/src/lib/oauth/services/fiveSimClient.js +0 -567
  1680. package/src/lib/oauth/services/gemini.js +0 -240
  1681. package/src/lib/oauth/services/github.js +0 -225
  1682. package/src/lib/oauth/services/googleAutomation.js +0 -9
  1683. package/src/lib/oauth/services/iflow.js +0 -202
  1684. package/src/lib/oauth/services/index.js +0 -17
  1685. package/src/lib/oauth/services/kiro.js +0 -334
  1686. package/src/lib/oauth/services/kiroBulkImportManager.js +0 -1522
  1687. package/src/lib/oauth/services/kiroConnections.js +0 -93
  1688. package/src/lib/oauth/services/kiroGoogleAutomation.js +0 -2587
  1689. package/src/lib/oauth/services/oauth.js +0 -157
  1690. package/src/lib/oauth/services/openai.js +0 -123
  1691. package/src/lib/oauth/services/proxyUtils.js +0 -26
  1692. package/src/lib/oauth/services/qoder.js +0 -233
  1693. package/src/lib/oauth/services/qoderBulkImportManager.js +0 -340
  1694. package/src/lib/oauth/services/qwen.js +0 -170
  1695. package/src/lib/oauth/services/socksHttpBridge.js +0 -165
  1696. package/src/lib/oauth/services/tempmailClient.js +0 -288
  1697. package/src/lib/oauth/services/xai.js +0 -238
  1698. package/src/lib/oauth/utils/banner.js +0 -63
  1699. package/src/lib/oauth/utils/pkce.js +0 -39
  1700. package/src/lib/oauth/utils/server.js +0 -415
  1701. package/src/lib/oauth/utils/ui.js +0 -48
  1702. package/src/lib/providerConnectionSanitizer.js +0 -180
  1703. package/src/lib/providerNormalization.js +0 -45
  1704. package/src/lib/pxpipe/events.js +0 -125
  1705. package/src/lib/pxpipe/install.js +0 -123
  1706. package/src/lib/pxpipe/loader.js +0 -70
  1707. package/src/lib/pxpipe/service.js +0 -49
  1708. package/src/lib/qoder/constants.js +0 -64
  1709. package/src/lib/qoder/cosy.js +0 -175
  1710. package/src/lib/qoder/encoding.js +0 -55
  1711. package/src/lib/requestDetailsDb.js +0 -4
  1712. package/src/lib/responseCache.js +0 -169
  1713. package/src/lib/safeFetch.js +0 -167
  1714. package/src/lib/systemSpecs.js +0 -167
  1715. package/src/lib/terminal/ptyBridge.py +0 -163
  1716. package/src/lib/terminal/sessionManager.js +0 -434
  1717. package/src/lib/tunnel/cloudflare/cloudflared.js +0 -460
  1718. package/src/lib/tunnel/cloudflare/config.js +0 -9
  1719. package/src/lib/tunnel/cloudflare/healthCheck.js +0 -29
  1720. package/src/lib/tunnel/cloudflare/manager.js +0 -151
  1721. package/src/lib/tunnel/cloudflare/pid.js +0 -23
  1722. package/src/lib/tunnel/index.js +0 -48
  1723. package/src/lib/tunnel/shared/dnsResolver.js +0 -17
  1724. package/src/lib/tunnel/shared/internetCheck.js +0 -26
  1725. package/src/lib/tunnel/shared/state.js +0 -41
  1726. package/src/lib/tunnel/shared/watchdogConfig.js +0 -8
  1727. package/src/lib/tunnel/tailscale/config.js +0 -7
  1728. package/src/lib/tunnel/tailscale/healthCheck.js +0 -29
  1729. package/src/lib/tunnel/tailscale/manager.js +0 -129
  1730. package/src/lib/tunnel/tailscale/tailscale.js +0 -790
  1731. package/src/lib/updater/updater.js +0 -327
  1732. package/src/lib/usage/fetcher.js +0 -208
  1733. package/src/lib/usage/quotaRefresh.js +0 -100
  1734. package/src/lib/usage/quotaService.js +0 -206
  1735. package/src/lib/usageDb.js +0 -7
  1736. package/src/mitm/antigravityIdeVersion.js +0 -50
  1737. package/src/mitm/cert/generate.js +0 -32
  1738. package/src/mitm/cert/install.js +0 -274
  1739. package/src/mitm/cert/rootCA.js +0 -173
  1740. package/src/mitm/config.js +0 -87
  1741. package/src/mitm/dbReader.js +0 -22
  1742. package/src/mitm/dns/dnsConfig.js +0 -266
  1743. package/src/mitm/handlers/antigravity.js +0 -33
  1744. package/src/mitm/handlers/base.js +0 -226
  1745. package/src/mitm/handlers/copilot.js +0 -35
  1746. package/src/mitm/handlers/cursor.js +0 -15
  1747. package/src/mitm/handlers/kiro.js +0 -533
  1748. package/src/mitm/logger.js +0 -106
  1749. package/src/mitm/manager.js +0 -862
  1750. package/src/mitm/paths.js +0 -32
  1751. package/src/mitm/server.js +0 -447
  1752. package/src/mitm/winElevated.js +0 -81
  1753. package/src/models/index.js +0 -38
  1754. package/src/proxy.js +0 -5
  1755. package/src/shared/components/AddCustomEmbeddingModal.js +0 -184
  1756. package/src/shared/components/Avatar.js +0 -88
  1757. package/src/shared/components/Badge.js +0 -54
  1758. package/src/shared/components/BulkAccountAutomationModal.js +0 -640
  1759. package/src/shared/components/Button.js +0 -57
  1760. package/src/shared/components/Card.js +0 -116
  1761. package/src/shared/components/ChangelogModal.js +0 -108
  1762. package/src/shared/components/CodeBuddyCnPhoneRegisterModal.js +0 -563
  1763. package/src/shared/components/CodeBuddyQuotaCookieModal.js +0 -109
  1764. package/src/shared/components/ComboFormModal.js +0 -176
  1765. package/src/shared/components/CursorAuthModal.js +0 -213
  1766. package/src/shared/components/Drawer.js +0 -82
  1767. package/src/shared/components/EditConnectionModal.js +0 -287
  1768. package/src/shared/components/Footer.js +0 -132
  1769. package/src/shared/components/GitLabAuthModal.js +0 -194
  1770. package/src/shared/components/Header.js +0 -399
  1771. package/src/shared/components/HeaderLanguage.js +0 -48
  1772. package/src/shared/components/HeaderMenu.js +0 -127
  1773. package/src/shared/components/IFlowCookieModal.js +0 -132
  1774. package/src/shared/components/Input.js +0 -76
  1775. package/src/shared/components/KiroAuthModal.js +0 -1169
  1776. package/src/shared/components/KiroOAuthWrapper.js +0 -150
  1777. package/src/shared/components/KiroSocialOAuthModal.js +0 -205
  1778. package/src/shared/components/LanguageSwitcher.js +0 -192
  1779. package/src/shared/components/Loading.js +0 -75
  1780. package/src/shared/components/ManualConfigModal.js +0 -44
  1781. package/src/shared/components/McpMarketplaceModal.js +0 -255
  1782. package/src/shared/components/Modal.js +0 -196
  1783. package/src/shared/components/ModelSelectModal.js +0 -547
  1784. package/src/shared/components/NoAuthProxyCard.js +0 -134
  1785. package/src/shared/components/OAuthModal.js +0 -709
  1786. package/src/shared/components/Pagination.js +0 -150
  1787. package/src/shared/components/PricingModal.js +0 -209
  1788. package/src/shared/components/ProviderIcon.js +0 -68
  1789. package/src/shared/components/ProviderInfoCard.js +0 -82
  1790. package/src/shared/components/RequestLogger.js +0 -122
  1791. package/src/shared/components/SegmentedControl.js +0 -53
  1792. package/src/shared/components/Select.js +0 -67
  1793. package/src/shared/components/Sidebar.js +0 -486
  1794. package/src/shared/components/ThemeProvider.js +0 -15
  1795. package/src/shared/components/ThemeToggle.js +0 -42
  1796. package/src/shared/components/Toggle.js +0 -95
  1797. package/src/shared/components/Tooltip.js +0 -25
  1798. package/src/shared/components/UsageStats.js +0 -571
  1799. package/src/shared/components/index.js +0 -46
  1800. package/src/shared/components/layouts/AuthLayout.js +0 -29
  1801. package/src/shared/components/layouts/DashboardLayout.js +0 -121
  1802. package/src/shared/components/layouts/index.js +0 -4
  1803. package/src/shared/constants/automationProviders.js +0 -23
  1804. package/src/shared/constants/cliTools.js +0 -397
  1805. package/src/shared/constants/colors.js +0 -77
  1806. package/src/shared/constants/config.js +0 -98
  1807. package/src/shared/constants/coworkPlugins.js +0 -75
  1808. package/src/shared/constants/index.js +0 -4
  1809. package/src/shared/constants/locales.js +0 -36
  1810. package/src/shared/constants/mitmToolHosts.js +0 -12
  1811. package/src/shared/constants/models.js +0 -38
  1812. package/src/shared/constants/pricing.js +0 -311
  1813. package/src/shared/constants/providers.js +0 -450
  1814. package/src/shared/constants/ttsProviders.js +0 -138
  1815. package/src/shared/hooks/index.js +0 -2
  1816. package/src/shared/hooks/useCopyToClipboard.js +0 -43
  1817. package/src/shared/hooks/useModelLockUntil.js +0 -18
  1818. package/src/shared/hooks/useTheme.js +0 -60
  1819. package/src/shared/services/bootstrap.js +0 -12
  1820. package/src/shared/services/initializeApp.js +0 -294
  1821. package/src/shared/utils/api.js +0 -93
  1822. package/src/shared/utils/apiKey.js +0 -98
  1823. package/src/shared/utils/asyncPolling.js +0 -27
  1824. package/src/shared/utils/clineAuth.js +0 -37
  1825. package/src/shared/utils/cn.js +0 -11
  1826. package/src/shared/utils/codexCliConfig.js +0 -44
  1827. package/src/shared/utils/connectionStatus.js +0 -168
  1828. package/src/shared/utils/dashboardMedia.js +0 -19
  1829. package/src/shared/utils/index.js +0 -40
  1830. package/src/shared/utils/machine.js +0 -6
  1831. package/src/shared/utils/machineId.js +0 -66
  1832. package/src/shared/utils/modelLockTimer.js +0 -32
  1833. package/src/shared/utils/providerModelsFetcher.js +0 -30
  1834. package/src/shared/utils/usageStats.js +0 -10
  1835. package/src/sse/handlers/chat.js +0 -445
  1836. package/src/sse/handlers/embeddings.js +0 -141
  1837. package/src/sse/handlers/fetch.js +0 -213
  1838. package/src/sse/handlers/imageGeneration.js +0 -142
  1839. package/src/sse/handlers/search.js +0 -206
  1840. package/src/sse/handlers/streamFailure.js +0 -34
  1841. package/src/sse/handlers/stt.js +0 -88
  1842. package/src/sse/handlers/tts.js +0 -114
  1843. package/src/sse/services/auth.js +0 -576
  1844. package/src/sse/services/codexGateway.js +0 -215
  1845. package/src/sse/services/model.js +0 -99
  1846. package/src/sse/services/tokenRefresh.js +0 -319
  1847. package/src/sse/utils/logger.js +0 -75
  1848. package/src/store/headerSearchStore.js +0 -19
  1849. package/src/store/index.js +0 -6
  1850. package/src/store/notificationStore.js +0 -45
  1851. package/src/store/providerStore.js +0 -55
  1852. package/src/store/settingsStore.js +0 -51
  1853. package/src/store/themeStore.js +0 -54
  1854. package/src/store/userStore.js +0 -20
  1855. package/start.sh +0 -4
  1856. /package/cli/app/.next-cli-build/static/{SC3btW1lCuB9q-iyIwwWK → sRgS_5eNahHOIlOLEqVvI}/_buildManifest.js +0 -0
  1857. /package/cli/app/.next-cli-build/static/{SC3btW1lCuB9q-iyIwwWK → sRgS_5eNahHOIlOLEqVvI}/_ssgManifest.js +0 -0
@@ -1,1571 +0,0 @@
1
- "use client";
2
-
3
- import { useState, useEffect, useCallback, useRef, useMemo } from "react";
4
- import ProviderIcon from "@/shared/components/ProviderIcon";
5
- import QuotaTable from "./QuotaTable";
6
- import Toggle from "@/shared/components/Toggle";
7
- import {
8
- parseQuotaData,
9
- calculatePercentage,
10
- getRemainingPercentage,
11
- } from "./utils";
12
- import Card from "@/shared/components/Card";
13
- import { EditConnectionModal } from "@/shared/components";
14
- import {
15
- AI_PROVIDERS,
16
- USAGE_SUPPORTED_PROVIDERS,
17
- } from "@/shared/constants/providers";
18
-
19
- function getConnectionLabel(connection) {
20
- const isEmail = (value) =>
21
- typeof value === "string" && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
22
- if (isEmail(connection.email)) return connection.email;
23
- if (isEmail(connection.name)) return connection.name;
24
- return connection.name;
25
- }
26
-
27
- function getConnectionQuotaRemaining(connection, quotaData) {
28
- const quota = quotaData[connection.id]?.quotas?.[0];
29
- if (!quota) return Number.POSITIVE_INFINITY;
30
- if (typeof quota.remaining === "number") return quota.remaining;
31
- return Number.POSITIVE_INFINITY;
32
- }
33
-
34
- function mergeQuotaRows(rows = []) {
35
- const merged = new Map();
36
-
37
- rows.forEach((quota) => {
38
- if (!quota?.name) return;
39
-
40
- const current = merged.get(quota.name) || {
41
- name: quota.name,
42
- used: 0,
43
- total: 0,
44
- resetAt: quota.resetAt || null,
45
- remainingPercentage: null,
46
- unlimited: false,
47
- _pctSum: 0,
48
- _pctCount: 0,
49
- };
50
-
51
- current.used += Number(quota.used) || 0;
52
- current.total += Number(quota.total) || 0;
53
- if (quota.unlimited === true) current.unlimited = true;
54
-
55
- if (quota.remainingPercentage != null && Number.isFinite(Number(quota.remainingPercentage))) {
56
- current._pctSum += Number(quota.remainingPercentage);
57
- current._pctCount += 1;
58
- }
59
-
60
- if (quota.resetAt) {
61
- if (!current.resetAt || new Date(quota.resetAt).getTime() < new Date(current.resetAt).getTime()) {
62
- current.resetAt = quota.resetAt;
63
- }
64
- }
65
-
66
- merged.set(quota.name, current);
67
- });
68
-
69
- return [...merged.values()].map((row) => {
70
- const { _pctSum, _pctCount, ...rest } = row;
71
- if (rest.unlimited) {
72
- rest.remainingPercentage = 100;
73
- rest.total = 0;
74
- } else if (rest.total > 0) {
75
- rest.remainingPercentage = ((rest.total - rest.used) / rest.total) * 100;
76
- } else if (_pctCount > 0) {
77
- rest.remainingPercentage = _pctSum / _pctCount;
78
- } else {
79
- rest.remainingPercentage = 0;
80
- }
81
- return rest;
82
- });
83
- }
84
-
85
- function getProviderDisplayName(provider) {
86
- return AI_PROVIDERS[provider]?.name || provider;
87
- }
88
-
89
- function getUrgentQuotaRows(quotas, limit = 3) {
90
- return quotas
91
- .map((quota, index) => ({ quota, index }))
92
- .sort((a, b) => {
93
- const remainingDiff = getRemainingPercentage(a.quota) - getRemainingPercentage(b.quota);
94
- if (remainingDiff !== 0) return remainingDiff;
95
-
96
- const resetA = a.quota.resetAt ? new Date(a.quota.resetAt).getTime() : Number.POSITIVE_INFINITY;
97
- const resetB = b.quota.resetAt ? new Date(b.quota.resetAt).getTime() : Number.POSITIVE_INFINITY;
98
- if (resetA !== resetB) return resetA - resetB;
99
- return a.index - b.index;
100
- })
101
- .slice(0, limit)
102
- .map(({ quota }) => quota);
103
- }
104
-
105
- function buildProviderAggregateCard(provider, providerConnections, quotaData, loading, errors) {
106
- if (!providerConnections.length) return null;
107
- const allQuotas = [];
108
- const errorMessages = [];
109
- let message = null;
110
- let isLoading = false;
111
-
112
- providerConnections.forEach((connection) => {
113
- const quotaEntry = quotaData[connection.id];
114
- if (Array.isArray(quotaEntry?.quotas)) {
115
- allQuotas.push(...quotaEntry.quotas);
116
- }
117
- if (quotaEntry?.message && !message) {
118
- message = quotaEntry.message;
119
- }
120
- if (errors[connection.id]) {
121
- errorMessages.push(errors[connection.id]);
122
- }
123
- if (loading[connection.id]) {
124
- isLoading = true;
125
- }
126
- });
127
-
128
- return {
129
- id: `${provider}-aggregate`,
130
- provider,
131
- name: getProviderDisplayName(provider),
132
- email: `${providerConnections.length} accounts`,
133
- isActive: providerConnections.some((connection) => connection.isActive ?? true),
134
- isAggregate: true,
135
- quota: {
136
- quotas: mergeQuotaRows(allQuotas),
137
- message: allQuotas.length === 0 ? (message || null) : null,
138
- },
139
- isLoading,
140
- error: !allQuotas.length && errorMessages.length > 0 ? errorMessages[0] : null,
141
- connectionIds: providerConnections.map((connection) => connection.id),
142
- };
143
- }
144
-
145
- function buildProviderAggregateCards(connections, quotaData, loading, errors) {
146
- const groups = new Map();
147
-
148
- connections.forEach((connection) => {
149
- if (!connection.provider) return;
150
- if (!groups.has(connection.provider)) {
151
- groups.set(connection.provider, []);
152
- }
153
- groups.get(connection.provider).push(connection);
154
- });
155
-
156
- return [...groups.entries()]
157
- .map(([provider, providerConnections]) =>
158
- buildProviderAggregateCard(provider, providerConnections, quotaData, loading, errors),
159
- )
160
- .filter(Boolean);
161
- }
162
-
163
- function sortVisibleConnections(
164
- connections,
165
- quotaData,
166
- expiringFirst,
167
- providerFilter,
168
- quotaSortMode,
169
- ) {
170
- if (providerFilter === "codex" && quotaSortMode !== "default") {
171
- return [...connections].sort((a, b) => {
172
- const remainingA = getConnectionQuotaRemaining(a, quotaData);
173
- const remainingB = getConnectionQuotaRemaining(b, quotaData);
174
- const remainingDiff =
175
- quotaSortMode === "remaining-asc"
176
- ? remainingA - remainingB
177
- : remainingB - remainingA;
178
-
179
- if (remainingDiff !== 0) return remainingDiff;
180
- return (getConnectionLabel(a) || "").localeCompare(
181
- getConnectionLabel(b) || "",
182
- );
183
- });
184
- }
185
-
186
- if (!expiringFirst) return connections;
187
-
188
- const getEarliestResetTime = (connection) => {
189
- const resetTimes = (quotaData[connection.id]?.quotas || [])
190
- .map((quota) =>
191
- quota.resetAt
192
- ? new Date(quota.resetAt).getTime()
193
- : Number.POSITIVE_INFINITY,
194
- )
195
- .filter((time) => Number.isFinite(time));
196
- return resetTimes.length > 0
197
- ? Math.min(...resetTimes)
198
- : Number.POSITIVE_INFINITY;
199
- };
200
-
201
- return [...connections].sort((a, b) => {
202
- const expiryDiff = getEarliestResetTime(a) - getEarliestResetTime(b);
203
- if (expiryDiff !== 0) return expiryDiff;
204
- return (
205
- (a.provider || "").localeCompare(b.provider || "") ||
206
- (getConnectionLabel(a) || "").localeCompare(getConnectionLabel(b) || "")
207
- );
208
- });
209
- }
210
-
211
- function buildLoadingState(connections) {
212
- const nextLoadingState = {};
213
- connections.forEach((connection) => {
214
- nextLoadingState[connection.id] = true;
215
- });
216
- return nextLoadingState;
217
- }
218
-
219
- function filterQuotaStateByConnections(state, connections) {
220
- const visibleIds = new Set(connections.map((connection) => connection.id));
221
- return Object.fromEntries(
222
- Object.entries(state).filter(([id]) => visibleIds.has(id)),
223
- );
224
- }
225
-
226
- function getConnectionsPageRange(pagination) {
227
- if (!pagination.total) {
228
- return { start: 0, end: 0 };
229
- }
230
-
231
- const start = (pagination.page - 1) * pagination.pageSize + 1;
232
- const end = Math.min(pagination.page * pagination.pageSize, pagination.total);
233
- return { start, end };
234
- }
235
-
236
- function getConnectionsEmptyMessage(totals, providerFilter, accountFilter) {
237
- if (!totals.eligibleConnections) {
238
- return {
239
- icon: "cloud_off",
240
- title: "No Providers Connected",
241
- description:
242
- "Connect to providers with OAuth to track your API quota limits and usage.",
243
- };
244
- }
245
-
246
- if (!totals.providerFilteredConnections) {
247
- return {
248
- icon: "filter_alt_off",
249
- title: "No Accounts Match Current Filters",
250
- description:
251
- providerFilter === "all"
252
- ? "Try changing the account status filter to see more quota trackers."
253
- : `No ${accountFilter === "inactive" ? "turned off" : accountFilter === "active" ? "active" : "matching"} accounts found for ${providerFilter}.`,
254
- };
255
- }
256
-
257
- return {
258
- icon: "filter_alt_off",
259
- title: "No Accounts On This Page",
260
- description:
261
- "Try moving to another page or refreshing the current filters.",
262
- };
263
- }
264
-
265
- function sortRequestFromExpiringFirst(expiringFirst) {
266
- return expiringFirst ? "expiring" : "priority";
267
- }
268
-
269
- function getPageSizeLabel(pageSize, isCustomPageSize) {
270
- return isCustomPageSize ? `Custom: ${pageSize} / page` : `${pageSize} / page`;
271
- }
272
-
273
- function getConnectionsPaginationSummary(pagination) {
274
- const { start, end } = getConnectionsPageRange(pagination);
275
- return `Showing ${start}-${end} of ${pagination.total}`;
276
- }
277
-
278
- function getSafePagination(pagination, fallbackPageSize) {
279
- return (
280
- pagination || {
281
- page: 1,
282
- pageSize: fallbackPageSize,
283
- total: 0,
284
- totalPages: 1,
285
- }
286
- );
287
- }
288
-
289
- function getSafeTotals(totals, fallbackTotal = 0) {
290
- return (
291
- totals || {
292
- eligibleConnections: fallbackTotal,
293
- providerFilteredConnections: fallbackTotal,
294
- }
295
- );
296
- }
297
-
298
- function shouldResetPage(previousValue, nextValue) {
299
- return previousValue !== nextValue;
300
- }
301
-
302
- function getPaginationPageValue(dataPagination, fallbackPage) {
303
- return dataPagination?.page || fallbackPage;
304
- }
305
-
306
- function getProviderOptions(dataProviderOptions) {
307
- return dataProviderOptions || [];
308
- }
309
-
310
- async function reconcileConnectionsPage(fetchConnections, targetPage) {
311
- const nextConnections = await fetchConnections(targetPage);
312
- return nextConnections;
313
- }
314
-
315
- const QUOTA_CACHE_KEY = "quotaCacheData";
316
-
317
- function getQuotaCache() {
318
- if (typeof window === "undefined") return {};
319
- try {
320
- const cached = window.localStorage.getItem(QUOTA_CACHE_KEY);
321
- return cached ? JSON.parse(cached) : {};
322
- } catch (error) {
323
- console.error("Error reading quota cache:", error);
324
- return {};
325
- }
326
- }
327
-
328
- function setQuotaCache(connectionId, quotaEntry) {
329
- if (typeof window === "undefined") return;
330
- try {
331
- const cache = getQuotaCache();
332
- cache[connectionId] = {
333
- ...quotaEntry,
334
- cachedAt: new Date().toISOString(),
335
- };
336
- window.localStorage.setItem(QUOTA_CACHE_KEY, JSON.stringify(cache));
337
- } catch (error) {
338
- console.error("Error writing quota cache:", error);
339
- }
340
- }
341
-
342
- const REFRESH_INTERVAL_MS = 60000; // 60 seconds
343
- const DEPLETED_QUOTA_THRESHOLD = 5; // percent
344
- const AUTO_REFRESH_STORAGE_KEY = "quotaAutoRefresh";
345
- const ACCOUNT_FILTER_OPTIONS = [
346
- { value: "all", label: "All accounts" },
347
- { value: "active", label: "Active" },
348
- { value: "inactive", label: "Turned off" },
349
- ];
350
- const QUOTA_DISPLAY_MODE_OPTIONS = [
351
- { value: "single", label: "Satuan", icon: "account_circle" },
352
- { value: "bulk", label: "Bulk", icon: "stacks" },
353
- ];
354
- const QUOTA_SORT_OPTIONS = [
355
- { value: "default", label: "Default quota order" },
356
- { value: "remaining-asc", label: "% quota: low to high" },
357
- { value: "remaining-desc", label: "% quota: high to low" },
358
- ];
359
- const CONNECTIONS_PAGE_SIZE = 20;
360
- const ACCOUNT_PAGE_SIZE_OPTIONS = [10, 20, 50, 100];
361
- const ACCOUNT_PAGE_SIZE_MAX = 500;
362
-
363
- export default function ProviderLimits() {
364
- const [connections, setConnections] = useState([]);
365
- const [quotaData, setQuotaData] = useState({});
366
- const [loading, setLoading] = useState({});
367
- const [errors, setErrors] = useState({});
368
- const [autoRefresh, setAutoRefresh] = useState(true);
369
- const [lastUpdated, setLastUpdated] = useState(null);
370
- const [hasHydratedAutoRefresh, setHasHydratedAutoRefresh] = useState(false);
371
- const [refreshingAll, setRefreshingAll] = useState(false);
372
- const [countdown, setCountdown] = useState(60);
373
- const [connectionsLoading, setConnectionsLoading] = useState(true);
374
- const [deletingId, setDeletingId] = useState(null);
375
- const [togglingId, setTogglingId] = useState(null);
376
- const [showEditModal, setShowEditModal] = useState(false);
377
- const [selectedConnection, setSelectedConnection] = useState(null);
378
- const [proxyPools, setProxyPools] = useState([]);
379
- const [providerFilter, setProviderFilter] = useState("all");
380
- const [providerOptions, setProviderOptions] = useState([]);
381
- const [displayMode, setDisplayMode] = useState("single");
382
- const [accountFilter, setAccountFilter] = useState("all");
383
- const [quotaSortMode, setQuotaSortMode] = useState("default");
384
- const [expiringFirst, setExpiringFirst] = useState(false);
385
- const [providerMenuOpen, setProviderMenuOpen] = useState(false);
386
- const [mobileActionsOpen, setMobileActionsOpen] = useState(false);
387
- const [expandedQuotaCards, setExpandedQuotaCards] = useState({});
388
- const [bulkToggling, setBulkToggling] = useState(false);
389
- const [serverAggregateData, setServerAggregateData] = useState({});
390
- const [serverAggregateLoading, setServerAggregateLoading] = useState({});
391
- const [page, setPage] = useState(1);
392
- const [pageSize, setPageSize] = useState(CONNECTIONS_PAGE_SIZE);
393
- const [customPageSizeInput, setCustomPageSizeInput] = useState(
394
- String(CONNECTIONS_PAGE_SIZE),
395
- );
396
- const [pagination, setPagination] = useState({
397
- page: 1,
398
- pageSize: CONNECTIONS_PAGE_SIZE,
399
- total: 0,
400
- totalPages: 1,
401
- });
402
- const [totals, setTotals] = useState({
403
- eligibleConnections: 0,
404
- providerFilteredConnections: 0,
405
- });
406
-
407
- const intervalRef = useRef(null);
408
- const countdownRef = useRef(null);
409
-
410
- const fetchConnections = useCallback(
411
- async (targetPage = page) => {
412
- try {
413
- const params = new URLSearchParams({
414
- page: String(targetPage),
415
- pageSize: String(pageSize),
416
- accountStatus: accountFilter,
417
- sort: "priority",
418
- });
419
-
420
- if (providerFilter !== "all") {
421
- params.set("provider", providerFilter);
422
- }
423
-
424
- const response = await fetch(
425
- `/api/providers/client?${params.toString()}`,
426
- );
427
- if (!response.ok) throw new Error("Failed to fetch connections");
428
-
429
- const data = await response.json();
430
- const connectionList = data.connections || [];
431
- const nextPagination = getSafePagination(data.pagination, pageSize);
432
- const nextTotals = getSafeTotals(data.totals, connectionList.length);
433
-
434
- setConnections(connectionList);
435
- setProviderOptions(getProviderOptions(data.providerOptions));
436
- setPagination(nextPagination);
437
- setTotals(nextTotals);
438
- setPage(getPaginationPageValue(data.pagination, targetPage));
439
- return connectionList;
440
- } catch (error) {
441
- console.error("Error fetching connections:", error);
442
- setConnections([]);
443
- setProviderOptions([]);
444
- setPagination({ page: 1, pageSize, total: 0, totalPages: 1 });
445
- setTotals({ eligibleConnections: 0, providerFilteredConnections: 0 });
446
- return [];
447
- }
448
- },
449
- [accountFilter, page, pageSize, providerFilter],
450
- );
451
-
452
- // Fetch quota for a specific connection
453
- const fetchQuota = useCallback(async (connectionId, provider, force = false) => {
454
- setLoading((prev) => ({ ...prev, [connectionId]: true }));
455
- setErrors((prev) => ({ ...prev, [connectionId]: null }));
456
-
457
- try {
458
- console.log(
459
- `[ProviderLimits] Fetching quota for ${provider} (${connectionId})`,
460
- );
461
- const response = await fetch(`/api/usage/${connectionId}${force ? "?refresh=1" : ""}`);
462
-
463
- if (!response.ok) {
464
- const errorData = await response.json().catch(() => ({}));
465
- const errorMsg = errorData.error || response.statusText;
466
-
467
- // Handle different error types gracefully
468
- if (response.status === 404) {
469
- // Connection not found - skip silently
470
- console.warn(
471
- `[ProviderLimits] Connection not found for ${provider}, skipping`,
472
- );
473
- return;
474
- }
475
-
476
- if (response.status === 401) {
477
- // Auth error - show message instead of throwing
478
- console.warn(
479
- `[ProviderLimits] Auth error for ${provider}:`,
480
- errorMsg,
481
- );
482
- const quotaEntry = {
483
- quotas: [],
484
- message: errorMsg,
485
- };
486
- setQuotaData((prev) => ({
487
- ...prev,
488
- [connectionId]: quotaEntry,
489
- }));
490
- setQuotaCache(connectionId, quotaEntry);
491
- return;
492
- }
493
-
494
- throw new Error(`HTTP ${response.status}: ${errorMsg}`);
495
- }
496
-
497
- const data = await response.json();
498
- console.log(`[ProviderLimits] Got quota for ${provider}:`, data);
499
-
500
- // Parse quota data using provider-specific parser
501
- const parsedQuotas = parseQuotaData(provider, data);
502
-
503
- const quotaEntry = {
504
- quotas: parsedQuotas,
505
- plan: data.plan || null,
506
- message: data.message || null,
507
- raw: data,
508
- };
509
-
510
- setQuotaData((prev) => ({
511
- ...prev,
512
- [connectionId]: quotaEntry,
513
- }));
514
- setQuotaCache(connectionId, quotaEntry);
515
- } catch (error) {
516
- console.error(
517
- `[ProviderLimits] Error fetching quota for ${provider} (${connectionId}):`,
518
- error,
519
- );
520
- setErrors((prev) => ({
521
- ...prev,
522
- [connectionId]: error.message || "Failed to fetch quota",
523
- }));
524
- } finally {
525
- setLoading((prev) => ({ ...prev, [connectionId]: false }));
526
- }
527
- }, []);
528
-
529
- // Refresh quota for a specific provider
530
- const refreshProvider = useCallback(
531
- async (connectionId, provider) => {
532
- await fetchQuota(connectionId, provider, true);
533
- setLastUpdated(new Date());
534
- },
535
- [fetchQuota],
536
- );
537
-
538
- // Fetch server-side aggregate quota for bulk display mode
539
- const fetchServerAggregate = useCallback(async (provider, force = false) => {
540
- if (!provider || provider === "all") return;
541
- setServerAggregateLoading((prev) => ({ ...prev, [provider]: true }));
542
- try {
543
- const url = `/api/usage/aggregate?provider=${encodeURIComponent(provider)}${force ? "&refresh=1" : ""}`;
544
- const response = await fetch(url);
545
- if (!response.ok) throw new Error("Failed to fetch aggregate");
546
- const data = await response.json();
547
- const parsedQuotas = parseQuotaData(provider, data);
548
- setServerAggregateData((prev) => ({
549
- ...prev,
550
- [provider]: {
551
- quotas: parsedQuotas,
552
- plan: data.plan || null,
553
- accountCount: data.accountCount || 0,
554
- accountsWithQuota: data.accountsWithQuota || 0,
555
- deadCount: data.deadCount || 0,
556
- },
557
- }));
558
- } catch (error) {
559
- console.error(`[ProviderLimits] Aggregate fetch error for ${provider}:`, error);
560
- } finally {
561
- setServerAggregateLoading((prev) => ({ ...prev, [provider]: false }));
562
- }
563
- }, []);
564
-
565
- const refreshAggregate = useCallback(
566
- async (connectionIds, provider) => {
567
- // In bulk mode, refresh via server-side aggregate (covers ALL accounts)
568
- if (displayMode === "bulk" && provider) {
569
- await fetchServerAggregate(provider, true);
570
- setLastUpdated(new Date());
571
- return;
572
- }
573
-
574
- if (!connectionIds?.length) return;
575
-
576
- setLoading((prev) => ({
577
- ...prev,
578
- ...Object.fromEntries(connectionIds.map((id) => [id, true])),
579
- }));
580
-
581
- await Promise.all(connectionIds.map((id) => fetchQuota(id, provider, true)));
582
- setLastUpdated(new Date());
583
- },
584
- [fetchQuota, displayMode, fetchServerAggregate],
585
- );
586
-
587
- const handleDeleteConnection = useCallback(
588
- async (id) => {
589
- if (!confirm("Delete this connection?")) return;
590
- setDeletingId(id);
591
- try {
592
- const res = await fetch(`/api/providers/${id}`, { method: "DELETE" });
593
- if (res.ok) {
594
- setQuotaData((prev) => {
595
- const next = { ...prev };
596
- delete next[id];
597
- return next;
598
- });
599
- setLoading((prev) => {
600
- const next = { ...prev };
601
- delete next[id];
602
- return next;
603
- });
604
- setErrors((prev) => {
605
- const next = { ...prev };
606
- delete next[id];
607
- return next;
608
- });
609
-
610
- if (typeof window !== "undefined") {
611
- try {
612
- const cache = getQuotaCache();
613
- if (cache[id]) {
614
- delete cache[id];
615
- window.localStorage.setItem(
616
- QUOTA_CACHE_KEY,
617
- JSON.stringify(cache),
618
- );
619
- }
620
- } catch (e) {
621
- console.error("Error deleting cache entry:", e);
622
- }
623
- }
624
-
625
- await reconcileConnectionsPage(fetchConnections, page);
626
- }
627
- } catch (error) {
628
- console.error("Error deleting connection:", error);
629
- } finally {
630
- setDeletingId(null);
631
- }
632
- },
633
- [fetchConnections, page],
634
- );
635
-
636
- const handleToggleConnectionActive = useCallback(
637
- async (id, isActive) => {
638
- setTogglingId(id);
639
- try {
640
- const res = await fetch(`/api/providers/${id}`, {
641
- method: "PUT",
642
- headers: { "Content-Type": "application/json" },
643
- body: JSON.stringify({ isActive }),
644
- });
645
- if (res.ok) {
646
- setQuotaData((prev) => {
647
- const next = { ...prev };
648
- return next;
649
- });
650
- await reconcileConnectionsPage(fetchConnections, page);
651
- }
652
- } catch (error) {
653
- console.error("Error updating connection status:", error);
654
- } finally {
655
- setTogglingId(null);
656
- }
657
- },
658
- [fetchConnections, page],
659
- );
660
-
661
- const handleUpdateConnection = useCallback(
662
- async (formData) => {
663
- if (!selectedConnection?.id) return;
664
- const connectionId = selectedConnection.id;
665
- const provider = selectedConnection.provider;
666
- try {
667
- const res = await fetch(`/api/providers/${connectionId}`, {
668
- method: "PUT",
669
- headers: { "Content-Type": "application/json" },
670
- body: JSON.stringify(formData),
671
- });
672
- if (res.ok) {
673
- await fetchConnections();
674
- setShowEditModal(false);
675
- setSelectedConnection(null);
676
- if (USAGE_SUPPORTED_PROVIDERS.includes(provider)) {
677
- await fetchQuota(connectionId, provider);
678
- }
679
- }
680
- } catch (error) {
681
- console.error("Error saving connection:", error);
682
- }
683
- },
684
- [selectedConnection, fetchConnections, fetchQuota],
685
- );
686
-
687
- useEffect(() => {
688
- let cancelled = false;
689
- fetch("/api/proxy-pools?isActive=true", { cache: "no-store" })
690
- .then((res) => res.json())
691
- .then((data) => {
692
- if (!cancelled && data?.proxyPools) {
693
- setProxyPools(data.proxyPools);
694
- }
695
- })
696
- .catch(() => {});
697
- return () => {
698
- cancelled = true;
699
- };
700
- }, []);
701
-
702
- const refreshAll = useCallback(async () => {
703
- if (refreshingAll) return;
704
-
705
- setRefreshingAll(true);
706
- setCountdown(60);
707
-
708
- try {
709
- const visibleConnections = await fetchConnections(page);
710
-
711
- setLoading(buildLoadingState(visibleConnections));
712
- setErrors((prev) =>
713
- filterQuotaStateByConnections(prev, visibleConnections),
714
- );
715
- setQuotaData((prev) =>
716
- filterQuotaStateByConnections(prev, visibleConnections),
717
- );
718
-
719
- await Promise.all(
720
- visibleConnections.map((conn) => fetchQuota(conn.id, conn.provider, true)),
721
- );
722
-
723
- // Also refresh server-side aggregate if in bulk mode
724
- if (displayMode === "bulk") {
725
- const providers = providerFilter !== "all"
726
- ? [providerFilter]
727
- : providerOptions.map((opt) => opt.value || opt).filter((v) => v !== "all");
728
- await Promise.all(
729
- providers.map((provider) => fetchServerAggregate(provider, true)),
730
- );
731
- }
732
-
733
- setLastUpdated(new Date());
734
- } catch (error) {
735
- console.error("Error refreshing all providers:", error);
736
- } finally {
737
- setRefreshingAll(false);
738
- }
739
- }, [refreshingAll, fetchConnections, fetchQuota, page, displayMode, providerFilter, providerOptions, fetchServerAggregate]);
740
-
741
-
742
- useEffect(() => {
743
- const initializeData = async () => {
744
- setConnectionsLoading(true);
745
- const visibleConnections = await fetchConnections(page);
746
- setConnectionsLoading(false);
747
-
748
- // Always fetch fresh quota on mount, no cache display
749
- setLoading(buildLoadingState(visibleConnections));
750
- setErrors((prev) =>
751
- filterQuotaStateByConnections(prev, visibleConnections),
752
- );
753
- setQuotaData((prev) =>
754
- filterQuotaStateByConnections(prev, visibleConnections),
755
- );
756
-
757
- await Promise.all(
758
- visibleConnections.map((conn) => fetchQuota(conn.id, conn.provider)),
759
- );
760
- setLastUpdated(new Date());
761
- };
762
-
763
- initializeData();
764
- }, [fetchConnections, fetchQuota, page]);
765
-
766
- // When in bulk mode, fetch server-side aggregate for the active provider filter
767
- useEffect(() => {
768
- if (displayMode !== "bulk") return;
769
- const providers = providerFilter !== "all"
770
- ? [providerFilter]
771
- : providerOptions.map((opt) => opt.value || opt).filter((v) => v !== "all");
772
- providers.forEach((provider) => fetchServerAggregate(provider));
773
- }, [displayMode, providerFilter, providerOptions, fetchServerAggregate]);
774
-
775
- useEffect(() => {
776
- if (typeof window === "undefined") return;
777
- const stored = window.localStorage.getItem(AUTO_REFRESH_STORAGE_KEY);
778
- setAutoRefresh(stored === null ? true : stored === "true");
779
- setHasHydratedAutoRefresh(true);
780
- }, []);
781
-
782
- // Persist auto-refresh preference
783
- useEffect(() => {
784
- if (typeof window === "undefined" || !hasHydratedAutoRefresh) return;
785
- window.localStorage.setItem(AUTO_REFRESH_STORAGE_KEY, String(autoRefresh));
786
- }, [autoRefresh, hasHydratedAutoRefresh]);
787
-
788
- // Auto-refresh interval
789
- useEffect(() => {
790
- if (!hasHydratedAutoRefresh || !autoRefresh) {
791
- if (intervalRef.current) {
792
- clearInterval(intervalRef.current);
793
- intervalRef.current = null;
794
- }
795
- if (countdownRef.current) {
796
- clearInterval(countdownRef.current);
797
- countdownRef.current = null;
798
- }
799
- return;
800
- }
801
-
802
- // Main refresh interval
803
- intervalRef.current = setInterval(() => {
804
- refreshAll();
805
- }, REFRESH_INTERVAL_MS);
806
-
807
- // Countdown interval
808
- countdownRef.current = setInterval(() => {
809
- setCountdown((prev) => {
810
- if (prev <= 1) return 60;
811
- return prev - 1;
812
- });
813
- }, 1000);
814
-
815
- return () => {
816
- if (intervalRef.current) clearInterval(intervalRef.current);
817
- if (countdownRef.current) clearInterval(countdownRef.current);
818
- };
819
- }, [autoRefresh, refreshAll, hasHydratedAutoRefresh]);
820
-
821
- // Pause auto-refresh when tab is hidden (Page Visibility API)
822
- useEffect(() => {
823
- const handleVisibilityChange = () => {
824
- if (document.hidden) {
825
- if (intervalRef.current) {
826
- clearInterval(intervalRef.current);
827
- intervalRef.current = null;
828
- }
829
- if (countdownRef.current) {
830
- clearInterval(countdownRef.current);
831
- countdownRef.current = null;
832
- }
833
- } else if (autoRefresh && hasHydratedAutoRefresh) {
834
- // Resume auto-refresh when tab becomes visible
835
- intervalRef.current = setInterval(refreshAll, REFRESH_INTERVAL_MS);
836
- countdownRef.current = setInterval(() => {
837
- setCountdown((prev) => (prev <= 1 ? 60 : prev - 1));
838
- }, 1000);
839
- }
840
- };
841
-
842
- document.addEventListener("visibilitychange", handleVisibilityChange);
843
- return () => {
844
- document.removeEventListener("visibilitychange", handleVisibilityChange);
845
- };
846
- }, [autoRefresh, refreshAll, hasHydratedAutoRefresh]);
847
-
848
- const sortedConnections = useMemo(
849
- () =>
850
- sortVisibleConnections(
851
- connections,
852
- quotaData,
853
- expiringFirst,
854
- providerFilter,
855
- quotaSortMode,
856
- ),
857
- [connections, quotaData, expiringFirst, providerFilter, quotaSortMode],
858
- );
859
-
860
- const clientAggregateCards = useMemo(
861
- () => buildProviderAggregateCards(sortedConnections, quotaData, loading, errors),
862
- [sortedConnections, quotaData, loading, errors],
863
- );
864
-
865
- // In bulk mode, prefer server-side aggregate (covers ALL accounts) over
866
- // the client-side aggregate (only current page).
867
- const providerAggregateCards = useMemo(() => {
868
- if (!Object.keys(serverAggregateData).length) return clientAggregateCards;
869
- return clientAggregateCards.map((card) => {
870
- const serverData = serverAggregateData[card.provider];
871
- if (!serverData || !serverData.quotas?.length) return card;
872
- return {
873
- ...card,
874
- email: `${serverData.accountCount || card.connectionIds?.length || 0} accounts`,
875
- quota: {
876
- ...card.quota,
877
- quotas: serverData.quotas,
878
- message: null,
879
- },
880
- isLoading: serverAggregateLoading[card.provider] || false,
881
- };
882
- });
883
- }, [clientAggregateCards, serverAggregateData, serverAggregateLoading]);
884
-
885
- const renderedConnections = useMemo(() => {
886
- if (displayMode === "bulk") return providerAggregateCards;
887
- return sortedConnections;
888
- }, [displayMode, providerAggregateCards, sortedConnections]);
889
-
890
- // Connection is depleted when any quota entry hit the threshold
891
- const isConnectionDepleted = (conn) => {
892
- const quotas = quotaData[conn.id]?.quotas;
893
- if (!quotas?.length) return false;
894
- return quotas.some((q) => {
895
- if (!q.total || q.total <= 0) return false;
896
- return calculatePercentage(q.used, q.total) <= DEPLETED_QUOTA_THRESHOLD;
897
- });
898
- };
899
-
900
- const bulkSetActive = useCallback(
901
- async (targetIds, isActive) => {
902
- if (!targetIds.length || bulkToggling) return;
903
- setBulkToggling(true);
904
- try {
905
- await Promise.all(
906
- targetIds.map((id) =>
907
- fetch(`/api/providers/${id}`, {
908
- method: "PUT",
909
- headers: { "Content-Type": "application/json" },
910
- body: JSON.stringify({ isActive }),
911
- }),
912
- ),
913
- );
914
- await reconcileConnectionsPage(fetchConnections, page);
915
- } catch (error) {
916
- console.error("Error bulk toggling connections:", error);
917
- } finally {
918
- setBulkToggling(false);
919
- }
920
- },
921
- [bulkToggling, fetchConnections, page],
922
- );
923
-
924
- const handleDisableDepleted = () => {
925
- const ids = sortedConnections
926
- .filter((c) => (c.isActive ?? true) && isConnectionDepleted(c))
927
- .map((c) => c.id);
928
- bulkSetActive(ids, false);
929
- };
930
-
931
- const handleEnableAvailable = () => {
932
- const ids = sortedConnections
933
- .filter((c) => !(c.isActive ?? true) && !isConnectionDepleted(c))
934
- .map((c) => c.id);
935
- bulkSetActive(ids, true);
936
- };
937
-
938
-
939
- const selectedProviderLabel =
940
- providerFilter === "all" ? "All providers" : providerFilter;
941
- const hasEligibleConnections = totals.eligibleConnections > 0;
942
- const hasVisibleConnections = renderedConnections.length > 0;
943
- const emptyState = getConnectionsEmptyMessage(
944
- totals,
945
- providerFilter,
946
- accountFilter,
947
- );
948
- const connectionsPageSummary = getConnectionsPaginationSummary(pagination);
949
- const isCustomPageSize = !ACCOUNT_PAGE_SIZE_OPTIONS.includes(pageSize);
950
- const pageSizeLabel = getPageSizeLabel(pageSize, isCustomPageSize);
951
-
952
- if (!connectionsLoading && !hasEligibleConnections) {
953
- return (
954
- <Card padding="lg">
955
- <div className="text-center py-12">
956
- <span className="material-symbols-outlined text-[64px] text-text-muted opacity-20">
957
- cloud_off
958
- </span>
959
- <h3 className="mt-4 text-lg font-semibold text-text-primary">
960
- No Providers Connected
961
- </h3>
962
- <p className="mt-2 text-sm text-text-muted max-w-md mx-auto">
963
- Connect to providers with OAuth to track your API quota limits and
964
- usage.
965
- </p>
966
- </div>
967
- </Card>
968
- );
969
- }
970
-
971
- return (
972
- <div className="space-y-6">
973
- {/* Header Controls */}
974
- <div className="flex justify-end">
975
- <div className="grid w-full grid-cols-[minmax(0,1fr)_minmax(0,1fr)_2.75rem] gap-2 sm:flex sm:w-auto sm:flex-wrap sm:items-center sm:gap-1.5">
976
- <div className="relative min-w-0">
977
- <button
978
- type="button"
979
- onClick={() => setProviderMenuOpen((prev) => !prev)}
980
- className="flex h-11 w-full min-w-0 items-center justify-between gap-1 rounded-xl border border-black/10 bg-black/[0.02] px-3 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10 sm:h-8 sm:w-auto sm:rounded-lg sm:px-2"
981
- aria-haspopup="menu"
982
- aria-expanded={providerMenuOpen}
983
- title="Filter quota providers"
984
- >
985
- <span className="flex min-w-0 items-center gap-1.5">
986
- {providerFilter === "all" ? (
987
- <span className="material-symbols-outlined text-[14px] text-text-muted">
988
- apps
989
- </span>
990
- ) : (
991
- <ProviderIcon
992
- src={`/providers/${providerFilter}.png`}
993
- alt={providerFilter}
994
- size={18}
995
- className="size-[18px] rounded object-contain"
996
- fallbackText={providerFilter.slice(0, 2).toUpperCase()}
997
- />
998
- )}
999
- <span className="truncate capitalize">
1000
- {selectedProviderLabel}
1001
- </span>
1002
- </span>
1003
- <span className="material-symbols-outlined text-[14px] text-text-muted">
1004
- expand_more
1005
- </span>
1006
- </button>
1007
-
1008
- {providerMenuOpen && (
1009
- <>
1010
- <button
1011
- type="button"
1012
- className="fixed inset-0 z-30 bg-transparent"
1013
- aria-label="Close provider filter"
1014
- onClick={() => setProviderMenuOpen(false)}
1015
- />
1016
- <div className="absolute left-0 z-40 mt-2 w-64 overflow-hidden rounded-2xl border border-black/10 bg-surface/95 p-1.5 shadow-xl shadow-black/10 backdrop-blur dark:border-white/10 dark:bg-surface/95 sm:w-72">
1017
- <button
1018
- type="button"
1019
- onClick={() => {
1020
- if (shouldResetPage(providerFilter, "all")) {
1021
- setPage(1);
1022
- }
1023
- setProviderFilter("all");
1024
- setProviderMenuOpen(false);
1025
- }}
1026
- className={`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${providerFilter === "all" ? "bg-primary/10 text-primary" : "text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`}
1027
- >
1028
- <span className="material-symbols-outlined text-[22px]">
1029
- apps
1030
- </span>
1031
- <span className="font-medium">All providers</span>
1032
- {providerFilter === "all" && (
1033
- <span className="material-symbols-outlined ml-auto text-[20px]">
1034
- check
1035
- </span>
1036
- )}
1037
- </button>
1038
- <div className="my-1 h-px bg-black/10 dark:bg-white/10" />
1039
- <div className="max-h-72 overflow-y-auto pr-1">
1040
- {providerOptions.map((provider) => (
1041
- <button
1042
- key={provider}
1043
- type="button"
1044
- onClick={() => {
1045
- if (shouldResetPage(providerFilter, provider)) {
1046
- setPage(1);
1047
- }
1048
- setProviderFilter(provider);
1049
- setProviderMenuOpen(false);
1050
- }}
1051
- className={`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${providerFilter === provider ? "bg-primary/10 text-primary" : "text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`}
1052
- >
1053
- <ProviderIcon
1054
- src={`/providers/${provider}.png`}
1055
- alt={provider}
1056
- size={24}
1057
- className="size-6 rounded-md object-contain"
1058
- fallbackText={provider.slice(0, 2).toUpperCase()}
1059
- />
1060
- <span className="font-medium capitalize">
1061
- {provider}
1062
- </span>
1063
- {providerFilter === provider && (
1064
- <span className="material-symbols-outlined ml-auto text-[20px]">
1065
- check
1066
- </span>
1067
- )}
1068
- </button>
1069
- ))}
1070
- </div>
1071
- </div>
1072
- </>
1073
- )}
1074
- </div>
1075
-
1076
- <select
1077
- value={accountFilter}
1078
- onChange={(event) => {
1079
- const nextValue = event.target.value;
1080
- if (shouldResetPage(accountFilter, nextValue)) {
1081
- setPage(1);
1082
- }
1083
- setAccountFilter(nextValue);
1084
- }}
1085
- className="h-11 min-w-0 rounded-xl border border-black/10 bg-black/[0.02] px-3 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10 sm:h-8 sm:rounded-lg sm:px-2"
1086
- aria-label="Filter accounts by status"
1087
- >
1088
- {ACCOUNT_FILTER_OPTIONS.map((option) => (
1089
- <option key={option.value} value={option.value}>
1090
- {option.label}
1091
- </option>
1092
- ))}
1093
- </select>
1094
-
1095
- <button
1096
- type="button"
1097
- onClick={refreshAll}
1098
- disabled={refreshingAll}
1099
- className="flex size-11 shrink-0 items-center justify-center rounded-xl border border-black/10 text-xs text-text-primary transition-colors hover:bg-black/5 disabled:opacity-50 dark:border-white/10 dark:hover:bg-white/5 sm:size-8 sm:rounded-lg"
1100
- title="Refresh all"
1101
- aria-label="Refresh all quotas"
1102
- >
1103
- <span
1104
- className={`material-symbols-outlined text-[18px] sm:text-[14px] ${refreshingAll ? "animate-spin" : ""}`}
1105
- >
1106
- refresh
1107
- </span>
1108
- </button>
1109
-
1110
- <div className="col-span-2 inline-flex min-h-11 min-w-0 overflow-hidden rounded-xl border border-black/10 bg-black/[0.02] dark:border-white/10 dark:bg-white/[0.03] sm:h-8 sm:min-h-0 sm:rounded-lg">
1111
- {QUOTA_DISPLAY_MODE_OPTIONS.map((option) => (
1112
- <button
1113
- key={option.value}
1114
- type="button"
1115
- onClick={() => setDisplayMode(option.value)}
1116
- aria-pressed={displayMode === option.value}
1117
- className={`flex min-h-11 flex-1 items-center justify-center gap-1.5 px-3 text-xs font-medium transition-colors sm:min-h-0 sm:flex-none sm:justify-start sm:px-2 sm:font-normal ${displayMode === option.value ? "bg-primary text-white" : "text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`}
1118
- title={`Show quota in ${option.label} mode`}
1119
- >
1120
- <span className="material-symbols-outlined text-[17px] sm:text-[14px]">
1121
- {option.icon}
1122
- </span>
1123
- <span>{option.label}</span>
1124
- </button>
1125
- ))}
1126
- </div>
1127
- <button
1128
- type="button"
1129
- onClick={() => setMobileActionsOpen((prev) => !prev)}
1130
- aria-expanded={mobileActionsOpen}
1131
- className={`flex size-11 items-center justify-center rounded-xl border text-text-primary transition-colors sm:hidden ${mobileActionsOpen ? "border-primary/30 bg-primary/10 text-primary" : "border-black/10 hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5"}`}
1132
- aria-label={mobileActionsOpen ? "Hide more actions" : "Show more actions"}
1133
- >
1134
- <span className="material-symbols-outlined text-[20px]">tune</span>
1135
- </button>
1136
-
1137
- <div className={`${mobileActionsOpen ? "flex" : "hidden"} col-span-3 flex-col gap-2 rounded-2xl border border-black/10 bg-black/[0.02] p-3 dark:border-white/10 dark:bg-white/[0.03] sm:contents`}>
1138
- {providerFilter === "codex" && (
1139
- <select
1140
- value={quotaSortMode}
1141
- onChange={(event) => setQuotaSortMode(event.target.value)}
1142
- className="h-11 w-full rounded-xl border border-black/10 bg-surface px-3 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/10 sm:h-8 sm:w-auto sm:rounded-lg sm:bg-black/[0.02] sm:px-2 dark:sm:bg-white/[0.03]"
1143
- aria-label="Sort Codex quotas by remaining"
1144
- >
1145
- {QUOTA_SORT_OPTIONS.map((option) => (
1146
- <option key={option.value} value={option.value}>
1147
- {option.label}
1148
- </option>
1149
- ))}
1150
- </select>
1151
- )}
1152
-
1153
- <button
1154
- type="button"
1155
- onClick={() => setExpiringFirst((prev) => !prev)}
1156
- aria-pressed={expiringFirst}
1157
- className={`flex h-11 w-full shrink-0 items-center justify-between gap-2 rounded-xl border px-3 text-xs transition-colors sm:h-8 sm:w-auto sm:justify-start sm:rounded-lg sm:px-2 ${expiringFirst ? "border-amber-500/40 bg-amber-500/10 text-amber-600 dark:text-amber-400" : "border-black/10 bg-surface text-text-primary hover:bg-black/5 dark:border-white/10 dark:bg-transparent dark:hover:bg-white/5"}`}
1158
- title="Sort accounts by earliest quota reset time"
1159
- >
1160
- <span className="flex items-center gap-2">
1161
- <span className="material-symbols-outlined text-[18px] sm:text-[14px]">hourglass_top</span>
1162
- <span>Expiring first</span>
1163
- </span>
1164
- <span className="material-symbols-outlined text-[18px] sm:hidden">
1165
- {expiringFirst ? "check_circle" : "circle"}
1166
- </span>
1167
- </button>
1168
-
1169
- <button
1170
- type="button"
1171
- onClick={handleDisableDepleted}
1172
- disabled={bulkToggling}
1173
- className="flex h-11 w-full shrink-0 items-center gap-2 rounded-xl border border-red-500/30 bg-surface px-3 text-xs text-red-500 transition-colors hover:bg-red-500/10 disabled:opacity-50 dark:bg-transparent sm:h-8 sm:w-auto sm:rounded-lg sm:px-2"
1174
- title="Disable connections with depleted quota on the current page"
1175
- >
1176
- <span className="material-symbols-outlined text-[18px] sm:text-[14px]">block</span>
1177
- <span>Turn off Empty</span>
1178
- </button>
1179
-
1180
- <button
1181
- type="button"
1182
- onClick={handleEnableAvailable}
1183
- disabled={bulkToggling}
1184
- className="flex h-11 w-full shrink-0 items-center gap-2 rounded-xl border border-emerald-500/30 bg-surface px-3 text-xs text-emerald-600 transition-colors hover:bg-emerald-500/10 disabled:opacity-50 dark:bg-transparent dark:text-emerald-400 sm:h-8 sm:w-auto sm:rounded-lg sm:px-2"
1185
- title="Enable connections that still have quota on the current page"
1186
- >
1187
- <span className="material-symbols-outlined text-[18px] sm:text-[14px]">check_circle</span>
1188
- <span>Turn on Available</span>
1189
- </button>
1190
-
1191
- <button
1192
- type="button"
1193
- onClick={() => setAutoRefresh((prev) => !prev)}
1194
- className="flex h-11 w-full shrink-0 items-center justify-between gap-2 rounded-xl border border-black/10 bg-surface px-3 text-xs transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-transparent dark:hover:bg-white/5 sm:h-8 sm:w-auto sm:justify-start sm:rounded-lg sm:px-2"
1195
- title={autoRefresh ? "Disable auto-refresh" : "Enable auto-refresh"}
1196
- >
1197
- <span className="flex items-center gap-2 text-text-primary">
1198
- <span className={`material-symbols-outlined text-[18px] sm:text-[14px] ${autoRefresh ? "text-primary" : "text-text-muted"}`}>
1199
- {autoRefresh ? "toggle_on" : "toggle_off"}
1200
- </span>
1201
- <span>Auto-refresh</span>
1202
- </span>
1203
- {autoRefresh && (
1204
- <span className="text-[10px] text-text-muted tabular-nums">({countdown}s)</span>
1205
- )}
1206
- </button>
1207
- </div>
1208
- </div>
1209
- </div>
1210
-
1211
- {!hasVisibleConnections ? (
1212
- <Card padding="lg">
1213
- <div className="text-center py-12">
1214
- <span className="material-symbols-outlined text-[64px] text-text-muted opacity-20">
1215
- {emptyState.icon}
1216
- </span>
1217
- <h3 className="mt-4 text-lg font-semibold text-text-primary">
1218
- {emptyState.title}
1219
- </h3>
1220
- <p className="mt-2 text-sm text-text-muted max-w-md mx-auto">
1221
- {emptyState.description}
1222
- </p>
1223
- </div>
1224
- </Card>
1225
- ) : (
1226
- <>
1227
- {/* Provider cards: 2 columns, compact */}
1228
- {expiringFirst && (
1229
- <div className="rounded-xl border border-amber-500/20 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-300">
1230
- Expiring-first currently reorders accounts inside the current page.
1231
- Cross-page ordering still follows backend pagination.
1232
- </div>
1233
- )}
1234
-
1235
- <div className="grid grid-cols-1 md:grid-cols-2 gap-3">
1236
- {renderedConnections.map((conn) => {
1237
- const isAggregate = conn.isAggregate === true;
1238
- const quota = isAggregate ? conn.quota : quotaData[conn.id];
1239
- const isLoading = isAggregate ? conn.isLoading : loading[conn.id];
1240
- const error = isAggregate ? conn.error : errors[conn.id];
1241
- const quotaRows = quota?.quotas || [];
1242
- const quotaExpanded = expandedQuotaCards[conn.id] === true;
1243
- const mobileQuotaRows = quotaExpanded
1244
- ? quotaRows
1245
- : getUrgentQuotaRows(quotaRows);
1246
-
1247
- // Use table layout for all providers
1248
- const isInactive = conn.isActive === false;
1249
- const rowBusy = isAggregate ? false : deletingId === conn.id || togglingId === conn.id;
1250
-
1251
- return (
1252
- <Card
1253
- key={conn.id}
1254
- padding="none"
1255
- className={`min-w-0 ${isInactive ? "opacity-60" : ""}`}
1256
- >
1257
- <div className="border-b border-black/10 px-3 py-2 dark:border-white/10">
1258
- <div className="flex items-center justify-between gap-2">
1259
- <div className="flex items-center gap-2 min-w-0">
1260
- <div className="w-8 h-8 shrink-0 rounded-md flex items-center justify-center overflow-hidden">
1261
- <ProviderIcon
1262
- src={`/providers/${conn.provider}.png`}
1263
- alt={conn.provider}
1264
- size={32}
1265
- className="object-contain"
1266
- fallbackText={
1267
- conn.provider?.slice(0, 2).toUpperCase() || "PR"
1268
- }
1269
- />
1270
- </div>
1271
- <div className="min-w-0">
1272
- <h3 className="text-sm font-semibold text-text-primary capitalize truncate">
1273
- {conn.name || getProviderDisplayName(conn.provider)}
1274
- </h3>
1275
- {getConnectionLabel(conn) ? (
1276
- <p className="text-xs text-text-muted truncate">
1277
- {getConnectionLabel(conn)}
1278
- </p>
1279
- ) : null}
1280
- </div>
1281
- </div>
1282
-
1283
- <div className="flex shrink-0 items-center gap-0.5 sm:gap-1">
1284
- <button
1285
- type="button"
1286
- onClick={() => (
1287
- isAggregate
1288
- ? refreshAggregate(conn.connectionIds, conn.provider)
1289
- : refreshProvider(conn.id, conn.provider)
1290
- )}
1291
- disabled={isLoading || rowBusy}
1292
- aria-label="Refresh quota"
1293
- className="flex size-11 items-center justify-center rounded-xl transition-colors hover:bg-black/5 disabled:opacity-50 dark:hover:bg-white/5 sm:size-8 sm:rounded-lg"
1294
- title="Refresh quota"
1295
- >
1296
- <span
1297
- className={`material-symbols-outlined text-[18px] text-text-muted ${isLoading ? "animate-spin" : ""}`}
1298
- >
1299
- refresh
1300
- </span>
1301
- </button>
1302
- {!isAggregate && (
1303
- <>
1304
- <button
1305
- type="button"
1306
- onClick={() => {
1307
- setSelectedConnection(conn);
1308
- setShowEditModal(true);
1309
- }}
1310
- disabled={rowBusy}
1311
- aria-label="Edit connection"
1312
- className="flex size-11 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary disabled:opacity-50 dark:hover:bg-white/5 sm:size-8 sm:rounded-lg"
1313
- title="Edit connection"
1314
- >
1315
- <span className="material-symbols-outlined text-[18px]">
1316
- edit
1317
- </span>
1318
- </button>
1319
- <button
1320
- type="button"
1321
- onClick={() => handleDeleteConnection(conn.id)}
1322
- disabled={rowBusy}
1323
- aria-label="Delete connection"
1324
- className="flex size-11 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 disabled:opacity-50 sm:size-8 sm:rounded-lg"
1325
- title="Delete connection"
1326
- >
1327
- <span
1328
- className={`material-symbols-outlined text-[18px] ${deletingId === conn.id ? "animate-pulse" : ""}`}
1329
- >
1330
- delete
1331
- </span>
1332
- </button>
1333
- <div
1334
- className="inline-flex size-11 items-center justify-center sm:h-8 sm:w-auto sm:pl-0.5"
1335
- title={
1336
- (conn.isActive ?? true)
1337
- ? "Disable connection"
1338
- : "Enable connection"
1339
- }
1340
- >
1341
- <Toggle
1342
- size="sm"
1343
- touchTarget
1344
- checked={conn.isActive ?? true}
1345
- disabled={rowBusy}
1346
- onChange={(nextActive) =>
1347
- handleToggleConnectionActive(conn.id, nextActive)
1348
- }
1349
- />
1350
- </div>
1351
- </>
1352
- )}
1353
- </div>
1354
- </div>
1355
- </div>
1356
-
1357
- <div className="px-2 py-1.5">
1358
- {isLoading ? (
1359
- <div className="text-center py-5 text-text-muted">
1360
- <span className="material-symbols-outlined text-[28px] animate-spin">
1361
- progress_activity
1362
- </span>
1363
- </div>
1364
- ) : error ? (
1365
- <div className="text-center py-5">
1366
- <span className="material-symbols-outlined text-[28px] text-red-500">
1367
- error
1368
- </span>
1369
- <p className="mt-1.5 text-xs text-text-muted">{error}</p>
1370
- </div>
1371
- ) : quotaRows.length > 0 ? (
1372
- <div className="space-y-2">
1373
- <div className="sm:hidden">
1374
- <QuotaTable
1375
- quotas={mobileQuotaRows}
1376
- totalCount={quotaRows.length}
1377
- paginate={false}
1378
- compact
1379
- sortMode="default"
1380
- showSortLabel={
1381
- conn.provider === "codex" && quotaSortMode !== "default"
1382
- }
1383
- />
1384
- {quotaRows.length > 3 && (
1385
- <button
1386
- type="button"
1387
- onClick={() => setExpandedQuotaCards((current) => ({
1388
- ...current,
1389
- [conn.id]: !quotaExpanded,
1390
- }))}
1391
- className="mt-2 flex h-11 w-full items-center justify-center gap-1.5 rounded-xl border border-black/10 bg-black/[0.02] text-xs font-medium text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/5"
1392
- aria-expanded={quotaExpanded}
1393
- >
1394
- <span>
1395
- {quotaExpanded
1396
- ? "Show less"
1397
- : `Show ${quotaRows.length - mobileQuotaRows.length} more`}
1398
- </span>
1399
- <span className="material-symbols-outlined text-[18px]">
1400
- {quotaExpanded ? "expand_less" : "expand_more"}
1401
- </span>
1402
- </button>
1403
- )}
1404
- </div>
1405
- <div className="hidden sm:block">
1406
- <QuotaTable
1407
- quotas={quotaRows}
1408
- compact
1409
- sortMode="default"
1410
- showSortLabel={
1411
- conn.provider === "codex" && quotaSortMode !== "default"
1412
- }
1413
- />
1414
- </div>
1415
- {quota?.message ? (
1416
- <p className="px-1 text-[10px] text-text-muted">{quota.message}</p>
1417
- ) : null}
1418
- </div>
1419
- ) : quota?.message ? (
1420
- <div className="text-center py-5">
1421
- <p className="text-xs text-text-muted">{quota.message}</p>
1422
- </div>
1423
- ) : (
1424
- <div className="text-center py-5 text-text-muted">
1425
- <p className="text-xs">No quota data available</p>
1426
- </div>
1427
- )}
1428
- </div>
1429
- </Card>
1430
- );
1431
- })}
1432
- </div>
1433
-
1434
- <div className="rounded-xl border border-black/10 bg-black/[0.02] px-3 py-2 dark:border-white/10 dark:bg-white/[0.03]">
1435
- <div className="flex flex-wrap items-center justify-between gap-2">
1436
- <span className="text-xs text-text-muted">{connectionsPageSummary}</span>
1437
- <div className="flex flex-wrap items-center gap-2">
1438
- <select
1439
- value={isCustomPageSize ? "custom" : String(pageSize)}
1440
- onChange={(event) => {
1441
- const nextValue = event.target.value;
1442
- if (nextValue === "custom") return;
1443
- const nextPageSize = Number.parseInt(nextValue, 10);
1444
- if (Number.isFinite(nextPageSize)) {
1445
- setPage(1);
1446
- setPageSize(nextPageSize);
1447
- setCustomPageSizeInput(String(nextPageSize));
1448
- }
1449
- }}
1450
- className="h-11 rounded-xl border border-black/10 bg-black/[0.02] px-3 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10 sm:h-8 sm:rounded-lg sm:px-2"
1451
- aria-label="Accounts per page"
1452
- >
1453
- {ACCOUNT_PAGE_SIZE_OPTIONS.map((option) => (
1454
- <option key={option} value={String(option)}>
1455
- {option} / page
1456
- </option>
1457
- ))}
1458
- <option value="custom">Custom</option>
1459
- </select>
1460
- <input
1461
- type="number"
1462
- min="1"
1463
- max={String(ACCOUNT_PAGE_SIZE_MAX)}
1464
- inputMode="numeric"
1465
- value={customPageSizeInput}
1466
- onChange={(event) => setCustomPageSizeInput(event.target.value)}
1467
- onBlur={() => {
1468
- const parsedValue = Number.parseInt(customPageSizeInput, 10);
1469
- if (!Number.isFinite(parsedValue)) {
1470
- setCustomPageSizeInput(String(pageSize));
1471
- return;
1472
- }
1473
- const nextPageSize = Math.min(ACCOUNT_PAGE_SIZE_MAX, Math.max(1, parsedValue));
1474
- setPage(1);
1475
- setPageSize(nextPageSize);
1476
- setCustomPageSizeInput(String(nextPageSize));
1477
- }}
1478
- onKeyDown={(event) => {
1479
- if (event.key !== "Enter") return;
1480
- const parsedValue = Number.parseInt(customPageSizeInput, 10);
1481
- if (!Number.isFinite(parsedValue)) {
1482
- setCustomPageSizeInput(String(pageSize));
1483
- return;
1484
- }
1485
- const nextPageSize = Math.min(ACCOUNT_PAGE_SIZE_MAX, Math.max(1, parsedValue));
1486
- setPage(1);
1487
- setPageSize(nextPageSize);
1488
- setCustomPageSizeInput(String(nextPageSize));
1489
- }}
1490
- className="h-11 w-24 rounded-xl border border-black/10 bg-black/[0.02] px-3 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10 sm:h-8 sm:w-20 sm:rounded-lg sm:px-2"
1491
- aria-label="Custom accounts per page"
1492
- placeholder="Custom"
1493
- />
1494
- <span className="text-xs text-text-muted">Page {pagination.page} / {pagination.totalPages}</span>
1495
- </div>
1496
- <div className="flex items-center gap-1.5">
1497
- <button
1498
- type="button"
1499
- onClick={() => setPage(1)}
1500
- disabled={
1501
- pagination.page <= 1 || connectionsLoading || refreshingAll
1502
- }
1503
- className="flex h-11 items-center rounded-xl border border-black/10 px-3 text-xs text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5 sm:h-8 sm:rounded-lg"
1504
- >
1505
- First Page
1506
- </button>
1507
- <button
1508
- type="button"
1509
- onClick={() =>
1510
- setPage((currentPage) => Math.max(1, currentPage - 1))
1511
- }
1512
- disabled={
1513
- pagination.page <= 1 || connectionsLoading || refreshingAll
1514
- }
1515
- className="flex size-11 items-center justify-center rounded-xl border border-black/10 text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5 sm:size-8 sm:rounded-lg"
1516
- aria-label="Previous accounts page"
1517
- >
1518
- <span className="material-symbols-outlined text-[16px]">
1519
- chevron_left
1520
- </span>
1521
- </button>
1522
- <button
1523
- type="button"
1524
- onClick={() =>
1525
- setPage((currentPage) =>
1526
- Math.min(pagination.totalPages, currentPage + 1),
1527
- )
1528
- }
1529
- disabled={
1530
- pagination.page >= pagination.totalPages ||
1531
- connectionsLoading ||
1532
- refreshingAll
1533
- }
1534
- className="flex size-11 items-center justify-center rounded-xl border border-black/10 text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5 sm:size-8 sm:rounded-lg"
1535
- aria-label="Next accounts page"
1536
- >
1537
- <span className="material-symbols-outlined text-[16px]">
1538
- chevron_right
1539
- </span>
1540
- </button>
1541
- <button
1542
- type="button"
1543
- onClick={() => setPage(pagination.totalPages)}
1544
- disabled={
1545
- pagination.page >= pagination.totalPages ||
1546
- connectionsLoading ||
1547
- refreshingAll
1548
- }
1549
- className="flex h-11 items-center rounded-xl border border-black/10 px-3 text-xs text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5 sm:h-8 sm:rounded-lg"
1550
- >
1551
- Last Page
1552
- </button>
1553
- </div>
1554
- </div>
1555
- </div>
1556
- </>
1557
- )}
1558
-
1559
- <EditConnectionModal
1560
- isOpen={showEditModal}
1561
- connection={selectedConnection}
1562
- proxyPools={proxyPools}
1563
- onSave={handleUpdateConnection}
1564
- onClose={() => {
1565
- setShowEditModal(false);
1566
- setSelectedConnection(null);
1567
- }}
1568
- />
1569
- </div>
1570
- );
1571
- }