@techysy/10router 1.6.4-test.1 → 1.6.5

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 (566) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +40 -40
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/_not-found.html +2 -2
  66. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  67. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  68. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  69. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  70. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  71. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  78. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -3
  82. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -3
  84. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -3
  86. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -3
  88. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -3
  90. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js +1 -1
  92. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  105. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  119. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/external-quota/[source]/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/external-quota/[source]/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/gateway-probe/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  131. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/keys/rotate/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/keys/rotate/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  140. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  145. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  149. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/models/caps/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/models/caps/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/network/egress-region/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/claim-compensation/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/oauth/loomy/sms-login/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/oauth/loomy/sms-login/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/oauth/loomy/sms-send/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/oauth/loomy/sms-send/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/security/status/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/security/status/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
  271. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/usage/quotas/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/usage/quotas/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/rerank/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/rerank/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  360. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/version/shell-update/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  370. package/app/.next-cli-build/server/app/callback.html +2 -2
  371. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  372. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  373. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  374. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  375. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
  376. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
  377. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
  378. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  379. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  380. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +2 -2
  381. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  382. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  383. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  384. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  385. package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
  386. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  387. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  388. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  389. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  390. package/app/.next-cli-build/server/app/dashboard/endpoint.html +2 -2
  391. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  392. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  393. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  394. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  395. package/app/.next-cli-build/server/app/dashboard/experimental.html +2 -2
  396. package/app/.next-cli-build/server/app/dashboard/experimental.rsc +8 -8
  397. package/app/.next-cli-build/server/app/dashboard/experimental.segments/!KGRhc2hib2FyZCk/dashboard/experimental/__PAGE__.segment.rsc +8 -8
  398. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_full.segment.rsc +8 -8
  399. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_tree.segment.rsc +2 -2
  400. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +2 -2
  401. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
  402. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
  403. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
  404. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  405. package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
  406. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  407. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
  408. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  409. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  410. package/app/.next-cli-build/server/app/dashboard/profile.html +2 -2
  411. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  412. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  413. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  414. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  415. package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
  416. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
  417. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  418. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  419. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  420. package/app/.next-cli-build/server/app/dashboard/providers.html +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  422. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  423. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  424. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  425. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
  426. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  427. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  428. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  429. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  430. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +2 -2
  431. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +8 -8
  432. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
  433. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
  434. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  435. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  436. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  437. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  438. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  439. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  440. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  441. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  442. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +2 -2
  443. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  444. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  445. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  446. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  447. package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
  448. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  449. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
  450. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  451. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  452. package/app/.next-cli-build/server/app/dashboard/token-saver.html +2 -2
  453. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +8 -8
  454. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
  455. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
  456. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  457. package/app/.next-cli-build/server/app/dashboard/translator.html +2 -2
  458. package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
  459. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
  460. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
  461. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  462. package/app/.next-cli-build/server/app/dashboard/usage.html +2 -2
  463. package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
  464. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  465. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  466. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  467. package/app/.next-cli-build/server/app/dashboard.html +2 -2
  468. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  469. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  470. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  471. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  472. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  473. package/app/.next-cli-build/server/app/index.html +1 -1
  474. package/app/.next-cli-build/server/app/index.rsc +6 -6
  475. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  476. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  477. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  478. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  479. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  480. package/app/.next-cli-build/server/app/landing.html +2 -2
  481. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  482. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  483. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  484. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  485. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  486. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  487. package/app/.next-cli-build/server/app/login.html +2 -2
  488. package/app/.next-cli-build/server/app/login.rsc +7 -7
  489. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  490. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  491. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
  492. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  493. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  494. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  495. package/app/.next-cli-build/server/app-paths-manifest.json +40 -40
  496. package/app/.next-cli-build/server/chunks/1310.js +9 -0
  497. package/app/.next-cli-build/server/chunks/1806.js +1 -1
  498. package/app/.next-cli-build/server/chunks/1819.js +1 -1
  499. package/app/.next-cli-build/server/chunks/2154.js +1 -0
  500. package/app/.next-cli-build/server/chunks/3662.js +1 -1
  501. package/app/.next-cli-build/server/chunks/3771.js +1 -1
  502. package/app/.next-cli-build/server/chunks/3792.js +1 -1
  503. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  504. package/app/.next-cli-build/server/chunks/3962.js +1 -1
  505. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  506. package/app/.next-cli-build/server/chunks/471.js +2 -0
  507. package/app/.next-cli-build/server/chunks/4859.js +6 -0
  508. package/app/.next-cli-build/server/chunks/4906.js +1 -1
  509. package/app/.next-cli-build/server/chunks/4927.js +1 -1
  510. package/app/.next-cli-build/server/chunks/5210.js +4 -4
  511. package/app/.next-cli-build/server/chunks/5527.js +1 -1
  512. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  513. package/app/.next-cli-build/server/chunks/5757.js +1 -1
  514. package/app/.next-cli-build/server/chunks/5781.js +1 -1
  515. package/app/.next-cli-build/server/chunks/5787.js +9 -0
  516. package/app/.next-cli-build/server/chunks/5837.js +1 -1
  517. package/app/.next-cli-build/server/chunks/594.js +1 -0
  518. package/app/.next-cli-build/server/chunks/6212.js +1 -1
  519. package/app/.next-cli-build/server/chunks/6922.js +1 -1
  520. package/app/.next-cli-build/server/chunks/6960.js +1 -1
  521. package/app/.next-cli-build/server/chunks/7067.js +1 -1
  522. package/app/.next-cli-build/server/chunks/7274.js +1 -1
  523. package/app/.next-cli-build/server/chunks/8145.js +1 -1
  524. package/app/.next-cli-build/server/chunks/8172.js +1 -1
  525. package/app/.next-cli-build/server/chunks/8185.js +1 -0
  526. package/app/.next-cli-build/server/chunks/8318.js +1 -1
  527. package/app/.next-cli-build/server/chunks/8370.js +7 -7
  528. package/app/.next-cli-build/server/chunks/8410.js +1 -1
  529. package/app/.next-cli-build/server/chunks/8595.js +1 -1
  530. package/app/.next-cli-build/server/chunks/8658.js +1 -1
  531. package/app/.next-cli-build/server/chunks/8775.js +1 -1
  532. package/app/.next-cli-build/server/chunks/8895.js +4 -4
  533. package/app/.next-cli-build/server/chunks/8937.js +3 -0
  534. package/app/.next-cli-build/server/chunks/922.js +9 -0
  535. package/app/.next-cli-build/server/chunks/9377.js +1 -0
  536. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  537. package/app/.next-cli-build/server/chunks/9781.js +1 -0
  538. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  539. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  540. package/app/.next-cli-build/server/middleware.js +5 -5
  541. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  542. package/app/.next-cli-build/server/pages/404.html +2 -2
  543. package/app/.next-cli-build/server/pages/500.html +1 -1
  544. package/app/.next-cli-build/static/chunks/1321-b8be93bbd911ff4d.js +1 -0
  545. package/app/.next-cli-build/static/chunks/{5497-100281ed6ce1f83b.js → 5497-f6d548a4a9538453.js} +1 -1
  546. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-a2f5c1fa12df475b.js → page-7c4e389aed972469.js} +1 -1
  547. package/app/.next-cli-build/static/css/{63c4d9ca82aea954.css → 02a46e8ee21b7aaa.css} +1 -1
  548. package/app/package.json +71 -71
  549. package/app/public/i18n/changelog/en.md +4 -0
  550. package/app/public/i18n/changelog/zh-CN.md +4 -0
  551. package/app/public/i18n/changelog/zh-TW.md +4 -0
  552. package/app/public/i18n/literals/zh-CN.json +2 -0
  553. package/app/public/i18n/literals/zh-TW.json +2 -0
  554. package/package.json +1 -1
  555. package/app/.next-cli-build/server/chunks/1386.js +0 -9
  556. package/app/.next-cli-build/server/chunks/1622.js +0 -1
  557. package/app/.next-cli-build/server/chunks/2812.js +0 -2
  558. package/app/.next-cli-build/server/chunks/3389.js +0 -1
  559. package/app/.next-cli-build/server/chunks/4692.js +0 -6
  560. package/app/.next-cli-build/server/chunks/7209.js +0 -1
  561. package/app/.next-cli-build/server/chunks/8439.js +0 -1
  562. package/app/.next-cli-build/server/chunks/9451.js +0 -9
  563. package/app/.next-cli-build/server/chunks/976.js +0 -9
  564. package/app/.next-cli-build/static/chunks/1321-25956f9bfbc2e6da.js +0 -1
  565. /package/app/.next-cli-build/static/{ilH6FH_DABFzbJ122SgT6 → pP6WDLpkLVAa29nFOm7Ly}/_buildManifest.js +0 -0
  566. /package/app/.next-cli-build/static/{ilH6FH_DABFzbJ122SgT6 → pP6WDLpkLVAa29nFOm7Ly}/_ssgManifest.js +0 -0
@@ -124,63 +124,70 @@
124
124
  "/api/version/update/route": "app/api/version/update/route.js",
125
125
  "/favicon.ico/route": "app/favicon.ico/route.js",
126
126
  "/manifest.webmanifest/route": "app/manifest.webmanifest/route.js",
127
- "/api/headroom/stop/route": "app/api/headroom/stop/route.js",
127
+ "/api/cli-tools/codex-profiles/route": "app/api/cli-tools/codex-profiles/route.js",
128
+ "/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
129
+ "/api/cli-tools/devin-settings/route": "app/api/cli-tools/devin-settings/route.js",
130
+ "/api/combos/route": "app/api/combos/route.js",
131
+ "/api/headroom/extras/route": "app/api/headroom/extras/route.js",
132
+ "/api/headroom/proxy/[...path]/route": "app/api/headroom/proxy/[...path]/route.js",
133
+ "/api/headroom/restart/route": "app/api/headroom/restart/route.js",
134
+ "/api/headroom/start/route": "app/api/headroom/start/route.js",
128
135
  "/api/headroom/status/route": "app/api/headroom/status/route.js",
136
+ "/api/headroom/stop/route": "app/api/headroom/stop/route.js",
129
137
  "/api/keys/rotate/route": "app/api/keys/rotate/route.js",
138
+ "/api/keys/route": "app/api/keys/route.js",
130
139
  "/api/mcp/[plugin]/message/route": "app/api/mcp/[plugin]/message/route.js",
131
140
  "/api/mcp/[plugin]/sse/route": "app/api/mcp/[plugin]/sse/route.js",
132
- "/api/keys/route": "app/api/keys/route.js",
133
- "/api/models/caps/route": "app/api/models/caps/route.js",
134
141
  "/api/models/alias/route": "app/api/models/alias/route.js",
135
- "/api/network/egress-region/route": "app/api/network/egress-region/route.js",
136
- "/api/combos/route": "app/api/combos/route.js",
142
+ "/api/models/caps/route": "app/api/models/caps/route.js",
137
143
  "/api/models/custom/route": "app/api/models/custom/route.js",
138
144
  "/api/models/disabled/route": "app/api/models/disabled/route.js",
145
+ "/api/network/egress-region/route": "app/api/network/egress-region/route.js",
146
+ "/api/oauth/[provider]/[action]/route": "app/api/oauth/[provider]/[action]/route.js",
147
+ "/api/oauth/kiro/auto-import/route": "app/api/oauth/kiro/auto-import/route.js",
139
148
  "/api/oauth/kiro/import-cli-proxy/route": "app/api/oauth/kiro/import-cli-proxy/route.js",
140
- "/api/oauth/loomy/sms-send/route": "app/api/oauth/loomy/sms-send/route.js",
141
149
  "/api/oauth/loomy/sms-login/route": "app/api/oauth/loomy/sms-login/route.js",
142
- "/api/oauth/xiaomi-mimo/desktop-status/route": "app/api/oauth/xiaomi-mimo/desktop-status/route.js",
150
+ "/api/oauth/loomy/sms-send/route": "app/api/oauth/loomy/sms-send/route.js",
143
151
  "/api/oauth/xiaomi-mimo/desktop-kill/route": "app/api/oauth/xiaomi-mimo/desktop-kill/route.js",
144
- "/api/cli-tools/devin-settings/route": "app/api/cli-tools/devin-settings/route.js",
152
+ "/api/oauth/xiaomi-mimo/desktop-status/route": "app/api/oauth/xiaomi-mimo/desktop-status/route.js",
145
153
  "/api/provider-nodes/route": "app/api/provider-nodes/route.js",
154
+ "/api/providers/[id]/models/route": "app/api/providers/[id]/models/route.js",
155
+ "/api/providers/[id]/route": "app/api/providers/[id]/route.js",
146
156
  "/api/providers/[id]/test-models/route": "app/api/providers/[id]/test-models/route.js",
147
157
  "/api/providers/[id]/test/route": "app/api/providers/[id]/test/route.js",
148
- "/api/providers/[id]/route": "app/api/providers/[id]/route.js",
149
- "/api/providers/suggested-models/route": "app/api/providers/suggested-models/route.js",
150
158
  "/api/providers/client/route": "app/api/providers/client/route.js",
151
- "/api/proxy-pools/[id]/route": "app/api/proxy-pools/[id]/route.js",
152
159
  "/api/providers/route": "app/api/providers/route.js",
160
+ "/api/providers/suggested-models/route": "app/api/providers/suggested-models/route.js",
161
+ "/api/proxy-pools/[id]/route": "app/api/proxy-pools/[id]/route.js",
162
+ "/api/proxy-pools/[id]/test/route": "app/api/proxy-pools/[id]/test/route.js",
153
163
  "/api/proxy-pools/cloudflare-deploy/route": "app/api/proxy-pools/cloudflare-deploy/route.js",
