@techysy/10router 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1118) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +12 -10
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +5 -5
  5. package/app/.next-cli-build/react-loadable-manifest.json +1 -1
  6. package/app/.next-cli-build/routes-manifest.json +14 -0
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +10 -5
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  80. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  87. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  88. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  90. package/app/.next-cli-build/server/app/_not-found.html +2 -2
  91. package/app/.next-cli-build/server/app/_not-found.rsc +7 -7
  92. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +7 -7
  93. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +7 -7
  94. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  95. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +2 -2
  110. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/auth/status/route.js +2 -2
  116. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js +1 -1
  118. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  120. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  122. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js +2 -2
  126. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  128. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  130. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  132. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  136. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  140. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  144. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  150. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
  154. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  156. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  158. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  160. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/external-quota/[source]/route.js +1 -0
  166. package/app/.next-cli-build/server/app/api/external-quota/[source]/route.js.nft.json +1 -0
  167. package/app/.next-cli-build/server/app/api/external-quota/[source]/route_client-reference-manifest.js +1 -0
  168. package/app/.next-cli-build/server/app/api/gateway-probe/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/gateway-probe/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/keys/rotate/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/keys/rotate/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  195. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/models/caps/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/models/caps/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/network/egress-region/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/network/egress-region/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  269. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
  275. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  311. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  313. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  317. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  319. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  321. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  323. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  327. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  329. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  331. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  333. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/security/status/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/security/status/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
  345. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  353. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  375. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  383. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/usage/quotas/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/usage/quotas/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  401. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  415. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/v1/rerank/route.js +1 -0
  427. package/app/.next-cli-build/server/app/api/v1/rerank/route.js.nft.json +1 -0
  428. package/app/.next-cli-build/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -0
  429. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  440. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  441. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  443. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  450. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  451. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  452. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/api/version/route.js +2 -2
  454. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  455. package/app/.next-cli-build/server/app/api/version/shell-update/route.js +1 -1
  456. package/app/.next-cli-build/server/app/api/version/shell-update/route.js.nft.json +1 -1
  457. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  458. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  459. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  460. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  461. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  462. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  463. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  464. package/app/.next-cli-build/server/app/callback.html +2 -2
  465. package/app/.next-cli-build/server/app/callback.rsc +7 -7
  466. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +7 -7
  467. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +3 -3
  468. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +7 -7
  469. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
  470. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +9 -9
  471. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +9 -9
  472. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +9 -9
  473. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +3 -3
  474. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +2 -2
  475. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +9 -9
  476. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +9 -9
  477. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +9 -9
  478. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +3 -3
  479. package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
  480. package/app/.next-cli-build/server/app/dashboard/combos.rsc +9 -9
  481. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +9 -9
  482. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +9 -9
  483. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +3 -3
  484. package/app/.next-cli-build/server/app/dashboard/endpoint.html +2 -2
  485. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +9 -9
  486. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +9 -9
  487. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +9 -9
  488. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +3 -3
  489. package/app/.next-cli-build/server/app/dashboard/experimental.html +2 -2
  490. package/app/.next-cli-build/server/app/dashboard/experimental.rsc +9 -9
  491. package/app/.next-cli-build/server/app/dashboard/experimental.segments/!KGRhc2hib2FyZCk/dashboard/experimental/__PAGE__.segment.rsc +9 -9
  492. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_full.segment.rsc +9 -9
  493. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_tree.segment.rsc +3 -3
  494. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +2 -2
  495. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +9 -9
  496. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +9 -9
  497. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +9 -9
  498. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +3 -3
  499. package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
  500. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +9 -9
  501. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +9 -9
  502. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +9 -9
  503. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +3 -3
  504. package/app/.next-cli-build/server/app/dashboard/profile.html +2 -2
  505. package/app/.next-cli-build/server/app/dashboard/profile.rsc +9 -9
  506. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +9 -9
  507. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +9 -9
  508. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +3 -3
  509. package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
  510. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +9 -9
  511. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +9 -9
  512. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +9 -9
  513. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +3 -3
  514. package/app/.next-cli-build/server/app/dashboard/providers.html +2 -2
  515. package/app/.next-cli-build/server/app/dashboard/providers.rsc +9 -9
  516. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +9 -9
  517. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +9 -9
  518. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +3 -3
  519. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
  520. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +9 -9
  521. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +9 -9
  522. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +9 -9
  523. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +3 -3
  524. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +2 -2
  525. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +9 -9
  526. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +9 -9
  527. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +9 -9
  528. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +3 -3
  529. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  530. package/app/.next-cli-build/server/app/dashboard/quota.rsc +10 -10
  531. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +10 -10
  532. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +10 -10
  533. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +3 -3
  534. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  535. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +2 -2
  538. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +8 -8
  539. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +8 -8
  540. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -3
  541. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +8 -8
  542. package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
  543. package/app/.next-cli-build/server/app/dashboard/skills.rsc +9 -9
  544. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +9 -9
  545. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +9 -9
  546. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +3 -3
  547. package/app/.next-cli-build/server/app/dashboard/token-saver.html +2 -2
  548. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +9 -9
  549. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +9 -9
  550. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +9 -9
  551. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +3 -3
  552. package/app/.next-cli-build/server/app/dashboard/translator.html +2 -2
  553. package/app/.next-cli-build/server/app/dashboard/translator.rsc +9 -9
  554. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +9 -9
  555. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +9 -9
  556. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +3 -3
  557. package/app/.next-cli-build/server/app/dashboard/usage.html +2 -2
  558. package/app/.next-cli-build/server/app/dashboard/usage.rsc +9 -9
  559. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +9 -9
  560. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +9 -9
  561. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +3 -3
  562. package/app/.next-cli-build/server/app/dashboard.html +2 -2
  563. package/app/.next-cli-build/server/app/dashboard.rsc +9 -9
  564. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +9 -9
  565. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +9 -9
  566. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +3 -3
  567. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  568. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  569. package/app/.next-cli-build/server/app/index.html +1 -1
  570. package/app/.next-cli-build/server/app/index.rsc +7 -7
  571. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +7 -7
  572. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +7 -7
  573. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +3 -3
  574. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  575. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  576. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  577. package/app/.next-cli-build/server/app/landing.html +2 -2
  578. package/app/.next-cli-build/server/app/landing.rsc +8 -8
  579. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +8 -8
  580. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +3 -3
  581. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +8 -8
  582. package/app/.next-cli-build/server/app/login/page.js +1 -1
  583. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  584. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  585. package/app/.next-cli-build/server/app/login.html +2 -2
  586. package/app/.next-cli-build/server/app/login.rsc +8 -8
  587. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +8 -8
  588. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +3 -3
  589. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +8 -8
  590. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  591. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  592. package/app/.next-cli-build/server/app/page.js +1 -1
  593. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  594. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  595. package/app/.next-cli-build/server/app-paths-manifest.json +12 -10
  596. package/app/.next-cli-build/server/chunks/1329.js +1 -1
  597. package/app/.next-cli-build/server/chunks/1386.js +2 -2
  598. package/app/.next-cli-build/server/chunks/1806.js +1 -1
  599. package/app/.next-cli-build/server/chunks/2112.js +1 -1
  600. package/app/.next-cli-build/server/chunks/2926.js +1 -1
  601. package/app/.next-cli-build/server/chunks/2960.js +1 -0
  602. package/app/.next-cli-build/server/chunks/{5330.js → 318.js} +5 -5
  603. package/app/.next-cli-build/server/chunks/3256.js +1 -1
  604. package/app/.next-cli-build/server/chunks/3433.js +13 -13
  605. package/app/.next-cli-build/server/chunks/3500.js +1 -1
  606. package/app/.next-cli-build/server/chunks/3535.js +1 -1
  607. package/app/.next-cli-build/server/chunks/3593.js +2 -2
  608. package/app/.next-cli-build/server/chunks/3599.js +1 -0
  609. package/app/.next-cli-build/server/chunks/3662.js +1 -1
  610. package/app/.next-cli-build/server/chunks/3792.js +1 -1
  611. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  612. package/app/.next-cli-build/server/chunks/3962.js +1 -1
  613. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  614. package/app/.next-cli-build/server/chunks/4293.js +1 -1
  615. package/app/.next-cli-build/server/chunks/4613.js +1 -1
  616. package/app/.next-cli-build/server/chunks/4689.js +1 -1
  617. package/app/.next-cli-build/server/chunks/4739.js +2 -2
  618. package/app/.next-cli-build/server/chunks/4775.js +1 -0
  619. package/app/.next-cli-build/server/chunks/4780.js +2 -2
  620. package/app/.next-cli-build/server/chunks/4803.js +2 -2
  621. package/app/.next-cli-build/server/chunks/4927.js +4 -4
  622. package/app/.next-cli-build/server/chunks/507.js +2 -2
  623. package/app/.next-cli-build/server/chunks/5182.js +1 -1
  624. package/app/.next-cli-build/server/chunks/5210.js +9 -9
  625. package/app/.next-cli-build/server/chunks/5258.js +2 -2
  626. package/app/.next-cli-build/server/chunks/539.js +1 -1
  627. package/app/.next-cli-build/server/chunks/5433.js +1 -1
  628. package/app/.next-cli-build/server/chunks/5527.js +1 -1
  629. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  630. package/app/.next-cli-build/server/chunks/5757.js +1 -0
  631. package/app/.next-cli-build/server/chunks/5781.js +2 -2
  632. package/app/.next-cli-build/server/chunks/595.js +1 -1
  633. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  634. package/app/.next-cli-build/server/chunks/615.js +1 -1
  635. package/app/.next-cli-build/server/chunks/6252.js +2 -2
  636. package/app/.next-cli-build/server/chunks/6306.js +1 -1
  637. package/app/.next-cli-build/server/chunks/6326.js +1 -1
  638. package/app/.next-cli-build/server/chunks/6492.js +1 -1
  639. package/app/.next-cli-build/server/chunks/6593.js +1 -0
  640. package/app/.next-cli-build/server/chunks/6756.js +1 -1
  641. package/app/.next-cli-build/server/chunks/6763.js +1 -1
  642. package/app/.next-cli-build/server/chunks/6790.js +1 -0
  643. package/app/.next-cli-build/server/chunks/6877.js +1 -0
  644. package/app/.next-cli-build/server/chunks/6947.js +1 -1
  645. package/app/.next-cli-build/server/chunks/6960.js +3 -3
  646. package/app/.next-cli-build/server/chunks/698.js +2 -2
  647. package/app/.next-cli-build/server/chunks/7067.js +1 -1
  648. package/app/.next-cli-build/server/chunks/7122.js +1 -1
  649. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  650. package/app/.next-cli-build/server/chunks/7252.js +1 -0
  651. package/app/.next-cli-build/server/chunks/7274.js +1 -1
  652. package/app/.next-cli-build/server/chunks/7322.js +2 -2
  653. package/app/.next-cli-build/server/chunks/75.js +1 -1
  654. package/app/.next-cli-build/server/chunks/7568.js +1 -1
  655. package/app/.next-cli-build/server/chunks/7828.js +1 -1
  656. package/app/.next-cli-build/server/chunks/7965.js +2 -2
  657. package/app/.next-cli-build/server/chunks/8062.js +2 -2
  658. package/app/.next-cli-build/server/chunks/8145.js +1 -1
  659. package/app/.next-cli-build/server/chunks/8172.js +2 -2
  660. package/app/.next-cli-build/server/chunks/8318.js +1 -1
  661. package/app/.next-cli-build/server/chunks/8410.js +1 -1
  662. package/app/.next-cli-build/server/chunks/8439.js +1 -1
  663. package/app/.next-cli-build/server/chunks/8469.js +2 -2
  664. package/app/.next-cli-build/server/chunks/8499.js +3 -3
  665. package/app/.next-cli-build/server/chunks/8520.js +2 -2
  666. package/app/.next-cli-build/server/chunks/8595.js +1 -1
  667. package/app/.next-cli-build/server/chunks/8672.js +1 -1
  668. package/app/.next-cli-build/server/chunks/8749.js +4 -4
  669. package/app/.next-cli-build/server/chunks/8775.js +1 -0
  670. package/app/.next-cli-build/server/chunks/8895.js +2 -2
  671. package/app/.next-cli-build/server/chunks/8920.js +1 -1
  672. package/app/.next-cli-build/server/chunks/8972.js +1 -0
  673. package/app/.next-cli-build/server/chunks/9046.js +1 -1
  674. package/app/.next-cli-build/server/chunks/9055.js +1 -1
  675. package/app/.next-cli-build/server/chunks/9154.js +1 -1
  676. package/app/.next-cli-build/server/chunks/9417.js +1 -1
  677. package/app/.next-cli-build/server/chunks/9451.js +2 -2
  678. package/app/.next-cli-build/server/chunks/9489.js +2 -2
  679. package/app/.next-cli-build/server/chunks/9601.js +1 -0
  680. package/app/.next-cli-build/server/chunks/9628.js +1 -1
  681. package/app/.next-cli-build/server/chunks/976.js +2 -2
  682. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  683. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  684. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  685. package/app/.next-cli-build/server/middleware.js +5 -5
  686. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  687. package/app/.next-cli-build/server/pages/404.html +2 -2
  688. package/app/.next-cli-build/server/pages/500.html +1 -1
  689. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  690. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  691. package/app/.next-cli-build/static/XaFYXXaFDzpbuL3LNeL29/_buildManifest.js +1 -0
  692. package/app/.next-cli-build/static/chunks/1243-acdc1dcbfcd9336d.js +3 -0
  693. package/app/.next-cli-build/static/chunks/1321-4faa820be59413ff.js +1 -0
  694. package/app/.next-cli-build/static/chunks/5497-83c412e719fec386.js +7 -0
  695. package/app/.next-cli-build/static/chunks/{6808-7c2c0ea1ee14763c.js → 6808-b0b12958916efbd5.js} +1 -1
  696. package/app/.next-cli-build/static/chunks/{8720-f1b68ba6d347a434.js → 8720-a2aa5581184c3985.js} +1 -1
  697. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/experimental/page-19458cb592a41b79.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-de760afb83419302.js → page-bce04d7851a6bf65.js} +14 -9
  699. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-7a5d36237ec6b40e.js → page-bbde3be24400b162.js} +1 -1
  700. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-ceb259d31ded818a.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-4db11950e50a00bf.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-cefb3cbfe469dd51.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/_global-error/page-a5b1358c4ce45a48.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-a5b1358c4ce45a48.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-a5b1358c4ce45a48.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-a5b1358c4ce45a48.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-a5b1358c4ce45a48.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-a5b1358c4ce45a48.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-a5b1358c4ce45a48.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-a5b1358c4ce45a48.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-a5b1358c4ce45a48.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-a5b1358c4ce45a48.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-a5b1358c4ce45a48.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-a5b1358c4ce45a48.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-a5b1358c4ce45a48.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-a5b1358c4ce45a48.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a5b1358c4ce45a48.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-a5b1358c4ce45a48.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-a5b1358c4ce45a48.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-a5b1358c4ce45a48.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-a5b1358c4ce45a48.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-a5b1358c4ce45a48.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-a5b1358c4ce45a48.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-a5b1358c4ce45a48.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-a5b1358c4ce45a48.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-a5b1358c4ce45a48.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-a5b1358c4ce45a48.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-a5b1358c4ce45a48.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-a5b1358c4ce45a48.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-a5b1358c4ce45a48.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-a5b1358c4ce45a48.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-a5b1358c4ce45a48.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-a5b1358c4ce45a48.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-a5b1358c4ce45a48.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-a5b1358c4ce45a48.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-a5b1358c4ce45a48.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-a5b1358c4ce45a48.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/combos/route-a5b1358c4ce45a48.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/external-quota/[source]/route-a5b1358c4ce45a48.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/gateway-probe/route-a5b1358c4ce45a48.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-a5b1358c4ce45a48.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-a5b1358c4ce45a48.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-a5b1358c4ce45a48.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-a5b1358c4ce45a48.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-a5b1358c4ce45a48.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-a5b1358c4ce45a48.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/health/route-a5b1358c4ce45a48.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/init/route-a5b1358c4ce45a48.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-a5b1358c4ce45a48.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-a5b1358c4ce45a48.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/keys/route-a5b1358c4ce45a48.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/locale/route-a5b1358c4ce45a48.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-a5b1358c4ce45a48.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-a5b1358c4ce45a48.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-a5b1358c4ce45a48.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-a5b1358c4ce45a48.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-a5b1358c4ce45a48.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-a5b1358c4ce45a48.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-a5b1358c4ce45a48.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-a5b1358c4ce45a48.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-a5b1358c4ce45a48.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/models/caps/route-a5b1358c4ce45a48.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-a5b1358c4ce45a48.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-a5b1358c4ce45a48.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-a5b1358c4ce45a48.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/models/route-a5b1358c4ce45a48.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/models/test/route-a5b1358c4ce45a48.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-a5b1358c4ce45a48.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-a5b1358c4ce45a48.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-a5b1358c4ce45a48.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-a5b1358c4ce45a48.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-a5b1358c4ce45a48.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-a5b1358c4ce45a48.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-a5b1358c4ce45a48.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-a5b1358c4ce45a48.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-a5b1358c4ce45a48.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-a5b1358c4ce45a48.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-a5b1358c4ce45a48.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-a5b1358c4ce45a48.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-a5b1358c4ce45a48.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-a5b1358c4ce45a48.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-a5b1358c4ce45a48.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-a5b1358c4ce45a48.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-a5b1358c4ce45a48.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-a5b1358c4ce45a48.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-a5b1358c4ce45a48.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-a5b1358c4ce45a48.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-a5b1358c4ce45a48.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-a5b1358c4ce45a48.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-a5b1358c4ce45a48.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-a5b1358c4ce45a48.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-a5b1358c4ce45a48.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-a5b1358c4ce45a48.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-a5b1358c4ce45a48.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/pricing/route-a5b1358c4ce45a48.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-a5b1358c4ce45a48.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-a5b1358c4ce45a48.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-a5b1358c4ce45a48.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-a5b1358c4ce45a48.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-a5b1358c4ce45a48.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-a5b1358c4ce45a48.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-a5b1358c4ce45a48.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-a5b1358c4ce45a48.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-a5b1358c4ce45a48.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/providers/route-a5b1358c4ce45a48.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-a5b1358c4ce45a48.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-a5b1358c4ce45a48.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-a5b1358c4ce45a48.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-a5b1358c4ce45a48.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-a5b1358c4ce45a48.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-a5b1358c4ce45a48.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-a5b1358c4ce45a48.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-a5b1358c4ce45a48.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-a5b1358c4ce45a48.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-a5b1358c4ce45a48.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-a5b1358c4ce45a48.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-a5b1358c4ce45a48.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-a5b1358c4ce45a48.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-a5b1358c4ce45a48.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-a5b1358c4ce45a48.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-a5b1358c4ce45a48.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-a5b1358c4ce45a48.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/security/status/route-a5b1358c4ce45a48.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-a5b1358c4ce45a48.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-a5b1358c4ce45a48.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-a5b1358c4ce45a48.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-a5b1358c4ce45a48.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/settings/route-a5b1358c4ce45a48.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-a5b1358c4ce45a48.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/api/tags/route-a5b1358c4ce45a48.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-a5b1358c4ce45a48.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-a5b1358c4ce45a48.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-a5b1358c4ce45a48.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-a5b1358c4ce45a48.js +1 -0
  835. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-a5b1358c4ce45a48.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-a5b1358c4ce45a48.js +1 -0
  837. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-a5b1358c4ce45a48.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-a5b1358c4ce45a48.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-a5b1358c4ce45a48.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-a5b1358c4ce45a48.js +1 -0
  841. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-a5b1358c4ce45a48.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-a5b1358c4ce45a48.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-a5b1358c4ce45a48.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-a5b1358c4ce45a48.js +1 -0
  845. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-a5b1358c4ce45a48.js +1 -0
  846. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-a5b1358c4ce45a48.js +1 -0
  847. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-a5b1358c4ce45a48.js +1 -0
  848. package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-a5b1358c4ce45a48.js +1 -0
  849. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-a5b1358c4ce45a48.js +1 -0
  850. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-a5b1358c4ce45a48.js +1 -0
  851. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-a5b1358c4ce45a48.js +1 -0
  852. package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-a5b1358c4ce45a48.js +1 -0
  853. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-a5b1358c4ce45a48.js +1 -0
  854. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-a5b1358c4ce45a48.js +1 -0
  855. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-a5b1358c4ce45a48.js +1 -0
  856. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-a5b1358c4ce45a48.js +1 -0
  857. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-a5b1358c4ce45a48.js +1 -0
  858. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-a5b1358c4ce45a48.js +1 -0
  859. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-a5b1358c4ce45a48.js +1 -0
  860. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-a5b1358c4ce45a48.js +1 -0
  861. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-a5b1358c4ce45a48.js +1 -0
  862. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-a5b1358c4ce45a48.js +1 -0
  863. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-a5b1358c4ce45a48.js +1 -0
  864. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-a5b1358c4ce45a48.js +1 -0
  865. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-a5b1358c4ce45a48.js +1 -0
  866. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-a5b1358c4ce45a48.js +1 -0
  867. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-a5b1358c4ce45a48.js +1 -0
  868. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-a5b1358c4ce45a48.js +1 -0
  869. package/app/.next-cli-build/static/chunks/app/api/v1/rerank/route-a5b1358c4ce45a48.js +1 -0
  870. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-a5b1358c4ce45a48.js +1 -0
  871. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-a5b1358c4ce45a48.js +1 -0
  872. package/app/.next-cli-build/static/chunks/app/api/v1/route-a5b1358c4ce45a48.js +1 -0
  873. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-a5b1358c4ce45a48.js +1 -0
  874. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-a5b1358c4ce45a48.js +1 -0
  875. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-a5b1358c4ce45a48.js +1 -0
  876. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-a5b1358c4ce45a48.js +1 -0
  877. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-a5b1358c4ce45a48.js +1 -0
  878. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-a5b1358c4ce45a48.js +1 -0
  879. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-a5b1358c4ce45a48.js +1 -0
  880. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-a5b1358c4ce45a48.js +1 -0
  881. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-a5b1358c4ce45a48.js +1 -0
  882. package/app/.next-cli-build/static/chunks/app/api/version/route-a5b1358c4ce45a48.js +1 -0
  883. package/app/.next-cli-build/static/chunks/app/api/version/shell-update/route-a5b1358c4ce45a48.js +1 -0
  884. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-a5b1358c4ce45a48.js +1 -0
  885. package/app/.next-cli-build/static/chunks/app/api/version/update/route-a5b1358c4ce45a48.js +1 -0
  886. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-227586f513028910.js +1 -0
  887. package/app/.next-cli-build/static/chunks/app/landing/page-38924391f8649361.js +1 -0
  888. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-a5b1358c4ce45a48.js +1 -0
  889. package/app/.next-cli-build/static/chunks/app/page-a5b1358c4ce45a48.js +1 -0
  890. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-a5b1358c4ce45a48.js +1 -0
  891. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-a5b1358c4ce45a48.js +1 -0
  892. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-a5b1358c4ce45a48.js +1 -0
  893. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-a5b1358c4ce45a48.js +1 -0
  894. package/app/.next-cli-build/static/chunks/{webpack-1adc95943fa90500.js → webpack-f1d5e73ffd2bfb73.js} +1 -1
  895. package/app/.next-cli-build/static/css/{7a3e1568f247f3d0.css → 50fcf2faa21a2f51.css} +1 -1
  896. package/app/.next-cli-build/static/css/c9904b0ff2f0d4da.css +1 -0
  897. package/app/custom-server.js +46 -0
  898. package/app/package.json +71 -71
  899. package/app/public/i18n/changelog/en.md +22 -0
  900. package/app/public/i18n/changelog/zh-CN.md +22 -0
  901. package/app/public/i18n/changelog/zh-TW.md +22 -0
  902. package/app/public/i18n/literals/zh-CN.json +23 -5
  903. package/app/public/i18n/literals/zh-TW.json +24 -5
  904. package/app/public/providers/codiv.png +0 -0
  905. package/app/public/providers/minimax-code-global.png +0 -0
  906. package/app/public/providers/minimax-code.png +0 -0
  907. package/app/public/providers/modelscope.png +0 -0
  908. package/app/public/providers/river.png +0 -0
  909. package/app/public/providers/thx.png +0 -0
  910. package/package.json +61 -61
  911. package/app/.next-cli-build/server/chunks/2120.js +0 -1
  912. package/app/.next-cli-build/server/chunks/2468.js +0 -1
  913. package/app/.next-cli-build/server/chunks/2752.js +0 -1
  914. package/app/.next-cli-build/server/chunks/2978.js +0 -1
  915. package/app/.next-cli-build/server/chunks/3659.js +0 -1
  916. package/app/.next-cli-build/server/chunks/4886.js +0 -1
  917. package/app/.next-cli-build/server/chunks/682.js +0 -1
  918. package/app/.next-cli-build/server/chunks/8675.js +0 -1
  919. package/app/.next-cli-build/server/chunks/9713.js +0 -1
  920. package/app/.next-cli-build/static/MH4bXJmhiPfMG7orS09FV/_buildManifest.js +0 -1
  921. package/app/.next-cli-build/static/chunks/1243-64d16638d3aac467.js +0 -3
  922. package/app/.next-cli-build/static/chunks/1321-1ad989ddb9bd4822.js +0 -1
  923. package/app/.next-cli-build/static/chunks/5497-a519f837339f7d19.js +0 -7
  924. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/experimental/page-2df49dc3be3c6b7d.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-96c6e23fdaedd167.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-e0183e527ccc2c9b.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-528e2bc2a1bb20da.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/_global-error/page-7a2b8ef7454a1a22.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-7a2b8ef7454a1a22.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-7a2b8ef7454a1a22.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-7a2b8ef7454a1a22.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-7a2b8ef7454a1a22.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-7a2b8ef7454a1a22.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-7a2b8ef7454a1a22.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-7a2b8ef7454a1a22.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-7a2b8ef7454a1a22.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-7a2b8ef7454a1a22.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-7a2b8ef7454a1a22.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-7a2b8ef7454a1a22.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-7a2b8ef7454a1a22.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-7a2b8ef7454a1a22.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-7a2b8ef7454a1a22.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-7a2b8ef7454a1a22.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-7a2b8ef7454a1a22.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-7a2b8ef7454a1a22.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-7a2b8ef7454a1a22.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-7a2b8ef7454a1a22.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-7a2b8ef7454a1a22.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-7a2b8ef7454a1a22.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-7a2b8ef7454a1a22.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-7a2b8ef7454a1a22.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-7a2b8ef7454a1a22.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-7a2b8ef7454a1a22.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-7a2b8ef7454a1a22.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-7a2b8ef7454a1a22.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-7a2b8ef7454a1a22.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-7a2b8ef7454a1a22.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-7a2b8ef7454a1a22.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-7a2b8ef7454a1a22.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-7a2b8ef7454a1a22.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-7a2b8ef7454a1a22.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-7a2b8ef7454a1a22.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/combos/route-7a2b8ef7454a1a22.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/gateway-probe/route-7a2b8ef7454a1a22.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-7a2b8ef7454a1a22.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-7a2b8ef7454a1a22.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-7a2b8ef7454a1a22.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-7a2b8ef7454a1a22.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-7a2b8ef7454a1a22.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-7a2b8ef7454a1a22.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/health/route-7a2b8ef7454a1a22.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/init/route-7a2b8ef7454a1a22.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-7a2b8ef7454a1a22.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-7a2b8ef7454a1a22.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/keys/route-7a2b8ef7454a1a22.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/locale/route-7a2b8ef7454a1a22.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-7a2b8ef7454a1a22.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-7a2b8ef7454a1a22.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-7a2b8ef7454a1a22.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-7a2b8ef7454a1a22.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-7a2b8ef7454a1a22.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-7a2b8ef7454a1a22.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-7a2b8ef7454a1a22.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-7a2b8ef7454a1a22.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-7a2b8ef7454a1a22.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/models/caps/route-7a2b8ef7454a1a22.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-7a2b8ef7454a1a22.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-7a2b8ef7454a1a22.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-7a2b8ef7454a1a22.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/models/route-7a2b8ef7454a1a22.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/models/test/route-7a2b8ef7454a1a22.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-7a2b8ef7454a1a22.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-7a2b8ef7454a1a22.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-7a2b8ef7454a1a22.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-7a2b8ef7454a1a22.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-7a2b8ef7454a1a22.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-7a2b8ef7454a1a22.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-7a2b8ef7454a1a22.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-7a2b8ef7454a1a22.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-7a2b8ef7454a1a22.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-7a2b8ef7454a1a22.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-7a2b8ef7454a1a22.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-7a2b8ef7454a1a22.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-7a2b8ef7454a1a22.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-7a2b8ef7454a1a22.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-7a2b8ef7454a1a22.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-7a2b8ef7454a1a22.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-7a2b8ef7454a1a22.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-7a2b8ef7454a1a22.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-7a2b8ef7454a1a22.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-7a2b8ef7454a1a22.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-7a2b8ef7454a1a22.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-7a2b8ef7454a1a22.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-7a2b8ef7454a1a22.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-7a2b8ef7454a1a22.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-7a2b8ef7454a1a22.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-7a2b8ef7454a1a22.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-7a2b8ef7454a1a22.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/api/pricing/route-7a2b8ef7454a1a22.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-7a2b8ef7454a1a22.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-7a2b8ef7454a1a22.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-7a2b8ef7454a1a22.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-7a2b8ef7454a1a22.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-7a2b8ef7454a1a22.js +0 -1
  1025. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-7a2b8ef7454a1a22.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-7a2b8ef7454a1a22.js +0 -1
  1027. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-7a2b8ef7454a1a22.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-7a2b8ef7454a1a22.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/api/providers/route-7a2b8ef7454a1a22.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-7a2b8ef7454a1a22.js +0 -1
  1031. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-7a2b8ef7454a1a22.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-7a2b8ef7454a1a22.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-7a2b8ef7454a1a22.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-7a2b8ef7454a1a22.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-7a2b8ef7454a1a22.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-7a2b8ef7454a1a22.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-7a2b8ef7454a1a22.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-7a2b8ef7454a1a22.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-7a2b8ef7454a1a22.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-7a2b8ef7454a1a22.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-7a2b8ef7454a1a22.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-7a2b8ef7454a1a22.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-7a2b8ef7454a1a22.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-7a2b8ef7454a1a22.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-7a2b8ef7454a1a22.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-7a2b8ef7454a1a22.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/security/status/route-7a2b8ef7454a1a22.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-7a2b8ef7454a1a22.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-7a2b8ef7454a1a22.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-7a2b8ef7454a1a22.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-7a2b8ef7454a1a22.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/app/api/settings/route-7a2b8ef7454a1a22.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-7a2b8ef7454a1a22.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/app/api/tags/route-7a2b8ef7454a1a22.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-7a2b8ef7454a1a22.js +0 -1
  1056. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-7a2b8ef7454a1a22.js +0 -1
  1057. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-7a2b8ef7454a1a22.js +0 -1
  1058. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-7a2b8ef7454a1a22.js +0 -1
  1059. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-7a2b8ef7454a1a22.js +0 -1
  1060. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-7a2b8ef7454a1a22.js +0 -1
  1061. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-7a2b8ef7454a1a22.js +0 -1
  1062. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-7a2b8ef7454a1a22.js +0 -1
  1063. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-7a2b8ef7454a1a22.js +0 -1
  1064. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-7a2b8ef7454a1a22.js +0 -1
  1065. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-7a2b8ef7454a1a22.js +0 -1
  1066. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-7a2b8ef7454a1a22.js +0 -1
  1067. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-7a2b8ef7454a1a22.js +0 -1
  1068. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-7a2b8ef7454a1a22.js +0 -1
  1069. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-7a2b8ef7454a1a22.js +0 -1
  1070. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-7a2b8ef7454a1a22.js +0 -1
  1071. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-7a2b8ef7454a1a22.js +0 -1
  1072. package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-7a2b8ef7454a1a22.js +0 -1
  1073. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-7a2b8ef7454a1a22.js +0 -1
  1074. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-7a2b8ef7454a1a22.js +0 -1
  1075. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-7a2b8ef7454a1a22.js +0 -1
  1076. package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-7a2b8ef7454a1a22.js +0 -1
  1077. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-7a2b8ef7454a1a22.js +0 -1
  1078. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-7a2b8ef7454a1a22.js +0 -1
  1079. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-7a2b8ef7454a1a22.js +0 -1
  1080. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-7a2b8ef7454a1a22.js +0 -1
  1081. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-7a2b8ef7454a1a22.js +0 -1
  1082. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-7a2b8ef7454a1a22.js +0 -1
  1083. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-7a2b8ef7454a1a22.js +0 -1
  1084. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-7a2b8ef7454a1a22.js +0 -1
  1085. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-7a2b8ef7454a1a22.js +0 -1
  1086. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-7a2b8ef7454a1a22.js +0 -1
  1087. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-7a2b8ef7454a1a22.js +0 -1
  1088. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-7a2b8ef7454a1a22.js +0 -1
  1089. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-7a2b8ef7454a1a22.js +0 -1
  1090. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-7a2b8ef7454a1a22.js +0 -1
  1091. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-7a2b8ef7454a1a22.js +0 -1
  1092. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-7a2b8ef7454a1a22.js +0 -1
  1093. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-7a2b8ef7454a1a22.js +0 -1
  1094. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-7a2b8ef7454a1a22.js +0 -1
  1095. package/app/.next-cli-build/static/chunks/app/api/v1/route-7a2b8ef7454a1a22.js +0 -1
  1096. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-7a2b8ef7454a1a22.js +0 -1
  1097. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-7a2b8ef7454a1a22.js +0 -1
  1098. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-7a2b8ef7454a1a22.js +0 -1
  1099. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-7a2b8ef7454a1a22.js +0 -1
  1100. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-7a2b8ef7454a1a22.js +0 -1
  1101. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-7a2b8ef7454a1a22.js +0 -1
  1102. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-7a2b8ef7454a1a22.js +0 -1
  1103. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-7a2b8ef7454a1a22.js +0 -1
  1104. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-7a2b8ef7454a1a22.js +0 -1
  1105. package/app/.next-cli-build/static/chunks/app/api/version/route-7a2b8ef7454a1a22.js +0 -1
  1106. package/app/.next-cli-build/static/chunks/app/api/version/shell-update/route-7a2b8ef7454a1a22.js +0 -1
  1107. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-7a2b8ef7454a1a22.js +0 -1
  1108. package/app/.next-cli-build/static/chunks/app/api/version/update/route-7a2b8ef7454a1a22.js +0 -1
  1109. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-3659ea13d950adc1.js +0 -1
  1110. package/app/.next-cli-build/static/chunks/app/landing/page-01cca10383327c01.js +0 -1
  1111. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-7a2b8ef7454a1a22.js +0 -1
  1112. package/app/.next-cli-build/static/chunks/app/page-7a2b8ef7454a1a22.js +0 -1
  1113. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-7a2b8ef7454a1a22.js +0 -1
  1114. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-7a2b8ef7454a1a22.js +0 -1
  1115. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-7a2b8ef7454a1a22.js +0 -1
  1116. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-7a2b8ef7454a1a22.js +0 -1
  1117. package/app/.next-cli-build/static/css/66cb1d1c16ed3a27.css +0 -1
  1118. /package/app/.next-cli-build/static/{MH4bXJmhiPfMG7orS09FV → XaFYXXaFDzpbuL3LNeL29}/_ssgManifest.js +0 -0
