@techysy/10router 1.5.0 → 1.5.1

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 (1065) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +15 -14
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +4 -4
  5. package/app/.next-cli-build/routes-manifest.json +6 -0
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  79. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/_not-found.html +2 -2
  90. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  91. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  92. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  93. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  94. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +2 -2
  111. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/status/route.js +2 -2
  115. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +3 -3
  119. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js +2 -2
  125. package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  129. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  137. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  143. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  151. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  153. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  159. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/external-quota/[source]/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/external-quota/[source]/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/gateway-probe/route.js +1 -1
  167. package/app/.next-cli-build/server/app/api/gateway-probe/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/keys/rotate/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/keys/rotate/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  195. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/models/caps/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/models/caps/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/network/egress-region/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/network/egress-region/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/claim-compensation/route.js +1 -0
  231. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/claim-compensation/route.js.nft.json +1 -0
  232. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/claim-compensation/route_client-reference-manifest.js +1 -0
  233. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  270. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
  276. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  312. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  314. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  318. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  320. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  322. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  324. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  328. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  330. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  332. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  334. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/security/status/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/security/status/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js +1 -1
  338. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  340. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  344. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
  346. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  352. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  354. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  360. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  366. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  370. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  371. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  372. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  374. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  375. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  376. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  377. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
  378. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  379. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  382. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  384. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  385. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js +1 -1
  386. package/app/.next-cli-build/server/app/api/usage/dashboard/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/usage/quotas/route.js +1 -1
  394. package/app/.next-cli-build/server/app/api/usage/quotas/route.js.nft.json +1 -1
  395. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  396. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  398. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  400. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  402. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  414. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  426. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  427. package/app/.next-cli-build/server/app/api/v1/rerank/route.js +1 -1
  428. package/app/.next-cli-build/server/app/api/v1/rerank/route.js.nft.json +1 -1
  429. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  440. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  441. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  443. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  450. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  451. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  452. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/api/version/route.js +2 -2
  454. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  455. package/app/.next-cli-build/server/app/api/version/shell-update/route.js +2 -2
  456. package/app/.next-cli-build/server/app/api/version/shell-update/route.js.nft.json +1 -1
  457. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  458. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  459. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  460. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  461. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  462. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  463. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  464. package/app/.next-cli-build/server/app/callback.html +2 -2
  465. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  466. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  467. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  468. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  469. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
  470. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
  471. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
  472. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  473. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  474. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +2 -2
  475. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  476. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  477. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  478. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  479. package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
  480. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  481. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  482. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  483. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  484. package/app/.next-cli-build/server/app/dashboard/endpoint.html +2 -2
  485. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  486. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  487. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  488. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  489. package/app/.next-cli-build/server/app/dashboard/experimental.html +2 -2
  490. package/app/.next-cli-build/server/app/dashboard/experimental.rsc +8 -8
  491. package/app/.next-cli-build/server/app/dashboard/experimental.segments/!KGRhc2hib2FyZCk/dashboard/experimental/__PAGE__.segment.rsc +8 -8
  492. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_full.segment.rsc +8 -8
  493. package/app/.next-cli-build/server/app/dashboard/experimental.segments/_tree.segment.rsc +2 -2
  494. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +2 -2
  495. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
  496. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
  497. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
  498. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  499. package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
  500. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  501. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
  502. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  503. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  504. package/app/.next-cli-build/server/app/dashboard/profile.html +2 -2
  505. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  506. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  507. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  508. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  509. package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
  510. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
  511. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  512. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  513. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  514. package/app/.next-cli-build/server/app/dashboard/providers.html +2 -2
  515. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  516. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  517. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  518. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  519. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
  520. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  521. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  522. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  523. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  524. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +2 -2
  525. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +8 -8
  526. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
  527. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
  528. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  529. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  530. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  531. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  532. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  533. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  534. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  535. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +2 -2
  538. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  539. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  540. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  541. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  542. package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
  543. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  544. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
  545. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  546. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  547. package/app/.next-cli-build/server/app/dashboard/token-saver.html +2 -2
  548. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +8 -8
  549. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
  550. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
  551. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  552. package/app/.next-cli-build/server/app/dashboard/translator.html +2 -2
  553. package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
  554. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
  555. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
  556. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  557. package/app/.next-cli-build/server/app/dashboard/usage.html +2 -2
  558. package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
  559. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  560. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  561. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  562. package/app/.next-cli-build/server/app/dashboard.html +2 -2
  563. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  564. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  565. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  566. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  567. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  568. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  569. package/app/.next-cli-build/server/app/index.html +1 -1
  570. package/app/.next-cli-build/server/app/index.rsc +6 -6
  571. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  572. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  573. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  574. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  575. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  576. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  577. package/app/.next-cli-build/server/app/landing.html +2 -2
  578. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  579. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  580. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  581. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  582. package/app/.next-cli-build/server/app/login/page.js +1 -1
  583. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  584. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  585. package/app/.next-cli-build/server/app/login.html +2 -2
  586. package/app/.next-cli-build/server/app/login.rsc +7 -7
  587. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  588. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  589. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
  590. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  591. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  592. package/app/.next-cli-build/server/app/page.js +1 -1
  593. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  594. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  595. package/app/.next-cli-build/server/app-paths-manifest.json +15 -14
  596. package/app/.next-cli-build/server/chunks/1806.js +1 -1
  597. package/app/.next-cli-build/server/chunks/1884.js +6 -0
  598. package/app/.next-cli-build/server/chunks/2557.js +5 -3
  599. package/app/.next-cli-build/server/chunks/2812.js +1 -1
  600. package/app/.next-cli-build/server/chunks/318.js +1 -1
  601. package/app/.next-cli-build/server/chunks/3433.js +4 -4
  602. package/app/.next-cli-build/server/chunks/3599.js +1 -1
  603. package/app/.next-cli-build/server/chunks/3662.js +1 -1
  604. package/app/.next-cli-build/server/chunks/3962.js +1 -1
  605. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  606. package/app/.next-cli-build/server/chunks/4689.js +1 -1
  607. package/app/.next-cli-build/server/chunks/4775.js +1 -1
  608. package/app/.next-cli-build/server/chunks/4927.js +2 -2
  609. package/app/.next-cli-build/server/chunks/5210.js +5 -5
  610. package/app/.next-cli-build/server/chunks/5527.js +1 -1
  611. package/app/.next-cli-build/server/chunks/6326.js +1 -1
  612. package/app/.next-cli-build/server/chunks/6593.js +1 -1
  613. package/app/.next-cli-build/server/chunks/6960.js +3 -3
  614. package/app/.next-cli-build/server/chunks/7067.js +1 -1
  615. package/app/.next-cli-build/server/chunks/7122.js +1 -6
  616. package/app/.next-cli-build/server/chunks/7252.js +1 -1
  617. package/app/.next-cli-build/server/chunks/7274.js +1 -1
  618. package/app/.next-cli-build/server/chunks/75.js +1 -1
  619. package/app/.next-cli-build/server/chunks/8145.js +1 -1
  620. package/app/.next-cli-build/server/chunks/8172.js +1 -1
  621. package/app/.next-cli-build/server/chunks/8318.js +1 -1
  622. package/app/.next-cli-build/server/chunks/8410.js +1 -1
  623. package/app/.next-cli-build/server/chunks/8439.js +1 -1
  624. package/app/.next-cli-build/server/chunks/8499.js +2 -2
  625. package/app/.next-cli-build/server/chunks/8595.js +1 -1
  626. package/app/.next-cli-build/server/chunks/8672.js +1 -1
  627. package/app/.next-cli-build/server/chunks/8689.js +1 -1
  628. package/app/.next-cli-build/server/chunks/8895.js +4 -4
  629. package/app/.next-cli-build/server/chunks/8972.js +1 -1
  630. package/app/.next-cli-build/server/chunks/939.js +1 -1
  631. package/app/.next-cli-build/server/chunks/9417.js +1 -1
  632. package/app/.next-cli-build/server/chunks/9489.js +2 -2
  633. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  634. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  635. package/app/.next-cli-build/server/middleware.js +2 -2
  636. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  637. package/app/.next-cli-build/server/pages/404.html +2 -2
  638. package/app/.next-cli-build/server/pages/500.html +1 -1
  639. package/app/.next-cli-build/static/4BxfiRlz5UJXZcUl6uinS/_buildManifest.js +1 -0
  640. package/app/.next-cli-build/static/chunks/1321-f4736e33b06bb9d6.js +1 -0
  641. package/app/.next-cli-build/static/chunks/{5497-83c412e719fec386.js → 5497-f54b1274c2141bf0.js} +3 -3
  642. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/experimental/{page-19458cb592a41b79.js → page-7ee730e7a1ddb6e5.js} +1 -1
  643. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-bbde3be24400b162.js → page-244e20b305c911c6.js} +2 -2
  644. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-c70550b49f94cbc4.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/_global-error/page-fb1f157de1c4ca66.js +1 -0
  646. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-fb1f157de1c4ca66.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-fb1f157de1c4ca66.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-fb1f157de1c4ca66.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-fb1f157de1c4ca66.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-fb1f157de1c4ca66.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-fb1f157de1c4ca66.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-fb1f157de1c4ca66.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-fb1f157de1c4ca66.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-fb1f157de1c4ca66.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-fb1f157de1c4ca66.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-fb1f157de1c4ca66.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-fb1f157de1c4ca66.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-fb1f157de1c4ca66.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-fb1f157de1c4ca66.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-fb1f157de1c4ca66.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-fb1f157de1c4ca66.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-fb1f157de1c4ca66.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-fb1f157de1c4ca66.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-fb1f157de1c4ca66.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-fb1f157de1c4ca66.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-fb1f157de1c4ca66.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fb1f157de1c4ca66.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-fb1f157de1c4ca66.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-fb1f157de1c4ca66.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-fb1f157de1c4ca66.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-fb1f157de1c4ca66.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-fb1f157de1c4ca66.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-fb1f157de1c4ca66.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-fb1f157de1c4ca66.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-fb1f157de1c4ca66.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-fb1f157de1c4ca66.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-fb1f157de1c4ca66.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-fb1f157de1c4ca66.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-fb1f157de1c4ca66.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/combos/route-fb1f157de1c4ca66.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/external-quota/[source]/route-fb1f157de1c4ca66.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/gateway-probe/route-fb1f157de1c4ca66.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-fb1f157de1c4ca66.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-fb1f157de1c4ca66.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-fb1f157de1c4ca66.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-fb1f157de1c4ca66.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-fb1f157de1c4ca66.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-fb1f157de1c4ca66.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/health/route-fb1f157de1c4ca66.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/init/route-fb1f157de1c4ca66.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-fb1f157de1c4ca66.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-fb1f157de1c4ca66.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/keys/route-fb1f157de1c4ca66.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/locale/route-fb1f157de1c4ca66.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-fb1f157de1c4ca66.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-fb1f157de1c4ca66.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fb1f157de1c4ca66.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fb1f157de1c4ca66.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-fb1f157de1c4ca66.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-fb1f157de1c4ca66.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-fb1f157de1c4ca66.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-fb1f157de1c4ca66.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-fb1f157de1c4ca66.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/models/caps/route-fb1f157de1c4ca66.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-fb1f157de1c4ca66.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-fb1f157de1c4ca66.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-fb1f157de1c4ca66.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/models/route-fb1f157de1c4ca66.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/models/test/route-fb1f157de1c4ca66.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-fb1f157de1c4ca66.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-fb1f157de1c4ca66.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-fb1f157de1c4ca66.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-fb1f157de1c4ca66.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/claim-compensation/route-fb1f157de1c4ca66.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-fb1f157de1c4ca66.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-fb1f157de1c4ca66.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-fb1f157de1c4ca66.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-fb1f157de1c4ca66.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-fb1f157de1c4ca66.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-fb1f157de1c4ca66.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-fb1f157de1c4ca66.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-fb1f157de1c4ca66.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-fb1f157de1c4ca66.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-fb1f157de1c4ca66.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-fb1f157de1c4ca66.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-fb1f157de1c4ca66.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-fb1f157de1c4ca66.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-fb1f157de1c4ca66.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-fb1f157de1c4ca66.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-fb1f157de1c4ca66.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-fb1f157de1c4ca66.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-fb1f157de1c4ca66.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-fb1f157de1c4ca66.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-fb1f157de1c4ca66.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-fb1f157de1c4ca66.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-fb1f157de1c4ca66.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-fb1f157de1c4ca66.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/pricing/route-fb1f157de1c4ca66.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-fb1f157de1c4ca66.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-fb1f157de1c4ca66.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-fb1f157de1c4ca66.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-fb1f157de1c4ca66.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-fb1f157de1c4ca66.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-fb1f157de1c4ca66.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-fb1f157de1c4ca66.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-fb1f157de1c4ca66.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-fb1f157de1c4ca66.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/providers/route-fb1f157de1c4ca66.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-fb1f157de1c4ca66.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-fb1f157de1c4ca66.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-fb1f157de1c4ca66.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-fb1f157de1c4ca66.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-fb1f157de1c4ca66.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-fb1f157de1c4ca66.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-fb1f157de1c4ca66.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-fb1f157de1c4ca66.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-fb1f157de1c4ca66.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-fb1f157de1c4ca66.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-fb1f157de1c4ca66.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-fb1f157de1c4ca66.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-fb1f157de1c4ca66.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-fb1f157de1c4ca66.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-fb1f157de1c4ca66.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-fb1f157de1c4ca66.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-fb1f157de1c4ca66.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/security/status/route-fb1f157de1c4ca66.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-fb1f157de1c4ca66.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-fb1f157de1c4ca66.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-fb1f157de1c4ca66.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-fb1f157de1c4ca66.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/settings/route-fb1f157de1c4ca66.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-fb1f157de1c4ca66.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/tags/route-fb1f157de1c4ca66.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-fb1f157de1c4ca66.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-fb1f157de1c4ca66.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-fb1f157de1c4ca66.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-fb1f157de1c4ca66.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-fb1f157de1c4ca66.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-fb1f157de1c4ca66.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-fb1f157de1c4ca66.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-fb1f157de1c4ca66.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-fb1f157de1c4ca66.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-fb1f157de1c4ca66.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-fb1f157de1c4ca66.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-fb1f157de1c4ca66.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-fb1f157de1c4ca66.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-fb1f157de1c4ca66.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-fb1f157de1c4ca66.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-fb1f157de1c4ca66.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-fb1f157de1c4ca66.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-fb1f157de1c4ca66.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-fb1f157de1c4ca66.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-fb1f157de1c4ca66.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-fb1f157de1c4ca66.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-fb1f157de1c4ca66.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-fb1f157de1c4ca66.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-fb1f157de1c4ca66.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-fb1f157de1c4ca66.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-fb1f157de1c4ca66.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-fb1f157de1c4ca66.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-fb1f157de1c4ca66.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-fb1f157de1c4ca66.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-fb1f157de1c4ca66.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-fb1f157de1c4ca66.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-fb1f157de1c4ca66.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-fb1f157de1c4ca66.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-fb1f157de1c4ca66.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-fb1f157de1c4ca66.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-fb1f157de1c4ca66.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-fb1f157de1c4ca66.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-fb1f157de1c4ca66.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/v1/rerank/route-fb1f157de1c4ca66.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-fb1f157de1c4ca66.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-fb1f157de1c4ca66.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/v1/route-fb1f157de1c4ca66.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-fb1f157de1c4ca66.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-fb1f157de1c4ca66.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-fb1f157de1c4ca66.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-fb1f157de1c4ca66.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-fb1f157de1c4ca66.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-fb1f157de1c4ca66.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-fb1f157de1c4ca66.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-fb1f157de1c4ca66.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-fb1f157de1c4ca66.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/version/route-fb1f157de1c4ca66.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/version/shell-update/route-fb1f157de1c4ca66.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-fb1f157de1c4ca66.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/version/update/route-fb1f157de1c4ca66.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-fb1f157de1c4ca66.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/page-fb1f157de1c4ca66.js +1 -0
  831. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-fb1f157de1c4ca66.js +1 -0
  832. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-fb1f157de1c4ca66.js +1 -0
  833. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-fb1f157de1c4ca66.js +1 -0
  834. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-fb1f157de1c4ca66.js +1 -0
  835. package/app/.next-cli-build/static/css/{c9904b0ff2f0d4da.css → cd8cdc4426ba0a3b.css} +1 -1
  836. package/app/package.json +1 -1
  837. package/app/public/i18n/changelog/en.md +20 -0
  838. package/app/public/i18n/changelog/zh-CN.md +20 -0
  839. package/app/public/i18n/changelog/zh-TW.md +20 -0
  840. package/app/public/i18n/literals/ar.json +198 -197
  841. package/app/public/i18n/literals/bn.json +198 -197
  842. package/app/public/i18n/literals/cs.json +198 -197
  843. package/app/public/i18n/literals/da.json +198 -197
  844. package/app/public/i18n/literals/de.json +198 -197
  845. package/app/public/i18n/literals/el.json +198 -197
  846. package/app/public/i18n/literals/es.json +198 -197
  847. package/app/public/i18n/literals/fi.json +198 -197
  848. package/app/public/i18n/literals/fr.json +198 -197
  849. package/app/public/i18n/literals/he.json +198 -197
  850. package/app/public/i18n/literals/hi.json +198 -197
  851. package/app/public/i18n/literals/hu.json +198 -197
  852. package/app/public/i18n/literals/id.json +198 -197
  853. package/app/public/i18n/literals/it.json +198 -197
  854. package/app/public/i18n/literals/ja.json +198 -197
  855. package/app/public/i18n/literals/ko.json +198 -197
  856. package/app/public/i18n/literals/nl.json +198 -197
  857. package/app/public/i18n/literals/no.json +198 -197
  858. package/app/public/i18n/literals/pl.json +198 -197
  859. package/app/public/i18n/literals/pt-BR.json +991 -990
  860. package/app/public/i18n/literals/pt-PT.json +198 -197
  861. package/app/public/i18n/literals/ro.json +198 -197
  862. package/app/public/i18n/literals/ru.json +198 -197
  863. package/app/public/i18n/literals/sv.json +198 -197
  864. package/app/public/i18n/literals/tl.json +198 -197
  865. package/app/public/i18n/literals/tr.json +198 -197
  866. package/app/public/i18n/literals/uk.json +198 -197
  867. package/app/public/i18n/literals/ur.json +198 -197
  868. package/app/public/i18n/literals/vi.json +198 -197
  869. package/app/public/i18n/literals/zh-CN.json +7 -1
  870. package/app/public/i18n/literals/zh-TW.json +8 -1
  871. package/app/src/sse/services/codebuddyCheckin.js +247 -2
  872. package/package.json +1 -1
  873. package/app/.next-cli-build/static/XaFYXXaFDzpbuL3LNeL29/_buildManifest.js +0 -1
  874. package/app/.next-cli-build/static/chunks/1321-4faa820be59413ff.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-4db11950e50a00bf.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/_global-error/page-a5b1358c4ce45a48.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-a5b1358c4ce45a48.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-a5b1358c4ce45a48.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-a5b1358c4ce45a48.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-a5b1358c4ce45a48.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-a5b1358c4ce45a48.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-a5b1358c4ce45a48.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-a5b1358c4ce45a48.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-a5b1358c4ce45a48.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-a5b1358c4ce45a48.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-a5b1358c4ce45a48.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-a5b1358c4ce45a48.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-a5b1358c4ce45a48.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-a5b1358c4ce45a48.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a5b1358c4ce45a48.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-a5b1358c4ce45a48.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-a5b1358c4ce45a48.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-a5b1358c4ce45a48.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-a5b1358c4ce45a48.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-a5b1358c4ce45a48.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-a5b1358c4ce45a48.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-a5b1358c4ce45a48.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-a5b1358c4ce45a48.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-a5b1358c4ce45a48.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-a5b1358c4ce45a48.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-a5b1358c4ce45a48.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-a5b1358c4ce45a48.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-a5b1358c4ce45a48.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-a5b1358c4ce45a48.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-a5b1358c4ce45a48.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-a5b1358c4ce45a48.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-a5b1358c4ce45a48.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-a5b1358c4ce45a48.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-a5b1358c4ce45a48.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-a5b1358c4ce45a48.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/combos/route-a5b1358c4ce45a48.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/external-quota/[source]/route-a5b1358c4ce45a48.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/gateway-probe/route-a5b1358c4ce45a48.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-a5b1358c4ce45a48.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-a5b1358c4ce45a48.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-a5b1358c4ce45a48.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-a5b1358c4ce45a48.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-a5b1358c4ce45a48.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-a5b1358c4ce45a48.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/health/route-a5b1358c4ce45a48.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/init/route-a5b1358c4ce45a48.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-a5b1358c4ce45a48.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-a5b1358c4ce45a48.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/keys/route-a5b1358c4ce45a48.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/locale/route-a5b1358c4ce45a48.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-a5b1358c4ce45a48.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-a5b1358c4ce45a48.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-a5b1358c4ce45a48.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-a5b1358c4ce45a48.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-a5b1358c4ce45a48.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-a5b1358c4ce45a48.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-a5b1358c4ce45a48.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-a5b1358c4ce45a48.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-a5b1358c4ce45a48.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/models/caps/route-a5b1358c4ce45a48.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-a5b1358c4ce45a48.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-a5b1358c4ce45a48.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-a5b1358c4ce45a48.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/models/route-a5b1358c4ce45a48.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/models/test/route-a5b1358c4ce45a48.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-a5b1358c4ce45a48.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-a5b1358c4ce45a48.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-a5b1358c4ce45a48.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-a5b1358c4ce45a48.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-a5b1358c4ce45a48.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-a5b1358c4ce45a48.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-a5b1358c4ce45a48.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-a5b1358c4ce45a48.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-a5b1358c4ce45a48.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-a5b1358c4ce45a48.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-a5b1358c4ce45a48.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-a5b1358c4ce45a48.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-a5b1358c4ce45a48.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-a5b1358c4ce45a48.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-a5b1358c4ce45a48.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-a5b1358c4ce45a48.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-a5b1358c4ce45a48.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-a5b1358c4ce45a48.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-a5b1358c4ce45a48.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-a5b1358c4ce45a48.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-a5b1358c4ce45a48.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-a5b1358c4ce45a48.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-a5b1358c4ce45a48.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-a5b1358c4ce45a48.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-a5b1358c4ce45a48.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-a5b1358c4ce45a48.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-a5b1358c4ce45a48.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/pricing/route-a5b1358c4ce45a48.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-a5b1358c4ce45a48.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-a5b1358c4ce45a48.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-a5b1358c4ce45a48.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-a5b1358c4ce45a48.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-a5b1358c4ce45a48.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-a5b1358c4ce45a48.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-a5b1358c4ce45a48.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-a5b1358c4ce45a48.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-a5b1358c4ce45a48.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/providers/route-a5b1358c4ce45a48.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-a5b1358c4ce45a48.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-a5b1358c4ce45a48.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-a5b1358c4ce45a48.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-a5b1358c4ce45a48.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-a5b1358c4ce45a48.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-a5b1358c4ce45a48.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-a5b1358c4ce45a48.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-a5b1358c4ce45a48.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-a5b1358c4ce45a48.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-a5b1358c4ce45a48.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-a5b1358c4ce45a48.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-a5b1358c4ce45a48.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-a5b1358c4ce45a48.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-a5b1358c4ce45a48.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-a5b1358c4ce45a48.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-a5b1358c4ce45a48.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-a5b1358c4ce45a48.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/security/status/route-a5b1358c4ce45a48.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-a5b1358c4ce45a48.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-a5b1358c4ce45a48.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-a5b1358c4ce45a48.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-a5b1358c4ce45a48.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/settings/route-a5b1358c4ce45a48.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-a5b1358c4ce45a48.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/tags/route-a5b1358c4ce45a48.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-a5b1358c4ce45a48.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-a5b1358c4ce45a48.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-a5b1358c4ce45a48.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-a5b1358c4ce45a48.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-a5b1358c4ce45a48.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-a5b1358c4ce45a48.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-a5b1358c4ce45a48.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-a5b1358c4ce45a48.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-a5b1358c4ce45a48.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-a5b1358c4ce45a48.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-a5b1358c4ce45a48.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-a5b1358c4ce45a48.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-a5b1358c4ce45a48.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-a5b1358c4ce45a48.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-a5b1358c4ce45a48.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-a5b1358c4ce45a48.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-a5b1358c4ce45a48.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-a5b1358c4ce45a48.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-a5b1358c4ce45a48.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-a5b1358c4ce45a48.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-a5b1358c4ce45a48.js +0 -1
  1025. package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-a5b1358c4ce45a48.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-a5b1358c4ce45a48.js +0 -1
  1027. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-a5b1358c4ce45a48.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-a5b1358c4ce45a48.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-a5b1358c4ce45a48.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-a5b1358c4ce45a48.js +0 -1
  1031. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-a5b1358c4ce45a48.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-a5b1358c4ce45a48.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-a5b1358c4ce45a48.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-a5b1358c4ce45a48.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-a5b1358c4ce45a48.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-a5b1358c4ce45a48.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-a5b1358c4ce45a48.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-a5b1358c4ce45a48.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-a5b1358c4ce45a48.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-a5b1358c4ce45a48.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-a5b1358c4ce45a48.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/v1/rerank/route-a5b1358c4ce45a48.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-a5b1358c4ce45a48.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-a5b1358c4ce45a48.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/v1/route-a5b1358c4ce45a48.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-a5b1358c4ce45a48.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-a5b1358c4ce45a48.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-a5b1358c4ce45a48.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-a5b1358c4ce45a48.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-a5b1358c4ce45a48.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-a5b1358c4ce45a48.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-a5b1358c4ce45a48.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-a5b1358c4ce45a48.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-a5b1358c4ce45a48.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/app/api/version/route-a5b1358c4ce45a48.js +0 -1
  1056. package/app/.next-cli-build/static/chunks/app/api/version/shell-update/route-a5b1358c4ce45a48.js +0 -1
  1057. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-a5b1358c4ce45a48.js +0 -1
  1058. package/app/.next-cli-build/static/chunks/app/api/version/update/route-a5b1358c4ce45a48.js +0 -1
  1059. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-a5b1358c4ce45a48.js +0 -1
  1060. package/app/.next-cli-build/static/chunks/app/page-a5b1358c4ce45a48.js +0 -1
  1061. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-a5b1358c4ce45a48.js +0 -1
  1062. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-a5b1358c4ce45a48.js +0 -1
  1063. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-a5b1358c4ce45a48.js +0 -1
  1064. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-a5b1358c4ce45a48.js +0 -1
  1065. /package/app/.next-cli-build/static/{XaFYXXaFDzpbuL3LNeL29 → 4BxfiRlz5UJXZcUl6uinS}/_ssgManifest.js +0 -0
@@ -165,7 +165,7 @@ Ways to fix this:
165
165
  - [disable] Remove \`prefetch={true}\` from the <Link> to use the default prefetch
166
166
  - [ignore] Set \`export const instant = false\` to opt the route out of instant-navigation validation
167
167
 
168
- Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},84573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(92729),g=c(99751),h=c(68802),i=c(38955),j=Symbol("internal request");class k extends Request{constructor(a,b={}){const c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);const d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},85292:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AfterContext",{enumerable:!0,get:function(){return m}});let e=(d=c(90132))&&d.__esModule?d:{default:d},f=c(42776),g=c(32053),h=c(29294),i=c(67205),j=c(89218),k=c(3295),l=c(28704);class m{constructor({waitUntil:a,onClose:b,onTaskError:c}){this.isRequestClosed=!1,this.initialOnCloseError=null,this.workUnitStores=new Set,this.waitUntil=a,this.onClose=b,this.onTaskError=c,this.callbackQueue=new e.default,this.callbackQueue.pause();try{b(()=>{for(let a of(this.isRequestClosed=!0,this.workUnitStores))a.phase="after"})}catch(a){this.initialOnCloseError={error:a}}}after(a,b){if(this.initialOnCloseError)throw Object.defineProperty(new f.InvariantError("An onClose call failed, which means after() can't work correctly.",{cause:this.initialOnCloseError.error}),"__NEXT_ERROR_CODE",{value:"E1376",enumerable:!1,configurable:!0});if(this.workUnitStores.add(b),(0,g.isThenable)(a))this.addThenable(a);else if("function"==typeof a)this.addCallback(a,b);else throw Object.defineProperty(Error("`after()`: Argument must be a promise or a function"),"__NEXT_ERROR_CODE",{value:"E50",enumerable:!1,configurable:!0})}addThenable(a){this.waitUntil||n(),this.waitUntil(new Promise(b=>{a.then(()=>{b()},a=>{b(),this.reportTaskError("promise",a)})}))}addCallback(a,b){this.waitUntil||n();let c=k.afterTaskAsyncStorage.getStore(),d=c?c.rootTaskSpawnPhase:b.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let e=(0,j.bindSnapshot)(async()=>{try{await k.afterTaskAsyncStorage.run({rootTaskSpawnPhase:d},()=>a())}catch(a){this.reportTaskError("function",a)}});this.callbackQueue.add(e)}async runCallbacksOnClose(){return this.isRequestClosed?await new Promise(a=>(0,l.scheduleImmediate)(a)):await new Promise(a=>this.onClose(a)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;let a=h.workAsyncStorage.getStore();if(!a)throw Object.defineProperty(new f.InvariantError("Missing workStore in AfterContext.runCallbacks"),"__NEXT_ERROR_CODE",{value:"E547",enumerable:!1,configurable:!0});return(0,i.withExecuteRevalidates)(a,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(a,b){if(console.error("promise"===a?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",b),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,b)}catch(a){console.error(Object.defineProperty(new f.InvariantError("`onTaskError` threw while handling an error thrown from an `after` task",{cause:a}),"__NEXT_ERROR_CODE",{value:"E569",enumerable:!1,configurable:!0}))}}}function n(){throw Object.defineProperty(Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment."),"__NEXT_ERROR_CODE",{value:"E91",enumerable:!1,configurable:!0})}},85304:(a,b,c)=>{"use strict";c.d(b,{exportSettings:()=>i,getSettings:()=>h});var d=c(59339),e=c(33323);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},topologyVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},comboRetryOnEmpty:!1,comboRetryOnEmptyLimit:2,capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,hideLoginOffBanner:!1,autoUpdateCheck:!0,requireApiKey:!0,dailyTokenLimitEnabled:!0,autoCompactEnabled:!0,autoCompactRatio:.95,autoCompactKeepMessages:8,apiKeyRotation:!1,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:10router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,codeBuddyCheckin:!1,codeBuddyIntlSession:!1,codeBuddyDailyDone:{},qoderCheckin:!1,qoderDailyDone:{},channelBlocks:{}};async function g(){let a=(await (0,d.cK)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}async function h(){var a=await g();let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function i(){return await g()}},85503:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getSortedRouteObjects:function(){return g},getSortedRoutes:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let e=d.slice(1,-1),g=!1;if(e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1),g=!0),e.startsWith("…"))throw Object.defineProperty(Error(`Detected a three-dot character ('…') at ('${e}'). Did you mean ('...')?`),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(e.startsWith("...")&&(e=e.substring(3),c=!0),e.startsWith("[")||e.endsWith("]"))throw Object.defineProperty(Error(`Segment names may not start or end with extra brackets ('${e}').`),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(e.startsWith("."))throw Object.defineProperty(Error(`Segment names may not start with erroneous periods ('${e}').`),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Object.defineProperty(Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,e),this.optionalRestSlugName=e,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,e),this.restSlugName=e,d="[...]"}else{if(g)throw Object.defineProperty(Error(`Optional route parameters are not yet supported ("${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,e),this.slugName=e,d="[]"}}this.children.has(d)||this.children.set(d,new e),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function f(a){let b=new e;return a.forEach(a=>b.insert(a)),b.smoosh()}function g(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return f(d).map(b=>a[c[b]])}},86013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15971),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},86231:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>aY,handler:()=>aX});var e={};c.r(e),c.d(e,{config:()=>aQ,default:()=>aP}),require("next/dist/build/adapter/setup-node-env.external");var f=c(32648),g=c(76309),h=c(88771),i=c(62940),j=c(95226),k=c(2886),l=c(73024),m=c.n(l),n=c(76760),o=c.n(n),p=c(77598),q=c.n(p),r=c(72045);let s=o().join(r.nJ,"machine-id"),t=o().join(r.nJ,"auth"),u=o().join(t,"cli-secret"),v=null,w=null;async function x(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(v)return v;try{if(v=m().readFileSync(s,"utf8").trim())return v}catch{}try{v=(0,k.machineIdSync)()}catch{v=q().randomUUID()}try{m().mkdirSync(r.nJ,{recursive:!0}),m().writeFileSync(s,v,{mode:384})}catch{}return v}(),d="9r-cli-auth"===b?function(){if(w)return w;try{if(w=m().readFileSync(u,"utf8").trim())return w}catch{}w=q().randomBytes(32).toString("hex");try{m().mkdirSync(t,{recursive:!0}),m().writeFileSync(u,w,{mode:384})}catch{}return w}():"";return q().createHash("sha256").update(c+b+d).digest("hex").substring(0,16)}let y=(a,b="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${b} must be ${a}`);async function z(a,b,c){return b instanceof Uint8Array?crypto.subtle.importKey("raw",b,a.subtle,!1,[c]):(!function(a,b,c){let d=a.algorithm;if(d.name!==b.name)throw y(b.name);if(b.hash&&d.hash?.name!==b.hash)throw y(b.hash,"algorithm.hash");if(b.namedCurve&&d.namedCurve!==b.namedCurve)throw y(b.namedCurve,"algorithm.namedCurve");if(void 0!==b.length&&d.length!==b.length)throw y(b.length,"algorithm.length");if(c&&!a.usages.includes(c))throw TypeError(`CryptoKey does not support this operation, its usages must include ${c}.`)}(b,a.subtle,c),a.minRsaBits&&function(a,b){let{modulusLength:c}=b.algorithm;if("number"!=typeof c||c<2048)throw TypeError(`${a} requires key modulusLength to be 2048 bits or larger`)}(a.alg,b),b)}async function A(a,b,c,d){let e=await z(a,b,"verify");try{return await crypto.subtle.verify(a.signing,e,c,d)}catch{return!1}}class B extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(a,b){super(a,b),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class C extends B{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class D extends B{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class E extends B{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class F extends B{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class G extends B{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class H extends B{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class I extends B{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(a="signature verification failed",b){super(a,b)}}let J=[["verify"],["sign"]];function K(a){let b={name:"HMAC",hash:`SHA-${a}`};return{kty:["oct"],secret:!0,subtle:b,signing:b,usages:J}}function L(a,b){let c={name:b?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${a}`};return{kty:["RSA"],subtle:c,signing:b?{...c,saltLength:b}:c,usages:J,minRsaBits:2048}}function M(a,b){return{kty:["EC"],crv:a,subtle:{name:"ECDSA",namedCurve:a},signing:{name:"ECDSA",hash:`SHA-${b}`},usages:J}}function N(){let a={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:a,signing:a,usages:J}}function O(a){let b={name:`ML-DSA-${a}`};return{kty:["AKP"],subtle:b,signing:b,usages:J}}let P=function(a){let b={__proto__:null};for(let c in a)b[c]={...a[c],alg:c};return b}({HS256:K(256),HS384:K(384),HS512:K(512),RS256:L(256),RS384:L(384),RS512:L(512),PS256:L(256,32),PS384:L(384,48),PS512:L(512,64),ES256:M("P-256",256),ES384:M("P-384",384),ES512:M("P-521",512),EdDSA:N(),Ed25519:N(),"ML-DSA-44":O(44),"ML-DSA-65":O(65),"ML-DSA-87":O(87)});new TextEncoder;let Q=new TextDecoder,R=new TextDecoder("utf-8",{fatal:!0});function S(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);if(d>127)throw TypeError("non-ASCII string encountered in encode()");b[c]=d}return b}let T="The input to be decoded is not correctly encoded.";function U(a){if(Uint8Array.fromBase64)try{return Uint8Array.fromBase64("string"==typeof a?a:Q.decode(a),{alphabet:"base64url"})}catch(a){throw TypeError(T,{cause:a})}let b=a;if(b instanceof Uint8Array&&(b=Q.decode(b)),b.includes("+")||b.includes("/"))throw TypeError(T);b=b.replace(/-/g,"+").replace(/_/g,"/");try{var c=b;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(c);let a=atob(c),d=new Uint8Array(a.length);for(let b=0;b<a.length;b++)d[b]=a.charCodeAt(b);return d}catch{throw TypeError(T)}}function V(a){if("object"!=typeof a||null===a||"[object Object]"!==Object.prototype.toString.call(a))return!1;let b=Object.getPrototypeOf(a);return null===b||null===Object.getPrototypeOf(b)}function W(a,b,c){try{return U(a)}catch{throw new c(`Failed to base64url decode the ${b}`)}}Symbol();let X={__proto__:null,b64:!0},Y=(a,b,...c)=>(function(a,b,...c){if(c.length>2){let b=c.pop();a+=`one of type ${c.join(", ")}, or ${b}.`}else 2===c.length?a+=`one of type ${c[0]} or ${c[1]}.`:a+=`of type ${c[0]}.`;return null==b?a+=` Received ${b}`:"function"==typeof b&&b.name?a+=` Received function ${b.name}`:"object"==typeof b&&null!=b&&b.constructor?.name&&(a+=` Received an instance of ${b.constructor.name}`),a})(`Key for the ${a} algorithm must be `,b,...c),Z=a=>{if(a?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return a instanceof CryptoKey}catch{return!1}};async function $(a,b){if("RSA"===b.kty&&"oth"in b&&void 0!==b.oth)throw new F('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');if(!a.kty.includes(b.kty))throw new F('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let c=a.resolve?.({kty:b.kty,crv:b.crv})??a.subtle,d=!!(b.d||b.priv),e={...b};return"AKP"!==e.kty&&delete e.alg,delete e.use,crypto.subtle.importKey("jwk",e,c,b.ext??!d,b.key_ops??a.usages[+!!d])}let _=a=>a[Symbol.toStringTag],aa={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};function ab(a,b,c){let e=(d||=new WeakMap).get(a);return c&&(e?e[b]=c:d.set(a,{[b]:c})),c??e?.[b]}let ac=async(a,b,c)=>ab(a,c.alg)??ab(a,c.alg,await $(c,{...b,alg:c.alg}));async function ad(a,b,c){let d=function(a,b,c){let{alg:d,secret:e}=a,f="decrypt"===c||"sign"===c;if(e&&b instanceof Uint8Array)return[0,b];if(V(b)){let g=function(a){let b={__proto__:null,...a};if(void 0!==b.ext&&"boolean"!=typeof b.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==b.key_ops){let a=b.key_ops,c=Array.isArray(a)?[...a]:void 0;if(!c||c.some(a=>"string"!=typeof a)||new Set(c).size!==c.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');b.key_ops=c}return b}(b);if("string"!=typeof g.kty)throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(!(e?"oct"===g.kty&&"string"==typeof g.k:"oct"!==g.kty&&(f?"AKP"===g.kty&&"string"==typeof g.priv||"string"==typeof g.d:void 0===g.d&&void 0===g.priv)))throw TypeError(e?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${f?"private":"public"} JWK`);return((a,b,c)=>{let{alg:d}=a;if(void 0!==b.use){let a="sign"===c||"verify"===c?"sig":"enc";if(b.use!==a)throw TypeError(`Invalid key for this operation, its "use" must be "${a}" when present`)}if(void 0!==b.alg&&b.alg!==d)throw TypeError(`Invalid key for this operation, its "alg" must be "${d}" when present`);if(Array.isArray(b.key_ops)){let d="encrypt"===c||"decrypt"===c?a.ops?.[+("encrypt"!==c)]:c;if(d&&!b.key_ops.includes(d))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}})(a,g,c),[3,b,g]}if(!(Z(b)||b?.[Symbol.toStringTag]==="KeyObject"))throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(e){if("secret"!==b.type)throw TypeError(`${_(b)} instances for symmetric algorithms must be of type "secret"`)}else{if("secret"===b.type)throw TypeError(`${_(b)} instances for asymmetric algorithms must not be of type "secret"`);let a=f?"private":"public";if(("public"===b.type||"private"===b.type)&&b.type!==a){let d="sign"===c?"signing":"verify"===c?"verifying":`${c.slice(0,-1)}tion`;throw TypeError(`${_(b)} instances for asymmetric algorithm ${d} must be of type "${a}"`)}}return Z(b)?[1,b]:[2,b]}(a,b,c);switch(d[0]){case 0:case 1:return d[1];case 3:{let b=d[1],c=d[2];if("oct"===c.kty)return U(c.k);if(!Object.isFrozen(b)){let{key_ops:a}=b;Array.isArray(a)&&Object.freeze(a),Object.freeze(b)}return ac(b,c,a)}case 2:{let b=d[1];if("secret"===b.type)return b.export();if("toCryptoKey"in b&&"function"==typeof b.toCryptoKey)return((a,b)=>{let c=ab(a,b.alg);if(c)return c;let d="public"===a.type,e=b.usages[+!d],{asymmetricKeyType:f}=a,g=aa[a.asymmetricKeyDetails?.namedCurve],h=b.resolve?.({crv:g,asymmetricKeyType:f})??b.subtle;return ab(a,b.alg,a.toCryptoKey(h,d,e))})(b,a);return ac(b,b.export({format:"jwk"}),a)}}}async function ae(a,b,c,d,e,f,g){let h=!1;"function"==typeof c&&(c=await c(e,a),h=!0);let i="string"==typeof g,j=function(a){let b="string"==typeof a?P[a]:void 0;if(!b)throw new F(`alg ${a} is not supported either by JOSE or your javascript runtime`);return b}(f),k=function(...a){let b=new Uint8Array(a.reduce((a,{length:b})=>a+b,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}(void 0!==d?S(d):new Uint8Array,S("."),i?b[2]??=function(a,b,c){try{return S(a)}catch{throw new c(`The ${b} is not a valid base64url string`)}}(g,"payload",G):g),l=W(a.signature,"signature",G),m=await ad(j,c,"verify");if(!await A(j,m,l,k))throw new I;return[i?W(g,"payload",G):g,e,i,m,h]}async function af(a,b,c){if(a instanceof Uint8Array&&(a=Q.decode(a)),"string"!=typeof a)throw new G("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new G("Invalid Compact JWS");let h=function(a,b=void 0===a?{}:function(a,b,c){let d;try{d=JSON.parse(R.decode(U(a)))}catch{throw new b(c)}if(!V(d))throw new b(c);return d}(a,G,"JWS Protected Header is invalid")){return b}(d),[i,j]=function(a,b,c){let d=function(a,b){if(b.includes("b64")){let b=a.b64;if("boolean"!=typeof b)throw new G('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return b}return!0}(a,function(a,b,c,d,e){if(void 0!==e.crit&&d?.crit===void 0)throw new a('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return[];if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(a=>"string"!=typeof a||0===a.length))throw new a('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let f=void 0===c?b:{__proto__:null,...c,...b};for(let b of d.crit){if(!(b in f))throw new F(`Extension Header Parameter "${b}" is not recognized`);if(!Object.hasOwn(e,b)||void 0===e[b])throw new a(`Extension Header Parameter "${b}" is missing`);if(f[b]&&(!Object.hasOwn(d,b)||void 0===d[b]))throw new a(`Extension Header Parameter "${b}" MUST be integrity protected`)}return d.crit}(G,X,c[1],a,b)),e=b.alg;if("string"!=typeof e||!e)throw new G('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(c[0]&&!c[0].has(e))throw new E('"alg" (Algorithm) Header Parameter value not allowed');return[d,e]}(h,h,b),k=i?e:function(a){try{return S(a)}catch{throw new G("JWS Compact Serialization payload must use only ASCII characters")}}(e);return ae({payload:e,protected:d,signature:f},b,c,d,h,j,k)}let ag={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},ah=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,ai="check_failed";function aj(){throw TypeError("Invalid time period format")}function ak(a){"string"!=typeof a&&aj();let b=ah.exec(a);(!b||b[4]&&b[1])&&aj();let c=Math.round(parseFloat(b[2])*ag[b[3][0].toLowerCase()]);return(Number.isFinite(c)||aj(),"-"===b[1]||"ago"===b[4])?-c:c}function al(a,b){if(!Number.isFinite(b))throw TypeError(`Invalid ${a} input`);return b}let am=a=>{let b=a.toLowerCase();return a.includes("/")?b:`application/${b}`};function an(a,b,c=!1){let d=a[b];if(void 0!==d||c){if("number"!=typeof d)throw new C(`"${b}" claim must be a number`,a,b,"invalid");return d}}function ao(a,b){throw new C(`unexpected "${b}" claim value`,a,b,ai)}async function ap(a,b,c){let d=await af(a,[c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new H("JWTs MUST NOT use unencoded payload");let e={payload:function(a,b,c={}){var d,e;let f;try{f=JSON.parse(R.decode(b))}catch{}if(!V(f))throw new H("JWT Claims Set must be a top-level JSON object");let{typ:g}=c;if(void 0!==g&&("string"!=typeof a.typ||am(a.typ)!==am(g)))throw new C('unexpected "typ" JWT header value',f,"typ",ai);let{requiredClaims:h=[],issuer:i,subject:j,audience:k,maxTokenAge:l}=c,m=[...h];for(let a of(void 0!==l&&m.push("iat"),void 0!==k&&m.push("aud"),void 0!==j&&m.push("sub"),void 0!==i&&m.push("iss"),new Set(m.reverse())))if(!Object.hasOwn(f,a))throw new C(`missing required "${a}" claim`,f,a,"missing");void 0===i||(Array.isArray(i)?i:[i]).includes(f.iss)||ao(f,"iss"),void 0!==j&&f.sub!==j&&ao(f,"sub"),void 0===k||(d=f.aud,e="string"==typeof k?[k]:k,"string"==typeof d?e.includes(d):!!Array.isArray(d)&&e.some(a=>d.includes(a)))||ao(f,"aud");let{clockTolerance:n}=c,o=0;if("string"==typeof n)o=ak(n);else if(void 0!==n){if("number"!=typeof n)throw TypeError("Invalid clockTolerance option type");o=n}al("clockTolerance option",o);let{currentDate:p}=c,q=al("currentDate option",Math.floor((void 0===p?new Date:p).getTime()/1e3)),r=an(f,"iat",void 0!==l),s=an(f,"nbf");if(void 0!==s&&s>q+o)throw new C('"nbf" claim timestamp check failed',f,"nbf",ai);let t=an(f,"exp");if(void 0!==t&&t<=q-o)throw new D('"exp" claim timestamp check failed',f,"exp",ai);if(void 0!==l){let a=q-r;if(a-o>al("maxTokenAge option","number"==typeof l?l:ak(l)))throw new D('"iat" claim timestamp check failed (too far in the past)',f,"iat",ai);if(a<-o)throw new C('"iat" claim timestamp check failed (it should be in the past)',f,"iat",ai)}return f}(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}c(55511);"function"==typeof setImmediate||"object"==typeof scheduler&&"function"==typeof scheduler.postTask&&scheduler.postTask.bind(scheduler);var aq=c(2071);function ar(a){var b;let c;return"string"==typeof(c=process.env.INITIAL_PASSWORD)&&!!c.trim()||(b=a,!!(b?.password||String(b?.oidcIssuerUrl||"").trim()&&String(b?.oidcClientId||"").trim()&&String(b?.oidcClientSecret||"").trim())||!!(b?.samlEntryPoint&&b?.samlCert))}let as=new Set(["change-me-to-a-long-random-secret","10router-default-secret-change-me","change-me-to-a-random-string","change-me"]),at=new TextEncoder().encode(function(){let a=process.env.JWT_SECRET;if(a){if(!as.has(a))return a;console.warn("[auth] JWT_SECRET is a known placeholder value — ignoring it. Leave JWT_SECRET unset (a random secret is generated to "+o().join(r.nJ,"jwt-secret")+") or set a long random value.")}let b=o().join(r.nJ,"jwt-secret");try{return m().readFileSync(b,"utf8").trim()}catch{}m().mkdirSync(r.nJ,{recursive:!0});let c=q().randomBytes(32).toString("hex");return m().writeFileSync(b,c,{mode:384}),(0,aq.E)(b),c}());async function au(a){if(!a)return!1;try{return await ap(a,at),!0}catch{return!1}}let av=null;async function aw(){return av||(av=await x("9r-cli-auth")),av}async function ax(a){let b=a.headers.get("x-10r-cli-token")||a.headers.get("x-9r-cli-token")||null;return!!b&&b===await aw()}let ay=["/api/health","/api/locale","/api/auth/login","/api/auth/logout","/api/auth/status","/api/auth/oidc","/api/auth/saml","/api/auth/verify-password","/api/settings/require-login"],az=["/api/version","/api/init"],aA=["/v1","/v1beta","/api/v1","/api/v1beta","/codex","/responses"],aB=["/api/shutdown","/api/settings/database","/api/version/shutdown","/api/version/update","/api/version/shell-update","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/transfer/"],aC=["/api/cli-tools/cowork-settings","/api/cli-tools/antigravity-mitm","/api/mcp/","/api/tunnel/tailscale-install","/api/tunnel/tailscale-enable","/api/tunnel/tailscale-disable","/api/tunnel/tailscale-check","/api/tunnel/enable","/api/tunnel/disable","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/auth/reset-password","/api/headroom/start","/api/headroom/stop","/api/headroom/proxy"],aD=new Set(["localhost","127.0.0.1","::1"]);function aE(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),aD.has(b)}function aF(a){let b;if(a.headers.get("x-10r-via-proxy")||!((b=process.env.TENROUTER_PEER_TOKEN)&&a.headers.get("x-10r-peer-token")===b&&aE(a.headers.get("x-10r-real-ip"))))return!1;let c=a.headers.get("origin");if(c)try{if(!aE(new URL(c).hostname))return!1}catch{return!1}return!0}function aG(a){return aA.some(b=>a===b||a.startsWith(`${b}/`))}function aH(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");if(c)return c;let d=a.headers.get("x-goog-api-key");return d||a.nextUrl.searchParams?.get("key")||null}async function aI(a){let b=aH(a);return!!b&&await (0,j.ek)(b)}async function aJ(a){return!!(aF(a)||await ax(a))||await aI(a)}async function aK(a){return!!(await ax(a)||aF(a)&&await aN(a))}async function aL(a){let b=a.cookies.get("auth_token")?.value;return await au(b)}async function aM(){try{return await (0,j.mt)()}catch{return null}}async function aN(a){if(await aL(a))return!0;let b=await aM();return!!(b&&!1===b.requireLogin||!ar(b)&&aF(a))}async function aO(a){let{pathname:b}=a.nextUrl;if(!aG(b)){let b=await aM();if(b?.dashboardLocalOnly===!0&&!aF(a))return i.NextResponse.json({error:"The dashboard is set to local-only access (Experimental → Security). Turn it off from the machine running 10Router to manage it remotely."},{status:403})}if(("/api/oauth/xiaomi-mimo/auto-import"===b||"/api/oauth/xiaomi-mimo/desktop-status"===b||"/api/oauth/xiaomi-mimo/desktop-kill"===b&&"POST"===a.method)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aC.some(a=>b.startsWith(a))&&!await aK(a))return i.NextResponse.json({error:"Local only: CLI token required"},{status:403});if("POST"===a.method&&"/api/settings/database/import-usage"===b&&(a.headers.get("x-10r-password")||a.headers.get("x-9r-password")||aH(a))||"POST"===a.method&&("/api/oauth/transfer/import"===b||"/api/oauth/transfer/export"===b)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aB.some(a=>b.startsWith(a)))return await ax(a)||await aL(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(aG(b))return await aJ(a)?i.NextResponse.next():i.NextResponse.json({error:"API key required for remote API access"},{status:401});if(az.some(a=>b===a||b.startsWith(`${a}/`)))return aF(a)||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if("GET"===a.method&&"/api/usage/quotas"===b&&await aI(a)||("POST"===a.method||"DELETE"===a.method)&&b.startsWith("/api/external-quota/")&&(await aI(a)||await ax(a))||"POST"===a.method&&("/api/provider-nodes"===b||"/api/providers"===b)&&await aI(a))return i.NextResponse.next();if(b.startsWith("/api/"))return aG(b)||ay.some(a=>b===a||b.startsWith(`${a}/`))||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(b.startsWith("/dashboard")){let b=!0,c=null;try{let d=await aM();if(c=d,d&&(b=!1!==d.requireLogin,!0!==d.tunnelDashboardAccess)){let b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),c=d.tunnelUrl?new URL(d.tunnelUrl).hostname.toLowerCase():"",e=d.tailscaleUrl?new URL(d.tailscaleUrl).hostname.toLowerCase():"";if(c&&b===c||e&&b===e)return i.NextResponse.redirect(new URL("/login",a.url))}}catch{}if(!b||!ar(c)&&aF(a))return i.NextResponse.next();let d=a.cookies.get("auth_token")?.value;return d&&await au(d)?i.NextResponse.next():i.NextResponse.redirect(new URL("/login",a.url))}return"/"===b?i.NextResponse.redirect(new URL("/dashboard",a.url)):i.NextResponse.next()}async function aP(a){return aO(a)}let aQ={matcher:["/((?!_next/static|_next/image|favicon\\.ico).*)"]};c(6365);var aR=c(99751);let aS={...e},aT="/src/proxy",aU=(0,aS.proxy||aS.default);class aV extends Error{constructor(a){super(a),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.stack=""}}if("function"!=typeof aU)throw new aV(`The Proxy file "${aT}" must export a function named \`proxy\` or a default function.`);let aW=async a=>{var b,d;{let{join:e,relative:f}=c(76760),{ensureInstrumentationRegistered:g}=c(7465),h=e(process.cwd(),(null==(b=a.request.requestMeta)?void 0:b.relativeProjectDir)||""),i=null==(d=a.request.requestMeta)?void 0:d.distDir,j=i?f(h,i):".next";await g(h,j)}return(0,g.adapter)({...a,IncrementalCache:h.IncrementalCache,incrementalCacheHandler:null,page:aT,handler:async(...a)=>{try{return await aU(...a)}catch(e){let b=a[0],c=new URL(b.url),d=c.pathname+c.search;throw await (0,f.edgeInstrumentationOnRequestError)(e,{path:d,method:b.method,headers:Object.fromEntries(b.headers.entries())},{routerKind:"Pages Router",routePath:"/proxy",routeType:"proxy",revalidateReason:void 0}),e}}})};async function aX(a,b){let c=await aW({request:{url:a.url,method:a.method,headers:(0,aR.toNodeOutgoingHttpHeaders)(a.headers),nextConfig:{basePath:"",i18n:"",trailingSlash:!1,experimental:{cacheLife:{default:{stale:300,revalidate:900,expire:0xfffffffe},seconds:{stale:30,revalidate:1,expire:60},minutes:{stale:300,revalidate:60,expire:3600},hours:{stale:300,revalidate:3600,expire:86400},days:{stale:300,revalidate:86400,expire:604800},weeks:{stale:300,revalidate:604800,expire:2592e3},max:{stale:300,revalidate:2592e3,expire:31536e3}},authInterrupts:!1,clientParamParsingOrigins:[]}},page:{name:aT},body:"GET"!==a.method&&"HEAD"!==a.method?a.body??void 0:void 0,waitUntil:b.waitUntil,requestMeta:b.requestMeta,signal:b.signal||new AbortController().signal}});return null==b.waitUntil||b.waitUntil.call(b,c.waitUntil),c.response}let aY=aW},86948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isFullStringUrl:function(){return h},parseReqUrl:function(){return j},parseUrl:function(){return i},stripNextRscUnionQuery:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g="http://n";function h(a){return/https?:\/\//.test(a)}function i(a){let b;try{b=new URL(a,g)}catch{}return b}function j(a){let b=i(a);if(!b)return;let c={};for(let a of b.searchParams.keys()){let d=b.searchParams.getAll(a);c[a]=d.length>1?d:d[0]}return{query:c,hash:b.hash,search:b.search,path:b.pathname,pathname:b.pathname,href:`${b.pathname}${b.search}${b.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}function k(a){let b=new URL(a,g);return b.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b.pathname+b.search}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},88026:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o={AppRenderSpan:function(){return w},AppRouteRouteHandlersSpan:function(){return z},BaseServerSpan:function(){return q},LoadComponentsSpan:function(){return r},LogSpanAllowList:function(){return D},MiddlewareSpan:function(){return B},NextNodeServerSpan:function(){return t},NextServerSpan:function(){return s},NextVanillaSpanAllowlist:function(){return C},NodeSpan:function(){return y},RenderSpan:function(){return v},ResolveMetadataSpan:function(){return A},RouterSpan:function(){return x},StartServerSpan:function(){return u}};for(var p in o)Object.defineProperty(b,p,{enumerable:!0,get:o[p]});var q=((c=q||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),r=((d=r||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d),s=((e=s||{}).getRequestHandler="NextServer.getRequestHandler",e.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer",e),t=((f=t||{}).compression="NextNodeServer.compression",f.getBuildId="NextNodeServer.getBuildId",f.createComponentTree="NextNodeServer.createComponentTree",f.clientComponentLoading="NextNodeServer.clientComponentLoading",f.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",f.generateStaticRoutes="NextNodeServer.generateStaticRoutes",f.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",f.generatePublicRoutes="NextNodeServer.generatePublicRoutes",f.generateImageRoutes="NextNodeServer.generateImageRoutes.route",f.sendRenderResult="NextNodeServer.sendRenderResult",f.proxyRequest="NextNodeServer.proxyRequest",f.runApi="NextNodeServer.runApi",f.render="NextNodeServer.render",f.renderHTML="NextNodeServer.renderHTML",f.imageOptimizer="NextNodeServer.imageOptimizer",f.getPagePath="NextNodeServer.getPagePath",f.getRoutesManifest="NextNodeServer.getRoutesManifest",f.findPageComponents="NextNodeServer.findPageComponents",f.getFontManifest="NextNodeServer.getFontManifest",f.getServerComponentManifest="NextNodeServer.getServerComponentManifest",f.getRequestHandler="NextNodeServer.getRequestHandler",f.renderToHTML="NextNodeServer.renderToHTML",f.renderError="NextNodeServer.renderError",f.renderErrorToHTML="NextNodeServer.renderErrorToHTML",f.render404="NextNodeServer.render404",f.startResponse="NextNodeServer.startResponse",f.route="route",f.onProxyReq="onProxyReq",f.apiResolver="apiResolver",f.internalFetch="internalFetch",f),u=((g=u||{}).startServer="startServer.startServer",g),v=((h=v||{}).getServerSideProps="Render.getServerSideProps",h.getStaticProps="Render.getStaticProps",h.renderToString="Render.renderToString",h.renderDocument="Render.renderDocument",h.createBodyResult="Render.createBodyResult",h),w=((i=w||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i.waitShellReady="AppRender.waitShellReady",i.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",i.instantInsights="AppRender.instantInsights",i.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",i.instantInsightsRunValidation="AppRender.instantInsights.runValidation",i),x=((j=x||{}).executeRoute="Router.executeRoute",j),y=((k=y||{}).runHandler="Node.runHandler",k),z=((l=z||{}).runHandler="AppRouteRouteHandlers.runHandler",l),A=((m=A||{}).generateMetadata="ResolveMetadata.generateMetadata",m.generateViewport="ResolveMetadata.generateViewport",m),B=((n=B||{}).execute="Middleware.execute",n);let C=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),D=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},88266:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return k}});let e=c(72394),f=(d=c(40694))&&d.__esModule?d:{default:d},g=c(96100),h=c(36820),i=c(90925),j=c(94143);class k{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(a){this.fs=a.fs,this.flushToDisk=a.flushToDisk,this.serverDistDir=a.serverDistDir,this.revalidatedTags=a.revalidatedTags,a.maxMemoryCacheSize?k.memoryCache?k.debug&&console.log("FileSystemCache: memory store already initialized"):(k.debug&&console.log("FileSystemCache: using memory store for fetch cache"),k.memoryCache=(0,j.getMemoryCache)(a.maxMemoryCacheSize)):k.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(a,b){if(a="string"==typeof a?[a]:a,k.debug&&console.log("FileSystemCache: revalidateTag",a,b),0===a.length)return;let c=Date.now();for(let d of a){let a=h.tagsManifest.get(d)||{};if(b){let e={...a};e.stale=c,void 0!==b.expire&&(e.expired=c+1e3*b.expire),h.tagsManifest.set(d,e)}else h.tagsManifest.set(d,{...a,expired:c})}}async get(...a){var b,c,d,f,i,j,l,m,n;let[o,p]=a,{kind:q}=p,r=null==(b=k.memoryCache)?void 0:b.get(o);if(k.debug&&(q===e.IncrementalCacheKind.FETCH?console.log("FileSystemCache: get",o,p.tags,q,!!r):console.log("FileSystemCache: get",o,q,!!r)),!r)try{if(q===e.IncrementalCacheKind.APP_ROUTE){let a=this.getFilePath(`${o}.body`,e.IncrementalCacheKind.APP_ROUTE),b=await this.fs.readFile(a),{mtime:c}=await this.fs.stat(a),d=JSON.parse(await this.fs.readFile(a.replace(/\.body$/,g.NEXT_META_SUFFIX),"utf8"));r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_ROUTE,body:b,headers:d.headers,status:d.status}}}else{let a=this.getFilePath(q===e.IncrementalCacheKind.FETCH?o:`${o}.html`,q),b=await this.fs.readFile(a,"utf8"),{mtime:c}=await this.fs.stat(a);if(q===e.IncrementalCacheKind.FETCH){let{tags:a,fetchIdx:d,fetchUrl:f}=p;if(!this.flushToDisk)return null;let g=c.getTime(),h=JSON.parse(b);if(r={lastModified:g,value:h},(null==(j=r.value)?void 0:j.kind)===e.CachedRouteKind.FETCH){let b=null==(l=r.value)?void 0:l.tags;(null==a?void 0:a.every(a=>null==b?void 0:b.includes(a)))||(k.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",a,b),await this.set(o,r.value,{fetchCache:!0,tags:a,fetchIdx:d,fetchUrl:f}))}}else if(q===e.IncrementalCacheKind.APP_PAGE){let d,f,h;try{d=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,g.NEXT_META_SUFFIX),"utf8"))}catch{}if(null==d?void 0:d.segmentPaths){let a=new Map;f=a;let b=o+g.RSC_SEGMENTS_DIR_SUFFIX;await Promise.all(d.segmentPaths.map(async c=>{let d=this.getFilePath(b+c+g.RSC_SEGMENT_SUFFIX,e.IncrementalCacheKind.APP_PAGE);try{a.set(c,await this.fs.readFile(d))}catch{}}))}p.isFallback||p.isRoutePPREnabled&&(null==d?void 0:d.postponed)!=null||(h=await this.fs.readFile(this.getFilePath(`${o}${g.RSC_SUFFIX}`,e.IncrementalCacheKind.APP_PAGE))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_PAGE,html:b,rscData:h,postponed:null==d?void 0:d.postponed,headers:null==d?void 0:d.headers,status:null==d?void 0:d.status,segmentData:f}}}else if(q===e.IncrementalCacheKind.PAGES){let a,d={};p.isFallback||(d=JSON.parse(await this.fs.readFile(this.getFilePath(`${o}${g.NEXT_DATA_SUFFIX}`,e.IncrementalCacheKind.PAGES),"utf8"))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.PAGES,html:b,pageData:d,headers:null==a?void 0:a.headers,status:null==a?void 0:a.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${q} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}r&&(null==(m=k.memoryCache)||m.set(o,r))}catch{return null}if((null==r||null==(c=r.value)?void 0:c.kind)===e.CachedRouteKind.APP_PAGE||(null==r||null==(d=r.value)?void 0:d.kind)===e.CachedRouteKind.APP_ROUTE||(null==r||null==(f=r.value)?void 0:f.kind)===e.CachedRouteKind.PAGES){let a=null==(n=r.value.headers)?void 0:n[g.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");if(b.length>0&&(0,h.areTagsExpired)(b,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",b),null}}else if((null==r||null==(i=r.value)?void 0:i.kind)===e.CachedRouteKind.FETCH){let a=p.kind===e.IncrementalCacheKind.FETCH?[...p.tags||[],...p.softTags||[]]:[];if(a.some(a=>this.revalidatedTags.includes(a)))return k.debug&&console.log("FileSystemCache: was revalidated",a),null;if((0,h.areTagsExpired)(a,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",a),null}return r??null}async set(a,b,c){var d;if(null==(d=k.memoryCache)||d.set(a,{value:b,lastModified:Date.now()}),k.debug&&console.log("FileSystemCache: set",a),!this.flushToDisk||!b)return;let f=new i.MultiFileWriter(this.fs);if(b.kind===e.CachedRouteKind.APP_ROUTE){let c=this.getFilePath(`${a}.body`,e.IncrementalCacheKind.APP_ROUTE);f.append(c,b.body);let d={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};f.append(c.replace(/\.body$/,g.NEXT_META_SUFFIX),JSON.stringify(d,null,2))}else if(b.kind===e.CachedRouteKind.PAGES||b.kind===e.CachedRouteKind.APP_PAGE){let d=b.kind===e.CachedRouteKind.APP_PAGE,h=this.getFilePath(`${a}.html`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES);if(f.append(h,b.html),c.fetchCache||c.isFallback||c.isRoutePPREnabled||f.append(this.getFilePath(`${a}${d?g.RSC_SUFFIX:g.NEXT_DATA_SUFFIX}`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES),d?b.rscData:JSON.stringify(b.pageData)),(null==b?void 0:b.kind)===e.CachedRouteKind.APP_PAGE){let a;if(b.segmentData){a=[];let c=h.replace(/\.html$/,g.RSC_SEGMENTS_DIR_SUFFIX);for(let[d,e]of b.segmentData){a.push(d);let b=c+d+g.RSC_SEGMENT_SUFFIX;f.append(b,e)}}let c={headers:b.headers,status:b.status,postponed:b.postponed,segmentPaths:a,prefetchHints:void 0};f.append(h.replace(/\.html$/,g.NEXT_META_SUFFIX),JSON.stringify(c))}}else if(b.kind===e.CachedRouteKind.FETCH){let d=this.getFilePath(a,e.IncrementalCacheKind.FETCH);f.append(d,JSON.stringify({...b,tags:c.fetchCache?c.tags:[]}))}await f.wait()}getFilePath(a,b){let c;switch(b){case e.IncrementalCacheKind.FETCH:c=f.default.join(this.serverDistDir,"..","cache","fetch-cache");break;case e.IncrementalCacheKind.PAGES:c=f.default.join(this.serverDistDir,"pages");break;case e.IncrementalCacheKind.IMAGE:case e.IncrementalCacheKind.APP_PAGE:case e.IncrementalCacheKind.APP_ROUTE:c=f.default.join(this.serverDistDir,"app");break;default:throw Object.defineProperty(Error(`Unexpected file path kind: ${b}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}let d=f.default.join(c,a);if(!(d.startsWith(c+f.default.sep)||d===c))throw Object.defineProperty(Error(`Invalid file path: ${d}`),"__NEXT_ERROR_CODE",{value:"E1468",enumerable:!1,configurable:!0});return d}}},88450:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(61544),g=c(99751),h=c(84573),i=c(42097),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},88771:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={CacheHandler:function(){return t},IncrementalCache:function(){return v}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(72394),h=(d=c(88266))&&d.__esModule?d:{default:d},i=c(26670),j=c(96100),k=c(6892),l=c(97538),m=c(63033),n=c(42776),o=c(55122),p=c(29294),q=c(59841),r=c(36820);function s(a){let b="buffer"in a?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):new Uint8Array(a),c="";for(let a of b)c+=a.toString(16).padStart(2,"0");return c}class t{constructor(a){}async get(a,b){return{}}async set(a,b,c){}async revalidateTag(a,b){}resetRequestCache(){}}async function u(a){return c(55511).createHash("sha256").update(a).digest("hex")}class v{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:a,dev:b,flushToDisk:c,minimalMode:d,serverDistDir:e,requestHeaders:f,maxMemoryCacheSize:g,getPrerenderManifest:i,fetchCacheKeyPrefix:k,CurCacheHandler:m,allowedRevalidateHeaderKeys:n}){var p,q,r,s;this.locks=new Map,this.hasCustomCacheHandler=!!m;const t=Symbol.for("@next/cache-handlers"),u=globalThis;if(m)v.debug&&console.log("IncrementalCache: using custom cache handler",m.name);else{const b=u[t];(null==b?void 0:b.FetchCache)?(m=b.FetchCache,v.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):a&&e&&(v.debug&&console.log("IncrementalCache: using filesystem cache handler"),m=h.default)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(g=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=b,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=d,this.requestHeaders=f,this.allowedRevalidateHeaderKeys=n,this.prerenderManifest=i(),this.cacheControls=new l.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=k;let w=[];f[j.PRERENDER_REVALIDATE_HEADER]===(null==(q=this.prerenderManifest)||null==(p=q.preview)?void 0:p.previewModeId)&&(this.isOnDemandRevalidate=!0),d&&(w=this.revalidatedTags=(0,o.getPreviouslyRevalidatedTags)(f,null==(s=this.prerenderManifest)||null==(r=s.preview)?void 0:r.previewModeId)),m&&(this.cacheHandler=new m({dev:b,fs:a,flushToDisk:c,serverDistDir:e,revalidatedTags:w,maxMemoryCacheSize:g,_requestHeaders:f,fetchCacheKeyPrefix:k}))}calculateRevalidate(a,b,c,d){if(c)return Math.floor(performance.timeOrigin+performance.now()-1e3);let e=this.cacheControls.get((0,k.toRoute)(a)),f=e?e.revalidate:!d&&1;return"number"==typeof f?1e3*f+b:f}_getPathname(a,b){return b?a:(0,i.normalizePagePath)(a)}resetRequestCache(){var a,b;null==(b=this.cacheHandler)||null==(a=b.resetRequestCache)||a.call(b)}async lock(a){for(;;){let b=this.locks.get(a);if(v.debug&&console.log("IncrementalCache: lock get",a,!!b),!b)break;await b}let{resolve:b,promise:c}=new q.DetachedPromise;return v.debug&&console.log("IncrementalCache: successfully locked",a),this.locks.set(a,c),()=>{b(),this.locks.delete(a)}}async revalidateTag(a,b){var c;return null==(c=this.cacheHandler)?void 0:c.revalidateTag(a,b)}async generateSimpleCacheKey(a){return u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a]))}async generateCacheKey(a,b={}){let c=[],d=new TextEncoder,e=null,f=b.body;if(f)if("object"==typeof f&&"byteLength"in f)c.push(`bytes:${s(f)}`),b._ogBody=f;else if("function"==typeof f.getReader){let a=[];try{await f.pipeTo(new WritableStream({write(b){a.push("string"==typeof b?d.encode(b):b)}}));let e=a.reduce((a,b)=>a+b.length,0),g=new Uint8Array(e),h=0;for(let b of a)g.set(b,h),h+=b.length;c.push(`bytes:${s(g)}`),b._ogBody=g}catch(a){console.error("Problem reading body",a)}}else if("function"==typeof f.keys)for(let[a,d]of(e="[object FormData]"===String(f)?"multipart/form-data; boundary=":"application/x-www-form-urlencoded;charset=UTF-8",b._ogBody=f,f.entries()))c.push(`key:${a}`),"string"==typeof d?c.push(`str:${d}`):c.push("file",d.name,d.type,`bytes:${s(await d.arrayBuffer())}`);else if("function"==typeof f.arrayBuffer){let a=await f.arrayBuffer();c.push("blob",f.type,`bytes:${s(a)}`),b._ogBody=new Blob([a],{type:f.type}),e=f.type}else if("string"==typeof f)c.push(`str:${f}`),b._ogBody=f,e="text/plain;charset=UTF-8";else throw Object.defineProperty(Error(`Unsupported body type: ${typeof f}`),"__NEXT_ERROR_CODE",{value:"E1443",enumerable:!1,configurable:!0});let g="function"==typeof(b.headers||{}).keys?Object.fromEntries(b.headers):Object.assign({},b.headers);return"traceparent"in g&&delete g.traceparent,"tracestate"in g&&delete g.tracestate,u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a,b.method,e,g,b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity,b.cache,c]))}async get(a,b){var c,d,e,f,h,i,l;let o,q;if(b.kind===g.IncrementalCacheKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;if(d){let c=d.fetch.get(a);if((null==c?void 0:c.kind)===g.CachedRouteKind.FETCH){let d=p.workAsyncStorage.getStore();if(![...b.tags||[],...b.softTags||[]].some(a=>{var b,c;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==d||null==(c=d.pendingRevalidatedTags)?void 0:c.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: rdc:hit",a),{isStale:!1,value:c};v.debug&&console.log("IncrementalCache: rdc:revalidated-tag",a)}else v.debug&&console.log("IncrementalCache: rdc:miss",a)}else v.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(b.kind!==g.IncrementalCacheKind.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;a=this._getPathname(a,b.kind===g.IncrementalCacheKind.FETCH);let s=await (null==(c=this.cacheHandler)?void 0:c.get(a,b));if(b.kind===g.IncrementalCacheKind.FETCH){if(!s)return null;if((null==(e=s.value)?void 0:e.kind)!==g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} to be a "FETCH" kind, got ${JSON.stringify(null==(f=s.value)?void 0:f.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let c=p.workAsyncStorage.getStore(),d=[...b.tags||[],...b.softTags||[]];if(d.some(a=>{var b,d;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==c||null==(d=c.pendingRevalidatedTags)?void 0:d.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: expired tag",a),null;let h=m.workUnitAsyncStorage.getStore();if(h){let b=(0,m.getResumeDataCache)(h);(null==b?void 0:b.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),b.fetch.set(a,s.value))}let i=b.revalidate||s.value.revalidate,j=(performance.timeOrigin+performance.now()-(s.lastModified||0))/1e3>i,k=s.value.data;return(0,r.areTagsExpired)(d,s.lastModified)?null:((0,r.areTagsStale)(d,s.lastModified)&&(j=!0),{isStale:j,value:{kind:g.CachedRouteKind.FETCH,data:k,revalidate:i}})}if((null==s||null==(d=s.value)?void 0:d.kind)===g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} not to be a ${JSON.stringify(b.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let t=null,{isFallback:u}=b,w=this.cacheControls.get((0,k.toRoute)(a));if((null==s?void 0:s.lastModified)===-1)o=-1,q=-1*j.CACHE_ONE_YEAR_SECONDS*1e3;else{let c=performance.timeOrigin+performance.now(),d=(null==s?void 0:s.lastModified)||c;q=this.calculateRevalidate(a,d,this.dev??!1,b.isFallback);let e="number"==typeof(null==w?void 0:w.expire)?1e3*w.expire+d:void 0;if(void 0!==e&&e<c)o=-1;else if(void 0===(o=!1!==q&&q<c||void 0)&&((null==s||null==(h=s.value)?void 0:h.kind)===g.CachedRouteKind.APP_PAGE||(null==s||null==(i=s.value)?void 0:i.kind)===g.CachedRouteKind.APP_ROUTE)){let a=null==(l=s.value.headers)?void 0:l[j.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");b.length>0&&((0,r.areTagsExpired)(b,d)?o=-1:(0,r.areTagsStale)(b,d)&&(o=!0))}}}return s&&(t={isStale:o,cacheControl:w,revalidateAfter:q,value:s.value,isFallback:u}),!s&&this.prerenderManifest.notFoundRoutes.includes(a)&&(t={isStale:o,value:null,cacheControl:w,revalidateAfter:q,isFallback:u},this.set(a,t.value,{...b,cacheControl:w})),t}async set(a,b,c){if((null==b?void 0:b.kind)===g.CachedRouteKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;(null==d?void 0:d.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),d.fetch.set(a,b))}if(this.disableForTestmode||this.dev&&!c.fetchCache)return;a=this._getPathname(a,c.fetchCache);let d=JSON.stringify(b).length;if(c.fetchCache&&d>2097152&&!this.hasCustomCacheHandler&&!c.isImplicitBuildTimeCache){let b=`Failed to set Next.js data cache for ${c.fetchUrl||a}, items over 2MB can not be cached (${d} bytes)`;if(this.dev)throw Object.defineProperty(Error(b),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(b);return}try{var e;!c.fetchCache&&c.cacheControl&&this.cacheControls.set((0,k.toRoute)(a),c.cacheControl),await (null==(e=this.cacheHandler)?void 0:e.set(a,b,c))}catch(b){console.warn("Failed to update prerender cache for",a,b)}}}},89198:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DynamicServerError:function(){return f},isDynamicServerError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="DYNAMIC_SERVER_USAGE";class f extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},89218:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return h},createSnapshot:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class f{disable(){throw e}getStore(){}run(){throw e}exit(){throw e}enterWith(){throw e}static bind(a){return a}}let g="u">typeof globalThis&&globalThis.AsyncLocalStorage;function h(){return g?new g:new f}function i(a){return g?g.bind(a):f.bind(a)}function j(){return g?g.snapshot():function(a,...b){return a(...b)}}},90132:a=>{(()=>{"use strict";var b={234:a=>{var b=Object.prototype.hasOwnProperty,c="~";function d(){}function e(a,b,c){this.fn=a,this.context=b,this.once=c||!1}function f(a,b,d,f,g){if("function"!=typeof d)throw TypeError("The listener must be a function");var h=new e(d,f||a,g),i=c?c+b:b;return a._events[i]?a._events[i].fn?a._events[i]=[a._events[i],h]:a._events[i].push(h):(a._events[i]=h,a._eventsCount++),a}function g(a,b){0==--a._eventsCount?a._events=new d:delete a._events[b]}function h(){this._events=new d,this._eventsCount=0}Object.create&&(d.prototype=Object.create(null),(new d).__proto__||(c=!1)),h.prototype.eventNames=function(){var a,d,e=[];if(0===this._eventsCount)return e;for(d in a=this._events)b.call(a,d)&&e.push(c?d.slice(1):d);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(a)):e},h.prototype.listeners=function(a){var b=c?c+a:a,d=this._events[b];if(!d)return[];if(d.fn)return[d.fn];for(var e=0,f=d.length,g=Array(f);e<f;e++)g[e]=d[e].fn;return g},h.prototype.listenerCount=function(a){var b=c?c+a:a,d=this._events[b];return d?d.fn?1:d.length:0},h.prototype.emit=function(a,b,d,e,f,g){var h=c?c+a:a;if(!this._events[h])return!1;var i,j,k=this._events[h],l=arguments.length;if(k.fn){switch(k.once&&this.removeListener(a,k.fn,void 0,!0),l){case 1:return k.fn.call(k.context),!0;case 2:return k.fn.call(k.context,b),!0;case 3:return k.fn.call(k.context,b,d),!0;case 4:return k.fn.call(k.context,b,d,e),!0;case 5:return k.fn.call(k.context,b,d,e,f),!0;case 6:return k.fn.call(k.context,b,d,e,f,g),!0}for(j=1,i=Array(l-1);j<l;j++)i[j-1]=arguments[j];k.fn.apply(k.context,i)}else{var m,n=k.length;for(j=0;j<n;j++)switch(k[j].once&&this.removeListener(a,k[j].fn,void 0,!0),l){case 1:k[j].fn.call(k[j].context);break;case 2:k[j].fn.call(k[j].context,b);break;case 3:k[j].fn.call(k[j].context,b,d);break;case 4:k[j].fn.call(k[j].context,b,d,e);break;default:if(!i)for(m=1,i=Array(l-1);m<l;m++)i[m-1]=arguments[m];k[j].fn.apply(k[j].context,i)}}return!0},h.prototype.on=function(a,b,c){return f(this,a,b,c,!1)},h.prototype.once=function(a,b,c){return f(this,a,b,c,!0)},h.prototype.removeListener=function(a,b,d,e){var f=c?c+a:a;if(!this._events[f])return this;if(!b)return g(this,f),this;var h=this._events[f];if(h.fn)h.fn!==b||e&&!h.once||d&&h.context!==d||g(this,f);else{for(var i=0,j=[],k=h.length;i<k;i++)(h[i].fn!==b||e&&!h[i].once||d&&h[i].context!==d)&&j.push(h[i]);j.length?this._events[f]=1===j.length?j[0]:j:g(this,f)}return this},h.prototype.removeAllListeners=function(a){var b;return a?(b=c?c+a:a,this._events[b]&&g(this,b)):(this._events=new d,this._eventsCount=0),this},h.prototype.off=h.prototype.removeListener,h.prototype.addListener=h.prototype.on,h.prefixed=c,h.EventEmitter=h,a.exports=h},274:a=>{a.exports=(a,b)=>(b=b||(()=>{}),a.then(a=>new Promise(a=>{a(b())}).then(()=>a),a=>new Promise(a=>{a(b())}).then(()=>{throw a})))},294:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b,c){let d=0,e=a.length;for(;e>0;){let f=e/2|0,g=d+f;0>=c(a[g],b)?(d=++g,e-=f+1):e=f}return d}},838:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(294);class e{constructor(){this._queue=[]}enqueue(a,b){let c={priority:(b=Object.assign({priority:0},b)).priority,run:a};if(this.size&&this._queue[this.size-1].priority>=b.priority)return void this._queue.push(c);let e=d.default(this._queue,c,(a,b)=>b.priority-a.priority);this._queue.splice(e,0,c)}dequeue(){let a=this._queue.shift();return null==a?void 0:a.run}filter(a){return this._queue.filter(b=>b.priority===a.priority).map(a=>a.run)}get size(){return this._queue.length}}b.default=e},138:(a,b,c)=>{let d=c(274);class e extends Error{constructor(a){super(a),this.name="TimeoutError"}}let f=(a,b,c)=>new Promise((f,g)=>{if("number"!=typeof b||b<0)throw TypeError("Expected `milliseconds` to be a positive number");if(b===1/0)return void f(a);let h=setTimeout(()=>{if("function"==typeof c){try{f(c())}catch(a){g(a)}return}let d="string"==typeof c?c:`Promise timed out after ${b} milliseconds`,h=c instanceof Error?c:new e(d);"function"==typeof a.cancel&&a.cancel(),g(h)},b);d(a.then(f,g),()=>{clearTimeout(h)})});a.exports=f,a.exports.default=f,a.exports.TimeoutError=e}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a](f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0});let a=d(234),b=d(138),c=d(838),f=()=>{},g=new b.TimeoutError;class h extends a{constructor(a){var b,d,e,g;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=f,this._resolveIdle=f,!("number"==typeof(a=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:c.default},a)).intervalCap&&a.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(d=null==(b=a.intervalCap)?void 0:b.toString())?d:""}\` (${typeof a.intervalCap})`);if(void 0===a.interval||!(Number.isFinite(a.interval)&&a.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(g=null==(e=a.interval)?void 0:e.toString())?g:""}\` (${typeof a.interval})`);this._carryoverConcurrencyCount=a.carryoverConcurrencyCount,this._isIntervalIgnored=a.intervalCap===1/0||0===a.interval,this._intervalCap=a.intervalCap,this._interval=a.interval,this._queue=new a.queueClass,this._queueClass=a.queueClass,this.concurrency=a.concurrency,this._timeout=a.timeout,this._throwOnTimeout=!0===a.throwOnTimeout,this._isPaused=!1===a.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}get _doesConcurrentAllowAnother(){return this._pendingCount<this._concurrency}_next(){this._pendingCount--,this._tryToStartAnother(),this.emit("next")}_resolvePromises(){this._resolveEmpty(),this._resolveEmpty=f,0===this._pendingCount&&(this._resolveIdle(),this._resolveIdle=f,this.emit("idle"))}_onResumeInterval(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}_isIntervalPaused(){let a=Date.now();if(void 0===this._intervalId){let b=this._intervalEnd-a;if(!(b<0))return void 0===this._timeoutId&&(this._timeoutId=setTimeout(()=>{this._onResumeInterval()},b)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let a=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let b=this._queue.dequeue();return!!b&&(this.emit("active"),b(),a&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(a){if(!("number"==typeof a&&a>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${a}\` (${typeof a})`);this._concurrency=a,this._processQueue()}async add(a,c={}){return new Promise((d,e)=>{let f=async()=>{this._pendingCount++,this._intervalCount++;try{let f=void 0===this._timeout&&void 0===c.timeout?a():b.default(Promise.resolve(a()),void 0===c.timeout?this._timeout:c.timeout,()=>{(void 0===c.throwOnTimeout?this._throwOnTimeout:c.throwOnTimeout)&&e(g)});d(await f)}catch(a){e(a)}this._next()};this._queue.enqueue(f,c),this._tryToStartAnother(),this.emit("add")})}async addAll(a,b){return Promise.all(a.map(async a=>this.add(a,b)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(a=>{let b=this._resolveEmpty;this._resolveEmpty=()=>{b(),a()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(a=>{let b=this._resolveIdle;this._resolveIdle=()=>{b(),a()}})}get size(){return this._queue.size}sizeBy(a){return this._queue.filter(a).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(a){this._timeout=a}}e.default=h})(),a.exports=e})()},90810:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={},g={RequestCookies:()=>n,ResponseCookies:()=>o,parseCookie:()=>j,parseSetCookie:()=>k,stringifyCookie:()=>i};for(var h in g)b(f,h,{get:g[h],enumerable:!0});function i(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function j(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function k(a){if(!a)return;let[[b,c],...d]=j(a),{domain:e,expires:f,httponly:g,maxage:h,path:i,samesite:k,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof h&&{maxAge:Number(h)},path:i,...k&&{sameSite:l.includes(q=(q=k).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:m.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}a.exports=((a,f,g)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let h of d(f))e.call(a,h)||void 0===h||b(a,h,{get:()=>f[h],enumerable:!(g=c(f,h))||g.enumerable});return a})(b({},"__esModule",{value:!0}),f);var l=["strict","lax","none"],m=["low","medium","high"],n=class{constructor(a){this._parsed=new Map,this._headers=a;const b=a.get("cookie");if(b)for(const[a,c]of j(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>i(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>i(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},o=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;const e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(const a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){const b=k(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=i(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(i).join("; ")}}},90925:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MultiFileWriter",{enumerable:!0,get:function(){return f}});let e=(d=c(40694))&&d.__esModule?d:{default:d};class f{constructor(a){this.fs=a,this.tasks=[]}findOrCreateTask(a){for(let b of this.tasks)if(b[0]===a)return b;let b=this.fs.mkdir(a);b.catch(()=>{});let c=[a,b,[]];return this.tasks.push(c),c}append(a,b){let c=this.findOrCreateTask(e.default.dirname(a)),d=c[1].then(()=>this.fs.writeFile(a,b));d.catch(()=>{}),c[2].push(d)}wait(){return Promise.all(this.tasks.flatMap(a=>a[2]))}}},91117:(a,b,c)=>{"use strict";function d(a,b,c=null){let e=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return e?e.value:c}function e(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c.d(b,{dy:()=>d,np:()=>e}),c(59339)},92539:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compareAppPaths:function(){return i},normalizeAppPath:function(){return h},normalizeRscURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(17888),g=c(53610);function h(a){return(0,f.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,g.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:`${a}/${b}`,""))}function i(a,b){let c=a.includes("/@"),d=b.includes("/@");return c&&!d?-1:!c&&d?1:a.localeCompare(b)}function j(a){return a.replace(/\.rsc($|\?)/,"$1")}},92729:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(36299),e=c(1390),f=c(69687),g=c(82737),h=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function i(a,b){let c=new URL(String(a),b&&String(b));return h.test(c.hostname)&&(c.hostname="localhost"),c}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},93250:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(77890);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},93384:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(38955),g=c(31050),h=c(29294),i=c(79285);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},94143:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/memory-cache.external.js")},94735:a=>{"use strict";a.exports=require("events")},95160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(43892),e=c(59339),f=c(33323);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
168
+ Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},84573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(92729),g=c(99751),h=c(68802),i=c(38955),j=Symbol("internal request");class k extends Request{constructor(a,b={}){const c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);const d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},85292:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AfterContext",{enumerable:!0,get:function(){return m}});let e=(d=c(90132))&&d.__esModule?d:{default:d},f=c(42776),g=c(32053),h=c(29294),i=c(67205),j=c(89218),k=c(3295),l=c(28704);class m{constructor({waitUntil:a,onClose:b,onTaskError:c}){this.isRequestClosed=!1,this.initialOnCloseError=null,this.workUnitStores=new Set,this.waitUntil=a,this.onClose=b,this.onTaskError=c,this.callbackQueue=new e.default,this.callbackQueue.pause();try{b(()=>{for(let a of(this.isRequestClosed=!0,this.workUnitStores))a.phase="after"})}catch(a){this.initialOnCloseError={error:a}}}after(a,b){if(this.initialOnCloseError)throw Object.defineProperty(new f.InvariantError("An onClose call failed, which means after() can't work correctly.",{cause:this.initialOnCloseError.error}),"__NEXT_ERROR_CODE",{value:"E1376",enumerable:!1,configurable:!0});if(this.workUnitStores.add(b),(0,g.isThenable)(a))this.addThenable(a);else if("function"==typeof a)this.addCallback(a,b);else throw Object.defineProperty(Error("`after()`: Argument must be a promise or a function"),"__NEXT_ERROR_CODE",{value:"E50",enumerable:!1,configurable:!0})}addThenable(a){this.waitUntil||n(),this.waitUntil(new Promise(b=>{a.then(()=>{b()},a=>{b(),this.reportTaskError("promise",a)})}))}addCallback(a,b){this.waitUntil||n();let c=k.afterTaskAsyncStorage.getStore(),d=c?c.rootTaskSpawnPhase:b.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let e=(0,j.bindSnapshot)(async()=>{try{await k.afterTaskAsyncStorage.run({rootTaskSpawnPhase:d},()=>a())}catch(a){this.reportTaskError("function",a)}});this.callbackQueue.add(e)}async runCallbacksOnClose(){return this.isRequestClosed?await new Promise(a=>(0,l.scheduleImmediate)(a)):await new Promise(a=>this.onClose(a)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;let a=h.workAsyncStorage.getStore();if(!a)throw Object.defineProperty(new f.InvariantError("Missing workStore in AfterContext.runCallbacks"),"__NEXT_ERROR_CODE",{value:"E547",enumerable:!1,configurable:!0});return(0,i.withExecuteRevalidates)(a,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(a,b){if(console.error("promise"===a?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",b),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,b)}catch(a){console.error(Object.defineProperty(new f.InvariantError("`onTaskError` threw while handling an error thrown from an `after` task",{cause:a}),"__NEXT_ERROR_CODE",{value:"E569",enumerable:!1,configurable:!0}))}}}function n(){throw Object.defineProperty(Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment."),"__NEXT_ERROR_CODE",{value:"E91",enumerable:!1,configurable:!0})}},85304:(a,b,c)=>{"use strict";c.d(b,{exportSettings:()=>i,getSettings:()=>h});var d=c(59339),e=c(33323);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},topologyVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},comboRetryOnEmpty:!1,comboRetryOnEmptyLimit:2,capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,hideLoginOffBanner:!1,autoUpdateCheck:!0,requireApiKey:!0,dailyTokenLimitEnabled:!0,autoCompactEnabled:!0,autoCompactRatio:.95,autoCompactKeepMessages:8,apiKeyRotation:!1,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:10router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,codeBuddyCheckin:!1,codeBuddyIntlSession:!1,codeBuddyCompensation:!1,codeBuddyDailyDone:{},codeBuddyCompensationDone:{},qoderCheckin:!1,qoderDailyDone:{},channelBlocks:{}};async function g(){let a=(await (0,d.cK)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}async function h(){var a=await g();let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function i(){return await g()}},85503:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getSortedRouteObjects:function(){return g},getSortedRoutes:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let e=d.slice(1,-1),g=!1;if(e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1),g=!0),e.startsWith("…"))throw Object.defineProperty(Error(`Detected a three-dot character ('…') at ('${e}'). Did you mean ('...')?`),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(e.startsWith("...")&&(e=e.substring(3),c=!0),e.startsWith("[")||e.endsWith("]"))throw Object.defineProperty(Error(`Segment names may not start or end with extra brackets ('${e}').`),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(e.startsWith("."))throw Object.defineProperty(Error(`Segment names may not start with erroneous periods ('${e}').`),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Object.defineProperty(Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,e),this.optionalRestSlugName=e,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,e),this.restSlugName=e,d="[...]"}else{if(g)throw Object.defineProperty(Error(`Optional route parameters are not yet supported ("${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,e),this.slugName=e,d="[]"}}this.children.has(d)||this.children.set(d,new e),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function f(a){let b=new e;return a.forEach(a=>b.insert(a)),b.smoosh()}function g(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return f(d).map(b=>a[c[b]])}},86013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15971),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},86231:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>aY,handler:()=>aX});var e={};c.r(e),c.d(e,{config:()=>aQ,default:()=>aP}),require("next/dist/build/adapter/setup-node-env.external");var f=c(32648),g=c(76309),h=c(88771),i=c(62940),j=c(95226),k=c(2886),l=c(73024),m=c.n(l),n=c(76760),o=c.n(n),p=c(77598),q=c.n(p),r=c(72045);let s=o().join(r.nJ,"machine-id"),t=o().join(r.nJ,"auth"),u=o().join(t,"cli-secret"),v=null,w=null;async function x(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(v)return v;try{if(v=m().readFileSync(s,"utf8").trim())return v}catch{}try{v=(0,k.machineIdSync)()}catch{v=q().randomUUID()}try{m().mkdirSync(r.nJ,{recursive:!0}),m().writeFileSync(s,v,{mode:384})}catch{}return v}(),d="9r-cli-auth"===b?function(){if(w)return w;try{if(w=m().readFileSync(u,"utf8").trim())return w}catch{}w=q().randomBytes(32).toString("hex");try{m().mkdirSync(t,{recursive:!0}),m().writeFileSync(u,w,{mode:384})}catch{}return w}():"";return q().createHash("sha256").update(c+b+d).digest("hex").substring(0,16)}let y=(a,b="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${b} must be ${a}`);async function z(a,b,c){return b instanceof Uint8Array?crypto.subtle.importKey("raw",b,a.subtle,!1,[c]):(!function(a,b,c){let d=a.algorithm;if(d.name!==b.name)throw y(b.name);if(b.hash&&d.hash?.name!==b.hash)throw y(b.hash,"algorithm.hash");if(b.namedCurve&&d.namedCurve!==b.namedCurve)throw y(b.namedCurve,"algorithm.namedCurve");if(void 0!==b.length&&d.length!==b.length)throw y(b.length,"algorithm.length");if(c&&!a.usages.includes(c))throw TypeError(`CryptoKey does not support this operation, its usages must include ${c}.`)}(b,a.subtle,c),a.minRsaBits&&function(a,b){let{modulusLength:c}=b.algorithm;if("number"!=typeof c||c<2048)throw TypeError(`${a} requires key modulusLength to be 2048 bits or larger`)}(a.alg,b),b)}async function A(a,b,c,d){let e=await z(a,b,"verify");try{return await crypto.subtle.verify(a.signing,e,c,d)}catch{return!1}}class B extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(a,b){super(a,b),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class C extends B{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class D extends B{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class E extends B{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class F extends B{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class G extends B{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class H extends B{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class I extends B{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(a="signature verification failed",b){super(a,b)}}let J=[["verify"],["sign"]];function K(a){let b={name:"HMAC",hash:`SHA-${a}`};return{kty:["oct"],secret:!0,subtle:b,signing:b,usages:J}}function L(a,b){let c={name:b?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${a}`};return{kty:["RSA"],subtle:c,signing:b?{...c,saltLength:b}:c,usages:J,minRsaBits:2048}}function M(a,b){return{kty:["EC"],crv:a,subtle:{name:"ECDSA",namedCurve:a},signing:{name:"ECDSA",hash:`SHA-${b}`},usages:J}}function N(){let a={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:a,signing:a,usages:J}}function O(a){let b={name:`ML-DSA-${a}`};return{kty:["AKP"],subtle:b,signing:b,usages:J}}let P=function(a){let b={__proto__:null};for(let c in a)b[c]={...a[c],alg:c};return b}({HS256:K(256),HS384:K(384),HS512:K(512),RS256:L(256),RS384:L(384),RS512:L(512),PS256:L(256,32),PS384:L(384,48),PS512:L(512,64),ES256:M("P-256",256),ES384:M("P-384",384),ES512:M("P-521",512),EdDSA:N(),Ed25519:N(),"ML-DSA-44":O(44),"ML-DSA-65":O(65),"ML-DSA-87":O(87)});new TextEncoder;let Q=new TextDecoder,R=new TextDecoder("utf-8",{fatal:!0});function S(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);if(d>127)throw TypeError("non-ASCII string encountered in encode()");b[c]=d}return b}let T="The input to be decoded is not correctly encoded.";function U(a){if(Uint8Array.fromBase64)try{return Uint8Array.fromBase64("string"==typeof a?a:Q.decode(a),{alphabet:"base64url"})}catch(a){throw TypeError(T,{cause:a})}let b=a;if(b instanceof Uint8Array&&(b=Q.decode(b)),b.includes("+")||b.includes("/"))throw TypeError(T);b=b.replace(/-/g,"+").replace(/_/g,"/");try{var c=b;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(c);let a=atob(c),d=new Uint8Array(a.length);for(let b=0;b<a.length;b++)d[b]=a.charCodeAt(b);return d}catch{throw TypeError(T)}}function V(a){if("object"!=typeof a||null===a||"[object Object]"!==Object.prototype.toString.call(a))return!1;let b=Object.getPrototypeOf(a);return null===b||null===Object.getPrototypeOf(b)}function W(a,b,c){try{return U(a)}catch{throw new c(`Failed to base64url decode the ${b}`)}}Symbol();let X={__proto__:null,b64:!0},Y=(a,b,...c)=>(function(a,b,...c){if(c.length>2){let b=c.pop();a+=`one of type ${c.join(", ")}, or ${b}.`}else 2===c.length?a+=`one of type ${c[0]} or ${c[1]}.`:a+=`of type ${c[0]}.`;return null==b?a+=` Received ${b}`:"function"==typeof b&&b.name?a+=` Received function ${b.name}`:"object"==typeof b&&null!=b&&b.constructor?.name&&(a+=` Received an instance of ${b.constructor.name}`),a})(`Key for the ${a} algorithm must be `,b,...c),Z=a=>{if(a?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return a instanceof CryptoKey}catch{return!1}};async function $(a,b){if("RSA"===b.kty&&"oth"in b&&void 0!==b.oth)throw new F('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');if(!a.kty.includes(b.kty))throw new F('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let c=a.resolve?.({kty:b.kty,crv:b.crv})??a.subtle,d=!!(b.d||b.priv),e={...b};return"AKP"!==e.kty&&delete e.alg,delete e.use,crypto.subtle.importKey("jwk",e,c,b.ext??!d,b.key_ops??a.usages[+!!d])}let _=a=>a[Symbol.toStringTag],aa={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};function ab(a,b,c){let e=(d||=new WeakMap).get(a);return c&&(e?e[b]=c:d.set(a,{[b]:c})),c??e?.[b]}let ac=async(a,b,c)=>ab(a,c.alg)??ab(a,c.alg,await $(c,{...b,alg:c.alg}));async function ad(a,b,c){let d=function(a,b,c){let{alg:d,secret:e}=a,f="decrypt"===c||"sign"===c;if(e&&b instanceof Uint8Array)return[0,b];if(V(b)){let g=function(a){let b={__proto__:null,...a};if(void 0!==b.ext&&"boolean"!=typeof b.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==b.key_ops){let a=b.key_ops,c=Array.isArray(a)?[...a]:void 0;if(!c||c.some(a=>"string"!=typeof a)||new Set(c).size!==c.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');b.key_ops=c}return b}(b);if("string"!=typeof g.kty)throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(!(e?"oct"===g.kty&&"string"==typeof g.k:"oct"!==g.kty&&(f?"AKP"===g.kty&&"string"==typeof g.priv||"string"==typeof g.d:void 0===g.d&&void 0===g.priv)))throw TypeError(e?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${f?"private":"public"} JWK`);return((a,b,c)=>{let{alg:d}=a;if(void 0!==b.use){let a="sign"===c||"verify"===c?"sig":"enc";if(b.use!==a)throw TypeError(`Invalid key for this operation, its "use" must be "${a}" when present`)}if(void 0!==b.alg&&b.alg!==d)throw TypeError(`Invalid key for this operation, its "alg" must be "${d}" when present`);if(Array.isArray(b.key_ops)){let d="encrypt"===c||"decrypt"===c?a.ops?.[+("encrypt"!==c)]:c;if(d&&!b.key_ops.includes(d))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}})(a,g,c),[3,b,g]}if(!(Z(b)||b?.[Symbol.toStringTag]==="KeyObject"))throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(e){if("secret"!==b.type)throw TypeError(`${_(b)} instances for symmetric algorithms must be of type "secret"`)}else{if("secret"===b.type)throw TypeError(`${_(b)} instances for asymmetric algorithms must not be of type "secret"`);let a=f?"private":"public";if(("public"===b.type||"private"===b.type)&&b.type!==a){let d="sign"===c?"signing":"verify"===c?"verifying":`${c.slice(0,-1)}tion`;throw TypeError(`${_(b)} instances for asymmetric algorithm ${d} must be of type "${a}"`)}}return Z(b)?[1,b]:[2,b]}(a,b,c);switch(d[0]){case 0:case 1:return d[1];case 3:{let b=d[1],c=d[2];if("oct"===c.kty)return U(c.k);if(!Object.isFrozen(b)){let{key_ops:a}=b;Array.isArray(a)&&Object.freeze(a),Object.freeze(b)}return ac(b,c,a)}case 2:{let b=d[1];if("secret"===b.type)return b.export();if("toCryptoKey"in b&&"function"==typeof b.toCryptoKey)return((a,b)=>{let c=ab(a,b.alg);if(c)return c;let d="public"===a.type,e=b.usages[+!d],{asymmetricKeyType:f}=a,g=aa[a.asymmetricKeyDetails?.namedCurve],h=b.resolve?.({crv:g,asymmetricKeyType:f})??b.subtle;return ab(a,b.alg,a.toCryptoKey(h,d,e))})(b,a);return ac(b,b.export({format:"jwk"}),a)}}}async function ae(a,b,c,d,e,f,g){let h=!1;"function"==typeof c&&(c=await c(e,a),h=!0);let i="string"==typeof g,j=function(a){let b="string"==typeof a?P[a]:void 0;if(!b)throw new F(`alg ${a} is not supported either by JOSE or your javascript runtime`);return b}(f),k=function(...a){let b=new Uint8Array(a.reduce((a,{length:b})=>a+b,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}(void 0!==d?S(d):new Uint8Array,S("."),i?b[2]??=function(a,b,c){try{return S(a)}catch{throw new c(`The ${b} is not a valid base64url string`)}}(g,"payload",G):g),l=W(a.signature,"signature",G),m=await ad(j,c,"verify");if(!await A(j,m,l,k))throw new I;return[i?W(g,"payload",G):g,e,i,m,h]}async function af(a,b,c){if(a instanceof Uint8Array&&(a=Q.decode(a)),"string"!=typeof a)throw new G("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new G("Invalid Compact JWS");let h=function(a,b=void 0===a?{}:function(a,b,c){let d;try{d=JSON.parse(R.decode(U(a)))}catch{throw new b(c)}if(!V(d))throw new b(c);return d}(a,G,"JWS Protected Header is invalid")){return b}(d),[i,j]=function(a,b,c){let d=function(a,b){if(b.includes("b64")){let b=a.b64;if("boolean"!=typeof b)throw new G('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return b}return!0}(a,function(a,b,c,d,e){if(void 0!==e.crit&&d?.crit===void 0)throw new a('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return[];if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(a=>"string"!=typeof a||0===a.length))throw new a('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let f=void 0===c?b:{__proto__:null,...c,...b};for(let b of d.crit){if(!(b in f))throw new F(`Extension Header Parameter "${b}" is not recognized`);if(!Object.hasOwn(e,b)||void 0===e[b])throw new a(`Extension Header Parameter "${b}" is missing`);if(f[b]&&(!Object.hasOwn(d,b)||void 0===d[b]))throw new a(`Extension Header Parameter "${b}" MUST be integrity protected`)}return d.crit}(G,X,c[1],a,b)),e=b.alg;if("string"!=typeof e||!e)throw new G('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(c[0]&&!c[0].has(e))throw new E('"alg" (Algorithm) Header Parameter value not allowed');return[d,e]}(h,h,b),k=i?e:function(a){try{return S(a)}catch{throw new G("JWS Compact Serialization payload must use only ASCII characters")}}(e);return ae({payload:e,protected:d,signature:f},b,c,d,h,j,k)}let ag={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},ah=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,ai="check_failed";function aj(){throw TypeError("Invalid time period format")}function ak(a){"string"!=typeof a&&aj();let b=ah.exec(a);(!b||b[4]&&b[1])&&aj();let c=Math.round(parseFloat(b[2])*ag[b[3][0].toLowerCase()]);return(Number.isFinite(c)||aj(),"-"===b[1]||"ago"===b[4])?-c:c}function al(a,b){if(!Number.isFinite(b))throw TypeError(`Invalid ${a} input`);return b}let am=a=>{let b=a.toLowerCase();return a.includes("/")?b:`application/${b}`};function an(a,b,c=!1){let d=a[b];if(void 0!==d||c){if("number"!=typeof d)throw new C(`"${b}" claim must be a number`,a,b,"invalid");return d}}function ao(a,b){throw new C(`unexpected "${b}" claim value`,a,b,ai)}async function ap(a,b,c){let d=await af(a,[c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new H("JWTs MUST NOT use unencoded payload");let e={payload:function(a,b,c={}){var d,e;let f;try{f=JSON.parse(R.decode(b))}catch{}if(!V(f))throw new H("JWT Claims Set must be a top-level JSON object");let{typ:g}=c;if(void 0!==g&&("string"!=typeof a.typ||am(a.typ)!==am(g)))throw new C('unexpected "typ" JWT header value',f,"typ",ai);let{requiredClaims:h=[],issuer:i,subject:j,audience:k,maxTokenAge:l}=c,m=[...h];for(let a of(void 0!==l&&m.push("iat"),void 0!==k&&m.push("aud"),void 0!==j&&m.push("sub"),void 0!==i&&m.push("iss"),new Set(m.reverse())))if(!Object.hasOwn(f,a))throw new C(`missing required "${a}" claim`,f,a,"missing");void 0===i||(Array.isArray(i)?i:[i]).includes(f.iss)||ao(f,"iss"),void 0!==j&&f.sub!==j&&ao(f,"sub"),void 0===k||(d=f.aud,e="string"==typeof k?[k]:k,"string"==typeof d?e.includes(d):!!Array.isArray(d)&&e.some(a=>d.includes(a)))||ao(f,"aud");let{clockTolerance:n}=c,o=0;if("string"==typeof n)o=ak(n);else if(void 0!==n){if("number"!=typeof n)throw TypeError("Invalid clockTolerance option type");o=n}al("clockTolerance option",o);let{currentDate:p}=c,q=al("currentDate option",Math.floor((void 0===p?new Date:p).getTime()/1e3)),r=an(f,"iat",void 0!==l),s=an(f,"nbf");if(void 0!==s&&s>q+o)throw new C('"nbf" claim timestamp check failed',f,"nbf",ai);let t=an(f,"exp");if(void 0!==t&&t<=q-o)throw new D('"exp" claim timestamp check failed',f,"exp",ai);if(void 0!==l){let a=q-r;if(a-o>al("maxTokenAge option","number"==typeof l?l:ak(l)))throw new D('"iat" claim timestamp check failed (too far in the past)',f,"iat",ai);if(a<-o)throw new C('"iat" claim timestamp check failed (it should be in the past)',f,"iat",ai)}return f}(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}c(55511);"function"==typeof setImmediate||"object"==typeof scheduler&&"function"==typeof scheduler.postTask&&scheduler.postTask.bind(scheduler);var aq=c(2071);function ar(a){var b;let c;return"string"==typeof(c=process.env.INITIAL_PASSWORD)&&!!c.trim()||(b=a,!!(b?.password||String(b?.oidcIssuerUrl||"").trim()&&String(b?.oidcClientId||"").trim()&&String(b?.oidcClientSecret||"").trim())||!!(b?.samlEntryPoint&&b?.samlCert))}let as=new Set(["change-me-to-a-long-random-secret","10router-default-secret-change-me","change-me-to-a-random-string","change-me"]),at=new TextEncoder().encode(function(){let a=process.env.JWT_SECRET;if(a){if(!as.has(a))return a;console.warn("[auth] JWT_SECRET is a known placeholder value — ignoring it. Leave JWT_SECRET unset (a random secret is generated to "+o().join(r.nJ,"jwt-secret")+") or set a long random value.")}let b=o().join(r.nJ,"jwt-secret");try{return m().readFileSync(b,"utf8").trim()}catch{}m().mkdirSync(r.nJ,{recursive:!0});let c=q().randomBytes(32).toString("hex");return m().writeFileSync(b,c,{mode:384}),(0,aq.E)(b),c}());async function au(a){if(!a)return!1;try{return await ap(a,at),!0}catch{return!1}}let av=null;async function aw(){return av||(av=await x("9r-cli-auth")),av}async function ax(a){let b=a.headers.get("x-10r-cli-token")||a.headers.get("x-9r-cli-token")||null;return!!b&&b===await aw()}let ay=["/api/health","/api/locale","/api/auth/login","/api/auth/logout","/api/auth/status","/api/auth/oidc","/api/auth/saml","/api/auth/verify-password","/api/settings/require-login"],az=["/api/version","/api/init"],aA=["/v1","/v1beta","/api/v1","/api/v1beta","/codex","/responses"],aB=["/api/shutdown","/api/settings/database","/api/version/shutdown","/api/version/update","/api/version/shell-update","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/transfer/"],aC=["/api/cli-tools/cowork-settings","/api/cli-tools/antigravity-mitm","/api/mcp/","/api/tunnel/tailscale-install","/api/tunnel/tailscale-enable","/api/tunnel/tailscale-disable","/api/tunnel/tailscale-check","/api/tunnel/enable","/api/tunnel/disable","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/auth/reset-password","/api/headroom/start","/api/headroom/stop","/api/headroom/proxy"],aD=new Set(["localhost","127.0.0.1","::1"]);function aE(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),aD.has(b)}function aF(a){let b;if(a.headers.get("x-10r-via-proxy")||!((b=process.env.TENROUTER_PEER_TOKEN)&&a.headers.get("x-10r-peer-token")===b&&aE(a.headers.get("x-10r-real-ip"))))return!1;let c=a.headers.get("origin");if(c)try{if(!aE(new URL(c).hostname))return!1}catch{return!1}return!0}function aG(a){return aA.some(b=>a===b||a.startsWith(`${b}/`))}function aH(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");if(c)return c;let d=a.headers.get("x-goog-api-key");return d||a.nextUrl.searchParams?.get("key")||null}async function aI(a){let b=aH(a);return!!b&&await (0,j.ek)(b)}async function aJ(a){return!!(aF(a)||await ax(a))||await aI(a)}async function aK(a){return!!(await ax(a)||aF(a)&&await aN(a))}async function aL(a){let b=a.cookies.get("auth_token")?.value;return await au(b)}async function aM(){try{return await (0,j.mt)()}catch{return null}}async function aN(a){if(await aL(a))return!0;let b=await aM();return!!(b&&!1===b.requireLogin||!ar(b)&&aF(a))}async function aO(a){let{pathname:b}=a.nextUrl;if(!aG(b)){let b=await aM();if(b?.dashboardLocalOnly===!0&&!aF(a))return i.NextResponse.json({error:"The dashboard is set to local-only access (Experimental → Security). Turn it off from the machine running 10Router to manage it remotely."},{status:403})}if(("/api/oauth/xiaomi-mimo/auto-import"===b||"/api/oauth/xiaomi-mimo/desktop-status"===b||"/api/oauth/xiaomi-mimo/desktop-kill"===b&&"POST"===a.method)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aC.some(a=>b.startsWith(a))&&!await aK(a))return i.NextResponse.json({error:"Local only: CLI token required"},{status:403});if("POST"===a.method&&"/api/settings/database/import-usage"===b&&(a.headers.get("x-10r-password")||a.headers.get("x-9r-password")||aH(a))||"POST"===a.method&&("/api/oauth/transfer/import"===b||"/api/oauth/transfer/export"===b)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aB.some(a=>b.startsWith(a)))return await ax(a)||await aL(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(aG(b))return await aJ(a)?i.NextResponse.next():i.NextResponse.json({error:"API key required for remote API access"},{status:401});if(az.some(a=>b===a||b.startsWith(`${a}/`)))return aF(a)||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if("GET"===a.method&&"/api/usage/quotas"===b&&await aI(a)||("POST"===a.method||"DELETE"===a.method)&&b.startsWith("/api/external-quota/")&&(await aI(a)||await ax(a))||"POST"===a.method&&("/api/provider-nodes"===b||"/api/providers"===b)&&await aI(a))return i.NextResponse.next();if(b.startsWith("/api/"))return aG(b)||ay.some(a=>b===a||b.startsWith(`${a}/`))||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(b.startsWith("/dashboard")){let b=!0,c=null;try{let d=await aM();if(c=d,d&&(b=!1!==d.requireLogin,!0!==d.tunnelDashboardAccess)){let b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),c=d.tunnelUrl?new URL(d.tunnelUrl).hostname.toLowerCase():"",e=d.tailscaleUrl?new URL(d.tailscaleUrl).hostname.toLowerCase():"";if(c&&b===c||e&&b===e)return i.NextResponse.redirect(new URL("/login",a.url))}}catch{}if(!b||!ar(c)&&aF(a))return i.NextResponse.next();let d=a.cookies.get("auth_token")?.value;return d&&await au(d)?i.NextResponse.next():i.NextResponse.redirect(new URL("/login",a.url))}return"/"===b?i.NextResponse.redirect(new URL("/dashboard",a.url)):i.NextResponse.next()}async function aP(a){return aO(a)}let aQ={matcher:["/((?!_next/static|_next/image|favicon\\.ico).*)"]};c(6365);var aR=c(99751);let aS={...e},aT="/src/proxy",aU=(0,aS.proxy||aS.default);class aV extends Error{constructor(a){super(a),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.stack=""}}if("function"!=typeof aU)throw new aV(`The Proxy file "${aT}" must export a function named \`proxy\` or a default function.`);let aW=async a=>{var b,d;{let{join:e,relative:f}=c(76760),{ensureInstrumentationRegistered:g}=c(7465),h=e(process.cwd(),(null==(b=a.request.requestMeta)?void 0:b.relativeProjectDir)||""),i=null==(d=a.request.requestMeta)?void 0:d.distDir,j=i?f(h,i):".next";await g(h,j)}return(0,g.adapter)({...a,IncrementalCache:h.IncrementalCache,incrementalCacheHandler:null,page:aT,handler:async(...a)=>{try{return await aU(...a)}catch(e){let b=a[0],c=new URL(b.url),d=c.pathname+c.search;throw await (0,f.edgeInstrumentationOnRequestError)(e,{path:d,method:b.method,headers:Object.fromEntries(b.headers.entries())},{routerKind:"Pages Router",routePath:"/proxy",routeType:"proxy",revalidateReason:void 0}),e}}})};async function aX(a,b){let c=await aW({request:{url:a.url,method:a.method,headers:(0,aR.toNodeOutgoingHttpHeaders)(a.headers),nextConfig:{basePath:"",i18n:"",trailingSlash:!1,experimental:{cacheLife:{default:{stale:300,revalidate:900,expire:0xfffffffe},seconds:{stale:30,revalidate:1,expire:60},minutes:{stale:300,revalidate:60,expire:3600},hours:{stale:300,revalidate:3600,expire:86400},days:{stale:300,revalidate:86400,expire:604800},weeks:{stale:300,revalidate:604800,expire:2592e3},max:{stale:300,revalidate:2592e3,expire:31536e3}},authInterrupts:!1,clientParamParsingOrigins:[]}},page:{name:aT},body:"GET"!==a.method&&"HEAD"!==a.method?a.body??void 0:void 0,waitUntil:b.waitUntil,requestMeta:b.requestMeta,signal:b.signal||new AbortController().signal}});return null==b.waitUntil||b.waitUntil.call(b,c.waitUntil),c.response}let aY=aW},86948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isFullStringUrl:function(){return h},parseReqUrl:function(){return j},parseUrl:function(){return i},stripNextRscUnionQuery:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g="http://n";function h(a){return/https?:\/\//.test(a)}function i(a){let b;try{b=new URL(a,g)}catch{}return b}function j(a){let b=i(a);if(!b)return;let c={};for(let a of b.searchParams.keys()){let d=b.searchParams.getAll(a);c[a]=d.length>1?d:d[0]}return{query:c,hash:b.hash,search:b.search,path:b.pathname,pathname:b.pathname,href:`${b.pathname}${b.search}${b.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}function k(a){let b=new URL(a,g);return b.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b.pathname+b.search}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},88026:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o={AppRenderSpan:function(){return w},AppRouteRouteHandlersSpan:function(){return z},BaseServerSpan:function(){return q},LoadComponentsSpan:function(){return r},LogSpanAllowList:function(){return D},MiddlewareSpan:function(){return B},NextNodeServerSpan:function(){return t},NextServerSpan:function(){return s},NextVanillaSpanAllowlist:function(){return C},NodeSpan:function(){return y},RenderSpan:function(){return v},ResolveMetadataSpan:function(){return A},RouterSpan:function(){return x},StartServerSpan:function(){return u}};for(var p in o)Object.defineProperty(b,p,{enumerable:!0,get:o[p]});var q=((c=q||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),r=((d=r||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d),s=((e=s||{}).getRequestHandler="NextServer.getRequestHandler",e.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer",e),t=((f=t||{}).compression="NextNodeServer.compression",f.getBuildId="NextNodeServer.getBuildId",f.createComponentTree="NextNodeServer.createComponentTree",f.clientComponentLoading="NextNodeServer.clientComponentLoading",f.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",f.generateStaticRoutes="NextNodeServer.generateStaticRoutes",f.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",f.generatePublicRoutes="NextNodeServer.generatePublicRoutes",f.generateImageRoutes="NextNodeServer.generateImageRoutes.route",f.sendRenderResult="NextNodeServer.sendRenderResult",f.proxyRequest="NextNodeServer.proxyRequest",f.runApi="NextNodeServer.runApi",f.render="NextNodeServer.render",f.renderHTML="NextNodeServer.renderHTML",f.imageOptimizer="NextNodeServer.imageOptimizer",f.getPagePath="NextNodeServer.getPagePath",f.getRoutesManifest="NextNodeServer.getRoutesManifest",f.findPageComponents="NextNodeServer.findPageComponents",f.getFontManifest="NextNodeServer.getFontManifest",f.getServerComponentManifest="NextNodeServer.getServerComponentManifest",f.getRequestHandler="NextNodeServer.getRequestHandler",f.renderToHTML="NextNodeServer.renderToHTML",f.renderError="NextNodeServer.renderError",f.renderErrorToHTML="NextNodeServer.renderErrorToHTML",f.render404="NextNodeServer.render404",f.startResponse="NextNodeServer.startResponse",f.route="route",f.onProxyReq="onProxyReq",f.apiResolver="apiResolver",f.internalFetch="internalFetch",f),u=((g=u||{}).startServer="startServer.startServer",g),v=((h=v||{}).getServerSideProps="Render.getServerSideProps",h.getStaticProps="Render.getStaticProps",h.renderToString="Render.renderToString",h.renderDocument="Render.renderDocument",h.createBodyResult="Render.createBodyResult",h),w=((i=w||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i.waitShellReady="AppRender.waitShellReady",i.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",i.instantInsights="AppRender.instantInsights",i.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",i.instantInsightsRunValidation="AppRender.instantInsights.runValidation",i),x=((j=x||{}).executeRoute="Router.executeRoute",j),y=((k=y||{}).runHandler="Node.runHandler",k),z=((l=z||{}).runHandler="AppRouteRouteHandlers.runHandler",l),A=((m=A||{}).generateMetadata="ResolveMetadata.generateMetadata",m.generateViewport="ResolveMetadata.generateViewport",m),B=((n=B||{}).execute="Middleware.execute",n);let C=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),D=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},88266:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return k}});let e=c(72394),f=(d=c(40694))&&d.__esModule?d:{default:d},g=c(96100),h=c(36820),i=c(90925),j=c(94143);class k{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(a){this.fs=a.fs,this.flushToDisk=a.flushToDisk,this.serverDistDir=a.serverDistDir,this.revalidatedTags=a.revalidatedTags,a.maxMemoryCacheSize?k.memoryCache?k.debug&&console.log("FileSystemCache: memory store already initialized"):(k.debug&&console.log("FileSystemCache: using memory store for fetch cache"),k.memoryCache=(0,j.getMemoryCache)(a.maxMemoryCacheSize)):k.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(a,b){if(a="string"==typeof a?[a]:a,k.debug&&console.log("FileSystemCache: revalidateTag",a,b),0===a.length)return;let c=Date.now();for(let d of a){let a=h.tagsManifest.get(d)||{};if(b){let e={...a};e.stale=c,void 0!==b.expire&&(e.expired=c+1e3*b.expire),h.tagsManifest.set(d,e)}else h.tagsManifest.set(d,{...a,expired:c})}}async get(...a){var b,c,d,f,i,j,l,m,n;let[o,p]=a,{kind:q}=p,r=null==(b=k.memoryCache)?void 0:b.get(o);if(k.debug&&(q===e.IncrementalCacheKind.FETCH?console.log("FileSystemCache: get",o,p.tags,q,!!r):console.log("FileSystemCache: get",o,q,!!r)),!r)try{if(q===e.IncrementalCacheKind.APP_ROUTE){let a=this.getFilePath(`${o}.body`,e.IncrementalCacheKind.APP_ROUTE),b=await this.fs.readFile(a),{mtime:c}=await this.fs.stat(a),d=JSON.parse(await this.fs.readFile(a.replace(/\.body$/,g.NEXT_META_SUFFIX),"utf8"));r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_ROUTE,body:b,headers:d.headers,status:d.status}}}else{let a=this.getFilePath(q===e.IncrementalCacheKind.FETCH?o:`${o}.html`,q),b=await this.fs.readFile(a,"utf8"),{mtime:c}=await this.fs.stat(a);if(q===e.IncrementalCacheKind.FETCH){let{tags:a,fetchIdx:d,fetchUrl:f}=p;if(!this.flushToDisk)return null;let g=c.getTime(),h=JSON.parse(b);if(r={lastModified:g,value:h},(null==(j=r.value)?void 0:j.kind)===e.CachedRouteKind.FETCH){let b=null==(l=r.value)?void 0:l.tags;(null==a?void 0:a.every(a=>null==b?void 0:b.includes(a)))||(k.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",a,b),await this.set(o,r.value,{fetchCache:!0,tags:a,fetchIdx:d,fetchUrl:f}))}}else if(q===e.IncrementalCacheKind.APP_PAGE){let d,f,h;try{d=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,g.NEXT_META_SUFFIX),"utf8"))}catch{}if(null==d?void 0:d.segmentPaths){let a=new Map;f=a;let b=o+g.RSC_SEGMENTS_DIR_SUFFIX;await Promise.all(d.segmentPaths.map(async c=>{let d=this.getFilePath(b+c+g.RSC_SEGMENT_SUFFIX,e.IncrementalCacheKind.APP_PAGE);try{a.set(c,await this.fs.readFile(d))}catch{}}))}p.isFallback||p.isRoutePPREnabled&&(null==d?void 0:d.postponed)!=null||(h=await this.fs.readFile(this.getFilePath(`${o}${g.RSC_SUFFIX}`,e.IncrementalCacheKind.APP_PAGE))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_PAGE,html:b,rscData:h,postponed:null==d?void 0:d.postponed,headers:null==d?void 0:d.headers,status:null==d?void 0:d.status,segmentData:f}}}else if(q===e.IncrementalCacheKind.PAGES){let a,d={};p.isFallback||(d=JSON.parse(await this.fs.readFile(this.getFilePath(`${o}${g.NEXT_DATA_SUFFIX}`,e.IncrementalCacheKind.PAGES),"utf8"))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.PAGES,html:b,pageData:d,headers:null==a?void 0:a.headers,status:null==a?void 0:a.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${q} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}r&&(null==(m=k.memoryCache)||m.set(o,r))}catch{return null}if((null==r||null==(c=r.value)?void 0:c.kind)===e.CachedRouteKind.APP_PAGE||(null==r||null==(d=r.value)?void 0:d.kind)===e.CachedRouteKind.APP_ROUTE||(null==r||null==(f=r.value)?void 0:f.kind)===e.CachedRouteKind.PAGES){let a=null==(n=r.value.headers)?void 0:n[g.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");if(b.length>0&&(0,h.areTagsExpired)(b,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",b),null}}else if((null==r||null==(i=r.value)?void 0:i.kind)===e.CachedRouteKind.FETCH){let a=p.kind===e.IncrementalCacheKind.FETCH?[...p.tags||[],...p.softTags||[]]:[];if(a.some(a=>this.revalidatedTags.includes(a)))return k.debug&&console.log("FileSystemCache: was revalidated",a),null;if((0,h.areTagsExpired)(a,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",a),null}return r??null}async set(a,b,c){var d;if(null==(d=k.memoryCache)||d.set(a,{value:b,lastModified:Date.now()}),k.debug&&console.log("FileSystemCache: set",a),!this.flushToDisk||!b)return;let f=new i.MultiFileWriter(this.fs);if(b.kind===e.CachedRouteKind.APP_ROUTE){let c=this.getFilePath(`${a}.body`,e.IncrementalCacheKind.APP_ROUTE);f.append(c,b.body);let d={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};f.append(c.replace(/\.body$/,g.NEXT_META_SUFFIX),JSON.stringify(d,null,2))}else if(b.kind===e.CachedRouteKind.PAGES||b.kind===e.CachedRouteKind.APP_PAGE){let d=b.kind===e.CachedRouteKind.APP_PAGE,h=this.getFilePath(`${a}.html`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES);if(f.append(h,b.html),c.fetchCache||c.isFallback||c.isRoutePPREnabled||f.append(this.getFilePath(`${a}${d?g.RSC_SUFFIX:g.NEXT_DATA_SUFFIX}`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES),d?b.rscData:JSON.stringify(b.pageData)),(null==b?void 0:b.kind)===e.CachedRouteKind.APP_PAGE){let a;if(b.segmentData){a=[];let c=h.replace(/\.html$/,g.RSC_SEGMENTS_DIR_SUFFIX);for(let[d,e]of b.segmentData){a.push(d);let b=c+d+g.RSC_SEGMENT_SUFFIX;f.append(b,e)}}let c={headers:b.headers,status:b.status,postponed:b.postponed,segmentPaths:a,prefetchHints:void 0};f.append(h.replace(/\.html$/,g.NEXT_META_SUFFIX),JSON.stringify(c))}}else if(b.kind===e.CachedRouteKind.FETCH){let d=this.getFilePath(a,e.IncrementalCacheKind.FETCH);f.append(d,JSON.stringify({...b,tags:c.fetchCache?c.tags:[]}))}await f.wait()}getFilePath(a,b){let c;switch(b){case e.IncrementalCacheKind.FETCH:c=f.default.join(this.serverDistDir,"..","cache","fetch-cache");break;case e.IncrementalCacheKind.PAGES:c=f.default.join(this.serverDistDir,"pages");break;case e.IncrementalCacheKind.IMAGE:case e.IncrementalCacheKind.APP_PAGE:case e.IncrementalCacheKind.APP_ROUTE:c=f.default.join(this.serverDistDir,"app");break;default:throw Object.defineProperty(Error(`Unexpected file path kind: ${b}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}let d=f.default.join(c,a);if(!(d.startsWith(c+f.default.sep)||d===c))throw Object.defineProperty(Error(`Invalid file path: ${d}`),"__NEXT_ERROR_CODE",{value:"E1468",enumerable:!1,configurable:!0});return d}}},88450:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(61544),g=c(99751),h=c(84573),i=c(42097),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},88771:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={CacheHandler:function(){return t},IncrementalCache:function(){return v}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(72394),h=(d=c(88266))&&d.__esModule?d:{default:d},i=c(26670),j=c(96100),k=c(6892),l=c(97538),m=c(63033),n=c(42776),o=c(55122),p=c(29294),q=c(59841),r=c(36820);function s(a){let b="buffer"in a?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):new Uint8Array(a),c="";for(let a of b)c+=a.toString(16).padStart(2,"0");return c}class t{constructor(a){}async get(a,b){return{}}async set(a,b,c){}async revalidateTag(a,b){}resetRequestCache(){}}async function u(a){return c(55511).createHash("sha256").update(a).digest("hex")}class v{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:a,dev:b,flushToDisk:c,minimalMode:d,serverDistDir:e,requestHeaders:f,maxMemoryCacheSize:g,getPrerenderManifest:i,fetchCacheKeyPrefix:k,CurCacheHandler:m,allowedRevalidateHeaderKeys:n}){var p,q,r,s;this.locks=new Map,this.hasCustomCacheHandler=!!m;const t=Symbol.for("@next/cache-handlers"),u=globalThis;if(m)v.debug&&console.log("IncrementalCache: using custom cache handler",m.name);else{const b=u[t];(null==b?void 0:b.FetchCache)?(m=b.FetchCache,v.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):a&&e&&(v.debug&&console.log("IncrementalCache: using filesystem cache handler"),m=h.default)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(g=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=b,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=d,this.requestHeaders=f,this.allowedRevalidateHeaderKeys=n,this.prerenderManifest=i(),this.cacheControls=new l.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=k;let w=[];f[j.PRERENDER_REVALIDATE_HEADER]===(null==(q=this.prerenderManifest)||null==(p=q.preview)?void 0:p.previewModeId)&&(this.isOnDemandRevalidate=!0),d&&(w=this.revalidatedTags=(0,o.getPreviouslyRevalidatedTags)(f,null==(s=this.prerenderManifest)||null==(r=s.preview)?void 0:r.previewModeId)),m&&(this.cacheHandler=new m({dev:b,fs:a,flushToDisk:c,serverDistDir:e,revalidatedTags:w,maxMemoryCacheSize:g,_requestHeaders:f,fetchCacheKeyPrefix:k}))}calculateRevalidate(a,b,c,d){if(c)return Math.floor(performance.timeOrigin+performance.now()-1e3);let e=this.cacheControls.get((0,k.toRoute)(a)),f=e?e.revalidate:!d&&1;return"number"==typeof f?1e3*f+b:f}_getPathname(a,b){return b?a:(0,i.normalizePagePath)(a)}resetRequestCache(){var a,b;null==(b=this.cacheHandler)||null==(a=b.resetRequestCache)||a.call(b)}async lock(a){for(;;){let b=this.locks.get(a);if(v.debug&&console.log("IncrementalCache: lock get",a,!!b),!b)break;await b}let{resolve:b,promise:c}=new q.DetachedPromise;return v.debug&&console.log("IncrementalCache: successfully locked",a),this.locks.set(a,c),()=>{b(),this.locks.delete(a)}}async revalidateTag(a,b){var c;return null==(c=this.cacheHandler)?void 0:c.revalidateTag(a,b)}async generateSimpleCacheKey(a){return u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a]))}async generateCacheKey(a,b={}){let c=[],d=new TextEncoder,e=null,f=b.body;if(f)if("object"==typeof f&&"byteLength"in f)c.push(`bytes:${s(f)}`),b._ogBody=f;else if("function"==typeof f.getReader){let a=[];try{await f.pipeTo(new WritableStream({write(b){a.push("string"==typeof b?d.encode(b):b)}}));let e=a.reduce((a,b)=>a+b.length,0),g=new Uint8Array(e),h=0;for(let b of a)g.set(b,h),h+=b.length;c.push(`bytes:${s(g)}`),b._ogBody=g}catch(a){console.error("Problem reading body",a)}}else if("function"==typeof f.keys)for(let[a,d]of(e="[object FormData]"===String(f)?"multipart/form-data; boundary=":"application/x-www-form-urlencoded;charset=UTF-8",b._ogBody=f,f.entries()))c.push(`key:${a}`),"string"==typeof d?c.push(`str:${d}`):c.push("file",d.name,d.type,`bytes:${s(await d.arrayBuffer())}`);else if("function"==typeof f.arrayBuffer){let a=await f.arrayBuffer();c.push("blob",f.type,`bytes:${s(a)}`),b._ogBody=new Blob([a],{type:f.type}),e=f.type}else if("string"==typeof f)c.push(`str:${f}`),b._ogBody=f,e="text/plain;charset=UTF-8";else throw Object.defineProperty(Error(`Unsupported body type: ${typeof f}`),"__NEXT_ERROR_CODE",{value:"E1443",enumerable:!1,configurable:!0});let g="function"==typeof(b.headers||{}).keys?Object.fromEntries(b.headers):Object.assign({},b.headers);return"traceparent"in g&&delete g.traceparent,"tracestate"in g&&delete g.tracestate,u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a,b.method,e,g,b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity,b.cache,c]))}async get(a,b){var c,d,e,f,h,i,l;let o,q;if(b.kind===g.IncrementalCacheKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;if(d){let c=d.fetch.get(a);if((null==c?void 0:c.kind)===g.CachedRouteKind.FETCH){let d=p.workAsyncStorage.getStore();if(![...b.tags||[],...b.softTags||[]].some(a=>{var b,c;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==d||null==(c=d.pendingRevalidatedTags)?void 0:c.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: rdc:hit",a),{isStale:!1,value:c};v.debug&&console.log("IncrementalCache: rdc:revalidated-tag",a)}else v.debug&&console.log("IncrementalCache: rdc:miss",a)}else v.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(b.kind!==g.IncrementalCacheKind.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;a=this._getPathname(a,b.kind===g.IncrementalCacheKind.FETCH);let s=await (null==(c=this.cacheHandler)?void 0:c.get(a,b));if(b.kind===g.IncrementalCacheKind.FETCH){if(!s)return null;if((null==(e=s.value)?void 0:e.kind)!==g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} to be a "FETCH" kind, got ${JSON.stringify(null==(f=s.value)?void 0:f.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let c=p.workAsyncStorage.getStore(),d=[...b.tags||[],...b.softTags||[]];if(d.some(a=>{var b,d;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==c||null==(d=c.pendingRevalidatedTags)?void 0:d.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: expired tag",a),null;let h=m.workUnitAsyncStorage.getStore();if(h){let b=(0,m.getResumeDataCache)(h);(null==b?void 0:b.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),b.fetch.set(a,s.value))}let i=b.revalidate||s.value.revalidate,j=(performance.timeOrigin+performance.now()-(s.lastModified||0))/1e3>i,k=s.value.data;return(0,r.areTagsExpired)(d,s.lastModified)?null:((0,r.areTagsStale)(d,s.lastModified)&&(j=!0),{isStale:j,value:{kind:g.CachedRouteKind.FETCH,data:k,revalidate:i}})}if((null==s||null==(d=s.value)?void 0:d.kind)===g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} not to be a ${JSON.stringify(b.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let t=null,{isFallback:u}=b,w=this.cacheControls.get((0,k.toRoute)(a));if((null==s?void 0:s.lastModified)===-1)o=-1,q=-1*j.CACHE_ONE_YEAR_SECONDS*1e3;else{let c=performance.timeOrigin+performance.now(),d=(null==s?void 0:s.lastModified)||c;q=this.calculateRevalidate(a,d,this.dev??!1,b.isFallback);let e="number"==typeof(null==w?void 0:w.expire)?1e3*w.expire+d:void 0;if(void 0!==e&&e<c)o=-1;else if(void 0===(o=!1!==q&&q<c||void 0)&&((null==s||null==(h=s.value)?void 0:h.kind)===g.CachedRouteKind.APP_PAGE||(null==s||null==(i=s.value)?void 0:i.kind)===g.CachedRouteKind.APP_ROUTE)){let a=null==(l=s.value.headers)?void 0:l[j.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");b.length>0&&((0,r.areTagsExpired)(b,d)?o=-1:(0,r.areTagsStale)(b,d)&&(o=!0))}}}return s&&(t={isStale:o,cacheControl:w,revalidateAfter:q,value:s.value,isFallback:u}),!s&&this.prerenderManifest.notFoundRoutes.includes(a)&&(t={isStale:o,value:null,cacheControl:w,revalidateAfter:q,isFallback:u},this.set(a,t.value,{...b,cacheControl:w})),t}async set(a,b,c){if((null==b?void 0:b.kind)===g.CachedRouteKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;(null==d?void 0:d.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),d.fetch.set(a,b))}if(this.disableForTestmode||this.dev&&!c.fetchCache)return;a=this._getPathname(a,c.fetchCache);let d=JSON.stringify(b).length;if(c.fetchCache&&d>2097152&&!this.hasCustomCacheHandler&&!c.isImplicitBuildTimeCache){let b=`Failed to set Next.js data cache for ${c.fetchUrl||a}, items over 2MB can not be cached (${d} bytes)`;if(this.dev)throw Object.defineProperty(Error(b),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(b);return}try{var e;!c.fetchCache&&c.cacheControl&&this.cacheControls.set((0,k.toRoute)(a),c.cacheControl),await (null==(e=this.cacheHandler)?void 0:e.set(a,b,c))}catch(b){console.warn("Failed to update prerender cache for",a,b)}}}},89198:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DynamicServerError:function(){return f},isDynamicServerError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="DYNAMIC_SERVER_USAGE";class f extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},89218:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return h},createSnapshot:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class f{disable(){throw e}getStore(){}run(){throw e}exit(){throw e}enterWith(){throw e}static bind(a){return a}}let g="u">typeof globalThis&&globalThis.AsyncLocalStorage;function h(){return g?new g:new f}function i(a){return g?g.bind(a):f.bind(a)}function j(){return g?g.snapshot():function(a,...b){return a(...b)}}},90132:a=>{(()=>{"use strict";var b={234:a=>{var b=Object.prototype.hasOwnProperty,c="~";function d(){}function e(a,b,c){this.fn=a,this.context=b,this.once=c||!1}function f(a,b,d,f,g){if("function"!=typeof d)throw TypeError("The listener must be a function");var h=new e(d,f||a,g),i=c?c+b:b;return a._events[i]?a._events[i].fn?a._events[i]=[a._events[i],h]:a._events[i].push(h):(a._events[i]=h,a._eventsCount++),a}function g(a,b){0==--a._eventsCount?a._events=new d:delete a._events[b]}function h(){this._events=new d,this._eventsCount=0}Object.create&&(d.prototype=Object.create(null),(new d).__proto__||(c=!1)),h.prototype.eventNames=function(){var a,d,e=[];if(0===this._eventsCount)return e;for(d in a=this._events)b.call(a,d)&&e.push(c?d.slice(1):d);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(a)):e},h.prototype.listeners=function(a){var b=c?c+a:a,d=this._events[b];if(!d)return[];if(d.fn)return[d.fn];for(var e=0,f=d.length,g=Array(f);e<f;e++)g[e]=d[e].fn;return g},h.prototype.listenerCount=function(a){var b=c?c+a:a,d=this._events[b];return d?d.fn?1:d.length:0},h.prototype.emit=function(a,b,d,e,f,g){var h=c?c+a:a;if(!this._events[h])return!1;var i,j,k=this._events[h],l=arguments.length;if(k.fn){switch(k.once&&this.removeListener(a,k.fn,void 0,!0),l){case 1:return k.fn.call(k.context),!0;case 2:return k.fn.call(k.context,b),!0;case 3:return k.fn.call(k.context,b,d),!0;case 4:return k.fn.call(k.context,b,d,e),!0;case 5:return k.fn.call(k.context,b,d,e,f),!0;case 6:return k.fn.call(k.context,b,d,e,f,g),!0}for(j=1,i=Array(l-1);j<l;j++)i[j-1]=arguments[j];k.fn.apply(k.context,i)}else{var m,n=k.length;for(j=0;j<n;j++)switch(k[j].once&&this.removeListener(a,k[j].fn,void 0,!0),l){case 1:k[j].fn.call(k[j].context);break;case 2:k[j].fn.call(k[j].context,b);break;case 3:k[j].fn.call(k[j].context,b,d);break;case 4:k[j].fn.call(k[j].context,b,d,e);break;default:if(!i)for(m=1,i=Array(l-1);m<l;m++)i[m-1]=arguments[m];k[j].fn.apply(k[j].context,i)}}return!0},h.prototype.on=function(a,b,c){return f(this,a,b,c,!1)},h.prototype.once=function(a,b,c){return f(this,a,b,c,!0)},h.prototype.removeListener=function(a,b,d,e){var f=c?c+a:a;if(!this._events[f])return this;if(!b)return g(this,f),this;var h=this._events[f];if(h.fn)h.fn!==b||e&&!h.once||d&&h.context!==d||g(this,f);else{for(var i=0,j=[],k=h.length;i<k;i++)(h[i].fn!==b||e&&!h[i].once||d&&h[i].context!==d)&&j.push(h[i]);j.length?this._events[f]=1===j.length?j[0]:j:g(this,f)}return this},h.prototype.removeAllListeners=function(a){var b;return a?(b=c?c+a:a,this._events[b]&&g(this,b)):(this._events=new d,this._eventsCount=0),this},h.prototype.off=h.prototype.removeListener,h.prototype.addListener=h.prototype.on,h.prefixed=c,h.EventEmitter=h,a.exports=h},274:a=>{a.exports=(a,b)=>(b=b||(()=>{}),a.then(a=>new Promise(a=>{a(b())}).then(()=>a),a=>new Promise(a=>{a(b())}).then(()=>{throw a})))},294:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b,c){let d=0,e=a.length;for(;e>0;){let f=e/2|0,g=d+f;0>=c(a[g],b)?(d=++g,e-=f+1):e=f}return d}},838:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(294);class e{constructor(){this._queue=[]}enqueue(a,b){let c={priority:(b=Object.assign({priority:0},b)).priority,run:a};if(this.size&&this._queue[this.size-1].priority>=b.priority)return void this._queue.push(c);let e=d.default(this._queue,c,(a,b)=>b.priority-a.priority);this._queue.splice(e,0,c)}dequeue(){let a=this._queue.shift();return null==a?void 0:a.run}filter(a){return this._queue.filter(b=>b.priority===a.priority).map(a=>a.run)}get size(){return this._queue.length}}b.default=e},138:(a,b,c)=>{let d=c(274);class e extends Error{constructor(a){super(a),this.name="TimeoutError"}}let f=(a,b,c)=>new Promise((f,g)=>{if("number"!=typeof b||b<0)throw TypeError("Expected `milliseconds` to be a positive number");if(b===1/0)return void f(a);let h=setTimeout(()=>{if("function"==typeof c){try{f(c())}catch(a){g(a)}return}let d="string"==typeof c?c:`Promise timed out after ${b} milliseconds`,h=c instanceof Error?c:new e(d);"function"==typeof a.cancel&&a.cancel(),g(h)},b);d(a.then(f,g),()=>{clearTimeout(h)})});a.exports=f,a.exports.default=f,a.exports.TimeoutError=e}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a](f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0});let a=d(234),b=d(138),c=d(838),f=()=>{},g=new b.TimeoutError;class h extends a{constructor(a){var b,d,e,g;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=f,this._resolveIdle=f,!("number"==typeof(a=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:c.default},a)).intervalCap&&a.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(d=null==(b=a.intervalCap)?void 0:b.toString())?d:""}\` (${typeof a.intervalCap})`);if(void 0===a.interval||!(Number.isFinite(a.interval)&&a.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(g=null==(e=a.interval)?void 0:e.toString())?g:""}\` (${typeof a.interval})`);this._carryoverConcurrencyCount=a.carryoverConcurrencyCount,this._isIntervalIgnored=a.intervalCap===1/0||0===a.interval,this._intervalCap=a.intervalCap,this._interval=a.interval,this._queue=new a.queueClass,this._queueClass=a.queueClass,this.concurrency=a.concurrency,this._timeout=a.timeout,this._throwOnTimeout=!0===a.throwOnTimeout,this._isPaused=!1===a.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}get _doesConcurrentAllowAnother(){return this._pendingCount<this._concurrency}_next(){this._pendingCount--,this._tryToStartAnother(),this.emit("next")}_resolvePromises(){this._resolveEmpty(),this._resolveEmpty=f,0===this._pendingCount&&(this._resolveIdle(),this._resolveIdle=f,this.emit("idle"))}_onResumeInterval(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}_isIntervalPaused(){let a=Date.now();if(void 0===this._intervalId){let b=this._intervalEnd-a;if(!(b<0))return void 0===this._timeoutId&&(this._timeoutId=setTimeout(()=>{this._onResumeInterval()},b)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let a=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let b=this._queue.dequeue();return!!b&&(this.emit("active"),b(),a&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(a){if(!("number"==typeof a&&a>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${a}\` (${typeof a})`);this._concurrency=a,this._processQueue()}async add(a,c={}){return new Promise((d,e)=>{let f=async()=>{this._pendingCount++,this._intervalCount++;try{let f=void 0===this._timeout&&void 0===c.timeout?a():b.default(Promise.resolve(a()),void 0===c.timeout?this._timeout:c.timeout,()=>{(void 0===c.throwOnTimeout?this._throwOnTimeout:c.throwOnTimeout)&&e(g)});d(await f)}catch(a){e(a)}this._next()};this._queue.enqueue(f,c),this._tryToStartAnother(),this.emit("add")})}async addAll(a,b){return Promise.all(a.map(async a=>this.add(a,b)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(a=>{let b=this._resolveEmpty;this._resolveEmpty=()=>{b(),a()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(a=>{let b=this._resolveIdle;this._resolveIdle=()=>{b(),a()}})}get size(){return this._queue.size}sizeBy(a){return this._queue.filter(a).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(a){this._timeout=a}}e.default=h})(),a.exports=e})()},90810:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={},g={RequestCookies:()=>n,ResponseCookies:()=>o,parseCookie:()=>j,parseSetCookie:()=>k,stringifyCookie:()=>i};for(var h in g)b(f,h,{get:g[h],enumerable:!0});function i(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function j(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function k(a){if(!a)return;let[[b,c],...d]=j(a),{domain:e,expires:f,httponly:g,maxage:h,path:i,samesite:k,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof h&&{maxAge:Number(h)},path:i,...k&&{sameSite:l.includes(q=(q=k).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:m.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}a.exports=((a,f,g)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let h of d(f))e.call(a,h)||void 0===h||b(a,h,{get:()=>f[h],enumerable:!(g=c(f,h))||g.enumerable});return a})(b({},"__esModule",{value:!0}),f);var l=["strict","lax","none"],m=["low","medium","high"],n=class{constructor(a){this._parsed=new Map,this._headers=a;const b=a.get("cookie");if(b)for(const[a,c]of j(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>i(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>i(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},o=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;const e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(const a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){const b=k(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=i(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(i).join("; ")}}},90925:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MultiFileWriter",{enumerable:!0,get:function(){return f}});let e=(d=c(40694))&&d.__esModule?d:{default:d};class f{constructor(a){this.fs=a,this.tasks=[]}findOrCreateTask(a){for(let b of this.tasks)if(b[0]===a)return b;let b=this.fs.mkdir(a);b.catch(()=>{});let c=[a,b,[]];return this.tasks.push(c),c}append(a,b){let c=this.findOrCreateTask(e.default.dirname(a)),d=c[1].then(()=>this.fs.writeFile(a,b));d.catch(()=>{}),c[2].push(d)}wait(){return Promise.all(this.tasks.flatMap(a=>a[2]))}}},91117:(a,b,c)=>{"use strict";function d(a,b,c=null){let e=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return e?e.value:c}function e(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c.d(b,{dy:()=>d,np:()=>e}),c(59339)},92539:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compareAppPaths:function(){return i},normalizeAppPath:function(){return h},normalizeRscURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(17888),g=c(53610);function h(a){return(0,f.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,g.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:`${a}/${b}`,""))}function i(a,b){let c=a.includes("/@"),d=b.includes("/@");return c&&!d?-1:!c&&d?1:a.localeCompare(b)}function j(a){return a.replace(/\.rsc($|\?)/,"$1")}},92729:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(36299),e=c(1390),f=c(69687),g=c(82737),h=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function i(a,b){let c=new URL(String(a),b&&String(b));return h.test(c.hostname)&&(c.hostname="localhost"),c}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},93250:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(77890);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},93384:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(38955),g=c(31050),h=c(29294),i=c(79285);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},94143:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/memory-cache.external.js")},94735:a=>{"use strict";a.exports=require("events")},95160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(43892),e=c(59339),f=c(33323);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
169
169
  VALUES(?, ?, ?, ?, ?, ?)
170
170
  ON CONFLICT(id) DO UPDATE SET
171
- type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.cK)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.cK)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.cK)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.cK)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.cK)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]))}),c}},95226:(a,b,c)=>{"use strict";c.d(b,{mt:()=>e.getSettings,ek:()=>f.validateApiKey});var d=c(59339);c(34393);var e=c(85304);c(56840),c(95160);var f=c(17343),g=c(71509);(0,g.U)("modelAliases"),(0,g.U)("customModels"),(0,g.U)("mitmAlias"),c(36241),c(50809);var h=c(94735);c(91117),c(69128);var i=c(97303);let j="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(i.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:j}:b]}));let k=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","systemoneConfig","rerankConfig","modelsFetcher","mediaPriority","hiddenKinds"],l=a=>Object.fromEntries(i.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),k))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=j),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...a.topologyHiddenByDefault?{topologyHiddenByDefault:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.exposeStaticModels?{exposeStaticModels:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.community?{community:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),m=l("free"),n=l("freeTier"),o=l("oauth"),p=l("apikey"),q=l("webCookie"),r={...m,...n,...o,...p,...q};Object.values(r).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(r).reduce((a,b)=>(a[b.id]=b.alias,a),{}),i.default.filter(a=>a.features?.usage).map(a=>a.id),i.default.filter(a=>a.features?.usageApikey).map(a=>a.id),i.default.filter(a=>a.features?.usageCookie).map(a=>a.id);var s=c(76871);Object.entries(r).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(s.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),Object.freeze(["gemini-live"]),global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new h.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null}),global._pendingRequests,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitTimers,global._statsEmitter;var t=c(33323);let u=null,v=0;async function w(){if(u&&Date.now()-v<5e3)return u;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,85304)),b=await a(),d=process.env.ENABLE_REQUEST_LOGS;if(void 0!==d)return u={enabled:"true"===d.toLowerCase(),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},v=Date.now(),u;let e="false"!==process.env.OBSERVABILITY_ENABLED;u={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:e,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{u={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return v=Date.now(),u}let x=[],y=null,z=!1;function A(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function B(){if(!z&&0!==x.length){z=!0;try{for(;x.length>0;){let a=x.splice(0,x.length),b=await (0,d.cK)(),c=await w();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:A(d.request,c.maxJsonSize),providerRequest:A(d.providerRequest,c.maxJsonSize),providerResponse:A(d.providerResponse,c.maxJsonSize),response:A(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,t.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{z=!1}}}let C=async()=>{y&&(clearTimeout(y),y=null),x.length>0&&await B()};process.off("beforeExit",C),process.off("SIGINT",C),process.off("SIGTERM",C),process.off("exit",C),process.on("beforeExit",C),process.on("SIGINT",C),process.on("SIGTERM",C),process.on("exit",C)},96100:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_SUFFIX:function(){return p},APP_DIR_ALIAS:function(){return O},CACHE_ONE_YEAR_SECONDS:function(){return E},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ag},GSP_NO_RETURNED_VALUE:function(){return aa},GSSP_COMPONENT_MEMBER_ERROR:function(){return ad},GSSP_NO_RETURNED_VALUE:function(){return ab},HTML_CONTENT_TYPE_HEADER:function(){return f},INFINITE_CACHE:function(){return F},INSTRUMENTATION_HOOK_FILENAME:function(){return K},JSON_CONTENT_TYPE_HEADER:function(){return g},MATCHED_PATH_HEADER:function(){return j},MIDDLEWARE_FILENAME:function(){return G},MIDDLEWARE_LOCATION_REGEXP:function(){return H},NEXT_BODY_SUFFIX:function(){return s},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return v},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return w},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return D},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return B},NEXT_CACHE_TAGS_HEADER:function(){return u},NEXT_CACHE_TAG_MAX_ITEMS:function(){return z},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return q},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return i},NEXT_META_SUFFIX:function(){return r},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return t},NEXT_QUERY_PARAM_PREFIX:function(){return h},NEXT_RESUME_HEADER:function(){return x},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return y},NON_STANDARD_NODE_ENV:function(){return ae},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return k},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return I},PROXY_LOCATION_REGEXP:function(){return J},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return N},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return U},RSC_ACTION_PROXY_ALIAS:function(){return R},RSC_ACTION_VALIDATE_ALIAS:function(){return Q},RSC_CACHE_WRAPPER_ALIAS:function(){return S},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return T},RSC_MOD_REF_PROXY_ALIAS:function(){return P},RSC_SEGMENTS_DIR_SUFFIX:function(){return m},RSC_SEGMENT_SUFFIX:function(){return n},RSC_SUFFIX:function(){return o},SERVER_PROPS_EXPORT_ERROR:function(){return _},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Y},SERVER_PROPS_SSG_CONFLICT:function(){return Z},SERVER_RUNTIME:function(){return ah},SSG_FALLBACK_EXPORT_ERROR:function(){return af},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return X},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return $},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return e},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ac},WEBPACK_LAYERS:function(){return ak},WEBPACK_RESOURCE_QUERIES:function(){return al},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ai}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="text/plain",f="text/html; charset=utf-8",g="application/json; charset=utf-8",h="nxtP",i="nxtI",j="x-matched-path",k="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",m=".segments",n=".segment.rsc",o=".rsc",p=".action",q=".json",r=".meta",s=".body",t="x-nextjs-deployment-id",u="x-next-cache-tags",v="x-next-revalidated-tags",w="x-next-revalidate-tag-token",x="next-resume",y="x-next-resume-state-length",z=128,A=256,B=1024,C="_N_T_",D="_N_RP_",E=31536e3,F=0xfffffffe,G="middleware",H=`(?:src/)?${G}`,I="proxy",J=`(?:src/)?${I}`,K="instrumentation",L="private-next-pages",M="private-dot-next",N="private-next-root-dir",O="private-next-app-dir",P="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",Q="private-next-rsc-action-validate",R="private-next-rsc-server-reference",S="private-next-rsc-cache-wrapper",T="private-next-rsc-track-dynamic-import",U="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",X="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Y="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",$="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",_="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",aa="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",ab="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ac="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ad="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ae='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',af="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ag=["app","pages","components","lib","src"],ah={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ai=12,aj={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ak={...aj,GROUP:{builtinReact:[aj.reactServerComponents,aj.actionBrowser],serverOnly:[aj.reactServerComponents,aj.actionBrowser,aj.instrument,aj.middleware],neutralTarget:[aj.apiNode,aj.apiEdge],clientOnly:[aj.serverSideRendering,aj.appPagesBrowser],bundled:[aj.reactServerComponents,aj.actionBrowser,aj.serverSideRendering,aj.appPagesBrowser,aj.shared,aj.instrument,aj.middleware],appPages:[aj.reactServerComponents,aj.serverSideRendering,aj.appPagesBrowser,aj.actionBrowser]}},al={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},96664:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(93250);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:`/${c}`}},97010:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ApiError:function(){return t},COOKIE_NAME_PRERENDER_BYPASS:function(){return n},COOKIE_NAME_PRERENDER_DATA:function(){return o},RESPONSE_LIMIT_DEFAULT:function(){return p},SYMBOL_CLEARED_COOKIES:function(){return r},SYMBOL_PREVIEW_DATA:function(){return q},checkIsOnDemandRevalidate:function(){return m},clearPreviewData:function(){return s},redirect:function(){return l},sendError:function(){return u},sendStatusCode:function(){return k},setLazyProp:function(){return v},wrapApiHandler:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(36023),g=c(96100),h=c(12726),i=c(88026);function j(a,b){return(...c)=>((0,h.getTracer)().setRootSpanAttribute("next.route",a),(0,h.getTracer)().trace(i.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function k(a,b){return a.statusCode=b,a}function l(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function m(a,b){if("function"==typeof a.get){let c=f.HeadersAdapter.from(a);return{isOnDemandRevalidate:c.get(g.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}return{isOnDemandRevalidate:a[g.PRERENDER_REVALIDATE_HEADER]===b.previewModeId,revalidateOnlyGenerated:a.hasOwnProperty(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let n="__prerender_bypass",o="__next_preview_data",p=4194304,q=Symbol(o),r=Symbol(n);function s(a,b={}){if(r in a)return a;let{serialize:d}=c(19560),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(n,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,r,{value:!0,enumerable:!1}),a}class t extends Error{constructor(a,b){super(b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.statusCode=a}}function u(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function v({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}},97303:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"};(function(){switch((0,d.arch)()){case"x64":case"arm64":case"ia32":return;default:return(0,d.arch)()}})(),function(){switch((0,d.platform)()){case"darwin":case"win32":case"linux":case"freebsd":return;default:return(0,d.platform)()}}();let f="https://daily-cloudcode-pa.googleapis.com",g="antigravity/ide/2.11.0 darwin/arm64",h={id:"antigravity",priority:30,alias:"ag",uiAlias:"ag",display:{name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",serviceKinds:["llm","image"],transport:{baseUrls:[f],format:"antigravity",headers:{"User-Agent":g},retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:`${f}/v1internal:fetchAvailableModels`,quotaSummaryApiUrls:["https://daily-cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary","https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:retrieveUserQuotaSummary","https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary"],loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.8-flash-high",name:"Gemini 3.8 Flash (High)",upstreamModelId:"gemini-3.8-flash-high(high)"},{id:"gemini-3.8-flash-medium",name:"Gemini 3.8 Flash (Medium)",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.8-flash-low",name:"Gemini 3.8 Flash (Low)",upstreamModelId:"gemini-3.8-flash-low(low)"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.7-flash-high",name:"Gemini 3.7 Flash (High)",upstreamModelId:"gemini-3.7-flash-tiered(high)"},{id:"gemini-3.7-flash-medium",name:"Gemini 3.7 Flash (Medium)",upstreamModelId:"gemini-3.7-flash-tiered(medium)"},{id:"gemini-3.7-flash-low",name:"Gemini 3.7 Flash (Low)",upstreamModelId:"gemini-3.7-flash-tiered(low)"},{id:"gemini-3.6-flash-high",name:"Gemini 3.6 Flash (High)",upstreamModelId:"gemini-3.6-flash-tiered(high)"},{id:"gemini-3.6-flash-medium",name:"Gemini 3.6 Flash (Medium)",upstreamModelId:"gemini-3.6-flash-tiered(medium)"},{id:"gemini-3.6-flash-low",name:"Gemini 3.6 Flash (Low)",upstreamModelId:"gemini-3.6-flash-tiered(low)"},{id:"gemini-3.5-flash-high",name:"Gemini 3.5 Flash (High)"},{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)"},{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium)"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-3-pro-image",name:"Gemini 3 Pro (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"imagen-3.0-generate-002",name:"Imagen 3",kind:"image",imageGen:!0,capabilities:["textToImage"]}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://daily-cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:g,refreshLeadMs:3e5},features:{usage:!0}},i="0.159.0",j={id:"codex",priority:20,alias:"cx",uiAlias:"cx",display:{name:"OpenAI Codex",icon:"code",color:"#3B82F6",website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"},deprecated:!0,deprecationNotice:"RISK_NOTICE",kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,cliVersion:i,headers:{originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${i}`},usage:{url:"https://chatgpt.com/backend-api/wham/usage",resetCreditsUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits",resetCreditsConsumeUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume"}},models:[{id:"gpt-6-astra",name:"GPT 6.0 Astra"},{id:"gpt-6-astra[1m]",name:"GPT 6.0 Astra (extended context)",upstreamModelId:"gpt-6-astra"},{id:"gpt-6-sol",name:"GPT 6.0 Sol"},{id:"gpt-6-sol[1m]",name:"GPT 6.0 Sol (extended context)",upstreamModelId:"gpt-6-sol"},{id:"gpt-6-luna",name:"GPT 6.0 Luna"},{id:"gpt-6-luna[1m]",name:"GPT 6.0 Luna (extended context)",upstreamModelId:"gpt-6-luna"},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol"},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol"},{id:"gpt-5.6-sol[1m]",name:"GPT 5.6 Sol (extended context)",upstreamModelId:"gpt-5.6-sol"},{id:"gpt-5.6-sol-review",name:"GPT 5.6 Sol Review",upstreamModelId:"gpt-5.6-sol",quotaFamily:"review"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra"},{id:"gpt-5.6-terra[1m]",name:"GPT 5.6 Terra (extended context)",upstreamModelId:"gpt-5.6-terra"},{id:"gpt-5.6-terra-review",name:"GPT 5.6 Terra Review",upstreamModelId:"gpt-5.6-terra",quotaFamily:"review"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna"},{id:"gpt-5.6-luna[1m]",name:"GPT 5.6 Luna (extended context)",upstreamModelId:"gpt-5.6-luna"},{id:"gpt-5.6-luna-review",name:"GPT 5.6 Luna Review",upstreamModelId:"gpt-5.6-luna",quotaFamily:"review"},{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.5-review",name:"GPT 5.5 Review",upstreamModelId:"gpt-5.5",quotaFamily:"review"},{id:"gpt-daybreak-blue-latest",name:"GPT Daybreak Blue"},{id:"gpt-reserve",name:"GPT Reserve"},{id:"gpt-image-2.5",name:"GPT Image 2.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-1.5",name:"GPT Image 1.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-sol-image",name:"GPT 5.6 Sol Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-terra-image",name:"GPT 5.6 Terra Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-luna-image",name:"GPT 5.6 Luna Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.5-image",name:"GPT 5.5 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.3-image",name:"GPT 5.3 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:6e5,refresh:{encoding:"form",scope:"openid profile email offline_access"},maxRefreshAgeMs:6912e5,trackRefreshAt:!0},features:{usage:!0}},k={id:"deepseek",priority:110,alias:"deepseek",aliases:["ds"],uiAlias:"ds",display:{name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},category:"apikey",transport:{baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"}},transports:[{format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-flash",name:"DeepSeek V4.1 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],features:{usage:!0,usageApikey:!0}},l={id:"glm",priority:140,alias:"glm",display:{name:"Zai GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys",signupUrl:"https://chat.z.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,oauth:{providerId:"zai",cliInitUrl:"https://zcode.z.ai/api/v1/oauth/cli/init",cliPollUrl:"https://zcode.z.ai/api/v1/oauth/cli/poll",businessLoginUrl:"https://api.z.ai/api/auth/z/login",apiBaseUrl:"https://api.z.ai",planApiKeyName:"zcode-api-key"},transport:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},m="1.0.44",n="https://cli-chat-proxy.grok.com/v1",o="grok-shell",p=`grok-shell/${m} (linux; x86_64)`,q=[{id:"agnes-ai-cn",alias:"agnes-ai-cn",display:{name:"Agnes AI (CN)",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.cn/",notice:{apiKeyUrl:"https://www.agnes-ai.cn/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.agnes-ai.cn/v1/chat/completions",validateUrl:"https://api.agnes-ai.cn/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.agnes-ai.cn/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"agnes-ai",alias:"agnes-ai",display:{name:"Agnes AI",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.com/",notice:{apiKeyUrl:"https://www.agnes-ai.com/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://apihub.agnes-ai.com/v1/chat/completions",validateUrl:"https://apihub.agnes-ai.com/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://apihub.agnes-ai.com/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-2.5-pro-beta",name:"Agnes 2.5 Pro Beta"},{id:"agnes-3.0-flash",name:"Agnes 3.0 Flash"},{id:"agnes-image-2.0-flash",name:"Agnes Image 2.0 Flash",params:["size"],kind:"image"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Coding",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://www.alibabacloud.com/product/coding",notice:{apiKeyUrl:"https://www.alibabacloud.com/product/coding"}},category:"apikey",transport:{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alims-intl",priority:11,alias:"alims-intl",display:{name:"Alibaba Studio",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alitp-intl",priority:11,alias:"alitp-intl",display:{name:"Alibaba Token Plan",icon:"cloud",color:"#FF6A00",textIcon:"ATP",website:"https://www.alibabacloud.com/campaign/ai-landing-page-token",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview"},{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"}]},{id:"amd",priority:20,hasFree:!0,alias:"amd",display:{name:"AMD Token Factory",icon:"developer_board",color:"#ED1C24",textIcon:"AMD",website:"https://developer.amd.com.cn/radeon/tokenfactory",notice:{text:"Free shared endpoints (experimental) — 30 RPM per key, 8 concurrent.",apiKeyUrl:"https://developer.amd.com.cn/radeon/modelapis"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://developer.amd.com.cn/radeon/api/v1/chat/completions",validateUrl:"https://developer.amd.com.cn/radeon/api/v1/models"},models:[{id:"DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"DeepSeek-V4-Flash-Vision-Exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"Qwen3.8-Flash-Next",name:"Qwen3.8 Flash Next"},{id:"MiniCPM5-2B",name:"MiniCPM5 2B"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"anthropic-version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],serviceKinds:["llm","imageToText"]},h,{id:"api-airforce",alias:"af",aliases:["airforce"],uiAlias:"af",display:{name:"API.airforce",icon:"flight",color:"#0EA5E9",textIcon:"AF",website:"https://api.airforce",notice:{apiKeyUrl:"https://api.airforce"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.airforce/v1/chat/completions",validateUrl:"https://api.airforce/v1/models",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"anthropic/claude-3.7-sonnet",name:"Claude 3.7 Sonnet (Free)",contextLength:2e5},{id:"moonshot/kimi-k2.6",name:"Kimi K2.6 (Free)",contextLength:262144},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash (Free)",contextLength:1048576}]},{id:"apinex",alias:"apinex",display:{name:"APInex",icon:"bolt",color:"#C9A227",textIcon:"AX",website:"https://apinex.bond/",notice:{text:"Prepaid USD-credit gateway with gamified rewards (XP/airdrop). free/* models require a DAILY check-in at the airdrop page; paid models bill a prepaid balance (402 otherwise). Third-party reseller — treat as untrusted for sensitive traffic.",apiKeyUrl:"https://apinex.bond/register",inviteCode:"SLEWP68C"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.apinex.bond/v1/chat/completions",validateUrl:"https://api.apinex.bond/v1/models"},serviceKinds:["llm"],hasFree:!0,models:[{id:"claude-fable-5.1",name:"Claude Fable 5.1"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5.5",name:"Claude Sonnet 5.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-luna",name:"GPT-6 Luna"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol"},{id:"grok-4.7",name:"Grok 4.7"},{id:"kimi-k3",name:"Kimi K3"},{id:"free/claude-opus-4.6",name:"Claude Opus 4.6 (Free)"},{id:"free/claude-sonnet-4.6",name:"Claude Sonnet 4.6 (Free)"},{id:"free/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731 (Free)"},{id:"free/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813 (Free)"},{id:"free/deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash (Free)"},{id:"free/gemini-3.1-pro",name:"Gemini 3.1 Pro (Free)"},{id:"free/gemini-3.8-flash",name:"Gemini 3.8 Flash (Free)"},{id:"free/glm-5.3-flash",name:"GLM-5.3 Flash (Free)"},{id:"free/gpt-6-luna",name:"GPT-6 Luna (Free)"},{id:"free/hy4",name:"HY4 (Free)"},{id:"free/kimi-k2.8",name:"Kimi K2.8 (Free)"},{id:"free/kimi-k3",name:"Kimi K3 (Free)"},{id:"free/mimo-v2.6-flash",name:"MiMo V2.6 Flash (Free)"},{id:"free/mimo-v2.6-pro",name:"MiMo V2.6 Pro (Free)"},{id:"free/minimax-m3",name:"MiniMax M3 (Free)"},{id:"free/minimax-m3.1",name:"MiniMax M3.1 (Free)"},{id:"free/muse-spark-1.3",name:"Muse Spark 1.3 (Free)"},{id:"free/qwen-3.8-max",name:"Qwen 3.8 Max (Free)"}]},{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"atria",alias:"atria",aliases:["atria-asi"],uiAlias:"atria",display:{name:"Atria Dawn",icon:"flare",color:"#C2410C",textIcon:"AD",website:"https://atria-asi.ai",notice:{apiKeyUrl:"https://api.atria-asi.ai/console"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.atria-asi.ai/v1/chat/completions",validateUrl:"https://api.atria-asi.ai/v1/models"},models:[{id:"Atria-Dawn-Preview",name:"Atria Dawn Preview"}],passthroughModels:!0},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",headers:{}}},{id:"bai",alias:"bai",aliases:["b.ai","b-ai","bai-llm"],display:{name:"B.AI",icon:"auto_awesome",color:"#3B82F6",textIcon:"B.AI",website:"https://b.ai",notice:{apiKeyUrl:"https://chat.b.ai"}},category:"apikey",transport:{baseUrl:"https://api.b.ai/v1/chat/completions",validateUrl:"https://api.b.ai/v1/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",vision:!0,contextWindow:1e6,maxOutput:384e3},{id:"deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:131072,maxOutput:65536},{id:"deepseek-r1-0528",name:"DeepSeek R1 0528",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-flash",name:"Qwen3.8-Flash",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.8-27b",name:"Qwen3.8-27B",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-max",name:"Qwen3.8-Max",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.7-max",name:"Qwen3.7-Max",contextWindow:1e6,maxOutput:65536,reasoning:!0},{id:"qwen3.6-27b",name:"Qwen3.6-27B",contextWindow:131072,maxOutput:65536},{id:"gpt-5.5",name:"GPT-5.5",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4",name:"GPT-5.4",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5",name:"GPT-5",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5-mini",name:"GPT-5 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5-nano",name:"GPT-5 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.2",name:"GPT-5.2",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"grok-4.6",name:"Grok 4.6",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"grok-4.5",name:"Grok 4.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3-flash",name:"Gemini 3 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"mimo-v2.5",name:"MiMo V2.5",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",contextWindow:131072,maxOutput:16384},{id:"glm-5.3",name:"GLM-5.3",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.2",name:"GLM-5.2",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.1",name:"GLM-5.1",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"minimax-m3",name:"MiniMax M3",contextWindow:1048576,maxOutput:65536},{id:"minimax-m2.7",name:"MiniMax M2.7",contextWindow:1048576,maxOutput:65536},{id:"hy3",name:"Hy3",contextWindow:131072,maxOutput:65536}]},{id:"baidu",alias:"qianfan",aliases:["qianfan","ernie","baidu-qianfan"],uiAlias:"qianfan",category:"apikey",authType:"apikey",authModes:["apikey"],display:{name:"Baidu Qianfan",icon:"search",color:"#2932E1",textIcon:"BD",website:"https://cloud.baidu.com/product/qianfan.html",notice:{apiKeyUrl:"https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application"}},transport:{baseUrl:"https://qianfan.baidubce.com/v2/chat/completions",validateUrl:"https://qianfan.baidubce.com/v2/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextLength:1048576},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextLength:1048576},{id:"glm-5.2",name:"GLM 5.2",contextLength:512e3},{id:"glm-5.1",name:"GLM 5.1",contextLength:198e3},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"qwen3.5-397b-a17b",name:"Qwen 3.5 397B A17B",contextLength:262144},{id:"qwen3.5-27b",name:"Qwen 3.5 27B",contextLength:262144}]},{id:"bazaarlink",alias:"bzl",aliases:["bazaar-link"],uiAlias:"bzl",category:"freeTier",authType:"apikey",authModes:["apikey"],display:{name:"Bazaarlink",icon:"storefront",color:"#DC2626",textIcon:"BZ",website:"https://bazaarlink.ai",notice:{apiKeyUrl:"https://bazaarlink.ai"}},transport:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",validateUrl:"https://bazaarlink.ai/api/v1/models"},models:[{id:"auto:free",name:"Auto Free (Zero Cost)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",contextLength:1e6},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:1e6},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5",name:"GPT-5.5",contextLength:105e4},{id:"gpt-5.4",name:"GPT-5.4",contextLength:105e4},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextLength:4e5},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",contextLength:4e5},{id:"grok-4.3",name:"Grok 4.3",contextLength:1e6},{id:"grok-4.20",name:"Grok 4.20",contextLength:2e6},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",contextLength:1048576},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",contextLength:1048576},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"kimi-k2.5",name:"Kimi K2.5",contextLength:262144},{id:"glm-5.1",name:"GLM 5.1",contextLength:204800},{id:"glm-5",name:"GLM 5",contextLength:204800},{id:"mimo-v2.5-pro",name:"MiMo-V2.5-Pro",contextLength:105e4},{id:"mimo-v2.5",name:"MiMo-V2.5",contextLength:105e4},{id:"minimax-m3",name:"MiniMax M3",contextLength:1048576},{id:"minimax-m2.7",name:"MiniMax M2.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",contextLength:1e6},{id:"nemotron-3-super-120b-a12b",name:"Nemotron 3 Super",contextLength:1e6}]},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"bluesminds",alias:"bm",aliases:["blue-sminds"],uiAlias:"bm",hidden:!0,display:{name:"BluesMinds",icon:"psychology",color:"#2563EB",textIcon:"BM",website:"https://bluesminds.com",notice:{apiKeyUrl:"https://bluesminds.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.bluesminds.com/v1/chat/completions",validateUrl:"https://api.bluesminds.com/v1/models"},models:[{id:"gpt-4.1",name:"GPT-4.1",contextLength:1048576},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",contextLength:1048576},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",contextLength:1048576},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",contextLength:1048576},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash (Exp)",contextLength:1048576},{id:"qwen-turbo",name:"Qwen Turbo",contextLength:1e6},{id:"kimi-k2",name:"Kimi K2",contextLength:262144},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",contextLength:262144},{id:"glm-4.7",name:"GLM 4.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (VIP)",contextLength:2e5},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (VIP)",contextLength:1048576}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.280 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"600"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}},usage:{oauthUrl:"https://api.anthropic.com/api/oauth/usage",orgUrl:"https://api.anthropic.com/v1/organizations/{org_id}/usage",settingsUrl:"https://api.anthropic.com/v1/settings",profileUrl:"https://api.anthropic.com/api/oauth/profile",resetUrl:"https://api.anthropic.com/api/organizations/{org_id}/reset_rate_limits"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5-1",name:"Claude Fable 5.1"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},category:"oauth",transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",forceStream:!0,headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"}},{id:"clinepass",priority:85,alias:"clinepass",uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"cloudflare-ai",priority:60,hasFree:!0,alias:"cloudflare-ai",aliases:["cf"],uiAlias:"cf",display:{name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"}},category:"freeTier",authType:"apikey",authModes:["apikey"],hasProviderSpecificData:!0,transport:{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com",webUrl:"https://www.workbuddy.cn/app"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",quirks:{sanitizeToolSchema:!0},headers:{"User-Agent":"CLI/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:.29,nightFree:{from:23,to:8}},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.3-flashx",name:"GLM-5.3-FlashX",rateMultiplier:.14},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"step-5-preview",name:"Step-5-Preview",rateMultiplier:.43,subPriority:!0},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro",rateMultiplier:.51}],oauth:{baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codebuddy-intl",alias:"cbai",uiAlias:"cbai",hidden:!1,priority:90,display:{name:"CodeBuddy",icon:"smart_toy",color:"#006EFF",website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai",webUrl:"https://www.codebuddy.ai/agents"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.codebuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"IDE/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"IDE","X-IDE-Name":"IDE","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.codebuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:0},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"gpt-6-astra",name:"GPT 6.0 Astra",rateMultiplier:6.67},{id:"gpt-6-luna",name:"GPT-6-Luna"},{id:"gpt-6-sol",name:"GPT-6-Sol"},{id:"gpt-5.6-sol",name:"GPT-5.6-Sol",rateMultiplier:3.47},{id:"gpt-5.6-terra",name:"GPT-5.6-Terra",rateMultiplier:1.39},{id:"gpt-5.6-luna",name:"GPT-5.6-Luna",rateMultiplier:.14},{id:"gpt-5.5",name:"GPT-5.5",rateMultiplier:3.31},{id:"gpt-5.4",name:"GPT-5.4",rateMultiplier:1.65},{id:"gpt-5.3-codex",name:"GPT-5.3-Codex",rateMultiplier:1.25},{id:"gpt-6.1-sol",name:"GPT-6.1-Sol"},{id:"claude-opus-5.5",name:"Claude-Opus-5.5",rateMultiplier:2.17,paidTier:!0},{id:"claude-sonnet-5.5",name:"Claude-Sonnet-5.5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-5",name:"Claude-Opus-5",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-5",name:"Claude-Sonnet-5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-4.8",name:"Claude-Opus-4.8",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.7",name:"Claude-Opus-4.7",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.6",name:"Claude-Opus-4.6",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-4.6",name:"Claude-Sonnet-4.6",rateMultiplier:1.33,paidTier:!0},{id:"gemini-3.8-flash",name:"Gemini-3.8-Flash"},{id:"grok-4.7",name:"Grok-4.7",rateMultiplier:1.9},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"gemini-3.5-flash",name:"Gemini-3.5-Flash",rateMultiplier:.99},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11}],oauth:{baseUrl:"https://www.codebuddy.ai",stateUrl:"https://www.codebuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.codebuddy.ai/v2/plugin/auth/token/refresh",userAgent:"IDE/2.63.2 CodeBuddy/2.63.2",platform:"ide",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},j,{id:"cohere",priority:90,alias:"cohere",display:{name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},category:"apikey",serviceKinds:["llm","rerank"],rerankConfig:{baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v4.0-pro",name:"Rerank v4.0 Pro"},{id:"rerank-v3.5",name:"Rerank v3.5"}]},transport:{baseUrl:"https://api.cohere.ai/v1/chat/completions",validateUrl:"https://api.cohere.ai/v1/models"},models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},{id:"comfyui",priority:120,alias:"comfyui",display:{name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:8188"}},{id:"commandcode",priority:100,alias:"commandcode",aliases:["cmc"],uiAlias:"cmc",display:{name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",features:{usage:!0,usageApikey:!0},usage:{creditsUrl:"https://api.commandcode.ai/alpha/billing/credits",subscriptionsUrl:"https://api.commandcode.ai/alpha/billing/subscriptions"},transport:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek/deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (exp)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"google/gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"meta/muse-spark-1.1",name:"Muse Spark 1.1"},{id:"meta/muse-spark-1.2",name:"Muse Spark 1.2"},{id:"meta/muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor"},{id:"minimax/minimax-m2.7-free",name:"MiniMax M2.7 (Free)"},{id:"minimax/minimax-m3-free",name:"MiniMax M3 (Free)"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.7-Code-Highspeed",name:"Kimi K2.7 Code HighSpeed"},{id:"moonshotai/Kimi-K3",name:"Kimi K3"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"poolside/laguna-s-2.1-free",name:"Laguna S 2.1"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"Qwen/Qwen3.7-Flash",name:"Qwen 3.7 Flash"},{id:"Qwen/Qwen3.7-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B"},{id:"Qwen/Qwen3.8-Flash",name:"Qwen 3.8 Flash"},{id:"Qwen/Qwen3.8-Max",name:"Qwen 3.8 Max"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-paid",name:"Tencent Hy3"},{id:"tencent/hy4-preview",name:"Tencent Hy4 Preview"},{id:"thinkingmachines/inkling",name:"Inkling"},{id:"thinkingmachines/inkling-small",name:"Inkling Small"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xai/grok-4.5",name:"Grok 4.5"},{id:"xai/grok-4.6",name:"Grok 4.6"},{id:"z-ai/glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"zai-org/GLM-5",name:"GLM-5"},{id:"zai-org/GLM-5.1",name:"GLM-5.1"},{id:"zai-org/GLM-5.2",name:"GLM-5.2"},{id:"zai-org/GLM-5.2-Fast",name:"GLM-5.2 Fast"},{id:"zai-org/GLM-5.3",name:"GLM-5.3"}]},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.12.17"},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/agent.v1.AgentService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.12.17",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.deepgram.com/v1/listen"},models:[{id:"nova-3",name:"Nova 3",params:["language"],kind:"stt"},{id:"nova-2",name:"Nova 2",params:["language"],kind:"stt"},{id:"whisper-large",name:"Whisper Large",params:["language"],kind:"stt"},{id:"nova",name:"Nova",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},k,{id:"devin-cli",alias:"dv",aliases:["devin"],uiAlias:"dv",hidden:!0,display:{name:"Devin CLI",icon:"smart_toy",color:"#6366F1",textIcon:"DV",website:"https://devin.ai",notice:{signupUrl:"https://cli.devin.ai",text:"Install: `curl -fsSL https://cli.devin.ai/install.sh | bash` (macOS: `brew install --cask devin-cli`, Windows PowerShell: `irm https://static.devin.ai/cli/setup.ps1 | iex`). Then run `devin auth login`. No API key needed."}},category:"free",authType:"none",noAuth:!0,authModes:["none"],transport:{baseUrl:"devin://acp/stdio",format:"openai"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max",contextLength:2e5},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High",contextLength:2e5},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium",contextLength:2e5},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low",contextLength:2e5},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M",contextLength:1e6},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking",contextLength:2e5},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:2e5},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking",contextLength:2e5},{id:"claude-opus-4.6",name:"Claude Opus 4.6",contextLength:2e5},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh",contextLength:2e5},{id:"gpt-5.5-high",name:"GPT-5.5 High",contextLength:2e5},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium",contextLength:2e5},{id:"gpt-5.5-low",name:"GPT-5.5 Low",contextLength:2e5},{id:"gpt-5.4-high",name:"GPT-5.4 High",contextLength:2e5},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium",contextLength:2e5},{id:"gpt-5.4-low",name:"GPT-5.4 Low",contextLength:2e5},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High",contextLength:2e5},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium",contextLength:2e5},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low",contextLength:2e5},{id:"gpt-5.2-high",name:"GPT-5.2 High",contextLength:2e5},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium",contextLength:2e5},{id:"gpt-5.2-low",name:"GPT-5.2 Low",contextLength:2e5},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",contextLength:1e6},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",contextLength:1e6},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High",contextLength:1e6},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextLength:1e6},{id:"deepseek-v4",name:"DeepSeek V4",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"glm-5.1",name:"GLM-5.1",contextLength:204800}]},{id:"dots",alias:"dots",display:{name:"Dots",icon:"hub",color:"#FF2442",textIcon:"DT",website:"https://dots.ai",notice:{apiKeyUrl:"https://dots.ai/platform/apikeys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://note3-prev-api.askdiandian.com/v1/chat/completions",auth:{combined:!0,header:"api-key",scheme:"raw"}},models:[{id:"dots3-note-prev",name:"Dots3 Note Prev"}]},{id:"drex",alias:"drex",category:"apikey",display:{name:"Drex",icon:"psychology",color:"#131313",textIcon:"DX",website:"https://drex.nace.ai",notice:{apiKeyUrl:"https://drex.nace.ai/invite/tnzgt5vr"}},models:[{id:"drex-v1.0",name:"Drex v1.0",kind:"systemone"},{id:"drex-v1.1",name:"Drex v1.1",kind:"systemone"},{id:"drex-v1.5",name:"Drex v1.5",kind:"systemone"},{id:"drex-latest",name:"Drex Latest",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://drex.nace.ai/v1/systemone"}},{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts","stt"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},sttConfig:{baseUrl:"https://api.elevenlabs.io/v1/speech-to-text",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"scribe_v1",name:"Scribe v1"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run"}},{id:"featherless",priority:65,alias:"featherless",aliases:["fl"],uiAlias:"fl",display:{name:"Featherless",icon:"flutter_dash",color:"#111827",textIcon:"FL",website:"https://featherless.ai",notice:{apiKeyUrl:"https://featherless.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.featherless.ai/v1/chat/completions",validateUrl:"https://api.featherless.ai/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"}]},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{id:"fish-audio",alias:"fish",display:{name:"Fish Audio",icon:"record_voice_over",color:"#1E9BF0",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/app/api-keys/"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fish-audio",models:[{id:"s2.1-pro-free",name:"S2.1 Pro Free"},{id:"s2.1-pro",name:"S2.1 Pro"},{id:"s2-pro",name:"S2 Pro"},{id:"s1",name:"S1"}]}},{id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",cliVersion:"0.34.0",apiClient:"google-genai-sdk/1.41.0 gl-node/v22.19.0",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"],refresh:{encoding:"form"}},features:{usage:!0}},{id:"gemini",priority:50,hasFree:!0,alias:"gemini",display:{name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"}},category:"freeTier",authType:"apikey",authModes:["apikey"],mediaPriority:1,transport:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",kind:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",kind:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",kind:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",kind:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",params:[],kind:"image"},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",params:[],kind:"image"},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",params:[],kind:"image"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-native-audio-preview-09-17",name:"Gemini Live Transcription (Realtime)",params:["language","prompt","system_instruction","setup_timeout_ms","turn_timeout_ms"],kind:"stt",transport:"gemini-live"},{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",messagesUrl:"https://api.githubcopilot.com/v1/messages",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},copilot:{vscodeVersion:"1.110.0",chatVersion:"0.38.0",userAgent:"GitHubCopilotChat/0.38.0",apiVersion:"2025-04-01"},usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},l,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},{id:"grok-cli",priority:275,alias:"gcli",aliases:["grok-build","gb"],uiAlias:"gcli",display:{name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",website:"https://x.ai",notice:{text:"Sign in with your xAI / Grok account via device code. Uses Grok Build subscription credits (cli-chat-proxy.grok.com).",signupUrl:"https://grok.com/supergrok"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,thinkingConfig:{options:["low","medium","high","xhigh"],defaultMode:"high"},transport:{baseUrl:`${n}/responses`,format:"openai-responses",forceStream:!0,modelsUrl:`${n}/models`,userUrl:`${n}/user`,billingUrl:`${n}/billing`,clientVersion:m,clientIdentifier:o,tokenAuth:"xai-grok-cli",headers:{"User-Agent":p,"x-grok-client-identifier":o,"x-grok-client-version":m},usage:{url:`${n}/billing?format=credits`,userUrl:`${n}/user?include=subscription`},retry:{429:{attempts:2,delayMs:2e3},502:{attempts:2,delayMs:1500},503:{attempts:2,delayMs:1500}}},models:[{id:"grok-build",name:"Grok Build",contextLength:5e5,maxOutputTokens:64e3},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.5-high",name:"Grok 4.5 (High)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-medium",name:"Grok 4.5 (Medium)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-low",name:"Grok 4.5 (Low)",upstreamModelId:"grok-4.5"}],features:{usage:!0},oauth:{clientId:"b1a00492-073a-47ea-816f-4c329264a828",deviceCodeUrl:"https://auth.x.ai/oauth2/device/code",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",scope:"openid profile email offline_access grok-cli:access api:access conversations:read conversations:write",referrer:"grok-build",refreshLeadMs:3e5}},{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",transport:{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},models:[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],passthroughModels:!0},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingface",priority:70,hasFree:!0,alias:"huggingface",aliases:["hf"],uiAlias:"hf",display:{name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},{id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"},refreshLeadMs:864e5}},{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding","rerank"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]},rerankConfig:{baseUrl:"https://api.jina.ai/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"jina-reranker-v3.5",name:"Jina Reranker v3.5"},{id:"jina-reranker-v2-base-multilingual",name:"Jina Reranker v2 Multilingual"}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"keenable",alias:"keenable",display:{name:"Keenable",icon:"travel_explore",color:"#FF7E38",textIcon:"KE",website:"https://www.keenable.ai",notice:{apiKeyUrl:"https://app.keenable.ai/console"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.keenable.ai/v1/search",method:"POST",authType:"apikey",authHeader:"x-api-key",searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.keenable.ai/v1/fetch",method:"GET",authType:"apikey",authHeader:"x-api-key",formats:["markdown","text"],maxCharacters:5e4,timeoutMs:15e3}},{id:"kilo-gateway",alias:"kgw",aliases:["kilo-gateway","kilogateway"],uiAlias:"kgw",category:"freeTier",display:{name:"Kilo Gateway",icon:"login",color:"#8B5CF6",textIcon:"KG",website:"https://kilo.ai",notice:{apiKeyUrl:"https://kilo.ai/dashboard?tab=apiKeys"}},authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.kilo.ai/api/gateway/chat/completions",validateUrl:"https://api.kilo.ai/api/gateway/models"},models:[{id:"kilo-auto/free",name:"Kilo Auto Free",contextLength:256e3},{id:"nvidia/nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B (Free)",contextLength:262144},{id:"nvidia/nemotron-3-ultra-550b-a55b:free",name:"Nemotron 3 Ultra 550B (Free)",contextLength:1e6},{id:"kwaipilot/kat-coder-pro-v2.5:free",name:"Kat Coder Pro v2.5 (Free)",contextLength:256e3},{id:"kilo-auto/frontier",name:"Kilo Auto Frontier",contextLength:1e6},{id:"kilo-auto/balanced",name:"Kilo Auto Balanced",contextLength:1e6}]},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"freeTier",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",headers:{"User-Agent":"kimchi/0.1.50"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"minimax-m3",name:"MiniMax-M3"},{id:"kimi-k2.7",name:"Kimi-K2.7"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],serviceKinds:["llm","imageToText"],oauth:{webAppUrl:"https://app.kimchi.dev",validationUrl:"https://api.cast.ai/v1/llm/openai/supported-providers",userInfoUrl:"https://app.kimchi.dev/api/v1/me",modelsUrl:"https://llm.kimchi.dev/v1/models/metadata?include_in_cli=true"},passthroughModels:!0},{id:"kimi",priority:170,alias:"kimi",aliases:["kimi-coding","kmc"],display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",signupUrl:"https://www.kimi.com/code"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k3",name:"Kimi K3"},{id:"k3",name:"Kimi K3 (Code)"},{id:"kimi-for-coding",name:"Kimi for Coding"},{id:"kimi-for-coding-highspeed",name:"Kimi for Coding Highspeed"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k2.7-code-highspeed",name:"Kimi K2.7 Code Highspeed"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k3",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.kimi.ai/docs/pricing/chat"},oauth:{clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5,authorizeDeviceUrl:"https://www.kimi.com/code/authorize_device"},features:{usage:!0,usageApikey:!0}},{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev",usage:{cwHost:"https://codewhisperer.us-east-1.amazonaws.com",qHost:"https://q.us-east-1.amazonaws.com",limitsPath:"/getUsageLimits"}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-opus-5.5-thinking",name:"Claude Opus 5.5 (Thinking)"},{id:"claude-opus-5.5-agentic",name:"Claude Opus 5.5 (Agentic)"},{id:"claude-opus-5.5-thinking-agentic",name:"Claude Opus 5.5 (Thinking + Agentic)"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5-thinking",name:"Claude Opus 5 (Thinking)"},{id:"claude-opus-5-agentic",name:"Claude Opus 5 (Agentic)"},{id:"claude-opus-5-thinking-agentic",name:"Claude Opus 5 (Thinking + Agentic)"},{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-thinking",name:"Claude Opus 4.8 (Thinking)"},{id:"claude-opus-4.8-agentic",name:"Claude Opus 4.8 (Agentic)"},{id:"claude-opus-4.8-thinking-agentic",name:"Claude Opus 4.8 (Thinking + Agentic)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-opus-4.7-thinking",name:"Claude Opus 4.7 (Thinking)"},{id:"claude-opus-4.7-agentic",name:"Claude Opus 4.7 (Agentic)"},{id:"claude-opus-4.7-thinking-agentic",name:"Claude Opus 4.7 (Thinking + Agentic)"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 (Thinking)"},{id:"claude-opus-4.5-agentic",name:"Claude Opus 4.5 (Agentic)"},{id:"claude-opus-4.5-thinking-agentic",name:"Claude Opus 4.5 (Thinking + Agentic)"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking",name:"Claude Sonnet 5 (Thinking)"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)"},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)"},{id:"gpt-5.6-sol-thinking",name:"GPT 5.6 Sol (Thinking)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking",name:"GPT 5.6 Terra (Thinking)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking",name:"GPT 5.6 Luna (Thinking)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)"},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)"},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)"},{id:"gpt-5.6-sol-agentic",name:"GPT 5.6 Sol (Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-agentic",name:"GPT 5.6 Terra (Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-agentic",name:"GPT 5.6 Luna (Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)"},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)"},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)"},{id:"gpt-5.6-sol-thinking-agentic",name:"GPT 5.6 Sol (Thinking + Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking-agentic",name:"GPT 5.6 Terra (Thinking + Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking-agentic",name:"GPT 5.6 Luna (Thinking + Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"llm7",alias:"llm7",aliases:["llm-7"],uiAlias:"llm7",display:{name:"LLM7",icon:"pool",color:"#7C3AED",textIcon:"L7",website:"https://llm7.io",notice:{apiKeyUrl:"https://llm7.io"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.llm7.io/v1/chat/completions",validateUrl:"https://api.llm7.io/v1/models"},models:[{id:"gpt-5.5",name:"GPT-5.5 (LLM7)",contextLength:105e4},{id:"claude-opus-5",name:"Claude Opus 5 (LLM7)",contextLength:1e6},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (LLM7)",contextLength:1e6},{id:"grok-4.5",name:"Grok 4.5 (LLM7)",contextLength:5e5},{id:"kimi-k3",name:"Kimi K3 (LLM7)",contextLength:1e6}],passthroughModels:!0},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"longcat-intl",alias:"longcat-intl",uiAlias:"longcat-intl",display:{name:"LongCat Intl",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.ai",notice:{apiKeyUrl:"https://longcat.ai/platform/product"}},category:"apikey",transport:{baseUrl:"https://api.longcat.ai/openai/v1/chat/completions",validateUrl:"https://api.longcat.ai/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"longcat",alias:"longcat",display:{name:"LongCat",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.chat",notice:{apiKeyUrl:"https://longcat.chat/platform/product?inviteCode=ULW84AMZ"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://api.longcat.chat/openai/v1/chat/completions",validateUrl:"https://api.longcat.chat/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"mimo-desktop",priority:22,alias:"mimo-desktop",aliases:["xmd"],uiAlias:"xmd",display:{name:"MiMo Desktop",icon:"smart_toy",color:"#FF6900",textIcon:"XMD",website:"https://mimo.xiaomimimo.com",notice:{text:"Account-session models. Requires MiMo Desktop to be installed and signed in on this machine — the session cookie is read from it locally and never stored here. No API key is needed for these models.",signupUrl:"https://mimo.xiaomimimo.com/desktop/invite/"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,serviceKinds:["llm"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",rateMultiplier:1,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",rateMultiplier:.4,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed",supportedFormats:["openai"],requiresSession:!0}],features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"mimo-free",hidden:!1,priority:50,hasFree:!0,alias:"mimo-free",uiAlias:"mimo-free",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF",deprecationNotice:"MiMo free API service has ended. This provider is no longer free. It is hidden from the usage topology by default — enable it via the toggle if you still want it shown."},topologyHiddenByDefault:!0,category:"free",noAuth:!0,community:!0,transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}],modelsFetcher:{url:"https://models.dev/api.json",type:"mimo-free"},passthroughModels:!0},{id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},{id:"minimax-code-global",priority:84,alias:"minimax-code-global",aliases:["mmg","mmcode"],uiAlias:"mmg",display:{name:"MiniMax Code (Global)",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.io"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.io/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.io/oauth2/device/code",tokenUrl:"https://account.minimax.io/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash Preview"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax-code",priority:82,alias:"mcode",aliases:["mm","mcode"],uiAlias:"mcode",display:{name:"MiniMax Code",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.cn"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.cn/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.cn/oauth2/device/code",tokenUrl:"https://account.minimax.cn/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash Preview"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"mmf",hidden:!0,priority:200,display:{name:"MMF",icon:"hub",color:"#6366F1",textIcon:"MF"},category:"apikey",transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"morph",alias:"morph",aliases:["morphllm"],uiAlias:"morph",display:{name:"Morph",icon:"change_history",color:"#14B8A6",textIcon:"MP",website:"https://morphllm.com",notice:{apiKeyUrl:"https://morphllm.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.morphllm.com/v1/chat/completions",validateUrl:"https://api.morphllm.com/v1/models"},models:[{id:"morph-v3-large",name:"Morph v3 Large"},{id:"morph-v3-fast",name:"Morph v3 Fast"},{id:"morph-qwen35-397b",name:"Qwen 3.5 397B (Morph)",contextLength:262144},{id:"morph-minimax27-230b",name:"MiniMax M2.7 (Morph)",contextLength:200704},{id:"morph-qwen36-27b",name:"Qwen 3.6 27B (Morph)",contextLength:262144},{id:"morph-dsv4flash",name:"DeepSeek V4 Flash (Morph)",contextLength:1048576}]},{id:"muse",priority:120,alias:"muse",aliases:["muse-ai","meta-model-api","muse-code","muse-subscription"],uiAlias:"muse",display:{name:"Muse (Meta Model API)",icon:"auto_awesome",color:"#0866FF",textIcon:"MU",website:"https://muse.ai",notice:{text:"Sign in with your Meta account (Muse Code subscription) or paste a Model API key from dev.meta.ai. Subscription keys are minted per account; Meta may train on contributor-tier data.",apiKeyUrl:"https://dev.meta.ai",signupUrl:"https://muse.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.meta.ai/v1/chat/completions",validateUrl:"https://api.meta.ai/v1/models",modelsUrl:"https://api.meta.ai/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.meta.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},{format:"openai-responses",baseUrl:"https://api.meta.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}}],models:[{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.1",name:"Muse Spark 1.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],passthroughModels:!0,oauth:{clientId:"1031625952748946",deviceCodeUrl:"https://auth.meta.com/oidc/device/authorization/",tokenUrl:"https://auth.meta.com/oidc/device/token/"}},{id:"nanobanana",priority:80,hasFree:!0,alias:"nanobanana",aliases:["nb"],uiAlias:"nb",display:{name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"}},category:"apikey",transport:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama-search",alias:"ollama-search",display:{name:"Ollama Search",icon:"cloud",color:"#ffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Web search via Ollama Cloud subscription. Reuses the API key from the Ollama (chat) provider.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch"],credentialFallback:"ollama",searchConfig:{baseUrl:"https://ollama.com/api/web_search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"ollama",priority:30,hasFree:!0,alias:"ollama",display:{name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.5-pro",name:"GPT-5.5 Pro"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",kind:"embedding"},{id:"tts-1",name:"TTS-1",kind:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"whisper-1",name:"Whisper 1",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-image-2.5",name:"GPT Image 2.5",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax, DeepSeek, Grok, GPT and more.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-luna",name:"GPT 6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"longcat-2.0",name:"LongCat 2.0",supportedFormats:["openai"]},{id:"longcat-2.5-preview-free",name:"LongCat 2.5 Preview (Free)",supportedFormats:["openai"]},{id:"space-bunny-free",name:"Space Bunny (Free)",supportedFormats:["openai","claude"]},{id:"space-bunny",name:"Space Bunny",supportedFormats:["openai","claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-flash",name:"DeepSeek V4.1 Flash (alias id)",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",supportedFormats:["openai","claude","openai-responses"]},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",supportedFormats:["openai"]},{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",supportedFormats:["openai"]},{id:"mimo-v2.5",name:"MiMo V2.5",supportedFormats:["openai"]},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",supportedFormats:["openai"]},{id:"mimo-v2-pro",name:"MiMo V2 Pro",supportedFormats:["openai"]},{id:"mimo-v2-omni",name:"MiMo V2 Omni",supportedFormats:["openai"]},{id:"hy4-preview",name:"Hy4 Preview",supportedFormats:["openai"]},{id:"hy3",name:"Hy3",supportedFormats:["openai"]},{id:"hy3-preview",name:"Hy3 Preview",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai","claude"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["openai","claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["openai","claude"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"omen-alpha",name:"Omen Alpha"}]},{id:"opencode-zen",priority:205,alias:"ocz",aliases:["opencode-zen"],uiAlias:"ocz",display:{name:"OpenCode Zen",icon:"terminal",color:"#E87040",textIcon:"OZ",website:"https://opencode.ai/auth",notice:{text:"OpenCode Zen PAYG: pay-as-you-go, key from https://opencode.ai/auth. Same models as Zen: paid + free tiers on the fast lane.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{baseUrl:"https://opencode.ai/zen/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/v1/usage"}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"claude-fable-5",name:"Claude Fable 5",supportedFormats:["claude"]},{id:"claude-fable-5-1",name:"Claude Fable 5.1",supportedFormats:["claude"]},{id:"claude-opus-5-5",name:"Claude Opus 5.5",supportedFormats:["claude"]},{id:"claude-opus-5",name:"Claude Opus 5",supportedFormats:["claude"]},{id:"claude-opus-4-8",name:"Claude Opus 4.8",supportedFormats:["claude"]},{id:"claude-opus-4-7",name:"Claude Opus 4.7",supportedFormats:["claude"]},{id:"claude-opus-4-6",name:"Claude Opus 4.6",supportedFormats:["claude"]},{id:"claude-opus-4-5",name:"Claude Opus 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",supportedFormats:["claude"]},{id:"claude-sonnet-5",name:"Claude Sonnet 5",supportedFormats:["claude"]},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",supportedFormats:["claude"]},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-4",name:"Claude Sonnet 4",supportedFormats:["claude"]},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",supportedFormats:["claude"]},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",supportedFormats:["claude"]},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",supportedFormats:["openai"]},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",supportedFormats:["openai"]},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",supportedFormats:["openai"]},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",supportedFormats:["openai"]},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",supportedFormats:["openai"]},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",supportedFormats:["openai"]},{id:"gemini-3-flash",name:"Gemini 3 Flash",supportedFormats:["openai"]},{id:"gpt-6-astra",name:"GPT 6 Astra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-sol",name:"GPT 6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5",name:"GPT 5.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5-pro",name:"GPT 5.5 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4",name:"GPT 5.4",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-pro",name:"GPT 5.4 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-nano",name:"GPT 5.4 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2",name:"GPT 5.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1",name:"GPT 5.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5",name:"GPT 5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-codex",name:"GPT 5 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-nano",name:"GPT 5 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-build-0.1",name:"Grok Build 0.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision Exp",supportedFormats:["openai"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"big-pickle",name:"Big Pickle",supportedFormats:["openai"]},{id:"mistral-large-4",name:"Mistral Large 4",supportedFormats:["openai"]},{id:"union-alpha",name:"Union Alpha",supportedFormats:["claude"]},{id:"deepseek-v4-flash-free",name:"DeepSeek V4 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.5-free",name:"MiMo V2.5 Free",supportedFormats:["openai"]},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free",supportedFormats:["openai"]},{id:"ling-3.1-flash-free",name:"Ling 3.1 Flash Free",supportedFormats:["openai"]},{id:"fledge-alpha-free",name:"Fledge Alpha Free",supportedFormats:["openai"]},{id:"exo-free",name:"Exo Free",supportedFormats:["openai"]},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free",supportedFormats:["openai"]},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free",supportedFormats:["openai"]},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"opencode",priority:40,hasFree:!0,alias:"oc",uiAlias:"oc",display:{name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC"},category:"free",noAuth:!0,community:!0,topologyHiddenByDefault:!1,transport:{baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"cli"},noAuth:!0,forceStream:!0,reasoningInject:{scope:"all"},quirks:{forceAutoToolChoiceModels:["muse-spark-1.3-contributor-free"]}},models:[{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses"},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses"},{id:"big-pickle",name:"Big Pickle"},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free"},{id:"mimo-v2.5-free",name:"MiMo-V2.5 Free"},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free"},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free"},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free"},{id:"jev-1.13-free",name:"Jev 1.13 Free",kind:"systemone"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://opencode.ai/zen/v1/systemone",headers:{"x-opencode-client":"cli","User-Agent":"opencode/1.18.35"}},modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0},{id:"openrouter",priority:10,hasFree:!0,alias:"openrouter",display:{name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After 0 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"},{id:"typesafe/jev-1.13",name:"Jev 1.13 (via OpenRouter)",kind:"systemone"}],serviceKinds:["llm","embedding","tts","imageToText","systemone"],systemoneConfig:{baseUrl:"https://openrouter.ai/api/v1/systemone",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},ttsConfig:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},imageConfig:{baseUrl:"https://openrouter.ai/api/v1/images/generations",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-agent",priority:181,alias:"perplexity-agent",aliases:["pplx-agent","pplx-responses","pa"],uiAlias:"pa",display:{name:"Perplexity Agent",icon:"travel_explore",color:"#20808D",textIcon:"PA",website:"https://www.perplexity.ai",notice:{text:"Perplexity Agent API exposes GPT, Claude, Gemini, Grok, GLM, Kimi, and Sonar models through one OpenAI-compatible Responses API.",apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/v1/responses",validateUrl:"https://api.perplexity.ai/v1/models",format:"openai-responses"},models:[{id:"perplexity/sonar",name:"Perplexity Sonar"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4-8",name:"Claude Opus 4.8"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"xai/grok-4.20-reasoning",name:"Grok 4.20 Reasoning"},{id:"perplexity/glm-5.2",name:"GLM 5.2"},{id:"perplexity/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"perplexity/sonar",endpoint:"https://api.perplexity.ai/v1/responses",pricingUrl:"https://docs.perplexity.ai/docs/agent-api/models"},modelsFetcher:{url:"https://api.perplexity.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"poolside",priority:60,alias:"poolside",aliases:["ps"],uiAlias:"ps",display:{name:"Poolside",icon:"water_drop",color:"#0EA5E9",textIcon:"PS",website:"https://poolside.ai",notice:{apiKeyUrl:"https://platform.poolside.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://inference.poolside.ai/v1/chat/completions",validateUrl:"https://inference.poolside.ai/v1/models"},models:[{id:"poolside/laguna-s-2.1",name:"Laguna S 2.1"},{id:"poolside/laguna-xs-2.1",name:"Laguna XS 2.1"}]},{id:"qoder-cn",priority:31,alias:"qdc",uiAlias:"qdc",display:{name:"Qoder CN",icon:"water_drop",color:"#F43F5E",website:"https://qoder.cn",notice:{signupUrl:"https://qoder.cn"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) 来自 https://qoder.cn/account/integrations",modelsJsonUrl:"https://api.github.com/repos/techysy/10router/contents/providers/qoder-cn.json",fallbackModelsJsonUrl:"https://gitee.com/techysy/10router/raw/main/providers/qoder-cn.json",transport:{baseUrl:"https://gateway.qoder.com.cn/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.com.cn/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"q37fmodel",name:"Qwen3.7-Flash"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"gm51model",name:"GLM-5.2"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4-Flash"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.com.cn",centerBaseUrl:"https://gateway.qoder.com.cn",chatBaseUrl:"https://gateway.qoder.com.cn",deviceTokenUrl:"https://openapi.qoder.com.cn/api/v1/deviceToken/poll",refreshUrl:"https://gateway.qoder.com.cn/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.com.cn/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.com.cn/api/v2/quota/usage",loginUrl:"https://qoder.cn/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) từ https://qoder.com/account/integrations",transport:{baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"ultimate",name:"Ultimate"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4-Flash"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.sh",centerBaseUrl:"https://center.qoder.sh",chatBaseUrl:"https://api3.qoder.sh",deviceTokenUrl:"https://openapi.qoder.sh/api/v1/deviceToken/poll",refreshUrl:"https://center.qoder.sh/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.sh/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.sh/api/v2/quota/usage",loginUrl:"https://qoder.com/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"recraft",priority:70,alias:"recraft",display:{name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"recraftv3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"recraftv2",name:"Recraft V2",params:["n","size","style"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{id:"river",priority:68,alias:"river",aliases:["rv"],display:{name:"River AI",icon:"bolt",color:"#2563EB",textIcon:"RV",website:"https://river.ai",notice:{apiKeyUrl:"https://console.river.ai/keys"}},category:"apikey",transport:{baseUrl:"https://api.river.ai/v1/chat/completions",validateUrl:"https://api.river.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://api.river.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"responses",baseUrl:"https://api.river.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1048576,maxOutput:384e3},{id:"zai-org/GLM-5.3-Flash",name:"GLM 5.3 Flash",contextWindow:1048576,maxOutput:131072}],features:{usage:!0,usageApikey:!0}},{id:"runwayml",priority:80,alias:"runwayml",aliases:["runway"],uiAlias:"runway",display:{name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"gen4_image",name:"Gen-4 Image",params:["size"],kind:"image"},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",params:["size"],kind:"image"},{id:"gen4_turbo",name:"Gen-4 Turbo",params:[],kind:"video"},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",params:[],kind:"video"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1"}},{id:"sambanova",alias:"samba",aliases:["sambanova-ai"],uiAlias:"samba",hidden:!0,display:{name:"SambaNova",icon:"memory",color:"#F97316",textIcon:"SN",website:"https://sambanova.ai",notice:{apiKeyUrl:"https://cloud.sambanova.ai/apis"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",validateUrl:"https://api.sambanova.ai/v1/models"},models:[{id:"MiniMax-M2.7",name:"MiniMax M2.7",contextLength:196608}]},{id:"sdwebui",priority:110,alias:"sdwebui",display:{name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:c(41534).Ps,method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},{id:"selfhosted-embedding",priority:50,hasFree:!0,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"cloud",color:"#ffffffff",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the OpenAI base URL, e.g. http://host:8080/v1 — /embeddings is appended. The API key is not checked by local servers; any value works."}},models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"http://localhost:8080/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"selfhosted-stt",priority:50,hasFree:!0,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"cloud",color:"#ffffffff",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the full transcriptions URL, e.g. http://host:8080/v1/audio/transcriptions. The API key is not checked by local servers; any value works."}},models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"http://localhost:8080/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,hasFree:!0,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"cloud",color:"#ffffffff",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the server root, e.g. http://host:8080 — /v1/audio/speech is appended. The API key is not checked by local servers; any value works."}},models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{baseUrl:"http://localhost:8880",defaultModel:"kokoro",authType:"apikey",format:"openai-speech"}},{id:"sensenova",alias:"sensenova",display:{name:"SenseNova",icon:"blur_on",color:"#1177E4",textIcon:"SN",website:"https://www.sensenova.cn",notice:{apiKeyUrl:"https://platform.sensenova.cn/console/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://token.sensenova.cn/v1/chat/completions",validateUrl:"https://token.sensenova.cn/v1/models"},models:[{id:"sensenova-6.8-flash-lite",name:"SenseNova 6.8 Flash Lite"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"sensenova-u1.5-lite",name:"SenseNova U1.5 Lite",kind:"image",capabilities:["text2img"]},{id:"sensenova-u1-fast",name:"SenseNova U1 Fast",kind:"image",capabilities:["text2img"]}]},{id:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow-cn",priority:115,alias:"siliconflow-cn",aliases:["sfcn"],uiAlias:"sfcn",display:{name:"SiliconFlow CN",icon:"bolt",color:"#1FA34A",textIcon:"SF",website:"https://siliconflow.cn",notice:{apiKeyUrl:"https://cloud.siliconflow.cn/account/asicKey"}},category:"apikey",authType:"apikey",serviceKinds:["llm","image","video","embedding","rerank"],imageConfig:{baseUrl:"https://api.siliconflow.cn/v1/images/generations"},videoConfig:{baseUrl:"https://api.siliconflow.cn/v1/videos/generations"},embeddingConfig:{baseUrl:"https://api.siliconflow.cn/v1/embeddings"},rerankConfig:{baseUrl:"https://api.siliconflow.cn/v1/rerank"},transport:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",validateUrl:"https://api.siliconflow.cn/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"Kwai-Kolors/Kolors",name:"Kolors",params:["size"],kind:"image"},{id:"zai-org/Z-Image-Turbo",name:"Z-Image Turbo",params:["size"],kind:"image"},{id:"Qwen/Qwen-Image",name:"Qwen Image",params:["size"],kind:"image"},{id:"Wan-AI/Wan2.2-T2V-A14B",name:"Wan2.2 T2V",params:["size"],kind:"video"},{id:"Wan-AI/Wan2.2-I2V-A14B",name:"Wan2.2 I2V",params:["size"],kind:"video"},{id:"BAAI/bge-reranker-v2-m3",name:"BGE Reranker v2 M3",kind:"rerank"},{id:"BAAI/bge-reranker-v2-gemma",name:"BGE Reranker v2 Gemma",kind:"rerank"}],features:{usage:!0,usageApikey:!0}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"stepfun-cn",priority:65,alias:"step-cn",aliases:["stepfun-cn","sf-cn"],display:{name:"StepFun CN",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/v1/chat/completions",validateUrl:"https://api.stepfun.com/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"stepfun-plan-cn",priority:64,alias:"stepp-cn",aliases:["step-plan-cn","sfp-cn","sfpcn","stepfun-plan-cn"],display:{name:"StepFun CN Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.com/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.com/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun-plan",priority:66,alias:"stepp",aliases:["step-plan","sfp","stepfun-plan"],display:{name:"StepFun Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.ai/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.ai/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun",priority:67,alias:"step",aliases:["stepfun","sf"],display:{name:"StepFun",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/v1/chat/completions",validateUrl:"https://api.stepfun.ai/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"tencent",alias:"hunyuan",aliases:["hunyuan","tencent-hunyuan"],uiAlias:"hunyuan",display:{name:"Tencent Hunyuan",icon:"cloud",color:"#0052D9",textIcon:"HY",website:"https://cloud.tencent.com/product/hunyuan",notice:{apiKeyUrl:"https://console.cloud.tencent.com/hunyuan/api-key"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.hunyuan.cloud.tencent.com/v1/chat/completions",validateUrl:"https://api.hunyuan.cloud.tencent.com/v1/models"},models:[{id:"hunyuan-turbos-latest",name:"Hunyuan TurboS Latest",contextLength:2e5},{id:"hunyuan-t1-latest",name:"Hunyuan T1 Latest",contextLength:256e3}]},{id:"tinyfish",alias:"tinyfish",display:{name:"TinyFish",icon:"travel_explore",color:"#D74B28",textIcon:"TF",website:"https://tinyfish.ai",notice:{apiKeyUrl:"https://agent.tinyfish.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.search.tinyfish.ai",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.fetch.tinyfish.ai",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,formats:["markdown","text","html"],maxCharacters:1e5,timeoutMs:3e4}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"tokenbom",alias:"tokenbom",display:{name:"TokenBom",icon:"bolt",color:"#6366F1",textIcon:"TB",website:"https://tokenbom.com",notice:{apiKeyUrl:"https://tokenbom.com/login?mode=register&invite=SS-CB5D0A43"}},category:"apikey",transport:{baseUrl:"https://tokenbom.com/v1/chat/completions",validateUrl:"https://tokenbom.com/v1/models"},models:[{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-4.8-opus",name:"Claude Opus 4.8"},{id:"claude-4.7-opus",name:"Claude Opus 4.7"},{id:"claude-4.6-opus",name:"Claude Opus 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"kimi-k3",name:"Kimi K3"},{id:"qwen3.8-flash",name:"Qwen3.8-Flash"}]},{id:"tokenharbor",alias:"tokenharbor",aliases:["th","thh"],uiAlias:"tokenharbor",display:{name:"Token Harbor",icon:"anchor",color:"#0F766E",textIcon:"TH",website:"https://tokenharbor.ai",notice:{apiKeyUrl:"https://tokenharbor.ai/dashboard"}},category:"apikey",authType:"apikey",priority:45,transport:{baseUrl:"https://tokenharbor.ai/v1/chat/completions",validateUrl:"https://tokenharbor.ai/v1/models",retry:{429:2}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-5.5:free",name:"Claude Haiku 5.5 (Free)"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-sol",name:"GPT-6 Sol"},{id:"deepseek-v4.1-flash:free",name:"DeepSeek V4.1 Flash (Free)"},{id:"qwen3.8-flash:free",name:"Qwen3.8 Flash (Free)"},{id:"mimo-v2.6-flash:free",name:"MiMo V2.6 Flash (Free)"},{id:"grok-4.7",name:"Grok 4.7"}],modelsFetcher:{url:"https://tokenharbor.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"tokenrouter",alias:"tokenrouter",aliases:[],uiAlias:"tokenrouter",display:{name:"TokenRouter",icon:"hub",color:"#0EA5E9",textIcon:"TR",website:"https://www.tokenrouter.com",notice:{text:"OpenAI-compatible gateway. 300+ models (OpenAI, Claude, Gemini, Qwen, DeepSeek, Kimi, GLM, dsb).",apiKeyUrl:"https://www.tokenrouter.com"}},category:"apikey",thinkingConfig:{options:["low","medium","high","xhigh","max"],defaultMode:"high"},transport:{baseUrl:"https://api.tokenrouter.com/v1/chat/completions",validateUrl:"https://api.tokenrouter.com/v1/models",thinkingFormat:"tokenrouter"},models:[{id:"MiniMax-Hailuo-2.3",name:"Minimax Hailuo 2.3",kind:"video"},{id:"MiniMax-M3",name:"Minimax M3"},{id:"anthropic/claude-fable-5",name:"Claude Fable 5"},{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-opus-4.7-fast",name:"Claude Opus 4.7 Fast"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8"},{id:"anthropic/claude-opus-4.8-fast",name:"Claude Opus 4.8 Fast"},{id:"anthropic/claude-opus-5",name:"Claude Opus 5"},{id:"anthropic/claude-opus-5-fast",name:"Claude Opus 5 Fast"},{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4"},{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5"},{id:"bytedance-seed/seedream-4.5",name:"Seedream 4.5",kind:"image"},{id:"bytedance-seed/seedream-5.0-lite",name:"Seedream 5.0 Lite",kind:"image"},{id:"bytedance-seed/seedream-5.0-pro",name:"Seedream 5.0 Pro",kind:"image"},{id:"claude-haiku-4-5",name:"Claude Haiku 4 5"},{id:"claude-opus-4-8-m-aws",name:"Claude Opus 4 8 M Aws"},{id:"deepseek/deepseek-v3.2",name:"Deepseek V3.2"},{id:"deepseek/deepseek-v4-flash",name:"Deepseek V4 Flash"},{id:"deepseek/deepseek-v4-flash-0731",name:"Deepseek V4 Flash 0731"},{id:"deepseek/deepseek-v4-pro",name:"Deepseek V4 Pro"},{id:"ex/gpt-5.4",name:"Gpt 5.4"},{id:"google/gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image"},{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"google/gemini-3-pro-image-preview",name:"Gemini 3 Pro Image Preview"},{id:"google/gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"},{id:"google/gemini-3.1-flash-lite-image",name:"Gemini 3.1 Flash Lite Image"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-embedding-2",name:"Gemini Embedding 2"},{id:"google/gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B It"},{id:"happyhorse-1.0-t2v",name:"Happyhorse 1.0 T2V",kind:"video"},{id:"kling-3.0-turbo",name:"Kling 3.0 Turbo",kind:"video"},{id:"kling-v2-6",name:"Kling V2 6",kind:"video"},{id:"kling-v3",name:"Kling V3",kind:"video"},{id:"kling-v3-omni",name:"Kling V3 Omni",kind:"video"},{id:"microsoft/mai-image-2.5",name:"Mai Image 2.5"},{id:"minimax/minimax-m2-her",name:"Minimax M2 Her"},{id:"minimax/minimax-m2.1",name:"Minimax M2.1"},{id:"minimax/minimax-m2.1-highspeed",name:"Minimax M2.1 Highspeed"},{id:"minimax/minimax-m2.5",name:"Minimax M2.5"},{id:"minimax/minimax-m2.7",name:"Minimax M2.7"},{id:"minimax/minimax-m2.7-highspeed",name:"Minimax M2.7 Highspeed"},{id:"miromind/mirothinker-1-7-deepresearch",name:"Mirothinker 1 7 Deepresearch"},{id:"miromind/mirothinker-1-7-deepresearch-mini",name:"Mirothinker 1 7 Deepresearch Mini"},{id:"mistralai/devstral-2512",name:"Devstral 2512"},{id:"mistralai/mistral-medium-3-5",name:"Mistral Medium 3 5"},{id:"mistralai/mistral-small-2603",name:"Mistral Small 2603"},{id:"mistralai/voxtral-small-24b-2507",name:"Voxtral Small 24B 2507"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"moonshotai/kimi-k3",name:"Kimi K3"},{id:"moonshotai/kimi-k3-free",name:"Kimi K3 Free"},{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",name:"Nemotron 3 Nano Omni 30B A3B Reasoning:Free"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B A12B"},{id:"openai/gpt-4o-mini",name:"Gpt 4O Mini"},{id:"openai/gpt-5",name:"Gpt 5"},{id:"openai/gpt-5-image",name:"Gpt 5 Image"},{id:"openai/gpt-5-image-mini",name:"Gpt 5 Image Mini"},{id:"openai/gpt-5-mini",name:"Gpt 5 Mini"},{id:"openai/gpt-5.2",name:"Gpt 5.2"},{id:"openai/gpt-5.4",name:"Gpt 5.4"},{id:"openai/gpt-5.4-image-2",name:"Gpt 5.4 Image 2",kind:"image"},{id:"openai/gpt-5.4-mini",name:"Gpt 5.4 Mini"},{id:"openai/gpt-5.4-nano",name:"Gpt 5.4 Nano"},{id:"openai/gpt-5.4-pro",name:"Gpt 5.4 Pro"},{id:"openai/gpt-5.5",name:"Gpt 5.5"},{id:"openai/gpt-5.5-pro",name:"Gpt 5.5 Pro"},{id:"openai/gpt-5.6-luna",name:"Gpt 5.6 Luna"},{id:"openai/gpt-5.6-sol",name:"Gpt 5.6 Sol"},{id:"openai/gpt-5.6-terra",name:"Gpt 5.6 Terra"},{id:"openai/gpt-audio",name:"Gpt Audio",kind:"audio"},{id:"openai/gpt-audio-mini",name:"Gpt Audio Mini",kind:"audio"},{id:"openai/gpt-oss-120b",name:"Gpt Oss 120B"},{id:"qwen/qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen/qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen/qwen3.5-35b-a3b",name:"Qwen3.5 35B A3B"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen/qwen3.5-9b",name:"Qwen3.5 9B"},{id:"qwen/qwen3.5-flash",name:"Qwen3.5 Flash"},{id:"qwen/qwen3.5-plus-02-15",name:"Qwen3.5 Plus 02 15"},{id:"qwen/qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen/qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen/qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen/qwen3.8-max",name:"Qwen3.8 Max"},{id:"qwen3.5-omni-plus",name:"Qwen3.5 Omni Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"seed-2-0-code-preview-260328",name:"Seed 2 0 Code Preview 260328"},{id:"seed-2-0-lite-260428",name:"Seed 2 0 Lite 260428"},{id:"seed-2-0-mini-260428",name:"Seed 2 0 Mini 260428"},{id:"seed-2-0-pro-260328",name:"Seed 2 0 Pro 260328"},{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-preview",name:"Hy3 Preview"},{id:"x-ai/grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"x-ai/grok-4.20-beta",name:"Grok 4.20 Beta"},{id:"x-ai/grok-4.3",name:"Grok 4.3"},{id:"x-ai/grok-4.5",name:"Grok 4.5"},{id:"x-ai/grok-build-0.1",name:"Grok Build 0.1"},{id:"xiaomi/mimo-v2-flash",name:"Mimo V2 Flash"},{id:"xiaomi/mimo-v2-omni",name:"Mimo V2 Omni"},{id:"xiaomi/mimo-v2-pro",name:"Mimo V2 Pro"},{id:"xiaomi/mimo-v2.5",name:"Mimo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"Mimo V2.5 Pro"},{id:"z-ai/glm-4.5-air",name:"Glm 4.5 Air"},{id:"z-ai/glm-4.6",name:"Glm 4.6"},{id:"z-ai/glm-4.6v",name:"Glm 4.6V"},{id:"z-ai/glm-4.7",name:"Glm 4.7"},{id:"z-ai/glm-5",name:"Glm 5"},{id:"z-ai/glm-5-turbo",name:"Glm 5 Turbo"},{id:"z-ai/glm-5.1",name:"Glm 5.1"},{id:"z-ai/glm-5.2",name:"Glm 5.2"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.tokenrouter.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.tokenrouter.com/v1/images/generations"},modelsFetcher:{url:"https://api.tokenrouter.com/v1/models",type:"openai"},passthroughModels:!0},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"trae-free",priority:58,alias:"trae-free",uiAlias:"trae-free",display:{name:"Trae Free",icon:"bolt",color:"#FF6A00",textIcon:"TF",website:"https://www.trae.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/trae/v1/messages",format:"claude",noAuth:!0},models:[{id:"Doubao-Seed-Code",name:"Doubao Seed Code"},{id:"Doubao-Seed-2.1-Pro",name:"Doubao Seed 2.1-Pro"},{id:"Doubao-Seed-2.1-Turbo",name:"Doubao Seed 2.1-Turbo"},{id:"Doubao-Seed-Evolving",name:"Doubao Seed Evolving"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1-Flash"},{id:"DeepSeek-V4-Flash-Official",name:"DeepSeek V4-Flash Official"},{id:"DeepSeek-V4-Pro-Official",name:"DeepSeek V4-Pro Official"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3-Flash"},{id:"glm-5.3-flashx",name:"GLM 5.3-FlashX"},{id:"mimo-v2.6-flash",name:"MiMo V2.6-Flash"},{id:"mimo-v2.6-pro",name:"MiMo V2.6-Pro"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.7-code",name:"Kimi K2.7-Code"},{id:"kimi-k3",name:"Kimi K3"},{id:"minimax-m3",name:"MiniMax M3"},{id:"qwen-3.7-plus",name:"Qwen 3.7-Plus"},{id:"qwen3.8-max",name:"Qwen 3.8-Max"},{id:"step-5-preview",name:"Step 5-Preview"}]},{id:"trae",alias:"tr",uiAlias:"tr",aliases:["marscode"],category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth"],display:{name:"Trae",icon:"bolt",color:"#FF6A00",textIcon:"TR",website:"https://www.trae.ai",notice:{signupUrl:"https://www.trae.ai"}},transport:{baseUrl:"https://core-normal.trae.ai/api/remote/v1",format:"openai",headers:{"X-Trae-Client-Type":"web","X-Preferenced-Language":"en",Referer:"https://solo.trae.ai/"},auth:{combined:!0,header:"Authorization",scheme:"Cloud-IDE-JWT"},usage:{url:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo"},regions:{cn:"https://api.marscode.com",sg:"https://api.trae.ai",us:"https://www.trae.ai"},defaultRegion:"cn"},oauth:{clientId:"ono9krqynydwx5",clientSecret:"-",platform:"trae",pollInterval:1500,loginGuidanceUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance",tokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",exchangeTokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",refreshUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",userInfoUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo",refresh:{encoding:"json"}},models:[{id:"auto",name:"Auto (Server Picks)"},{id:"work",name:"Work (Fast)"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3-flash-solo",name:"Gemini 3 Flash"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.2",name:"GPT 5.2"}],features:{usage:!0}},{id:"v1m",priority:45,alias:"v1m",aliases:["systemone","jev"],uiAlias:"v1m",display:{name:"v1m (System One)",icon:"psychology",color:"#6366F1",textIcon:"V1",website:"https://v1m.ir",notice:{text:"v1m System One calibrated decision engine. Fast probabilistic evaluations over state and questions.",apiKeyUrl:"https://v1m.ir"}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,models:[{id:"rev-latest",name:"v1m Rev Latest (Calibrated)",kind:"systemone"},{id:"v1m-decision-engine",name:"v1m Decision Engine",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://v1m.ir/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"venice",priority:115,alias:"venice",aliases:["vn"],uiAlias:"venice",display:{name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"}},category:"apikey",transport:{baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",aliases:["voyage"],uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"windsurf",alias:"ws",uiAlias:"ws",display:{name:"Windsurf",icon:"surfing",color:"#14B8A6",website:"https://windsurf.com",notice:{signupUrl:"https://windsurf.com"}},category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth","apikey"],transport:{baseUrl:"https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",format:"openai",headers:{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto","X-Grpc-Web":"1"},auth:{combined:!0,header:"Authorization",scheme:"Bearer"}},oauth:{clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",firebaseSignInUrl:"https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword",registerUrl:"https://register.windsurf.com/exa.seat_management_pb.SeatManagementService/RegisterUser",apiServerUrl:"https://server.codeium.com",auth1ApiServerUrl:"https://server.self-serve.windsurf.com",platform:"windsurf",quotaUrl:"https://windsurf.com/_backend/exa.seat_management_pb.SeatManagementService/GetPlanStatus"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max"},{id:"claude-opus-4.7-xhigh",name:"Claude Opus 4.7 XHigh"},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High"},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium"},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low"},{id:"claude-opus-4.7-review",name:"Claude Opus 4.7 Review"},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M"},{id:"claude-sonnet-4.6-1m",name:"Claude Sonnet 4.6 1M"},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 Thinking"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"gpt-5.5-xhigh-fast",name:"GPT-5.5 XHigh Fast"},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh"},{id:"gpt-5.5-high-fast",name:"GPT-5.5 High Fast"},{id:"gpt-5.5-high",name:"GPT-5.5 High"},{id:"gpt-5.5-medium-fast",name:"GPT-5.5 Medium Fast"},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium"},{id:"gpt-5.5-low-fast",name:"GPT-5.5 Low Fast"},{id:"gpt-5.5-low",name:"GPT-5.5 Low"},{id:"gpt-5.5-none-fast",name:"GPT-5.5 None Fast"},{id:"gpt-5.5-none",name:"GPT-5.5 None"},{id:"gpt-5.4-xhigh-fast",name:"GPT-5.4 XHigh Fast"},{id:"gpt-5.4-xhigh",name:"GPT-5.4 XHigh"},{id:"gpt-5.4-high-fast",name:"GPT-5.4 High Fast"},{id:"gpt-5.4-high",name:"GPT-5.4 High"},{id:"gpt-5.4-medium-fast",name:"GPT-5.4 Medium Fast"},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium"},{id:"gpt-5.4-low-fast",name:"GPT-5.4 Low Fast"},{id:"gpt-5.4-low",name:"GPT-5.4 Low"},{id:"gpt-5.4-none-fast",name:"GPT-5.4 None Fast"},{id:"gpt-5.4-none",name:"GPT-5.4 None"},{id:"gpt-5.4-mini-xhigh",name:"GPT-5.4 Mini XHigh"},{id:"gpt-5.4-mini-high",name:"GPT-5.4 Mini High"},{id:"gpt-5.4-mini-medium",name:"GPT-5.4 Mini Medium"},{id:"gpt-5.4-mini-low",name:"GPT-5.4 Mini Low"},{id:"gpt-5.3-codex-xhigh-fast",name:"GPT-5.3 Codex XHigh Fast"},{id:"gpt-5.3-codex-xhigh",name:"GPT-5.3 Codex XHigh"},{id:"gpt-5.3-codex-high-fast",name:"GPT-5.3 Codex High Fast"},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High"},{id:"gpt-5.3-codex-medium-fast",name:"GPT-5.3 Codex Medium Fast"},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium"},{id:"gpt-5.3-codex-low-fast",name:"GPT-5.3 Codex Low Fast"},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low"},{id:"gpt-5.2-xhigh",name:"GPT-5.2 XHigh"},{id:"gpt-5.2-high",name:"GPT-5.2 High"},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium"},{id:"gpt-5.2-low",name:"GPT-5.2 Low"},{id:"gpt-5.2-none",name:"GPT-5.2 None"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High"},{id:"gemini-3.0-flash-medium",name:"Gemini 3 Flash Medium"},{id:"gemini-3.0-flash-low",name:"Gemini 3 Flash Low"},{id:"gemini-3.0-flash-minimal",name:"Gemini 3 Flash Minimal"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"deepseek-v4",name:"DeepSeek V4"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM-5.1"}]},{id:"xai",priority:280,alias:"xai",display:{name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},models:[{id:"grok-4.6",name:"Grok 4.6"},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.3",name:"Grok 4.3"},{id:"grok-4.2",name:"Grok 4.2"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video",name:"Grok Imagine Video",params:["duration","aspect_ratio","resolution"],kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{baseUrl:"https://api.x.ai/v1/videos"},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},{id:"xiaomi-mimo",priority:20,alias:"xiaomi-mimo",aliases:["mimo"],uiAlias:"mimo",display:{name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys",signupUrl:"https://platform.xiaomimimo.com/"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,serviceKinds:["llm","tts"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"}],ttsConfig:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"},features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"xiaomi-tokenplan",priority:21,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"MiMo Token Plan",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://platform.xiaomimimo.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys"}},category:"apikey",hasProviderSpecificData:!0,serviceKinds:["llm","tts"],regions:[{id:"cn",label:"China (中国大陆)"},{id:"sgp",label:"Singapore (新加坡)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"cn",transport:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",regions:{cn:"https://token-plan-cn.xiaomimimo.com/v1",sgp:"https://token-plan-sgp.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"cn"},transports:[{format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-pro-claude",name:"MiMo V2.6 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.6-pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone",kind:"tts"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design",kind:"tts"}],ttsConfig:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"}},{id:"xquik",alias:"xquik",display:{name:"Xquik",icon:"tag",color:"#5C3327",textIcon:"XQ",website:"https://docs.xquik.com/api-reference/x/search-tweets",notice:{apiKeyUrl:"https://xquik.com",text:"Searches public X posts. Billing uses 1 Xquik credit per returned post."}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://xquik.com/api/v1/x/tweets/search",validateUrl:"https://xquik.com/api/v1/credits",method:"GET",authType:"apikey",authHeader:"x-api-key",searchTypes:["x"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:6e4,creditsPerResult:1}},{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"zcode-free",priority:56,alias:"zcode-free",uiAlias:"zcode-free",display:{name:"ZCode Free",icon:"rocket_launch",color:"#7C3AED",textIcon:"ZC",website:"https://zcode.z.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/zcode/v1/messages",format:"claude",noAuth:!0},models:[{id:"glm-5.3-flash",name:"GLM 5.3 Flash"}]},{id:"zed",priority:10,alias:"zd",uiAlias:"zd",hidden:!0,display:{name:"Zed",icon:"code",color:"#A855F7",website:"https://zed.dev",notice:{signupUrl:"https://zed.dev/native_app_signin"}},category:"oauth",authType:"oauth",hasOAuth:!0,transport:{baseUrl:"https://cloud.zed.dev/completions",format:"openai",forceStream:!0,headers:{"content-type":"application/json"},auth:{combined:!0,header:"Authorization",scheme:"<user_id> <access_token>"},usage:{url:"https://cloud.zed.dev/client/users/me"},modelsUrl:"https://cloud.zed.dev/models"},models:[],passthroughModels:!0,oauth:{authorizeUrl:"https://zed.dev/native_app_signin",platform:"zed",rsaKeyExchange:!0},features:{usage:!0}},{id:"modelscope",priority:69,alias:"modelscope",aliases:["ms"],display:{name:"ModelScope",icon:"layers",color:"#624AFF",textIcon:"MS",website:"https://modelscope.cn",notice:{apiKeyUrl:"https://modelscope.cn/my/myaccesstoken"}},category:"apikey",transport:{baseUrl:"https://api-inference.modelscope.cn/v1/chat/completions",validateUrl:"https://api-inference.modelscope.cn/v1/chat/completions"},models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Pro-0813",name:"DeepSeek V4 Pro (0813)",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1",contextWindow:128e3,maxOutput:64e3},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3",contextWindow:128e3,maxOutput:64e3},{id:"Qwen/Qwen3.8-Flash-Next",name:"Qwen 3.8 Flash Next",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.5-397B",name:"Qwen 3.5 397B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen3.5-122B",name:"Qwen 3.5 122B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B Instruct",contextWindow:1e6,maxOutput:64e3},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B Instruct",contextWindow:262144,maxOutput:64e3},{id:"Qwen/QwQ-32B",name:"QwQ 32B (Reasoning)",contextWindow:131072,maxOutput:64e3},{id:"ZhipuAI/glm-5.2",name:"GLM 5.2",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3",name:"GLM 5.3",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3-flash",name:"GLM 5.3 Flash",contextWindow:1e6,maxOutput:131072},{id:"MiniMax/MiniMax-M3",name:"MiniMax M3",contextWindow:1e6,maxOutput:131072},{id:"Moonshot/Kimi-K3",name:"Kimi K3",contextWindow:1048576,maxOutput:131072},{id:"stepfun-ai/Step-3.7-Flash",name:"Step 3.7 Flash",contextWindow:128e3,maxOutput:64e3},{id:"baidu/ERNIE-4.5-300B",name:"ERNIE 4.5 300B",contextWindow:2e5,maxOutput:64e3}],passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"codiv",priority:44,alias:"codiv",aliases:["cdv"],display:{name:"Codiv",icon:"psychology",color:"#101D30",textIcon:"CD",website:"https://codiv.ai",notice:{text:"Codiv serves open System One decision models that answer typed questions with calibrated probabilities, plus DiffusionGemma text generation.",apiKeyUrl:"https://codiv.ai/dashboard"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.codiv.ai/v1/chat/completions",validateUrl:"https://api.codiv.ai/v1/models"},models:[{id:"openjev-latest",name:"OpenJev Latest (Calibrated)",kind:"systemone"},{id:"openjev-0.1",name:"OpenJev 0.1",kind:"systemone"},{id:"laya-1.0",name:"Laya 1.0 (ModernBERT)",kind:"systemone"},{id:"verdict-1.4",name:"Verdict 1.4 (ModernBERT)",kind:"systemone"},{id:"clm-v0.1",name:"CLM v0.1 (Qwen3-8B)",kind:"systemone"},{id:"jevk5-0.3",name:"JevK5 v0.3 (Qwen3.5-4B)",kind:"systemone"},{id:"clef-flash-1.0",name:"Clef Flash 1.0 (Cloudflare)",kind:"systemone"},{id:"diffusiongemma-26b",name:"DiffusionGemma 26B"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://api.codiv.ai/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"thx",alias:"thx",aliases:["hal-x","halx"],category:"apikey",display:{name:"THX-01 (HAL-X)",icon:"psychology",color:"#0EA5E9",textIcon:"TX",website:"https://api.hal-x.ai",notice:{text:"THX-01 decision model: calibrated answers to typed questions in ~10 ms per request.",apiKeyUrl:"https://api.hal-x.ai"}},models:[{id:"thx-01",name:"THX-01",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://api.hal-x.ai/v1/systemone"}}]},97538:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js")},97645:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(73346))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},97757:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getClientComponentLoaderMetrics:function(){return i},wrapClientComponentLoader:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=0,g=0;function h(a,b){return"performance"in globalThis&&(process.env.NEXT_OTEL_PERFORMANCE_PREFIX||b)?{require:(...b)=>{let c=performance.now();0===e&&(e=c);try{return g+=1,a.__next_app__.require(...b)}finally{f+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{f+=performance.now()-c}),d}}:a.__next_app__}function i(a={}){let b=0===e?void 0:{clientComponentLoadStart:e,clientComponentLoadTimes:f,clientComponentLoadCount:g};return a.reset&&(e=0,f=0,g=0),b}},98345:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e={CachedRouteKind:function(){return g},IncrementalCacheKind:function(){return h}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});var g=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.REDIRECT="REDIRECT",c.IMAGE="IMAGE",c),h=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.IMAGE="IMAGE",d)},98617:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(67301),e=c(93250);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,`/${b.toLowerCase()}`))?a:(0,d.addPathPrefix)(a,`/${b}`)}},98995:a=>{"use strict";a.exports=require("node:module")},99751:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={fromNodeOutgoingHttpHeaders:function(){return g},normalizeNextQueryParam:function(){return k},splitCookiesString:function(){return h},toNodeOutgoingHttpHeaders:function(){return i},validateURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(96100);function g(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function h(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function i(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...h(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function j(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function k(a){for(let b of[f.NEXT_QUERY_PARAM_PREFIX,f.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=86231);module.exports=c})();
171
+ type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.cK)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.cK)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.cK)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.cK)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.cK)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]))}),c}},95226:(a,b,c)=>{"use strict";c.d(b,{mt:()=>e.getSettings,ek:()=>f.validateApiKey});var d=c(59339);c(34393);var e=c(85304);c(56840),c(95160);var f=c(17343),g=c(71509);(0,g.U)("modelAliases"),(0,g.U)("customModels"),(0,g.U)("mitmAlias"),c(36241),c(50809);var h=c(94735);c(91117),c(69128);var i=c(97303);let j="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(i.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:j}:b]}));let k=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","systemoneConfig","rerankConfig","modelsFetcher","mediaPriority","hiddenKinds"],l=a=>Object.fromEntries(i.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),k))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=j),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...a.topologyHiddenByDefault?{topologyHiddenByDefault:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.exposeStaticModels?{exposeStaticModels:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.community?{community:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),m=l("free"),n=l("freeTier"),o=l("oauth"),p=l("apikey"),q=l("webCookie"),r={...m,...n,...o,...p,...q};Object.values(r).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(r).reduce((a,b)=>(a[b.id]=b.alias,a),{}),i.default.filter(a=>a.features?.usage).map(a=>a.id),i.default.filter(a=>a.features?.usageApikey).map(a=>a.id),i.default.filter(a=>a.features?.usageCookie).map(a=>a.id);var s=c(76871);Object.entries(r).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(s.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),Object.freeze(["gemini-live"]),global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new h.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null}),global._pendingRequests,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitTimers,global._statsEmitter;var t=c(33323);let u=null,v=0;async function w(){if(u&&Date.now()-v<5e3)return u;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,85304)),b=await a(),d=process.env.ENABLE_REQUEST_LOGS;if(void 0!==d)return u={enabled:"true"===d.toLowerCase(),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},v=Date.now(),u;let e="false"!==process.env.OBSERVABILITY_ENABLED;u={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:e,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{u={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return v=Date.now(),u}let x=[],y=null,z=!1;function A(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function B(){if(!z&&0!==x.length){z=!0;try{for(;x.length>0;){let a=x.splice(0,x.length),b=await (0,d.cK)(),c=await w();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:A(d.request,c.maxJsonSize),providerRequest:A(d.providerRequest,c.maxJsonSize),providerResponse:A(d.providerResponse,c.maxJsonSize),response:A(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,t.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{z=!1}}}let C=async()=>{y&&(clearTimeout(y),y=null),x.length>0&&await B()};process.off("beforeExit",C),process.off("SIGINT",C),process.off("SIGTERM",C),process.off("exit",C),process.on("beforeExit",C),process.on("SIGINT",C),process.on("SIGTERM",C),process.on("exit",C)},96100:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_SUFFIX:function(){return p},APP_DIR_ALIAS:function(){return O},CACHE_ONE_YEAR_SECONDS:function(){return E},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ag},GSP_NO_RETURNED_VALUE:function(){return aa},GSSP_COMPONENT_MEMBER_ERROR:function(){return ad},GSSP_NO_RETURNED_VALUE:function(){return ab},HTML_CONTENT_TYPE_HEADER:function(){return f},INFINITE_CACHE:function(){return F},INSTRUMENTATION_HOOK_FILENAME:function(){return K},JSON_CONTENT_TYPE_HEADER:function(){return g},MATCHED_PATH_HEADER:function(){return j},MIDDLEWARE_FILENAME:function(){return G},MIDDLEWARE_LOCATION_REGEXP:function(){return H},NEXT_BODY_SUFFIX:function(){return s},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return v},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return w},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return D},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return B},NEXT_CACHE_TAGS_HEADER:function(){return u},NEXT_CACHE_TAG_MAX_ITEMS:function(){return z},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return q},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return i},NEXT_META_SUFFIX:function(){return r},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return t},NEXT_QUERY_PARAM_PREFIX:function(){return h},NEXT_RESUME_HEADER:function(){return x},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return y},NON_STANDARD_NODE_ENV:function(){return ae},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return k},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return I},PROXY_LOCATION_REGEXP:function(){return J},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return N},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return U},RSC_ACTION_PROXY_ALIAS:function(){return R},RSC_ACTION_VALIDATE_ALIAS:function(){return Q},RSC_CACHE_WRAPPER_ALIAS:function(){return S},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return T},RSC_MOD_REF_PROXY_ALIAS:function(){return P},RSC_SEGMENTS_DIR_SUFFIX:function(){return m},RSC_SEGMENT_SUFFIX:function(){return n},RSC_SUFFIX:function(){return o},SERVER_PROPS_EXPORT_ERROR:function(){return _},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Y},SERVER_PROPS_SSG_CONFLICT:function(){return Z},SERVER_RUNTIME:function(){return ah},SSG_FALLBACK_EXPORT_ERROR:function(){return af},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return X},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return $},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return e},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ac},WEBPACK_LAYERS:function(){return ak},WEBPACK_RESOURCE_QUERIES:function(){return al},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ai}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="text/plain",f="text/html; charset=utf-8",g="application/json; charset=utf-8",h="nxtP",i="nxtI",j="x-matched-path",k="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",m=".segments",n=".segment.rsc",o=".rsc",p=".action",q=".json",r=".meta",s=".body",t="x-nextjs-deployment-id",u="x-next-cache-tags",v="x-next-revalidated-tags",w="x-next-revalidate-tag-token",x="next-resume",y="x-next-resume-state-length",z=128,A=256,B=1024,C="_N_T_",D="_N_RP_",E=31536e3,F=0xfffffffe,G="middleware",H=`(?:src/)?${G}`,I="proxy",J=`(?:src/)?${I}`,K="instrumentation",L="private-next-pages",M="private-dot-next",N="private-next-root-dir",O="private-next-app-dir",P="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",Q="private-next-rsc-action-validate",R="private-next-rsc-server-reference",S="private-next-rsc-cache-wrapper",T="private-next-rsc-track-dynamic-import",U="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",X="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Y="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",$="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",_="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",aa="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",ab="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ac="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ad="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ae='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',af="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ag=["app","pages","components","lib","src"],ah={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ai=12,aj={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ak={...aj,GROUP:{builtinReact:[aj.reactServerComponents,aj.actionBrowser],serverOnly:[aj.reactServerComponents,aj.actionBrowser,aj.instrument,aj.middleware],neutralTarget:[aj.apiNode,aj.apiEdge],clientOnly:[aj.serverSideRendering,aj.appPagesBrowser],bundled:[aj.reactServerComponents,aj.actionBrowser,aj.serverSideRendering,aj.appPagesBrowser,aj.shared,aj.instrument,aj.middleware],appPages:[aj.reactServerComponents,aj.serverSideRendering,aj.appPagesBrowser,aj.actionBrowser]}},al={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},96664:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(93250);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:`/${c}`}},97010:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ApiError:function(){return t},COOKIE_NAME_PRERENDER_BYPASS:function(){return n},COOKIE_NAME_PRERENDER_DATA:function(){return o},RESPONSE_LIMIT_DEFAULT:function(){return p},SYMBOL_CLEARED_COOKIES:function(){return r},SYMBOL_PREVIEW_DATA:function(){return q},checkIsOnDemandRevalidate:function(){return m},clearPreviewData:function(){return s},redirect:function(){return l},sendError:function(){return u},sendStatusCode:function(){return k},setLazyProp:function(){return v},wrapApiHandler:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(36023),g=c(96100),h=c(12726),i=c(88026);function j(a,b){return(...c)=>((0,h.getTracer)().setRootSpanAttribute("next.route",a),(0,h.getTracer)().trace(i.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function k(a,b){return a.statusCode=b,a}function l(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function m(a,b){if("function"==typeof a.get){let c=f.HeadersAdapter.from(a);return{isOnDemandRevalidate:c.get(g.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}return{isOnDemandRevalidate:a[g.PRERENDER_REVALIDATE_HEADER]===b.previewModeId,revalidateOnlyGenerated:a.hasOwnProperty(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let n="__prerender_bypass",o="__next_preview_data",p=4194304,q=Symbol(o),r=Symbol(n);function s(a,b={}){if(r in a)return a;let{serialize:d}=c(19560),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(n,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,r,{value:!0,enumerable:!1}),a}class t extends Error{constructor(a,b){super(b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.statusCode=a}}function u(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function v({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}},97303:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"};(function(){switch((0,d.arch)()){case"x64":case"arm64":case"ia32":return;default:return(0,d.arch)()}})(),function(){switch((0,d.platform)()){case"darwin":case"win32":case"linux":case"freebsd":return;default:return(0,d.platform)()}}();let f="https://daily-cloudcode-pa.googleapis.com",g="antigravity/ide/2.11.0 darwin/arm64",h={id:"antigravity",priority:30,alias:"ag",uiAlias:"ag",display:{name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",serviceKinds:["llm","image"],transport:{baseUrls:[f],format:"antigravity",headers:{"User-Agent":g},retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:`${f}/v1internal:fetchAvailableModels`,quotaSummaryApiUrls:["https://daily-cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary","https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:retrieveUserQuotaSummary","https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary"],loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.8-flash-high",name:"Gemini 3.8 Flash (High)",upstreamModelId:"gemini-3.8-flash-high(high)"},{id:"gemini-3.8-flash-medium",name:"Gemini 3.8 Flash (Medium)",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.8-flash-low",name:"Gemini 3.8 Flash (Low)",upstreamModelId:"gemini-3.8-flash-low(low)"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.7-flash-high",name:"Gemini 3.7 Flash (High)",upstreamModelId:"gemini-3.7-flash-tiered(high)"},{id:"gemini-3.7-flash-medium",name:"Gemini 3.7 Flash (Medium)",upstreamModelId:"gemini-3.7-flash-tiered(medium)"},{id:"gemini-3.7-flash-low",name:"Gemini 3.7 Flash (Low)",upstreamModelId:"gemini-3.7-flash-tiered(low)"},{id:"gemini-3.6-flash-high",name:"Gemini 3.6 Flash (High)",upstreamModelId:"gemini-3.6-flash-tiered(high)"},{id:"gemini-3.6-flash-medium",name:"Gemini 3.6 Flash (Medium)",upstreamModelId:"gemini-3.6-flash-tiered(medium)"},{id:"gemini-3.6-flash-low",name:"Gemini 3.6 Flash (Low)",upstreamModelId:"gemini-3.6-flash-tiered(low)"},{id:"gemini-3.5-flash-high",name:"Gemini 3.5 Flash (High)"},{id:"gemini-3-flash-agent",name:"Gemini 3.5 Flash (High)"},{id:"gemini-3.5-flash-low",name:"Gemini 3.5 Flash (Medium)"},{id:"gemini-3.5-flash-extra-low",name:"Gemini 3.5 Flash (Low)"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-3-pro-image",name:"Gemini 3 Pro (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"imagen-3.0-generate-002",name:"Imagen 3",kind:"image",imageGen:!0,capabilities:["textToImage"]}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://daily-cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:g,refreshLeadMs:3e5},features:{usage:!0}},i="0.159.0",j={id:"codex",priority:20,alias:"cx",uiAlias:"cx",display:{name:"OpenAI Codex",icon:"code",color:"#3B82F6",website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"},deprecated:!0,deprecationNotice:"RISK_NOTICE",kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,cliVersion:i,headers:{originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${i}`},usage:{url:"https://chatgpt.com/backend-api/wham/usage",resetCreditsUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits",resetCreditsConsumeUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume"}},models:[{id:"gpt-6-astra",name:"GPT 6.0 Astra"},{id:"gpt-6-astra[1m]",name:"GPT 6.0 Astra (extended context)",upstreamModelId:"gpt-6-astra"},{id:"gpt-6-sol",name:"GPT 6.0 Sol"},{id:"gpt-6-sol[1m]",name:"GPT 6.0 Sol (extended context)",upstreamModelId:"gpt-6-sol"},{id:"gpt-6-luna",name:"GPT 6.0 Luna"},{id:"gpt-6-luna[1m]",name:"GPT 6.0 Luna (extended context)",upstreamModelId:"gpt-6-luna"},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol"},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol"},{id:"gpt-5.6-sol[1m]",name:"GPT 5.6 Sol (extended context)",upstreamModelId:"gpt-5.6-sol"},{id:"gpt-5.6-sol-review",name:"GPT 5.6 Sol Review",upstreamModelId:"gpt-5.6-sol",quotaFamily:"review"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra"},{id:"gpt-5.6-terra[1m]",name:"GPT 5.6 Terra (extended context)",upstreamModelId:"gpt-5.6-terra"},{id:"gpt-5.6-terra-review",name:"GPT 5.6 Terra Review",upstreamModelId:"gpt-5.6-terra",quotaFamily:"review"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna"},{id:"gpt-5.6-luna[1m]",name:"GPT 5.6 Luna (extended context)",upstreamModelId:"gpt-5.6-luna"},{id:"gpt-5.6-luna-review",name:"GPT 5.6 Luna Review",upstreamModelId:"gpt-5.6-luna",quotaFamily:"review"},{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.5-review",name:"GPT 5.5 Review",upstreamModelId:"gpt-5.5",quotaFamily:"review"},{id:"gpt-daybreak-blue-latest",name:"GPT Daybreak Blue"},{id:"gpt-reserve",name:"GPT Reserve"},{id:"gpt-image-2.5",name:"GPT Image 2.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-1.5",name:"GPT Image 1.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-sol-image",name:"GPT 5.6 Sol Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-terra-image",name:"GPT 5.6 Terra Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-luna-image",name:"GPT 5.6 Luna Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.5-image",name:"GPT 5.5 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.3-image",name:"GPT 5.3 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:6e5,refresh:{encoding:"form",scope:"openid profile email offline_access"},maxRefreshAgeMs:6912e5,trackRefreshAt:!0},features:{usage:!0}},k={id:"deepseek",priority:110,alias:"deepseek",aliases:["ds"],uiAlias:"ds",display:{name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},category:"apikey",transport:{baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"}},transports:[{format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-flash",name:"DeepSeek V4.1 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],features:{usage:!0,usageApikey:!0}},l={id:"glm",priority:140,alias:"glm",display:{name:"Zai GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys",signupUrl:"https://chat.z.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,oauth:{providerId:"zai",cliInitUrl:"https://zcode.z.ai/api/v1/oauth/cli/init",cliPollUrl:"https://zcode.z.ai/api/v1/oauth/cli/poll",businessLoginUrl:"https://api.z.ai/api/auth/z/login",apiBaseUrl:"https://api.z.ai",planApiKeyName:"zcode-api-key"},transport:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},m="1.0.44",n="https://cli-chat-proxy.grok.com/v1",o="grok-shell",p=`grok-shell/${m} (linux; x86_64)`,q=[{id:"agnes-ai-cn",alias:"agnes-ai-cn",display:{name:"Agnes AI (CN)",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.cn/",notice:{apiKeyUrl:"https://www.agnes-ai.cn/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.agnes-ai.cn/v1/chat/completions",validateUrl:"https://api.agnes-ai.cn/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.agnes-ai.cn/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"agnes-ai",alias:"agnes-ai",display:{name:"Agnes AI",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.com/",notice:{apiKeyUrl:"https://www.agnes-ai.com/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://apihub.agnes-ai.com/v1/chat/completions",validateUrl:"https://apihub.agnes-ai.com/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://apihub.agnes-ai.com/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-2.5-pro-beta",name:"Agnes 2.5 Pro Beta"},{id:"agnes-3.0-flash",name:"Agnes 3.0 Flash"},{id:"agnes-image-2.0-flash",name:"Agnes Image 2.0 Flash",params:["size"],kind:"image"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Coding",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://www.alibabacloud.com/product/coding",notice:{apiKeyUrl:"https://www.alibabacloud.com/product/coding"}},category:"apikey",transport:{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alims-intl",priority:11,alias:"alims-intl",display:{name:"Alibaba Studio",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alitp-intl",priority:11,alias:"alitp-intl",display:{name:"Alibaba Token Plan",icon:"cloud",color:"#FF6A00",textIcon:"ATP",website:"https://www.alibabacloud.com/campaign/ai-landing-page-token",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview"},{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"}]},{id:"amd",priority:20,hasFree:!0,alias:"amd",display:{name:"AMD Token Factory",icon:"developer_board",color:"#ED1C24",textIcon:"AMD",website:"https://developer.amd.com.cn/radeon/tokenfactory",notice:{text:"Free shared endpoints (experimental) — 30 RPM per key, 8 concurrent.",apiKeyUrl:"https://developer.amd.com.cn/radeon/modelapis"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://developer.amd.com.cn/radeon/api/v1/chat/completions",validateUrl:"https://developer.amd.com.cn/radeon/api/v1/models"},models:[{id:"DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"DeepSeek-V4-Flash-Vision-Exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"Qwen3.8-Flash-Next",name:"Qwen3.8 Flash Next"},{id:"MiniCPM5-2B",name:"MiniCPM5 2B"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"anthropic-version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],serviceKinds:["llm","imageToText"]},h,{id:"api-airforce",alias:"af",aliases:["airforce"],uiAlias:"af",display:{name:"API.airforce",icon:"flight",color:"#0EA5E9",textIcon:"AF",website:"https://api.airforce",notice:{apiKeyUrl:"https://api.airforce"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.airforce/v1/chat/completions",validateUrl:"https://api.airforce/v1/models",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"anthropic/claude-3.7-sonnet",name:"Claude 3.7 Sonnet (Free)",contextLength:2e5},{id:"moonshot/kimi-k2.6",name:"Kimi K2.6 (Free)",contextLength:262144},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash (Free)",contextLength:1048576}]},{id:"apinex",alias:"apinex",display:{name:"APInex",icon:"bolt",color:"#C9A227",textIcon:"AX",website:"https://apinex.bond/",notice:{text:"Prepaid USD-credit gateway with gamified rewards (XP/airdrop). free/* models require a DAILY check-in at the airdrop page; paid models bill a prepaid balance (402 otherwise). Third-party reseller — treat as untrusted for sensitive traffic.",apiKeyUrl:"https://apinex.bond/register",inviteCode:"SLEWP68C"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.apinex.bond/v1/chat/completions",validateUrl:"https://api.apinex.bond/v1/models"},serviceKinds:["llm"],hasFree:!0,models:[{id:"claude-fable-5.1",name:"Claude Fable 5.1"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5.5",name:"Claude Sonnet 5.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-luna",name:"GPT-6 Luna"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol"},{id:"grok-4.7",name:"Grok 4.7"},{id:"kimi-k3",name:"Kimi K3"},{id:"free/claude-opus-4.6",name:"Claude Opus 4.6 (Free)"},{id:"free/claude-sonnet-4.6",name:"Claude Sonnet 4.6 (Free)"},{id:"free/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731 (Free)"},{id:"free/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813 (Free)"},{id:"free/deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash (Free)"},{id:"free/gemini-3.1-pro",name:"Gemini 3.1 Pro (Free)"},{id:"free/gemini-3.8-flash",name:"Gemini 3.8 Flash (Free)"},{id:"free/glm-5.3-flash",name:"GLM-5.3 Flash (Free)"},{id:"free/gpt-6-luna",name:"GPT-6 Luna (Free)"},{id:"free/hy4",name:"HY4 (Free)"},{id:"free/kimi-k2.8",name:"Kimi K2.8 (Free)"},{id:"free/kimi-k3",name:"Kimi K3 (Free)"},{id:"free/mimo-v2.6-flash",name:"MiMo V2.6 Flash (Free)"},{id:"free/mimo-v2.6-pro",name:"MiMo V2.6 Pro (Free)"},{id:"free/minimax-m3",name:"MiniMax M3 (Free)"},{id:"free/minimax-m3.1",name:"MiniMax M3.1 (Free)"},{id:"free/muse-spark-1.3",name:"Muse Spark 1.3 (Free)"},{id:"free/qwen-3.8-max",name:"Qwen 3.8 Max (Free)"}]},{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"atria",alias:"atria",aliases:["atria-asi"],uiAlias:"atria",display:{name:"Atria Dawn",icon:"flare",color:"#C2410C",textIcon:"AD",website:"https://atria-asi.ai",notice:{apiKeyUrl:"https://api.atria-asi.ai/console"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.atria-asi.ai/v1/chat/completions",validateUrl:"https://api.atria-asi.ai/v1/models"},models:[{id:"Atria-Dawn-Preview",name:"Atria Dawn Preview"}],passthroughModels:!0},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",headers:{}}},{id:"bai",alias:"bai",aliases:["b.ai","b-ai","bai-llm"],display:{name:"B.AI",icon:"auto_awesome",color:"#3B82F6",textIcon:"B.AI",website:"https://b.ai",notice:{apiKeyUrl:"https://chat.b.ai"}},category:"apikey",transport:{baseUrl:"https://api.b.ai/v1/chat/completions",validateUrl:"https://api.b.ai/v1/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",vision:!0,contextWindow:1e6,maxOutput:384e3},{id:"deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:131072,maxOutput:65536},{id:"deepseek-r1-0528",name:"DeepSeek R1 0528",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-flash",name:"Qwen3.8-Flash",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.8-27b",name:"Qwen3.8-27B",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-max",name:"Qwen3.8-Max",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.7-max",name:"Qwen3.7-Max",contextWindow:1e6,maxOutput:65536,reasoning:!0},{id:"qwen3.6-27b",name:"Qwen3.6-27B",contextWindow:131072,maxOutput:65536},{id:"gpt-5.5",name:"GPT-5.5",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4",name:"GPT-5.4",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5",name:"GPT-5",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5-mini",name:"GPT-5 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5-nano",name:"GPT-5 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.2",name:"GPT-5.2",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"grok-4.6",name:"Grok 4.6",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"grok-4.5",name:"Grok 4.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3-flash",name:"Gemini 3 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"mimo-v2.5",name:"MiMo V2.5",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",contextWindow:131072,maxOutput:16384},{id:"glm-5.3",name:"GLM-5.3",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.2",name:"GLM-5.2",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.1",name:"GLM-5.1",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"minimax-m3",name:"MiniMax M3",contextWindow:1048576,maxOutput:65536},{id:"minimax-m2.7",name:"MiniMax M2.7",contextWindow:1048576,maxOutput:65536},{id:"hy3",name:"Hy3",contextWindow:131072,maxOutput:65536}]},{id:"baidu",alias:"qianfan",aliases:["qianfan","ernie","baidu-qianfan"],uiAlias:"qianfan",category:"apikey",authType:"apikey",authModes:["apikey"],display:{name:"Baidu Qianfan",icon:"search",color:"#2932E1",textIcon:"BD",website:"https://cloud.baidu.com/product/qianfan.html",notice:{apiKeyUrl:"https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application"}},transport:{baseUrl:"https://qianfan.baidubce.com/v2/chat/completions",validateUrl:"https://qianfan.baidubce.com/v2/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextLength:1048576},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextLength:1048576},{id:"glm-5.2",name:"GLM 5.2",contextLength:512e3},{id:"glm-5.1",name:"GLM 5.1",contextLength:198e3},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"qwen3.5-397b-a17b",name:"Qwen 3.5 397B A17B",contextLength:262144},{id:"qwen3.5-27b",name:"Qwen 3.5 27B",contextLength:262144}]},{id:"bazaarlink",alias:"bzl",aliases:["bazaar-link"],uiAlias:"bzl",category:"freeTier",authType:"apikey",authModes:["apikey"],display:{name:"Bazaarlink",icon:"storefront",color:"#DC2626",textIcon:"BZ",website:"https://bazaarlink.ai",notice:{apiKeyUrl:"https://bazaarlink.ai"}},transport:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",validateUrl:"https://bazaarlink.ai/api/v1/models"},models:[{id:"auto:free",name:"Auto Free (Zero Cost)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",contextLength:1e6},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:1e6},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5",name:"GPT-5.5",contextLength:105e4},{id:"gpt-5.4",name:"GPT-5.4",contextLength:105e4},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextLength:4e5},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",contextLength:4e5},{id:"grok-4.3",name:"Grok 4.3",contextLength:1e6},{id:"grok-4.20",name:"Grok 4.20",contextLength:2e6},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",contextLength:1048576},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",contextLength:1048576},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"kimi-k2.5",name:"Kimi K2.5",contextLength:262144},{id:"glm-5.1",name:"GLM 5.1",contextLength:204800},{id:"glm-5",name:"GLM 5",contextLength:204800},{id:"mimo-v2.5-pro",name:"MiMo-V2.5-Pro",contextLength:105e4},{id:"mimo-v2.5",name:"MiMo-V2.5",contextLength:105e4},{id:"minimax-m3",name:"MiniMax M3",contextLength:1048576},{id:"minimax-m2.7",name:"MiniMax M2.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",contextLength:1e6},{id:"nemotron-3-super-120b-a12b",name:"Nemotron 3 Super",contextLength:1e6}]},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"bluesminds",alias:"bm",aliases:["blue-sminds"],uiAlias:"bm",hidden:!0,display:{name:"BluesMinds",icon:"psychology",color:"#2563EB",textIcon:"BM",website:"https://bluesminds.com",notice:{apiKeyUrl:"https://bluesminds.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.bluesminds.com/v1/chat/completions",validateUrl:"https://api.bluesminds.com/v1/models"},models:[{id:"gpt-4.1",name:"GPT-4.1",contextLength:1048576},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",contextLength:1048576},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",contextLength:1048576},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",contextLength:1048576},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash (Exp)",contextLength:1048576},{id:"qwen-turbo",name:"Qwen Turbo",contextLength:1e6},{id:"kimi-k2",name:"Kimi K2",contextLength:262144},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",contextLength:262144},{id:"glm-4.7",name:"GLM 4.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (VIP)",contextLength:2e5},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (VIP)",contextLength:1048576}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.280 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"600"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}},usage:{oauthUrl:"https://api.anthropic.com/api/oauth/usage",orgUrl:"https://api.anthropic.com/v1/organizations/{org_id}/usage",settingsUrl:"https://api.anthropic.com/v1/settings",profileUrl:"https://api.anthropic.com/api/oauth/profile",resetUrl:"https://api.anthropic.com/api/organizations/{org_id}/reset_rate_limits"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5-1",name:"Claude Fable 5.1"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},category:"oauth",transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",forceStream:!0,headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"}},{id:"clinepass",priority:85,alias:"clinepass",uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"cloudflare-ai",priority:60,hasFree:!0,alias:"cloudflare-ai",aliases:["cf"],uiAlias:"cf",display:{name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"}},category:"freeTier",authType:"apikey",authModes:["apikey"],hasProviderSpecificData:!0,transport:{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com",webUrl:"https://www.workbuddy.cn/app"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",quirks:{sanitizeToolSchema:!0},headers:{"User-Agent":"CLI/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:.29,nightFree:{from:23,to:8}},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.3-flashx",name:"GLM-5.3-FlashX",rateMultiplier:.14},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"step-5-preview",name:"Step-5-Preview",rateMultiplier:.43,subPriority:!0},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro",rateMultiplier:.51}],oauth:{baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codebuddy-intl",alias:"cbai",uiAlias:"cbai",hidden:!1,priority:90,display:{name:"CodeBuddy",icon:"smart_toy",color:"#006EFF",website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai",webUrl:"https://www.codebuddy.ai/agents"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.codebuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"IDE/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"IDE","X-IDE-Name":"IDE","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.codebuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:0},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"gpt-6-astra",name:"GPT 6.0 Astra",rateMultiplier:6.67},{id:"gpt-6-luna",name:"GPT-6-Luna"},{id:"gpt-6-sol",name:"GPT-6-Sol"},{id:"gpt-5.6-sol",name:"GPT-5.6-Sol",rateMultiplier:3.47},{id:"gpt-5.6-terra",name:"GPT-5.6-Terra",rateMultiplier:1.39},{id:"gpt-5.6-luna",name:"GPT-5.6-Luna",rateMultiplier:.14},{id:"gpt-5.5",name:"GPT-5.5",rateMultiplier:3.31},{id:"gpt-5.4",name:"GPT-5.4",rateMultiplier:1.65},{id:"gpt-5.3-codex",name:"GPT-5.3-Codex",rateMultiplier:1.25},{id:"gpt-6.1-sol",name:"GPT-6.1-Sol"},{id:"claude-opus-5.5",name:"Claude-Opus-5.5",rateMultiplier:2.17,paidTier:!0},{id:"claude-sonnet-5.5",name:"Claude-Sonnet-5.5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-5",name:"Claude-Opus-5",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-5",name:"Claude-Sonnet-5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-4.8",name:"Claude-Opus-4.8",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.7",name:"Claude-Opus-4.7",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.6",name:"Claude-Opus-4.6",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-4.6",name:"Claude-Sonnet-4.6",rateMultiplier:1.33,paidTier:!0},{id:"gemini-3.8-flash",name:"Gemini-3.8-Flash"},{id:"grok-4.7",name:"Grok-4.7",rateMultiplier:1.9},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"gemini-3.5-flash",name:"Gemini-3.5-Flash",rateMultiplier:.99},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11,promoFreeUntil:"2026-11-01"}],oauth:{baseUrl:"https://www.codebuddy.ai",stateUrl:"https://www.codebuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.codebuddy.ai/v2/plugin/auth/token/refresh",userAgent:"IDE/2.63.2 CodeBuddy/2.63.2",platform:"ide",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},j,{id:"cohere",priority:90,alias:"cohere",display:{name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},category:"apikey",serviceKinds:["llm","rerank"],rerankConfig:{baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v4.0-pro",name:"Rerank v4.0 Pro"},{id:"rerank-v3.5",name:"Rerank v3.5"}]},transport:{baseUrl:"https://api.cohere.ai/v1/chat/completions",validateUrl:"https://api.cohere.ai/v1/models"},models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},{id:"comfyui",priority:120,alias:"comfyui",display:{name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:8188"}},{id:"commandcode",priority:100,alias:"commandcode",aliases:["cmc"],uiAlias:"cmc",display:{name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",features:{usage:!0,usageApikey:!0},usage:{creditsUrl:"https://api.commandcode.ai/alpha/billing/credits",subscriptionsUrl:"https://api.commandcode.ai/alpha/billing/subscriptions"},transport:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek/deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (exp)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"google/gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"meta/muse-spark-1.1",name:"Muse Spark 1.1"},{id:"meta/muse-spark-1.2",name:"Muse Spark 1.2"},{id:"meta/muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor"},{id:"minimax/minimax-m2.7-free",name:"MiniMax M2.7 (Free)"},{id:"minimax/minimax-m3-free",name:"MiniMax M3 (Free)"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.7-Code-Highspeed",name:"Kimi K2.7 Code HighSpeed"},{id:"moonshotai/Kimi-K3",name:"Kimi K3"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"poolside/laguna-s-2.1-free",name:"Laguna S 2.1"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"Qwen/Qwen3.7-Flash",name:"Qwen 3.7 Flash"},{id:"Qwen/Qwen3.7-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B"},{id:"Qwen/Qwen3.8-Flash",name:"Qwen 3.8 Flash"},{id:"Qwen/Qwen3.8-Max",name:"Qwen 3.8 Max"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-paid",name:"Tencent Hy3"},{id:"tencent/hy4-preview",name:"Tencent Hy4 Preview"},{id:"thinkingmachines/inkling",name:"Inkling"},{id:"thinkingmachines/inkling-small",name:"Inkling Small"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xai/grok-4.5",name:"Grok 4.5"},{id:"xai/grok-4.6",name:"Grok 4.6"},{id:"z-ai/glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"zai-org/GLM-5",name:"GLM-5"},{id:"zai-org/GLM-5.1",name:"GLM-5.1"},{id:"zai-org/GLM-5.2",name:"GLM-5.2"},{id:"zai-org/GLM-5.2-Fast",name:"GLM-5.2 Fast"},{id:"zai-org/GLM-5.3",name:"GLM-5.3"}]},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.12.17"},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/agent.v1.AgentService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.12.17",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.deepgram.com/v1/listen"},models:[{id:"nova-3",name:"Nova 3",params:["language"],kind:"stt"},{id:"nova-2",name:"Nova 2",params:["language"],kind:"stt"},{id:"whisper-large",name:"Whisper Large",params:["language"],kind:"stt"},{id:"nova",name:"Nova",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},k,{id:"devin-cli",alias:"dv",aliases:["devin"],uiAlias:"dv",hidden:!0,display:{name:"Devin CLI",icon:"smart_toy",color:"#6366F1",textIcon:"DV",website:"https://devin.ai",notice:{signupUrl:"https://cli.devin.ai",text:"Install: `curl -fsSL https://cli.devin.ai/install.sh | bash` (macOS: `brew install --cask devin-cli`, Windows PowerShell: `irm https://static.devin.ai/cli/setup.ps1 | iex`). Then run `devin auth login`. No API key needed."}},category:"free",authType:"none",noAuth:!0,authModes:["none"],transport:{baseUrl:"devin://acp/stdio",format:"openai"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max",contextLength:2e5},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High",contextLength:2e5},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium",contextLength:2e5},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low",contextLength:2e5},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M",contextLength:1e6},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking",contextLength:2e5},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:2e5},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking",contextLength:2e5},{id:"claude-opus-4.6",name:"Claude Opus 4.6",contextLength:2e5},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh",contextLength:2e5},{id:"gpt-5.5-high",name:"GPT-5.5 High",contextLength:2e5},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium",contextLength:2e5},{id:"gpt-5.5-low",name:"GPT-5.5 Low",contextLength:2e5},{id:"gpt-5.4-high",name:"GPT-5.4 High",contextLength:2e5},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium",contextLength:2e5},{id:"gpt-5.4-low",name:"GPT-5.4 Low",contextLength:2e5},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High",contextLength:2e5},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium",contextLength:2e5},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low",contextLength:2e5},{id:"gpt-5.2-high",name:"GPT-5.2 High",contextLength:2e5},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium",contextLength:2e5},{id:"gpt-5.2-low",name:"GPT-5.2 Low",contextLength:2e5},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",contextLength:1e6},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",contextLength:1e6},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High",contextLength:1e6},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextLength:1e6},{id:"deepseek-v4",name:"DeepSeek V4",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"glm-5.1",name:"GLM-5.1",contextLength:204800}]},{id:"dots",alias:"dots",display:{name:"Dots",icon:"hub",color:"#FF2442",textIcon:"DT",website:"https://dots.ai",notice:{apiKeyUrl:"https://dots.ai/platform/apikeys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://note3-prev-api.askdiandian.com/v1/chat/completions",auth:{combined:!0,header:"api-key",scheme:"raw"}},models:[{id:"dots3-note-prev",name:"Dots3 Note Prev"}]},{id:"drex",alias:"drex",category:"apikey",display:{name:"Drex",icon:"psychology",color:"#131313",textIcon:"DX",website:"https://drex.nace.ai",notice:{apiKeyUrl:"https://drex.nace.ai/invite/tnzgt5vr"}},models:[{id:"drex-v1.0",name:"Drex v1.0",kind:"systemone"},{id:"drex-v1.1",name:"Drex v1.1",kind:"systemone"},{id:"drex-v1.5",name:"Drex v1.5",kind:"systemone"},{id:"drex-latest",name:"Drex Latest",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://drex.nace.ai/v1/systemone"}},{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts","stt"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},sttConfig:{baseUrl:"https://api.elevenlabs.io/v1/speech-to-text",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"scribe_v1",name:"Scribe v1"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run"}},{id:"featherless",priority:65,alias:"featherless",aliases:["fl"],uiAlias:"fl",display:{name:"Featherless",icon:"flutter_dash",color:"#111827",textIcon:"FL",website:"https://featherless.ai",notice:{apiKeyUrl:"https://featherless.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.featherless.ai/v1/chat/completions",validateUrl:"https://api.featherless.ai/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"}]},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{id:"fish-audio",alias:"fish",display:{name:"Fish Audio",icon:"record_voice_over",color:"#1E9BF0",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/app/api-keys/"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fish-audio",models:[{id:"s2.1-pro-free",name:"S2.1 Pro Free"},{id:"s2.1-pro",name:"S2.1 Pro"},{id:"s2-pro",name:"S2 Pro"},{id:"s1",name:"S1"}]}},{id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",cliVersion:"0.34.0",apiClient:"google-genai-sdk/1.41.0 gl-node/v22.19.0",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"],refresh:{encoding:"form"}},features:{usage:!0}},{id:"gemini",priority:50,hasFree:!0,alias:"gemini",display:{name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"}},category:"freeTier",authType:"apikey",authModes:["apikey"],mediaPriority:1,transport:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",kind:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",kind:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",kind:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",kind:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",params:[],kind:"image"},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",params:[],kind:"image"},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",params:[],kind:"image"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-native-audio-preview-09-17",name:"Gemini Live Transcription (Realtime)",params:["language","prompt","system_instruction","setup_timeout_ms","turn_timeout_ms"],kind:"stt",transport:"gemini-live"},{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",messagesUrl:"https://api.githubcopilot.com/v1/messages",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},copilot:{vscodeVersion:"1.110.0",chatVersion:"0.38.0",userAgent:"GitHubCopilotChat/0.38.0",apiVersion:"2025-04-01"},usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},l,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},{id:"grok-cli",priority:275,alias:"gcli",aliases:["grok-build","gb"],uiAlias:"gcli",display:{name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",website:"https://x.ai",notice:{text:"Sign in with your xAI / Grok account via device code. Uses Grok Build subscription credits (cli-chat-proxy.grok.com).",signupUrl:"https://grok.com/supergrok"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,thinkingConfig:{options:["low","medium","high","xhigh"],defaultMode:"high"},transport:{baseUrl:`${n}/responses`,format:"openai-responses",forceStream:!0,modelsUrl:`${n}/models`,userUrl:`${n}/user`,billingUrl:`${n}/billing`,clientVersion:m,clientIdentifier:o,tokenAuth:"xai-grok-cli",headers:{"User-Agent":p,"x-grok-client-identifier":o,"x-grok-client-version":m},usage:{url:`${n}/billing?format=credits`,userUrl:`${n}/user?include=subscription`},retry:{429:{attempts:2,delayMs:2e3},502:{attempts:2,delayMs:1500},503:{attempts:2,delayMs:1500}}},models:[{id:"grok-build",name:"Grok Build",contextLength:5e5,maxOutputTokens:64e3},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.5-high",name:"Grok 4.5 (High)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-medium",name:"Grok 4.5 (Medium)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-low",name:"Grok 4.5 (Low)",upstreamModelId:"grok-4.5"}],features:{usage:!0},oauth:{clientId:"b1a00492-073a-47ea-816f-4c329264a828",deviceCodeUrl:"https://auth.x.ai/oauth2/device/code",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",scope:"openid profile email offline_access grok-cli:access api:access conversations:read conversations:write",referrer:"grok-build",refreshLeadMs:3e5}},{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",transport:{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},models:[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],passthroughModels:!0},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingface",priority:70,hasFree:!0,alias:"huggingface",aliases:["hf"],uiAlias:"hf",display:{name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},{id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"},refreshLeadMs:864e5}},{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding","rerank"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]},rerankConfig:{baseUrl:"https://api.jina.ai/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"jina-reranker-v3.5",name:"Jina Reranker v3.5"},{id:"jina-reranker-v2-base-multilingual",name:"Jina Reranker v2 Multilingual"}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"keenable",alias:"keenable",display:{name:"Keenable",icon:"travel_explore",color:"#FF7E38",textIcon:"KE",website:"https://www.keenable.ai",notice:{apiKeyUrl:"https://app.keenable.ai/console"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.keenable.ai/v1/search",method:"POST",authType:"apikey",authHeader:"x-api-key",searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.keenable.ai/v1/fetch",method:"GET",authType:"apikey",authHeader:"x-api-key",formats:["markdown","text"],maxCharacters:5e4,timeoutMs:15e3}},{id:"kilo-gateway",alias:"kgw",aliases:["kilo-gateway","kilogateway"],uiAlias:"kgw",category:"freeTier",display:{name:"Kilo Gateway",icon:"login",color:"#8B5CF6",textIcon:"KG",website:"https://kilo.ai",notice:{apiKeyUrl:"https://kilo.ai/dashboard?tab=apiKeys"}},authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.kilo.ai/api/gateway/chat/completions",validateUrl:"https://api.kilo.ai/api/gateway/models"},models:[{id:"kilo-auto/free",name:"Kilo Auto Free",contextLength:256e3},{id:"nvidia/nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B (Free)",contextLength:262144},{id:"nvidia/nemotron-3-ultra-550b-a55b:free",name:"Nemotron 3 Ultra 550B (Free)",contextLength:1e6},{id:"kwaipilot/kat-coder-pro-v2.5:free",name:"Kat Coder Pro v2.5 (Free)",contextLength:256e3},{id:"kilo-auto/frontier",name:"Kilo Auto Frontier",contextLength:1e6},{id:"kilo-auto/balanced",name:"Kilo Auto Balanced",contextLength:1e6}]},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"freeTier",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",headers:{"User-Agent":"kimchi/0.1.50"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"minimax-m3",name:"MiniMax-M3"},{id:"kimi-k2.7",name:"Kimi-K2.7"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],serviceKinds:["llm","imageToText"],oauth:{webAppUrl:"https://app.kimchi.dev",validationUrl:"https://api.cast.ai/v1/llm/openai/supported-providers",userInfoUrl:"https://app.kimchi.dev/api/v1/me",modelsUrl:"https://llm.kimchi.dev/v1/models/metadata?include_in_cli=true"},passthroughModels:!0},{id:"kimi",priority:170,alias:"kimi",aliases:["kimi-coding","kmc"],display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",signupUrl:"https://www.kimi.com/code"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k3",name:"Kimi K3"},{id:"k3",name:"Kimi K3 (Code)"},{id:"kimi-for-coding",name:"Kimi for Coding"},{id:"kimi-for-coding-highspeed",name:"Kimi for Coding Highspeed"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k2.7-code-highspeed",name:"Kimi K2.7 Code Highspeed"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k3",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.kimi.ai/docs/pricing/chat"},oauth:{clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5,authorizeDeviceUrl:"https://www.kimi.com/code/authorize_device"},features:{usage:!0,usageApikey:!0}},{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev",usage:{cwHost:"https://codewhisperer.us-east-1.amazonaws.com",qHost:"https://q.us-east-1.amazonaws.com",limitsPath:"/getUsageLimits"}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-opus-5.5-thinking",name:"Claude Opus 5.5 (Thinking)"},{id:"claude-opus-5.5-agentic",name:"Claude Opus 5.5 (Agentic)"},{id:"claude-opus-5.5-thinking-agentic",name:"Claude Opus 5.5 (Thinking + Agentic)"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5-thinking",name:"Claude Opus 5 (Thinking)"},{id:"claude-opus-5-agentic",name:"Claude Opus 5 (Agentic)"},{id:"claude-opus-5-thinking-agentic",name:"Claude Opus 5 (Thinking + Agentic)"},{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-thinking",name:"Claude Opus 4.8 (Thinking)"},{id:"claude-opus-4.8-agentic",name:"Claude Opus 4.8 (Agentic)"},{id:"claude-opus-4.8-thinking-agentic",name:"Claude Opus 4.8 (Thinking + Agentic)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-opus-4.7-thinking",name:"Claude Opus 4.7 (Thinking)"},{id:"claude-opus-4.7-agentic",name:"Claude Opus 4.7 (Agentic)"},{id:"claude-opus-4.7-thinking-agentic",name:"Claude Opus 4.7 (Thinking + Agentic)"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 (Thinking)"},{id:"claude-opus-4.5-agentic",name:"Claude Opus 4.5 (Agentic)"},{id:"claude-opus-4.5-thinking-agentic",name:"Claude Opus 4.5 (Thinking + Agentic)"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking",name:"Claude Sonnet 5 (Thinking)"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)"},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)"},{id:"gpt-5.6-sol-thinking",name:"GPT 5.6 Sol (Thinking)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking",name:"GPT 5.6 Terra (Thinking)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking",name:"GPT 5.6 Luna (Thinking)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)"},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)"},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)"},{id:"gpt-5.6-sol-agentic",name:"GPT 5.6 Sol (Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-agentic",name:"GPT 5.6 Terra (Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-agentic",name:"GPT 5.6 Luna (Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)"},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)"},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)"},{id:"gpt-5.6-sol-thinking-agentic",name:"GPT 5.6 Sol (Thinking + Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking-agentic",name:"GPT 5.6 Terra (Thinking + Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking-agentic",name:"GPT 5.6 Luna (Thinking + Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"llm7",alias:"llm7",aliases:["llm-7"],uiAlias:"llm7",display:{name:"LLM7",icon:"pool",color:"#7C3AED",textIcon:"L7",website:"https://llm7.io",notice:{apiKeyUrl:"https://llm7.io"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.llm7.io/v1/chat/completions",validateUrl:"https://api.llm7.io/v1/models"},models:[{id:"gpt-5.5",name:"GPT-5.5 (LLM7)",contextLength:105e4},{id:"claude-opus-5",name:"Claude Opus 5 (LLM7)",contextLength:1e6},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (LLM7)",contextLength:1e6},{id:"grok-4.5",name:"Grok 4.5 (LLM7)",contextLength:5e5},{id:"kimi-k3",name:"Kimi K3 (LLM7)",contextLength:1e6}],passthroughModels:!0},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"longcat-intl",alias:"longcat-intl",uiAlias:"longcat-intl",display:{name:"LongCat Intl",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.ai",notice:{apiKeyUrl:"https://longcat.ai/platform/product"}},category:"apikey",transport:{baseUrl:"https://api.longcat.ai/openai/v1/chat/completions",validateUrl:"https://api.longcat.ai/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"longcat",alias:"longcat",display:{name:"LongCat",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.chat",notice:{apiKeyUrl:"https://longcat.chat/platform/product?inviteCode=ULW84AMZ"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://api.longcat.chat/openai/v1/chat/completions",validateUrl:"https://api.longcat.chat/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"mimo-desktop",priority:22,alias:"mimo-desktop",aliases:["xmd"],uiAlias:"xmd",display:{name:"MiMo Desktop",icon:"smart_toy",color:"#FF6900",textIcon:"XMD",website:"https://mimo.xiaomimimo.com",notice:{text:"Account-session models. Requires MiMo Desktop to be installed and signed in on this machine — the session cookie is read from it locally and never stored here. No API key is needed for these models.",signupUrl:"https://mimo.xiaomimimo.com/desktop/invite/"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,serviceKinds:["llm"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",rateMultiplier:1,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",rateMultiplier:.4,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed",supportedFormats:["openai"],requiresSession:!0}],features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"mimo-free",hidden:!1,priority:50,hasFree:!0,alias:"mimo-free",uiAlias:"mimo-free",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF",deprecationNotice:"MiMo free API service has ended. This provider is no longer free. It is hidden from the usage topology by default — enable it via the toggle if you still want it shown."},topologyHiddenByDefault:!0,category:"free",noAuth:!0,community:!0,transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}],modelsFetcher:{url:"https://models.dev/api.json",type:"mimo-free"},passthroughModels:!0},{id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},{id:"minimax-code-global",priority:84,alias:"minimax-code-global",aliases:["mmg","mmcode"],uiAlias:"mmg",display:{name:"MiniMax Code (Global)",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.io"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.io/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.io/oauth2/device/code",tokenUrl:"https://account.minimax.io/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash Preview"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax-code",priority:82,alias:"mcode",aliases:["mm","mcode"],uiAlias:"mcode",display:{name:"MiniMax Code",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.cn"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.cn/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.cn/oauth2/device/code",tokenUrl:"https://account.minimax.cn/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash Preview"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"mmf",hidden:!0,priority:200,display:{name:"MMF",icon:"hub",color:"#6366F1",textIcon:"MF"},category:"apikey",transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"morph",alias:"morph",aliases:["morphllm"],uiAlias:"morph",display:{name:"Morph",icon:"change_history",color:"#14B8A6",textIcon:"MP",website:"https://morphllm.com",notice:{apiKeyUrl:"https://morphllm.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.morphllm.com/v1/chat/completions",validateUrl:"https://api.morphllm.com/v1/models"},models:[{id:"morph-v3-large",name:"Morph v3 Large"},{id:"morph-v3-fast",name:"Morph v3 Fast"},{id:"morph-qwen35-397b",name:"Qwen 3.5 397B (Morph)",contextLength:262144},{id:"morph-minimax27-230b",name:"MiniMax M2.7 (Morph)",contextLength:200704},{id:"morph-qwen36-27b",name:"Qwen 3.6 27B (Morph)",contextLength:262144},{id:"morph-dsv4flash",name:"DeepSeek V4 Flash (Morph)",contextLength:1048576}]},{id:"muse",priority:120,alias:"muse",aliases:["muse-ai","meta-model-api","muse-code","muse-subscription"],uiAlias:"muse",display:{name:"Muse (Meta Model API)",icon:"auto_awesome",color:"#0866FF",textIcon:"MU",website:"https://muse.ai",notice:{text:"Sign in with your Meta account (Muse Code subscription) or paste a Model API key from dev.meta.ai. Subscription keys are minted per account; Meta may train on contributor-tier data.",apiKeyUrl:"https://dev.meta.ai",signupUrl:"https://muse.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.meta.ai/v1/chat/completions",validateUrl:"https://api.meta.ai/v1/models",modelsUrl:"https://api.meta.ai/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.meta.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},{format:"openai-responses",baseUrl:"https://api.meta.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}}],models:[{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.1",name:"Muse Spark 1.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],passthroughModels:!0,oauth:{clientId:"1031625952748946",deviceCodeUrl:"https://auth.meta.com/oidc/device/authorization/",tokenUrl:"https://auth.meta.com/oidc/device/token/"}},{id:"nanobanana",priority:80,hasFree:!0,alias:"nanobanana",aliases:["nb"],uiAlias:"nb",display:{name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"}},category:"apikey",transport:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama-search",alias:"ollama-search",display:{name:"Ollama Search",icon:"cloud",color:"#ffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Web search via Ollama Cloud subscription. Reuses the API key from the Ollama (chat) provider.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch"],credentialFallback:"ollama",searchConfig:{baseUrl:"https://ollama.com/api/web_search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"ollama",priority:30,hasFree:!0,alias:"ollama",display:{name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.5-pro",name:"GPT-5.5 Pro"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",kind:"embedding"},{id:"tts-1",name:"TTS-1",kind:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"whisper-1",name:"Whisper 1",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-image-2.5",name:"GPT Image 2.5",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax, DeepSeek, Grok, GPT and more.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-luna",name:"GPT 6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"longcat-2.0",name:"LongCat 2.0",supportedFormats:["openai"]},{id:"longcat-2.5-preview-free",name:"LongCat 2.5 Preview (Free)",supportedFormats:["openai"]},{id:"space-bunny-free",name:"Space Bunny (Free)",supportedFormats:["openai","claude"]},{id:"space-bunny",name:"Space Bunny",supportedFormats:["openai","claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-flash",name:"DeepSeek V4.1 Flash (alias id)",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",supportedFormats:["openai","claude","openai-responses"]},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",supportedFormats:["openai"]},{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",supportedFormats:["openai"]},{id:"mimo-v2.5",name:"MiMo V2.5",supportedFormats:["openai"]},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",supportedFormats:["openai"]},{id:"mimo-v2-pro",name:"MiMo V2 Pro",supportedFormats:["openai"]},{id:"mimo-v2-omni",name:"MiMo V2 Omni",supportedFormats:["openai"]},{id:"hy4-preview",name:"Hy4 Preview",supportedFormats:["openai"]},{id:"hy3",name:"Hy3",supportedFormats:["openai"]},{id:"hy3-preview",name:"Hy3 Preview",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai","claude"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["openai","claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["openai","claude"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"omen-alpha",name:"Omen Alpha"}]},{id:"opencode-zen",priority:205,alias:"ocz",aliases:["opencode-zen"],uiAlias:"ocz",display:{name:"OpenCode Zen",icon:"terminal",color:"#E87040",textIcon:"OZ",website:"https://opencode.ai/auth",notice:{text:"OpenCode Zen PAYG: pay-as-you-go, key from https://opencode.ai/auth. Same models as Zen: paid + free tiers on the fast lane.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{baseUrl:"https://opencode.ai/zen/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/v1/usage"}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"claude-fable-5",name:"Claude Fable 5",supportedFormats:["claude"]},{id:"claude-fable-5-1",name:"Claude Fable 5.1",supportedFormats:["claude"]},{id:"claude-opus-5-5",name:"Claude Opus 5.5",supportedFormats:["claude"]},{id:"claude-opus-5",name:"Claude Opus 5",supportedFormats:["claude"]},{id:"claude-opus-4-8",name:"Claude Opus 4.8",supportedFormats:["claude"]},{id:"claude-opus-4-7",name:"Claude Opus 4.7",supportedFormats:["claude"]},{id:"claude-opus-4-6",name:"Claude Opus 4.6",supportedFormats:["claude"]},{id:"claude-opus-4-5",name:"Claude Opus 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",supportedFormats:["claude"]},{id:"claude-sonnet-5",name:"Claude Sonnet 5",supportedFormats:["claude"]},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",supportedFormats:["claude"]},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-4",name:"Claude Sonnet 4",supportedFormats:["claude"]},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",supportedFormats:["claude"]},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",supportedFormats:["claude"]},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",supportedFormats:["openai"]},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",supportedFormats:["openai"]},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",supportedFormats:["openai"]},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",supportedFormats:["openai"]},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",supportedFormats:["openai"]},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",supportedFormats:["openai"]},{id:"gemini-3-flash",name:"Gemini 3 Flash",supportedFormats:["openai"]},{id:"gpt-6-astra",name:"GPT 6 Astra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-sol",name:"GPT 6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5",name:"GPT 5.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5-pro",name:"GPT 5.5 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4",name:"GPT 5.4",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-pro",name:"GPT 5.4 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-nano",name:"GPT 5.4 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2",name:"GPT 5.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1",name:"GPT 5.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5",name:"GPT 5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-codex",name:"GPT 5 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-nano",name:"GPT 5 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-build-0.1",name:"Grok Build 0.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision Exp",supportedFormats:["openai"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"big-pickle",name:"Big Pickle",supportedFormats:["openai"]},{id:"mistral-large-4",name:"Mistral Large 4",supportedFormats:["openai"]},{id:"union-alpha",name:"Union Alpha",supportedFormats:["claude"]},{id:"deepseek-v4-flash-free",name:"DeepSeek V4 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.5-free",name:"MiMo V2.5 Free",supportedFormats:["openai"]},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free",supportedFormats:["openai"]},{id:"ling-3.1-flash-free",name:"Ling 3.1 Flash Free",supportedFormats:["openai"]},{id:"fledge-alpha-free",name:"Fledge Alpha Free",supportedFormats:["openai"]},{id:"exo-free",name:"Exo Free",supportedFormats:["openai"]},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free",supportedFormats:["openai"]},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free",supportedFormats:["openai"]},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"opencode",priority:40,hasFree:!0,alias:"oc",uiAlias:"oc",display:{name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC"},category:"free",noAuth:!0,community:!0,topologyHiddenByDefault:!1,transport:{baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"cli"},noAuth:!0,forceStream:!0,reasoningInject:{scope:"all"},quirks:{forceAutoToolChoiceModels:["muse-spark-1.3-contributor-free"]}},models:[{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses"},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses"},{id:"big-pickle",name:"Big Pickle"},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free"},{id:"mimo-v2.5-free",name:"MiMo-V2.5 Free"},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free"},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free"},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free"},{id:"jev-1.13-free",name:"Jev 1.13 Free",kind:"systemone"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://opencode.ai/zen/v1/systemone",headers:{"x-opencode-client":"cli","User-Agent":"opencode/1.18.35"}},modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0},{id:"openrouter",priority:10,hasFree:!0,alias:"openrouter",display:{name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After 0 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"},{id:"typesafe/jev-1.13",name:"Jev 1.13 (via OpenRouter)",kind:"systemone"}],serviceKinds:["llm","embedding","tts","imageToText","systemone"],systemoneConfig:{baseUrl:"https://openrouter.ai/api/v1/systemone",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},ttsConfig:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},imageConfig:{baseUrl:"https://openrouter.ai/api/v1/images/generations",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-agent",priority:181,alias:"perplexity-agent",aliases:["pplx-agent","pplx-responses","pa"],uiAlias:"pa",display:{name:"Perplexity Agent",icon:"travel_explore",color:"#20808D",textIcon:"PA",website:"https://www.perplexity.ai",notice:{text:"Perplexity Agent API exposes GPT, Claude, Gemini, Grok, GLM, Kimi, and Sonar models through one OpenAI-compatible Responses API.",apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/v1/responses",validateUrl:"https://api.perplexity.ai/v1/models",format:"openai-responses"},models:[{id:"perplexity/sonar",name:"Perplexity Sonar"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4-8",name:"Claude Opus 4.8"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"xai/grok-4.20-reasoning",name:"Grok 4.20 Reasoning"},{id:"perplexity/glm-5.2",name:"GLM 5.2"},{id:"perplexity/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"perplexity/sonar",endpoint:"https://api.perplexity.ai/v1/responses",pricingUrl:"https://docs.perplexity.ai/docs/agent-api/models"},modelsFetcher:{url:"https://api.perplexity.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"poolside",priority:60,alias:"poolside",aliases:["ps"],uiAlias:"ps",display:{name:"Poolside",icon:"water_drop",color:"#0EA5E9",textIcon:"PS",website:"https://poolside.ai",notice:{apiKeyUrl:"https://platform.poolside.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://inference.poolside.ai/v1/chat/completions",validateUrl:"https://inference.poolside.ai/v1/models"},models:[{id:"poolside/laguna-s-2.1",name:"Laguna S 2.1"},{id:"poolside/laguna-xs-2.1",name:"Laguna XS 2.1"}]},{id:"qoder-cn",priority:31,alias:"qdc",uiAlias:"qdc",display:{name:"Qoder CN",icon:"water_drop",color:"#F43F5E",website:"https://qoder.cn",notice:{signupUrl:"https://qoder.cn"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) 来自 https://qoder.cn/account/integrations",modelsJsonUrl:"https://api.github.com/repos/techysy/10router/contents/providers/qoder-cn.json",fallbackModelsJsonUrl:"https://gitee.com/techysy/10router/raw/main/providers/qoder-cn.json",transport:{baseUrl:"https://gateway.qoder.com.cn/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.com.cn/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"q37fmodel",name:"Qwen3.7-Flash"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"gm51model",name:"GLM-5.2"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4-Flash"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.com.cn",centerBaseUrl:"https://gateway.qoder.com.cn",chatBaseUrl:"https://gateway.qoder.com.cn",deviceTokenUrl:"https://openapi.qoder.com.cn/api/v1/deviceToken/poll",refreshUrl:"https://gateway.qoder.com.cn/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.com.cn/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.com.cn/api/v2/quota/usage",loginUrl:"https://qoder.cn/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) từ https://qoder.com/account/integrations",transport:{baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"ultimate",name:"Ultimate"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4-Flash"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.sh",centerBaseUrl:"https://center.qoder.sh",chatBaseUrl:"https://api3.qoder.sh",deviceTokenUrl:"https://openapi.qoder.sh/api/v1/deviceToken/poll",refreshUrl:"https://center.qoder.sh/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.sh/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.sh/api/v2/quota/usage",loginUrl:"https://qoder.com/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"recraft",priority:70,alias:"recraft",display:{name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"recraftv3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"recraftv2",name:"Recraft V2",params:["n","size","style"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{id:"river",priority:68,alias:"river",aliases:["rv"],display:{name:"River AI",icon:"bolt",color:"#2563EB",textIcon:"RV",website:"https://river.ai",notice:{apiKeyUrl:"https://console.river.ai/keys"}},category:"apikey",transport:{baseUrl:"https://api.river.ai/v1/chat/completions",validateUrl:"https://api.river.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://api.river.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"responses",baseUrl:"https://api.river.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1048576,maxOutput:384e3},{id:"zai-org/GLM-5.3-Flash",name:"GLM 5.3 Flash",contextWindow:1048576,maxOutput:131072}],features:{usage:!0,usageApikey:!0}},{id:"runwayml",priority:80,alias:"runwayml",aliases:["runway"],uiAlias:"runway",display:{name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"gen4_image",name:"Gen-4 Image",params:["size"],kind:"image"},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",params:["size"],kind:"image"},{id:"gen4_turbo",name:"Gen-4 Turbo",params:[],kind:"video"},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",params:[],kind:"video"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1"}},{id:"sambanova",alias:"samba",aliases:["sambanova-ai"],uiAlias:"samba",hidden:!0,display:{name:"SambaNova",icon:"memory",color:"#F97316",textIcon:"SN",website:"https://sambanova.ai",notice:{apiKeyUrl:"https://cloud.sambanova.ai/apis"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",validateUrl:"https://api.sambanova.ai/v1/models"},models:[{id:"MiniMax-M2.7",name:"MiniMax M2.7",contextLength:196608}]},{id:"sdwebui",priority:110,alias:"sdwebui",display:{name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:c(41534).Ps,method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},{id:"selfhosted-embedding",priority:50,hasFree:!0,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"cloud",color:"#ffffffff",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the OpenAI base URL, e.g. http://host:8080/v1 — /embeddings is appended. The API key is not checked by local servers; any value works."}},models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"http://localhost:8080/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"selfhosted-stt",priority:50,hasFree:!0,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"cloud",color:"#ffffffff",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the full transcriptions URL, e.g. http://host:8080/v1/audio/transcriptions. The API key is not checked by local servers; any value works."}},models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"http://localhost:8080/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,hasFree:!0,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"cloud",color:"#ffffffff",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the server root, e.g. http://host:8080 — /v1/audio/speech is appended. The API key is not checked by local servers; any value works."}},models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{baseUrl:"http://localhost:8880",defaultModel:"kokoro",authType:"apikey",format:"openai-speech"}},{id:"sensenova",alias:"sensenova",display:{name:"SenseNova",icon:"blur_on",color:"#1177E4",textIcon:"SN",website:"https://www.sensenova.cn",notice:{apiKeyUrl:"https://platform.sensenova.cn/console/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://token.sensenova.cn/v1/chat/completions",validateUrl:"https://token.sensenova.cn/v1/models"},models:[{id:"sensenova-6.8-flash-lite",name:"SenseNova 6.8 Flash Lite"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"sensenova-u1.5-lite",name:"SenseNova U1.5 Lite",kind:"image",capabilities:["text2img"]},{id:"sensenova-u1-fast",name:"SenseNova U1 Fast",kind:"image",capabilities:["text2img"]}]},{id:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow-cn",priority:115,alias:"siliconflow-cn",aliases:["sfcn"],uiAlias:"sfcn",display:{name:"SiliconFlow CN",icon:"bolt",color:"#1FA34A",textIcon:"SF",website:"https://siliconflow.cn",notice:{apiKeyUrl:"https://cloud.siliconflow.cn/i/OzcMUfeM"}},category:"apikey",authType:"apikey",serviceKinds:["llm","image","video","embedding","rerank"],imageConfig:{baseUrl:"https://api.siliconflow.cn/v1/images/generations"},videoConfig:{baseUrl:"https://api.siliconflow.cn/v1/videos/generations"},embeddingConfig:{baseUrl:"https://api.siliconflow.cn/v1/embeddings"},rerankConfig:{baseUrl:"https://api.siliconflow.cn/v1/rerank"},transport:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",validateUrl:"https://api.siliconflow.cn/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"Kwai-Kolors/Kolors",name:"Kolors",params:["size"],kind:"image"},{id:"zai-org/Z-Image-Turbo",name:"Z-Image Turbo",params:["size"],kind:"image"},{id:"Qwen/Qwen-Image",name:"Qwen Image",params:["size"],kind:"image"},{id:"Wan-AI/Wan2.2-T2V-A14B",name:"Wan2.2 T2V",params:["size"],kind:"video"},{id:"Wan-AI/Wan2.2-I2V-A14B",name:"Wan2.2 I2V",params:["size"],kind:"video"},{id:"BAAI/bge-reranker-v2-m3",name:"BGE Reranker v2 M3",kind:"rerank"},{id:"BAAI/bge-reranker-v2-gemma",name:"BGE Reranker v2 Gemma",kind:"rerank"}],features:{usage:!0,usageApikey:!0}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"stepfun-cn",priority:65,alias:"step-cn",aliases:["stepfun-cn","sf-cn"],display:{name:"StepFun CN",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/v1/chat/completions",validateUrl:"https://api.stepfun.com/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"stepfun-plan-cn",priority:64,alias:"stepp-cn",aliases:["step-plan-cn","sfp-cn","sfpcn","stepfun-plan-cn"],display:{name:"StepFun CN Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.com/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.com/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun-plan",priority:66,alias:"stepp",aliases:["step-plan","sfp","stepfun-plan"],display:{name:"StepFun Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.ai/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.ai/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun",priority:67,alias:"step",aliases:["stepfun","sf"],display:{name:"StepFun",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/v1/chat/completions",validateUrl:"https://api.stepfun.ai/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"tencent",alias:"hunyuan",aliases:["hunyuan","tencent-hunyuan"],uiAlias:"hunyuan",display:{name:"Tencent Hunyuan",icon:"cloud",color:"#0052D9",textIcon:"HY",website:"https://cloud.tencent.com/product/hunyuan",notice:{apiKeyUrl:"https://console.cloud.tencent.com/hunyuan/api-key"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.hunyuan.cloud.tencent.com/v1/chat/completions",validateUrl:"https://api.hunyuan.cloud.tencent.com/v1/models"},models:[{id:"hunyuan-turbos-latest",name:"Hunyuan TurboS Latest",contextLength:2e5},{id:"hunyuan-t1-latest",name:"Hunyuan T1 Latest",contextLength:256e3}]},{id:"tinyfish",alias:"tinyfish",display:{name:"TinyFish",icon:"travel_explore",color:"#D74B28",textIcon:"TF",website:"https://tinyfish.ai",notice:{apiKeyUrl:"https://agent.tinyfish.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.search.tinyfish.ai",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.fetch.tinyfish.ai",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,formats:["markdown","text","html"],maxCharacters:1e5,timeoutMs:3e4}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"tokenbom",alias:"tokenbom",display:{name:"TokenBom",icon:"bolt",color:"#6366F1",textIcon:"TB",website:"https://tokenbom.com",notice:{apiKeyUrl:"https://tokenbom.com/login?mode=register&invite=SS-CB5D0A43"}},category:"apikey",transport:{baseUrl:"https://tokenbom.com/v1/chat/completions",validateUrl:"https://tokenbom.com/v1/models"},models:[{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-4.8-opus",name:"Claude Opus 4.8"},{id:"claude-4.7-opus",name:"Claude Opus 4.7"},{id:"claude-4.6-opus",name:"Claude Opus 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"kimi-k3",name:"Kimi K3"},{id:"qwen3.8-flash",name:"Qwen3.8-Flash"}]},{id:"tokenharbor",alias:"tokenharbor",aliases:["th","thh"],uiAlias:"tokenharbor",display:{name:"Token Harbor",icon:"anchor",color:"#0F766E",textIcon:"TH",website:"https://tokenharbor.ai",notice:{apiKeyUrl:"https://tokenharbor.ai/dashboard"}},category:"apikey",authType:"apikey",priority:45,transport:{baseUrl:"https://tokenharbor.ai/v1/chat/completions",validateUrl:"https://tokenharbor.ai/v1/models",retry:{429:2}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-5.5:free",name:"Claude Haiku 5.5 (Free)"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-sol",name:"GPT-6 Sol"},{id:"deepseek-v4.1-flash:free",name:"DeepSeek V4.1 Flash (Free)"},{id:"qwen3.8-flash:free",name:"Qwen3.8 Flash (Free)"},{id:"mimo-v2.6-flash:free",name:"MiMo V2.6 Flash (Free)"},{id:"grok-4.7",name:"Grok 4.7"}],modelsFetcher:{url:"https://tokenharbor.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"tokenrouter",alias:"tokenrouter",aliases:[],uiAlias:"tokenrouter",display:{name:"TokenRouter",icon:"hub",color:"#0EA5E9",textIcon:"TR",website:"https://www.tokenrouter.com",notice:{text:"OpenAI-compatible gateway. 300+ models (OpenAI, Claude, Gemini, Qwen, DeepSeek, Kimi, GLM, dsb).",apiKeyUrl:"https://www.tokenrouter.com"}},category:"apikey",thinkingConfig:{options:["low","medium","high","xhigh","max"],defaultMode:"high"},transport:{baseUrl:"https://api.tokenrouter.com/v1/chat/completions",validateUrl:"https://api.tokenrouter.com/v1/models",thinkingFormat:"tokenrouter"},models:[{id:"MiniMax-Hailuo-2.3",name:"Minimax Hailuo 2.3",kind:"video"},{id:"MiniMax-M3",name:"Minimax M3"},{id:"anthropic/claude-fable-5",name:"Claude Fable 5"},{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-opus-4.7-fast",name:"Claude Opus 4.7 Fast"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8"},{id:"anthropic/claude-opus-4.8-fast",name:"Claude Opus 4.8 Fast"},{id:"anthropic/claude-opus-5",name:"Claude Opus 5"},{id:"anthropic/claude-opus-5-fast",name:"Claude Opus 5 Fast"},{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4"},{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5"},{id:"bytedance-seed/seedream-4.5",name:"Seedream 4.5",kind:"image"},{id:"bytedance-seed/seedream-5.0-lite",name:"Seedream 5.0 Lite",kind:"image"},{id:"bytedance-seed/seedream-5.0-pro",name:"Seedream 5.0 Pro",kind:"image"},{id:"claude-haiku-4-5",name:"Claude Haiku 4 5"},{id:"claude-opus-4-8-m-aws",name:"Claude Opus 4 8 M Aws"},{id:"deepseek/deepseek-v3.2",name:"Deepseek V3.2"},{id:"deepseek/deepseek-v4-flash",name:"Deepseek V4 Flash"},{id:"deepseek/deepseek-v4-flash-0731",name:"Deepseek V4 Flash 0731"},{id:"deepseek/deepseek-v4-pro",name:"Deepseek V4 Pro"},{id:"ex/gpt-5.4",name:"Gpt 5.4"},{id:"google/gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image"},{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"google/gemini-3-pro-image-preview",name:"Gemini 3 Pro Image Preview"},{id:"google/gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"},{id:"google/gemini-3.1-flash-lite-image",name:"Gemini 3.1 Flash Lite Image"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-embedding-2",name:"Gemini Embedding 2"},{id:"google/gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B It"},{id:"happyhorse-1.0-t2v",name:"Happyhorse 1.0 T2V",kind:"video"},{id:"kling-3.0-turbo",name:"Kling 3.0 Turbo",kind:"video"},{id:"kling-v2-6",name:"Kling V2 6",kind:"video"},{id:"kling-v3",name:"Kling V3",kind:"video"},{id:"kling-v3-omni",name:"Kling V3 Omni",kind:"video"},{id:"microsoft/mai-image-2.5",name:"Mai Image 2.5"},{id:"minimax/minimax-m2-her",name:"Minimax M2 Her"},{id:"minimax/minimax-m2.1",name:"Minimax M2.1"},{id:"minimax/minimax-m2.1-highspeed",name:"Minimax M2.1 Highspeed"},{id:"minimax/minimax-m2.5",name:"Minimax M2.5"},{id:"minimax/minimax-m2.7",name:"Minimax M2.7"},{id:"minimax/minimax-m2.7-highspeed",name:"Minimax M2.7 Highspeed"},{id:"miromind/mirothinker-1-7-deepresearch",name:"Mirothinker 1 7 Deepresearch"},{id:"miromind/mirothinker-1-7-deepresearch-mini",name:"Mirothinker 1 7 Deepresearch Mini"},{id:"mistralai/devstral-2512",name:"Devstral 2512"},{id:"mistralai/mistral-medium-3-5",name:"Mistral Medium 3 5"},{id:"mistralai/mistral-small-2603",name:"Mistral Small 2603"},{id:"mistralai/voxtral-small-24b-2507",name:"Voxtral Small 24B 2507"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"moonshotai/kimi-k3",name:"Kimi K3"},{id:"moonshotai/kimi-k3-free",name:"Kimi K3 Free"},{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",name:"Nemotron 3 Nano Omni 30B A3B Reasoning:Free"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B A12B"},{id:"openai/gpt-4o-mini",name:"Gpt 4O Mini"},{id:"openai/gpt-5",name:"Gpt 5"},{id:"openai/gpt-5-image",name:"Gpt 5 Image"},{id:"openai/gpt-5-image-mini",name:"Gpt 5 Image Mini"},{id:"openai/gpt-5-mini",name:"Gpt 5 Mini"},{id:"openai/gpt-5.2",name:"Gpt 5.2"},{id:"openai/gpt-5.4",name:"Gpt 5.4"},{id:"openai/gpt-5.4-image-2",name:"Gpt 5.4 Image 2",kind:"image"},{id:"openai/gpt-5.4-mini",name:"Gpt 5.4 Mini"},{id:"openai/gpt-5.4-nano",name:"Gpt 5.4 Nano"},{id:"openai/gpt-5.4-pro",name:"Gpt 5.4 Pro"},{id:"openai/gpt-5.5",name:"Gpt 5.5"},{id:"openai/gpt-5.5-pro",name:"Gpt 5.5 Pro"},{id:"openai/gpt-5.6-luna",name:"Gpt 5.6 Luna"},{id:"openai/gpt-5.6-sol",name:"Gpt 5.6 Sol"},{id:"openai/gpt-5.6-terra",name:"Gpt 5.6 Terra"},{id:"openai/gpt-audio",name:"Gpt Audio",kind:"audio"},{id:"openai/gpt-audio-mini",name:"Gpt Audio Mini",kind:"audio"},{id:"openai/gpt-oss-120b",name:"Gpt Oss 120B"},{id:"qwen/qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen/qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen/qwen3.5-35b-a3b",name:"Qwen3.5 35B A3B"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen/qwen3.5-9b",name:"Qwen3.5 9B"},{id:"qwen/qwen3.5-flash",name:"Qwen3.5 Flash"},{id:"qwen/qwen3.5-plus-02-15",name:"Qwen3.5 Plus 02 15"},{id:"qwen/qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen/qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen/qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen/qwen3.8-max",name:"Qwen3.8 Max"},{id:"qwen3.5-omni-plus",name:"Qwen3.5 Omni Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"seed-2-0-code-preview-260328",name:"Seed 2 0 Code Preview 260328"},{id:"seed-2-0-lite-260428",name:"Seed 2 0 Lite 260428"},{id:"seed-2-0-mini-260428",name:"Seed 2 0 Mini 260428"},{id:"seed-2-0-pro-260328",name:"Seed 2 0 Pro 260328"},{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-preview",name:"Hy3 Preview"},{id:"x-ai/grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"x-ai/grok-4.20-beta",name:"Grok 4.20 Beta"},{id:"x-ai/grok-4.3",name:"Grok 4.3"},{id:"x-ai/grok-4.5",name:"Grok 4.5"},{id:"x-ai/grok-build-0.1",name:"Grok Build 0.1"},{id:"xiaomi/mimo-v2-flash",name:"Mimo V2 Flash"},{id:"xiaomi/mimo-v2-omni",name:"Mimo V2 Omni"},{id:"xiaomi/mimo-v2-pro",name:"Mimo V2 Pro"},{id:"xiaomi/mimo-v2.5",name:"Mimo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"Mimo V2.5 Pro"},{id:"z-ai/glm-4.5-air",name:"Glm 4.5 Air"},{id:"z-ai/glm-4.6",name:"Glm 4.6"},{id:"z-ai/glm-4.6v",name:"Glm 4.6V"},{id:"z-ai/glm-4.7",name:"Glm 4.7"},{id:"z-ai/glm-5",name:"Glm 5"},{id:"z-ai/glm-5-turbo",name:"Glm 5 Turbo"},{id:"z-ai/glm-5.1",name:"Glm 5.1"},{id:"z-ai/glm-5.2",name:"Glm 5.2"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.tokenrouter.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.tokenrouter.com/v1/images/generations"},modelsFetcher:{url:"https://api.tokenrouter.com/v1/models",type:"openai"},passthroughModels:!0},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"trae-free",priority:58,alias:"trae-free",uiAlias:"trae-free",display:{name:"Trae Free",icon:"bolt",color:"#FF6A00",textIcon:"TF",website:"https://www.trae.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/trae/v1/messages",format:"claude",noAuth:!0},models:[{id:"Doubao-Seed-Code",name:"Doubao Seed Code"},{id:"Doubao-Seed-2.1-Pro",name:"Doubao Seed 2.1-Pro"},{id:"Doubao-Seed-2.1-Turbo",name:"Doubao Seed 2.1-Turbo"},{id:"Doubao-Seed-Evolving",name:"Doubao Seed Evolving"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1-Flash"},{id:"DeepSeek-V4-Flash-Official",name:"DeepSeek V4-Flash Official"},{id:"DeepSeek-V4-Pro-Official",name:"DeepSeek V4-Pro Official"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3-Flash"},{id:"glm-5.3-flashx",name:"GLM 5.3-FlashX"},{id:"mimo-v2.6-flash",name:"MiMo V2.6-Flash"},{id:"mimo-v2.6-pro",name:"MiMo V2.6-Pro"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.7-code",name:"Kimi K2.7-Code"},{id:"kimi-k3",name:"Kimi K3"},{id:"minimax-m3",name:"MiniMax M3"},{id:"qwen-3.7-plus",name:"Qwen 3.7-Plus"},{id:"qwen3.8-max",name:"Qwen 3.8-Max"},{id:"step-5-preview",name:"Step 5-Preview"}]},{id:"trae",alias:"tr",uiAlias:"tr",aliases:["marscode"],category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth"],display:{name:"Trae",icon:"bolt",color:"#FF6A00",textIcon:"TR",website:"https://www.trae.ai",notice:{signupUrl:"https://www.trae.ai"}},transport:{baseUrl:"https://core-normal.trae.ai/api/remote/v1",format:"openai",headers:{"X-Trae-Client-Type":"web","X-Preferenced-Language":"en",Referer:"https://solo.trae.ai/"},auth:{combined:!0,header:"Authorization",scheme:"Cloud-IDE-JWT"},usage:{url:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo"},regions:{cn:"https://api.marscode.com",sg:"https://api.trae.ai",us:"https://www.trae.ai"},defaultRegion:"cn"},oauth:{clientId:"ono9krqynydwx5",clientSecret:"-",platform:"trae",pollInterval:1500,loginGuidanceUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance",tokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",exchangeTokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",refreshUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",userInfoUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo",refresh:{encoding:"json"}},models:[{id:"auto",name:"Auto (Server Picks)"},{id:"work",name:"Work (Fast)"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3-flash-solo",name:"Gemini 3 Flash"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.2",name:"GPT 5.2"}],features:{usage:!0}},{id:"v1m",priority:45,alias:"v1m",aliases:["systemone","jev"],uiAlias:"v1m",display:{name:"v1m (System One)",icon:"psychology",color:"#6366F1",textIcon:"V1",website:"https://v1m.ir",notice:{text:"v1m System One calibrated decision engine. Fast probabilistic evaluations over state and questions.",apiKeyUrl:"https://v1m.ir"}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,models:[{id:"rev-latest",name:"v1m Rev Latest (Calibrated)",kind:"systemone"},{id:"v1m-decision-engine",name:"v1m Decision Engine",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://v1m.ir/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"venice",priority:115,alias:"venice",aliases:["vn"],uiAlias:"venice",display:{name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"}},category:"apikey",transport:{baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",aliases:["voyage"],uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"windsurf",alias:"ws",uiAlias:"ws",display:{name:"Windsurf",icon:"surfing",color:"#14B8A6",website:"https://windsurf.com",notice:{signupUrl:"https://windsurf.com"}},category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth","apikey"],transport:{baseUrl:"https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",format:"openai",headers:{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto","X-Grpc-Web":"1"},auth:{combined:!0,header:"Authorization",scheme:"Bearer"}},oauth:{clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",firebaseSignInUrl:"https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword",registerUrl:"https://register.windsurf.com/exa.seat_management_pb.SeatManagementService/RegisterUser",apiServerUrl:"https://server.codeium.com",auth1ApiServerUrl:"https://server.self-serve.windsurf.com",platform:"windsurf",quotaUrl:"https://windsurf.com/_backend/exa.seat_management_pb.SeatManagementService/GetPlanStatus"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max"},{id:"claude-opus-4.7-xhigh",name:"Claude Opus 4.7 XHigh"},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High"},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium"},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low"},{id:"claude-opus-4.7-review",name:"Claude Opus 4.7 Review"},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M"},{id:"claude-sonnet-4.6-1m",name:"Claude Sonnet 4.6 1M"},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 Thinking"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"gpt-5.5-xhigh-fast",name:"GPT-5.5 XHigh Fast"},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh"},{id:"gpt-5.5-high-fast",name:"GPT-5.5 High Fast"},{id:"gpt-5.5-high",name:"GPT-5.5 High"},{id:"gpt-5.5-medium-fast",name:"GPT-5.5 Medium Fast"},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium"},{id:"gpt-5.5-low-fast",name:"GPT-5.5 Low Fast"},{id:"gpt-5.5-low",name:"GPT-5.5 Low"},{id:"gpt-5.5-none-fast",name:"GPT-5.5 None Fast"},{id:"gpt-5.5-none",name:"GPT-5.5 None"},{id:"gpt-5.4-xhigh-fast",name:"GPT-5.4 XHigh Fast"},{id:"gpt-5.4-xhigh",name:"GPT-5.4 XHigh"},{id:"gpt-5.4-high-fast",name:"GPT-5.4 High Fast"},{id:"gpt-5.4-high",name:"GPT-5.4 High"},{id:"gpt-5.4-medium-fast",name:"GPT-5.4 Medium Fast"},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium"},{id:"gpt-5.4-low-fast",name:"GPT-5.4 Low Fast"},{id:"gpt-5.4-low",name:"GPT-5.4 Low"},{id:"gpt-5.4-none-fast",name:"GPT-5.4 None Fast"},{id:"gpt-5.4-none",name:"GPT-5.4 None"},{id:"gpt-5.4-mini-xhigh",name:"GPT-5.4 Mini XHigh"},{id:"gpt-5.4-mini-high",name:"GPT-5.4 Mini High"},{id:"gpt-5.4-mini-medium",name:"GPT-5.4 Mini Medium"},{id:"gpt-5.4-mini-low",name:"GPT-5.4 Mini Low"},{id:"gpt-5.3-codex-xhigh-fast",name:"GPT-5.3 Codex XHigh Fast"},{id:"gpt-5.3-codex-xhigh",name:"GPT-5.3 Codex XHigh"},{id:"gpt-5.3-codex-high-fast",name:"GPT-5.3 Codex High Fast"},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High"},{id:"gpt-5.3-codex-medium-fast",name:"GPT-5.3 Codex Medium Fast"},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium"},{id:"gpt-5.3-codex-low-fast",name:"GPT-5.3 Codex Low Fast"},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low"},{id:"gpt-5.2-xhigh",name:"GPT-5.2 XHigh"},{id:"gpt-5.2-high",name:"GPT-5.2 High"},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium"},{id:"gpt-5.2-low",name:"GPT-5.2 Low"},{id:"gpt-5.2-none",name:"GPT-5.2 None"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High"},{id:"gemini-3.0-flash-medium",name:"Gemini 3 Flash Medium"},{id:"gemini-3.0-flash-low",name:"Gemini 3 Flash Low"},{id:"gemini-3.0-flash-minimal",name:"Gemini 3 Flash Minimal"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"deepseek-v4",name:"DeepSeek V4"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM-5.1"}]},{id:"xai",priority:280,alias:"xai",display:{name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},models:[{id:"grok-4.6",name:"Grok 4.6"},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.3",name:"Grok 4.3"},{id:"grok-4.2",name:"Grok 4.2"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video",name:"Grok Imagine Video",params:["duration","aspect_ratio","resolution"],kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{baseUrl:"https://api.x.ai/v1/videos"},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},{id:"xiaomi-mimo",priority:20,alias:"xiaomi-mimo",aliases:["mimo"],uiAlias:"mimo",display:{name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys",signupUrl:"https://platform.xiaomimimo.com/"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,serviceKinds:["llm","tts"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"}],ttsConfig:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"},features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"xiaomi-tokenplan",priority:21,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"MiMo Token Plan",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://platform.xiaomimimo.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys"}},category:"apikey",hasProviderSpecificData:!0,serviceKinds:["llm","tts"],regions:[{id:"cn",label:"China (中国大陆)"},{id:"sgp",label:"Singapore (新加坡)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"cn",transport:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",regions:{cn:"https://token-plan-cn.xiaomimimo.com/v1",sgp:"https://token-plan-sgp.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"cn"},transports:[{format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-pro-claude",name:"MiMo V2.6 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.6-pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone",kind:"tts"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design",kind:"tts"}],ttsConfig:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"}},{id:"xquik",alias:"xquik",display:{name:"Xquik",icon:"tag",color:"#5C3327",textIcon:"XQ",website:"https://docs.xquik.com/api-reference/x/search-tweets",notice:{apiKeyUrl:"https://xquik.com",text:"Searches public X posts. Billing uses 1 Xquik credit per returned post."}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://xquik.com/api/v1/x/tweets/search",validateUrl:"https://xquik.com/api/v1/credits",method:"GET",authType:"apikey",authHeader:"x-api-key",searchTypes:["x"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:6e4,creditsPerResult:1}},{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"zcode-free",priority:56,alias:"zcode-free",uiAlias:"zcode-free",display:{name:"ZCode Free",icon:"rocket_launch",color:"#7C3AED",textIcon:"ZC",website:"https://zcode.z.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/zcode/v1/messages",format:"claude",noAuth:!0},models:[{id:"glm-5.3-flash",name:"GLM 5.3 Flash"}]},{id:"zed",priority:10,alias:"zd",uiAlias:"zd",hidden:!0,display:{name:"Zed",icon:"code",color:"#A855F7",website:"https://zed.dev",notice:{signupUrl:"https://zed.dev/native_app_signin"}},category:"oauth",authType:"oauth",hasOAuth:!0,transport:{baseUrl:"https://cloud.zed.dev/completions",format:"openai",forceStream:!0,headers:{"content-type":"application/json"},auth:{combined:!0,header:"Authorization",scheme:"<user_id> <access_token>"},usage:{url:"https://cloud.zed.dev/client/users/me"},modelsUrl:"https://cloud.zed.dev/models"},models:[],passthroughModels:!0,oauth:{authorizeUrl:"https://zed.dev/native_app_signin",platform:"zed",rsaKeyExchange:!0},features:{usage:!0}},{id:"modelscope",priority:69,alias:"modelscope",aliases:["ms"],display:{name:"ModelScope",icon:"layers",color:"#624AFF",textIcon:"MS",website:"https://modelscope.cn",notice:{apiKeyUrl:"https://modelscope.cn/my/myaccesstoken"}},category:"apikey",transport:{baseUrl:"https://api-inference.modelscope.cn/v1/chat/completions",validateUrl:"https://api-inference.modelscope.cn/v1/chat/completions"},models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Pro-0813",name:"DeepSeek V4 Pro (0813)",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1",contextWindow:128e3,maxOutput:64e3},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3",contextWindow:128e3,maxOutput:64e3},{id:"Qwen/Qwen3.8-Flash-Next",name:"Qwen 3.8 Flash Next",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.5-397B",name:"Qwen 3.5 397B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen3.5-122B",name:"Qwen 3.5 122B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B Instruct",contextWindow:1e6,maxOutput:64e3},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B Instruct",contextWindow:262144,maxOutput:64e3},{id:"Qwen/QwQ-32B",name:"QwQ 32B (Reasoning)",contextWindow:131072,maxOutput:64e3},{id:"ZhipuAI/glm-5.2",name:"GLM 5.2",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3",name:"GLM 5.3",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3-flash",name:"GLM 5.3 Flash",contextWindow:1e6,maxOutput:131072},{id:"MiniMax/MiniMax-M3",name:"MiniMax M3",contextWindow:1e6,maxOutput:131072},{id:"Moonshot/Kimi-K3",name:"Kimi K3",contextWindow:1048576,maxOutput:131072},{id:"stepfun-ai/Step-3.7-Flash",name:"Step 3.7 Flash",contextWindow:128e3,maxOutput:64e3},{id:"baidu/ERNIE-4.5-300B",name:"ERNIE 4.5 300B",contextWindow:2e5,maxOutput:64e3}],passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"codiv",priority:44,alias:"codiv",aliases:["cdv"],display:{name:"Codiv",icon:"psychology",color:"#101D30",textIcon:"CD",website:"https://codiv.ai",notice:{text:"Codiv serves open System One decision models that answer typed questions with calibrated probabilities, plus DiffusionGemma text generation.",apiKeyUrl:"https://codiv.ai/dashboard"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.codiv.ai/v1/chat/completions",validateUrl:"https://api.codiv.ai/v1/models"},models:[{id:"openjev-latest",name:"OpenJev Latest (Calibrated)",kind:"systemone"},{id:"openjev-0.1",name:"OpenJev 0.1",kind:"systemone"},{id:"laya-1.0",name:"Laya 1.0 (ModernBERT)",kind:"systemone"},{id:"verdict-1.4",name:"Verdict 1.4 (ModernBERT)",kind:"systemone"},{id:"clm-v0.1",name:"CLM v0.1 (Qwen3-8B)",kind:"systemone"},{id:"jevk5-0.3",name:"JevK5 v0.3 (Qwen3.5-4B)",kind:"systemone"},{id:"clef-flash-1.0",name:"Clef Flash 1.0 (Cloudflare)",kind:"systemone"},{id:"diffusiongemma-26b",name:"DiffusionGemma 26B"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://api.codiv.ai/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"thx",alias:"thx",aliases:["hal-x","halx"],category:"apikey",display:{name:"THX-01 (HAL-X)",icon:"psychology",color:"#0EA5E9",textIcon:"TX",website:"https://api.hal-x.ai",notice:{text:"THX-01 decision model: calibrated answers to typed questions in ~10 ms per request.",apiKeyUrl:"https://api.hal-x.ai"}},models:[{id:"thx-01",name:"THX-01",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://api.hal-x.ai/v1/systemone"}}]},97538:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js")},97645:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(73346))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},97757:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getClientComponentLoaderMetrics:function(){return i},wrapClientComponentLoader:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=0,g=0;function h(a,b){return"performance"in globalThis&&(process.env.NEXT_OTEL_PERFORMANCE_PREFIX||b)?{require:(...b)=>{let c=performance.now();0===e&&(e=c);try{return g+=1,a.__next_app__.require(...b)}finally{f+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{f+=performance.now()-c}),d}}:a.__next_app__}function i(a={}){let b=0===e?void 0:{clientComponentLoadStart:e,clientComponentLoadTimes:f,clientComponentLoadCount:g};return a.reset&&(e=0,f=0,g=0),b}},98345:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e={CachedRouteKind:function(){return g},IncrementalCacheKind:function(){return h}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});var g=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.REDIRECT="REDIRECT",c.IMAGE="IMAGE",c),h=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.IMAGE="IMAGE",d)},98617:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(67301),e=c(93250);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,`/${b.toLowerCase()}`))?a:(0,d.addPathPrefix)(a,`/${b}`)}},98995:a=>{"use strict";a.exports=require("node:module")},99751:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={fromNodeOutgoingHttpHeaders:function(){return g},normalizeNextQueryParam:function(){return k},splitCookiesString:function(){return h},toNodeOutgoingHttpHeaders:function(){return i},validateURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(96100);function g(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function h(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function i(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...h(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function j(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function k(a){for(let b of[f.NEXT_QUERY_PARAM_PREFIX,f.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=86231);module.exports=c})();