154
- "/api/oauth/[provider]/[action]/route": "app/api/oauth/[provider]/[action]/route.js",
155
- "/api/pxpipe/health/route": "app/api/pxpipe/health/route.js",
164
+ "/api/proxy-pools/deno-deploy/route": "app/api/proxy-pools/deno-deploy/route.js",
156
165
  "/api/proxy-pools/route": "app/api/proxy-pools/route.js",
166
+ "/api/proxy-pools/vercel-deploy/route": "app/api/proxy-pools/vercel-deploy/route.js",
167
+ "/api/pxpipe/health/route": "app/api/pxpipe/health/route.js",
157
168
  "/api/pxpipe/install/route": "app/api/pxpipe/install/route.js",
158
169
  "/api/pxpipe/logs/route": "app/api/pxpipe/logs/route.js",
159
170
  "/api/pxpipe/restart/route": "app/api/pxpipe/restart/route.js",
171
+ "/api/pxpipe/start/route": "app/api/pxpipe/start/route.js",
160
172
  "/api/pxpipe/stats/route": "app/api/pxpipe/stats/route.js",
161
- "/api/oauth/kiro/auto-import/route": "app/api/oauth/kiro/auto-import/route.js",
162
- "/api/proxy-pools/deno-deploy/route": "app/api/proxy-pools/deno-deploy/route.js",
163
173
  "/api/pxpipe/status/route": "app/api/pxpipe/status/route.js",
164
- "/api/pxpipe/start/route": "app/api/pxpipe/start/route.js",
165
174
  "/api/pxpipe/stop/route": "app/api/pxpipe/stop/route.js",
166
- "/api/proxy-pools/vercel-deploy/route": "app/api/proxy-pools/vercel-deploy/route.js",
167
- "/api/providers/[id]/models/route": "app/api/providers/[id]/models/route.js",
168
- "/api/settings/proxy-test/route": "app/api/settings/proxy-test/route.js",
169
- "/api/settings/database/route": "app/api/settings/database/route.js",
170
175
  "/api/security/status/route": "app/api/security/status/route.js",
171
176
  "/api/settings/database/import-usage/route": "app/api/settings/database/import-usage/route.js",
177
+ "/api/settings/database/route": "app/api/settings/database/route.js",
178
+ "/api/settings/proxy-test/route": "app/api/settings/proxy-test/route.js",
179
+ "/api/settings/route": "app/api/settings/route.js",
172
180
  "/api/translator/console-logs/stream/route": "app/api/translator/console-logs/stream/route.js",
173
- "/api/usage/dashboard/route": "app/api/usage/dashboard/route.js",
174
181
  "/api/usage/[connectionId]/claude-reset/route": "app/api/usage/[connectionId]/claude-reset/route.js",
182
+ "/api/usage/[connectionId]/codex-reset-credits/route": "app/api/usage/[connectionId]/codex-reset-credits/route.js",
183
+ "/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
184
+ "/api/usage/dashboard/route": "app/api/usage/dashboard/route.js",
185
+ "/api/usage/quotas/route": "app/api/usage/quotas/route.js",
175
186
  "/api/usage/stats/route": "app/api/usage/stats/route.js",
187
+ "/api/usage/stream/route": "app/api/usage/stream/route.js",
176
188
  "/api/v1/audio/transcriptions/route": "app/api/v1/audio/transcriptions/route.js",
177
- "/api/usage/quotas/route": "app/api/usage/quotas/route.js",
178
- "/api/settings/route": "app/api/settings/route.js",
179
- "/api/usage/[connectionId]/codex-reset-credits/route": "app/api/usage/[connectionId]/codex-reset-credits/route.js",
180
- "/api/proxy-pools/[id]/test/route": "app/api/proxy-pools/[id]/test/route.js",
181
- "/api/headroom/extras/route": "app/api/headroom/extras/route.js",
182
- "/api/cli-tools/codex-profiles/route": "app/api/cli-tools/codex-profiles/route.js",
183
- "/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
189
+ "/api/v1/models/route": "app/api/v1/models/route.js",
190
+ "/api/v1beta/models/[...path]/route": "app/api/v1beta/models/[...path]/route.js",
184
191
  "/callback/page": "app/callback/page.js",
185
192
  "/dashboard/settings/pricing/page": "app/dashboard/settings/pricing/page.js",
186
193
  "/landing/page": "app/landing/page.js",
@@ -201,20 +208,13 @@
201
208
  "/(dashboard)/dashboard/token-saver/page": "app/(dashboard)/dashboard/token-saver/page.js",
202
209
  "/(dashboard)/dashboard/translator/page": "app/(dashboard)/dashboard/translator/page.js",
203
210
  "/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
204
- "/(dashboard)/dashboard/console-log/page": "app/(dashboard)/dashboard/console-log/page.js",
205
211
  "/(dashboard)/dashboard/media-providers/[kind]/[id]/page": "app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js",
212
+ "/(dashboard)/dashboard/console-log/page": "app/(dashboard)/dashboard/console-log/page.js",
206
213
  "/(dashboard)/dashboard/combos/page": "app/(dashboard)/dashboard/combos/page.js",
207
- "/(dashboard)/dashboard/proxy-pools/page": "app/(dashboard)/dashboard/proxy-pools/page.js",
208
- "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
209
214
  "/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
210
- "/login/page": "app/login/page.js",
215
+ "/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js",
216
+ "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
217
+ "/(dashboard)/dashboard/proxy-pools/page": "app/(dashboard)/dashboard/proxy-pools/page.js",
211
218
  "/(dashboard)/dashboard/skills/page": "app/(dashboard)/dashboard/skills/page.js",
212
- "/api/headroom/start/route": "app/api/headroom/start/route.js",
213
- "/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
214
- "/api/headroom/restart/route": "app/api/headroom/restart/route.js",
215
- "/api/headroom/proxy/[...path]/route": "app/api/headroom/proxy/[...path]/route.js",
216
- "/api/usage/stream/route": "app/api/usage/stream/route.js",
217
- "/api/v1beta/models/[...path]/route": "app/api/v1beta/models/[...path]/route.js",
218
- "/api/v1/models/route": "app/api/v1/models/route.js",
219
- "/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js"
219
+ "/login/page": "app/login/page.js"
220
220
  }