@@ -2,6 +2,28 @@
2
2
 
3
3
  這裡展示面向用戶的關鍵更新;完整開發明細見 [CHANGELOG.md](https://github.com/techysy/10router/blob/main/CHANGELOG.md)。
4
4
 
5
+ ## v1.5.0 (2026-10-15)
6
+
7
+ ### ✨ 新增
8
+
9
+ - **多帳號「到期優先調度」升級為環形接力**:原「配額包到期優先」開關現已覆蓋配額包 / 訂閱速率視窗 / 餘額三類額度,並對週期雙桶(Antigravity/Gemini 5h+7d、MiniMax Code M Plan)改用「單點死磕、只前滾不插隊、跌破 5% 紅區無感換血」的接力演算法——不再全池輪流失血、整條通道一起黑屏。
10
+ - **新供應商**:MiniMax Code 訂閱雙線(國內 / 國際,裝置碼 OAuth 直連 + M Plan 視窗 + Credits 餘額追蹤)、River AI(按量計費 + OpenAI 相容雙端點)、ModelScope 魔搭(按量 + 20 款主流模型 + passthrough)、Codiv 與 HAL-X THX-01(System One 決策模型端點)。
11
+ - **通用外部額度推送介面**:外部伴侶(首個接線方 CreditDaddy)把自己解析好的額度 POST 到 `/api/external-quota/<source>`,統一配額頁即渲染成卡片;配合「同名認領」,CD 帳號別名與連線名相同時餘額直接掛到路由連線卡上。
12
+ - **API Key 細粒度權限**:客戶端 key 可設可呼叫的模型 / Combo 白名單,越權請求直接 403;Endpoint 頁互動式編輯。
13
+ - **Gemini 4「Argon」入庫**:能力(視覺 + 推理 + 搜尋 + 1M 上下文)與官方價目($2 / $10)。
14
+ - **重排序(Rerank)類別**:新增 `/v1/rerank` 端點與獨立模型類別,接入 Cohere、Jina AI、SiliconFlow(BGE Reranker)三家——輸入 `query` + 候選文件、輸出相關性分數,RAG / 知識庫檢索精排即插即用;側邊欄媒體供應商新增「Rerank」入口,詳情頁帶可互動範例。
15
+ - **LongCat 資源包額度**:CreditDaddy 可推送 LongCat Token 資源包餘量到配額頁(同名認領掛到連線卡);贈送/購買包按官方消耗順序規則逐包展示。
16
+ - **供應商頁連線狀態篩選器**:供應商牆可按「活躍 / 錯誤 / 未啟用 / 無連線」篩選——「活躍」含已連上的供應商與拓撲開關開啟的免密供應商;彈出選單與整體控制項語言一致(不再使用原生下拉框)。
17
+
18
+ ### 🐛 修復
19
+
20
+ - **同名認領後連線卡的「重新整理配額」真正回源**:此前重新整理只會重讀本地快照,CreditDaddy 收不到現拉請求、數字不變;現在重新整理先 POST 回 CD 觸發現拉重推,且全程按鈕保持旋轉。
21
+ - **用量拓撲圖不再顯示已下架供應商**:曾被下架(如 Token Harbor 網頁會話)但庫裡仍有殘留連線的供應商,不再以幽靈節點復活在拓撲畫布上。
22
+ - **0 積分配額包不再劫持到期倒數**:已耗盡的贈送包此前仍參與「最快到期」排序,把帳號頂到隊首空燒;現只按明細中存活包排序。
23
+ - **混合大小寫命名空間模型 id 不再被剝圖**:reseller 以 `vendor/Model-Name` 形式暴露的多模態模型,此前因大小寫漏配能力行導致圖片被靜默剝離,現補大小寫不敏感兜底。
24
+ - **Qoder DeepSeek / GLM / MiniMax 檔補回視覺**:這幾檔模型上游實測支援圖片輸入,但能力表漏配導致圖片被剝離,現已按活體實測結果補上。
25
+ - **MiniMax Code Credits 卡面「999.96 / 999.96」雙印**、**未認領的 river / modelscope 連線不再報「Usage API not implemented」**(改給同名認領指路文案)。
26
+
5
27
  ## v1.4.0 (2026-10-10)
6
28
 
7
29
  ### ✨ 新增
@@ -387,6 +387,7 @@
387
387
  "Delete selected preset": "删除选中的预设",
388
388
  "Delete this combo?": "删除此组合?",
389
389
  "Delete this connection?": "删除此连接?",
390
+ "Remove this pushed quota card? The pushing app can re-add it with its next update.": "移除此推送额度卡片?推送方可在下次更新时重新添加。",
390
391
  "Deno Deploy API Token": "Deno Deploy API 令牌",
391
392
  "Deno Deploy v2 runs on a high-performance global edge network": "Deno Deploy v2 运行在高性能全球边缘网络上",
392
393
  "Deno Relay": "Deno Relay",
@@ -1278,7 +1279,7 @@
1278
1279
  "Hide zero-balance provider cards": "隐藏零余额提供商卡片",
1279
1280
  "Quota page view: hide cards whose quota is fully depleted (0 balance / 0 credits)": "配额页视图:隐藏配额已耗尽(0 余额 / 0 积分)的卡片",
1280
1281
  "Nested cycle quota bars": "嵌套周期配额条",
1281
- "Draw contained windows (rolling ⊂ weekly ⊂ monthly) as one nested track instead of flat rows": "把包含关系的周期窗口(滚动 ⊂ 每周 ⊂ 月度)画成一条嵌套轨道,而不是拆分平铺行",
1282
+ "Draw contained subscription windows as nested concentric tracks instead of flat rows": "把包含关系的订阅窗口画成嵌套同心轨道,而不是拆分平铺行",
1282
1283
  "Quota page view: hide cards that have no quota to display": "配额页视图:隐藏没有配额可显示的卡片",
1283
1284
  "Turn request detail recording on/off globally": "全局打开/关闭请求详细信息记录",
1284
1285
  "Turned off": "已关闭",
@@ -1747,9 +1748,9 @@
1747
1748
  "v1m System One calibrated decision engine. Fast probabilistic evaluations over state and questions.": "v1m System One 校准决策引擎:针对状态与问题做快速概率评估。",
1748
1749
  "Monthly Credits": "月度额度",
1749
1750
  "Purchased Credits": "加量额度",
1750
- "Earliest Expiry First": "配额包到期优先",
1751
- "Prioritize accounts with quota packages that expire soonest": "跨账号优先消耗最快到期的配额包/赠送包",
1752
- "Earliest package": "最早到期配额包",
1751
+ "Earliest Expiry First": "到期优先调度",
1752
+ "Prioritize accounts whose quota (packages, subscription windows, balances) expires soonest": "跨账号优先消耗最快到期/重置的额度(配额包 / 订阅窗口 / 余额)",
1753
+ "Earliest package": "最早到期额度",
1753
1754
  "Quota package": "配额包",
1754
1755
  "Success": "成功率",
1755
1756
  "Avg Latency": "平均延迟",
@@ -2035,5 +2036,22 @@
2035
2036
  "Download CreditDaddy": "下载 CreditDaddy",
2036
2037
  "Synced CreditDaddy web session expired — plan credits may read low or missing. Re-export the account from CreditDaddy after logging in to Qoder web again.": "已同步的 CreditDaddy 网页会话已失效——套餐积分可能显示偏低或缺失。请在 CreditDaddy 重新登录 Qoder 网页后再次导出导入。",
2037
2038
  "Web session check failed for": "以下账号的网页会话校验失败:",
2038
- "Web sessions verified": "网页会话校验通过"
2039
+ "Web sessions verified": "网页会话校验通过",
2040
+ "Allowed Models & Combos": "允许调用的模型与组合",
2041
+ "Restrict this key to specific models or combos. Leave empty for unrestricted access.": "为此 API Key 限制可调用的模型或 Combo 组合白名单。留空表示无限制。",
2042
+ "Allowed Models (one per line or comma-separated)": "允许的模型(每行一个或逗号分隔,支持通配符)",
2043
+ "Allowed Combos (one per line or comma-separated)": "允许的组合(每行一个或逗号分隔)",
2044
+ "Allowed": "已限制",
2045
+ "combos": "个组合",
2046
+ "Not connected": "未连接",
2047
+ "Card display preferences": "配额卡片显示偏好",
2048
+ "Customize which quota cards are displayed and their layout style.": "自定义哪些配额卡片显示在列表中以及进度条布局样式。",
2049
+ "Show external pushed cards": "显示外部推送卡片",
2050
+ "Display companion cards (CreditDaddy free quotas & status notes)": "显示外部伴侣应用(CreditDaddy 等)推送的免费额度与状态提示卡",
2051
+ "Hide standard connection cards that have no quota to display": "隐藏没有配额可展示的常规连接卡片",
2052
+ "Hide connection cards whose quota is fully depleted (0 balance / 0 credits)": "隐藏已完全耗尽的连接卡片(0 余额 / 0 积分)",
2053
+ "Quota card display preferences have moved to the Quota Tracker toolbar.": "配额卡片显示偏好已移至配额追踪器工具栏统一配置。",
2054
+ "Filter providers by connection status": "按连接状态筛选供应商",
2055
+ "No providers match this filter": "没有符合此筛选条件的供应商",
2056
+ "No custom providers match this filter": "没有符合此筛选条件的自定义供应商"
2039
2057
  }