@@ -0,0 +1,9 @@
1
+ "use strict";exports.id=1310,exports.ids=[1310],exports.modules={34050:(a,b,c)=>{c.d(b,{CG:()=>f,f$:()=>d,oG:()=>e,zE:()=>g});let d=3,e=`
2
+ PRAGMA journal_mode = WAL;
3
+ PRAGMA synchronous = NORMAL;
4
+ PRAGMA temp_store = MEMORY;
5
+ PRAGMA mmap_size = 30000000;
6
+ PRAGMA cache_size = -64000;
7
+ PRAGMA foreign_keys = ON;
8
+ PRAGMA busy_timeout = 5000;
9
+ `,f={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",dailyTokenLimit:"INTEGER",allowedModels:"TEXT",allowedCombos:"TEXT",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",apiKeyHash:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)","CREATE INDEX IF NOT EXISTS idx_uh_apikey_hash ON usageHistory(apiKeyHash)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function g(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},98929:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>G});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(20437),i=c(34050);let j="stepfun",k="stepfun-cn";var l=c(71707),m=c(43556);let n=["mimoPassToken","mimoUserId","mimoCUserId"],o=new Set(["Xiaomi MiMo Desktop","Xiaomi MiMo Desktop Session"]),p="mimo-desktop-session";function q(a){if(!(0,l.isEncrypted)(a))return{ok:!0,value:a};try{return{ok:!0,value:(0,l.decryptSecret)(a)}}catch{return{ok:!1,value:a}}}function r(a){try{return JSON.parse(a.data||"{}")}catch{return null}}function s(a,b=null){let c=a?.providerSpecificData||{},d=q("string"==typeof a?.accessToken?a.accessToken:null),e="string"==typeof c.uid||"number"==typeof c.uid?String(c.uid):null,f="string"==typeof c.mimoUserId||"number"==typeof c.mimoUserId?String(c.mimoUserId):null,g=c.mimoPassToken;return{token:d.ok?d.value:null,uid:e,mu:f,email:"string"==typeof b&&b?b:null,hasSession:null!=g&&""!==g&&q(g).ok}}let t=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}},{version:2,name:"stepfun-cn-rename",up(a){let b;for(let b of(a.run("UPDATE providerConnections SET provider = ? WHERE provider = ?",[k,j]),a.run("UPDATE kv SET key = ? WHERE scope = 'disabledModels' AND key = ?",[k,j]),["modelCaps","customModels"]))a.run("UPDATE kv SET key = ? || substr(key, ?) WHERE scope = ? AND key LIKE ?",[k,j.length+1,b,`${j}|%`]);let c=a.get("SELECT data FROM settings WHERE id = 1");if(!c?.data)return;try{b=JSON.parse(c.data)}catch{return}if(!b||"object"!=typeof b)return;let d=!1;if(Array.isArray(b.providerCardOrder)){let a=b.providerCardOrder.map(a=>a===j?k:a);a.some((a,c)=>a!==b.providerCardOrder[c])&&(b.providerCardOrder=a,d=!0)}for(let a of["topologyVisibility","providerStrategies"]){let c=b[a];c&&"object"==typeof c&&Object.prototype.hasOwnProperty.call(c,j)&&(k in c||(c[k]=c[j]),delete c[j],d=!0)}d&&a.run("UPDATE settings SET data = ? WHERE id = 1",[JSON.stringify(b)])}},{version:3,name:"encrypt-credentials",up(a){let b;try{b=a.all("SELECT id, data FROM providerConnections")}catch(a){console.warn("[migration] encrypt-credentials: could not read connections:",a?.message||a);return}let c=0,d=0;for(let e of b){let b;try{b=JSON.parse(e.data||"{}")}catch{continue}if((0,l.connectionDataHasPlaintextSecrets)(b))try{a.run("UPDATE providerConnections SET data = ? WHERE id = ?",[JSON.stringify((0,l.encryptConnectionData)(b)),e.id]),c+=1}catch(a){1===(d+=1)&&console.warn("[migration] encrypt-credentials: could not encrypt a connection — credentials stay in plain text until they are rewritten:",a?.message||a)}}c&&console.log(`[migration] encrypt-credentials: encrypted ${c} connection row(s)`),d&&console.warn(`[migration] encrypt-credentials: ${d} row(s) left in plain text`)}},{version:4,name:"usage-apikey-digest",up(a){try{a.all("PRAGMA table_info(usageHistory)").map(a=>a.name).includes("apiKeyHash")||(a.exec("ALTER TABLE usageHistory ADD COLUMN apiKeyHash TEXT"),console.log("[migration] usage-apikey-digest: added usageHistory.apiKeyHash")),a.exec("CREATE INDEX IF NOT EXISTS idx_uh_apikey_hash ON usageHistory(apiKeyHash)")}catch(a){console.warn("[migration] usage-apikey-digest: could not ensure apiKeyHash column:",a?.message||a)}let b=0;try{for(let c of a.all("SELECT id, apiKey FROM usageHistory WHERE apiKey IS NOT NULL AND apiKey != ''"))(0,m.f0)(c.apiKey)||(a.run("UPDATE usageHistory SET apiKey = ?, apiKeyHash = ? WHERE id = ?",[(0,m.oO)(c.apiKey),(0,m.kk)(c.apiKey),c.id]),b+=1)}catch(a){console.warn("[migration] usage-apikey-digest: history rows skipped:",a?.message||a)}let c=0;try{for(let b of a.all("SELECT dateKey, data FROM usageDaily")){let d;try{d=JSON.parse(b.data||"{}")}catch{continue}let e=d?.byApiKey;if(!e||"object"!=typeof e)continue;let f={},g=!1;for(let[a,b]of Object.entries(e)){if(!b||"object"!=typeof b){f[a]=b;continue}let c="string"==typeof b.apiKey?b.apiKey:null;if(!c&&b.apiKeyHash||!c){f[a]=b;continue}let{apiKey:d,...e}=b,h=(0,m.kk)(c),i=a.split("|"),j=i.length>1?"|"+i.slice(1).join("|"):"";f[`${h||"local-no-key"}${j}`]={...e,apiKeyHash:h,apiKeyMasked:(0,m.oO)(c)},g=!0}g&&(a.run("UPDATE usageDaily SET data = ? WHERE dateKey = ?",[JSON.stringify({...d,byApiKey:f}),b.dateKey]),c+=1)}}catch(a){console.warn("[migration] usage-apikey-digest: daily aggregates skipped:",a?.message||a)}(b||c)&&console.log(`[migration] usage-apikey-digest: rewrote ${b} history row(s), ${c} day aggregate(s)`)}},{version:5,name:"strip-mimo-main-card-session",up(a){let b,c;try{b=a.all("SELECT id, email, data FROM providerConnections WHERE provider = 'xiaomi-mimo'"),c=a.all("SELECT id, email, data FROM providerConnections WHERE provider = 'mimo-desktop'")}catch(a){console.warn("[migration] strip-mimo-main-card-session: could not read connections:",a?.message||a);return}let d=c.map(a=>{let b=r(a);return b?s(b,a.email):null}).filter(Boolean),e=0,f=0,g=0,h=0;for(let c of b){let b=r(c);if(!b||"object"!=typeof b)continue;let i=b.providerSpecificData&&"object"==typeof b.providerSpecificData?b.providerSpecificData:{};if(!(n.some(a=>void 0!==i[a]&&null!==i[a]&&""!==i[a])||o.has(i.provider)||"desktop-session"===i.authMethod||"string"==typeof b.accessToken&&b.accessToken.startsWith(p)))continue;let j=q("string"==typeof b.accessToken?b.accessToken:null);if(!j.ok||i.mimoPassToken&&!q(i.mimoPassToken).ok){h+=1;continue}if(!("string"!=typeof j.value||""===j.value||j.value.startsWith(p))){let d=function(a){let b={...a};for(let a of n)delete b[a];return o.has(b.provider)&&delete b.provider,b}(i);"desktop-session"===d.authMethod&&(d.authMethod="api_key"),a.run("UPDATE providerConnections SET data = ? WHERE id = ?",[JSON.stringify((0,l.encryptConnectionData)({...b,providerSpecificData:d})),c.id]),e+=1;continue}let k=s(b,c.email);if(d.find(a=>(!!a.token&&!!k.token&&a.token===k.token||!!a.uid&&!!k.uid&&a.uid===k.uid||!!a.mu&&!!k.mu&&a.mu===k.mu||!!a.uid&&!!k.mu&&a.uid===k.mu||!!a.mu&&!!k.uid&&a.mu===k.uid||!!a.email&&!!k.email&&a.email===k.email||!1)&&a.hasSession)){a.run("DELETE FROM providerConnections WHERE id = ?",[c.id]),g+=1;continue}a.run("UPDATE providerConnections SET provider = 'mimo-desktop', data = ? WHERE id = ?",[JSON.stringify((0,l.encryptConnectionData)(b)),c.id]),f+=1}(e||f||g||h)&&console.log(`[migration] strip-mimo-main-card-session: stripped ${e} cloud row(s), moved ${f} session-only row(s) to mimo-desktop, removed ${g} duplicate row(s)`+(h?`, ${h} row(s) left untouched (undecryptable credentials)`:""))}},{version:6,name:"mimo-desktop-session-active",up(a){let b;try{b=a.all("SELECT id, data FROM providerConnections WHERE provider = 'mimo-desktop'")}catch(a){console.warn("[migration] mimo-desktop-session-active: could not read connections:",a?.message||a);return}for(let c of b)try{let b=JSON.parse(c.data);if("untested"!==b.testStatus)continue;b.testStatus="active",a.run("UPDATE providerConnections SET data = ? WHERE id = ?",[JSON.stringify(b),c.id])}catch{}}},{version:7,name:"combo-disabled-models",up(a){a.all("PRAGMA table_info(combos)").map(a=>a.name).includes("disabledModels")||a.exec("ALTER TABLE combos ADD COLUMN disabledModels TEXT")}}].sort((a,b)=>a.version-b.version);var u=c(8677);let v=null;function w(){if(v)return v;try{let a=g().join(process.cwd(),"package.json");v=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{v="0.0.0"}return v}let x=["requestDetails"];function y(a){(0,h.Jh)();let b=w(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function z(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(3))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var A=c(50743);let B=g().join(h.HG,".migrated-from-json"),C=new WeakSet;class D extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function E(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new D(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function F(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function G(a){if(C.has(a))return;C.add(a);let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a);z(),a.exec((0,i.zE)("_meta",i.CG._meta));let c=parseInt((0,u.dy)(a,"backupSchemaVersion","0"),10)||0;if(!b&&c<i.f$)try{let b=y(`schema-${c}-to-${i.f$}`);!function(a,b,c="data.sqlite"){let d=g().join(b,c);try{e().rmSync(d,{force:!0})}catch{}let f=d.replace(/'/g,"''");a.exec(`ATTACH DATABASE '${f}' AS bak`);try{let b=new Set(x),c=a.all("SELECT name, sql FROM main.sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").filter(a=>!b.has(a.name));a.transaction(()=>{for(let b of c){let c=b.sql.replace(/CREATE TABLE\s+/i,"CREATE TABLE bak.");a.exec(c),a.exec(`INSERT INTO bak.${b.name} SELECT * FROM main.${b.name}`)}})}finally{try{a.exec("DETACH DATABASE bak")}catch{}}}(a,b),z(),console.log(`[DB][migrate] pre-schema backup ${c} → ${i.f$}: ${b}`)}catch(a){console.warn(`[DB][migrate] pre-schema backup failed (continuing): ${a.message}`)}!function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt((0,u.dy)(a,"schemaVersion","0"),10)||0;if(b>=(t.length?t[t.length-1].version:0))return;let c=t.filter(a=>a.version>b);for(let b of c)a.transaction(()=>{b.up(a),(0,u.np)(a,"schemaVersion",b.version)}),b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);c.length}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}(0,u.np)(a,"backupSchemaVersion",i.f$);let d=e().existsSync(B),f=F(h.Or.main),j=F(h.Or.usage),k=F(h.Or.disabled),m=F(h.Or.details);if(b&&(f||j||k||m)&&!d){let b=Date.now(),c=y("migrate-from-json");for(let a of Object.values(h.Or))!function(a,b,c=null){if(!e().existsSync(a))return;let d=c||g().basename(a),f=g().join(b,d);e().copyFileSync(a,f)}(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,A.s)(f.settings)]),E(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...m}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,A.s)((0,l.encryptConnectionData)(m)),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),E(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,A.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),E(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,A.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),E(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),E(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,A.s)(b.models||[]),b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,A.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,A.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,A.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,A.s)(c||{})])}if(j&&"object"==typeof j){for(let b of j.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,A.s)(c),(0,A.s)({})])}for(let[b,c]of Object.entries(j.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,A.s)(c)]);"number"==typeof j.totalRequestsLifetime&&(0,u.np)(a,"totalRequestsLifetime",j.totalRequestsLifetime)}if(k&&"object"==typeof k.disabled)for(let[b,c]of Object.entries(k.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,A.s)(c||[])]);if(m&&Array.isArray(m.records))for(let b of m.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,A.s)(b)]);(0,u.np)(a,"appVersion",w()),(0,u.np)(a,"backupSchemaVersion",i.f$),(0,u.np)(a,"migratedAt",new Date().toISOString())})}catch(a){if(a instanceof D)return void console.error(`[DB][migrate] aborted: ${a.message} | legacy JSON kept | backup: ${c}`);throw a}try{e().writeFileSync(B,new Date().toISOString())}catch{}z(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}let n=w();(0,u.dy)(a,"appVersion",null)!==n&&(0,u.np)(a,"appVersion",n)}}};
@@ -1 +1 @@
1
- exports.id=1806,exports.ids=[1806,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},{provider:"codebuddy-intl",text:"conversation id missing",channelScope:!0,cooldownMs:j.short},{provider:"codebuddy-intl",text:"request illegal",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"11133",cooldownMs:0},{text:"rejected by the model provider",cooldownMs:0},{text:"请求体积已达极端量级",cooldownMs:0},{text:"extreme-size backstop",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"bind your alibaba cloud account",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|实名认证|bind your alibaba cloud account/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。",modelscope:"ModelScope 魔搭要求账号先绑定阿里云账号(实名认证)才能使用免费推理 API。出路:打开 https://modelscope.cn/my/account 完成第三方账号「阿里云」绑定后重试。"},o="上游要求该账号先完成实名认证(real-name verification),未完成前所有调用都会被拒绝;请按上游提示的地址完成核验后重试。"},21719:(a,b,c)=>{"use strict";c.d(b,{g:()=>m,l:()=>l});var d=c(79646),e=c(33873),f=c.n(e),g=c(29021),h=c.n(g),i=c(21820),j=c.n(i),k=c(30869);async function l(){!function(){try{let a=f().join("win32"===process.platform?f().join(process.env.APPDATA||"","10router"):f().join(j().homedir(),".10router"),"mitm",".mitm.pid");if(!h().existsSync(a))return;let b=parseInt(h().readFileSync(a,"utf8").trim(),10);if(!b)return;if("win32"===process.platform)try{(0,d.execSync)(`taskkill /F /T /PID ${b}`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{try{(0,d.execSync)(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${b} -Force"`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}}else try{(0,d.execSync)(`sudo -n kill -9 ${b} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{try{process.kill(b,"SIGKILL")}catch{}}try{h().unlinkSync(a)}catch{}}catch{}}();let a=function(){let a=[];if("win32"===process.platform){try{(0,d.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter \'Name=\\"node.exe\\"\' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").slice(1).filter(a=>a.trim()).forEach(b=>{let c=b.toLowerCase();if(c.includes("10router")||c.includes("next-server")||c.includes("\\bin\\app\\")||c.includes("/bin/app/")||c.includes("cli.js")){let c=b.match(/^"(\d+)"/);c&&c[1]&&c[1]!==process.pid.toString()&&a.push(c[1])}})}catch{}for(let b of["cloudflared","tray_windows_release"])try{let c=`powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process ${b} -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"`;(0,d.execSync)(c,{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").forEach(b=>{let c=b.trim();c&&!isNaN(c)&&a.push(c)})}catch{}}else try{(0,d.execSync)("ps aux 2>/dev/null",{encoding:"utf8",timeout:5e3}).split("\n").forEach(b=>{if(b.includes("10router")||b.includes("next-server")||b.includes("cloudflared")||b.includes("/bin/app/")||b.includes("tray_darwin")||b.includes("tray_linux")){let c=b.trim().split(/\s+/)[1];c&&!isNaN(c)&&c!==process.pid.toString()&&a.push(c)}})}catch{}return a}(),b=process.platform;a.forEach(a=>{try{"win32"===b?(0,d.execSync)(`taskkill /F /PID ${a} 2>nul`,{stdio:"ignore",shell:!0,windowsHide:!0,timeout:3e3}):(0,d.execSync)(`kill -9 ${a} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{}}),a.length>0&&await new Promise(a=>setTimeout(a,1500))}function m(a){let b=function(a){try{if(!a||!h().existsSync(a))return a;let b=f().join(process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?f().join(process.env.APPDATA||f().join(j().homedir(),"AppData","Roaming"),"10router"):f().join(j().homedir(),".10router"),"runtime","updater"),c=f().join(b,"updater.js");if(h().existsSync(c))try{if(h().statSync(a).size===h().statSync(c).size)return c}catch{}return h().mkdirSync(b,{recursive:!0}),h().copyFileSync(a,c),c}catch{return a}}(function(){if(process.env.UPDATER_SCRIPT_PATH&&h().existsSync(process.env.UPDATER_SCRIPT_PATH))return process.env.UPDATER_SCRIPT_PATH;let a=f().join(process.cwd(),"src","lib","updater","updater.js");if(h().existsSync(a))return a;let b=f().join(process.cwd(),"..","src","lib","updater","updater.js");return h().existsSync(b)?b:a}()),c="1"===process.env.TRAY_MODE,e={cmd:"win32"===process.platform?"npx.cmd":"npx",args:[k.h0.npmPackageName]},g=c?[...e.args,"--tray","--skip-update"]:[...e.args,"--skip-update"];(0,d.spawn)(process.execPath,[b],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,UPDATER_PKG_NAME:k.h0.npmPackageName,UPDATER_TARGET_VERSION:String(a||""),UPDATER_PORT:String(k.h0.statusPort),UPDATER_TAIL_LINES:String(k.h0.statusLogTailLines),UPDATER_RETRIES:String(k.h0.installRetries),UPDATER_RETRY_DELAY_MS:String(k.h0.installRetryDelayMs),UPDATER_LINGER_MS:String(k.h0.lingerAfterDoneMs),UPDATER_WAIT_MIN_MS:String(k.h0.waitForExitMinMs),UPDATER_WAIT_MAX_MS:String(k.h0.waitForExitMaxMs),UPDATER_WAIT_CHECK_MS:String(k.h0.waitForExitCheckMs),UPDATER_APP_PORT:String(k.h0.appPort),UPDATER_RELAUNCH:"1",UPDATER_RELAUNCH_CMD:e.cmd,UPDATER_RELAUNCH_ARGS:JSON.stringify(g)}}).unref(),setTimeout(()=>process.exit(0),k.h0.exitDelayMs)}},30869:(a,b,c)=>{"use strict";c.d(b,{Nu:()=>h,UY:()=>j,eh:()=>f.eh,fg:()=>e.fg,h0:()=>i,oc:()=>k,vQ:()=>g});var d=c(39006),e=c(40615),f=c(81329);let g={name:"10Router",description:"AI Infrastructure Management",version:d.rE},h={repoUrl:"https://github.com/techysy/10router",donateUrl:"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/donate.json",announcementsUrl:"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/announcements.json",announcementsUrlFallback:"https://gitee.com/techysy/10router/raw/main/announcements.json",changelogUrlBase:"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/public/i18n/changelog/",changelogUrlFallbackBase:"https://gitee.com/techysy/10router/raw/main/public/i18n/changelog/"},i={npmPackageName:"@techysy/10router",installCmd:"npm i -g @techysy/10router",installCmdLatest:"npm i -g @techysy/10router@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},j={maxLines:200,pollIntervalMs:1e3},k={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{"use strict";a.exports={rE:"1.6.5"}},78335:()=>{},96487:()=>{}};
1
+ exports.id=1806,exports.ids=[1806,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},{provider:"codebuddy-intl",text:"conversation id missing",channelScope:!0,cooldownMs:j.short},{provider:"codebuddy-intl",text:"request illegal",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"11133",cooldownMs:0},{text:"rejected by the model provider",cooldownMs:0},{text:"请求体积已达极端量级",cooldownMs:0},{text:"extreme-size backstop",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"bind your alibaba cloud account",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:18e5},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}],m=/real-name verification|realname|\bface verification\b|实名认证|bind your alibaba cloud account/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。",modelscope:"ModelScope 魔搭要求账号先绑定阿里云账号(实名认证)才能使用免费推理 API。出路:打开 https://modelscope.cn/my/account 完成第三方账号「阿里云」绑定后重试。"},o="上游要求该账号先完成实名认证(real-name verification),未完成前所有调用都会被拒绝;请按上游提示的地址完成核验后重试。"},21719:(a,b,c)=>{"use strict";c.d(b,{g:()=>m,l:()=>l});var d=c(79646),e=c(33873),f=c.n(e),g=c(29021),h=c.n(g),i=c(21820),j=c.n(i),k=c(30869);async function l(){!function(){try{let a=f().join("win32"===process.platform?f().join(process.env.APPDATA||"","10router"):f().join(j().homedir(),".10router"),"mitm",".mitm.pid");if(!h().existsSync(a))return;let b=parseInt(h().readFileSync(a,"utf8").trim(),10);if(!b)return;if("win32"===process.platform)try{(0,d.execSync)(`taskkill /F /T /PID ${b}`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{try{(0,d.execSync)(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${b} -Force"`,{stdio:"ignore",windowsHide:!0,timeout:3e3})}catch{}}else try{(0,d.execSync)(`sudo -n kill -9 ${b} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{try{process.kill(b,"SIGKILL")}catch{}}try{h().unlinkSync(a)}catch{}}catch{}}();let a=function(){let a=[];if("win32"===process.platform){try{(0,d.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter \'Name=\\"node.exe\\"\' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").slice(1).filter(a=>a.trim()).forEach(b=>{let c=b.toLowerCase();if(c.includes("10router")||c.includes("next-server")||c.includes("\\bin\\app\\")||c.includes("/bin/app/")||c.includes("cli.js")){let c=b.match(/^"(\d+)"/);c&&c[1]&&c[1]!==process.pid.toString()&&a.push(c[1])}})}catch{}for(let b of["cloudflared","tray_windows_release"])try{let c=`powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process ${b} -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"`;(0,d.execSync)(c,{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").forEach(b=>{let c=b.trim();c&&!isNaN(c)&&a.push(c)})}catch{}}else try{(0,d.execSync)("ps aux 2>/dev/null",{encoding:"utf8",timeout:5e3}).split("\n").forEach(b=>{if(b.includes("10router")||b.includes("next-server")||b.includes("cloudflared")||b.includes("/bin/app/")||b.includes("tray_darwin")||b.includes("tray_linux")){let c=b.trim().split(/\s+/)[1];c&&!isNaN(c)&&c!==process.pid.toString()&&a.push(c)}})}catch{}return a}(),b=process.platform;a.forEach(a=>{try{"win32"===b?(0,d.execSync)(`taskkill /F /PID ${a} 2>nul`,{stdio:"ignore",shell:!0,windowsHide:!0,timeout:3e3}):(0,d.execSync)(`kill -9 ${a} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{}}),a.length>0&&await new Promise(a=>setTimeout(a,1500))}function m(a){let b=function(a){try{if(!a||!h().existsSync(a))return a;let b=f().join(process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?f().join(process.env.APPDATA||f().join(j().homedir(),"AppData","Roaming"),"10router"):f().join(j().homedir(),".10router"),"runtime","updater"),c=f().join(b,"updater.js");if(h().existsSync(c))try{if(h().statSync(a).size===h().statSync(c).size)return c}catch{}return h().mkdirSync(b,{recursive:!0}),h().copyFileSync(a,c),c}catch{return a}}(function(){if(process.env.UPDATER_SCRIPT_PATH&&h().existsSync(process.env.UPDATER_SCRIPT_PATH))return process.env.UPDATER_SCRIPT_PATH;let a=f().join(process.cwd(),"src","lib","updater","updater.js");if(h().existsSync(a))return a;let b=f().join(process.cwd(),"..","src","lib","updater","updater.js");return h().existsSync(b)?b:a}()),c="1"===process.env.TRAY_MODE,e={cmd:"win32"===process.platform?"npx.cmd":"npx",args:[k.h0.npmPackageName]},g=c?[...e.args,"--tray","--skip-update"]:[...e.args,"--skip-update"];(0,d.spawn)(process.execPath,[b],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,UPDATER_PKG_NAME:k.h0.npmPackageName,UPDATER_TARGET_VERSION:String(a||""),UPDATER_PORT:String(k.h0.statusPort),UPDATER_TAIL_LINES:String(k.h0.statusLogTailLines),UPDATER_RETRIES:String(k.h0.installRetries),UPDATER_RETRY_DELAY_MS:String(k.h0.installRetryDelayMs),UPDATER_LINGER_MS:String(k.h0.lingerAfterDoneMs),UPDATER_WAIT_MIN_MS:String(k.h0.waitForExitMinMs),UPDATER_WAIT_MAX_MS:String(k.h0.waitForExitMaxMs),UPDATER_WAIT_CHECK_MS:String(k.h0.waitForExitCheckMs),UPDATER_APP_PORT:String(k.h0.appPort),UPDATER_RELAUNCH:"1",UPDATER_RELAUNCH_CMD:e.cmd,UPDATER_RELAUNCH_ARGS:JSON.stringify(g)}}).unref(),setTimeout(()=>process.exit(0),k.h0.exitDelayMs)}},30869:(a,b,c)=>{"use strict";c.d(b,{Nu:()=>h,UY:()=>j,eh:()=>f.eh,fg:()=>e.fg,h0:()=>i,oc:()=>k,vQ:()=>g});var d=c(39006),e=c(40615),f=c(81329);let g={name:"10Router",description:"AI Infrastructure Management",version:d.rE},h={repoUrl:"https://github.com/techysy/10router",donateUrl:"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/donate.json",announcementsUrl:"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/announcements.json",announcementsUrlFallback:"https://gitee.com/techysy/10router/raw/main/announcements.json",changelogUrlBase:"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/public/i18n/changelog/",changelogUrlFallbackBase:"https://gitee.com/techysy/10router/raw/main/public/i18n/changelog/"},i={npmPackageName:"@techysy/10router",installCmd:"npm i -g @techysy/10router",installCmdLatest:"npm i -g @techysy/10router@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},j={maxLines:200,pollIntervalMs:1e3},k={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},39006:a=>{"use strict";a.exports={rE:"1.6.5"}},78335:()=>{},96487:()=>{}};
@@ -1,4 +1,4 @@
1
- exports.id=1819,exports.ids=[1819,1998,3662,4755,5527,6457,8838],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},{provider:"codebuddy-intl",text:"conversation id missing",channelScope:!0,cooldownMs:j.short},{provider:"codebuddy-intl",text:"request illegal",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"11133",cooldownMs:0},{text:"rejected by the model provider",cooldownMs:0},{text:"请求体积已达极端量级",cooldownMs:0},{text:"extreme-size backstop",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"bind your alibaba cloud account",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|实名认证|bind your alibaba cloud account/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。",modelscope:"ModelScope 魔搭要求账号先绑定阿里云账号(实名认证)才能使用免费推理 API。出路:打开 https://modelscope.cn/my/account 完成第三方账号「阿里云」绑定后重试。"},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)}`}},29679:(a,b,c)=>{"use strict";c.d(b,{cW:()=>l});var d=c(94755),e=c(55511),f=c(8590);let g="1.0.0",h="0.10.32",i="us-east-1",j=new Map;async function k(a,b){let c,f,j,k=a?.providerSpecificData?.profileArn||"",l=function(a){if(!a||"string"!=typeof a)return i;let b=a.split(":");return b.length>=4&&b[3]?b[3]:i}(k),m=new URLSearchParams;m.set("origin","AI_EDITOR"),k&&m.set("profileArn",k);let n=`https://q.${l}.amazonaws.com/ListAvailableModels?${m.toString()}`,o={...(f=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",j=(0,e.createHash)("sha256").update(String(f)).digest("hex"),{"User-Agent":`aws-sdk-js/${g} ua/2.1 os/windows#10.0.26200 lang/js md/nodejs#22.21.1 api/codewhispererruntime#${g} m/N,E KiroIDE-${h}-${j}`,"x-amz-user-agent":`aws-sdk-js/${g} KiroIDE-${h}-${j}`,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}),Authorization:`Bearer ${a?.accessToken||""}`},p=new AbortController,q=setTimeout(()=>p.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>p.abort(b.reason));try{c=await fetch(n,{method:"GET",headers:o,signal:p.signal})}finally{clearTimeout(q)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let r=await c.json();return Array.isArray(r?.models)?r.models:[]}async function l(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),i=Date.now();if(!b.forceRefresh){let a=j.get(h);if(a&&a.expiresAt>i)return{models:a.models,rawModels:a.rawModels}}try{c=await k(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await k(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return j.set(h,{expiresAt:i+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},38709:(a,b,c)=>{"use strict";c.d(b,{M:()=>h});var d=c(90737),e=c(93943),f=c(39609);let g=`${d.Nr}/models`;async function h(a,b={}){let{fetchFn:c=f.proxyAwareFetch,log:i=console,proxyOptions:j=null,onCredentialsRefreshed:k}=b,l=a?.accessToken;if(!l)return{models:[],warning:"Grok CLI access token is missing."};let m=b=>c(g,{method:"GET",headers:function(a,b={}){let c={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":d.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-version":d.uG,"x-grok-client-identifier":d.rK,"x-grok-client-mode":"headless"},e=b?.email,f=b?.userId||b?.principalId;return e&&(c["x-email"]=e),f&&(c["x-userid"]=f),c}(b,a?.providerSpecificData)},j);try{let b=await m(l);if((401===b.status||403===b.status)&&a?.refreshToken){let c=await (0,e.Vq)("grok-cli",a,i,j);if(c?.accessToken){l=c.accessToken;try{await k?.(c)}catch(a){i?.warn?.("Grok CLI credential persistence failed",a)}b=await m(l)}}if(!b.ok){let a=await b.text().catch(()=>"");return{models:[],warning:`Grok CLI model discovery failed (${b.status})${a?`: ${a.slice(0,160)}`:""}`}}let c=function(a){let b,c=new Set,e=[];for(let[f,g]of(b=Array.isArray(a)?a:a?.data??a?.models??a?.results??[],Array.isArray(b)?b.map(a=>[null,a]):b&&"object"==typeof b?Object.entries(b):[])){let a="string"==typeof g?{id:g}:g;if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=String(a.id??a.model_id??a.modelId??a.model??a.slug??f??a.name??"").trim();if(!b||c.has(b))continue;c.add(b);let h={...a,id:b,name:a.display_name??a.displayName??a.name??b},i=Number(a.context_length??a.contextLength??a.context_window??a.contextWindow),j=Number(a.max_output_tokens??a.maxOutputTokens);Number.isFinite(i)&&i>0&&(h.contextLength=i),Number.isFinite(j)&&j>0&&(h.maxOutputTokens=j),b===d.to&&(h.contextLength||=5e5,h.maxOutputTokens||=64e3),e.push(h)}return e}(await b.json());return c.length?{models:c}:{models:[],warning:"Grok CLI returned no selectable models."}}catch(a){return{models:[],warning:`Grok CLI model discovery failed: ${a.message}`}}}},39326:(a,b,c)=>{"use strict";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}}}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},69704:(a,b,c)=>{"use strict";c.d(b,{Dg:()=>k,F8:()=>u,KC:()=>w,L7:()=>d,OQ:()=>j,R$:()=>l,RB:()=>D,Ty:()=>z,UJ:()=>q,VD:()=>r,_G:()=>i,bR:()=>t,bg:()=>h,cT:()=>y,cn:()=>p,h3:()=>o,ii:()=>n,j9:()=>f,jJ:()=>m,li:()=>s,pM:()=>C,pr:()=>E,qk:()=>A,rf:()=>g,t6:()=>x,xG:()=>B});let d="https://openapi.qoder.sh",e="https://api3.qoder.sh",f="https://api2.qoder.sh",g="https://qoder.com/device/selectAccounts",h=`${d}/api/v1/deviceToken/poll`,i=`${d}/api/v1/userinfo`,j=`${d}/api/v1/jobToken/exchange`,k="https://qoder.com",l="https://gateway.qoder.com.cn",m="https://openapi.qoder.com.cn",n="https://qoder.cn/device/selectAccounts",o=`${m}/api/v1/deviceToken/poll`,p=`${m}/api/v1/userinfo`,q=`${m}/api/v1/jobToken/exchange`,r="https://qoder.cn",s=l,t=`${l}/algo/api/v2/model/list`,u="/api/v2/service/pro/sse/agent_chat_generation",v=`${e}/algo${u}?FetchKeys=llm_model_result&AgentId=agent_common`,w=`${v}&Encode=1`,x=`${e}/algo/api/v2/model/list`,y="1.0.0",z="5",A="disagree",B="v2",C="x86_64_windows",D="5",E=`-----BEGIN PUBLIC KEY-----
1
+ exports.id=1819,exports.ids=[1819,1998,3662,4755,5527,6457,8838],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},{provider:"codebuddy-intl",text:"conversation id missing",channelScope:!0,cooldownMs:j.short},{provider:"codebuddy-intl",text:"request illegal",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"11133",cooldownMs:0},{text:"rejected by the model provider",cooldownMs:0},{text:"请求体积已达极端量级",cooldownMs:0},{text:"extreme-size backstop",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"bind your alibaba cloud account",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:18e5},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}],m=/real-name verification|realname|\bface verification\b|实名认证|bind your alibaba cloud account/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。",modelscope:"ModelScope 魔搭要求账号先绑定阿里云账号(实名认证)才能使用免费推理 API。出路:打开 https://modelscope.cn/my/account 完成第三方账号「阿里云」绑定后重试。"},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)}`}},29679:(a,b,c)=>{"use strict";c.d(b,{cW:()=>l});var d=c(94755),e=c(55511),f=c(8590);let g="1.0.0",h="0.10.32",i="us-east-1",j=new Map;async function k(a,b){let c,f,j,k=a?.providerSpecificData?.profileArn||"",l=function(a){if(!a||"string"!=typeof a)return i;let b=a.split(":");return b.length>=4&&b[3]?b[3]:i}(k),m=new URLSearchParams;m.set("origin","AI_EDITOR"),k&&m.set("profileArn",k);let n=`https://q.${l}.amazonaws.com/ListAvailableModels?${m.toString()}`,o={...(f=a?.providerSpecificData?.clientId||a?.refreshToken||a?.providerSpecificData?.profileArn||a?.accessToken||"kiro-anonymous",j=(0,e.createHash)("sha256").update(String(f)).digest("hex"),{"User-Agent":`aws-sdk-js/${g} ua/2.1 os/windows#10.0.26200 lang/js md/nodejs#22.21.1 api/codewhispererruntime#${g} m/N,E KiroIDE-${h}-${j}`,"x-amz-user-agent":`aws-sdk-js/${g} KiroIDE-${h}-${j}`,"x-amzn-kiro-agent-mode":"vibe","x-amzn-codewhisperer-optout":"true","amz-sdk-request":"attempt=1; max=1","amz-sdk-invocation-id":(0,d.A)(),Accept:"application/json"}),Authorization:`Bearer ${a?.accessToken||""}`},p=new AbortController,q=setTimeout(()=>p.abort("timeout"),3e4);b&&"function"==typeof b.addEventListener&&b.addEventListener("abort",()=>p.abort(b.reason));try{c=await fetch(n,{method:"GET",headers:o,signal:p.signal})}finally{clearTimeout(q)}if(!c.ok){let a=await c.text().catch(()=>""),b=Error(`Kiro ListAvailableModels ${c.status}: ${a||c.statusText}`);throw b.status=c.status,b.body=a,b}let r=await c.json();return Array.isArray(r?.models)?r.models:[]}async function l(a,b={}){let c,d,g;if(!a||!a.accessToken)return b.log?.debug?.("KIRO_MODELS","No accessToken; skipping live fetch"),null;let h=(g=(d=a?.providerSpecificData||{}).profileArn||d.clientId||a?.refreshToken||a?.accessToken||"anonymous",(0,e.createHash)("sha256").update(`kiro:${g}`).digest("hex")),i=Date.now();if(!b.forceRefresh){let a=j.get(h);if(a&&a.expiresAt>i)return{models:a.models,rawModels:a.rawModels}}try{c=await k(a,b.signal)}catch(d){if(!d||401!==d.status||!a.refreshToken)return b.log?.warn?.("KIRO_MODELS",`ListAvailableModels failed: ${d?.message||d}`),null;{b.log?.info?.("KIRO_MODELS","Got 401 from Kiro; refreshing token");let d=await (0,f.Ql)(a.refreshToken,a.providerSpecificData,b.log);if(!d?.accessToken)return b.log?.warn?.("KIRO_MODELS","Token refresh did not return accessToken"),null;{let e={...a,...d};if("function"==typeof b.onCredentialsRefreshed)try{await b.onCredentialsRefreshed(d)}catch(a){b.log?.warn?.("KIRO_MODELS",`onCredentialsRefreshed failed: ${a?.message||a}`)}try{c=await k(e,b.signal),a.accessToken=e.accessToken,e.refreshToken&&(a.refreshToken=e.refreshToken)}catch(a){return b.log?.warn?.("KIRO_MODELS",`Retry after refresh failed: ${a?.message||a}`),null}}}}let m=[];for(let a of c){if(!a||"object"!=typeof a)continue;let b=a.modelId||a.id;if(!b)continue;let c=function(a,b,c){let d=(a||b||"Kiro").trim(),e=Number(c);if(!Number.isFinite(e)||1e-9>Math.abs(e-1)||e<=0)return`Kiro ${d}`;let f=e.toFixed(1).replace(",",".");return`Kiro ${d} (${f}x credit)`}(a.modelName,b,a.rateMultiplier),d=Number(a?.tokenLimits?.maxInputTokens)||2e5;for(let e of function(a,b){let c,d=((c=a).endsWith("-agentic")&&(c=c.slice(0,-8)),c.endsWith("-thinking")&&(c=c.slice(0,-9)),c),e=b||`Kiro ${d}`,f=[{id:d,name:e,capabilities:{thinking:!1,agentic:!1}},{id:`${d}-thinking`,name:`${e} (Thinking)`,capabilities:{thinking:!0,agentic:!1}}];return"auto"!==d&&(f.push({id:`${d}-agentic`,name:`${e} (Agentic)`,capabilities:{thinking:!1,agentic:!0}}),f.push({id:`${d}-thinking-agentic`,name:`${e} (Thinking + Agentic)`,capabilities:{thinking:!0,agentic:!0}})),f}(b,c))m.push({...e,contextLength:d,rateMultiplier:Number.isFinite(Number(a.rateMultiplier))?Number(a.rateMultiplier):1,upstreamModelId:b,description:a.description||""})}return j.set(h,{expiresAt:i+3e5,models:m,rawModels:c}),{models:m,rawModels:c}}},38709:(a,b,c)=>{"use strict";c.d(b,{M:()=>h});var d=c(90737),e=c(93943),f=c(39609);let g=`${d.Nr}/models`;async function h(a,b={}){let{fetchFn:c=f.proxyAwareFetch,log:i=console,proxyOptions:j=null,onCredentialsRefreshed:k}=b,l=a?.accessToken;if(!l)return{models:[],warning:"Grok CLI access token is missing."};let m=b=>c(g,{method:"GET",headers:function(a,b={}){let c={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":d.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-version":d.uG,"x-grok-client-identifier":d.rK,"x-grok-client-mode":"headless"},e=b?.email,f=b?.userId||b?.principalId;return e&&(c["x-email"]=e),f&&(c["x-userid"]=f),c}(b,a?.providerSpecificData)},j);try{let b=await m(l);if((401===b.status||403===b.status)&&a?.refreshToken){let c=await (0,e.Vq)("grok-cli",a,i,j);if(c?.accessToken){l=c.accessToken;try{await k?.(c)}catch(a){i?.warn?.("Grok CLI credential persistence failed",a)}b=await m(l)}}if(!b.ok){let a=await b.text().catch(()=>"");return{models:[],warning:`Grok CLI model discovery failed (${b.status})${a?`: ${a.slice(0,160)}`:""}`}}let c=function(a){let b,c=new Set,e=[];for(let[f,g]of(b=Array.isArray(a)?a:a?.data??a?.models??a?.results??[],Array.isArray(b)?b.map(a=>[null,a]):b&&"object"==typeof b?Object.entries(b):[])){let a="string"==typeof g?{id:g}:g;if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=String(a.id??a.model_id??a.modelId??a.model??a.slug??f??a.name??"").trim();if(!b||c.has(b))continue;c.add(b);let h={...a,id:b,name:a.display_name??a.displayName??a.name??b},i=Number(a.context_length??a.contextLength??a.context_window??a.contextWindow),j=Number(a.max_output_tokens??a.maxOutputTokens);Number.isFinite(i)&&i>0&&(h.contextLength=i),Number.isFinite(j)&&j>0&&(h.maxOutputTokens=j),b===d.to&&(h.contextLength||=5e5,h.maxOutputTokens||=64e3),e.push(h)}return e}(await b.json());return c.length?{models:c}:{models:[],warning:"Grok CLI returned no selectable models."}}catch(a){return{models:[],warning:`Grok CLI model discovery failed: ${a.message}`}}}},39326:(a,b,c)=>{"use strict";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}}}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},69704:(a,b,c)=>{"use strict";c.d(b,{Dg:()=>k,F8:()=>u,KC:()=>w,L7:()=>d,OQ:()=>j,R$:()=>l,RB:()=>D,Ty:()=>z,UJ:()=>q,VD:()=>r,_G:()=>i,bR:()=>t,bg:()=>h,cT:()=>y,cn:()=>p,h3:()=>o,ii:()=>n,j9:()=>f,jJ:()=>m,li:()=>s,pM:()=>C,pr:()=>E,qk:()=>A,rf:()=>g,t6:()=>x,xG:()=>B});let d="https://openapi.qoder.sh",e="https://api3.qoder.sh",f="https://api2.qoder.sh",g="https://qoder.com/device/selectAccounts",h=`${d}/api/v1/deviceToken/poll`,i=`${d}/api/v1/userinfo`,j=`${d}/api/v1/jobToken/exchange`,k="https://qoder.com",l="https://gateway.qoder.com.cn",m="https://openapi.qoder.com.cn",n="https://qoder.cn/device/selectAccounts",o=`${m}/api/v1/deviceToken/poll`,p=`${m}/api/v1/userinfo`,q=`${m}/api/v1/jobToken/exchange`,r="https://qoder.cn",s=l,t=`${l}/algo/api/v2/model/list`,u="/api/v2/service/pro/sse/agent_chat_generation",v=`${e}/algo${u}?FetchKeys=llm_model_result&AgentId=agent_common`,w=`${v}&Encode=1`,x=`${e}/algo/api/v2/model/list`,y="1.0.0",z="5",A="disagree",B="v2",C="x86_64_windows",D="5",E=`-----BEGIN PUBLIC KEY-----
2
2
  MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8iMH5c02LilrsERw9t6Pv5Nc
3
3
  4k6Pz1EaDicBMpdpxKduSZu5OANqUq8er4GM95omAGIOPOh+Nx0spthYA2BqGz+l
4
4
  6HRkPJ7S236FZz73In/KVuLnwI8JJ2CbuJap8kvheCCZpmAWpb/cPx/3Vr/J6I17
@@ -0,0 +1 @@
1
+ exports.id=2154,exports.ids=[2154,3662,4755,5527,6457,8838],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},{provider:"codebuddy-intl",text:"conversation id missing",channelScope:!0,cooldownMs:j.short},{provider:"codebuddy-intl",text:"request illegal",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"11133",cooldownMs:0},{text:"rejected by the model provider",cooldownMs:0},{text:"请求体积已达极端量级",cooldownMs:0},{text:"extreme-size backstop",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"bind your alibaba cloud account",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:18e5},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}],m=/real-name verification|realname|\bface verification\b|实名认证|bind your alibaba cloud account/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。",modelscope:"ModelScope 魔搭要求账号先绑定阿里云账号(实名认证)才能使用免费推理 API。出路:打开 https://modelscope.cn/my/account 完成第三方账号「阿里云」绑定后重试。"},o="上游要求该账号先完成实名认证(real-name verification),未完成前所有调用都会被拒绝;请按上游提示的地址完成核验后重试。"},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): ${c} (Complete 'Verify your account' in a browser signed in to the affected account, or check 18+ age verification at https://myaccount.google.com/age-verification)`}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||function(a){let b;if(!a||"string"!=typeof a)return null;let c=a.trim();if(!c.startsWith("{")||!c.endsWith("}"))return null;try{b=JSON.parse(c)}catch{return null}if(!b||"object"!=typeof b)return null;let d=b.error?.message??b.message??b.msg??("string"==typeof b.error?b.error:null);if("string"!=typeof d||!d.trim())return null;let e=b.code??b.error?.code;return"number"==typeof e||"string"==typeof e&&/^\d+$/.test(e)?d.toLowerCase().includes(String(e))?d:`[${e}] ${d}`:d}(f.message)||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);if(a?.code===11133||a?.displayTips||a?.displayMsg){let b=a.displayTips?.zh||a.displayTips?.en||a.displayTips?.["zh-hant"],c=a.displayMsg?.zh||a.displayMsg?.en||a.displayMsg?.["zh-hant"]||a.msg||a.message;b?f=`${c?`${c}:`:""}${b}`:c&&(f=c)}f||(f=a.error?.message||a.message||a.msg||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,f=null){let g=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1),h=402===a||(0,e.tc)(b);return new Response(JSON.stringify({type:"error",error:{type:a>=500?"api_error":"invalid_request_error",message:h||!d?b:`${b} (${d})`}}),{status:a,headers:{...f,"Content-Type":"application/json",...!h?{"retry-after":String(g)}:{}}})}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}`,l=(0,e.Bp)(k,b);return(0,e.dN)(l,b)}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},66328:(a,b,c)=>{"use strict";c.d(b,{FO:()=>M});var d=c(89718),e=c(39326),f=c(74926),g=c(40615),h=c(57247),i=c(75924),j=c(90737),k=c(35024),l=c(59669),m=c(78661),n=c(53225),o=c(69704),p=c(12557),q=c(93943),r=c(92990),s=c(52284),t=c(43659);let u={claude:{checkExpiry:!0,refreshable:!0},codex:{url:"https://chatgpt.com/backend-api/codex/responses",method:"POST",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"Content-Type":"application/json",originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${i.Ch}`},body:JSON.stringify({model:"gpt-5.3-codex",input:[],stream:!1,store:!1}),acceptStatuses:[400],refreshable:!0},"gemini-cli":{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},antigravity:{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},github:{url:"https://api.github.com/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"User-Agent":"10Router",Accept:"application/vnd.github+json"}},iflow:{buildUrl:a=>`https://iflow.cn/api/oauth/getUserInfo?accessToken=${encodeURIComponent(a)}`,method:"GET",noAuth:!0},kiro:{checkExpiry:!0,refreshable:!0},kimi:{checkExpiry:!0,refreshable:!0},"kimi-coding":{checkExpiry:!0,refreshable:!0},cursor:{tokenExists:!0},kilocode:{url:`${r.MZ.apiBaseUrl}/api/profile`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},cline:{refreshable:!0},gitlab:{url:"https://gitlab.com/api/v4/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},"codebuddy-cn":{tokenExists:!0},"codebuddy-intl":{tokenExists:!0},kimchi:{url:r.Td.validationUrl||"https://api.cast.ai/v1/llm/openai/supported-providers",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/json","User-Agent":"kimchi/0.1.40"},refreshable:!1},"grok-cli":{url:k.xq["grok-cli"]?.userUrl||"https://cli-chat-proxy.grok.com/v1/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{Accept:"application/json",...k.xq["grok-cli"]?.headers||{"User-Agent":j.hY,"x-xai-token-auth":"xai-grok-cli","x-grok-client-identifier":"grok-pager","x-grok-client-version":j.uG}},refreshable:!0,acceptStatuses:[402],softFailMessage:{402:"Connected, but Grok Build credits are exhausted (spending limit). Add credits or upgrade SuperGrok."}},muse:{url:"https://api.meta.ai/v1/models",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"x-api-version":"1.0.0"},refreshable:!1},"minimax-code":{url:"https://agent.minimax.cn/mavis/api/v1/llm/v1/messages",method:"POST",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"Content-Type":"application/json","User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main","anthropic-version":"2023-06-01"},body:JSON.stringify({model:"MiniMax-M3.1-Flash",max_tokens:1,messages:[{role:"user",content:"ping"}]}),refreshable:!0},"minimax-code-global":{url:"https://agent.minimax.io/mavis/api/v1/llm/v1/messages",method:"POST",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"Content-Type":"application/json","User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main","anthropic-version":"2023-06-01"},body:JSON.stringify({model:"MiniMax-M3.1-Flash",max_tokens:1,messages:[{role:"user",content:"ping"}]}),refreshable:!0}};function v(a,b,c=""){if(!a)return{valid:!1,error:"No response",soft:!1};let d=a.status;if(!(a.ok||b?.acceptStatuses&&b.acceptStatuses.includes(d)))return 401===d?{valid:!1,error:"Token invalid or revoked",soft:!1}:403===d?{valid:!1,error:"Access denied",soft:!1}:{valid:!1,error:`API returned ${d}`,soft:!1};if(!a.ok&&b?.acceptStatuses?.includes(d)){let a=b.softFailMessage||{};if(a[d])return{valid:!0,error:a[d],soft:!0}}return{valid:!0,error:null,soft:!1}}async function w(a){return await fetch("https://api.cline.bot/api/v1/users/me",{method:"GET",headers:(0,s.w$)(a,{Accept:"application/json"})})}let x="https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",y=JSON.stringify({metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"}});function z(a,b){if(!a)return b;try{let b=JSON.parse(a),c=b?.error?.message||b?.message||b?.error;if("string"==typeof c&&c.trim())return c.trim();if(c)return JSON.stringify(c)}catch{}return a.trim()||b}let A=/Requested entity was not found/i;function B(a,b,c=null){let d=(0,t.Yx)(a)||z(a,`API returned ${b}`);return A.test(d)?c?"Model not available on this account (Google preview/rollout not granted)":"Requested resource not available on this account (Google preview/rollout not granted)":d}async function C(a,b,c=null){let d=String(a.projectId||"").trim();if(d)return d;try{let d=await J(x,{method:"POST",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json","User-Agent":"antigravity"===a.provider?"antigravity/ide/2.22.0 darwin/arm64":"google-api-nodejs-client/9.15.1 gemini-cli/0.34.0"},body:JSON.stringify({metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"}})},c);if(!d.ok)return null;let e=await d.json().catch(()=>null),f=e?.cloudaicompanionProject?.id||e?.cloudaicompanionProject;return("string"==typeof f?f.trim():"")||null}catch{return null}}async function D(a,b,d=null,e="gemini-3.8-flash-high"){let{AntigravityExecutor:f}=await Promise.all([c.e(6922),c.e(9536)]).then(c.bind(c,39536)),g=new f,h=await C(a,b,d);if(!h)return{valid:!0,error:null,warning:"Credential OK; model probe skipped (no project ID — reconnect OAuth to store it)"};let i={accessToken:b,projectId:h,connectionId:a.id,email:a.email,providerSpecificData:a.providerSpecificData},{translateRequest:j,initTranslators:k}=await Promise.all([c.e(6922),c.e(9536),c.e(2380)]).then(c.bind(c,82380)),{stripThinkingSuffix:l}=await Promise.resolve().then(c.bind(c,52136));await k();let m=j("openai","antigravity",e,{model:e,stream:!1,messages:[{role:"user",content:"ping"}],max_tokens:8},!1,i,"antigravity",null,[],a.id,null),n=l(e);m.model=n;let o=g.transformRequest(n,m,!1,i),p=g.buildUrl(n,!1,0,i),q=g.buildHeaders(i,!1,null,n,o),r=await J(p,{method:"POST",headers:q,body:JSON.stringify(o)},d);if(r.ok){try{await r.text()}catch{}return{valid:!0,error:null}}let s=await r.text().catch(()=>"");return 429===r.status?{valid:!0,error:null,warning:"Model rate-limited (quota exhausted)"}:{valid:!1,error:B(s,r.status,e),status:r.status}}async function E(a,b,c=null){let d="antigravity"===a.provider?"google-api-nodejs-client/9.15.1 vscode-antigravity/1.107.0":"google-api-nodejs-client/9.15.1 gemini-cli/0.34.0",e=await J(x,{method:"POST",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json","User-Agent":d},body:y},c);return e.ok?{valid:!0,error:null}:{valid:!1,error:B(await e.text().catch(()=>""),e.status),status:e.status}}async function F(a){let b=a.provider,c=a.refreshToken;if(!c)return null;try{if("gemini-cli"===b||"antigravity"===b){let a="gemini-cli"===b?r.LT:r.YT,d=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:a.clientId,client_secret:a.clientSecret,grant_type:"refresh_token",refresh_token:c})});if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,expiresIn:e.expires_in,refreshToken:e.refresh_token||c}}if("codex"===b||"grok-cli"===b||"xai"===b||"minimax-code"===b||"minimax-code-global"===b)return await (0,q.Vq)(b,a,console);if("claude"===b){let a=await fetch(r.OV.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:c,client_id:r.OV.clientId})});if(!a.ok)return null;let b=await a.json();return{accessToken:b.access_token,expiresIn:b.expires_in,refreshToken:b.refresh_token||c}}if("kiro"===b){let b=a.providerSpecificData||{},d=b.clientId||a.clientId,e=b.clientSecret||a.clientSecret,f=b.region||a.region;if(d&&e){let a=`https://oidc.${f||"us-east-1"}.amazonaws.com/token`,b=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:d,clientSecret:e,refreshToken:c,grantType:"refresh_token"})});if(!b.ok)return null;let g=await b.json();return{accessToken:g.accessToken,expiresIn:g.expiresIn||3600,refreshToken:g.refreshToken||c}}let g=await fetch(r.Tx.socialRefreshUrl,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:c})});if(!g.ok)return null;let h=await g.json();return{accessToken:h.accessToken,expiresIn:h.expiresIn||3600,refreshToken:h.refreshToken||c}}if("cline"===b){let a=await fetch(r.lB.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:c,grantType:"refresh_token",clientType:"extension"})});if(!a.ok)return null;let b=await a.json(),d=b?.data||b,e=d?.expiresAt?Math.max(1,Math.floor((new Date(d.expiresAt).getTime()-Date.now())/1e3)):3600;return{accessToken:d?.accessToken,expiresIn:e,refreshToken:d?.refreshToken||c}}return null}catch(a){return console.log(`Error refreshing ${b} token:`,a.message),null}}let G=new Set(["auto","efficient"]);async function H(a,b=null,c={}){let{model:d}=c,e=null;try{e=await (0,n.EV)(a,{proxyOptions:b,forceRefresh:!0})}catch{e=null}if(e&&Array.isArray(e.models)){let a=e.models.length>0;return d&&!G.has(d)?e.models.some(a=>a.id===d)?{valid:!0,error:null,refreshed:!1}:{valid:!1,error:`Model "${d}" is not available on this Qoder account`,refreshed:!1}:a?{valid:!0,error:null,refreshed:!1}:{valid:!1,error:"No models available on this Qoder account",refreshed:!1}}if(!a.accessToken)return{valid:!1,error:"No access token",refreshed:!1};let f="qoder-cn"===a.provider?o.cn:o._G;try{let c=await J(f,{method:"GET",headers:{Authorization:`Bearer ${a.accessToken}`,Accept:"application/json","User-Agent":"qodercli/1.0.0"}},b);if(!c.ok){let a=401===c.status||403===c.status;return{valid:!1,error:a?"Token invalid or expired":`Qoder userinfo error (${c.status})`,refreshed:!1}}return d?{valid:!0,warning:"Credential OK, but model availability could not be verified (catalog unavailable)",error:null,refreshed:!1}:{valid:!0,error:null,refreshed:!1}}catch(a){return{valid:!1,error:`Qoder test failed: ${a.message}`,refreshed:!1}}}async function I(a,b=null,c={}){if("qoder"===a.provider||"qoder-cn"===a.provider)return H(a,b,c);let d=u[a.provider];if(!d)return{valid:!1,error:"Provider test not supported",refreshed:!1};if(!a.accessToken)return{valid:!1,error:"No access token",refreshed:!1};if(d.tokenExists)return{valid:!0,error:null,refreshed:!1,newTokens:null};let e=a.accessToken,f=!1,g=null,i=(0,q.fp)(a.provider,a);if(d.refreshable&&i&&a.refreshToken){let b=await F(a);if(!b)return{valid:!1,error:"Token expired and refresh failed",refreshed:!1};e=b.accessToken,f=!0,g=b}if(d.checkExpiry)return f?{valid:!0,error:null,refreshed:f,newTokens:g}:i?{valid:!1,error:"Token expired",refreshed:!1}:{valid:!0,error:null,refreshed:!1,newTokens:null};if("gemini-cli"===a.provider||"antigravity"===a.provider){let i=c?.model,j=i?(0,h.kt)(a.provider,i):null,k=async c=>{let d=await E(a,c,b);if(!d.valid)return d;if(j){let d=await D(a,c,b,j);if(!d.valid)return d;if(d.warning)return{valid:!0,error:null,warning:d.warning,soft:!0}}return{valid:!0,error:null}},l=await k(e);if(l.valid)return{valid:!0,error:l.warning||null,warning:l.warning||null,refreshed:f,newTokens:g};if(401===l.status&&d.refreshable&&!f&&a.refreshToken){let b=await F(a);if(b?.accessToken){let a=await k(b.accessToken);return a.valid?{valid:!0,error:a.warning||null,warning:a.warning||null,refreshed:!0,newTokens:b}:{valid:!1,error:a.error,refreshed:!0,newTokens:b}}return{valid:!1,error:"Token invalid or revoked",refreshed:!1}}return{valid:!1,error:l.error,refreshed:f}}if("cline"===a.provider){let b=async a=>{let b=await w(a);return b.ok?{valid:!0,error:null,refreshed:f,newTokens:g}:401===b.status?{valid:!1,error:"Token invalid or revoked",refreshed:f}:403===b.status?{valid:!1,error:"Access denied",refreshed:f}:{valid:!1,error:`API returned ${b.status}`,refreshed:f}},c=await b(e);if(c.valid||"Token invalid or revoked"!==c.error||!a.refreshToken)return c;let d=await F(a);return d?.accessToken?(f=!0,g=d,e=d.accessToken,await b(e)):{valid:!1,error:"Token invalid or revoked",refreshed:!1}}try{let c=d.buildUrl?d.buildUrl(e):d.url,h=d.noAuth?{...d.extraHeaders}:{[d.authHeader]:`${d.authPrefix}${e}`,...d.extraHeaders},i={method:d.method,headers:h};d.body&&(i.body=d.body);let j=await J(c,i,b),k=j.ok?"":await j.text().catch(()=>""),l=v(j,d,k);if(l.valid)return{valid:!0,error:l.soft?l.error:null,warning:l.soft?l.error:null,refreshed:f,newTokens:g};if(401===j.status&&d.refreshable&&!f&&a.refreshToken){let e=await F(a);if(e){let a=d.buildUrl?d.buildUrl(e.accessToken):c,f=d.noAuth?{...d.extraHeaders}:{[d.authHeader]:`${d.authPrefix}${e.accessToken}`,...d.extraHeaders},g={method:d.method,headers:f};d.body&&(g.body=d.body);let h=await J(a,g,b),i=h.ok?"":await h.text().catch(()=>""),j=v(h,d,i);if(j.valid)return{valid:!0,error:j.soft?j.error:null,warning:j.soft?j.error:null,refreshed:!0,newTokens:e}}return{valid:!1,error:"Token invalid or revoked",refreshed:!1}}return{valid:!1,error:l.error,refreshed:f}}catch(a){return{valid:!1,error:a.message,refreshed:f}}}async function J(a,b={},d=null){if(b.signal||(b.signal=AbortSignal.timeout(15e3)),d?.vercelRelayUrl){let{proxyAwareFetch:e}=await Promise.resolve().then(c.bind(c,39609));return e(a,b,{vercelRelayUrl:d.vercelRelayUrl})}if(!d?.connectionProxyEnabled||!d?.connectionProxyUrl)return fetch(a,b);let{proxyAwareFetch:e}=await Promise.resolve().then(c.bind(c,39609));return e(a,b,{connectionProxyEnabled:!0,connectionProxyUrl:d.connectionProxyUrl,connectionNoProxy:d.connectionNoProxy||""})}async function K(a,b,d={}){let e,f=k.xq[a.provider];if(d.model&&f?.baseUrl){let e,{stripThinkingSuffix:g}=await Promise.resolve().then(c.bind(c,52136)),i=g((0,h.kt)(a.provider,d.model));try{e=await J(f.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:i,messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b)}catch(a){return{valid:!1,error:"Endpoint unreachable — the provider may be under maintenance, try again later",maintenance:!0}}if(401===e.status||403===e.status)return{valid:!1,error:"Invalid API key"};if(429===e.status)return{valid:!0,error:"Model rate-limited (quota exhausted)"};let j=await e.text().catch(()=>"");if(!e.ok){let a=z(j,`API returned ${e.status}`);return{valid:!1,error:`HTTP ${e.status}: ${a}`,maintenance:e.status>=500}}return{valid:!0,error:null}}let g=f?.validateUrl||(f?.baseUrl?.endsWith("/chat/completions")?f.baseUrl.replace(/\/chat\/completions$/,"")+"/models":null);if(!g||"/models"===g)return{valid:!1,error:"Provider test not supported"};try{e=await J(g,{headers:{Authorization:`Bearer ${a.apiKey}`}},b)}catch(a){return{valid:!1,error:"Endpoint unreachable — the provider may be under maintenance, try again later",maintenance:!0}}let i=e.headers.get("content-type")||"",j=/text\/html/i.test(i),l=!(e.status>=500&&j)&&401!==e.status&&403!==e.status;return l||!j&&403!==e.status&&/json/i.test(i)?{valid:l,error:l?null:"Invalid API key"}:{valid:!1,error:"Provider may be under maintenance — blocked by its gateway (e.g. Cloudflare). Try again later or check the provider status page",maintenance:!0}}async function L(a,b=null,d={}){let{model:e}=d;if((0,g.mq)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{let d=await J(`${c.replace(/\/$/,"")}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}if((0,g.gb)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{(c=c.replace(/\/$/,"")).endsWith("/messages")&&(c=c.slice(0,-9));let d=`${c}/v1/messages`,f=e||a.defaultModel||"claude-3-haiku-20240307",g=await J(d,{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:f,max_tokens:1,messages:[{role:"user",content:"test"}]})},b),h=401!==g.status&&403!==g.status;return{valid:h,error:h?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}try{switch(a.provider){case"cloudflare-ai":{let c=(a.providerSpecificData||{}).accountId;if(!c)return{valid:!1,error:"Missing Account ID"};let d=`https://api.cloudflare.com/client/v4/accounts/${c}/ai/v1/chat/completions`,f=e||(0,h.fZ)("cloudflare-ai"),g=await J(d,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({model:f,messages:[{role:"user",content:"test"}],max_tokens:1})},b),i=401!==g.status&&403!==g.status&&404!==g.status;return{valid:i,error:i?null:"Invalid API token or Account ID"}}case"azure":{let c=a.providerSpecificData||{},d=(c.azureEndpoint||"").replace(/\/$/,""),e=c.deployment||"gpt-4",f=c.apiVersion||"2024-10-01-preview",g=`${d}/openai/deployments/${e}/chat/completions?api-version=${f}`,h={"api-key":a.apiKey,"Content-Type":"application/json"};c.organization&&(h["OpenAI-Organization"]=c.organization);let i=await J(g,{method:"POST",headers:h,body:JSON.stringify({messages:[{role:"user",content:"test"}],max_completion_tokens:1})},b),j=401!==i.status&&403!==i.status;return{valid:j,error:j?null:"Invalid API key or Azure configuration"}}case"openai":{let c=await J("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"vercel-ai-gateway":{let c=await J("https://ai-gateway.vercel.sh/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"anthropic":{let c=await J("https://api.anthropic.com/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:e||"claude-3-haiku-20240307",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"gemini":{let c=await J(`https://generativelanguage.googleapis.com/v1/models?key=${a.apiKey}`,{},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"openrouter":{let c=await J("https://openrouter.ai/api/v1/auth/key",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"glm":{let c=await J("https://api.z.ai/api/anthropic/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:e||"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"glm-cn":{let c=await J("https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:e||"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"minimax":case"minimax-cn":{let c=await J({minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages"}[a.provider],{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:e||"minimax-m2",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"kimi":{let c=await J("https://api.kimi.com/coding/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:e||"kimi-latest",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"alicode":case"alicode-intl":case"alims-intl":{let c="alicode-intl"===a.provider?"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions":"alims-intl"===a.provider?"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions":"https://coding.dashscope.aliyuncs.com/v1/chat/completions",d=e||(0,h.fZ)(a.provider),f=await J(c,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:d,max_tokens:1,messages:[{role:"user",content:"test"}]})},b),g=401!==f.status&&403!==f.status;return{valid:g,error:g?null:"Invalid API key"}}case"volcengine-ark":case"byteplus":{let c=e||(0,h.fZ)(a.provider),d=await J(k.xq[a.provider]?.baseUrl,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:c,max_tokens:1,messages:[{role:"user",content:"test"}]})},b),f=401!==d.status&&403!==d.status;return{valid:f,error:f?null:"Invalid API key"}}case"deepseek":{let c=await J("https://api.deepseek.com/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"groq":{let c=await J("https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"mistral":{let c=await J("https://api.mistral.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"xai":{let c=await J("https://api.x.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nvidia":{let c=await J("https://integrate.api.nvidia.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"perplexity":{let c=await J("https://api.perplexity.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"together":{let c=await J("https://api.together.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"fireworks":{let c=await J("https://api.fireworks.ai/inference/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cerebras":{let c=await J("https://api.cerebras.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cohere":{let c=await J("https://api.cohere.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nebius":{let c=await J("https://api.studio.nebius.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"siliconflow":{let c=await J("https://api.siliconflow.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"hyperbolic":{let c=await J("https://api.hyperbolic.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"ollama":{let b=await fetch("https://ollama.com/api/tags",{headers:{Authorization:`Bearer ${a.apiKey}`}});return{valid:b.ok,error:b.ok?null:"Invalid API key"}}case"ollama-local":{let b=(0,k.Ak)(a),c=await fetch(`${b}/api/tags`);return{valid:c.ok,error:c.ok?null:`Ollama not reachable at ${b}`}}case"deepgram":{let c=await J("https://api.deepgram.com/v1/projects",{headers:{Authorization:`Token ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"assemblyai":{let c=await J("https://api.assemblyai.com/v1/account",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nanobanana":{let c=await J("https://api.nanobananaapi.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"fal-ai":{let c=await J("https://api.fal.ai/v1/models?limit=1",{headers:{Authorization:`Key ${a.apiKey}`}},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"chutes":{let c=await J("https://llm.chutes.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"grok-web":{let c=a.apiKey.startsWith("sso=")?a.apiKey.slice(4):a.apiKey,d=a=>Array.from(crypto.getRandomValues(new Uint8Array(a)),a=>a.toString(16).padStart(2,"0")).join(""),e=Buffer.from("e:TypeError: Cannot read properties of null (reading 'children')").toString("base64"),f=await J("https://grok.com/rest/app-chat/conversations/new",{method:"POST",headers:{Accept:"*/*","Content-Type":"application/json",Cookie:`sso=${c}`,Origin:"https://grok.com",Referer:"https://grok.com/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36","x-statsig-id":e,"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${d(16)}-${d(8)}-00`},body:JSON.stringify({temporary:!0,modelName:"grok-4",message:"ping",fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,sendFinalMetadata:!0})},b),g=401!==f.status&&403!==f.status;return{valid:g,error:g?null:"Invalid SSO cookie"}}case"perplexity-web":{let c=a.apiKey;c.startsWith("__Secure-next-auth.session-token=")&&(c=c.slice(33));let d=await J("https://www.perplexity.ai/api/auth/session",{method:"GET",headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",Cookie:`__Secure-next-auth.session-token=${c}`}},b);if(!d.ok)return{valid:!1,error:"Invalid session cookie"};let e=await d.json().catch(()=>null),f=!!(e&&e.user);return{valid:f,error:f?null:"Session expired — re-paste cookie"}}case"opencode-go":{let c=await J("https://opencode.ai/zen/go/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:(0,h.fZ)("opencode-go"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"xiaomi-mimo":case"mimo-desktop":case"xiaomi-tokenplan":{let d=a.providerSpecificData?.authMethod,f="string"==typeof a.apiKey&&a.apiKey.startsWith("mimo-desktop-session"),g="string"==typeof a.apiKey&&a.apiKey.startsWith("sk-")&&!f;if(("xiaomi-mimo"===a.provider||"mimo-desktop"===a.provider)&&!g&&("desktop-session"===d||f||a.providerSpecificData?.mimoPassToken))try{let{getMimoAccountCookie:d}=await Promise.resolve().then(c.bind(c,12132)),f=await d(a.providerSpecificData,b);if(!f)return{valid:!1,error:"Desktop session unavailable — sign in to MiMo Desktop once, then re-import"};let g=await J("https://mimo-server-cn.xiaomimimo.com/api/route/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Cookie:f,Accept:"text/event-stream"},body:JSON.stringify({model:e||"mimo-v2.6-flash",stream:!0,max_tokens:8,messages:[{role:"system",content:"You are CodeBuddy Code."},{role:"user",content:"hi"}]})},b);if(401===g.status||403===g.status){let a="";try{let{getEgressRegion:b}=await c.e(8988).then(c.bind(c,96607)),d=await b({timeoutMs:1500});d?.countryCode&&"CN"!==d.countryCode&&(a=" (detected non-mainland network; desktop preview models require China-side proxy)")}catch{}return{valid:!1,error:`Desktop session expired or unauthorized — sign in to MiMo Desktop again${a}`}}if(!g.ok)return{valid:!1,error:`Preview probe failed (HTTP ${g.status})`};try{await g.body?.cancel?.()}catch{}return{valid:!0,error:null}}catch(a){return{valid:!1,error:a?.message||"Preview probe failed"}}let h="https://api.xiaomimimo.com/v1/models";if("xiaomi-tokenplan"===a.provider){let{resolveXiaomiTokenplanBaseUrl:b}=await Promise.resolve().then(c.bind(c,35024));h=`${b(a)}/models`}else{let{normalizeMimoApiBase:b}=await Promise.resolve().then(c.bind(c,35024)),d=b(a.providerSpecificData?.baseUrl);d&&(h=`${d}/models`)}let i=await J(h,{headers:{Authorization:`Bearer ${a.apiKey}`}},b),j="xiaomi-tokenplan"===a.provider||h.includes("token-plan")?401!==i.status:i.ok;return{valid:j,error:j?null:"Invalid API key"}}case"blackbox":{let c=k.xq.blackbox?.baseUrl?.replace(/\/chat\/completions$/,"")||"https://api.blackbox.ai/v1",d=await J(`${c}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key"}}case"qoder":{let c=a.apiKey||"",d=c.startsWith("pt-")?c:`pt-${c}`,e=await J("https://openapi.qoder.sh/api/v1/jobToken/exchange",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","Cosy-Version":"1.0.1","Cosy-ClientType":"5"},body:JSON.stringify({personal_token:d})},b);return{valid:e.ok,error:e.ok?null:"Invalid Personal Access Token"}}case"llm7":{let c=a.providerSpecificData?.baseUrl||"https://api.llm7.io/v1",d=await J(`${c.replace(/\/$/,"")}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key or base URL"}}case"kimchi":{let c=r.Td.validationUrl||"https://api.cast.ai/v1/llm/openai/supported-providers",d=await J(c,{method:"GET",headers:{Accept:"application/json",Authorization:`Bearer ${a.apiKey}`,"User-Agent":"kimchi/0.1.40"}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key",refreshed:!1}}case"stepfun":case"stepfun-cn":case"stepfun-plan":case"stepfun-plan-cn":case"sensenova":case"longcat":case"bai":case"atria":case"tokenharbor":case"api-airforce":case"bazaarlink":case"baidu":case"featherless":case"bluesminds":case"alitp-intl":case"alitp-cn":case"tokenbom":case"codiv":case"river":default:return K(a,b,d);case"modelscope":case"sambanova":case"kilo-gateway":{let{stripThinkingSuffix:e}=await Promise.resolve().then(c.bind(c,52136)),f=k.xq[a.provider]?.baseUrl;if(!f)return{valid:!1,error:"Provider test not supported"};let g=d.model?e((0,h.kt)(a.provider,d.model)):(0,h.fZ)(a.provider),i=await J(f,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:g,messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),j=401!==i.status&&403!==i.status;return{valid:j,error:j?null:"Invalid API key"}}case"codebuddy-cn":{let c=k.xq["codebuddy-cn"]?.baseUrl||"https://copilot.tencent.com/v2/chat/completions",d=await J(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:(0,h.fZ)("codebuddy-cn"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),e=401!==d.status&&403!==d.status;return{valid:e,error:e?null:"Invalid API key"}}case"codebuddy-intl":{let c=k.xq["codebuddy-intl"]?.baseUrl||"https://www.codebuddy.ai/v2/chat/completions",d=await J(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`,...k.xq["codebuddy-intl"]?.headers||{}},body:JSON.stringify({model:(0,h.fZ)("codebuddy-intl"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),e=401!==d.status&&403!==d.status;return{valid:e,error:e?null:"Invalid API key"}}case"commandcode":{let c=k.xq.commandcode?.baseUrl||"https://api.commandcode.ai/alpha/generate",d=await J(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`,"x-command-code-version":"0.25.7","x-cli-environment":"cli"},body:JSON.stringify({model:(0,h.fZ)("commandcode"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),e=401!==d.status&&403!==d.status;return{valid:e,error:e?null:"Invalid API key"}}case"dots":{let c=k.xq.dots?.baseUrl||"https://note3-prev-api.askdiandian.com/v1/chat/completions",d=await J(c,{method:"POST",headers:{"Content-Type":"application/json","api-key":a.apiKey},body:JSON.stringify({model:(0,h.fZ)("dots"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})},b),e=401!==d.status&&403!==d.status;return{valid:e,error:e?null:"Invalid API key"}}case"systemone-pure":case"drex":case"nace":case"v1m":case"thx":{let c=g.AI_PROVIDERS[a.provider]?.systemoneConfig,d=a.providerSpecificData?.baseUrl||c?.baseUrl;if(!d)return{valid:!1,error:"Provider test not supported"};let f=await J(d.replace(/\/$/,""),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a.apiKey}`},body:JSON.stringify({model:e||(0,h.fZ)(a.provider)||"test",state:"Customer: I was charged twice for my order this morning.",questions:{probe:{type:"noul",instructions:"Is the customer reporting a billing problem?"}}})},b),i=f.ok||400===f.status||422===f.status;return{valid:i,error:i?null:"Invalid API key"}}}}catch(a){return{valid:!1,error:a.message}}}async function M(a,b={}){let c,h=await (0,d.Mc)(a);if(!h)return{valid:!1,error:"Connection not found",latencyMs:0,testedAt:new Date().toISOString()};let i=await (0,e.B)(h.providerSpecificData||{});if(i.connectionProxyEnabled&&i.connectionProxyUrl&&!i.vercelRelayUrl){let b=await (0,f.C)({proxyUrl:i.connectionProxyUrl});if(!b.ok){let c=b.error||`Proxy test failed with status ${b.status}`;return await (0,d.updateProviderConnection)(a,{testStatus:"error",lastError:c,lastErrorAt:new Date().toISOString()}),{valid:!1,error:c,latencyMs:0,testedAt:new Date().toISOString()}}}let j=Date.now();c="apikey"===h.authType||"api_key"===h.authType||"cookie"===h.authType||"xiaomi-mimo"===h.provider||"mimo-desktop"===h.provider?await L(h,i,b):await I(h,i,b);let k=Date.now()-j,n=c.valid&&(c.warning||c.error),o={testStatus:c.valid?"active":"error",lastError:c.valid?n||null:c.error,lastErrorAt:c.valid?n?new Date().toISOString():null:new Date().toISOString()};return c.valid&&Object.assign(o,{backoffLevel:0,rateLimitedUntil:null,errorCode:null,...!h?{}:Object.fromEntries(Object.keys(h).filter(a=>a.startsWith(p.jl)).map(a=>[a,null]))}),c.refreshed&&c.newTokens&&(c.newTokens.accessToken&&(o.accessToken=c.newTokens.accessToken),c.newTokens.refreshToken&&(o.refreshToken=c.newTokens.refreshToken),c.newTokens.idToken&&(o.idToken=c.newTokens.idToken),c.newTokens.lastRefreshAt&&(o.lastRefreshAt=c.newTokens.lastRefreshAt),c.newTokens.expiresIn&&(o.expiresIn=c.newTokens.expiresIn),c.newTokens.expiresIn?o.expiresAt=new Date(Date.now()+1e3*c.newTokens.expiresIn).toISOString():c.newTokens.expiresAt&&(o.expiresAt=c.newTokens.expiresAt),c.newTokens.providerSpecificData&&(o.providerSpecificData={...h.providerSpecificData||{},...c.newTokens.providerSpecificData})),await (0,d.updateProviderConnection)(a,o),c.valid&&g.wb.includes(h.provider)&&(async()=>{try{let b={...h,...o},c=await (0,l.my)(b,i),e=(0,m.YO)(c);e&&await (0,d.updateProviderConnection)(a,{earliestPackageExpiry:e.expiry||null,earliestPackageName:e.name||null,earliestPackageRemaining:"number"==typeof e.remainingPercentage?e.remainingPercentage:null,quotaCheckedAt:new Date().toISOString()})}catch{}})(),{valid:c.valid,error:c.error,refreshed:!!c.refreshed,latencyMs:k,testedAt:new Date().toISOString()}}},74926:(a,b,c)=>{"use strict";c.d(b,{C:()=>f});var d=c(47774);function e(a){return null==a?"":String(a).trim()}async function f({proxyUrl:a,testUrl:b,timeoutMs:c}={}){let g,h=e(a);if(!h)return{ok:!1,status:400,error:"proxyUrl is required"};let i=e(b)||"https://google.com/",j=Number(c),k=Number.isFinite(j)&&j>0?Math.min(j,3e4):8e3;try{try{g=new d.ProxyAgent({uri:h})}catch(a){return{ok:!1,status:400,error:`Invalid proxy URL: ${a?.message||String(a)}`}}let a=new AbortController,b=Date.now(),c=setTimeout(()=>a.abort(),k);try{let c=await (0,d.hd)(i,{method:"HEAD",dispatcher:g,signal:a.signal,headers:{"User-Agent":"10Router"}});return{ok:c.ok,status:c.status,statusText:c.statusText,url:i,elapsedMs:Date.now()-b}}catch(b){let a=b?.name==="AbortError"?"Proxy test timed out":function(a){if(!a)return"Unknown error";let b=a?.message||String(a),c=a?.cause?.code||a?.code,d=a?.cause?.message;return d&&d!==b?c?`${b}: ${d} (${c})`:`${b}: ${d}`:c&&!b.includes(c)?`${b} (${c})`:b}(b);return{ok:!1,status:500,error:a}}finally{clearTimeout(c)}}finally{try{await g?.close?.()}catch{}}}},78335:()=>{},85081:(a,b,c)=>{"use strict";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},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)},92990:(a,b,c)=>{"use strict";c.d(b,{DI:()=>i,DV:()=>z,LT:()=>j,MZ:()=>u,Nl:()=>y,Nu:()=>o,OV:()=>h,RY:()=>J,S6:()=>r,SK:()=>D,Td:()=>A,Tx:()=>p,Vv:()=>H,WN:()=>s,Ww:()=>K,YT:()=>m,ZL:()=>l,_0:()=>F,aV:()=>t,b3:()=>I,cD:()=>n,eD:()=>E,f7:()=>x,hF:()=>k,lB:()=>v,oe:()=>C,qp:()=>B,sA:()=>G,w1:()=>w});var d=c(21820),e=c(74129),f=c(26070);function g(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let h={...f.sr.claude},i={...f.sr.codex},j={...e.dG,...f.sr["gemini-cli"]},k={...f.sr.qoder},l={...f.sr.iflow},m={...e.XP,...f.sr.antigravity,loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:g(),pluginType:2})};function n(){return{ideType:9,platform:g(),pluginType:2}}({...f.sr.openai});let o={...f.sr.github},p={...f.sr.kiro},q=/^[a-z]{2}-[a-z]+-\d{1,2}$/;function r(a){if("string"!=typeof a||!q.test(a))throw Error("Invalid region");return a}let s={...f.sr.cursor,tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"}},t={...f.sr.kimi,clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||process.env.KIMI_OAUTH_CLIENT_ID||f.xq.kimi?.clientId||f.sr.kimi?.clientId},u={...f.sr.kilocode},v={...f.sr.cline},w={...f.sr.clinepass},x={...f.sr.gitlab},y={...f.sr["codebuddy-cn"]},z={...f.sr["codebuddy-intl"]},A={...f.sr.kimchi},B={...f.sr["grok-cli"]},C={platformUrl:process.env.MIMO_PLATFORM_URL||"https://platform.xiaomimimo.com",defaultBaseUrl:"https://api.xiaomimimo.com/v1",kn:"mimocode",app:"MiMo",timeoutMs:3e5,pendingTtlMs:864e5},D={clientId:"ono9krqynydwx5",clientSecret:"-",loginGuidanceUrls:["https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.ai/cloudide/api/v3/trae/GetLoginGuidance","https://www.trae.ai/cloudide/api/v3/trae/GetLoginGuidance"],apiOrigins:["https://api.marscode.com","https://api.trae.ai","https://www.trae.ai","https://www.marscode.com"],cnLoginGuidanceUrls:["https://api.trae.com.cn/cloudide/api/v3/trae/GetLoginGuidance","https://api.marscode.cn/cloudide/api/v3/trae/GetLoginGuidance","https://api.trae.cn/cloudide/api/v3/trae/GetLoginGuidance"],cnApiOrigins:["https://api.trae.com.cn","https://api.marscode.cn","https://api.trae.cn"],intlHostSuffixes:["trae.ai","marscode.com"],cnHostSuffixes:["trae.cn","trae.com.cn","marscode.cn"],consoleUrl:"https://www.trae.ai/settings",cnConsoleUrl:"https://www.trae.cn/settings",exchangeTokenPath:"/cloudide/api/v3/trae/oauth/ExchangeToken",getUserInfoPath:"/cloudide/api/v3/trae/GetUserInfo",authorizationPath:"/authorization",callbackPath:"/callback",minAppVersion:"3.5.54",defaultAppVersion:"3.5.54",defaultAppType:"stable",defaultPluginVersion:"local",defaultDeviceId:"0",userAgent:"Trae/1.0.0 antigravity-cockpit-tools",webUrl:"https://www.trae.ai",authScheme:"Cloud-IDE-JWT",tokenLifetimeDays:14,oauthTimeoutMs:6e5},E={clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",authBaseUrl:"https://www.windsurf.com",signInPath:"/windsurf/signin",registerApiBaseUrl:"https://register.windsurf.com",registerPath:"/exa.seat_management_pb.SeatManagementService/RegisterUser",oneTimeAuthPath:"/exa.seat_management_pb.SeatManagementService/GetOneTimeAuthToken",currentUserPath:"/exa.seat_management_pb.SeatManagementService/GetCurrentUser",planStatusPath:"/exa.seat_management_pb.SeatManagementService/GetPlanStatus",userStatusPath:"/exa.seat_management_pb.SeatManagementService/GetUserStatus",defaultApiServerUrl:"https://server.codeium.com",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",callbackPath:"/windsurf-auth-callback",userAgent:"antigravity-cockpit-tools",oauthTimeoutMs:6e5},F={...f.sr.glm},G={...f.sr.muse},H={...f.sr["minimax-code"]},I={...f.sr["minimax-code-global"]},J={webBaseUrl:"https://zed.dev",cloudBaseUrl:"https://cloud.zed.dev",llmBaseUrl:"https://cloud.zed.dev",defaultNativeAppPort:58443,oauthTimeoutMs:6e5},K=3e5},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},96487:()=>{}};
@@ -1 +1 @@
1
- "use strict";exports.id=3662,exports.ids=[3662],exports.modules={3662:(a,b,c)=>{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},{provider:"codebuddy-intl",text:"conversation id missing",channelScope:!0,cooldownMs:j.short},{provider:"codebuddy-intl",text:"request illegal",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"11133",cooldownMs:0},{text:"rejected by the model provider",cooldownMs:0},{text:"请求体积已达极端量级",cooldownMs:0},{text:"extreme-size backstop",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"bind your alibaba cloud account",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|实名认证|bind your alibaba cloud account/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。",modelscope:"ModelScope 魔搭要求账号先绑定阿里云账号(实名认证)才能使用免费推理 API。出路:打开 https://modelscope.cn/my/account 完成第三方账号「阿里云」绑定后重试。"},o="上游要求该账号先完成实名认证(real-name verification),未完成前所有调用都会被拒绝;请按上游提示的地址完成核验后重试。"}};
1
+ "use strict";exports.id=3662,exports.ids=[3662],exports.modules={3662:(a,b,c)=>{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},{provider:"codebuddy-intl",text:"conversation id missing",channelScope:!0,cooldownMs:j.short},{provider:"codebuddy-intl",text:"request illegal",channelScope:!0,cooldownMs:j.short},{text:"improperly formed request",cooldownMs:12e4},{text:"mimo desktop account",cooldownMs:0},{text:"11133",cooldownMs:0},{text:"rejected by the model provider",cooldownMs:0},{text:"请求体积已达极端量级",cooldownMs:0},{text:"extreme-size backstop",cooldownMs:0},{text:"real-name verification",cooldownMs:0},{text:"realname verification",cooldownMs:0},{text:"bind your alibaba cloud account",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:18e5},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}],m=/real-name verification|realname|\bface verification\b|实名认证|bind your alibaba cloud account/i,n={"stepfun-plan-cn":"StepFun CN 的 Step Plan 免费套餐要求账号先完成实名(人脸)核验,未完成时上游一律拒绝,与本机额度、与 10Router 都无关。出路:1. 打开 https://account.stepfun.com/security?action=realname 完成人脸核验后重试(推荐);2. 或改用按量计费的 stepfun-cn 渠道(扣现金/代金券,无实名要求)。该账号不会被锁定,但在实名完成前每次调用都会得到这条提示。",modelscope:"ModelScope 魔搭要求账号先绑定阿里云账号(实名认证)才能使用免费推理 API。出路:打开 https://modelscope.cn/my/account 完成第三方账号「阿里云」绑定后重试。"},o="上游要求该账号先完成实名认证(real-name verification),未完成前所有调用都会被拒绝;请按上游提示的地址完成核验后重试。"}};