@@ -286,7 +286,7 @@
286
286
  "Hide zero-balance provider cards": "隱藏零餘額提供者卡片",
287
287
  "Quota page view: hide cards whose quota is fully depleted (0 balance / 0 credits)": "配額頁檢視:隱藏配額已耗盡(0 餘額 / 0 積分)的卡片",
288
288
  "Nested cycle quota bars": "巢狀週期配額條",
289
- "Draw contained windows (rolling ⊂ weekly ⊂ monthly) as one nested track instead of flat rows": "把包含關係的週期窗口(滾動 ⊂ 每週 ⊂ 月度)畫成一條巢狀軌道,而不是拆分平鋪行",
289
+ "Draw contained subscription windows as nested concentric tracks instead of flat rows": "把包含關係的訂閱窗口畫成嵌套同心軌道,而不是拆分平鋪行",
290
290
  "Quota page view: hide cards that have no quota to display": "配額頁檢視:隱藏沒有配額可顯示的卡片",
291
291
  "Only with balance": "只看有餘額",
292
292
  "Show all": "顯示全部",
@@ -540,6 +540,7 @@
540
540
  "Open Login Page": "開啟登錄頁",
541
541
  "Open Funnel Settings": "開啟 Funnel 設置",
542
542
  "Delete this API key?": "刪除此 API 金鑰?",
543
+ "Remove this pushed quota card? The pushing app can re-add it with its next update.": "移除此推送額度卡片?推送方可在下次更新時重新新增。",
543
544
  "Default Key": "預設金鑰",
544
545
  "Security required: ": "安全要求:",
545
546
  "Failed to read local Xiaomi MiMo Desktop credentials.": "讀取本機小米 MiMo 桌面版憑證失敗。",
@@ -584,9 +585,9 @@
584
585
  "v1m System One calibrated decision engine. Fast probabilistic evaluations over state and questions.": "v1m System One 校準決策引擎:針對狀態與問題做快速機率評估。",
585
586
  "Monthly Credits": "月度額度",
586
587
  "Purchased Credits": "加量額度",
587
- "Earliest Expiry First": "配額包到期優先",
588
- "Prioritize accounts with quota packages that expire soonest": "跨帳號優先消耗最快到期的配額包/贈送包",
589
- "Earliest package": "最早到期配額包",
588
+ "Earliest Expiry First": "到期優先調度",
589
+ "Prioritize accounts whose quota (packages, subscription windows, balances) expires soonest": "跨帳號優先消耗最快到期/重設的額度(配額包 / 訂閱視窗 / 餘額)",
590
+ "Earliest package": "最早到期額度",
590
591
  "Quota package": "配額包",
591
592
  "Activity Heatmap": "活躍熱力圖",
592
593
  "No nodes with 100+ requests in this period": "本時間段內沒有請求數達到 100 的節點",
@@ -877,5 +878,23 @@
877
878
  "Download CreditDaddy": "下載 CreditDaddy",
878
879
  "Synced CreditDaddy web session expired — plan credits may read low or missing. Re-export the account from CreditDaddy after logging in to Qoder web again.": "已同步的 CreditDaddy 網頁工作階段已失效——套餐積分可能顯示偏低或缺失。請在 CreditDaddy 重新登入 Qoder 網頁後再次匯出匯入。",
879
880
  "Web session check failed for": "以下帳號的網頁工作階段校驗失敗:",
880
- "Web sessions verified": "網頁工作階段校驗通過"
881
+ "Web sessions verified": "網頁工作階段校驗通過",
882
+ "Allowed Models & Combos": "允許叫用的模型與組合",
883
+ "Restrict this key to specific models or combos. Leave empty for unrestricted access.": "為此 API Key 限制可叫用的模型或 Combo 組合白名單。留空表示無限制。",
884
+ "Allowed Models (one per line or comma-separated)": "允許的模型(每行一個或逗號分隔,支援萬用字元)",
885
+ "Allowed Combos (one per line or comma-separated)": "允許的組合(每行一個或逗號分隔)",
886
+ "Allowed": "已限制",
887
+ "models": "個模型",
888
+ "combos": "個組合",
889
+ "Not connected": "未連線",
890
+ "Card display preferences": "配額卡片顯示偏好",
891
+ "Customize which quota cards are displayed and their layout style.": "自訂哪些配額卡片顯示在列表中以及進度條佈局樣式。",
892
+ "Show external pushed cards": "顯示外部推送卡片",
893
+ "Display companion cards (CreditDaddy free quotas & status notes)": "顯示外部伴侶應用(CreditDaddy 等)推送的免費額度與狀態提示卡",
894
+ "Hide standard connection cards that have no quota to display": "隱藏沒有配額可展示的常規連線卡片",
895
+ "Hide connection cards whose quota is fully depleted (0 balance / 0 credits)": "隱藏已完全耗盡的連線卡片(0 餘額 / 0 積分)",
896
+ "Quota card display preferences have moved to the Quota Tracker toolbar.": "配額卡片顯示偏好已移至配額追蹤器工具列統一設定。",
897
+ "Filter providers by connection status": "依連線狀態篩選供應商",
898
+ "No providers match this filter": "沒有符合此篩選條件的供應商",
899
+ "No custom providers match this filter": "沒有符合此篩選條件的自訂供應商"
881
900
  }
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,61 +1,61 @@
1
- {
2
- "name": "@techysy/10router",
3
- "version": "1.4.0",
4
- "description": "10Router CLI - Start and manage 10Router server",
5
- "publishConfig": {
6
- "access": "public"
7
- },
8
- "bin": {
9
- "10router": "./cli.js"
10
- },
11
- "files": [
12
- "cli.js",
13
- "src",
14
- "hooks",
15
- "app",
16
- "README.md",
17
- "LICENSE"
18
- ],
19
- "scripts": {
20
- "dev": "nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js",
21
- "build": "node scripts/build-cli.js",
22
- "pack:cli": "npm run build && npm pack --pack-destination ..",
23
- "publish:cli": "npm run build && npm publish --registry https://registry.npmjs.org",
24
- "postinstall": "node hooks/postinstall.js || exit 0",
25
- "prepublishOnly": "npm run build"
26
- },
27
- "dependencies": {
28
- "enquirer": "^2.4.1",
29
- "node-forge": "^1.3.3",
30
- "node-machine-id": "^1.1.12",
31
- "react": "19.2.1",
32
- "react-dom": "19.2.1"
33
- },
34
- "comment_postinstall": "`|| exit 0` is deliberate: this hook only warms ~/.10router/runtime, and cli.js re-runs the same ensureSqliteRuntime/ensureTrayRuntime on every start, so a failure here costs nothing. Without it npm aborts the whole install — e.g. running Windows npm against a WSL path, where cmd.exe cannot cd to a UNC directory, falls back to C:\\Windows and node then cannot find hooks/postinstall.js at all, so the script's own try/catch never gets to run.",
35
- "comment_sqlite": "sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.10router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir. Both runtime deps are installed WITH save (never --no-save): the runtime dir is a single shared npm project, so a package found in node_modules but missing from runtime/package.json is pruned as extraneous by the other hook's next install, and the two hooks would otherwise uninstall each other in a ping-pong.",
36
- "comment_systray": "systray2 is NOT bundled here. It is lazy-installed into ~/.10router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.",
37
- "engines": {
38
- "node": ">=18.0.0"
39
- },
40
- "keywords": [
41
- "10router",
42
- "cli",
43
- "proxy",
44
- "ai",
45
- "api"
46
- ],
47
- "license": "MIT",
48
- "repository": {
49
- "type": "git",
50
- "url": "git+https://github.com/techysy/10router.git",
51
- "directory": "cli"
52
- },
53
- "homepage": "https://github.com/techysy/10router#readme",
54
- "bugs": {
55
- "url": "https://github.com/techysy/10router/issues"
56
- },
57
- "devDependencies": {
58
- "esbuild": "^0.25.12",
59
- "nodemon": "^3.1.14"
60
- }
61
- }
1
+ {
2
+ "name": "@techysy/10router",
3
+ "version": "1.5.0",
4
+ "description": "10Router CLI - Start and manage 10Router server",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "bin": {
9
+ "10router": "./cli.js"
10
+ },
11
+ "files": [
12
+ "cli.js",
13
+ "src",
14
+ "hooks",
15
+ "app",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "scripts": {
20
+ "dev": "nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js",
21
+ "build": "node scripts/build-cli.js",
22
+ "pack:cli": "npm run build && npm pack --pack-destination ..",
23
+ "publish:cli": "npm run build && npm publish --registry https://registry.npmjs.org",
24
+ "postinstall": "node hooks/postinstall.js || exit 0",
25
+ "prepublishOnly": "npm run build"
26
+ },
27
+ "dependencies": {
28
+ "enquirer": "^2.4.1",
29
+ "node-forge": "^1.3.3",
30
+ "node-machine-id": "^1.1.12",
31
+ "react": "19.2.1",
32
+ "react-dom": "19.2.1"
33
+ },
34
+ "comment_postinstall": "`|| exit 0` is deliberate: this hook only warms ~/.10router/runtime, and cli.js re-runs the same ensureSqliteRuntime/ensureTrayRuntime on every start, so a failure here costs nothing. Without it npm aborts the whole install — e.g. running Windows npm against a WSL path, where cmd.exe cannot cd to a UNC directory, falls back to C:\\Windows and node then cannot find hooks/postinstall.js at all, so the script's own try/catch never gets to run.",
35
+ "comment_sqlite": "sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.10router/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir. Both runtime deps are installed WITH save (never --no-save): the runtime dir is a single shared npm project, so a package found in node_modules but missing from runtime/package.json is pruned as extraneous by the other hook's next install, and the two hooks would otherwise uninstall each other in a ping-pong.",
36
+ "comment_systray": "systray2 is NOT bundled here. It is lazy-installed into ~/.10router/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.",
37
+ "engines": {
38
+ "node": ">=18.0.0"
39
+ },
40
+ "keywords": [
41
+ "10router",
42
+ "cli",
43
+ "proxy",
44
+ "ai",
45
+ "api"
46
+ ],
47
+ "license": "MIT",
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "git+https://github.com/techysy/10router.git",
51
+ "directory": "cli"
52
+ },
53
+ "homepage": "https://github.com/techysy/10router#readme",
54
+ "bugs": {
55
+ "url": "https://github.com/techysy/10router/issues"
56
+ },
57
+ "devDependencies": {
58
+ "esbuild": "^0.25.12",
59
+ "nodemon": "^3.1.14"
60
+ }
61
+ }
@@ -1 +0,0 @@
1
- "use strict";exports.id=2120,exports.ids=[2120],exports.modules={12132:(a,b,c)=>{c.d(b,{$6:()=>G,Fp:()=>I,ND:()=>p,Nv:()=>F,XX:()=>x,getMimoAccountCookie:()=>H,readDesktopPassToken:()=>A});var d=c(73024),e=c.n(d),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(39609);let m={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},n={cn:"mimopc",sgp:"mimosgp",ams:"mimoams",ru:"mimoru",in:"mimoin"};function o(a=null){return String(a?.region||"").toLowerCase()}function p(a=null){return m[o(a)]||m.cn}m.cn;let q="account.xiaomi.com",r="miNative PC/Normal Windows_NT/10.0.19045 SDKV/1.0.0 DEVT/PC DEVS/Windows APP/miaccount_desktop APPV/0.1.0",s="MiClaw/1.0",t=new Set(["EBUSY","EPERM","EACCES"]),u=new Map,v=new Map,w="Xiaomi MiMo";function x(){let a=g().homedir(),b=i().join(a,".local","share","mimocode"),c=process.env.XDG_DATA_HOME,d=c?i().join(c,"mimocode"):b;return(d===b?[d]:[d,b]).map(a=>i().join(a,"auth.json"))}async function y(){let a,b=i().join((a=g().homedir(),"win32"===process.platform?i().join(process.env.APPDATA||i().join(a,"AppData","Roaming"),w):"darwin"===process.platform?i().join(a,"Library","Application Support",w):i().join(process.env.XDG_CONFIG_HOME||i().join(a,".config"),w)),"Partitions","xiaomi-account","Network","Cookies");if(!e().existsSync(b))return null;let d=i().join(g().tmpdir(),`10router-mimo-cookies-${process.pid}-${k().randomBytes(4).toString("hex")}.db`);try{e().copyFileSync(b,d)}catch(a){if(t.has(a?.code)){let a=Error("Xiaomi MiMo Desktop is holding its cookie store (quit the app and retry)");throw a.code="DESKTOP_LOCKED",a}return null}try{e().chmodSync(d,384)}catch{}try{let{DatabaseSync:a}=await Promise.resolve().then(c.t.bind(c,80099,23)),b=null;try{let c=(b=new a(d,{readOnly:!0})).prepare("SELECT name, value FROM cookies WHERE host_key = ?").all("."+q),e=Object.fromEntries(c.map(a=>[a.name,a.value]));return e.passToken?e:null}finally{try{b?.close()}catch{}}}catch{return null}finally{await z(d)}}async function z(a){for(let b=0;b<3;b++)try{e().unlinkSync(a);return}catch(a){if("ENOENT"===a.code)return;b<2&&await new Promise(a=>setTimeout(a,20))}}async function A(){try{let a=await y();if(!a?.passToken)return null;return{passToken:a.passToken,userId:a.userId||null,cUserId:a.cUserId||null}}catch(a){if(a?.code==="DESKTOP_LOCKED")throw a;return null}}function B(a,b){for(let c of b.headers.getSetCookie?.()||[]){let b=/^([^=]+)=([^;]*)/.exec(c.trim());b&&b[2]&&(a[b[1]]=b[2])}}function C(a){return Object.entries(a).filter(([,a])=>a).map(([a,b])=>`${a}=${b}`).join("; ")}async function D(a,b,c=null){var d;let e,f={...a},g=p(c),h=function(a=null){return n[o(a)]||n.cn}(c),i=(await (0,l.proxyAwareFetch)(`${g}/api/user/xiaomi/me`,{redirect:"manual",headers:{"User-Agent":r,Cookie:C(f)},signal:AbortSignal.timeout(1e4)},b)).headers.get("location");if(!i)return null;let j=new URL(i).searchParams.get("callback");if(!j)return null;let m=await (0,l.proxyAwareFetch)(`https://${q}/pass/serviceLogin?sid=passportapi&_json=true`,{headers:{Cookie:C(f),"User-Agent":s,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b),t=JSON.parse((await m.text()).replace(/^&&&START&&&/,"")),u=t.nonce||(t.location?new URL(t.location).searchParams.get("nonce"):null);if(!u||!t.location)return null;let v=await (0,l.proxyAwareFetch)(`${t.location}&clientSign=${(e=`nonce=${u}`+((d=t.ssecurity)&&d.trim()?`&${d}`:""),encodeURIComponent(k().createHash("sha1").update(e).digest("base64")))}`,{redirect:"manual",headers:{Cookie:C(f),"User-Agent":s},signal:AbortSignal.timeout(1e4)},b);B(f,v);let w=await (0,l.proxyAwareFetch)(`https://${q}/pass/serviceLogin?sid=${encodeURIComponent(h)}&callback=${encodeURIComponent(j)}&_json=true`,{headers:{Cookie:C(f),"User-Agent":s,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b),x=JSON.parse((await w.text()).replace(/^&&&START&&&/,""));if(B(f,w),!x?.location||!/\/api\/sts/.test(x.location))return null;let y=await (0,l.proxyAwareFetch)(x.location,{redirect:"manual",headers:{"User-Agent":r,Cookie:C(f)},signal:AbortSignal.timeout(1e4)},b);if(B(f,y),!f.serviceToken)return null;let z={};for(let a of["serviceToken","mimopc_ph","mimopc_slh","userId"])f[a]&&(z[a]=f[a]);return C(z)}async function E(a,b){let c=a?.mimoPassToken?{passToken:a.mimoPassToken,userId:a.mimoUserId,cUserId:a.mimoCUserId}:null;if(!c)try{c=await y()}catch(a){if(a?.code==="DESKTOP_LOCKED")return{cookie:null,reason:"desktop-locked"};throw a}if(!c)return{cookie:null,reason:"no-pass-token"};let d=k().createHash("sha256").update(`${c.passToken}|${o(a)}`).digest("hex"),e=u.get(d);if(e&&Date.now()-e.at<18e5)return{cookie:e.cookie};let f=v.get(d);if(f){let a=await f;return a?{cookie:a}:{cookie:null,reason:"sso-failed"}}let g=(async()=>{try{return await D(c,b,a)}catch{return null}finally{v.delete(d)}})();v.set(d,g);let h=await g;return h?(u.set(d,{cookie:h,at:Date.now()}),{cookie:h}):{cookie:null,reason:"sso-failed"}}function F(){u.clear()}let G=r;async function H(a=null,b=null){try{let{cookie:c}=await E(a,b);return c}catch{return null}}async function I(a=null,b=null){let{cookie:c,reason:d}=await E(a,b);if(!c)return{error:"no-pass-token"===d||"desktop-locked"===d?"no-session":"session-failed"};try{let d=await (0,l.proxyAwareFetch)(`${p(a)}/api/user/usage`,{headers:{"User-Agent":r,Cookie:c,Accept:"application/json"},signal:AbortSignal.timeout(1e4)},b);if(!d.ok)return{error:`http-${d.status}`};let e=await d.json().catch(()=>null);if(!e||0!==e.code||!e.data)return{error:"bad-response"};return{percent:e.data.percent,resetDate:e.data.resetDate,resetAt:e.data.resetAt}}catch(a){return{error:a.message}}}},40669:(a,b,c)=>{c.d(b,{XO:()=>i,Xh:()=>g,hb:()=>l,js:()=>j});var d=c(10682);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.default)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;let f={"grok-build":"gcli/grok-build"};function g(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}function h(a,b){var c,d;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:null}async function i(a,b){let c=g(a);if(!c.isAlias)return null;let d="function"==typeof b?await b():b;return h(c.model,d)||h(c.model,f)||null}async function j(a,b){let c=g(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d=await i(a,b);return d||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return m.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let k=[/^gpt-[56]\./,/^gpt-6-/,/^gpt-daybreak-/,/^gpt-reserve/];function l(a){if(!a)return!1;let b=a.toLowerCase();return k.some(a=>a.test(b))}let m=[...k.map(a=>[a,"codex"]),[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2468,exports.ids=[1998,2468],exports.modules={6551:(a,b,c)=>{c.d(b,{RO:()=>m,Tl:()=>k,Yt:()=>l});var d=c(39609),e=c(24295);let f={usageUrl:(0,e.U)("codex").url,resetCreditsUrl:(0,e.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,e.U)("codex").resetCreditsConsumeUrl};function g(a){if(!a)return null;let b=a instanceof Date?a:new Date("number"==typeof a&&a<1e12?1e3*a:a);return Number.isFinite(b.getTime())?b.toISOString():null}function h(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function i(a){let b=Math.max(0,Math.min(100,(0,e.IQ)(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:(0,e.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function j(a,b,c){let d=h(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=i(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=i(f),g=!0),g}async function k(a,b=null){try{let c=await (0,d.proxyAwareFetch)(f.usageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Codex connected. Usage API temporarily unavailable (${c.status}).`};let g=await c.json(),i=g.rate_limit||g.rate_limits||g.rate_limits_by_limit_id?.codex||{},k=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(g),l=Math.max(0,(0,e.IQ)(g.rate_limit_reset_credits?.available_count,0)),m={};return j(m,"",i),j(m,"review",k),{plan:g.plan_type||g.summary?.plan||"unknown",limitReached:h(i)?.limit_reached||!1,reviewLimitReached:h(k)?.limit_reached||!1,resetCredits:{availableCount:l},quotas:m}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function l(a,b=null,c=null){var h,i;if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let j=c?.workspaceId||c?.accountId||c?.chatgptAccountId||null,k={Authorization:`Bearer ${a}`,Accept:"application/json","OpenAI-Beta":"codex-1",originator:"codex_cli_rs"};j&&(k["ChatGPT-Account-ID"]=j);let m=await (0,d.proxyAwareFetch)(f.resetCreditsUrl,{method:"GET",headers:k},b),n=null;try{n=await m.json()}catch{n=null}if(!m.ok)throw Error((h=n?.message||n?.error||n?.detail,i=`Codex reset credits API unavailable (${m.status}).`,h?"string"==typeof h?h:"string"==typeof h.message?h.message:JSON.stringify(h):i));let o=Array.isArray(n?.credits)?n.credits:[];return{availableCount:Math.max(0,(0,e.IQ)(n?.available_count??n?.availableCount,0)),credits:o.map(a=>({status:String(a?.status||"unknown"),grantedAt:g(a?.granted_at??a?.grantedAt),expiresAt:g(a?.expires_at??a?.expiresAt)}))}}async function m(a,b,c=null){let g;if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");if(!b||"string"!=typeof b)throw Error("A redeem request id is required to consume a Codex reset credit.");let h=null;try{g=await (0,d.proxyAwareFetch)(f.resetCreditsConsumeUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({redeem_request_id:b})},c);let e=await g.text();h=e?JSON.parse(e):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let i=h?.code||null,j=(0,e.IQ)(h?.windows_reset,0);return{ok:g.ok&&("reset"===i||j>0),noCredit:g.ok&&"no_credit"===i,status:g.status,code:i,windowsReset:j,message:h?.message||null,raw:h}}},24295:(a,b,c)=>{c.d(b,{IQ:()=>h,U:()=>f,eZ:()=>g,gD:()=>i,u9:()=>j});var d=c(26070),e=c(39609);let f=a=>d.xq[a]?.usage||{};function g(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}function h(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function i(a){return"string"==typeof a?a.trim()||null:a&&"object"==typeof a&&"string"==typeof a.id&&a.id.trim()||null}async function j(a,b,c=1e4,d=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c);try{return await (0,e.proxyAwareFetch)(a,{...b,signal:f.signal},d)}finally{clearTimeout(g)}}},27323:(a,b,c)=>{c.d(b,{Ut:()=>w.Ut,RO:()=>x.RO,Yt:()=>x.Yt,my:()=>aC});var d=c(39609),e=c(26070),f=c(24295);let g={apiVersion:e.sr.github?.apiVersion,userAgent:e.sr.github?.userAgent};async function h(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,d.proxyAwareFetch)((0,f.U)("github").url,{headers:{Authorization:`token ${a}`,Accept:"application/json","X-GitHub-Api-Version":g.apiVersion,"User-Agent":g.userAgent,"Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot-chat/0.26.7"}},c);if(!b.ok){let a=await b.text();throw Error(`GitHub API error: ${a}`)}let e=await b.json();if(e.quota_snapshots){let a=e.quota_snapshots,b=(0,f.eZ)(e.quota_reset_date);return{plan:e.copilot_plan,resetDate:e.quota_reset_date,quotas:{chat:{...i(a.chat),resetAt:b},completions:{...i(a.completions),resetAt:b},premium_interactions:{...i(a.premium_interactions),resetAt:b}}}}if(e.monthly_quotas||e.limited_user_quotas){let a=e.monthly_quotas||{},b=e.limited_user_quotas||{},c=(0,f.eZ)(e.limited_user_reset_date);return{plan:e.copilot_plan||e.access_type_sku,resetDate:e.limited_user_reset_date,quotas:{chat:{used:b.chat||0,total:a.chat||0,unlimited:!1,resetAt:c},completions:{used:b.completions||0,total:a.completions||0,unlimited:!1,resetAt:c}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(a){throw Error(`Failed to fetch GitHub usage: ${a.message}`)}}function i(a){return a?{used:a.entitlement-a.remaining,total:a.entitlement,remaining:a.remaining,unlimited:a.unlimited||!1}:{used:0,total:0,unlimited:!0}}var j=c(75924),k=c(74129);let l=new Map,m=new Map;function n(a){let b=a||{};if(Array.isArray(b.groups))return b.groups;let c=b.quotaSummary?.groups;return Array.isArray(c)?c:[]}async function o(a,b,c,d,e=null,g={}){let h=(Array.isArray(c)?c:[c]).filter(Boolean);if(!a||!b||0===h.length)return null;let i=`${a.substring(0,16)}:${b||"default"}`,j=async c=>{let h=`${i}:${c}`,j=l.get(h);if(!g.forceRefresh&&j&&Date.now()-j.fetchedAt<6e4)return j.data;let k=m.get(h);if(void 0!==k)return k;let n=(async()=>{try{let g=await (0,f.u9)(c,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","User-Agent":d,"X-Client-Name":"antigravity","X-Client-Version":d?.match(/antigravity\/ide\/([\d.]+)/)?.[1]||"2.11.0"},body:JSON.stringify({project:b})},1e4,e);if(!g.ok)return null;let i=await g.json();return l.set(h,{data:i,fetchedAt:Date.now()}),i}catch{return null}})().finally(()=>{m.delete(h)});return m.set(h,n),n};for(let a of h){let b=await j(a);if(b&&n(b).length>0)return b}return null}function p(a){let b=String(a?.window||"").toLowerCase().trim(),c=`${String(a?.bucketId||"")} ${String(a?.displayName||"")}`.toLowerCase(),d=a=>{let b=String(a||"").toLowerCase();return/5h|five[\s_-]?hour|hourly/.test(b)?"5h":/weekly|week/.test(b)?"weekly":null};return d(b)||d(c)}async function q(a,b,c,d,e=null,g={}){let h;return h={},n(await o(a,b,c,d,e,g)).forEach((a,b)=>{var c;if(!a||"object"!=typeof a)return;let d=Array.isArray(a.buckets)?a.buckets:[],e=(c=a.displayName,String(c||"").trim()||`Quota Group ${b+1}`),g=String(e||"").toLowerCase().replace(/\bmodels?\b/g,"").replace(/\band\b/g," ").replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||`group_${b+1}`,i=a=>{let b=p(a);return"5h"===b?0:"weekly"===b?1:2},j=new Set;for(let[a,b]of[...d].filter(a=>a&&"object"==typeof a).sort((a,b)=>i(a)-i(b)).entries()){let a=p(b);if(!a||j.has(a))continue;j.add(a);let c=function(a,b,c){let d=function(a){let b=Number(a?.remainingFraction);if(Number.isFinite(b))return b;let c=a?.remaining&&"object"==typeof a.remaining?Number(a.remaining.remainingFraction):NaN;return Number.isFinite(c)?c:NaN}(a);if(!Number.isFinite(d)||d<0||a?.disabled===!0)return null;let e=Math.max(0,Math.min(1,d)),g=(0,f.eZ)(a?.resetTime),h=!g&&e>=1,i=Math.round(100*e);return{used:h?0:Math.max(0,100-i),total:100*!h,resetAt:g,remainingPercentage:h?100:100*e,unlimited:h,percentScale:!0,displayName:`${b} \xb7 ${"5h"===c?"5h Window":"Weekly Window"}`}}(b,e,a);c&&(h[`${g}_${a}`]=c)}}),h}let r={...(0,f.U)("antigravity"),...k.XP,userAgent:k.Of};async function s(a,b,c=null){if(!a)return{plan:"Free",message:"Gemini CLI access token not available."};try{let d=(0,f.gD)(b?.projectId),e="Free";if(!d){let b=await t(a,c);d=(0,f.gD)(b?.cloudaicompanionProject),e=b?.currentTier?.name||e}if(!d)return{plan:e,message:"Gemini CLI project ID not available. Reconnect Gemini CLI, or configure a Google Cloud project with Gemini Code Assist access before checking quota."};let g=await (0,f.u9)((0,f.U)("gemini-cli").quotaUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:d})},1e4,c);if(!g.ok)return{plan:e,message:`Gemini CLI quota error (${g.status}).`};let h=await g.json(),i={};if(Array.isArray(h.buckets))for(let a of h.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=Number(a.remainingFraction)||0,c=Math.round(1e3*b),d=Math.max(0,1e3-c);i[a.modelId]={used:d,total:1e3,resetAt:(0,f.eZ)(a.resetTime),remainingPercentage:100*b,unlimited:!1}}return{plan:e,quotas:i}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function t(a,b=null){try{let c=await (0,f.u9)((0,f.U)("gemini-cli").loadCodeAssistUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:j.Cn})},1e4,b);if(!c.ok)return null;return await c.json()}catch{return null}}async function u(a,b,c=null,d={}){try{let e=await v(a,c),g=(0,f.gD)(b?.projectId);g||(g=(0,f.gD)(e?.cloudaicompanionProject));let h=e?.currentTier?.name||"Antigravity";if(a&&g)try{let b=await q(a,g,(0,f.U)("antigravity").quotaSummaryApiUrls,r.userAgent,c,{forceRefresh:!0===d.force||!0===d.forceRefresh});if(b&&Object.keys(b).length>0)return{plan:h,quotas:b,subscriptionInfo:e}}catch(a){console.warn("[Antigravity Usage] Quota summary unavailable, falling back to models:",a?.message)}let i=await (0,f.u9)(r.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":r.userAgent,"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":k.Tr},body:JSON.stringify({...g?{project:g}:{}})},1e4,c);if(403===i.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===i.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!i.ok)throw Error(`Antigravity API error: ${i.status}`);let j=await i.json(),l={};if(j.models){let a=["gemini-3.8-flash-high","gemini-3.8-flash-medium","gemini-3.8-flash-low","gemini-3.7-flash-high","gemini-3.7-flash-medium","gemini-3.7-flash-low","gemini-3.6-flash-high","gemini-3.6-flash-medium","gemini-3.6-flash-low","gemini-3.5-flash-low","gemini-3.5-flash-extra-low","gemini-pro-agent","gemini-3.1-pro-low","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3.1-flash-image","gemini-3-pro-image","gemini-2.5-flash-image","imagen-3.0-generate-002"];for(let[b,c]of Object.entries(j.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let d=c.quotaInfo.remainingFraction||0,e=100*d,g=Math.round(1e3*d),h=1e3-g;l[b]={used:h,total:1e3,resetAt:(0,f.eZ)(c.quotaInfo.resetTime),remainingPercentage:e,unlimited:!1,displayName:c.displayName||b}}}return{plan:h,quotas:l,subscriptionInfo:e}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function v(a,b=null){try{let c=await (0,f.u9)(r.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":r.userAgent,"Content-Type":"application/json"},body:JSON.stringify({metadata:j.Cn,mode:1})},1e4,b);if(!c.ok)return null;return await c.json()}catch(a){return console.error("[Antigravity Subscription] Error:",a.message),null}}var w=c(69788),x=c(6551),y=c(6382);async function z(a,b,c=null){let e=b?.authMethod||"builder-id",g="api_key"===e,h=g?{tokentype:"API_KEY"}:{},i="external_idp"===e?{TokenType:"EXTERNAL_IDP"}:{},j=g?b?.profileArn||"":b?.profileArn||(0,y.We)(e),k=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),l=!1,m=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,d.proxyAwareFetch)(`${(0,f.U)("kiro").cwHost}${(0,f.U)("kiro").limitsPath}?${k.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","x-amz-user-agent":"aws-sdk-js/1.0.0 KiroIDE","user-agent":"aws-sdk-js/1.0.0 KiroIDE",...h,...i}},c)},{name:"codewhisperer-post",run:async()=>(0,d.proxyAwareFetch)((0,f.U)("kiro").cwHost,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json",...h,...i},body:JSON.stringify({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"});return(0,d.proxyAwareFetch)(`${(0,f.U)("kiro").qHost}${(0,f.U)("kiro").limitsPath}?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...h,...i}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(l=!0),m.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},d=(0,f.eZ)(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",e=a.currentUsageWithPrecision||0,g=a.usageLimitWithPrecision||0;if(c[b]={used:e,total:g,remaining:g-e,resetAt:d,unlimited:!1},a.freeTrialInfo){let e=a.freeTrialInfo.currentUsageWithPrecision||0,g=a.freeTrialInfo.usageLimitWithPrecision||0;c[`${b}_freetrial`]={used:e,total:g,remaining:g-e,resetAt:(0,f.eZ)(a.freeTrialInfo.freeTrialExpiry||d),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){m.push(`${b.name}:${a.message}`)}return l&&"idc"===e?{message:"Kiro quota API is unavailable for the current AWS IAM Identity Center session. Chat may still work. If this persists after renewing your session, reconnect Kiro.",quotas:{}}:l&&("google"===e||"github"===e)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:l?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:m.length>0?`Unable to fetch Kiro usage right now. (${m[m.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let A={minimax:(0,f.U)("minimax").urls,"minimax-cn":(0,f.U)("minimax-cn").urls};function B(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function C(a,b,c){if(!a||"object"!=typeof a)return null;let d=a[b]??a[c];if(null==d)return null;let e=Number(d);return Number.isFinite(e)?Math.max(0,Math.min(100,e)):null}function D(a){return Math.max(0,Number(B(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function E(a){return Math.max(0,Number(B(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function F(a){return!!(D(a)>0||E(a)>0)||null!==C(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==C(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function G(a,b,c,d,e,g,h,i,j,k){let l=d(c),m=C(c,h,i);if(l<=0&&null===m)return;let n=Math.max(0,Number(B(c,e,g))||0),o=l,p=n;l<=0&&(o=100,p=k?Math.round(m/100*o):Math.round(o*(1-m/100))),a[b]=function(a,b,c,d,e=null){var f,g,h;let i=Math.max(0,a),j=d?Math.max(i-b,0):Math.min(Math.max(0,b),i),k=Math.max(i-j,0),l=(f=e,g=k,h=i,null!=f&&Number.isFinite(f)?Math.max(0,Math.min(100,f)):h>0?Math.max(0,Math.min(100,g/h*100)):0);return{used:j,total:i,remaining:k,remainingPercentage:l,resetAt:c,unlimited:!1}}(o,p,function(a,b,c,d,e,g){let h=Number(B(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,f.eZ)(B(a,e,g))}(c,...j),k,m)}async function H(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let e=A[b]||[],f="";for(let b=0;b<e.length;b+=1){let g=e[b],h=b<e.length-1;try{let b=await (0,d.proxyAwareFetch)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"}},c),e=await b.text(),i={};if(e)try{i=JSON.parse(e)}catch{i={}}let j=(i?.base_resp??i?.baseResp)||{},k=Number(j.status_code??j.statusCode)||0,l=String(j.status_msg??j.statusMsg??"").trim(),m=`${l} ${e}`.trim(),n=/token plan|coding plan|invalid api key|invalid key|unauthorized|inactive/i;if(401===b.status||403===b.status||1004===k||n.test(m))return{message:"MiniMax API key invalid or inactive. Use an active Token/Coding Plan key."};if(!b.ok){if(f=`MiniMax usage endpoint error (${b.status})`,(404===b.status||405===b.status||b.status>=500)&&h)continue;return{message:`MiniMax connected. ${f}`}}if(0!==k)return{message:`MiniMax connected. ${l||"Upstream quota API error"}`};let o=i?.model_remains??i?.modelRemains,p=(Array.isArray(o)?o:[]).filter(F);if(0===p.length)return{message:"MiniMax connected. No quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),s={};for(let a of p){let b=function(a){let b=String(B(a,"model_name","modelName")||"").trim();return b?"MiniMax-M*"===b||"general"===b?"M-series":b.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase()).replace(/\bTo\b/g,"to").replace(/\bTts\b/g,"TTS").replace(/\bHd\b/g,"HD"):"MiniMax"}(a);G(s,`${b} (5h)`,a,D,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[q,"remains_time","remainsTime","end_time","endTime"],r),G(s,`${b} (7d)`,a,E,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],r)}if(0===Object.keys(s).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:s}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}function I(a,b){let c=Number(a??b);return Number.isFinite(c)?c:0}async function J(a,b,c,g,h=null){let i=b||c;if(!i)return{message:`CodeBuddy (${a}) credential not available.`};try{let b=await (0,d.proxyAwareFetch)((0,f.U)(a).url,{method:"POST",headers:{...e.xq[a]?.headers||{},Authorization:`Bearer ${i}`,"Content-Type":"application/json",Accept:"application/json"},body:"{}"},h);if(401===b.status||403===b.status)return{message:"CodeBuddy CN credential invalid or expired."};if(!b.ok)return{message:`CodeBuddy CN quota API error (${b.status}).`};let c=await b.json();if(c?.code!==0)return{message:`CodeBuddy CN quota error: ${c?.msg||"unknown"}`};let g=c?.data?.Response?.Data||{},j=Array.isArray(g.Accounts)?g.Accounts:[];if(0===j.length)return{message:"CodeBuddy CN connected. No credit package found."};let k=a=>{let b=(0,f.eZ)(a.CycleEndTime);return b?new Date(b).getTime():1/0},l=a=>{let b=k(a),c=Number(a.DeductionEndTime);return Number.isFinite(b)&&Number.isFinite(c)&&c-b>1728e5},m=(a,b)=>k(a)-k(b),n=j.filter(l).sort(m),o=j.filter(a=>!l(a)).sort(m),p={},q=0,r=0;n.forEach(a=>{q+=I(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),r+=I(a.CycleCapacitySizePrecise,a.CycleCapacitySize)}),o.forEach(a=>{q+=I(a.CapacityUsedPrecise,a.CapacityUsed),r+=I(a.CapacitySizePrecise,a.CapacitySize)}),p["Total Points"]={used:Math.round(100*q)/100,total:Math.round(100*r)/100,resetAt:null,unlimited:!1,recurring:!1};let s={};n.forEach(a=>{let b=function(a){let b=(0,f.eZ)(a.CycleStartTime),c=(0,f.eZ)(a.CycleEndTime);if(b&&c){let a=(new Date(c).getTime()-new Date(b).getTime())/864e5;if(a<=1.5)return"Daily";if(a<=10)return"Weekly"}return"Monthly"}(a);s[b]=(s[b]||0)+1,p[s[b]>1?`${b} ${s[b]}`:b]={used:I(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:I(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),o.forEach((a,b)=>{p[`Bonus Pack ${b+1}`]={used:I(a.CapacityUsedPrecise,a.CapacityUsed),total:I(a.CapacitySizePrecise,a.CapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!1}});let t=n[0]||j[0]||{};return{plan:t.PackageName||t.SubProductName||"CodeBuddy",quotas:p}}catch(b){return{message:`CodeBuddy (${a}) error: ${b.message}`}}}async function K(a,b,c,d=null){return J("codebuddy-cn",a,b,c,d)}async function L(a,b,c,d=null){return J("codebuddy-intl",a,b,c,d)}var M=c(90737);function N(a,b=0){if(!Buffer.isBuffer(a)||b<0||a.length-b<5)return null;let c=a[b];if(0!==c&&1!==c&&128!==c&&129!==c)return null;let d=b+5,e=a.readUInt32BE(b+1);return e>a.length-d?null:{flag:c,payloadStart:d,payloadLength:e}}function O(a,b){let c=0n,d=0n,e=b;for(;;){if(e>=a.length)return null;let b=a[e];if(c|=BigInt(127&b)<<d,e+=1,(128&b)==0)break;if((d+=7n)>70n)return null}return{value:Number(c),next:e}}function P(a,b,c,d){return b+c>a.length?null:{field:{wireType:d,bytes:a.subarray(b,b+c)},next:b+c}}function Q(a){let b=new Map,c=0;for(;c<a.length;){let d=function(a,b){let c=O(a,b);if(!c)return null;let d=c.value>>>3,e=7&c.value;if(0===d)return null;if(0===e){let b=O(a,c.next);return b?{fieldNumber:d,field:{wireType:0,value:b.value},next:b.next}:null}if(2===e){let b=function(a,b){let c=O(a,b);if(!c)return null;let{value:d,next:e}=c;return d<0||e+d>a.length?null:{field:{wireType:2,bytes:a.subarray(e,e+d)},next:e+d}}(a,c.next);return b?{fieldNumber:d,field:b.field,next:b.next}:null}if(1===e){let b=P(a,c.next,8,1);return b?{fieldNumber:d,field:b.field,next:b.next}:null}if(5===e){let b=P(a,c.next,4,5);return b?{fieldNumber:d,field:b.field,next:b.next}:null}return null}(a,c);if(!d)return null;b.set(d.fieldNumber,d.field),c=d.next}return b}let R=(0,f.U)("grok-cli"),S=R.url||"https://cli-chat-proxy.grok.com/v1/billing?format=credits",T=R.userUrl||"https://cli-chat-proxy.grok.com/v1/user?include=subscription",U=Buffer.from([0,0,0,0,0]);function V(a,b=0){return null==a?b:"object"==typeof a&&!Array.isArray(a)&&"val"in a?(0,f.IQ)(a.val,b):(0,f.IQ)(a,b)}function W(a,b){let c=a?.subscriptionTier??a?.subscription_tier??a?.subscription?.tier??b?.subscriptionTier??b?.subscription_tier;return"string"==typeof c?c.trim():""}function X({used:a,total:b,resetAt:c,unlimited:d=!1}){let e=Math.max(0,(0,f.IQ)(b,0)),g=Math.max(0,(0,f.IQ)(a,0));if(d||0===e)return{used:g,total:0,remainingPercentage:100*!!d,resetAt:c||null,unlimited:!0};let h=Math.max(0,e-g);return{used:g,total:e,remainingPercentage:h/e*100,resetAt:c||null,unlimited:!1}}async function Y(a,b=null){if(!a)return null;try{let c=await (0,d.proxyAwareFetch)("https://grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/grpc-web+proto","X-Grpc-Web":"1",Accept:"application/grpc-web+proto"},body:U},b);if(!c?.ok)return null;let e=await c.arrayBuffer().catch(()=>null);if(!e)return null;return function(a){if(!a||!Buffer.isBuffer(a)||0===a.length)return null;try{var b,c;let d=null!==N(a,0)?function(a){let b=0;for(;b<a.length;){let c=N(a,b);if(!c)break;let d=c.payloadStart+c.payloadLength;if((128&c.flag)==0)return a.subarray(c.payloadStart,d);b=d}return null}(a):a;if(!d)return null;let e=Q(d);if(!e)return null;let f=(b=e.get(1))&&2===b.wireType?Q(b.bytes):null;if(!f)return null;let g=(c=f.get(1))?5===c.wireType?c.bytes.readFloatLE(0):1===c.wireType?c.bytes.readDoubleLE(0):null:0;if(null===g||!Number.isFinite(g)||g<0)return null;return{percentUsed:Math.min(100,100*g),resetAt:function(a){if(!a||2!==a.wireType)return null;let b=Q(a.bytes);if(!b)return null;let c=b.get(1),d=b.get(2),e=c?.wireType===0?c.value:0,f=new Date(1e3*e+Math.round((d?.wireType===0?d.value:0)/1e6));return Number.isNaN(f.getTime())?null:f.toISOString()}(f.get(5))}}catch{return null}}(Buffer.from(e))}catch{return null}}async function Z(a,b=null,c=null){if(!a)return{message:"Grok CLI access token not available."};let e=function(a,b={}){let c=b||{},d={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":M.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-identifier":M.rK,"x-grok-client-version":M.uG,"x-grok-client-mode":"headless"},e=c.email,f=c.userId||c.principalId;return e&&(d["x-email"]=e),f&&(d["x-userid"]=f),d}(a,b);try{let[b,h]=await Promise.all([(0,d.proxyAwareFetch)(S,{method:"GET",headers:e},c),(0,d.proxyAwareFetch)(T,{method:"GET",headers:e},c).catch(()=>null)]);if(401===b.status||403===b.status)return{message:"Grok CLI authentication expired. Please re-authorize."};if(!b.ok){let a=await b.text().catch(()=>""),c=a?`: ${a.slice(0,200)}`:"";return{message:`Grok CLI billing API error (${b.status})${c}`}}let i=await b.json().catch(()=>null);if(!i||"object"!=typeof i)return{message:"Grok CLI billing response was not JSON."};let j=null;h?.ok&&(j=await h.json().catch(()=>null));let k=function(a,b=null){let c,d=a&&"object"==typeof a?a:{},e=d.config&&"object"==typeof d.config&&!Array.isArray(d.config)?d.config:d,g=(0,f.eZ)(e.billingPeriodEnd)||(0,f.eZ)(e.billing_period_end)||(0,f.eZ)(e.currentPeriod?.end)||(0,f.eZ)(e.resetAt||e.resetsAt||e.periodEnd)||(0,f.eZ)(d.billingPeriodEnd)||(0,f.eZ)(d.billing_period_end)||(0,f.eZ)(d.resetAt||d.resetsAt||d.periodEnd)||null,h={},i=W(b,e),j=!!i&&!/^(free|none|null)$/i.test(i),k=V(e.monthlyLimit??e.monthly_limit??d.monthlyLimit??d.monthly_limit,NaN),l=V(e.includedUsed??e.included_used??d.includedUsed??d.included_used,NaN),m=V(e.totalUsed??e.total_used??d.totalUsed??d.total_used,NaN);Number.isFinite(k)&&k>0&&(h["Monthly included"]=X({used:Number.isFinite(l)?l:Number.isFinite(m)?m:0,total:k,resetAt:g}));let n=V(e.onDemandCap??d.onDemandCap,NaN),o=V(e.onDemandUsed??d.onDemandUsed,NaN);if(Number.isFinite(n)&&n>0){let a=Number.isFinite(o)?Math.max(0,o):0;h["On-demand"]=X({used:a,total:n,resetAt:g})}else!j&&Number.isFinite(n)&&0===n&&Number.isFinite(o)&&(h["On-demand"]={used:1,total:1,remainingPercentage:0,resetAt:g,unlimited:!1});let p=V(e.prepaidBalance??d.prepaidBalance,NaN);Number.isFinite(p)&&p>0&&(h.Prepaid={used:0,total:p,remainingPercentage:100,resetAt:null,unlimited:!1});let q=V(e.creditUsagePercent??e.credit_usage_percent??d.creditUsagePercent,NaN);for(let a of(Number.isFinite(q)&&q>=0&&(h["Weekly SuperGrok"]=X({used:Math.max(0,Math.min(100,q)),total:100,resetAt:g})),[d.credits,d.creditBalance,d.usage,e.credits,e.includedCredits,e.subscriptionCredits].filter(a=>a&&"object"==typeof a&&!Array.isArray(a)))){let b=V(a.total??a.limit??a.cap??a.allocation??a.amount,NaN),c=V(a.used??a.spent??a.consumed,NaN),d=V(a.remaining??a.balance??a.left,NaN);if(Number.isFinite(b)&&b>0){let e=Number.isFinite(c)?c:Number.isFinite(d)?Math.max(0,b-d):0;h.Credits||(h.Credits=X({used:e,total:b,resetAt:(0,f.eZ)(a.resetAt||a.resetsAt||a.end)||g}))}else Number.isFinite(d)&&d>=0&&!h.Credits&&(h.Credits={used:0,total:d>0?d:1,remainingPercentage:100*(d>0),resetAt:g,unlimited:!1})}let r=Object.keys(h).length>0&&Object.values(h).every(a=>!0!==a.unlimited&&(a.remainingPercentage??100)<=0);return{plan:(c=W(b,e))?c.replace(/[_-]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()):b?.hasGrokCodeAccess===!0?"Grok Code":(e?.isUnifiedBillingUser,"Grok Build"),quotas:h,periodEnd:g,exhausted:r,subscriptionAccess:j,rawConfig:e}}(i,j);if(k.plan=function(a){try{return({0:"Free",1:"SuperGrok",2:"X Basic",3:"X Premium",4:"X Premium Plus",5:"SuperGrok Heavy",6:"SuperGrok Lite"})[JSON.parse(Buffer.from(a.split(".")[1],"base64url")).tier]||""}catch{return""}}(a)||k.plan,!k.quotas||0===Object.keys(k.quotas).length){var g;let b=(g=await Y(a,c))&&Number.isFinite(g.percentUsed)?{"Weekly SuperGrok":X({used:Math.round(Math.max(0,Math.min(100,g.percentUsed))),total:100,resetAt:g.resetAt||null})}:null;if(b)return{plan:k.plan,quotas:b};return{plan:k.plan,message:k.subscriptionAccess?"Subscription access is active; Grok does not expose a numeric included quota.":"Grok Build connected, but no credit allotment was returned. Free promo may be exhausted.",quotas:{}}}return{plan:k.plan,quotas:k.quotas}}catch(a){return{message:`Grok CLI usage error: ${a.message}`}}}let $={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function _({used:a,total:b,remaining:c,resetAt:d}){let e,g=Math.max(0,(0,f.IQ)(b,0)),h=Math.max(0,(0,f.IQ)(a,0));return e=g>0&&null!=c&&Number.isFinite(Number(c))?Math.max(0,Number(c))/g*100:g>0?Math.max(0,g-h)/g*100:0,{used:h,total:g,remainingPercentage:e,resetAt:d||null,unlimited:!1}}async function aa(a=null,b=null,c=null,e=null){let g="string"==typeof b&&b.length>0,h=!g&&"string"==typeof a&&a.length>0;if(!g&&!h)return{message:"Kimi access token or API key not available."};let i=g?{"x-api-key":b}:{Authorization:`Bearer ${a}`,...(0,j.buildKimiHeaders)(e?.deviceId)};try{let a,b=await (0,d.proxyAwareFetch)("https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{...i,"Content-Type":"application/json",Accept:"application/json"}},c),e=await b.text().catch(()=>"");if(!b.ok)return{plan:"Kimi Coding",message:function(a,b){let c=null;try{c=JSON.parse(b||"")}catch{}let d=Array.isArray(c?.details)?c.details[0]:null,e=d?.debug||c?.debug||null,f=e?.reason||c?.reason||"",g=e?.localizedMessage?.message||d?.localizedMessage?.message||c?.message||"";if(401===a)return"Kimi authentication expired. Please re-authorize.";if(403===a&&("REASON_FEATURE_NO_PERMISSION"===f||/permission_denied|do not have permission|subscribe/i.test(`${c?.code||""} ${g} ${b||""}`)))return g||"Kimi connected, but this account has no permission to view usage. Subscribe to Kimi Code to access quota.";let h=(g||b||"").slice(0,100);return h?`Kimi Coding connected. API Error ${a}: ${h}`:`Kimi Coding connected. API Error ${a}`}(b.status,e)};try{a=JSON.parse(e||"{}")}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let g={},h=a?.usage&&"object"==typeof a.usage?a.usage:{},j=(0,f.IQ)(h.limit??h.Limit,0),k=(0,f.IQ)(h.used??h.Used,0),l=h.remaining??h.Remaining,m=null!=l&&""!==l?(0,f.IQ)(l,NaN):NaN,n=h.resetTime||h.ResetTime||h.reset_at||h.resetAt;for(let b of(j>0&&(g.Weekly=_({used:k,total:j,remaining:Number.isFinite(m)?m:null,resetAt:(0,f.eZ)(n)})),Array.isArray(a?.limits)?a.limits:[])){if(!b||"object"!=typeof b)continue;let a=b.detail&&"object"==typeof b.detail?b.detail:{},c=(0,f.IQ)(a.limit??a.Limit,0),d=(0,f.IQ)(a.remaining??a.Remaining,NaN),e=a.resetTime||a.reset_at||a.resetAt;if(c>0){let a=Number.isFinite(d)?d:Math.max(0,c);g.Ratelimit=_({used:Math.max(0,c-a),total:c,remaining:a,resetAt:(0,f.eZ)(e)})}}let o=a?.user?.membership?.level,p=function(a){if(!a)return"";let b=String(a);return $[b]?$[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(o)||"Kimi Coding";if(Object.keys(g).length>0)return{plan:p,quotas:g};return{plan:p,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}async function ab(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"DeepSeek API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)("https://api.deepseek.com/user/balance",{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,"Content-Type":"application/json",Accept:"application/json"}},b);if(401===c.status||403===c.status)return{plan:"DeepSeek",message:"DeepSeek authentication failed. Check the API key."};if(!c.ok){let a=await c.text().catch(()=>"");return{plan:"DeepSeek",message:`DeepSeek balance API error (${c.status})${a?`: ${a.slice(0,120)}`:""}`}}let e=await c.json().catch(()=>null);if(!e||"object"!=typeof e)return{message:"DeepSeek balance response was not JSON."};let g=function(a){let b=Array.isArray(a?.balance_infos)?a.balance_infos:[],c=[];for(let a of b){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.currency?a.currency.toUpperCase():"";if(!b)continue;let d=(0,f.IQ)(a.total_balance??a.totalBalance,0);c.push({currency:b,totalBalance:d,grantedBalance:(0,f.IQ)(a.granted_balance??a.grantedBalance,0),toppedUpBalance:(0,f.IQ)(a.topped_up_balance??a.toppedUpBalance,0)})}return c}(e);if(0===g.length)return{plan:"DeepSeek",message:"DeepSeek connected. No balance data returned."};let h=!0===e.is_available||!0===e.isAvailable,i={};for(let a of g){let b=Math.max(0,a.totalBalance);i[`Balance (${a.currency})`]={used:0,total:b,remainingPercentage:100*(b>0),resetAt:null,unlimited:b>0}}return{plan:h?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:i}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}async function ac(a=null,b=null){let c=(a||"").trim();if(!c)return{message:"OpenCode Go API key not available. Add a key to view usage."};try{let a=await (0,d.proxyAwareFetch)("https://opencode.ai/zen/go/v1/usage",{method:"GET",headers:{Authorization:`Bearer ${c}`,Accept:"application/json"}},b);if(401===a.status||403===a.status)return{plan:"OpenCode Go",message:"OpenCode Go authentication failed. Check the API key."};if(!a.ok){let b=await a.text().catch(()=>"");return{plan:"OpenCode Go",message:`OpenCode Go usage API error (${a.status})${b?`: ${b.slice(0,120)}`:""}`}}let e=await a.json().catch(()=>null);if(!e||"object"!=typeof e)return{message:"OpenCode Go usage response was not JSON."};let g=e.usage&&"object"==typeof e.usage?e.usage:{},h={};for(let[a,b]of[["rolling","Rolling"],["weekly","Weekly"],["monthly","Monthly"]])if(g[a]&&"object"==typeof g[a]){let c=function(a,b){if(!b||"object"!=typeof b)return null;let c=Math.min(100,Math.max(0,(0,f.IQ)(b.percent,0))),d=Math.round(100-c),e=(0,f.eZ)(b.resetsAt);return void 0!==b.percent||e?{used:c,total:100,remainingPercentage:d,resetAt:e||null,recurring:!1,name:a}:null}(b,g[a]);c&&(h[b]=c)}if(0===Object.keys(h).length)return{plan:"OpenCode Go",message:"OpenCode Go connected. No quota data returned."};let i=String(g.status||e.status||"").toLowerCase();return{plan:"ok"===i?"OpenCode Go":`OpenCode Go (${g.status||e.status||""})`,quotas:h}}catch(a){return{message:`OpenCode Go error: ${a.message}`}}}let ad={rolling:"Rolling",weekly:"Weekly",monthly:"Monthly"};async function ae(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"OpenCode Zen API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)("https://opencode.ai/zen/v1/usage",{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,Accept:"application/json"}},b);if(401===c.status)return{plan:"OpenCode Zen",message:"OpenCode Zen authentication failed. Check the API key."};if(403===c.status){let a=await c.json().catch(()=>null),b=a?.error?.type==="EntitlementError";return{plan:"OpenCode Zen",message:b?"OpenCode Zen billing required for this API key.":"OpenCode Zen access forbidden for this API key."}}if(!c.ok)return{plan:"OpenCode Zen",message:`OpenCode Zen usage API error (${c.status}).`};let e=await c.json().catch(()=>null);if(!e?.usage||"object"!=typeof e.usage)return{plan:"OpenCode Zen",message:"OpenCode Zen usage response did not contain quota data."};let g={};for(let[a,b]of Object.entries(ad)){let c=e.usage[a];if(!c||"object"!=typeof c)continue;let d=function(a){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return null}(c.percent);if(null===d)continue;let h=Math.max(0,Math.min(100,(0,f.IQ)(d,0)));g[b]={used:h,total:100,remainingPercentage:100-h,resetAt:(0,f.eZ)(c.resetsAt),recurring:!1,name:b}}if(0===Object.keys(g).length)return{plan:"OpenCode Zen",message:"OpenCode Zen usage response did not contain valid quota data."};return{plan:"OpenCode Zen",quotas:g}}catch(a){return{message:`OpenCode Zen error: ${a.message}`}}}var af=c(12132);async function ag(a=null,b=null,c=null,{allowMachineSession:e=!0}={}){if(!e)return{plan:"Xiaomi MiMo",message:"Billed at standard API / plan rates — no separate quota to display."};let f=await (0,af.Fp)(b,c);if("number"==typeof f.percent&&Number.isFinite(f.percent))return{plan:"Xiaomi MiMo Desktop",quotas:{Weekly:ai(f.percent,f.resetAt,f.resetDate)}};let g=a||b?.apiKey,h="string"==typeof g?g.trim():"";if(h.startsWith("mimo-desktop-session"))return{plan:"Xiaomi MiMo Desktop",message:"MiMo Desktop is not signed in on this machine — sign in to it to read the weekly quota."};if(!h)return{message:"Xiaomi MiMo Desktop not connected. Add credentials to view usage."};try{let a=await (0,d.proxyAwareFetch)("https://aistudio.xiaomimimo.com/open-apis/v1/user/usage",{method:"GET",headers:{Authorization:`Bearer ${h}`,"X-Mimo-Source":"mimocode-cli",Accept:"application/json"},signal:AbortSignal.timeout(1e4)},c);if(401===a.status)return{plan:"Xiaomi MiMo Desktop",message:"Weekly quota requires Xiaomi account session. API key alone is insufficient."};if(!a.ok)return{plan:"Xiaomi MiMo Desktop",message:`Usage API error (${a.status})`};let b=await a.json().catch(()=>null);if(!b||0!==b.code||!b.data)return{plan:"Xiaomi MiMo Desktop",message:"Usage endpoint returned unexpected response."};let{percent:e,resetDate:f,resetAt:g}=b.data;if("number"!=typeof e||!Number.isFinite(e))return{plan:"Xiaomi MiMo Desktop",message:"Usage data missing percent field."};return{plan:"Xiaomi MiMo Desktop",quotas:{Weekly:ai(e,g,f)}}}catch(a){return{message:`Xiaomi MiMo Desktop usage error: ${a.message}`}}}async function ah(a=null,b=null,c=null){if(b?.mimoPassToken){let a=await (0,af.Fp)(b,c);if("number"==typeof a.percent&&Number.isFinite(a.percent))return{plan:"MiMo Token Plan",quotas:{Weekly:ai(a.percent,a.resetAt,a.resetDate)}}}return a&&"string"==typeof a&&a.trim()?{plan:"MiMo Token Plan",message:"Token Plan does not expose a quota API for standalone keys — check your plan usage in the MiMo console."}:{message:"API key not available. Add a key to view usage."}}function ai(a,b,c){let d=Math.max(0,Math.min(100,Math.round(a))),e=null;if("number"==typeof b&&b>0)e=new Date(1e3*b).toISOString();else if("string"==typeof c&&c){let a=new Date(`${c}T00:00:00Z`);Number.isNaN(a.getTime())||(e=a.toISOString())}return{used:100-d,total:100,remainingPercentage:d,resetAt:e,unlimited:!1,recurring:!0}}let aj={baseUrl:"https://api.stepfun.ai",currency:"USD",brand:"StepFun"},ak={baseUrl:"https://api.stepfun.com",currency:"CNY",brand:"StepFun CN"};async function al(a=null,b=null,c={}){let{baseUrl:e="https://api.stepfun.com",currency:g="CNY",brand:h="StepFun"}=c;if(!a||"string"!=typeof a||!a.trim())return{message:`${h} API key not available. Add a key to view usage.`};let i=`${e.replace(/\/$/,"")}/v1/accounts`;try{let c=await (0,d.proxyAwareFetch)(i,{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,"Content-Type":"application/json",Accept:"application/json"}},b);if(401===c.status||403===c.status)return{plan:h,message:`${h} authentication failed. Check the API key.`};if(!c.ok){let a=await c.text().catch(()=>"");return{plan:h,message:`${h} account API error (${c.status})${a?`: ${a.slice(0,120)}`:""}`}}let e=await c.json().catch(()=>null);if(!e||"object"!=typeof e)return{message:`${h} account response was not JSON.`};let j=(0,f.IQ)(e.balance,0),k=(0,f.IQ)(e.total_cash_balance,0),l=(0,f.IQ)(e.total_voucher_balance,0),m=j>0,n={},o=a=>({used:0,total:Math.max(0,a),remainingPercentage:100*(a>0),resetAt:null,displayRemaining:!0,unlimited:!1});return n[`Balance (${g})`]=o(j),l>0&&k>0?(n[`Cash (${g})`]=o(k),n[`Voucher (${g})`]=o(l)):l>0&&(n[`Voucher (${g})`]=o(l)),{plan:m?h:`${h} (Insufficient Balance)`,quotas:n}}catch(a){return{message:`${h} error: ${a.message}`}}}var am=c(53225),an=c(69704);let ao=(0,f.U)("vercel-ai-gateway").url;async function ap(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}let aq={session:"Session (5h)",weekly:"Weekly (7d)",monthly:"Monthly"};async function ar(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,e=await (0,d.proxyAwareFetch)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(401===e.status||403===e.status)return{message:"Ollama Cloud API key invalid or expired."};if(!e.ok)return{message:`Ollama Cloud usage API error (${e.status}).`};try{b=await e.json()}catch{return{message:"Ollama Cloud usage response was not JSON."}}let f=await (0,d.proxyAwareFetch)("https://ollama.com/api/me",{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Length":"0"}},c).then(a=>a.ok?a.json():null).catch(()=>null),g="string"==typeof f?.Plan?f.Plan:"",h=g?g.charAt(0).toUpperCase()+g.slice(1).toLowerCase():"Ollama Cloud",i=b?.limits&&"object"==typeof b.limits?b.limits:{},j="free"===g.toLowerCase()&&f?.CreatedAt?function(a,b=new Date){let c=new Date(a);if(Number.isNaN(c.getTime()))return null;let d=(b.getUTCFullYear()-c.getUTCFullYear())*12+(b.getUTCMonth()-c.getUTCMonth());for(let a=Math.max(0,d);a<=d+1;a++){let d=function(a,b){let c=a.getUTCMonth()+b,d=a.getUTCFullYear()+Math.floor(c/12),e=(c%12+12)%12,f=new Date(Date.UTC(d,e+1,0)).getUTCDate();return new Date(Date.UTC(d,e,Math.min(a.getUTCDate(),f),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds()))}(c,a);if(d>b)return d.toISOString()}return null}(f.CreatedAt):null,k={};for(let[a,b]of Object.entries(aq)){let c=i[a]?.usage;if(null==c)continue;let d=Number(c);Number.isNaN(d)||(k[b]=function(a,b=null){let c=Math.max(0,Math.min(1,Number(a)||0)),d=Math.round(100*c);return{used:d,total:100,remainingPercentage:100-d,resetAt:b,unlimited:!1}}(d,"monthly"===a?j:null))}if(0===Object.keys(k).length)return{plan:h,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};return{plan:h,quotas:k}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function as(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,d.proxyAwareFetch)(ao,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(401===c.status||403===c.status)return{message:"Vercel AI Gateway API key invalid or expired."};if(!c.ok){let a=await c.text().catch(()=>""),b=a?`: ${a.slice(0,200)}`:"";return{message:`Vercel AI Gateway credits API error (${c.status})${b}`}}let e=await c.json(),f=Number(e?.balance)||0,g=Number(e?.total_used)||0;if(f<=0&&g<=0)return{plan:"Pay-as-you-go",message:"Vercel AI Gateway connected. No credit allocation found (BYOK or unfunded account).",quotas:{}};return{plan:"Pay-as-you-go",quotas:{"Used (USD)":{used:g,total:0,remaining:0,remainingPercentage:100,unlimited:!0},"Remaining (USD)":{used:f,total:5,remaining:f,remainingPercentage:f/5*100,unlimited:!1}}}}catch(a){return{message:`Vercel AI Gateway error: ${a.message}`}}}async function at(a,b="qoder",c=null){if(!a||"string"!=typeof a)return null;try{let e="qoder-cn"===b?an.VD:an.Dg,f=await (0,d.proxyAwareFetch)(`${e}/api/v2/me/usages/big_model_credits`,{method:"GET",headers:{Cookie:a,Accept:"application/json",Referer:`${e}/account/usage`,"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}},c);if(!f.ok)return null;let g=await f.json().catch(()=>null);if(!g||!g.user_id)return null;let h=a=>{let b=g?.[a]?.quota_detail;return Array.isArray(b)?b.map(a=>({total:Number(a?.limit_value)||0,used:Number(a?.used_value)||0,remaining:Number(a?.remaining_value)||0,expiresAt:Number(a?.expires_at)>0?new Date(Number(a.expires_at)).toISOString():null,source:a?.source||null})).filter(a=>a.total>0).sort((a,b)=>(a.expiresAt||"9999").localeCompare(b.expiresAt||"9999")):[]},i=h("resource_package_quota"),j=h("plan_quota"),k=h("dedicated_resource_package_quota");if(!i.length&&!j.length&&!k.length)return null;return{packs:i,planRows:j,orgRows:k,resetAt:i[0]?.expiresAt||null,sourceUserId:g.user_id}}catch{return null}}async function au(a,b=null,c="qoder",e=null){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let g=(0,f.U)(c).url||(0,f.U)("qoder").url,h=await (0,d.proxyAwareFetch)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!h.ok)return{message:`Qoder connected. Usage fetch returned ${h.status}.`};let i=await h.json().catch(()=>null);if(!i)return{message:"Qoder connected. Usage response was not JSON."};let j=i.userQuota||{},k=i.addOnQuota||{},l=i.orgResourcePackage||{},m=Number.isFinite(Number(i.expiresAt))&&Number(i.expiresAt)>0?Number(i.expiresAt):null,n=m&&(m>=2534e11||new Date(m).getFullYear()>2099),o=m&&!n?new Date(m).toISOString():null,p=null,q=[],r=null,s=null,t=a=>{if(!Array.isArray(a)||0===a.length)return null;let b=b=>a.reduce((a,c)=>a+(Number(c[b])||0),0);return{total:b("total"),used:b("used"),remaining:b("remaining"),resetAt:a.find(a=>a.expiresAt)?.expiresAt||null}},u=e?.creditDaddyWebSession,v=!1;if(u?.cookie){let a=await at(u.cookie,c,b),d=e?.userId||null;!a||d&&a.sourceUserId&&d!==a.sourceUserId||(v=!0,q=[...a.planRows.map(a=>({...a,name:"Plan Credits"})),...a.packs].sort((a,b)=>String(a.expiresAt||"9999").localeCompare(String(b.expiresAt||"9999"))),p=q[0]?.expiresAt||null,r=t(a.planRows),s=t(a.orgRows))}if(!(q.length>0))try{let e="qoder-cn"===c?an.jJ:an.L7,f=`${e}/sash/api/v1/me/campaigns?clientType=10`,g=await (0,d.proxyAwareFetch)(f,{method:"GET",headers:{Authorization:`Bearer ${a}`,"Cosy-ClientType":"10","Cosy-Version":"0.3.3","User-Agent":"Qoder",Accept:"application/json"}},b);if(g.ok){let a=await g.json().catch(()=>null),b=function({campaigns:a=[],used:b=0,total:c=0,now:d=Date.now()}={}){let e=a.filter(a=>a?.claimStatus==="CLAIMED"&&a?.benefit?.kind==="CREDITS"),f=[];for(let a of e){let b=a.benefit?.validity,c=null;b?.mode==="FIXED_END"&&b.fixedEnd?c=new Date(b.fixedEnd).getTime():b?.mode==="RELATIVE_DAYS"&&b.days&&a.startAt&&(c=1e3*a.startAt+864e5*b.days);let e=Number(a.benefit?.amount)||0;!Number.isFinite(c)||c<=d||e<=0||f.push({total:e,expiresAt:new Date(c).toISOString()})}f.sort((a,b)=>new Date(a.expiresAt)-new Date(b.expiresAt));let g=Math.max(0,Number(b)||0);for(let a of f){let b=Math.min(g,a.total);a.used=b,a.remaining=a.total-b,g-=b}let h=f.reduce((a,b)=>a+b.total,0),i=(Number(c)||0)-h;if(f.length>0&&i>0){let a=Math.min(g,i);f.push({total:i,expiresAt:null,used:a,remaining:i-a,unitemized:!0})}return{packs:f,resetAt:f.length>0&&f[0].expiresAt||null}}({campaigns:a?.campaigns||[],used:Number(k.used)||0,total:Number(k.total)||0});q=b.packs,p=b.resetAt}}catch{}let w=r||{total:Number(j.total)||0,used:Number(j.used)||0,remaining:Number(j.remaining)||0},x=s||{total:Number(l.total)||0,used:Number(l.used)||0,remaining:Number(l.remaining)||0},y=a=>q.reduce((b,c)=>b+(Number(c[a])||0),0),z=q.length>0?{total:y("total"),used:y("used"),remaining:y("remaining")}:{total:Number(k.total)||0,used:Number(k.used)||0,remaining:Number(k.remaining)||0};return{quotas:{user:{total:w.total,used:w.used,remaining:w.remaining,unit:j.unit||"credits",resetAt:w.resetAt||o,unlimited:!1},addOn:{total:z.total,used:z.used,remaining:z.remaining,unit:k.unit||"credits",resetAt:p,unlimited:!1,packs:q},organization:{total:x.total,used:x.used,remaining:x.remaining,unit:l.unit||"credits",resetAt:x.resetAt||o,unlimited:!1}},totalUsagePercentage:Number(i.totalUsagePercentage)||0,isQuotaExceeded:!!i.isQuotaExceeded,expiresAt:m,...u?.cookie&&!v?{webSessionExpired:!0}:{}}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let av={international:(0,f.U)("glm").url,china:(0,f.U)("glm-cn").url};async function aw(a,b,c=null){if(!a)return{message:"GLM API key not available."};let e=av["glm-cn"===b?"china":"international"];try{let b=await (0,d.proxyAwareFetch)(e,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(!b.ok){if(401===b.status)return{message:"GLM API key invalid or expired."};return{message:`GLM quota API error (${b.status}).`}}let f=await b.json(),{plan:g,quotas:h}=function(a){let b=a?.data&&"object"==typeof a.data?a.data:{},c=Array.isArray(b.limits)?b.limits:[],d={};for(let a of c){if(!a||"TOKENS_LIMIT"!==a.type&&"CREDIT_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,e=Math.max(0,100-b);d[3===a.unit?`Session (${a.number}h)`:6===a.unit?"Weekly (7d)":"TOKENS_LIMIT"===a.type?"Tokens":`Limit (${a.number})`]={used:b,total:100,remaining:e,remainingPercentage:e,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let e="string"==typeof b.level?b.level:"";return{plan:e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"Unknown",quotas:d}}(f);return{plan:g,quotas:h}}catch(a){return{message:`GLM error: ${a.message}`}}}let ax={"individual-go":"Go","individual-goat":"GOAT","individual-pro":"Pro","individual-pro-v1":"Pro (Legacy)","individual-provider":"BYOK","individual-max":"Max 10x","individual-ultra":"Max 20x","teams-pro":"Team Pro"},ay={"individual-go":10,"individual-goat":70,"individual-pro":30,"individual-pro-v1":80,"individual-max":150,"individual-ultra":300,"teams-pro":40};function az(a){return Math.round(1e4*(0,f.IQ)(a,0))/1e4}async function aA(a,b=null){if(!a||"string"!=typeof a)return{message:"Command Code API key not configured."};let c=(0,f.U)("commandcode"),e=c?.creditsUrl||"https://api.commandcode.ai/alpha/billing/credits",g=c?.subscriptionsUrl||"https://api.commandcode.ai/alpha/billing/subscriptions",h={Authorization:`Bearer ${a.trim()}`,"x-command-code-version":"1.53.1","x-cli-environment":"cli","User-Agent":"cli","Content-Type":"application/json",Accept:"application/json"};try{let a=(0,d.proxyAwareFetch)(e,{method:"GET",headers:h},b),c=Promise.resolve().then(()=>(0,d.proxyAwareFetch)(g,{method:"GET",headers:h},b)).catch(()=>null),[i,j]=await Promise.all([a,c]);if(401===i.status||403===i.status)return{message:"Command Code API key invalid or expired."};if(!i.ok)return{message:`Command Code credits API error (${i.status}).`};let k=await i.json(),l=null;if(j&&j.ok)try{l=await j.json()}catch{l=null}let m=l?.data?.planId||null,n=ax[m]||(m?m.replace(/^individual-/,""):"Command Code"),o=l?.data?.currentPeriodEnd||null,p=k?.windowLimits||{},q=k?.credits||{},r={};if(p.fiveHour){let a=(0,f.IQ)(p.fiveHour.cap,0),b=az(p.fiveHour.used),c=Math.max(0,az(a-b)),d=a>0?Math.max(0,Math.min(100,Math.round(c/a*100))):100;r["session (5h)"]={used:b,total:a,remaining:c,remainingPercentage:d,resetAt:(0,f.eZ)(p.fiveHour.resetAt),unlimited:!1,recurring:!0}}if(p.weekly){let a=(0,f.IQ)(p.weekly.cap,0),b=az(p.weekly.used),c=Math.max(0,az(a-b)),d=a>0?Math.max(0,Math.min(100,Math.round(c/a*100))):100;r["weekly (7d)"]={used:b,total:a,remaining:c,remainingPercentage:d,resetAt:(0,f.eZ)(p.weekly.resetAt),unlimited:!1,recurring:!0}}if(void 0!==q.monthlyCredits&&null!==q.monthlyCredits){let a=az(q.monthlyCredits),b=(0,f.IQ)(q.monthlyCreditsGranted)||ay[m]||Math.ceil(a)||10,c=Math.max(0,az(b-a)),d=b>0?Math.max(0,Math.min(100,Math.round(a/b*100))):100;r["Monthly Credits"]={used:c,total:b,remaining:a,remainingPercentage:d,resetAt:(0,f.eZ)(o),unlimited:!1,recurring:!0}}if(q.purchasedCredits&&q.purchasedCredits>0){let a=az(q.purchasedCredits);r["Purchased Credits"]={used:0,total:a,remaining:a,remainingPercentage:100,resetAt:null,unlimited:!1,recurring:!1}}return{plan:n,quotas:r}}catch(a){return{message:`Command Code usage fetch failed: ${a.message}`}}}let aB={github:a=>h(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>s(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>u(a.accessToken,a.providerSpecificData,a.proxyOptions,{force:a.force}),claude:a=>(0,w.gl)(a.accessToken,a.proxyOptions,{force:a.force}),codex:a=>(0,x.Tl)(a.accessToken,a.proxyOptions),kiro:a=>z(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:async a=>{let b=await (0,am._M)(a,a.proxyOptions).catch(()=>null);return au(b?.accessToken||a.accessToken,a.proxyOptions,"qoder",a.providerSpecificData)},"qoder-cn":async a=>{let b=await (0,am._M)(a,a.proxyOptions).catch(()=>null);return au(b?.accessToken||a.accessToken,a.proxyOptions,"qoder-cn",a.providerSpecificData)},iflow:a=>ap(a.accessToken),ollama:a=>ar(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>aw(a.apiKey||a.accessToken,a.provider,a.proxyOptions),"glm-cn":a=>aw(a.apiKey||a.accessToken,a.provider,a.proxyOptions),minimax:a=>H(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>H(a.apiKey,a.provider,a.proxyOptions),"vercel-ai-gateway":a=>as(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>K(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"codebuddy-intl":a=>L(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"grok-cli":a=>Z(a.accessToken,a.providerSpecificData,a.proxyOptions),kimi:a=>aa(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),deepseek:a=>ab(a.apiKey,a.proxyOptions),"opencode-go":a=>ac(a.apiKey,a.proxyOptions),"opencode-zen":a=>ae(a.apiKey,a.proxyOptions),"xiaomi-mimo":a=>ag(a.accessToken,a.providerSpecificData,a.proxyOptions,{allowMachineSession:!1}),"mimo-desktop":a=>ag(a.accessToken,a.providerSpecificData,a.proxyOptions),"xiaomi-tokenplan":a=>ah(a.apiKey,a.providerSpecificData,a.proxyOptions),stepfun:a=>al(a.apiKey,a.proxyOptions,aj),"stepfun-cn":a=>al(a.apiKey,a.proxyOptions,ak),commandcode:a=>aA(a.apiKey,a.proxyOptions)};async function aC(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,providerSpecificData:g,projectId:h}=a,i={...g||{},...h?{projectId:h}:{}},j=aB[d];return j?await j({provider:d,accessToken:e,apiKey:f,providerSpecificData:g,providerDataWithProjectId:i,proxyOptions:b,force:!0===c.force}):{message:`Usage API not implemented for ${d}`}}},39326:(a,b,c)=>{c.d(b,{B:()=>j,p:()=>i});var d=c(71998),e=c(72082);function f(a){return null==a?"":String(a).trim()}function g(a){let b=f(a);if(!b)return"";if((0,e.isEncrypted)(b))try{return f((0,e.decryptSecret)(b))}catch(a){console.warn(`[ConnectionProxy] Could not decrypt proxy URL: ${a?.message||a}`)}return b}let h=new Map;function i(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=h.get(c)||{index:-1};return b.index=(b.index+1)%a.length,h.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function j(a={}){try{let b=f(a?.proxyPoolId),c="__none__"===b?"":b,e=function(a={}){let b=a?.connectionProxyEnabled===!0,c=g(a?.connectionProxyUrl),d=f(a?.connectionNoProxy);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d,strictProxy:a?.strictProxy===!0}}(a),h=!1;if(c){let a=await (0,d.hr)(c);h=a?.strictProxy===!0;let b=g(a?.proxyUrl),e=f(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:e,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:e,strictProxy:!0===a.strictProxy}}}if(e.connectionProxyEnabled&&e.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...e,strictProxy:h||e.strictProxy};return{source:"none",proxyPoolId:c||null,proxyPool:null,...e,strictProxy:h||e.strictProxy}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},69788:(a,b,c)=>{c.d(b,{Ut:()=>l,gl:()=>j});var d=c(39609),e=c(74129),f=c(24295);let g={oauthUsageUrl:(0,f.U)("claude").oauthUrl,usageUrl:(0,f.U)("claude").orgUrl,settingsUrl:(0,f.U)("claude").settingsUrl,profileUrl:(0,f.U)("claude").profileUrl,resetUrl:(0,f.U)("claude").resetUrl,apiVersion:e.b8,userAgent:`claude-cli/${e.t4} (external, cli)`},h=new Map,i=new Map;async function j(a,b=null,c={}){let d=c?.force===!0;if(!d&&a){let b=i.get(a);if(b?.promise)return b.promise;if(b&&b.expiresAt>Date.now())return b.result}let e=!d&&a&&i.get(a)?.result||null,f=(async()=>{let c=await k(a,b);return a&&c?.quotas?(i.set(a,{result:c,expiresAt:Date.now()+3e5}),c):e||c})();return a&&i.set(a,{promise:f}),f}async function k(a,b=null){try{let c=h.get(a);if(c&&Date.now()<c)return await m(a,b);let e=await (0,d.proxyAwareFetch)(`${g.oauthUsageUrl}?cedar_ember=1`,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion,"User-Agent":g.userAgent}},b);if(e.ok){let a=await e.json(),b={},c=a=>a&&"object"==typeof a&&"number"==typeof a.utilization,d=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:(0,f.eZ)(a.resets_at),unlimited:!1}};c(a.five_hour)&&(b["session (5h)"]=d(a.five_hour)),c(a.seven_day)&&(b["weekly (7d)"]=d(a.seven_day));let g={fable_5_1:"fable",fable_5:"fable"};for(let[e,f]of Object.entries(a))if(e.startsWith("seven_day_")&&"seven_day"!==e&&c(f)){let a=e.replace("seven_day_",""),c=g[a]||a;b[`weekly ${c} (7d)`]=d(f)}else("fable"===e||"fable_5"===e||"fable_5_1"===e)&&c(f)&&(b["weekly fable (7d)"]=d(f));return!b["weekly fable (7d)"]&&c(a.seven_day)&&(b["weekly fable (7d)"]={used:0,total:100,remaining:100,remainingPercentage:100,resetAt:(0,f.eZ)(a.seven_day.resets_at),unlimited:!1}),{plan:"Claude Code",extraUsage:a.extra_usage??null,resetCredits:function(a){if(!a?.eligible||!Array.isArray(a.grants))return null;let b=a.grants.filter(a=>a?.id&&!a.paused&&Number(a.resets_left)>0),c=b.find(b=>b.id===a.next_grant_id)||b[0]||null;return{availableCount:b.reduce((a,b)=>a+Number(b.resets_left),0),nextGrantId:c?.id||null,expiresAt:c?.ends_at||null,clears:c?.clears||[],cooldownUntil:a.cooldown_until||null,weeklyResetsAt:a.weekly_resets_at||null,grants:a.grants.filter(a=>a?.id).map(a=>({id:a.id,label:a.label||"",resetsLeft:Number(a.resets_left)||0,resetsTotal:Number(a.resets_total)||0,startsAt:a.starts_at||null,endsAt:a.ends_at||null,clears:Array.isArray(a.clears)?a.clears:[],paused:!0===a.paused,usableNow:!0===a.usable_now,useRequiresLimit:!1!==a.use_requires_limit}))}}(a.cedar_ember),quotas:b}}return 429===e.status&&h.set(a,Date.now()+18e4),console.warn(`[Claude Usage] OAuth endpoint returned ${e.status}, falling back to legacy`),await m(a,b)}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}async function l(a,b,c=null){if(!a)throw Error("No Claude access token available. Please re-authorize the connection.");if(!/^[a-z0-9_-]{1,40}$/.test(b||""))throw Error("Invalid reset grant id.");let e={Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion,"User-Agent":g.userAgent,"Content-Type":"application/json"},f=await (0,d.proxyAwareFetch)(g.profileUrl,{method:"GET",headers:e},c),h=await f.json().catch(()=>null),j=h?.organization?.uuid;if(!f.ok||!j)throw Error(`Cannot resolve Claude organization (${f.status}).`);let k=await (0,d.proxyAwareFetch)(g.resetUrl.replace("{org_id}",j),{method:"POST",headers:e,body:JSON.stringify({program:"cedar_ember",grant_id:b,request_id:crypto.randomUUID()})},c),m=await k.json().catch(()=>null);return i.delete(a),{ok:k.ok&&m?.result==="reset",status:k.status,result:m?.result||null,reason:m?.reason||null,resetsLeft:m?.resets_left??null,message:m?.error?.message||null}}async function m(a,b=null){try{let c=await (0,d.proxyAwareFetch)(g.settingsUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let e=await c.json();if(e.organization_id){let c=await (0,d.proxyAwareFetch)(g.usageUrl.replace("{org_id}",e.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let a=await c.json();return{plan:e.plan||"Unknown",organization:e.organization_name,quotas:a}}}return{plan:e.plan||"Unknown",organization:e.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.getProviderConnections,h1:()=>d.h1,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.updateProviderConnection,uv:()=>d.uv});var d=c(89718)},78661:(a,b,c)=>{c.d(b,{Y:()=>d});function d(a){if(!a||"object"!=typeof a||!a.quotas)return null;let b=1/0,c=null,d=null,e=Date.now();for(let[f,g]of Object.entries(a.quotas)){if(!g||"object"!=typeof g)continue;let a=f.toLowerCase();if(a.includes("total")||a.includes("aggregate")||a.includes("summary"))continue;if(!0!==g.recurring){let a=Number(g.used??0),b=Number(g.total??0);if(b>0&&a>=b||void 0!==g.remaining&&g.remaining<=0||void 0!==g.remainingPercentage&&g.remainingPercentage<=0)continue}if(!g.resetAt)continue;let h=new Date(g.resetAt).getTime();!isNaN(h)&&h>e&&h<b&&2099>=new Date(h).getFullYear()&&(b=h,c=f,d=g.resetAt instanceof Date?g.resetAt.toISOString():String(g.resetAt))}return b<1/0?{expiry:d,name:c,timestamp:b}:null}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2752,exports.ids=[2752],exports.modules={1133:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{configureQuotaAutoPing:()=>z,runQuotaAutoPingTick:()=>w,startQuotaAutoPing:()=>x,stopQuotaAutoPing:()=>y});var e=c(48895),f=c(89718),g=c(69788),h=c(6551),i=c(55330),j=c(74129),k=c(39609),l=c(39326),m=c(18271),n=c(30869),o=a([e,i,m]);[e,i,m]=o.then?(await o)():o;let A=n.oc,B={claude:{getUsage:g.gl,sendPing:s},codex:{getUsage:h.Tl,sendPing:u}},C=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{}};function p(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function q(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function r(a){if(!a||!0===a.unlimited)return!1;let b=q(a.remaining);if(null!==b)return b<=0;let c=q(a.used),d=q(a.total);return null!==d&&d>0&&null!==c&&c>=d}async function s(a,b,c,d){return(await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...j.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c)).ok}async function t(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function u(a,b,c,d){var e;let f=d.getExecutor("codex"),{response:g}=await f.execute({model:b.pingModel,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,providerSpecificData:a.providerSpecificData},proxyOptions:c,log:console,body:{model:b.pingModel,input:(e=b.pingText,[{type:"message",role:"user",content:[{type:"input_text",text:e}]}]),instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await t(g),!0}async function v(a,b,c,d,e,f=C){var g,h,i;let j=(g=a.id,`${b}:${g}`),k=f.resetCache[j];if(!c.pingWhenResetAtSlides&&k&&Date.now()<new Date(k).getTime()-A.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<A.failureCooldownMs}(f,j))return;let l=(h=await e.resolveConnectionProxyConfig(a.providerSpecificData),{connectionProxyEnabled:!0===h.connectionProxyEnabled,connectionProxyUrl:h.connectionProxyUrl||"",connectionNoProxy:h.connectionNoProxy||"",vercelRelayUrl:h.vercelRelayUrl||"",strictProxy:!1}),m=a;try{m=(await e.refreshAndUpdateCredentials(m,!1,l)).connection}catch(c){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let n=await d.getUsage(m.accessToken,l),o=n?.quotas||{},q=o?.[c.quotaKey],s=q?.resetAt;if(!s||(f.resetCache[j]=s,c.skipWhenBlockingQuotaExhausted&&(i=c.quotaKey,Object.entries(o||{}).some(([a,b])=>a!==i&&!String(a).toLowerCase().includes("session")&&r(b)))||r(q)))return;let t=Date.now(),u=p(s),w=m.lastPingedResetKey||p(m.lastPingedResetAt);if(!(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-A.pingLeadMs}(c,k,s,t)||function(a,b,c=Date.now()){if(!b)return!1;let d=new Date(a.lastPingAt).getTime();return Number.isFinite(d)&&c-d<b}(m,c.minPingIntervalMs,t))&&w!==u){if(!await d.sendPing(m,c,l,e)){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: ping failed (reset ${s})`);return}delete f.failureCache[j],await e.updateProviderConnection(m.id,{lastPingedResetAt:s,lastPingedResetKey:u,lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),console.log(`[AutoPing] ${b}:${m.id}: ping sent (reset ${s})`)}}async function w(a={getSettings:f.getSettings,getProviderConnections:f.getProviderConnections,updateProviderConnection:f.updateProviderConnection,resolveConnectionProxyConfig:l.B,refreshAndUpdateCredentials:m.refreshAndUpdateCredentials,proxyAwareFetch:k.proxyAwareFetch,getExecutor:i.SB},b=C){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(A.providers)){let g=B[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await v(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function x(){!C.interval&&(console.log("[AutoPing] scheduler started"),w().catch(()=>{}),C.interval=setInterval(()=>{w().catch(()=>{})},A.tickIntervalMs),C.interval.unref&&C.interval.unref())}function y(){C.interval&&(clearInterval(C.interval),C.interval=null,console.log("[AutoPing] scheduler stopped"))}function z(a){Object.values(A.providers).some(b=>Object.values(a?.[b.settingsKey]?.connections||{}).some(Boolean))?x():y()}d()}catch(a){d(a)}})},7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h++,a}function j(a){if(!a)return i();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},18271:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>p,computeConnectionUsage:()=>q,refreshAndUpdateCredentials:()=>o});var e=c(48895),f=c(89718),g=c(27323),h=c(78661),i=c(8521),j=c(67828),k=c(55330),l=c(39326),m=c(40615),n=a([e,k]);[e,k]=n.then?(await n)():n;let r=["expired","authentication","unauthorized","401","re-authorize"];async function o(a,b=!1,c=null){let d=a.id?await (0,f.Mc)(a.id):null;d&&(a=d);let e=(0,k.SB)(a.provider),g={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||e.needsRefresh(g)))return{connection:a,refreshed:!1};let h=await e.refreshCredentials(g,console,c);if(h&&(0,i.jT)(h))throw await (0,j.Ug)(a.id,{provider:a.provider,reason:h,log:console}),Error(j.Ul);if(!h){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let l={updatedAt:new Date().toISOString()};h.accessToken&&(l.accessToken=h.accessToken),h.refreshToken&&(l.refreshToken=h.refreshToken),h.idToken&&(l.idToken=h.idToken),h.lastRefreshAt&&(l.lastRefreshAt=h.lastRefreshAt),h.expiresIn?(l.expiresAt=new Date(Date.now()+1e3*h.expiresIn).toISOString(),l.expiresIn=h.expiresIn):h.expiresAt&&(l.expiresAt=h.expiresAt);let m={...h.providerSpecificData||{},...h.copilotToken?{copilotToken:h.copilotToken}:{},...h.copilotTokenExpiresAt?{copilotTokenExpiresAt:h.copilotTokenExpiresAt}:{}};return Object.keys(m).length>0&&(l.providerSpecificData={...a.providerSpecificData||{},...m}),await (0,f.updateProviderConnection)(a.id,l),{connection:{...a,...l,providerSpecificData:l.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function p(a,{params:b}){let c,{connectionId:d}=await b,e="1"===new URL(a.url).searchParams.get("force");try{c=await (0,f.Mc)(d)}catch(a){return console.warn(`[Usage] unknown: ${a.message}`),Response.json({error:a.message},{status:500})}if(!c)return Response.json({error:"Connection not found"},{status:404});let{status:g,body:h}=await q(c,{force:e});return Response.json(h,200===g?void 0:{status:g})}async function q(a,{force:b=!1}={}){try{let c="oauth"===a.authType,d=("apikey"===a.authType||"api_key"===a.authType)&&m.jO.includes(a.provider);if(!c&&!d)return{status:200,body:{message:"Usage not available for this connection"}};let e=await (0,l.B)(a.providerSpecificData),i={connectionProxyEnabled:!0===e.connectionProxyEnabled,connectionProxyUrl:e.connectionProxyUrl||"",connectionNoProxy:e.connectionNoProxy||"",vercelRelayUrl:e.vercelRelayUrl||"",strictProxy:!1};if(c)try{a=(await o(a,!1,i)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),{status:401,body:{error:`Credential refresh failed: ${a.message}`}}}let j=await (0,g.my)(a,i,{force:b});if(c&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return r.some(a=>b.includes(a))}(j)&&a.refreshToken)try{a=(await o(a,!0,i)).connection,j=await (0,g.my)(a,i,{force:b})}catch(b){console.warn(`[Usage] ${a.provider}: force refresh failed: ${b.message}`)}try{let b=(0,h.Y)(j);b?await (0,f.updateProviderConnection)(a.id,{earliestPackageExpiry:b.expiry,earliestPackageName:b.name,quotaCheckedAt:new Date().toISOString()}):j&&j.quotas&&await (0,f.updateProviderConnection)(a.id,{earliestPackageExpiry:null,earliestPackageName:null,quotaCheckedAt:new Date().toISOString()})}catch(b){console.warn(`[Usage API] Failed to update package expiry for ${a.id}:`,b.message)}return{status:200,body:j}}catch(c){let b=a?.provider??"unknown";return console.warn(`[Usage] ${b}: ${c.message}`),{status:500,body:{error:c.message}}}}d()}catch(a){d(a)}})},85081:(a,b,c)=>{c.d(b,{Ay:()=>j});var d=c(77598);let e=function(a){return Array.isArray(a)?a=Buffer.from(a):"string"==typeof a&&(a=Buffer.from(a,"utf8")),(0,d.createHash)("sha1").update(a).digest()},f=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,g=function(a){let b;if(!("string"==typeof a&&f.test(a)))throw TypeError("Invalid UUID");return Uint8Array.of((b=parseInt(a.slice(0,8),16))>>>24,b>>>16&255,b>>>8&255,255&b,(b=parseInt(a.slice(9,13),16))>>>8,255&b,(b=parseInt(a.slice(14,18),16))>>>8,255&b,(b=parseInt(a.slice(19,23),16))>>>8,255&b,(b=parseInt(a.slice(24,36),16))/0x10000000000&255,b/0x100000000&255,b>>>24&255,b>>>16&255,b>>>8&255,255&b)};var h=c(50122);function i(a,b,c,d){var f=b,i=d;let j="string"==typeof a?function(a){let b=new Uint8Array((a=unescape(encodeURIComponent(a))).length);for(let c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b}(a):a,k="string"==typeof f?g(f):f;if("string"==typeof f&&(f=g(f)),f?.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+j.length);if(l.set(k),l.set(j,k.length),(l=e(l))[6]=15&l[6]|80,l[8]=63&l[8]|128,c){if((i=i||0)<0||i+16>c.length)throw RangeError(`UUID byte range ${i}:${i+15} is out of buffer bounds`);for(let a=0;a<16;++a)c[i+a]=l[a];return c}return(0,h.k)(l)}i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8";let j=i}};
@@ -1 +0,0 @@
1
- exports.id=2978,exports.ids=[2978,3659,3662],exports.modules={3662:(a,b,c)=>{"use strict";c.d(b,{$e:()=>i,AZ:()=>m,Dt:()=>k,EQ:()=>f,LY:()=>d,O:()=>e,X8:()=>j,fh:()=>h,qS:()=>o,t2:()=>l,wf:()=>g,yD:()=>n});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Not found (wrong endpoint path, or the model does not exist)",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=864e5,j={short:6e4,long:6e5},k=3e5,l=[{provider:"codex",text:"model is not supported when using codex with a chatgpt account",cooldownMs:18e5},{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"unapproved channel",channelScope:!0,cooldownMs:j.short},{text:"illegal api invocation",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}],m=/real-name verification|realname|\bface verification\b|实名认证/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。"},o="上游要求该账号先完成实名认证(real-name verification),未完成前所有调用都会被拒绝;请按上游提示的地址完成核验后重试。"},7803:(a,b,c)=>{"use strict";c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h++,a}function j(a){if(!a)return i();let b=0;for(let c=0;c<a.length;c++)b=31*b+a.charCodeAt(c)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},40542:(a,b,c)=>{"use strict";c.d(b,{uO:()=>I,Pt:()=>F,Tr:()=>G,c1:()=>D,C$:()=>C,kI:()=>H,vk:()=>E});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(40615),i=c(27323),j=c(78661),k=c(67828),l=c(2521),m=c(43659),n=c(41004),o=c(73024),p=c.n(o),q=c(76760),r=c.n(q),s=c(73136);let t=(()=>{try{return r().dirname((0,s.fileURLToPath)("file:///F:/Files/GitHub%20Files/10router/src/i18n/serverTranslate.js"))}catch{return null}})(),u=[r().join(process.cwd(),"public","i18n","literals"),...t?[r().join(t,"..","..","public","i18n","literals")]:[]],v={"zh-cn":"zh-CN","zh-hans":"zh-CN","zh-tw":"zh-TW","zh-hant":"zh-TW","pt-br":"pt-BR","pt-pt":"pt-PT"},w=new Map([["en",null]]);function x(a){if(w.has(a))return w.get(a);let b=null;for(let c of u)try{b=JSON.parse(p().readFileSync(r().join(c,`${a}.json`),"utf8"));break}catch{}return w.set(a,b),b}function y(a){let b=a.toLowerCase();if(v[b])return v[b];let c=b.split("-")[0];return"zh"===c?"zh-CN":"pt"===c?"pt-BR":"en"===b?"en":/^[a-z]{2,3}$/.test(c)?c:"en"}var z=c(7803);let A=Promise.resolve(),B=new Set;async function C(a){try{for(let b of(await (0,d.getProviderConnections)({provider:a})))b?.id&&await (0,d.updateProviderConnection)(b.id,{quotaCheckedAt:null})}catch{}}async function D(a,b=null,c=null,g={}){let l,m=b instanceof Set?b:b?new Set([b]):new Set,n=g?.preferredConnectionId||null,o=g?.requestedModel||c,p=A;A=new Promise(a=>{l=a});try{let b;await p;let g=(0,h.rs)(a),l="zcode-free"===g||"minimax-free"===g||"trae-free"===g,q=!!l&&(await (0,d.getProviderConnections)({provider:g,isActive:!0})).length>0;if(h.IS[g]?.noAuth&&!q){let a=await (0,d.getSettings)(),b=(a.zcodeGatewayHost||"").trim(),c={};if(l)try{let d=(a.zcodeGatewayPath||"").trim()||"/gateway/zcode/v1/messages";"minimax-free"===g?d=(a.minimaxGatewayPath||"").trim()||"/gateway/minimax/v1/messages":"trae-free"===g&&(d=(a.traeGatewayPath||"").trim()||"/gateway/trae/v1/messages");let e=new URL(`http://127.0.0.1:47860${d.startsWith("/")?"":"/"}${d}`);e.hostname=b||"127.0.0.1";let f=Number((a.zcodeGatewayPort||"").trim());Number.isInteger(f)&&f>0&&f<65536&&(e.port=String(f)),c.baseUrl=e.toString()}catch{}let f=(a.providerStrategies||{})[g]||{},h=f.rotateStrategy||"none",i=f.proxyPoolId||null;if("none"!==h){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);i=(0,e.p)(a,h,g)}let j=await (0,e.B)({proxyPoolId:i||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{...c,connectionProxyEnabled:j.connectionProxyEnabled,connectionProxyUrl:j.connectionProxyUrl,connectionNoProxy:j.connectionNoProxy,connectionProxyPoolId:j.proxyPoolId||null,vercelRelayUrl:j.vercelRelayUrl||"",strictProxy:!0===j.strictProxy}}}let r=await (0,d.getProviderConnections)({provider:g,isActive:!0});if(z.debug("AUTH",`${a} | total connections: ${r.length}, excludeIds: ${m.size>0?[...m].join(","):"none"}, model: ${c||"any"}`),0===r.length)return z.warn("AUTH",`No credentials for ${a}`),null;let s=r.filter(a=>{if(m.has(a.id)||(0,f.Bl)(a,c)||(0,f.a8)(a))return!1;let b=a.providerSpecificData?.enabledModels;return!("codex"===g&&Array.isArray(b))||!b.length||!o||!!b.includes(o)});if(z.debug("AUTH",`${a} | available: ${s.length}/${r.length}`),r.forEach(a=>{let b=m.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);z.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===s.length){let b=r.filter(a=>(0,f.Bl)(a,c)),d=r.filter(a=>(0,f.a8)(a)),e=[...b.map(a=>(0,f.kJ)(a)),...d.map(a=>a.needsReauthUntil)].filter(Boolean).sort()[0]||null;if(e){let g=b[0]||d[0],h=0===b.length&&d.length>0,i=h?k.Ul:g?.lastError;return z.warn("AUTH",`${a} | all ${r.length} accounts ${h?"need re-auth":"locked"} for ${c||"all"} (${(0,f.Qo)(e)}) | lastError=${i?.slice(0,50)}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,f.Qo)(e),lastError:i||null,lastErrorCode:h?401:g?.errorCode||null}}return z.warn("AUTH",`${a} | all ${r.length} accounts unavailable`),null}let t=await (0,d.getSettings)(),u=(t.providerStrategies||{})[g]||{},v=u.fallbackStrategy||t.fallbackStrategy||"fill-first",w=!0===u.earliestExpiryFirst,x=(0,f.d5)(t.channelBlocks?.[g]);x>0?z.debug("AUTH",`${g} | channel blocked (${Math.ceil(x/1e3)}s left) — skipping quota refresh`):w&&s.length>1&&function(a){let b=Date.now();for(let c of a)!(!c.id||B.has(c.id))&&(b-(c.quotaCheckedAt?new Date(c.quotaCheckedAt).getTime():0)<9e5||(B.add(c.id),(async()=>{try{let a=await (0,e.B)(c.providerSpecificData||{}),b={connectionProxyEnabled:!0===a.connectionProxyEnabled,connectionProxyUrl:a.connectionProxyUrl||"",connectionNoProxy:a.connectionNoProxy||"",vercelRelayUrl:a.vercelRelayUrl||""},f=await (0,i.my)(c,b),g=(0,j.Y)(f);await (0,d.updateProviderConnection)(c.id,{earliestPackageExpiry:g?.expiry||null,earliestPackageName:g?.name||null,quotaCheckedAt:new Date().toISOString()})}catch{}finally{B.delete(c.id)}})()))}(s);let y=s;if(w&&s.length>1){let a=Date.now();y=[...s].sort((b,c)=>{let d=b.earliestPackageExpiry&&new Date(b.earliestPackageExpiry).getTime()>a?new Date(b.earliestPackageExpiry).getTime():1/0,e=c.earliestPackageExpiry&&new Date(c.earliestPackageExpiry).getTime()>a?new Date(c.earliestPackageExpiry).getTime():1/0;return d!==e?d-e:(b.priority||999)-(c.priority||999)})}if(n&&(b=y.find(a=>a.id===n))&&z.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===v){let a=u.stickyRoundRobinLimit||t.stickyRoundRobinLimit||3,c=[...y].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...y].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else b=y[0];w&&b?.earliestPackageExpiry&&z.info("AUTH",`${a} | earliest-expiry selected ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"}) | expires in ${(0,f.Qo)(b.earliestPackageExpiry)} (${b.earliestPackageName||"package"})`);let A=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:A.connectionProxyEnabled,connectionProxyUrl:A.connectionProxyUrl,connectionNoProxy:A.connectionNoProxy,connectionProxyPoolId:A.proxyPoolId||null,vercelRelayUrl:A.vercelRelayUrl||"",strictProxy:!0===A.strictProxy},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{l&&l()}}async function E(a,b,c,e=null,i=null,j=null){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0,channelScope:!1};let k=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),l=k?.backoffLevel||0,m=function(a,b,c){if("github"!==(0,h.rs)(c)||402!==Number(a)||!String(b||"").toLowerCase().includes("you've reached your additional usage limit for your plan"))return null;let d=new Date;return Date.UTC(d.getUTCFullYear(),d.getUTCMonth()+1,1)}(b,c,e),n,o,p,q=!1;if(m?(n=!0,o=m-Date.now(),p=0):j&&j>Date.now()?(n=!0,o=Math.min(j-Date.now(),g.fh),p=0):{shouldFallback:n,cooldownMs:o,newBackoffLevel:p,channelScope:q}=(0,f.hk)(b,c,l,(0,h.rs)(e)),!n)return{shouldFallback:!1,cooldownMs:0,channelScope:!1};if(q){let f="string"==typeof c?c.slice(0,500):"Provider error";return await (0,d.updateProviderConnection)(a,{lastError:f,errorCode:b,lastErrorAt:new Date().toISOString()}),e&&b&&f&&console.error(`❌ ${e} [${b}]: ${f}`),{shouldFallback:!0,cooldownMs:o,channelScope:!0}}let r="string"==typeof c?c.slice(0,500):"Provider error",s=(0,f.S5)(m?null:i,o),t=Object.keys(s)[0]===f.wz;await (0,d.updateProviderConnection)(a,{...s,...t?{testStatus:"unavailable"}:{},lastError:r,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:p??l});let u=Object.keys(s)[0],v=k?.displayName||k?.name||k?.email||a.slice(0,8);return z.warn("AUTH",`${v} locked ${u} for ${Math.round(o/1e3)}s [${b}]`),e&&b&&r&&console.error(`❌ ${e} [${b}]: ${r}`),{shouldFallback:!0,cooldownMs:o,channelScope:!1}}async function F(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,g=Date.now(),h=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===h.length)return;let i=h.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=g});if(0===i.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let j=h.filter(a=>{if(i.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>g}),k=Object.fromEntries(i.map(a=>[a,null]));0===j.length&&Object.assign(k,e.testStatus===f.BH?{backoffLevel:0}:{testStatus:"active",lastError:null,errorCode:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,k)}function G(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function H(a){return!!a&&await (0,d.ek)(a)}async function I(a,{request:b,model:d}={}){if(!a)return null;let e=null,f=0;try{let{getApiKeyByKey:b,sumApiKeyTokensSince:d,localStartOfDayIso:g,getSettings:h}=await Promise.resolve().then(c.bind(c,89718)),i=await h();if(i?.dailyTokenLimitEnabled===!1||(e=await b(a),!e?.dailyTokenLimit||(f=await d((0,l.kk)(a),g()))<e.dailyTokenLimit))return null}catch(a){return z.warn("AUTH",`Daily token limit check failed (allowing request): ${a.message}`),null}let g=new Date;g.setHours(24,0,0,0);let h=Math.max(1,Math.ceil((g.getTime()-Date.now())/1e3)),i=Math.floor(h/3600),j=Math.floor(h%3600/60),k=`${i?`${i}h `:""}${j}m`;try{let{saveRequestUsage:g,saveRequestDetail:h}=await Promise.resolve().then(c.bind(c,27274)),{randomUUID:i}=await Promise.resolve().then(c.t.bind(c,77598,23)),j=new Date().toISOString();await g({provider:null,model:d||"unknown",tokens:{prompt_tokens:0,completion_tokens:0},apiKey:a,endpoint:b?(()=>{try{return new URL(b.url).pathname}catch{return null}})():null,status:"rate_limited",usageKey:i(),meta:{dailyLimitExceeded:!0,limit:e.dailyTokenLimit,used:f}}),await h({id:`${j}-${i().slice(0,6)}-rate-limited`,timestamp:j,provider:null,model:d||"unknown",status:"rate_limited",latency:{ttft:0,total:0},tokens:{prompt_tokens:0,completion_tokens:0},request:{rejected:"dailyTokenLimit",keyName:e.name||"unnamed"},response:{error:"Daily token limit exceeded",status:n.gx.RATE_LIMITED}})}catch(a){z.warn("AUTH",`Daily limit refusal not logged: ${a.message}`)}let o=(function(a,b){if(!b||"string"!=typeof b)return b;let c=x(a);return c&&c[b.trim()]||b})(function(a){if(!a?.headers)return"en";try{let b=a.headers.get("cookie")||"",c=/(?:^|;\s*)locale=([^;]+)/.exec(b);if(c){let a=y(decodeURIComponent(c[1]).trim());if("en"===a||x(a))return a}}catch{}var b=a.headers.get("accept-language");if(!b||"string"!=typeof b)return"en";for(let a of b.split(",").map(a=>a.split(";")[0].trim()).filter(a=>a&&"*"!==a)){let b=y(a);if("en"===b)break;if(x(b))return b}return"en"}(b),'Daily token limit exceeded for API key "{name}" (used {used} / {limit} today). Resets in {reset}.').replace("{name}",e.name||"unnamed").replace("{used}",f.toLocaleString("en-US")).replace("{limit}",e.dailyTokenLimit.toLocaleString("en-US")).replace("{reset}",k);return(0,m.yj)(n.gx.RATE_LIMITED,o,{"retry-after":String(h)})}},43659:(a,b,c)=>{"use strict";c.d(b,{A1:()=>k,Yx:()=>i,lR:()=>m,wO:()=>l,xJ:()=>f,yj:()=>g,zL:()=>j});var d=c(3662),e=c(12557);function f(a,b){let c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{type:"error",error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}}}function g(a,b,c=null){return new Response(JSON.stringify(f(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*",...c}})}let h=/"validation_url"\s*:\s*"([^"]+)"/;function i(a){if(!a||!a.includes("VALIDATION_REQUIRED"))return null;let b=h.exec(a);if(!b)return null;let c=b[1];try{c=JSON.parse(`"${c}"`)}catch{}return`Google requires account verification (VALIDATION_REQUIRED). Most often this means the account's 18+ age verification is missing — complete it at https://myaccount.google.com/age-verification (check the birthdate at https://myaccount.google.com/birthday first). Otherwise open this URL in a browser signed in to the affected account, complete "Verify your account", then retry: ${c}`}async function j(a,b=null){let c="";try{c=await a.text()}catch{c=""}let e=i(c);if(b&&"function"==typeof b.parseError)try{let f=b.parseError(a,c);if(f&&"object"==typeof f){let b=e||f.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:f.status||a.status,message:b,resetsAtMs:f.resetsAtMs}}}catch{}if(e)return{statusCode:a.status,message:e};let f="";try{let a=JSON.parse(c);f=a.error?.message||a.message||a.error||c}catch{f=c}let g=("string"==typeof f?f:JSON.stringify(f))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function k(a,b,c,d=null){return{success:!1,status:a,error:b,resetsAtMs:c,response:g(a,b,d)}}function l(a,b,c,d,e=null){let f=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({type:"error",error:{type:a>=500?"api_error":"invalid_request_error",message:`${b} (${d})`}}),{status:a,headers:{...e,"Content-Type":"application/json","retry-after":String(f)}})}function m(a,b,c,d){let f=d||a.code||"FETCH_FAILED",g=a.message||"Unknown error",h=a.cause?.code,i=a.cause?.message,j=h||i?` (cause: ${[h,i].filter(Boolean).join(": ")})`:"",k=`[${f}]: ${g}${j}`;return(0,e.Bp)(k,b)}},78335:()=>{},89718:(a,b,c)=>{"use strict";c.d(b,{Bf:()=>d.Bf,CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Um:()=>d.Um,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getApiKeyByKey:()=>d.mY,getProviderConnections:()=>d.P,getSettings:()=>d.mt,h1:()=>d.h1,hj:()=>d.hj,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,localStartOfDayIso:()=>d.Yq,lr:()=>d.lr,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,sV:()=>d.sV,sumApiKeyTokensSince:()=>d.ZQ,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,updateSettings:()=>d.Xx,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(27274)},96487:()=>{}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=3659,exports.ids=[3659],exports.modules={43659:(a,b,c)=>{c.d(b,{A1:()=>k,Yx:()=>i,lR:()=>m,wO:()=>l,xJ:()=>f,yj:()=>g,zL:()=>j});var d=c(3662),e=c(12557);function f(a,b){let c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""});return{type:"error",error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}}}function g(a,b,c=null){return new Response(JSON.stringify(f(a,b)),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*",...c}})}let h=/"validation_url"\s*:\s*"([^"]+)"/;function i(a){if(!a||!a.includes("VALIDATION_REQUIRED"))return null;let b=h.exec(a);if(!b)return null;let c=b[1];try{c=JSON.parse(`"${c}"`)}catch{}return`Google requires account verification (VALIDATION_REQUIRED). Most often this means the account's 18+ age verification is missing — complete it at https://myaccount.google.com/age-verification (check the birthdate at https://myaccount.google.com/birthday first). Otherwise open this URL in a browser signed in to the affected account, complete "Verify your account", then retry: ${c}`}async function j(a,b=null){let c="";try{c=await a.text()}catch{c=""}let e=i(c);if(b&&"function"==typeof b.parseError)try{let f=b.parseError(a,c);if(f&&"object"==typeof f){let b=e||f.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:f.status||a.status,message:b,resetsAtMs:f.resetsAtMs}}}catch{}if(e)return{statusCode:a.status,message:e};let f="";try{let a=JSON.parse(c);f=a.error?.message||a.message||a.error||c}catch{f=c}let g=("string"==typeof f?f:JSON.stringify(f))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function k(a,b,c,d=null){return{success:!1,status:a,error:b,resetsAtMs:c,response:g(a,b,d)}}function l(a,b,c,d,e=null){let f=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({type:"error",error:{type:a>=500?"api_error":"invalid_request_error",message:`${b} (${d})`}}),{status:a,headers:{...e,"Content-Type":"application/json","retry-after":String(f)}})}function m(a,b,c,d){let f=d||a.code||"FETCH_FAILED",g=a.message||"Unknown error",h=a.cause?.code,i=a.cause?.message,j=h||i?` (cause: ${[h,i].filter(Boolean).join(": ")})`:"",k=`[${f}]: ${g}${j}`;return(0,e.Bp)(k,b)}}};