switchboard-router 0.9.70 → 0.9.72

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 (384) hide show
  1. package/app/.next/static/chunks/1321-37ecf3f45c464e7e.js +1 -0
  2. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-5503dc94b3b73efc.js → page-c49c2c45881644c2.js} +1 -1
  3. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-6e36b61f4ae58378.js → page-15f9f168b6ba8411.js} +1 -1
  4. package/app/.next-cli-build/BUILD_ID +1 -1
  5. package/app/.next-cli-build/app-path-routes-manifest.json +17 -17
  6. package/app/.next-cli-build/build-manifest.json +2 -2
  7. package/app/.next-cli-build/prerender-manifest.json +3 -3
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.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/combos/routing/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  64. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  65. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  66. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  67. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  68. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  69. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  72. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  73. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  74. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  75. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  76. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  86. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  89. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  91. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  99. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  103. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  105. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  111. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/fx-settings/manual-configs/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/fx-settings/route.js +2 -2
  114. package/app/.next-cli-build/server/app/api/cli-tools/fx-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  116. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
  118. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  123. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  125. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  127. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  129. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/manual-configs/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/health/live/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/models/routable/route.js +1 -1
  169. package/app/.next-cli-build/server/app/api/models/routable/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  262. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  302. package/app/.next-cli-build/server/app/callback.html +1 -1
  303. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  304. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  305. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  307. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  309. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  311. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  312. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  314. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/index.html +1 -1
  316. package/app/.next-cli-build/server/app/index.rsc +3 -3
  317. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  318. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  319. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  322. package/app/.next-cli-build/server/app/landing.html +1 -1
  323. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  324. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  325. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  327. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  329. package/app/.next-cli-build/server/app/login.html +1 -1
  330. package/app/.next-cli-build/server/app/login.rsc +4 -4
  331. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  332. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  333. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  334. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  337. package/app/.next-cli-build/server/app-paths-manifest.json +17 -17
  338. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  339. package/app/.next-cli-build/server/chunks/1757.js +1 -1
  340. package/app/.next-cli-build/server/chunks/2348.js +1 -1
  341. package/app/.next-cli-build/server/chunks/2574.js +1 -1
  342. package/app/.next-cli-build/server/chunks/2766.js +1 -1
  343. package/app/.next-cli-build/server/chunks/2770.js +1 -1
  344. package/app/.next-cli-build/server/chunks/629.js +1 -1
  345. package/app/.next-cli-build/server/chunks/7730.js +1 -0
  346. package/app/.next-cli-build/server/chunks/8102.js +1 -0
  347. package/app/.next-cli-build/server/chunks/8400.js +1 -1
  348. package/app/.next-cli-build/server/chunks/869.js +1 -1
  349. package/app/.next-cli-build/server/chunks/8998.js +3 -3
  350. package/app/.next-cli-build/server/chunks/9264.js +1 -1
  351. package/app/.next-cli-build/server/chunks/9353.js +1 -1
  352. package/app/.next-cli-build/server/chunks/9662.js +1 -1
  353. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  354. package/app/.next-cli-build/server/middleware.js +1 -1
  355. package/app/.next-cli-build/server/pages/404.html +1 -1
  356. package/app/.next-cli-build/server/pages/500.html +1 -1
  357. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  358. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  359. package/app/.next-cli-build/static/chunks/1321-37ecf3f45c464e7e.js +1 -0
  360. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/{page-5503dc94b3b73efc.js → page-c49c2c45881644c2.js} +1 -1
  361. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-6e36b61f4ae58378.js → page-15f9f168b6ba8411.js} +1 -1
  362. package/app/config-writers.cjs +2 -1
  363. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  364. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  365. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  366. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  367. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  368. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  369. package/app/package.json +1 -1
  370. package/app/public/providers/api-airforce.png +0 -0
  371. package/app/public/providers/grok-cli.png +0 -0
  372. package/app/public/providers/muse.png +0 -0
  373. package/app/public/providers/ollama-search.png +0 -0
  374. package/app/public/providers/opencode-zen.png +0 -0
  375. package/app/public/providers/venice.png +0 -0
  376. package/app/public/providers/vercel-ai-gateway.png +0 -0
  377. package/package.json +1 -1
  378. package/app/.next/static/chunks/1321-76df19b6a38e6fa9.js +0 -1
  379. package/app/.next-cli-build/server/chunks/6074.js +0 -1
  380. package/app/.next-cli-build/static/chunks/1321-76df19b6a38e6fa9.js +0 -1
  381. /package/app/.next/static/{5WtWAuXu4p-ILkKMsJE4i → mIIf1bKJ8KlrHk03nHIsh}/_buildManifest.js +0 -0
  382. /package/app/.next/static/{5WtWAuXu4p-ILkKMsJE4i → mIIf1bKJ8KlrHk03nHIsh}/_ssgManifest.js +0 -0
  383. /package/app/.next-cli-build/static/{5WtWAuXu4p-ILkKMsJE4i → mIIf1bKJ8KlrHk03nHIsh}/_buildManifest.js +0 -0
  384. /package/app/.next-cli-build/static/{5WtWAuXu4p-ILkKMsJE4i → mIIf1bKJ8KlrHk03nHIsh}/_ssgManifest.js +0 -0
@@ -8,7 +8,7 @@ exports.id=8998,exports.ids=[8998],exports.modules={794:(a,b,c)=>{"use strict";l
8
8
  }
9
9
  Set-Content -LiteralPath ${f(a)} -Value $filtered
10
10
  ipconfig /flushdns | Out-Null
11
- `;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);w?d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[launchctl] NODE_EXTRA_CA_CERTS unset")}):v&&d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[reg] NODE_EXTRA_CA_CERTS unset")});try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}return await ac(!1,null),O=!1,{running:!1,pid:null}}async function ar(a,b){if(!(await am()).running)throw Error("MITM server is not running. Start the server first.");let c=b||V()||await ae();return await m(a,c),await af(a,!0),{success:!0}}a.exports={pollMitmHealth:al,getMitmStatus:am,startServer:ap,stopServer:aq,enableToolDNS:ar,disableToolDNS:async function a(a,b){let c=b||V()||await ae();return await n(a,c),await af(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(C,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(94442);if(!v&&!w&&!s())return void D(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||V()||await ae();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&W(e)},startMitm:ap,stopMitm:aq,getCachedPassword:V,setCachedPassword:W,loadEncryptedPassword:ae,clearEncryptedPassword:ad,isSudoPasswordRequired:t,initDbHooks:function(a,b){aa=a,ab=b},restoreToolDNS:ah,hasDnsPrivilege:ai,removeAllDNSEntriesSync:p}},4313:(a,b,c)=>{"use strict";c.d(b,{A:()=>q});var d=c(74570);c(62397);let e=["low","medium","high","xhigh","max"],f={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:{identity:"openai-node",baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"},quirks:{claudeSupportedToolTypes:["web_search_20250305","web_search_20260209"]}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{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.1-flash",name:"DeepSeek V4.1 Flash",upstreamModelId:"deepseek-flash"},{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}},g={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:{identity:"claude-cli",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},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)"}],serviceKinds:["llm","webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.z.ai/api/mcp/web_search_prime/mcp",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5},features:{usage:!0,usageApikey:!0}};var h=c(45431);let i={id:"kimi-coding",hidden:!0,priority:120,alias:"kmc",display:{name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.moonshot.cn",notice:{signupUrl:"https://kimi.moonshot.cn"}},category:"oauth",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},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:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},{identity:"kimi",format:"openai-responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],oauth:{deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5},features:{usage:!0}},j={id:"kimi",priority:170,alias:"kimi",display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"}},category:"apikey",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},transports:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},{identity:"kimi",format:"openai-responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],features:{usage:!0,usageApikey:!0},searchViaChat:{defaultModel:"kimi-k2.5",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},k={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:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!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:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},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:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},l={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:{identity:"claude-cli",baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!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:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},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:{identity:"claude-cli",baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{identity:"claude-cli",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}};var m=c(57422);let n={id:"nous",priority:65,hasFree:!0,alias:"nous",aliases:["nous-portal","nous-research","ns"],uiAlias:"nous",display:{name:"Nous Research",icon:"psychology",color:"#7C3AED",textIcon:"NR",website:"https://nousresearch.com",notice:{text:"Connect with OAuth Device Code (free account, no payment required) or a Nous Portal API key.",signupUrl:"https://portal.nousresearch.com",apiKeyUrl:"https://portal.nousresearch.com/api-keys"}},category:"freeTier",authType:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:m.b,format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{clientId:m.qc,portalBaseUrl:m.tE,deviceCodeUrl:m.pC,tokenUrl:m.cw,agentKeyUrl:m.ur,scope:m.jJ},models:[{id:"meituan/longcat-2.0:free",name:"Meituan: LongCat 2.0",contextLength:1048756,maxOutputTokens:262144},{id:"meituan/longcat-2.5-preview:free",name:"Meituan: LongCat 2.5 Preview",contextLength:1048576,maxOutputTokens:131072},{id:"stepfun/step-5-preview:free",name:"StepFun: Step 5 Preview",contextLength:1e6,maxOutputTokens:64e3},{id:"upstage/solar-mini4:free",name:"Upstage: Solar Mini 4",contextLength:524288,maxOutputTokens:131072},{id:"stepfun/step-3.7-flash:free",name:"StepFun: Step 3.7 Flash",contextLength:262144,maxOutputTokens:256e3},{id:"poolside/laguna-s-2.1:free",name:"Poolside: Laguna S 2.1",contextLength:262144,maxOutputTokens:131072},{id:"poolside/laguna-xs-2.1:free",name:"Poolside: Laguna XS 2.1",contextLength:262144,maxOutputTokens:32768},{id:"stealth/missingno",name:"MissingNo",contextLength:262144,maxOutputTokens:131072}],serviceKinds:["llm","imageToText"],modelsFetcher:{url:m.B3,type:"nous-free"},passthroughModels:!0},o={id:"xiaomi-mimo",priority:290,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://xiaomimimo.com"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}]},p={id:"xiaomi-tokenplan",priority:300,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"Xiaomi MiMo (Token Plan)",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://mimo.xiaomi.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://mimo.xiaomi.com"}},category:"apikey",hasProviderSpecificData:!0,regions:[{id:"sgp",label:"Singapore (新加坡)"},{id:"cn",label:"China (中国大陆)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"sgp",transport:{identity:"openai-node",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1/chat/completions",regions:{sgp:"https://token-plan-sgp.xiaomimimo.com/v1",cn:"https://token-plan-cn.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"sgp"},transports:[{identity:"openai-node",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5-pro-claude",name:"MiMo V2.5 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.5-pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-tts",name:"MiMo V2 TTS"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design"}]},q=[{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{identity:"openai-node",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:{identity:"openai-node",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:"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:{identity:"claude-cli",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"},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{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"]},{id:"antigravity",priority:20,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","webSearch"],modelsFetcher:{url:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",method:"POST",type:"google-available-models",headers:{"X-Client-Name":"antigravity"}},transport:{identity:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",quotaSummaryApiUrl:"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-4-argon-high",name:"Gemini 4 Argon (High)",upstreamModelId:"gemini-4-argon-high(high)"},{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-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)"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-5-5-high",name:"Claude Sonnet 5.5 (High)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5 (Medium)",upstreamModelId:"claude-sonnet-5-5-medium(medium)"},{id:"claude-sonnet-5-5-low",name:"Claude Sonnet 5.5 (Low)",upstreamModelId:"claude-sonnet-5-5-low(low)"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5 (Thinking)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-opus-5-5-high",name:"Claude Opus 5.5 (High)",upstreamModelId:"claude-opus-5-5-high(high)"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5 (Medium)",upstreamModelId:"claude-opus-5-5-medium(medium)"},{id:"claude-opus-5-5-low",name:"Claude Opus 5.5 (Low)",upstreamModelId:"claude-opus-5-5-low(low)"},{id:"claude-opus-5-5",name:"Claude Opus 5.5 (Thinking)",upstreamModelId:"claude-opus-5-5-high(high)"},{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-lite",name:"Gemini 3.1 Flash Lite"},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",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://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",refreshLeadMs:3e5},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://daily-cloudcode-pa.googleapis.com/v1internal:generateContent",freeTier:"Free — Google Search grounding through an Antigravity OAuth account."},features:{usage:!0}},{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"],passthroughModels:!0,modelsFetcher:{url:"https://api.airforce/v1/models",type:"airforce-free"},transport:{identity:"openai-node",baseUrl:"https://api.airforce/v1/chat/completions",validateUrl:"https://api.airforce/v1/models",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Switchboard"},forceStream:!0},models:[{id:"gpt-oss-120b",name:"GPT-OSS 120B (Free)",contextLength:131072},{id:"gpt-oss-20b",name:"GPT-OSS 20B (Free)",contextLength:131072},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code (Free)",contextLength:262144}]},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{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:{identity:"openai-node",baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{identity:"openai-node",id:"neural",name:"Neural"},{identity:"openai-node",id:"long-form",name:"Long-form"},{identity:"openai-node",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:{identity:"openai-node",baseUrl:"",headers:{}}},{id:"bedrock-xai",alias:"brx",aliases:["bedrock-grok"],uiAlias:"brx",category:"apikey",authType:"apikey",apiKeyOptionalWith:"profile",credentialForm:"aws",display:{name:"AWS Bedrock (xAI)",icon:"cloud",color:"#FF9900",textIcon:"BX",website:"https://aws.amazon.com/bedrock/",notice:{text:'xAI Grok models hosted on AWS Bedrock. Authenticate exactly like the AWS Bedrock provider: fill in Profile and Region and leave the API key empty, then run `aws sso login --profile <name>`; or use static keys with the AWS secret access key as the API key. Note Grok is a reasoning model and spends output budget thinking before it answers — a small max_tokens returns finish_reason "length" with empty content, so allow a few thousand tokens.',apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},transport:{baseUrl:"https://bedrock-runtime.{region}.amazonaws.com",auth:{header:"aws-sigv4",scheme:"raw"},identity:"openai-node"},passthroughModels:!0,models:[{id:"us.xai.grok-4.6",name:"Grok 4.6"},{id:"global.xai.grok-4.6",name:"Grok 4.6 (global)"}],hasProviderSpecificData:!0},{id:"bedrock",alias:"br",aliases:["aws-bedrock"],uiAlias:"br",category:"apikey",authType:"apikey",apiKeyOptionalWith:"profile",credentialForm:"aws",display:{name:"AWS Bedrock",icon:"cloud",color:"#FF9900",textIcon:"BR",website:"https://aws.amazon.com/bedrock/",notice:{text:"Two ways to authenticate, both entered in the AWS Bedrock Credentials section below. SSO / profile (recommended): fill in Profile and Region, leave the API key empty, then run `aws sso login --profile <name>` — credentials refresh automatically. Static keys: put the AWS secret access key in the API Key field and the key id in Access Key ID, adding Session Token if they are temporary (ASIA…) keys. A profile, if set, takes precedence over static keys.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},transport:{baseUrl:"https://bedrock-runtime.{region}.amazonaws.com",format:"claude",auth:{header:"aws-sigv4",scheme:"raw"},identity:"openai-node"},passthroughModels:!0,models:[{id:"us.anthropic.claude-opus-5",name:"Claude Opus 5"},{id:"us.anthropic.claude-sonnet-5",name:"Claude Sonnet 5"},{id:"us.anthropic.claude-fable-5",name:"Claude Fable 5"},{id:"us.anthropic.claude-opus-4-8",name:"Claude Opus 4.8"},{id:"us.anthropic.claude-opus-4-7",name:"Claude Opus 4.7"},{id:"us.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"us.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5"},{id:"us.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5"},{id:"us.anthropic.claude-opus-4-1-20250805-v1:0",name:"Claude Opus 4.1"},{id:"us.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4"},{id:"us.anthropic.claude-3-haiku-20240307-v1:0",name:"Claude 3 Haiku"}],hasProviderSpecificData:!0},{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:{identity:"openai-node",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:{identity:"openai-node",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:"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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"claude-cli",baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Dangerous-Direct-Browser-Access":"true"},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-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5-1",name:"Claude Fable 5.1"},{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-opus-4-1-20250805",name:"Claude 4.1 Opus"},{id:"claude-opus-4-20250514",name:"Claude 4 Opus"},{id:"claude-sonnet-4-20250514",name:"Claude 4 Sonnet"},{id:"claude-3-7-sonnet-20250219",name:"Claude 3.7 Sonnet"},{id:"claude-3-5-haiku-20241022",name:"Claude 3.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",authModes:["oauth"],hasOAuth:!0,transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",quirks:{clineEnvelope:!0},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",aliases:["cline-pass"],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:["apikey","oauth"],hasOAuth:!0,transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",quirks:{clineEnvelope:!0},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",hasProviderSpecificData:!0,transport:{identity:"openai-node",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/cloudflare/clef-flash",name:"Clef Flash",kind:"systemone",upstreamModelId:"clef-flash"},{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","systemone"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/run/{model}",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",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"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",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",hooks:["codebuddyHeaders"]},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"hy3",name:"Hy3"},{id:"hy4-preview",name:"Hy4-Preview"},{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"kimi-k3-1",name:"Kimi-K3"},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash"}],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:"codex",priority:30,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:{stt:"Uses the same Codex OAuth connection as chat, not an OpenAI API key. Requires ffmpeg; maximum 25 MiB and 120 seconds. Returns json or text only; language, prompt and timestamps are unsupported. This internal ChatGPT endpoint may change without notice.",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:{identity:"codex-cli",baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,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.1-sol",name:"GPT 6.1 Sol",responsesLite:!0,thinkingLevels:e},{id:"gpt-6.1-terra",name:"GPT 6.1 Terra",responsesLite:!0,thinkingLevels:e},{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",responsesLite:!0,thinkingLevels:e},{id:"gpt-6-sol[1m]",name:"GPT 6.0 Sol (extended context)",upstreamModelId:"gpt-6-sol",responsesLite:!0,thinkingLevels:e},{id:"gpt-6-luna",name:"GPT 6.0 Luna",responsesLite:!0,thinkingLevels:e},{id:"gpt-6-luna[1m]",name:"GPT 6.0 Luna (extended context)",upstreamModelId:"gpt-6-luna",responsesLite:!0,thinkingLevels:e},{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.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-review",name:"GPT 5.3 Codex Review",upstreamModelId:"gpt-5.3-codex",quotaFamily:"review"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-xhigh-review",name:"GPT 5.3 Codex (xHigh) Review",upstreamModelId:"gpt-5.3-codex-xhigh",quotaFamily:"review"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-high-review",name:"GPT 5.3 Codex (High) Review",upstreamModelId:"gpt-5.3-codex-high",quotaFamily:"review"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-low-review",name:"GPT 5.3 Codex (Low) Review",upstreamModelId:"gpt-5.3-codex-low",quotaFamily:"review"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-none-review",name:"GPT 5.3 Codex (None) Review",upstreamModelId:"gpt-5.3-codex-none",quotaFamily:"review"},{id:"gpt-daybreak-blue-latest",name:"GPT Daybreak Blue"},{id:"gpt-reserve",name:"GPT Reserve"},{id:"codex-auto-review",name:"Codex Auto Review",upstreamModelId:"codex-auto-review",quotaFamily:"review"},{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-6-sol-image",name:"GPT 6.0 Sol Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"transcribe",name:"Codex Transcription",kind:"stt",params:["response_format"],responseFormats:["json","text"]}],serviceKinds:["llm","image","stt"],sttConfig:{baseUrl:"https://chatgpt.com/backend-api/transcribe",authType:"oauth",identity:"codex-cli",format:"codex-transcribe"},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,maxRefreshAgeMs:6912e5,trackRefreshAt:!0,acceptsRawAccessToken:!0,rawAccessTokenIssuers:["https://auth.openai.com","https://auth0.openai.com"]},features:{usage:!0}},{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",transport:{identity:"openai-node",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:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",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",transport:{identity:"openai-node",baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"User-Agent":"cli","x-command-code-version":"1.88.0","x-cli-environment":"production","x-cli-surface":"cli","x-taste-learning":"false"}},modelsFetcher:{url:"https://api.commandcode.ai/provider/v1/models",method:"GET",type:"openai",requiresAuth:!0},models:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K3.1-Pro",name:"Kimi K3.1 Pro"},{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-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{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.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{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-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"tencent/Hy3",name:"Tencent Hy3"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"}]},{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:{identity:"openai-node",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:{identity:"openai-node",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.1.0",usage:{url:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetCurrentPeriodUsage",planInfoUrl:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetPlanInfo",authUsageUrl:"https://api2.cursor.sh/auth/usage"}},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"},{id:"composer-2.5",name:"Composer 2.5"},{id:"composer-2.5-fast",name:"Composer 2.5 Fast"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},features:{usage:!0}},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},f,{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:{identity:"openai-node",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"],models:[{id:"scribe_v1",name:"Scribe v1",params:["language","response_format","timestamps_granularity","tag_audio_events","diarize","num_speakers"],kind:"stt"},{id:"scribe_v2",name:"Scribe v2",params:["language","response_format","timestamps_granularity","tag_audio_events","diarize","num_speakers"],kind:"stt"}],ttsConfig:{identity:"openai-node",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"},{identity:"openai-node",id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},sttConfig:{identity:"openai-node",baseUrl:"https://api.elevenlabs.io/v1/speech-to-text",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs-stt",responseFormats:{segments:"seg_json",subtitles:"srt",captions:"vtt"}}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://queue.fal.run"}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{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:{identity:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",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",mediaPriority:1,transport:{identity:"openai-node",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-4-argon",name:"Gemini 4 Argon"},{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.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:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{identity:"openai-node",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:{identity:"copilot",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5-mini",name:"GPT-5 Mini"},{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:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-luna",name:"GPT-6 Luna"},{id:"gpt-6-sol",name:"GPT-6 Sol"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5.1",name:"Claude Fable 5.1"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-haiku-5.5",name:"Claude Haiku 5.5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-fast",name:"Claude Opus 4.8 (Fast)"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5.5",name:"Claude Sonnet 5.5"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"gemini-4-argon",name:"Gemini 4 Argon"},{id:"kimi-k3",name:"Kimi K3"},{id:"mai-code-1.1-flash",name:"MAI-Code-1.1-Flash"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002 (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"copilot",baseUrl:"https://api.githubcopilot.com/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"},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:{identity:"openai-node",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:{identity:"openai-node",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.6v",name:"GLM 4.6V (Vision)"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],features:{usage:!0,usageApikey:!0}},g,{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},h.A,{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:{identity:"chrome",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:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models",usage:{url:"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:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},features:{usage:!0,usageApikey:!0}},{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",text:"Runs through the Inference Providers router. Image and speech models are billed by the provider selected per model."}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"black-forest-labs/FLUX.1-dev",name:"FLUX.1 Dev",params:[],kind:"image"},{id:"black-forest-labs/FLUX.1-Krea-dev",name:"FLUX.1 Krea",params:[],kind:"image"},{id:"black-forest-labs/FLUX.1-Kontext-dev",name:"FLUX.1 Kontext",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-dev",name:"FLUX.2 Dev",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-9B",name:"FLUX.2 Klein 9B",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-4B",name:"FLUX.2 Klein 4B",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-base-9B",name:"FLUX.2 Klein Base 9B",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-base-4B",name:"FLUX.2 Klein Base 4B",params:[],kind:"image",capabilities:["edit"]},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-3.5-large",name:"Stable Diffusion 3.5 Large",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:[],kind:"image"},{id:"Qwen/Qwen-Image",name:"Qwen Image",params:[],kind:"image"},{id:"Qwen/Qwen-Image-2512",name:"Qwen Image 2512",params:[],kind:"image"},{id:"Qwen/Qwen-Image-Edit",name:"Qwen Image Edit",params:[],kind:"image",capabilities:["edit"]},{id:"Qwen/Qwen-Image-Edit-2509",name:"Qwen Image Edit 2509",params:[],kind:"image",capabilities:["edit"]},{id:"Qwen/Qwen-Image-Edit-2511",name:"Qwen Image Edit 2511",params:[],kind:"image",capabilities:["edit"]},{id:"ideogram-ai/ideogram-4-fp8",name:"Ideogram 4",params:[],kind:"image"},{id:"tencent/HunyuanImage-3.0",name:"HunyuanImage 3.0",params:[],kind:"image"},{id:"Tongyi-MAI/Z-Image-Turbo",name:"Z-Image Turbo",params:[],kind:"image"},{id:"krea/Krea-2-Turbo",name:"Krea 2 Turbo",params:[],kind:"image"},{id:"HiDream-ai/HiDream-I1-Fast",name:"HiDream I1 Fast",params:[],kind:"image"},{id:"playgroundai/playground-v2.5-1024px-aesthetic",name:"Playground v2.5",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:[],kind:"stt"},{id:"openai/whisper-large-v3-turbo",name:"Whisper Large v3 Turbo (HF)",params:[],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{identity:"openai-node",baseUrl:"https://router.huggingface.co",modelMap:{"black-forest-labs/FLUX.1-schnell":"fal-ai/fal-ai/flux/schnell","black-forest-labs/FLUX.1-dev":"fal-ai/fal-ai/flux/dev","black-forest-labs/FLUX.1-Krea-dev":"fal-ai/fal-ai/flux/krea","black-forest-labs/FLUX.1-Kontext-dev":{path:"fal-ai/fal-ai/flux-kontext/dev",task:"image-to-image"},"black-forest-labs/FLUX.2-dev":{path:"fal-ai/fal-ai/flux-2/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-9B":{path:"fal-ai/fal-ai/flux-2/klein/9b/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-4B":{path:"fal-ai/fal-ai/flux-2/klein/4b/distilled/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-base-9B":{path:"fal-ai/fal-ai/flux-2/klein/9b/base/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-base-4B":{path:"fal-ai/fal-ai/flux-2/klein/4b/base/edit",task:"image-to-image"},"stabilityai/stable-diffusion-xl-base-1.0":"fal-ai/fal-ai/fast-sdxl","stabilityai/stable-diffusion-3.5-large":"fal-ai/fal-ai/stable-diffusion-v35-large","stabilityai/stable-diffusion-3.5-large-turbo":"fal-ai/fal-ai/stable-diffusion-v35-large/turbo","Qwen/Qwen-Image":"fal-ai/fal-ai/qwen-image","Qwen/Qwen-Image-2512":"fal-ai/fal-ai/qwen-image-2512","Qwen/Qwen-Image-Edit":{path:"fal-ai/fal-ai/qwen-image-edit",task:"image-to-image"},"Qwen/Qwen-Image-Edit-2509":{path:"fal-ai/fal-ai/qwen-image-edit-2509",task:"image-to-image"},"Qwen/Qwen-Image-Edit-2511":{path:"fal-ai/fal-ai/qwen-image-edit-plus",task:"image-to-image"},"ideogram-ai/ideogram-4-fp8":"fal-ai/ideogram/v4","tencent/HunyuanImage-3.0":"fal-ai/fal-ai/hunyuan-image/v3/text-to-image","Tongyi-MAI/Z-Image-Turbo":"fal-ai/fal-ai/z-image/turbo","krea/Krea-2-Turbo":"fal-ai/fal-ai/krea-2/turbo","HiDream-ai/HiDream-I1-Fast":"fal-ai/fal-ai/hidream-i1-fast","playgroundai/playground-v2.5-1024px-aesthetic":"fal-ai/fal-ai/playground-v25"}},sttConfig:{identity:"openai-node",baseUrl:"https://router.huggingface.co/hf-inference/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr"}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",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)"},{identity:"openai-node",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"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{identity:"openai-node",id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{identity:"openai-node",id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},{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:{identity:"openai-node",baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{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:{identity:"openai-node",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:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{identity:"openai-node",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},i,j,{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:{identity:"openai-node",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","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","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:"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:"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:"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)"}],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:{identity:"openai-node",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:"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:{identity:"openai-node",baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"mimo-free",priority:50,hasFree:!0,alias:"mmf",uiAlias:"mmf",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF"},category:"free",noAuth:!0,transport:{identity:"openai-node",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},k,{id:"minimax-code-global",priority:80,alias:"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},modelsFetcher:{url:"https://agent.minimax.io/mavis/api/v1/models?region=en&buildEnv=prod",type:"minimax-code"},transport:{baseUrl:"https://agent.minimax.io/mavis/api/v1/llm/v1/messages",format:"claude",identity:"claude-cli",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0,hooks:["minimaxHeaders"]}},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:80,alias:"mm",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},modelsFetcher:{url:"https://agent.minimax.cn/mavis/api/v1/models?region=cn&buildEnv=prod",type:"minimax-code"},transport:{baseUrl:"https://agent.minimax.cn/mavis/api/v1/llm/v1/messages",format:"claude",identity:"claude-cli",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0,hooks:["minimaxHeaders"]}},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"}]},l,{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"muse",priority:285,alias:"muse",aliases:["meta","meta-ai","muse-code"],uiAlias:"muse",display:{name:"Meta Muse",icon:"psychology",color:"#0081FB",textIcon:"MU",website:"https://api.meta.ai",notice:{text:"Sign in with your Meta account via device code, or use a Meta Muse API key.",apiKeyUrl:"https://api.meta.ai",signupUrl:"https://auth.meta.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,thinkingConfig:{options:["none","minimal","low","medium","high","xhigh","max"],defaultMode:"high"},transport:{identity:"muse-code",baseUrl:"https://api.meta.ai/v1/chat/completions",format:"openai",validateUrl:"https://api.meta.ai/v1/models",modelsUrl:"https://api.meta.ai/v1/models",usage:{url:"https://api.meta.ai/muse-code/key"},retry:{429:{attempts:3,delayMs:2e3},502:{attempts:2,delayMs:1500},503:{attempts:2,delayMs:1500}}},models:[{id:"muse-spark-1.3",name:"Muse Spark 1.3",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh","max"]}},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh","max"]}},{id:"muse-spark-1.2",name:"Muse Spark 1.2",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh"]}},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh"]}},{id:"muse-spark-1.1",name:"Muse Spark 1.1",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["low","medium","high","xhigh"]}}],serviceKinds:["llm"],oauth:{clientId:"1031625952748946",deviceCodeUrl:"https://auth.meta.com/oidc/device/authorization/",tokenUrl:"https://auth.meta.com/oidc/device/token/",mintUrl:"https://api.meta.ai/muse-code/key",grantType:"urn:ietf:params:oauth:grant-type:device_code",pollInterval:5e3},features:{usage:!0}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},n,{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",transport:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"http://localhost:11434/api/chat",format:"ollama"},models:[{id:"nomic-embed-text",name:"Nomic Embed Text",kind:"embedding",dimensions:768},{id:"nomic-embed-text:latest",name:"Nomic Embed Text (Latest)",kind:"embedding",dimensions:768},{id:"nomic-embed-text:v1.5",name:"Nomic Embed Text v1.5",kind:"embedding",dimensions:768},{id:"nomic-embed-text:137m-v1.5-fp16",name:"Nomic Embed Text 137M v1.5 (FP16)",kind:"embedding",dimensions:768},{id:"nomic-embed-text-v2-moe",name:"Nomic Embed Text v2 MoE",kind:"embedding",dimensions:768},{id:"nomic-embed-text-v2-moe:latest",name:"Nomic Embed Text v2 MoE (Latest)",kind:"embedding",dimensions:768},{id:"qwen3-embedding",name:"Qwen3 Embedding",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:latest",name:"Qwen3 Embedding (Latest)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b",name:"Qwen3 Embedding 8B",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b-q4_K_M",name:"Qwen3 Embedding 8B (Q4_K_M)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b-q8_0",name:"Qwen3 Embedding 8B (Q8_0)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b-fp16",name:"Qwen3 Embedding 8B (FP16)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:4b",name:"Qwen3 Embedding 4B",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:4b-q4_K_M",name:"Qwen3 Embedding 4B (Q4_K_M)",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:4b-q8_0",name:"Qwen3 Embedding 4B (Q8_0)",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:4b-fp16",name:"Qwen3 Embedding 4B (FP16)",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:0.6b",name:"Qwen3 Embedding 0.6B",kind:"embedding",dimensions:1024},{id:"qwen3-embedding:0.6b-q8_0",name:"Qwen3 Embedding 0.6B (Q8_0)",kind:"embedding",dimensions:1024},{id:"qwen3-embedding:0.6b-fp16",name:"Qwen3 Embedding 0.6B (FP16)",kind:"embedding",dimensions:1024},{id:"bge-m3",name:"BGE M3",kind:"embedding",dimensions:1024},{id:"bge-m3:latest",name:"BGE M3 (Latest)",kind:"embedding",dimensions:1024},{id:"bge-m3:567m",name:"BGE M3 567M",kind:"embedding",dimensions:1024},{id:"bge-m3:567m-fp16",name:"BGE M3 567M (FP16)",kind:"embedding",dimensions:1024},{id:"bge-large",name:"BGE Large",kind:"embedding",dimensions:1024},{id:"bge-large:latest",name:"BGE Large (Latest)",kind:"embedding",dimensions:1024},{id:"bge-large:335m",name:"BGE Large 335M",kind:"embedding",dimensions:1024},{id:"bge-large:335m-en-v1.5-fp16",name:"BGE Large 335M EN v1.5 (FP16)",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large",name:"mxbai Embed Large",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:latest",name:"mxbai Embed Large (Latest)",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:335m",name:"mxbai Embed Large 335M",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:v1",name:"mxbai Embed Large v1",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:335m-v1-fp16",name:"mxbai Embed Large 335M v1 (FP16)",kind:"embedding",dimensions:1024},{id:"embeddinggemma",name:"EmbeddingGemma",kind:"embedding",dimensions:768},{id:"embeddinggemma:latest",name:"EmbeddingGemma (Latest)",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m",name:"EmbeddingGemma 300M",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m-bf16",name:"EmbeddingGemma 300M (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m-qat-q4_0",name:"EmbeddingGemma 300M (QAT Q4_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m-qat-q8_0",name:"EmbeddingGemma 300M (QAT Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2",name:"EmbeddingGemma 2",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:latest",name:"EmbeddingGemma 2 (Latest)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:740m",name:"EmbeddingGemma 2 740M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:740m-bf16",name:"EmbeddingGemma 2 740M (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:740m-q8_0",name:"EmbeddingGemma 2 740M (Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:570m",name:"EmbeddingGemma 2 570M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:570m-bf16-text-audio",name:"EmbeddingGemma 2 570M Audio (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:570m-q8_0-text-audio",name:"EmbeddingGemma 2 570M Audio (Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:440m",name:"EmbeddingGemma 2 440M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:440m-bf16-text-vision",name:"EmbeddingGemma 2 440M Vision (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:440m-q8_0-text-vision",name:"EmbeddingGemma 2 440M Vision (Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:270m",name:"EmbeddingGemma 2 270M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:270m-bf16-text",name:"EmbeddingGemma 2 270M Text (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:270m-q8_0-text",name:"EmbeddingGemma 2 270M Text (Q8_0)",kind:"embedding",dimensions:768},{id:"all-minilm",name:"All-MiniLM",kind:"embedding",dimensions:384},{id:"all-minilm:latest",name:"All-MiniLM (Latest)",kind:"embedding",dimensions:384},{id:"all-minilm:33m",name:"All-MiniLM 33M (L12)",kind:"embedding",dimensions:384},{id:"all-minilm:22m",name:"All-MiniLM 22M (L6)",kind:"embedding",dimensions:384},{id:"all-minilm:l12-v2",name:"All-MiniLM L12 v2",kind:"embedding",dimensions:384},{id:"all-minilm:l6-v2",name:"All-MiniLM L6 v2",kind:"embedding",dimensions:384},{id:"all-minilm:33m-l12-v2-fp16",name:"All-MiniLM 33M L12 v2 (FP16)",kind:"embedding",dimensions:384},{id:"all-minilm:22m-l6-v2-fp16",name:"All-MiniLM 22M L6 v2 (FP16)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed",name:"Snowflake Arctic Embed",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:latest",name:"Snowflake Arctic Embed (Latest)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:335m",name:"Snowflake Arctic Embed 335M (L)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:137m",name:"Snowflake Arctic Embed 137M (M-Long)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:110m",name:"Snowflake Arctic Embed 110M (M)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:33m",name:"Snowflake Arctic Embed 33M (S)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:22m",name:"Snowflake Arctic Embed 22M (XS)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:l",name:"Snowflake Arctic Embed L",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:m",name:"Snowflake Arctic Embed M",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:m-long",name:"Snowflake Arctic Embed M-Long",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:s",name:"Snowflake Arctic Embed S",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:xs",name:"Snowflake Arctic Embed XS",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:335m-l-fp16",name:"Snowflake Arctic Embed 335M L (FP16)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:137m-m-long-fp16",name:"Snowflake Arctic Embed 137M M-Long (FP16)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:110m-m-fp16",name:"Snowflake Arctic Embed 110M M (FP16)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:33m-s-fp16",name:"Snowflake Arctic Embed 33M S (FP16)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:22m-xs-fp16",name:"Snowflake Arctic Embed 22M XS (FP16)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed2",name:"Snowflake Arctic Embed 2",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed2:latest",name:"Snowflake Arctic Embed 2 (Latest)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed2:568m",name:"Snowflake Arctic Embed 2 568M",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed2:568m-l-fp16",name:"Snowflake Arctic Embed 2 568M L (FP16)",kind:"embedding",dimensions:1024},{id:"granite-embedding",name:"Granite Embedding",kind:"embedding",dimensions:384},{id:"granite-embedding:latest",name:"Granite Embedding (Latest)",kind:"embedding",dimensions:384},{id:"granite-embedding:278m",name:"Granite Embedding 278M (Multilingual)",kind:"embedding",dimensions:768},{id:"granite-embedding:30m",name:"Granite Embedding 30M (EN)",kind:"embedding",dimensions:384},{id:"granite-embedding:30m-en",name:"Granite Embedding 30M EN",kind:"embedding",dimensions:384},{id:"granite-embedding:278m-fp16",name:"Granite Embedding 278M (FP16)",kind:"embedding",dimensions:768},{id:"granite-embedding:30m-en-fp16",name:"Granite Embedding 30M EN (FP16)",kind:"embedding",dimensions:384},{id:"paraphrase-multilingual",name:"Paraphrase Multilingual",kind:"embedding",dimensions:768},{id:"paraphrase-multilingual:latest",name:"Paraphrase Multilingual (Latest)",kind:"embedding",dimensions:768},{id:"paraphrase-multilingual:278m",name:"Paraphrase Multilingual 278M",kind:"embedding",dimensions:768},{id:"paraphrase-multilingual:278m-mpnet-base-v2-fp16",name:"Paraphrase Multilingual 278M (FP16)",kind:"embedding",dimensions:768},{id:"laya",name:"Laya",kind:"embedding",dimensions:1024},{id:"laya:latest",name:"Laya (Latest)",kind:"embedding",dimensions:1024},{id:"laya:421m-english-bf16",name:"Laya 421M English (BF16)",kind:"embedding",dimensions:1024},{id:"laya:322m-multilingual-bf16",name:"Laya 322M Multilingual (BF16)",kind:"embedding",dimensions:1024},{id:"laya:421m-typed-decisions-bf16",name:"Laya 421M Decisions (BF16)",kind:"embedding",dimensions:1024},{id:"phonon:latest",name:"Phonon (Latest)",kind:"tts",params:["voice","response_format"]},{id:"phonon",name:"Phonon",kind:"tts",params:["voice","response_format"]},{id:"phonon:multilingual",name:"Phonon Multilingual",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-multilingual",name:"Phonon 40M Multilingual",kind:"tts",params:["voice","response_format"]},{id:"phonon:en",name:"Phonon English",kind:"tts",params:["voice","response_format"]},{id:"phonon:31m-en",name:"Phonon 31M English",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-en",name:"Phonon 40M English",kind:"tts",params:["voice","response_format"]},{id:"phonon:de",name:"Phonon German",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-de",name:"Phonon 40M German",kind:"tts",params:["voice","response_format"]},{id:"phonon:es",name:"Phonon Spanish",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-es",name:"Phonon 40M Spanish",kind:"tts",params:["voice","response_format"]},{id:"phonon:fr",name:"Phonon French",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-fr",name:"Phonon 40M French",kind:"tts",params:["voice","response_format"]},{id:"phonon:pt",name:"Phonon Portuguese",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-pt",name:"Phonon 40M Portuguese",kind:"tts",params:["voice","response_format"]},{id:"clef",name:"Clef",kind:"systemone"},{id:"clef-flash",name:"Clef Flash",kind:"systemone"}],serviceKinds:["llm","embedding","systemone","tts"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"http://localhost:11434/v1/systemone",path:"/v1/systemone",authType:"none"},embeddingConfig:{identity:"openai-node",format:"openai",baseUrl:"http://localhost:11434/v1/embeddings",path:"/v1/embeddings",authType:"none"},ttsConfig:{identity:"openai-node",format:"openai",baseUrl:"http://localhost:11434/v1/audio/speech",path:"/v1/audio/speech",defaultModel:"phonon",defaultVoice:"default",authType:"apikey"}},{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:{identity:"openai-node",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",transport:{identity:"openai-node",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"},{id:"deepseek-v4.1-flash:cloud",name:"DeepSeek V4.1 Flash"},{id:"clef",name:"Clef",kind:"systemone"},{id:"clef-flash",name:"Clef Flash",kind:"systemone"},{id:"clef:cloud",name:"Clef (Cloud)",kind:"systemone"}],serviceKinds:["llm","systemone","webFetch"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://ollama.com/v1/systemone",authType:"apikey",authHeader:"bearer"},fetchConfig:{identity:"openai-node",baseUrl:"https://ollama.com/api/web_fetch",method:"POST",authType:"apikey",authHeader:"bearer",formats:["markdown"],maxCharacters:2e5,timeoutMs:3e4},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:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.5",name:"GPT-5.5"},{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:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",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",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode subscription (multiple plans). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/go/v1/usage"}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{identity:"openai-node",format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"},thinkingFormat:"openai-responses"}],models:[{id:"deepseek-flash",name:"DeepSeek Flash",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:"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:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k3.1-pro",name:"Kimi K3.1 Pro",supportedFormats:["openai"]},{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:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"longcat-2.0",name:"LongCat 2.0",supportedFormats:["openai"]},{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:"minimax-m3",name:"MiniMax M3",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"space-bunny-free",name:"Space Bunny Free",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"hy4-preview",name:"Hy4 Preview",supportedFormats:["openai"]},{id:"hy3",name:"Hy3",supportedFormats:["openai"]},{id:"hy3-preview",name:"Hy3 Preview",supportedFormats:["openai"]},{id:"omen-alpha",name:"Omen Alpha",supportedFormats:["openai"]},{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:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-luna",name:"GPT 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:"claude-haiku-5-5",name:"Claude Haiku 5.5",targetFormat:"claude",supportedFormats:["claude"]}],features:{usage:!0,usageApikey:!0},modelsFetcher:{url:"https://opencode.ai/zen/go/v1/models",type:"opencode-go"},passthroughModels:!0},{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:{identity:"openai-node",baseUrl:"https://opencode.ai/zen/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/v1/usage"}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://opencode.ai/zen/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{identity:"openai-node",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",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",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-4-5",name:"Claude Haiku 4.5",supportedFormats:["claude"]},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",supportedFormats:["openai"]},{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.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-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.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.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["claude"]},{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:"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:"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,transport:{identity:"openai-node",baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"desktop"},forceStream:!0,noAuth:!0,reasoningInject:{scope:"all"},quirks:{forceAutoToolChoiceModels:["muse-spark-1.3-contributor-free"],reasoningAliasFields:!0}},models:[{id:"union-alpha",name:"Union Alpha Free",targetFormat:"claude"},{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:"jev-1.13-free",name:"Jev 1.13 Free",kind:"systemone"}],serviceKinds:["llm","systemone"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/v1/systemone",headers:{"x-opencode-client":"desktop"}},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",transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",identity:"openai-node"},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:"google/veo-3.1",name:"Veo 3.1 (via OpenRouter)",params:["duration","aspect_ratio","resolution"],kind:"video"},{id:"openai/sora-2-pro",name:"Sora 2 Pro (via OpenRouter)",params:["duration","aspect_ratio","resolution"],kind:"video"},{id:"bytedance/seedance-2.0",name:"Seedance 2.0 (via OpenRouter)",params:["duration","aspect_ratio","resolution"],kind:"video"},{id:"typesafe/jev-1.13",name:"Jev 1.13",kind:"systemone"}],serviceKinds:["llm","embedding","tts","imageToText","video","systemone"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://openrouter.ai/api/v1/systemone",headers:{"HTTP-Referer":"https://github.com/switchboard/switchboard","X-Title":"Switchboard"}},ttsConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts"},embeddingConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/images/generations"},videoConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/videos",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-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:{identity:"chrome",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{identity:"openai-node",id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"qoder-cn",priority:30,alias:"qdcn",uiAlias:"qdcn",display:{name:"Qoder CN",icon:"water_drop",color:"#EC4899",website:"https://qoder.com.cn",notice:{signupUrl:"https://qoder.com.cn"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) from https://qoder.com.cn/account/integrations",transport:{identity:"openai-node",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:"ultimate",name:"Ultimate"},{id:"auto",name:"Auto"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"lite",name:"Lite"},{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"},{id:"smodel",name:"Sonus"},{id:"cmodel",name:"Cantus"}],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.com.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"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) from https://qoder.com/account/integrations",transport:{identity:"openai-node",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:"ultimate",name:"Ultimate"},{id:"auto",name:"Auto"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"lite",name:"Lite"},{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"},{id:"smodel",name:"Sonus"},{id:"cmodel",name:"Cantus"}],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:"qwen",priority:130,alias:"qw",display:{name:"Qwen Code",icon:"psychology",color:"#10B981",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"}},category:"oauth",transport:{identity:"qwen",baseUrl:"https://portal.qwen.ai/v1/chat/completions"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],oauth:{clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256",refreshLeadMs:12e5}},{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:{identity:"openai-node",baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{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:{identity:"openai-node",baseUrl:"https://api.dev.runwayml.com/v1"}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"http://localhost:8888/search",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,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"data_array",color:"#14B8A6",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",authType:"apikey",models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-stt",priority:50,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"mic",color:"#14B8A6",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",authType:"apikey",models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"record_voice_over",color:"#14B8A6",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",authType:"apikey",models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai",defaultModel:"kokoro",defaultVoice:"af_heart"}},{id:"sensenova",alias:"sensenova",display:{name:"SenseNova",icon:"auto_awesome",color:"#5B5CE2",textIcon:"SN",website:"https://token.sensenova.cn",notice:{apiKeyUrl:"https://token.sensenova.cn"}},category:"apikey",thinkingConfig:{options:["none","low","medium","high","max"],defaultMode:"high"},transport:{identity:"openai-node",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:"sensenova-u1.5-lite",name:"SenseNova U1.5 Lite",kind:"image",capabilities:["text2img","edit"],params:["n","size","output_format","response_format","watermark","prompt_extend"]},{id:"sensenova-u1.5-fast",name:"SenseNova U1.5 Fast",kind:"image",capabilities:["text2img"],params:["n","size","output_format","response_format","watermark","prompt_extend"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-flash",name:"DeepSeek V4.1 Flash"},{id:"glm-5.2",name:"GLM-5.2"},{id:"kimi-k3",name:"Kimi K3"}],serviceKinds:["llm","image","imageToText"],imageConfig:{identity:"openai-node",baseUrl:"https://token.sensenova.cn/v1/images/generations",bodyFields:["model","prompt","n","size","output_format","response_format","watermark","prompt_extend"]}},{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:{identity:"openai-node",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",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.together.xyz/v1/embeddings"}},{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:{identity:"openai-node",baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-4-argon",name:"Gemini 4 Argon",defaultLocation:"global"},{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"},{id:"veo-3.1-generate-preview",name:"Veo 3.1 (Preview)",params:["duration","aspect_ratio","resolution","negative_prompt","seed","storage_uri","generate_audio"],kind:"video"},{id:"veo-3.1-fast-generate-preview",name:"Veo 3.1 Fast (Preview)",params:["duration","aspect_ratio","resolution","negative_prompt","seed","storage_uri","generate_audio"],kind:"video"},{id:"veo-3.0-generate-001",name:"Veo 3",params:["duration","aspect_ratio","resolution","negative_prompt","seed","storage_uri","generate_audio"],kind:"video"},{id:"veo-2.0-generate-001",name:"Veo 2",params:["duration","aspect_ratio","negative_prompt","seed","storage_uri"],kind:"video"}],serviceKinds:["llm","imageToText","video"],videoConfig:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com"}},{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:{identity:"openai-node",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",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:{identity:"openai-node",baseUrl:"https://api.voyageai.com/v1/embeddings"}},{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:{identity:"grok-cli",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.7",name:"Grok 4.7"},{id:"grok-4.6",name:"Grok 4.6"},{id:"grok-4.5",name:"Grok 4.5"},{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:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{identity:"grok-cli",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"}},o,p,{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:{identity:"openai-node",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:{identity:"openai-node",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:"zed",priority:999,alias:"zd",uiAlias:"zd",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",identity:"openai-node",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}}]},4554:(a,b,c)=>{var d=c(45654);c(1277),c(33889);var e=a.exports=d.sha1=d.sha1||{};d.md.sha1=d.md.algorithms.sha1=e,e.create=function(){g||(f=String.fromCharCode(128)+d.util.fillString("\0",64),g=!0);var a=null,b=d.util.createBuffer(),c=Array(80),e={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return e.start=function(){e.messageLength=0,e.fullMessageLength=e.messageLength64=[];for(var c=e.messageLengthSize/4,f=0;f<c;++f)e.fullMessageLength.push(0);return b=d.util.createBuffer(),a={h0:0x67452301,h1:0xefcdab89,h2:0x98badcfe,h3:0x10325476,h4:0xc3d2e1f0},e},e.start(),e.update=function(f,g){"utf8"===g&&(f=d.util.encodeUtf8(f));var i=f.length;e.messageLength+=i,i=[i/0x100000000>>>0,i>>>0];for(var j=e.fullMessageLength.length-1;j>=0;--j)e.fullMessageLength[j]+=i[1],i[1]=i[0]+(e.fullMessageLength[j]/0x100000000>>>0),e.fullMessageLength[j]=e.fullMessageLength[j]>>>0,i[0]=i[1]/0x100000000>>>0;return b.putBytes(f),h(a,c,b),(b.read>2048||0===b.length())&&b.compact(),e},e.digest=function(){var g,i=d.util.createBuffer();i.putBytes(b.bytes());var j=e.fullMessageLength[e.fullMessageLength.length-1]+e.messageLengthSize&e.blockLength-1;i.putBytes(f.substr(0,e.blockLength-j));for(var k=8*e.fullMessageLength[0],l=0;l<e.fullMessageLength.length-1;++l)k+=(g=8*e.fullMessageLength[l+1])/0x100000000>>>0,i.putInt32(k>>>0),k=g>>>0;i.putInt32(k);var m={h0:a.h0,h1:a.h1,h2:a.h2,h3:a.h3,h4:a.h4};h(m,c,i);var n=d.util.createBuffer();return n.putInt32(m.h0),n.putInt32(m.h1),n.putInt32(m.h2),n.putInt32(m.h3),n.putInt32(m.h4),n},e};var f=null,g=!1;function h(a,b,c){for(var d,e,f,g,h,i,j,k,l=c.length();l>=64;){for(e=a.h0,f=a.h1,g=a.h2,h=a.h3,i=a.h4,k=0;k<16;++k)d=c.getInt32(),b[k]=d,d=(e<<5|e>>>27)+(h^f&(g^h))+i+0x5a827999+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<20;++k)d=(d=b[k-3]^b[k-8]^b[k-14]^b[k-16])<<1|d>>>31,b[k]=d,d=(e<<5|e>>>27)+(h^f&(g^h))+i+0x5a827999+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<32;++k)d=(d=b[k-3]^b[k-8]^b[k-14]^b[k-16])<<1|d>>>31,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0x6ed9eba1+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<40;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0x6ed9eba1+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<60;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f&g|h&(f^g))+i+0x8f1bbcdc+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<80;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0xca62c1d6+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;a.h0=a.h0+e|0,a.h1=a.h1+f|0,a.h2=a.h2+g|0,a.h3=a.h3+h|0,a.h4=a.h4+i|0,l-=64}}},4620:(a,b,c)=>{"use strict";c.d(b,{x:()=>p});var d=c(22256),e=c(38421),f=c(10793),g=c(82689),h=c(89666),i=c(2670),j=c(52868),k=c(18101),l=c(50969),m=c(29137),n=c(19016),o=c(55511);class p extends d.Hv{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","x-request-id":o.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};if(a.response_format&&a.model?.includes("claude")){let b=a.response_format,c="";if("json_schema"===b.type&&b.json_schema?.schema?c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks. Never wrap JSON in triple backticks. Output ONLY the raw JSON object.":"json_object"===b.type&&(c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks."),c){let b=a.messages.findIndex(a=>"system"===a.role);b>=0?a.messages[b].content=c+"\n\n"+a.messages[b].content:a.messages.unshift({role:"system",content:c});let d=a.messages.map((a,b)=>"user"===a.role?b:-1).filter(a=>a>=0).pop();if(d>=0){let b=a.messages[d],c="string"==typeof b.content?b.content:JSON.stringify(b.content);b.content="Respond with ONLY raw JSON (no markdown, no backticks, no code blocks): "+c}}}return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){super.transformRequest(a,b,c,d);let e=b&&"object"==typeof b?b:{...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,m.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async executeWithResponsesEndpoint({model:a,body:b,stream:d,credentials:e,signal:f,log:g,proxyOptions:m=null,providerOverrides:o=null}){let p=this.config.responsesUrl,q={...this.buildHeaders(e,d),...o?.headers||{}},r=(0,h.h_)(a,b,d,e);g?.debug("GITHUB","Sending translated request to /responses");let s=await (0,l.Fm)(p,{method:"POST",headers:q,body:JSON.stringify(r),signal:f,identity:this.config?.identity,provider:this.provider,format:this.config?.format,stream:d},m);if(!s.ok)return{response:s,url:p,headers:q,transformedBody:r};if(!d&&s.body)try{let{convertResponsesStreamToJson:b}=await Promise.resolve().then(c.bind(c,82703)),d=await b(s.body),e=function(a,b){let c=Array.isArray(a?.output)?a.output:[],d="",e=[];for(let a of c){if(a?.type==="message"&&Array.isArray(a.content))for(let b of a.content)b?.type==="output_text"&&"string"==typeof b.text?d+=b.text:"string"==typeof b?.text&&(d+=b.text);a?.type==="function_call"&&e.push({id:a.call_id||`call_${a.name}_${e.length}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})}let f={role:"assistant",content:d||(e.length?null:"")};e.length&&(f.tool_calls=e);let g=a?.usage||{};return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b,choices:[{index:0,message:f,finish_reason:e.length?"tool_calls":"stop"}],usage:{prompt_tokens:g.input_tokens||0,completion_tokens:g.output_tokens||0,total_tokens:(g.input_tokens||0)+(g.output_tokens||0)}}}(d,a);return{response:new Response(JSON.stringify(e),{status:200,headers:{"Content-Type":"application/json"}}),url:p,headers:q,transformedBody:r}}catch(a){g?.warn?.("GITHUB",`non-stream responses aggregate failed: ${a.message}`)}let t=(0,j.Ws)("openai-responses");t.model=a;let u=new TextDecoder,v="",w=new TransformStream({async transform(a,b){let c=(v+=u.decode(a,{stream:!0})).split("\n");for(let a of(v=c.pop()||"",c)){let c=a.trim();if(!c)continue;let e=(0,k.tV)(c);if(!e)continue;if(e.done&&!0===d){b.enqueue(new TextEncoder().encode(n.$U));continue}let f=(0,i.v)(e,t);if(f){let a=(0,k.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(v.trim()){let b=(0,k.tV)(v.trim());if(b&&!b.done){let c=(0,i.v)(b,t);c&&a.enqueue(new TextEncoder().encode((0,k.v8)(c,"openai")))}}}});return s.body?{response:new Response(s.body.pipeThrough(w),{status:s.status,statusText:s.statusText,headers:s.headers}),url:p,headers:q,transformedBody:r}:{response:new Response("",{status:s.status,headers:s.headers}),url:p,headers:q,transformedBody:r}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,l.Fm)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,Accept:"application/json"},identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,l.Fm)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d),identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),!Number.isFinite(b)||b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},4654:(a,b,c)=>{"use strict";let{uid:d,states:e,sentCloseFrameState:f,emptyBuffer:g,opcodes:h}=c(62026),{parseExtensions:i,isClosed:j,isClosing:k,isEstablished:l,isConnecting:m,validateCloseCodeAndReason:n}=c(94050),{makeRequest:o}=c(12600),{fetching:p}=c(76403),{Headers:q,getHeadersList:r}=c(28665),{getDecodeSplit:s}=c(42425),{WebsocketFrameSend:t}=c(45221),u=c(34589),{runtimeFeatures:v}=c(56758),w=v.has("crypto")?c(77598):null,x=!1;function y(a,b,c,d=!1){if(b??=null,c??="",d&&n(b,c),j(a.readyState)||k(a.readyState));else if(l(a.readyState))if(a.closeState.has(f.SENT)||a.closeState.has(f.RECEIVED))a.readyState=e.CLOSING;else{let d=new t;0!==c.length&&null===b&&(b=1e3),u(null===b||Number.isInteger(b)),null===b&&0===c.length?d.frameData=g:null!==b&&null===c?(d.frameData=Buffer.allocUnsafe(2),d.frameData.writeUInt16BE(b,0)):null!==b&&null!==c?(d.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(c)),d.frameData.writeUInt16BE(b,0),d.frameData.write(c,2,"utf-8")):d.frameData=g,a.socket.write(d.createFrame(h.CLOSE)),a.closeState.add(f.SENT),a.readyState=e.CLOSING}else A(a),a.readyState=e.CLOSING}function z(a,b,c,d,e){b.socket?.session==null||b.socket.destroyed||b.socket.destroy(),A(a,c,d,e)}function A(a,b,c,d){l(a.readyState)&&y(a,b,c,!1),a.controller.abort(),m(a.readyState)?a.onSocketClose():a.socket?.destroyed===!1&&a.socket.destroy()}a.exports={establishWebSocketConnection:function(a,b,c,e,f){a.protocol="ws:"===a.protocol?"http:":"https:";let g=o({urlList:[a],client:c,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error",useURLCredentials:!0});f.headers&&(g.headersList=r(new q(f.headers)));let h=w.randomBytes(16).toString("base64");for(let a of(g.headersList.append("sec-websocket-key",h,!0),g.headersList.append("sec-websocket-version","13",!0),b))g.headersList.append("sec-websocket-protocol",a,!0);return g.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits",!0),p({request:g,useParallelQueue:!0,dispatcher:f.dispatcher,processResponse(a){let c;if("error"===a.type||101!==a.status){if(a.socket?.session==null)return void z(e,a,1002,"Received network error or non-101 status code.",a.error);if(200!==a.status)return void z(e,a,1002,"Received network error or non-200 status code.",a.error)}if(!1===x&&a.socket?.session!=null&&(process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.","ExperimentalWarning"),x=!0),0!==b.length&&!a.headersList.get("Sec-WebSocket-Protocol"))return void z(e,a,1002,"Server did not respond with sent protocols.");if(null==a.socket.session&&a.headersList.get("Upgrade")?.toLowerCase()!=="websocket")return void z(e,a,1002,'Server did not set Upgrade header to "websocket".');if(null==a.socket.session&&a.headersList.get("Connection")?.toLowerCase()!=="upgrade")return void z(e,a,1002,'Server did not set Connection header to "upgrade".');if(null==a.socket.session&&a.headersList.get("Sec-WebSocket-Accept")!==w.hash("sha1",h+d,"base64"))return void z(e,a,1002,"Incorrect hash received in Sec-WebSocket-Accept header.");let f=a.headersList.get("Sec-WebSocket-Extensions");if(null!==f&&!(c=i(f)).has("permessage-deflate"))return void z(e,a,1002,"Sec-WebSocket-Extensions header does not match.");let j=a.headersList.get("Sec-WebSocket-Protocol");if(null!==j){let b=s("sec-websocket-protocol",g.headersList);if(null===b||!b.includes(j))return void z(e,a,1002,"Protocol was not set in the opening handshake.")}null!=a.socket.session&&(a.socket.allowHalfOpen=!1),a.socket.on("data",e.onSocketData),a.socket.on("close",e.onSocketClose),a.socket.on("error",e.onSocketError),e.wasEverConnected=!0,e.onConnectionEstablished(a,c)}})},failWebsocketConnection:A,closeWebSocketConnection:y}},4879:(a,b,c)=>{"use strict";c(82340);let d="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",e='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',f="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",g="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",h="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",i="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",j='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',k='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.';["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",e,d,f,g,h,i,j,k].join(" "),["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",e,d,f,g,h,i,j,k].join(" "),["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",e,d,f,g,h,i,j,k].join(" "),["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",e,d,f,g,h,i,j,k].join(" "),["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",e,d,f,g,h,i,j,k].join(" "),["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",e,d,f,g,h,i,j,k].join(" ")},4890:(a,b,c)=>{var d=c(45654);c(33889);var e=null;!d.util.isNodejs||d.options.usePureJavaScript||process.versions["node-webkit"]||(e=c(55511)),(a.exports=d.prng=d.prng||{}).create=function(a){for(var b={plugin:a,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},c=a.md,f=Array(32),g=0;g<32;++g)f[g]=c.create();function h(){b.reseeds=0xffffffff===b.reseeds?0:b.reseeds+1;var a=b.plugin.md.create();a.update(b.keyBytes);for(var c=1,d=0;d<32;++d)b.reseeds%c==0&&(a.update(b.pools[d].digest().getBytes()),b.pools[d].start()),c<<=1;b.keyBytes=a.digest().getBytes(),a.start(),a.update(b.keyBytes);var e=a.digest().getBytes();b.key=b.plugin.formatKey(b.keyBytes),b.seed=b.plugin.formatSeed(e),b.generated=0}function i(a){var b=null,c=d.util.globalScope,e=c.crypto||c.msCrypto;e&&e.getRandomValues&&(b=function(a){return e.getRandomValues(a)});var f=d.util.createBuffer();if(b)for(;f.length()<a;){var g=new Uint32Array(Math.floor(Math.max(1,Math.min(a-f.length(),65536)/4)));try{b(g);for(var h=0;h<g.length;++h)f.putInt32(g[h])}catch(a){if(!("u">typeof QuotaExceededError&&a instanceof QuotaExceededError))throw a}}if(f.length()<a)for(var i,j,k,l=Math.floor(65536*Math.random());f.length()<a;){l=0|(j=(0x7fffffff&(j=16807*(65535&l)+(((32767&(i=16807*(l>>16)))<<16)+(i>>15))))+(j>>31));for(var h=0;h<3;++h)k=l>>>(h<<3)^Math.floor(256*Math.random()),f.putByte(255&k)}return f.getBytes(a)}return b.pools=f,b.pool=0,b.generate=function(a,c){if(!c)return b.generateSync(a);var e=b.plugin.cipher,f=b.plugin.increment,g=b.plugin.formatKey,i=b.plugin.formatSeed,j=d.util.createBuffer();b.key=null,function k(l){if(l)return c(l);if(j.length()>=a)return c(null,j.getBytes(a));if(b.generated>1048575&&(b.key=null),null===b.key)return d.util.nextTick(function(){!function(a){if(b.pools[0].messageLength>=32)return h(),a();var c=32-b.pools[0].messageLength<<5;b.seedFile(c,function(c,d){if(c)return a(c);b.collect(d),h(),a()})}(k)});var m=e(b.key,b.seed);b.generated+=m.length,j.putBytes(m),b.key=g(e(b.key,f(b.seed))),b.seed=i(e(b.key,b.seed)),d.util.setImmediate(k)}()},b.generateSync=function(a){var c=b.plugin.cipher,e=b.plugin.increment,f=b.plugin.formatKey,g=b.plugin.formatSeed;b.key=null;for(var i=d.util.createBuffer();i.length()<a;){b.generated>1048575&&(b.key=null),null===b.key&&function(){if(b.pools[0].messageLength>=32)return h();var a=32-b.pools[0].messageLength<<5;b.collect(b.seedFileSync(a)),h()}();var j=c(b.key,b.seed);b.generated+=j.length,i.putBytes(j),b.key=f(c(b.key,e(b.seed))),b.seed=g(c(b.key,b.seed))}return i.getBytes(a)},e?(b.seedFile=function(a,b){e.randomBytes(a,function(a,c){if(a)return b(a);b(null,c.toString())})},b.seedFileSync=function(a){return e.randomBytes(a).toString()}):(b.seedFile=function(a,b){try{b(null,i(a))}catch(a){b(a)}},b.seedFileSync=i),b.collect=function(a){for(var c=a.length,d=0;d<c;++d)b.pools[b.pool].update(a.substr(d,1)),b.pool=31===b.pool?0:b.pool+1},b.collectInt=function(a,c){for(var d="",e=0;e<c;e+=8)d+=String.fromCharCode(a>>e&255);b.collect(d)},b.registerWorker=function(a){a===self?b.seedFile=function(a,b){self.addEventListener("message",function a(c){var d=c.data;d.forge&&d.forge.prng&&(self.removeEventListener("message",a),b(d.forge.prng.err,d.forge.prng.bytes))}),self.postMessage({forge:{prng:{needed:a}}})}:a.addEventListener("message",function(c){var d=c.data;d.forge&&d.forge.prng&&b.seedFile(d.forge.prng.needed,function(b,c){a.postMessage({forge:{prng:{err:b,bytes:c}}})})})},b}},5019:(a,b,c)=>{a.exports=c(45654),c(45518),c(39804),c(63070),c(66568),c(88819),c(22164),c(76632),c(33206),c(31881),c(69445),c(41702),c(70710),c(49345),c(24985),c(15873),c(76103),c(94463),c(36902),c(4890),c(87981),c(29984),c(67382),c(28169),c(27080),c(33889)},5318:(a,b,c)=>{"use strict";let d=c(4573),e=c(7344),{ClientDestroyedError:f,ClientClosedError:g,InvalidArgumentError:h}=c(61448),{kDestroy:i,kClose:j,kClosed:k,kDestroyed:l,kDispatch:m}=c(49176),n=Symbol("onDestroyed"),o=Symbol("onClosed"),p=Symbol("webSocketOptions"),q=Symbol("eventSourceOptions");class r extends e{[l]=!1;[n]=null;[k]=!1;[o]=null;constructor(a){super(),this[p]=a?.webSocket??{},this[q]=a?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[p].maxFragments??131072,maxPayloadSize:this[p].maxPayloadSize??0x8000000}}get eventSourceOptions(){return{maxEventSize:this[q].maxEventSize??d.kStringMaxLength}}get destroyed(){return this[l]}get closed(){return this[k]}close(a){if(void 0===a)return new Promise((a,b)=>{this.close((c,d)=>c?b(c):a(d))});if("function"!=typeof a)throw new h("invalid callback");if(this[l]){let b=new f;queueMicrotask(()=>a(b,null));return}if(this[k])return void(this[o]?this[o].push(a):queueMicrotask(()=>a(null,null)));this[k]=!0,this[o]??=[],this[o].push(a);let b=()=>{let a=this[o];this[o]=null;for(let b=0;b<a.length;b++)a[b](null,null)};this[j]().then(()=>this.destroy()).then(()=>queueMicrotask(b))}destroy(a,b){if("function"==typeof a&&(b=a,a=null),void 0===b)return new Promise((b,c)=>{this.destroy(a,(a,d)=>a?c(a):b(d))});if("function"!=typeof b)throw new h("invalid callback");if(this[l])return void(this[n]?this[n].push(b):queueMicrotask(()=>b(null,null)));a||(a=new f),this[l]=!0,this[n]??=[],this[n].push(b);let c=()=>{let a=this[n];this[n]=null;for(let b=0;b<a.length;b++)a[b](null,null)};this[i](a).then(()=>queueMicrotask(c))}dispatch(a,b){if(!b||"object"!=typeof b)throw new h("handler must be an object");try{if(!a||"object"!=typeof a)throw new h("opts must be an object.");if(a.dispatcher)throw new h("opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.");if(this[l]||this[n])throw new f;if(this[k])throw new g;return this[m](a,b)}catch(a){if("function"!=typeof b.onResponseError)throw a;return b.onResponseError(null,a),!1}}}a.exports=r},5831:(a,b,c)=>{"use strict";let{collectASequenceOfCodePointsFast:d}=c(70745),{maxNameValuePairSize:e,maxAttributeValueSize:f}=c(29653),{isCTLExcludingHtab:g}=c(84698),h=c(34589);function i(a,b={}){for(;;){if(0===a.length)return b;h(";"===a[0]);let c="";(a=a.slice(1)).includes(";")?(c=d(";",a,{position:0}),a=a.slice(c.length)):(c=a,a="");let e="",g="";if(c.includes("=")){let a={position:0};e=d("=",c,a),g=c.slice(a.position+1)}else e=c;if(e=e.trim(),(g=g.trim()).length>f)continue;let i=e.toLowerCase();if("expires"===i){let a=new Date(g);Number.isNaN(a.getTime())||(b.expires=a)}else if("max-age"===i){let a=g.charCodeAt(0),c=a>=48&&a<=57,d="-"===g[0]&&g.length>1;if(!c&&!d||/[^\d]/.test(g.slice(1)))continue;b.maxAge=Number(g)}else if("domain"===i){let a=g;"."===a[0]&&(a=a.slice(1)),b.domain=a=a.toLowerCase()}else if("path"===i)b.path=0===g.length||"/"!==g[0]?"/":g;else if("secure"===i)b.secure=!0;else if("httponly"===i)b.httpOnly=!0;else if("samesite"===i){let a=g.toLowerCase();"none"===a?b.sameSite="None":"strict"===a?b.sameSite="Strict":"lax"===a&&(b.sameSite="Lax")}else b.unparsed??=[],b.unparsed.push(`${e}=${g}`)}}a.exports={parseSetCookie:function(a){if(g(a))return null;let b="",c="",f="",h="";if(a.includes(";")){let e={position:0};b=d(";",a,e),c=a.slice(e.position)}else b=a;if(b.includes("=")){let a={position:0};f=d("=",b,a),h=b.slice(a.position+1)}else h=b;return(f=f.trim(),h=h.trim(),f.length+h.length>e)?null:{name:f,value:h,...i(c)}},parseUnparsedAttributes:i}},6125:(a,b,c)=>{"use strict";c(10793),"u">typeof process&&process.versions?.node,"u">typeof process&&process.env?.ENABLE_REQUEST_LOGS},6680:(a,b,c)=>{var d=c(45654);c(1277),c(33889);var e=a.exports=d.sha256=d.sha256||{};d.md.sha256=d.md.algorithms.sha256=e,e.create=function(){g||(f=String.fromCharCode(128)+d.util.fillString("\0",64),h=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2],g=!0);var a=null,b=d.util.createBuffer(),c=Array(64),e={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return e.start=function(){e.messageLength=0,e.fullMessageLength=e.messageLength64=[];for(var c=e.messageLengthSize/4,f=0;f<c;++f)e.fullMessageLength.push(0);return b=d.util.createBuffer(),a={h0:0x6a09e667,h1:0xbb67ae85,h2:0x3c6ef372,h3:0xa54ff53a,h4:0x510e527f,h5:0x9b05688c,h6:0x1f83d9ab,h7:0x5be0cd19},e},e.start(),e.update=function(f,g){"utf8"===g&&(f=d.util.encodeUtf8(f));var h=f.length;e.messageLength+=h,h=[h/0x100000000>>>0,h>>>0];for(var j=e.fullMessageLength.length-1;j>=0;--j)e.fullMessageLength[j]+=h[1],h[1]=h[0]+(e.fullMessageLength[j]/0x100000000>>>0),e.fullMessageLength[j]=e.fullMessageLength[j]>>>0,h[0]=h[1]/0x100000000>>>0;return b.putBytes(f),i(a,c,b),(b.read>2048||0===b.length())&&b.compact(),e},e.digest=function(){var g,h=d.util.createBuffer();h.putBytes(b.bytes());var j=e.fullMessageLength[e.fullMessageLength.length-1]+e.messageLengthSize&e.blockLength-1;h.putBytes(f.substr(0,e.blockLength-j));for(var k=8*e.fullMessageLength[0],l=0;l<e.fullMessageLength.length-1;++l)k+=(g=8*e.fullMessageLength[l+1])/0x100000000>>>0,h.putInt32(k>>>0),k=g>>>0;h.putInt32(k);var m={h0:a.h0,h1:a.h1,h2:a.h2,h3:a.h3,h4:a.h4,h5:a.h5,h6:a.h6,h7:a.h7};i(m,c,h);var n=d.util.createBuffer();return n.putInt32(m.h0),n.putInt32(m.h1),n.putInt32(m.h2),n.putInt32(m.h3),n.putInt32(m.h4),n.putInt32(m.h5),n.putInt32(m.h6),n.putInt32(m.h7),n},e};var f=null,g=!1,h=null;function i(a,b,c){for(var d,e,f,g,i,j,k,l,m,n,o,p,q,r,s,t=c.length();t>=64;){for(k=0;k<16;++k)b[k]=c.getInt32();for(;k<64;++k)d=((d=b[k-2])>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,e=((e=b[k-15])>>>7|e<<25)^(e>>>18|e<<14)^e>>>3,b[k]=d+b[k-7]+e+b[k-16]|0;for(l=a.h0,m=a.h1,n=a.h2,o=a.h3,p=a.h4,q=a.h5,r=a.h6,s=a.h7,k=0;k<64;++k)g=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),i=r^p&(q^r),f=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),j=l&m|n&(l^m),d=s+g+i+h[k]+b[k],e=f+j,s=r,r=q,q=p,p=o+d>>>0,o=n,n=m,m=l,l=d+e>>>0;a.h0=a.h0+l|0,a.h1=a.h1+m|0,a.h2=a.h2+n|0,a.h3=a.h3+o|0,a.h4=a.h4+p|0,a.h5=a.h5+q|0,a.h6=a.h6+r|0,a.h7=a.h7+s|0,t-=64}}},6951:(a,b,c)=>{"use strict";c.d(b,{v:()=>j});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(53859);let i=g().join(h.nJ,"mitm","aliases.json");async function j(){try{var a;let b,d,{getMitmAlias:f}=await Promise.resolve().then(c.bind(c,37703));a=await f()||{},b=g().dirname(i),e().mkdirSync(b,{recursive:!0}),d=`${i}.tmp`,e().writeFileSync(d,JSON.stringify(a,null,2),"utf8"),e().renameSync(d,i)}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}},7044:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>l,deleteProviderNode:()=>n,getProviderNodeById:()=>k,getProviderNodes:()=>j,updateProviderNode:()=>m});var d=c(27137),e=c(52825),f=c(50743),g=c(15738);function h(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 i(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)
11
+ `;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);w?d("launchctl unsetenv NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[launchctl] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[launchctl] NODE_EXTRA_CA_CERTS unset")}):v&&d("reg delete HKCU\\Environment /F /V NODE_EXTRA_CA_CERTS",{windowsHide:!0},a=>{a?D(`[reg] Failed to unset NODE_EXTRA_CA_CERTS: ${a.message}`):D("[reg] NODE_EXTRA_CA_CERTS unset")});try{h.unlinkSync(J)}catch{}try{h.unlinkSync(K)}catch{}return await ac(!1,null),O=!1,{running:!1,pid:null}}async function ar(a,b){if(!(await am()).running)throw Error("MITM server is not running. Start the server first.");let c=b||V()||await ae();return await m(a,c),await af(a,!0),{success:!0}}a.exports={pollMitmHealth:al,getMitmStatus:am,startServer:ap,stopServer:aq,enableToolDNS:ar,disableToolDNS:async function a(a,b){let c=b||V()||await ae();return await n(a,c),await af(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(C,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(94442);if(!v&&!w&&!s())return void D(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||V()||await ae();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&W(e)},startMitm:ap,stopMitm:aq,getCachedPassword:V,setCachedPassword:W,loadEncryptedPassword:ae,clearEncryptedPassword:ad,isSudoPasswordRequired:t,initDbHooks:function(a,b){aa=a,ab=b},restoreToolDNS:ah,hasDnsPrivilege:ai,removeAllDNSEntriesSync:p}},4313:(a,b,c)=>{"use strict";c.d(b,{A:()=>q});var d=c(74570);c(62397);let e=["low","medium","high","xhigh","max"],f={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:{identity:"openai-node",baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"},quirks:{claudeSupportedToolTypes:["web_search_20250305","web_search_20260209"]}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{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.1-flash",name:"DeepSeek V4.1 Flash",upstreamModelId:"deepseek-flash"},{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}},g={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:{identity:"claude-cli",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},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)"}],serviceKinds:["llm","webSearch"],searchConfig:{identity:"openai-node",baseUrl:"https://api.z.ai/api/mcp/web_search_prime/mcp",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5},features:{usage:!0,usageApikey:!0}};var h=c(45431);let i={id:"kimi-coding",hidden:!0,priority:120,alias:"kmc",display:{name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC",website:"https://kimi.moonshot.cn",notice:{signupUrl:"https://kimi.moonshot.cn"}},category:"oauth",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},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:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},{identity:"kimi",format:"openai-responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],oauth:{deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5},features:{usage:!0}},j={id:"kimi",priority:170,alias:"kimi",display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"}},category:"apikey",transport:{identity:"kimi",baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},transports:[{identity:"kimi",format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"kimi",format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},{identity:"kimi",format:"openai-responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],features:{usage:!0,usageApikey:!0},searchViaChat:{defaultModel:"kimi-k2.5",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},k={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:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!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:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},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:{identity:"claude-cli",baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},l={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:{identity:"claude-cli",baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...d.Bi},quirks:{dropOutputConfig:!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:[{identity:"claude-cli",format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"claude-cli",format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...d.Bi},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:{identity:"claude-cli",baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{identity:"claude-cli",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}};var m=c(57422);let n={id:"nous",priority:65,hasFree:!0,alias:"nous",aliases:["nous-portal","nous-research","ns"],uiAlias:"nous",display:{name:"Nous Research",icon:"psychology",color:"#7C3AED",textIcon:"NR",website:"https://nousresearch.com",notice:{text:"Connect with OAuth Device Code (free account, no payment required) or a Nous Portal API key.",signupUrl:"https://portal.nousresearch.com",apiKeyUrl:"https://portal.nousresearch.com/api-keys"}},category:"freeTier",authType:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:m.b,format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{clientId:m.qc,portalBaseUrl:m.tE,deviceCodeUrl:m.pC,tokenUrl:m.cw,agentKeyUrl:m.ur,scope:m.jJ},models:[{id:"meituan/longcat-2.0:free",name:"Meituan: LongCat 2.0",contextLength:1048756,maxOutputTokens:262144},{id:"meituan/longcat-2.5-preview:free",name:"Meituan: LongCat 2.5 Preview",contextLength:1048576,maxOutputTokens:131072},{id:"stepfun/step-5-preview:free",name:"StepFun: Step 5 Preview",contextLength:1e6,maxOutputTokens:64e3},{id:"upstage/solar-mini4:free",name:"Upstage: Solar Mini 4",contextLength:524288,maxOutputTokens:131072},{id:"stepfun/step-3.7-flash:free",name:"StepFun: Step 3.7 Flash",contextLength:262144,maxOutputTokens:256e3},{id:"poolside/laguna-s-2.1:free",name:"Poolside: Laguna S 2.1",contextLength:262144,maxOutputTokens:131072},{id:"poolside/laguna-xs-2.1:free",name:"Poolside: Laguna XS 2.1",contextLength:262144,maxOutputTokens:32768},{id:"stealth/missingno",name:"MissingNo",contextLength:262144,maxOutputTokens:131072}],serviceKinds:["llm","imageToText"],modelsFetcher:{url:m.B3,type:"nous-free"},passthroughModels:!0},o={id:"xiaomi-mimo",priority:290,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://xiaomimimo.com"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}]},p={id:"xiaomi-tokenplan",priority:300,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"Xiaomi MiMo (Token Plan)",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://mimo.xiaomi.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://mimo.xiaomi.com"}},category:"apikey",hasProviderSpecificData:!0,regions:[{id:"sgp",label:"Singapore (新加坡)"},{id:"cn",label:"China (中国大陆)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"sgp",transport:{identity:"openai-node",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1/chat/completions",regions:{sgp:"https://token-plan-sgp.xiaomimimo.com/v1",cn:"https://token-plan-cn.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"sgp"},transports:[{identity:"openai-node",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",headers:{...d.Bi},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5-pro-claude",name:"MiMo V2.5 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.5-pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-tts",name:"MiMo V2 TTS"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design"}]},q=[{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{identity:"openai-node",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:{identity:"openai-node",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:"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:{identity:"claude-cli",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"},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{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"]},{id:"antigravity",priority:20,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","webSearch"],modelsFetcher:{requiresAuth:!0,url:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",method:"POST",type:"google-available-models",headers:{"X-Client-Name":"antigravity"}},transport:{identity:"antigravity",baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",quotaSummaryApiUrl:"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-4-argon-high",name:"Gemini 4 Argon (High)",upstreamModelId:"gemini-4-argon-high(high)"},{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-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)"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-5-5-high",name:"Claude Sonnet 5.5 (High)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5 (Medium)",upstreamModelId:"claude-sonnet-5-5-medium(medium)"},{id:"claude-sonnet-5-5-low",name:"Claude Sonnet 5.5 (Low)",upstreamModelId:"claude-sonnet-5-5-low(low)"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5 (Thinking)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-opus-5-5-high",name:"Claude Opus 5.5 (High)",upstreamModelId:"claude-opus-5-5-high(high)"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5 (Medium)",upstreamModelId:"claude-opus-5-5-medium(medium)"},{id:"claude-opus-5-5-low",name:"Claude Opus 5.5 (Low)",upstreamModelId:"claude-opus-5-5-low(low)"},{id:"claude-opus-5-5",name:"Claude Opus 5.5 (Thinking)",upstreamModelId:"claude-opus-5-5-high(high)"},{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-lite",name:"Gemini 3.1 Flash Lite"},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",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://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",refreshLeadMs:3e5},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://daily-cloudcode-pa.googleapis.com/v1internal:generateContent",freeTier:"Free — Google Search grounding through an Antigravity OAuth account."},features:{usage:!0}},{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"],passthroughModels:!0,modelsFetcher:{url:"https://api.airforce/v1/models",type:"airforce-free"},transport:{identity:"openai-node",baseUrl:"https://api.airforce/v1/chat/completions",validateUrl:"https://api.airforce/v1/models",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Switchboard"},forceStream:!0},models:[{id:"gpt-oss-120b",name:"GPT-OSS 120B (Free)",contextLength:131072},{id:"gpt-oss-20b",name:"GPT-OSS 20B (Free)",contextLength:131072},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code (Free)",contextLength:262144}]},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{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:{identity:"openai-node",baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{identity:"openai-node",id:"neural",name:"Neural"},{identity:"openai-node",id:"long-form",name:"Long-form"},{identity:"openai-node",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:{identity:"openai-node",baseUrl:"",headers:{}}},{id:"bedrock-xai",alias:"brx",aliases:["bedrock-grok"],uiAlias:"brx",category:"apikey",authType:"apikey",apiKeyOptionalWith:"profile",credentialForm:"aws",display:{name:"AWS Bedrock (xAI)",icon:"cloud",color:"#FF9900",textIcon:"BX",website:"https://aws.amazon.com/bedrock/",notice:{text:'xAI Grok models hosted on AWS Bedrock. Authenticate exactly like the AWS Bedrock provider: fill in Profile and Region and leave the API key empty, then run `aws sso login --profile <name>`; or use static keys with the AWS secret access key as the API key. Note Grok is a reasoning model and spends output budget thinking before it answers — a small max_tokens returns finish_reason "length" with empty content, so allow a few thousand tokens.',apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},transport:{baseUrl:"https://bedrock-runtime.{region}.amazonaws.com",auth:{header:"aws-sigv4",scheme:"raw"},identity:"openai-node"},passthroughModels:!0,models:[{id:"us.xai.grok-4.6",name:"Grok 4.6"},{id:"global.xai.grok-4.6",name:"Grok 4.6 (global)"}],hasProviderSpecificData:!0},{id:"bedrock",alias:"br",aliases:["aws-bedrock"],uiAlias:"br",category:"apikey",authType:"apikey",apiKeyOptionalWith:"profile",credentialForm:"aws",display:{name:"AWS Bedrock",icon:"cloud",color:"#FF9900",textIcon:"BR",website:"https://aws.amazon.com/bedrock/",notice:{text:"Two ways to authenticate, both entered in the AWS Bedrock Credentials section below. SSO / profile (recommended): fill in Profile and Region, leave the API key empty, then run `aws sso login --profile <name>` — credentials refresh automatically. Static keys: put the AWS secret access key in the API Key field and the key id in Access Key ID, adding Session Token if they are temporary (ASIA…) keys. A profile, if set, takes precedence over static keys.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},transport:{baseUrl:"https://bedrock-runtime.{region}.amazonaws.com",format:"claude",auth:{header:"aws-sigv4",scheme:"raw"},identity:"openai-node"},passthroughModels:!0,models:[{id:"us.anthropic.claude-opus-5",name:"Claude Opus 5"},{id:"us.anthropic.claude-sonnet-5",name:"Claude Sonnet 5"},{id:"us.anthropic.claude-fable-5",name:"Claude Fable 5"},{id:"us.anthropic.claude-opus-4-8",name:"Claude Opus 4.8"},{id:"us.anthropic.claude-opus-4-7",name:"Claude Opus 4.7"},{id:"us.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"us.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5"},{id:"us.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5"},{id:"us.anthropic.claude-opus-4-1-20250805-v1:0",name:"Claude Opus 4.1"},{id:"us.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4"},{id:"us.anthropic.claude-3-haiku-20240307-v1:0",name:"Claude 3 Haiku"}],hasProviderSpecificData:!0},{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:{identity:"openai-node",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:{identity:"openai-node",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:"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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"claude-cli",baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Dangerous-Direct-Browser-Access":"true"},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-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5-1",name:"Claude Fable 5.1"},{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-opus-4-1-20250805",name:"Claude 4.1 Opus"},{id:"claude-opus-4-20250514",name:"Claude 4 Opus"},{id:"claude-sonnet-4-20250514",name:"Claude 4 Sonnet"},{id:"claude-3-7-sonnet-20250219",name:"Claude 3.7 Sonnet"},{id:"claude-3-5-haiku-20241022",name:"Claude 3.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",authModes:["oauth"],hasOAuth:!0,transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",quirks:{clineEnvelope:!0},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",aliases:["cline-pass"],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:["apikey","oauth"],hasOAuth:!0,transport:{identity:"cline",baseUrl:"https://api.cline.bot/api/v1/chat/completions",quirks:{clineEnvelope:!0},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",hasProviderSpecificData:!0,transport:{identity:"openai-node",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/cloudflare/clef-flash",name:"Clef Flash",kind:"systemone",upstreamModelId:"clef-flash"},{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","systemone"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/run/{model}",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",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"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{identity:"openai-node",baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",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",hooks:["codebuddyHeaders"]},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"hy3",name:"Hy3"},{id:"hy4-preview",name:"Hy4-Preview"},{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"kimi-k3-1",name:"Kimi-K3"},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash"}],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:"codex",priority:30,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:{stt:"Uses the same Codex OAuth connection as chat, not an OpenAI API key. Requires ffmpeg; maximum 25 MiB and 120 seconds. Returns json or text only; language, prompt and timestamps are unsupported. This internal ChatGPT endpoint may change without notice.",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:{identity:"codex-cli",baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,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.1-sol",name:"GPT 6.1 Sol",responsesLite:!0,thinkingLevels:e},{id:"gpt-6.1-terra",name:"GPT 6.1 Terra",responsesLite:!0,thinkingLevels:e},{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",responsesLite:!0,thinkingLevels:e},{id:"gpt-6-sol[1m]",name:"GPT 6.0 Sol (extended context)",upstreamModelId:"gpt-6-sol",responsesLite:!0,thinkingLevels:e},{id:"gpt-6-luna",name:"GPT 6.0 Luna",responsesLite:!0,thinkingLevels:e},{id:"gpt-6-luna[1m]",name:"GPT 6.0 Luna (extended context)",upstreamModelId:"gpt-6-luna",responsesLite:!0,thinkingLevels:e},{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.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-review",name:"GPT 5.3 Codex Review",upstreamModelId:"gpt-5.3-codex",quotaFamily:"review"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-xhigh-review",name:"GPT 5.3 Codex (xHigh) Review",upstreamModelId:"gpt-5.3-codex-xhigh",quotaFamily:"review"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-high-review",name:"GPT 5.3 Codex (High) Review",upstreamModelId:"gpt-5.3-codex-high",quotaFamily:"review"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-low-review",name:"GPT 5.3 Codex (Low) Review",upstreamModelId:"gpt-5.3-codex-low",quotaFamily:"review"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-none-review",name:"GPT 5.3 Codex (None) Review",upstreamModelId:"gpt-5.3-codex-none",quotaFamily:"review"},{id:"gpt-daybreak-blue-latest",name:"GPT Daybreak Blue"},{id:"gpt-reserve",name:"GPT Reserve"},{id:"codex-auto-review",name:"Codex Auto Review",upstreamModelId:"codex-auto-review",quotaFamily:"review"},{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-6-sol-image",name:"GPT 6.0 Sol Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"transcribe",name:"Codex Transcription",kind:"stt",params:["response_format"],responseFormats:["json","text"]}],serviceKinds:["llm","image","stt"],sttConfig:{baseUrl:"https://chatgpt.com/backend-api/transcribe",authType:"oauth",identity:"codex-cli",format:"codex-transcribe"},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,maxRefreshAgeMs:6912e5,trackRefreshAt:!0,acceptsRawAccessToken:!0,rawAccessTokenIssuers:["https://auth.openai.com","https://auth0.openai.com"]},features:{usage:!0}},{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",transport:{identity:"openai-node",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:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{identity:"openai-node",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",transport:{identity:"openai-node",baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"User-Agent":"cli","x-command-code-version":"1.88.0","x-cli-environment":"production","x-cli-surface":"cli","x-taste-learning":"false"}},modelsFetcher:{url:"https://api.commandcode.ai/provider/v1/models",method:"GET",type:"openai",requiresAuth:!0},models:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K3.1-Pro",name:"Kimi K3.1 Pro"},{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-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{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.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{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-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"tencent/Hy3",name:"Tencent Hy3"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"}]},{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:{identity:"openai-node",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:{identity:"openai-node",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.1.0",usage:{url:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetCurrentPeriodUsage",planInfoUrl:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetPlanInfo",authUsageUrl:"https://api2.cursor.sh/auth/usage"}},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"},{id:"composer-2.5",name:"Composer 2.5"},{id:"composer-2.5-fast",name:"Composer 2.5 Fast"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},features:{usage:!0}},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},f,{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:{identity:"openai-node",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"],models:[{id:"scribe_v1",name:"Scribe v1",params:["language","response_format","timestamps_granularity","tag_audio_events","diarize","num_speakers"],kind:"stt"},{id:"scribe_v2",name:"Scribe v2",params:["language","response_format","timestamps_granularity","tag_audio_events","diarize","num_speakers"],kind:"stt"}],ttsConfig:{identity:"openai-node",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"},{identity:"openai-node",id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},sttConfig:{identity:"openai-node",baseUrl:"https://api.elevenlabs.io/v1/speech-to-text",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs-stt",responseFormats:{segments:"seg_json",subtitles:"srt",captions:"vtt"}}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://queue.fal.run"}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{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:{identity:"gemini-cli",baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",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",mediaPriority:1,transport:{identity:"openai-node",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-4-argon",name:"Gemini 4 Argon"},{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.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:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{identity:"openai-node",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{identity:"openai-node",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:{identity:"copilot",baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5-mini",name:"GPT-5 Mini"},{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:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-luna",name:"GPT-6 Luna"},{id:"gpt-6-sol",name:"GPT-6 Sol"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5.1",name:"Claude Fable 5.1"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-haiku-5.5",name:"Claude Haiku 5.5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-fast",name:"Claude Opus 4.8 (Fast)"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5.5",name:"Claude Sonnet 5.5"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"gemini-4-argon",name:"Gemini 4 Argon"},{id:"kimi-k3",name:"Kimi K3"},{id:"mai-code-1.1-flash",name:"MAI-Code-1.1-Flash"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002 (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{identity:"copilot",baseUrl:"https://api.githubcopilot.com/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"},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:{identity:"openai-node",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:{identity:"openai-node",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.6v",name:"GLM 4.6V (Vision)"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],features:{usage:!0,usageApikey:!0}},g,{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},h.A,{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:{identity:"chrome",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:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models",usage:{url:"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:{identity:"openai-node",baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},features:{usage:!0,usageApikey:!0}},{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",text:"Runs through the Inference Providers router. Image and speech models are billed by the provider selected per model."}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"black-forest-labs/FLUX.1-dev",name:"FLUX.1 Dev",params:[],kind:"image"},{id:"black-forest-labs/FLUX.1-Krea-dev",name:"FLUX.1 Krea",params:[],kind:"image"},{id:"black-forest-labs/FLUX.1-Kontext-dev",name:"FLUX.1 Kontext",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-dev",name:"FLUX.2 Dev",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-9B",name:"FLUX.2 Klein 9B",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-4B",name:"FLUX.2 Klein 4B",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-base-9B",name:"FLUX.2 Klein Base 9B",params:[],kind:"image",capabilities:["edit"]},{id:"black-forest-labs/FLUX.2-klein-base-4B",name:"FLUX.2 Klein Base 4B",params:[],kind:"image",capabilities:["edit"]},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-3.5-large",name:"Stable Diffusion 3.5 Large",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:[],kind:"image"},{id:"Qwen/Qwen-Image",name:"Qwen Image",params:[],kind:"image"},{id:"Qwen/Qwen-Image-2512",name:"Qwen Image 2512",params:[],kind:"image"},{id:"Qwen/Qwen-Image-Edit",name:"Qwen Image Edit",params:[],kind:"image",capabilities:["edit"]},{id:"Qwen/Qwen-Image-Edit-2509",name:"Qwen Image Edit 2509",params:[],kind:"image",capabilities:["edit"]},{id:"Qwen/Qwen-Image-Edit-2511",name:"Qwen Image Edit 2511",params:[],kind:"image",capabilities:["edit"]},{id:"ideogram-ai/ideogram-4-fp8",name:"Ideogram 4",params:[],kind:"image"},{id:"tencent/HunyuanImage-3.0",name:"HunyuanImage 3.0",params:[],kind:"image"},{id:"Tongyi-MAI/Z-Image-Turbo",name:"Z-Image Turbo",params:[],kind:"image"},{id:"krea/Krea-2-Turbo",name:"Krea 2 Turbo",params:[],kind:"image"},{id:"HiDream-ai/HiDream-I1-Fast",name:"HiDream I1 Fast",params:[],kind:"image"},{id:"playgroundai/playground-v2.5-1024px-aesthetic",name:"Playground v2.5",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:[],kind:"stt"},{id:"openai/whisper-large-v3-turbo",name:"Whisper Large v3 Turbo (HF)",params:[],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{identity:"openai-node",baseUrl:"https://router.huggingface.co",modelMap:{"black-forest-labs/FLUX.1-schnell":"fal-ai/fal-ai/flux/schnell","black-forest-labs/FLUX.1-dev":"fal-ai/fal-ai/flux/dev","black-forest-labs/FLUX.1-Krea-dev":"fal-ai/fal-ai/flux/krea","black-forest-labs/FLUX.1-Kontext-dev":{path:"fal-ai/fal-ai/flux-kontext/dev",task:"image-to-image"},"black-forest-labs/FLUX.2-dev":{path:"fal-ai/fal-ai/flux-2/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-9B":{path:"fal-ai/fal-ai/flux-2/klein/9b/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-4B":{path:"fal-ai/fal-ai/flux-2/klein/4b/distilled/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-base-9B":{path:"fal-ai/fal-ai/flux-2/klein/9b/base/edit",task:"image-to-image"},"black-forest-labs/FLUX.2-klein-base-4B":{path:"fal-ai/fal-ai/flux-2/klein/4b/base/edit",task:"image-to-image"},"stabilityai/stable-diffusion-xl-base-1.0":"fal-ai/fal-ai/fast-sdxl","stabilityai/stable-diffusion-3.5-large":"fal-ai/fal-ai/stable-diffusion-v35-large","stabilityai/stable-diffusion-3.5-large-turbo":"fal-ai/fal-ai/stable-diffusion-v35-large/turbo","Qwen/Qwen-Image":"fal-ai/fal-ai/qwen-image","Qwen/Qwen-Image-2512":"fal-ai/fal-ai/qwen-image-2512","Qwen/Qwen-Image-Edit":{path:"fal-ai/fal-ai/qwen-image-edit",task:"image-to-image"},"Qwen/Qwen-Image-Edit-2509":{path:"fal-ai/fal-ai/qwen-image-edit-2509",task:"image-to-image"},"Qwen/Qwen-Image-Edit-2511":{path:"fal-ai/fal-ai/qwen-image-edit-plus",task:"image-to-image"},"ideogram-ai/ideogram-4-fp8":"fal-ai/ideogram/v4","tencent/HunyuanImage-3.0":"fal-ai/fal-ai/hunyuan-image/v3/text-to-image","Tongyi-MAI/Z-Image-Turbo":"fal-ai/fal-ai/z-image/turbo","krea/Krea-2-Turbo":"fal-ai/fal-ai/krea-2/turbo","HiDream-ai/HiDream-I1-Fast":"fal-ai/fal-ai/hidream-i1-fast","playgroundai/playground-v2.5-1024px-aesthetic":"fal-ai/fal-ai/playground-v25"}},sttConfig:{identity:"openai-node",baseUrl:"https://router.huggingface.co/hf-inference/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr"}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",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)"},{identity:"openai-node",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"],embeddingConfig:{identity:"openai-node",baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{identity:"openai-node",id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{identity:"openai-node",id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},{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:{identity:"openai-node",baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{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:{identity:"openai-node",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:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{identity:"openai-node",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},i,j,{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:{identity:"openai-node",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","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","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:"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:"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:"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)"}],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:{identity:"openai-node",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:"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:{identity:"openai-node",baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"mimo-free",priority:50,hasFree:!0,alias:"mmf",uiAlias:"mmf",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF"},category:"free",noAuth:!0,transport:{identity:"openai-node",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},k,{id:"minimax-code-global",priority:80,alias:"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},modelsFetcher:{url:"https://agent.minimax.io/mavis/api/v1/models?region=en&buildEnv=prod",type:"minimax-code"},transport:{baseUrl:"https://agent.minimax.io/mavis/api/v1/llm/v1/messages",format:"claude",identity:"claude-cli",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0,hooks:["minimaxHeaders"]}},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:80,alias:"mm",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},modelsFetcher:{url:"https://agent.minimax.cn/mavis/api/v1/models?region=cn&buildEnv=prod",type:"minimax-code"},transport:{baseUrl:"https://agent.minimax.cn/mavis/api/v1/llm/v1/messages",format:"claude",identity:"claude-cli",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0,hooks:["minimaxHeaders"]}},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"}]},l,{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"muse",priority:285,alias:"muse",aliases:["meta","meta-ai","muse-code"],uiAlias:"muse",display:{name:"Meta Muse",icon:"psychology",color:"#0081FB",textIcon:"MU",website:"https://api.meta.ai",notice:{text:"Sign in with your Meta account via device code, or use a Meta Muse API key.",apiKeyUrl:"https://api.meta.ai",signupUrl:"https://auth.meta.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,thinkingConfig:{options:["none","minimal","low","medium","high","xhigh","max"],defaultMode:"high"},transport:{identity:"muse-code",baseUrl:"https://api.meta.ai/v1/chat/completions",format:"openai",validateUrl:"https://api.meta.ai/v1/models",modelsUrl:"https://api.meta.ai/v1/models",usage:{url:"https://api.meta.ai/muse-code/key"},retry:{429:{attempts:3,delayMs:2e3},502:{attempts:2,delayMs:1500},503:{attempts:2,delayMs:1500}}},models:[{id:"muse-spark-1.3",name:"Muse Spark 1.3",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh","max"]}},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh","max"]}},{id:"muse-spark-1.2",name:"Muse Spark 1.2",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh"]}},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["minimal","low","medium","high","xhigh"]}},{id:"muse-spark-1.1",name:"Muse Spark 1.1",contextLength:1048576,maxOutputTokens:65536,thinking:{levels:["low","medium","high","xhigh"]}}],serviceKinds:["llm"],oauth:{clientId:"1031625952748946",deviceCodeUrl:"https://auth.meta.com/oidc/device/authorization/",tokenUrl:"https://auth.meta.com/oidc/device/token/",mintUrl:"https://api.meta.ai/muse-code/key",grantType:"urn:ietf:params:oauth:grant-type:device_code",pollInterval:5e3},features:{usage:!0}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},n,{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",transport:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"http://localhost:11434/api/chat",format:"ollama"},models:[{id:"nomic-embed-text",name:"Nomic Embed Text",kind:"embedding",dimensions:768},{id:"nomic-embed-text:latest",name:"Nomic Embed Text (Latest)",kind:"embedding",dimensions:768},{id:"nomic-embed-text:v1.5",name:"Nomic Embed Text v1.5",kind:"embedding",dimensions:768},{id:"nomic-embed-text:137m-v1.5-fp16",name:"Nomic Embed Text 137M v1.5 (FP16)",kind:"embedding",dimensions:768},{id:"nomic-embed-text-v2-moe",name:"Nomic Embed Text v2 MoE",kind:"embedding",dimensions:768},{id:"nomic-embed-text-v2-moe:latest",name:"Nomic Embed Text v2 MoE (Latest)",kind:"embedding",dimensions:768},{id:"qwen3-embedding",name:"Qwen3 Embedding",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:latest",name:"Qwen3 Embedding (Latest)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b",name:"Qwen3 Embedding 8B",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b-q4_K_M",name:"Qwen3 Embedding 8B (Q4_K_M)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b-q8_0",name:"Qwen3 Embedding 8B (Q8_0)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:8b-fp16",name:"Qwen3 Embedding 8B (FP16)",kind:"embedding",dimensions:4096},{id:"qwen3-embedding:4b",name:"Qwen3 Embedding 4B",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:4b-q4_K_M",name:"Qwen3 Embedding 4B (Q4_K_M)",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:4b-q8_0",name:"Qwen3 Embedding 4B (Q8_0)",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:4b-fp16",name:"Qwen3 Embedding 4B (FP16)",kind:"embedding",dimensions:2560},{id:"qwen3-embedding:0.6b",name:"Qwen3 Embedding 0.6B",kind:"embedding",dimensions:1024},{id:"qwen3-embedding:0.6b-q8_0",name:"Qwen3 Embedding 0.6B (Q8_0)",kind:"embedding",dimensions:1024},{id:"qwen3-embedding:0.6b-fp16",name:"Qwen3 Embedding 0.6B (FP16)",kind:"embedding",dimensions:1024},{id:"bge-m3",name:"BGE M3",kind:"embedding",dimensions:1024},{id:"bge-m3:latest",name:"BGE M3 (Latest)",kind:"embedding",dimensions:1024},{id:"bge-m3:567m",name:"BGE M3 567M",kind:"embedding",dimensions:1024},{id:"bge-m3:567m-fp16",name:"BGE M3 567M (FP16)",kind:"embedding",dimensions:1024},{id:"bge-large",name:"BGE Large",kind:"embedding",dimensions:1024},{id:"bge-large:latest",name:"BGE Large (Latest)",kind:"embedding",dimensions:1024},{id:"bge-large:335m",name:"BGE Large 335M",kind:"embedding",dimensions:1024},{id:"bge-large:335m-en-v1.5-fp16",name:"BGE Large 335M EN v1.5 (FP16)",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large",name:"mxbai Embed Large",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:latest",name:"mxbai Embed Large (Latest)",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:335m",name:"mxbai Embed Large 335M",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:v1",name:"mxbai Embed Large v1",kind:"embedding",dimensions:1024},{id:"mxbai-embed-large:335m-v1-fp16",name:"mxbai Embed Large 335M v1 (FP16)",kind:"embedding",dimensions:1024},{id:"embeddinggemma",name:"EmbeddingGemma",kind:"embedding",dimensions:768},{id:"embeddinggemma:latest",name:"EmbeddingGemma (Latest)",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m",name:"EmbeddingGemma 300M",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m-bf16",name:"EmbeddingGemma 300M (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m-qat-q4_0",name:"EmbeddingGemma 300M (QAT Q4_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma:300m-qat-q8_0",name:"EmbeddingGemma 300M (QAT Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2",name:"EmbeddingGemma 2",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:latest",name:"EmbeddingGemma 2 (Latest)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:740m",name:"EmbeddingGemma 2 740M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:740m-bf16",name:"EmbeddingGemma 2 740M (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:740m-q8_0",name:"EmbeddingGemma 2 740M (Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:570m",name:"EmbeddingGemma 2 570M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:570m-bf16-text-audio",name:"EmbeddingGemma 2 570M Audio (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:570m-q8_0-text-audio",name:"EmbeddingGemma 2 570M Audio (Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:440m",name:"EmbeddingGemma 2 440M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:440m-bf16-text-vision",name:"EmbeddingGemma 2 440M Vision (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:440m-q8_0-text-vision",name:"EmbeddingGemma 2 440M Vision (Q8_0)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:270m",name:"EmbeddingGemma 2 270M",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:270m-bf16-text",name:"EmbeddingGemma 2 270M Text (BF16)",kind:"embedding",dimensions:768},{id:"embeddinggemma-2:270m-q8_0-text",name:"EmbeddingGemma 2 270M Text (Q8_0)",kind:"embedding",dimensions:768},{id:"all-minilm",name:"All-MiniLM",kind:"embedding",dimensions:384},{id:"all-minilm:latest",name:"All-MiniLM (Latest)",kind:"embedding",dimensions:384},{id:"all-minilm:33m",name:"All-MiniLM 33M (L12)",kind:"embedding",dimensions:384},{id:"all-minilm:22m",name:"All-MiniLM 22M (L6)",kind:"embedding",dimensions:384},{id:"all-minilm:l12-v2",name:"All-MiniLM L12 v2",kind:"embedding",dimensions:384},{id:"all-minilm:l6-v2",name:"All-MiniLM L6 v2",kind:"embedding",dimensions:384},{id:"all-minilm:33m-l12-v2-fp16",name:"All-MiniLM 33M L12 v2 (FP16)",kind:"embedding",dimensions:384},{id:"all-minilm:22m-l6-v2-fp16",name:"All-MiniLM 22M L6 v2 (FP16)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed",name:"Snowflake Arctic Embed",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:latest",name:"Snowflake Arctic Embed (Latest)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:335m",name:"Snowflake Arctic Embed 335M (L)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:137m",name:"Snowflake Arctic Embed 137M (M-Long)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:110m",name:"Snowflake Arctic Embed 110M (M)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:33m",name:"Snowflake Arctic Embed 33M (S)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:22m",name:"Snowflake Arctic Embed 22M (XS)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:l",name:"Snowflake Arctic Embed L",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:m",name:"Snowflake Arctic Embed M",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:m-long",name:"Snowflake Arctic Embed M-Long",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:s",name:"Snowflake Arctic Embed S",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:xs",name:"Snowflake Arctic Embed XS",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:335m-l-fp16",name:"Snowflake Arctic Embed 335M L (FP16)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed:137m-m-long-fp16",name:"Snowflake Arctic Embed 137M M-Long (FP16)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:110m-m-fp16",name:"Snowflake Arctic Embed 110M M (FP16)",kind:"embedding",dimensions:768},{id:"snowflake-arctic-embed:33m-s-fp16",name:"Snowflake Arctic Embed 33M S (FP16)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed:22m-xs-fp16",name:"Snowflake Arctic Embed 22M XS (FP16)",kind:"embedding",dimensions:384},{id:"snowflake-arctic-embed2",name:"Snowflake Arctic Embed 2",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed2:latest",name:"Snowflake Arctic Embed 2 (Latest)",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed2:568m",name:"Snowflake Arctic Embed 2 568M",kind:"embedding",dimensions:1024},{id:"snowflake-arctic-embed2:568m-l-fp16",name:"Snowflake Arctic Embed 2 568M L (FP16)",kind:"embedding",dimensions:1024},{id:"granite-embedding",name:"Granite Embedding",kind:"embedding",dimensions:384},{id:"granite-embedding:latest",name:"Granite Embedding (Latest)",kind:"embedding",dimensions:384},{id:"granite-embedding:278m",name:"Granite Embedding 278M (Multilingual)",kind:"embedding",dimensions:768},{id:"granite-embedding:30m",name:"Granite Embedding 30M (EN)",kind:"embedding",dimensions:384},{id:"granite-embedding:30m-en",name:"Granite Embedding 30M EN",kind:"embedding",dimensions:384},{id:"granite-embedding:278m-fp16",name:"Granite Embedding 278M (FP16)",kind:"embedding",dimensions:768},{id:"granite-embedding:30m-en-fp16",name:"Granite Embedding 30M EN (FP16)",kind:"embedding",dimensions:384},{id:"paraphrase-multilingual",name:"Paraphrase Multilingual",kind:"embedding",dimensions:768},{id:"paraphrase-multilingual:latest",name:"Paraphrase Multilingual (Latest)",kind:"embedding",dimensions:768},{id:"paraphrase-multilingual:278m",name:"Paraphrase Multilingual 278M",kind:"embedding",dimensions:768},{id:"paraphrase-multilingual:278m-mpnet-base-v2-fp16",name:"Paraphrase Multilingual 278M (FP16)",kind:"embedding",dimensions:768},{id:"laya",name:"Laya",kind:"embedding",dimensions:1024},{id:"laya:latest",name:"Laya (Latest)",kind:"embedding",dimensions:1024},{id:"laya:421m-english-bf16",name:"Laya 421M English (BF16)",kind:"embedding",dimensions:1024},{id:"laya:322m-multilingual-bf16",name:"Laya 322M Multilingual (BF16)",kind:"embedding",dimensions:1024},{id:"laya:421m-typed-decisions-bf16",name:"Laya 421M Decisions (BF16)",kind:"embedding",dimensions:1024},{id:"phonon:latest",name:"Phonon (Latest)",kind:"tts",params:["voice","response_format"]},{id:"phonon",name:"Phonon",kind:"tts",params:["voice","response_format"]},{id:"phonon:multilingual",name:"Phonon Multilingual",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-multilingual",name:"Phonon 40M Multilingual",kind:"tts",params:["voice","response_format"]},{id:"phonon:en",name:"Phonon English",kind:"tts",params:["voice","response_format"]},{id:"phonon:31m-en",name:"Phonon 31M English",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-en",name:"Phonon 40M English",kind:"tts",params:["voice","response_format"]},{id:"phonon:de",name:"Phonon German",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-de",name:"Phonon 40M German",kind:"tts",params:["voice","response_format"]},{id:"phonon:es",name:"Phonon Spanish",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-es",name:"Phonon 40M Spanish",kind:"tts",params:["voice","response_format"]},{id:"phonon:fr",name:"Phonon French",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-fr",name:"Phonon 40M French",kind:"tts",params:["voice","response_format"]},{id:"phonon:pt",name:"Phonon Portuguese",kind:"tts",params:["voice","response_format"]},{id:"phonon:40m-pt",name:"Phonon 40M Portuguese",kind:"tts",params:["voice","response_format"]},{id:"clef",name:"Clef",kind:"systemone"},{id:"clef-flash",name:"Clef Flash",kind:"systemone"}],serviceKinds:["llm","embedding","systemone","tts"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"http://localhost:11434/v1/systemone",path:"/v1/systemone",authType:"none"},embeddingConfig:{identity:"openai-node",format:"openai",baseUrl:"http://localhost:11434/v1/embeddings",path:"/v1/embeddings",authType:"none"},ttsConfig:{identity:"openai-node",format:"openai",baseUrl:"http://localhost:11434/v1/audio/speech",path:"/v1/audio/speech",defaultModel:"phonon",defaultVoice:"default",authType:"apikey"}},{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:{identity:"openai-node",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",transport:{identity:"openai-node",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"},{id:"deepseek-v4.1-flash:cloud",name:"DeepSeek V4.1 Flash"},{id:"clef",name:"Clef",kind:"systemone"},{id:"clef-flash",name:"Clef Flash",kind:"systemone"},{id:"clef:cloud",name:"Clef (Cloud)",kind:"systemone"}],serviceKinds:["llm","systemone","webFetch"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://ollama.com/v1/systemone",authType:"apikey",authHeader:"bearer"},fetchConfig:{identity:"openai-node",baseUrl:"https://ollama.com/api/web_fetch",method:"POST",authType:"apikey",authHeader:"bearer",formats:["markdown"],maxCharacters:2e5,timeoutMs:3e4},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:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.5",name:"GPT-5.5"},{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:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{identity:"openai-node",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",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",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode subscription (multiple plans). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{identity:"openai-node",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/go/v1/usage"}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{identity:"openai-node",format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"},thinkingFormat:"openai-responses"}],models:[{id:"deepseek-flash",name:"DeepSeek Flash",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:"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:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k3.1-pro",name:"Kimi K3.1 Pro",supportedFormats:["openai"]},{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:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"longcat-2.0",name:"LongCat 2.0",supportedFormats:["openai"]},{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:"minimax-m3",name:"MiniMax M3",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"space-bunny-free",name:"Space Bunny Free",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",targetFormat:"claude",supportedFormats:["openai","claude"]},{id:"hy4-preview",name:"Hy4 Preview",supportedFormats:["openai"]},{id:"hy3",name:"Hy3",supportedFormats:["openai"]},{id:"hy3-preview",name:"Hy3 Preview",supportedFormats:["openai"]},{id:"omen-alpha",name:"Omen Alpha",supportedFormats:["openai"]},{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:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-luna",name:"GPT 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:"claude-haiku-5-5",name:"Claude Haiku 5.5",targetFormat:"claude",supportedFormats:["claude"]}],features:{usage:!0,usageApikey:!0},modelsFetcher:{url:"https://opencode.ai/zen/go/v1/models",type:"opencode-go"},passthroughModels:!0},{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:{identity:"openai-node",baseUrl:"https://opencode.ai/zen/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/v1/usage"}},transports:[{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{identity:"openai-node",format:"claude",baseUrl:"https://opencode.ai/zen/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{identity:"openai-node",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",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",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-4-5",name:"Claude Haiku 4.5",supportedFormats:["claude"]},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",supportedFormats:["openai"]},{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.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-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.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.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["claude"]},{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:"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:"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,transport:{identity:"openai-node",baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"desktop"},forceStream:!0,noAuth:!0,reasoningInject:{scope:"all"},quirks:{forceAutoToolChoiceModels:["muse-spark-1.3-contributor-free"],reasoningAliasFields:!0}},models:[{id:"union-alpha",name:"Union Alpha Free",targetFormat:"claude"},{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:"jev-1.13-free",name:"Jev 1.13 Free",kind:"systemone"}],serviceKinds:["llm","systemone"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://opencode.ai/zen/v1/systemone",headers:{"x-opencode-client":"desktop"}},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",transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",identity:"openai-node"},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:"google/veo-3.1",name:"Veo 3.1 (via OpenRouter)",params:["duration","aspect_ratio","resolution"],kind:"video"},{id:"openai/sora-2-pro",name:"Sora 2 Pro (via OpenRouter)",params:["duration","aspect_ratio","resolution"],kind:"video"},{id:"bytedance/seedance-2.0",name:"Seedance 2.0 (via OpenRouter)",params:["duration","aspect_ratio","resolution"],kind:"video"},{id:"typesafe/jev-1.13",name:"Jev 1.13",kind:"systemone"}],serviceKinds:["llm","embedding","tts","imageToText","video","systemone"],systemoneConfig:{identity:"openai-node",format:"openai",baseUrl:"https://openrouter.ai/api/v1/systemone",headers:{"HTTP-Referer":"https://github.com/switchboard/switchboard","X-Title":"Switchboard"}},ttsConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts"},embeddingConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/images/generations"},videoConfig:{identity:"openai-node",baseUrl:"https://openrouter.ai/api/v1/videos",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-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:{identity:"chrome",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{identity:"openai-node",id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"qoder-cn",priority:30,alias:"qdcn",uiAlias:"qdcn",display:{name:"Qoder CN",icon:"water_drop",color:"#EC4899",website:"https://qoder.com.cn",notice:{signupUrl:"https://qoder.com.cn"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) from https://qoder.com.cn/account/integrations",transport:{identity:"openai-node",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:"ultimate",name:"Ultimate"},{id:"auto",name:"Auto"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"lite",name:"Lite"},{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"},{id:"smodel",name:"Sonus"},{id:"cmodel",name:"Cantus"}],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.com.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"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) from https://qoder.com/account/integrations",transport:{identity:"openai-node",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:"ultimate",name:"Ultimate"},{id:"auto",name:"Auto"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"lite",name:"Lite"},{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"},{id:"smodel",name:"Sonus"},{id:"cmodel",name:"Cantus"}],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:"qwen",priority:130,alias:"qw",display:{name:"Qwen Code",icon:"psychology",color:"#10B981",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"}},category:"oauth",transport:{identity:"qwen",baseUrl:"https://portal.qwen.ai/v1/chat/completions"},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],oauth:{clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256",refreshLeadMs:12e5}},{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:{identity:"openai-node",baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{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:{identity:"openai-node",baseUrl:"https://api.dev.runwayml.com/v1"}},{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:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"http://localhost:8888/search",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,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"data_array",color:"#14B8A6",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",authType:"apikey",models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-stt",priority:50,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"mic",color:"#14B8A6",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",authType:"apikey",models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"record_voice_over",color:"#14B8A6",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",authType:"apikey",models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{identity:"openai-node",authType:"none",authHeader:"bearer",format:"openai",defaultModel:"kokoro",defaultVoice:"af_heart"}},{id:"sensenova",alias:"sensenova",display:{name:"SenseNova",icon:"auto_awesome",color:"#5B5CE2",textIcon:"SN",website:"https://token.sensenova.cn",notice:{apiKeyUrl:"https://token.sensenova.cn"}},category:"apikey",thinkingConfig:{options:["none","low","medium","high","max"],defaultMode:"high"},transport:{identity:"openai-node",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:"sensenova-u1.5-lite",name:"SenseNova U1.5 Lite",kind:"image",capabilities:["text2img","edit"],params:["n","size","output_format","response_format","watermark","prompt_extend"]},{id:"sensenova-u1.5-fast",name:"SenseNova U1.5 Fast",kind:"image",capabilities:["text2img"],params:["n","size","output_format","response_format","watermark","prompt_extend"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-flash",name:"DeepSeek V4.1 Flash"},{id:"glm-5.2",name:"GLM-5.2"},{id:"kimi-k3",name:"Kimi K3"}],serviceKinds:["llm","image","imageToText"],imageConfig:{identity:"openai-node",baseUrl:"https://token.sensenova.cn/v1/images/generations",bodyFields:["model","prompt","n","size","output_format","response_format","watermark","prompt_extend"]}},{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:{identity:"openai-node",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",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.together.xyz/v1/embeddings"}},{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:{identity:"openai-node",baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{identity:"openai-node",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:{identity:"openai-node",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:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-4-argon",name:"Gemini 4 Argon",defaultLocation:"global"},{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"},{id:"veo-3.1-generate-preview",name:"Veo 3.1 (Preview)",params:["duration","aspect_ratio","resolution","negative_prompt","seed","storage_uri","generate_audio"],kind:"video"},{id:"veo-3.1-fast-generate-preview",name:"Veo 3.1 Fast (Preview)",params:["duration","aspect_ratio","resolution","negative_prompt","seed","storage_uri","generate_audio"],kind:"video"},{id:"veo-3.0-generate-001",name:"Veo 3",params:["duration","aspect_ratio","resolution","negative_prompt","seed","storage_uri","generate_audio"],kind:"video"},{id:"veo-2.0-generate-001",name:"Veo 2",params:["duration","aspect_ratio","negative_prompt","seed","storage_uri"],kind:"video"}],serviceKinds:["llm","imageToText","video"],videoConfig:{identity:"openai-node",baseUrl:"https://aiplatform.googleapis.com"}},{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:{identity:"openai-node",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",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:{identity:"openai-node",baseUrl:"https://api.voyageai.com/v1/embeddings"}},{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:{identity:"grok-cli",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.7",name:"Grok 4.7"},{id:"grok-4.6",name:"Grok 4.6"},{id:"grok-4.5",name:"Grok 4.5"},{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:{identity:"grok-cli",baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{identity:"grok-cli",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"}},o,p,{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:{identity:"openai-node",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:{identity:"openai-node",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:"zed",priority:999,alias:"zd",uiAlias:"zd",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",identity:"openai-node",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}}]},4554:(a,b,c)=>{var d=c(45654);c(1277),c(33889);var e=a.exports=d.sha1=d.sha1||{};d.md.sha1=d.md.algorithms.sha1=e,e.create=function(){g||(f=String.fromCharCode(128)+d.util.fillString("\0",64),g=!0);var a=null,b=d.util.createBuffer(),c=Array(80),e={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return e.start=function(){e.messageLength=0,e.fullMessageLength=e.messageLength64=[];for(var c=e.messageLengthSize/4,f=0;f<c;++f)e.fullMessageLength.push(0);return b=d.util.createBuffer(),a={h0:0x67452301,h1:0xefcdab89,h2:0x98badcfe,h3:0x10325476,h4:0xc3d2e1f0},e},e.start(),e.update=function(f,g){"utf8"===g&&(f=d.util.encodeUtf8(f));var i=f.length;e.messageLength+=i,i=[i/0x100000000>>>0,i>>>0];for(var j=e.fullMessageLength.length-1;j>=0;--j)e.fullMessageLength[j]+=i[1],i[1]=i[0]+(e.fullMessageLength[j]/0x100000000>>>0),e.fullMessageLength[j]=e.fullMessageLength[j]>>>0,i[0]=i[1]/0x100000000>>>0;return b.putBytes(f),h(a,c,b),(b.read>2048||0===b.length())&&b.compact(),e},e.digest=function(){var g,i=d.util.createBuffer();i.putBytes(b.bytes());var j=e.fullMessageLength[e.fullMessageLength.length-1]+e.messageLengthSize&e.blockLength-1;i.putBytes(f.substr(0,e.blockLength-j));for(var k=8*e.fullMessageLength[0],l=0;l<e.fullMessageLength.length-1;++l)k+=(g=8*e.fullMessageLength[l+1])/0x100000000>>>0,i.putInt32(k>>>0),k=g>>>0;i.putInt32(k);var m={h0:a.h0,h1:a.h1,h2:a.h2,h3:a.h3,h4:a.h4};h(m,c,i);var n=d.util.createBuffer();return n.putInt32(m.h0),n.putInt32(m.h1),n.putInt32(m.h2),n.putInt32(m.h3),n.putInt32(m.h4),n},e};var f=null,g=!1;function h(a,b,c){for(var d,e,f,g,h,i,j,k,l=c.length();l>=64;){for(e=a.h0,f=a.h1,g=a.h2,h=a.h3,i=a.h4,k=0;k<16;++k)d=c.getInt32(),b[k]=d,d=(e<<5|e>>>27)+(h^f&(g^h))+i+0x5a827999+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<20;++k)d=(d=b[k-3]^b[k-8]^b[k-14]^b[k-16])<<1|d>>>31,b[k]=d,d=(e<<5|e>>>27)+(h^f&(g^h))+i+0x5a827999+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<32;++k)d=(d=b[k-3]^b[k-8]^b[k-14]^b[k-16])<<1|d>>>31,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0x6ed9eba1+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<40;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0x6ed9eba1+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<60;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f&g|h&(f^g))+i+0x8f1bbcdc+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;for(;k<80;++k)d=(d=b[k-6]^b[k-16]^b[k-28]^b[k-32])<<2|d>>>30,b[k]=d,d=(e<<5|e>>>27)+(f^g^h)+i+0xca62c1d6+d,i=h,h=g,g=(f<<30|f>>>2)>>>0,f=e,e=d;a.h0=a.h0+e|0,a.h1=a.h1+f|0,a.h2=a.h2+g|0,a.h3=a.h3+h|0,a.h4=a.h4+i|0,l-=64}}},4620:(a,b,c)=>{"use strict";c.d(b,{x:()=>p});var d=c(22256),e=c(38421),f=c(10793),g=c(82689),h=c(89666),i=c(2670),j=c(52868),k=c(18101),l=c(50969),m=c(29137),n=c(19016),o=c(55511);class p extends d.Hv{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","x-request-id":o.randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};if(a.response_format&&a.model?.includes("claude")){let b=a.response_format,c="";if("json_schema"===b.type&&b.json_schema?.schema?c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks. Never wrap JSON in triple backticks. Output ONLY the raw JSON object.":"json_object"===b.type&&(c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks."),c){let b=a.messages.findIndex(a=>"system"===a.role);b>=0?a.messages[b].content=c+"\n\n"+a.messages[b].content:a.messages.unshift({role:"system",content:c});let d=a.messages.map((a,b)=>"user"===a.role?b:-1).filter(a=>a>=0).pop();if(d>=0){let b=a.messages[d],c="string"==typeof b.content?b.content:JSON.stringify(b.content);b.content="Respond with ONLY raw JSON (no markdown, no backticks, no code blocks): "+c}}}return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}transformRequest(a,b,c,d){super.transformRequest(a,b,c,d);let e=b&&"object"==typeof b?b:{...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),"none"===e.reasoning_effort&&delete e.reasoning_effort,(0,m.c)("github",a,e),e}supportsResponsesEndpoint(a){let b=(a||"").toLowerCase();return!(b.includes("gemini")||b.includes("claude"))}async execute(a){let{model:b,log:c}=a;if(this.knownCodexModels.has(b)&&this.supportsResponsesEndpoint(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST&&this.supportsResponsesEndpoint(b)){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async executeWithResponsesEndpoint({model:a,body:b,stream:d,credentials:e,signal:f,log:g,proxyOptions:m=null,providerOverrides:o=null}){let p=this.config.responsesUrl,q={...this.buildHeaders(e,d),...o?.headers||{}},r=(0,h.h_)(a,b,d,e);g?.debug("GITHUB","Sending translated request to /responses");let s=await (0,l.Fm)(p,{method:"POST",headers:q,body:JSON.stringify(r),signal:f,identity:this.config?.identity,provider:this.provider,format:this.config?.format,stream:d},m);if(!s.ok)return{response:s,url:p,headers:q,transformedBody:r};if(!d&&s.body)try{let{convertResponsesStreamToJson:b}=await Promise.resolve().then(c.bind(c,82703)),d=await b(s.body),e=function(a,b){let c=Array.isArray(a?.output)?a.output:[],d="",e=[];for(let a of c){if(a?.type==="message"&&Array.isArray(a.content))for(let b of a.content)b?.type==="output_text"&&"string"==typeof b.text?d+=b.text:"string"==typeof b?.text&&(d+=b.text);a?.type==="function_call"&&e.push({id:a.call_id||`call_${a.name}_${e.length}`,type:"function",function:{name:a.name,arguments:"string"==typeof a.arguments?a.arguments:JSON.stringify(a.arguments||{})}})}let f={role:"assistant",content:d||(e.length?null:"")};e.length&&(f.tool_calls=e);let g=a?.usage||{};return{id:a?.id||`chatcmpl-${Date.now()}`,object:"chat.completion",created:a?.created_at||Math.floor(Date.now()/1e3),model:a?.model||b,choices:[{index:0,message:f,finish_reason:e.length?"tool_calls":"stop"}],usage:{prompt_tokens:g.input_tokens||0,completion_tokens:g.output_tokens||0,total_tokens:(g.input_tokens||0)+(g.output_tokens||0)}}}(d,a);return{response:new Response(JSON.stringify(e),{status:200,headers:{"Content-Type":"application/json"}}),url:p,headers:q,transformedBody:r}}catch(a){g?.warn?.("GITHUB",`non-stream responses aggregate failed: ${a.message}`)}let t=(0,j.Ws)("openai-responses");t.model=a;let u=new TextDecoder,v="",w=new TransformStream({async transform(a,b){let c=(v+=u.decode(a,{stream:!0})).split("\n");for(let a of(v=c.pop()||"",c)){let c=a.trim();if(!c)continue;let e=(0,k.tV)(c);if(!e)continue;if(e.done&&!0===d){b.enqueue(new TextEncoder().encode(n.$U));continue}let f=(0,i.v)(e,t);if(f){let a=(0,k.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(v.trim()){let b=(0,k.tV)(v.trim());if(b&&!b.done){let c=(0,i.v)(b,t);c&&a.enqueue(new TextEncoder().encode((0,k.v8)(c,"openai")))}}}});return s.body?{response:new Response(s.body.pipeThrough(w),{status:s.status,statusText:s.statusText,headers:s.headers}),url:p,headers:q,transformedBody:r}:{response:new Response("",{status:s.status,headers:s.headers}),url:p,headers:q,transformedBody:r}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,l.Fm)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,Accept:"application/json"},identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,l.Fm)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d),identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),!Number.isFinite(b)||b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},4654:(a,b,c)=>{"use strict";let{uid:d,states:e,sentCloseFrameState:f,emptyBuffer:g,opcodes:h}=c(62026),{parseExtensions:i,isClosed:j,isClosing:k,isEstablished:l,isConnecting:m,validateCloseCodeAndReason:n}=c(94050),{makeRequest:o}=c(12600),{fetching:p}=c(76403),{Headers:q,getHeadersList:r}=c(28665),{getDecodeSplit:s}=c(42425),{WebsocketFrameSend:t}=c(45221),u=c(34589),{runtimeFeatures:v}=c(56758),w=v.has("crypto")?c(77598):null,x=!1;function y(a,b,c,d=!1){if(b??=null,c??="",d&&n(b,c),j(a.readyState)||k(a.readyState));else if(l(a.readyState))if(a.closeState.has(f.SENT)||a.closeState.has(f.RECEIVED))a.readyState=e.CLOSING;else{let d=new t;0!==c.length&&null===b&&(b=1e3),u(null===b||Number.isInteger(b)),null===b&&0===c.length?d.frameData=g:null!==b&&null===c?(d.frameData=Buffer.allocUnsafe(2),d.frameData.writeUInt16BE(b,0)):null!==b&&null!==c?(d.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(c)),d.frameData.writeUInt16BE(b,0),d.frameData.write(c,2,"utf-8")):d.frameData=g,a.socket.write(d.createFrame(h.CLOSE)),a.closeState.add(f.SENT),a.readyState=e.CLOSING}else A(a),a.readyState=e.CLOSING}function z(a,b,c,d,e){b.socket?.session==null||b.socket.destroyed||b.socket.destroy(),A(a,c,d,e)}function A(a,b,c,d){l(a.readyState)&&y(a,b,c,!1),a.controller.abort(),m(a.readyState)?a.onSocketClose():a.socket?.destroyed===!1&&a.socket.destroy()}a.exports={establishWebSocketConnection:function(a,b,c,e,f){a.protocol="ws:"===a.protocol?"http:":"https:";let g=o({urlList:[a],client:c,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error",useURLCredentials:!0});f.headers&&(g.headersList=r(new q(f.headers)));let h=w.randomBytes(16).toString("base64");for(let a of(g.headersList.append("sec-websocket-key",h,!0),g.headersList.append("sec-websocket-version","13",!0),b))g.headersList.append("sec-websocket-protocol",a,!0);return g.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits",!0),p({request:g,useParallelQueue:!0,dispatcher:f.dispatcher,processResponse(a){let c;if("error"===a.type||101!==a.status){if(a.socket?.session==null)return void z(e,a,1002,"Received network error or non-101 status code.",a.error);if(200!==a.status)return void z(e,a,1002,"Received network error or non-200 status code.",a.error)}if(!1===x&&a.socket?.session!=null&&(process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.","ExperimentalWarning"),x=!0),0!==b.length&&!a.headersList.get("Sec-WebSocket-Protocol"))return void z(e,a,1002,"Server did not respond with sent protocols.");if(null==a.socket.session&&a.headersList.get("Upgrade")?.toLowerCase()!=="websocket")return void z(e,a,1002,'Server did not set Upgrade header to "websocket".');if(null==a.socket.session&&a.headersList.get("Connection")?.toLowerCase()!=="upgrade")return void z(e,a,1002,'Server did not set Connection header to "upgrade".');if(null==a.socket.session&&a.headersList.get("Sec-WebSocket-Accept")!==w.hash("sha1",h+d,"base64"))return void z(e,a,1002,"Incorrect hash received in Sec-WebSocket-Accept header.");let f=a.headersList.get("Sec-WebSocket-Extensions");if(null!==f&&!(c=i(f)).has("permessage-deflate"))return void z(e,a,1002,"Sec-WebSocket-Extensions header does not match.");let j=a.headersList.get("Sec-WebSocket-Protocol");if(null!==j){let b=s("sec-websocket-protocol",g.headersList);if(null===b||!b.includes(j))return void z(e,a,1002,"Protocol was not set in the opening handshake.")}null!=a.socket.session&&(a.socket.allowHalfOpen=!1),a.socket.on("data",e.onSocketData),a.socket.on("close",e.onSocketClose),a.socket.on("error",e.onSocketError),e.wasEverConnected=!0,e.onConnectionEstablished(a,c)}})},failWebsocketConnection:A,closeWebSocketConnection:y}},4879:(a,b,c)=>{"use strict";c(82340);let d="Code blocks, file paths, commands, errors, URLs: keep exact. Security warnings, irreversible action confirmations, multi-step ordered sequences: write normal. Resume terse style after.",e='Not: "Sure! I\'d be happy to help you with that. The issue you\'re experiencing is likely caused by..." Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"',f="Auto-Clarity: drop caveman for security warnings, irreversible actions, multi-step sequences where fragment ambiguity risks misread, or when user repeats a question. Resume after the clear part.",g="ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure.",h="No invented abbreviations. Standard well-known tech acronyms (DB, API, HTTP, URL, JSON, ID, OS, CPU) OK. Names of code symbols, function names, API names, error strings: keep verbatim.",i="Preserve the user's dominant language. User wrote Vietnamese, reply Vietnamese. User wrote English, reply English. Wenyan/classical-Chinese levels override this language-preservation rule. Code identifiers, error strings, file paths, commands: keep in their original form regardless of language.",j='No self-reference. Do not name or announce the style (no "caveman mode", no "me caveman think", no "compressed mode active"). Just respond.',k='No decorative emoji. No narrating tool calls ("I will now search", "I used X to find Y"). No status phrases ("Sure!", "Of course!", "I\'d be happy to"). No causal arrow shorthand ("A -> B -> fails"). State the thing, the action, the reason. Then next step.';["Respond tersely. Keep grammar and full sentences but drop filler, hedging and pleasantries (just/really/basically/sure/of course/I'd be happy to). Pattern: state the thing, the action, the reason. Then next step.",e,d,f,g,h,i,j,k].join(" "),["Respond like terse caveman. All technical substance stay exact, only fluff die. Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries, hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Pattern: [thing] [action] [reason]. [next step].",e,d,f,g,h,i,j,k].join(" "),["Respond ultra-terse. Maximum compression. Telegraphic. Strip conjunctions. One word when one word enough. Pattern: [thing] [action] [reason]. [next step].",e,d,f,g,h,i,j,k].join(" "),["Respond semi-classical. Drop filler/hedging but keep grammar structure, classical register. Use classical Chinese sentence patterns where natural. Keep English for technical terms.",e,d,f,g,h,i,j,k].join(" "),["Respond classical Chinese (文言文). Maximum classical terseness. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其). Keep English for code, commands, function names, API names, error strings.",e,d,f,g,h,i,j,k].join(" "),["Respond extreme classical compression (文言文 ultra). Maximum compression, ultra terse. Same classical rules as wenyan-full but even more compressed. One classical particle per clause.",e,d,f,g,h,i,j,k].join(" ")},4890:(a,b,c)=>{var d=c(45654);c(33889);var e=null;!d.util.isNodejs||d.options.usePureJavaScript||process.versions["node-webkit"]||(e=c(55511)),(a.exports=d.prng=d.prng||{}).create=function(a){for(var b={plugin:a,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},c=a.md,f=Array(32),g=0;g<32;++g)f[g]=c.create();function h(){b.reseeds=0xffffffff===b.reseeds?0:b.reseeds+1;var a=b.plugin.md.create();a.update(b.keyBytes);for(var c=1,d=0;d<32;++d)b.reseeds%c==0&&(a.update(b.pools[d].digest().getBytes()),b.pools[d].start()),c<<=1;b.keyBytes=a.digest().getBytes(),a.start(),a.update(b.keyBytes);var e=a.digest().getBytes();b.key=b.plugin.formatKey(b.keyBytes),b.seed=b.plugin.formatSeed(e),b.generated=0}function i(a){var b=null,c=d.util.globalScope,e=c.crypto||c.msCrypto;e&&e.getRandomValues&&(b=function(a){return e.getRandomValues(a)});var f=d.util.createBuffer();if(b)for(;f.length()<a;){var g=new Uint32Array(Math.floor(Math.max(1,Math.min(a-f.length(),65536)/4)));try{b(g);for(var h=0;h<g.length;++h)f.putInt32(g[h])}catch(a){if(!("u">typeof QuotaExceededError&&a instanceof QuotaExceededError))throw a}}if(f.length()<a)for(var i,j,k,l=Math.floor(65536*Math.random());f.length()<a;){l=0|(j=(0x7fffffff&(j=16807*(65535&l)+(((32767&(i=16807*(l>>16)))<<16)+(i>>15))))+(j>>31));for(var h=0;h<3;++h)k=l>>>(h<<3)^Math.floor(256*Math.random()),f.putByte(255&k)}return f.getBytes(a)}return b.pools=f,b.pool=0,b.generate=function(a,c){if(!c)return b.generateSync(a);var e=b.plugin.cipher,f=b.plugin.increment,g=b.plugin.formatKey,i=b.plugin.formatSeed,j=d.util.createBuffer();b.key=null,function k(l){if(l)return c(l);if(j.length()>=a)return c(null,j.getBytes(a));if(b.generated>1048575&&(b.key=null),null===b.key)return d.util.nextTick(function(){!function(a){if(b.pools[0].messageLength>=32)return h(),a();var c=32-b.pools[0].messageLength<<5;b.seedFile(c,function(c,d){if(c)return a(c);b.collect(d),h(),a()})}(k)});var m=e(b.key,b.seed);b.generated+=m.length,j.putBytes(m),b.key=g(e(b.key,f(b.seed))),b.seed=i(e(b.key,b.seed)),d.util.setImmediate(k)}()},b.generateSync=function(a){var c=b.plugin.cipher,e=b.plugin.increment,f=b.plugin.formatKey,g=b.plugin.formatSeed;b.key=null;for(var i=d.util.createBuffer();i.length()<a;){b.generated>1048575&&(b.key=null),null===b.key&&function(){if(b.pools[0].messageLength>=32)return h();var a=32-b.pools[0].messageLength<<5;b.collect(b.seedFileSync(a)),h()}();var j=c(b.key,b.seed);b.generated+=j.length,i.putBytes(j),b.key=f(c(b.key,e(b.seed))),b.seed=g(c(b.key,b.seed))}return i.getBytes(a)},e?(b.seedFile=function(a,b){e.randomBytes(a,function(a,c){if(a)return b(a);b(null,c.toString())})},b.seedFileSync=function(a){return e.randomBytes(a).toString()}):(b.seedFile=function(a,b){try{b(null,i(a))}catch(a){b(a)}},b.seedFileSync=i),b.collect=function(a){for(var c=a.length,d=0;d<c;++d)b.pools[b.pool].update(a.substr(d,1)),b.pool=31===b.pool?0:b.pool+1},b.collectInt=function(a,c){for(var d="",e=0;e<c;e+=8)d+=String.fromCharCode(a>>e&255);b.collect(d)},b.registerWorker=function(a){a===self?b.seedFile=function(a,b){self.addEventListener("message",function a(c){var d=c.data;d.forge&&d.forge.prng&&(self.removeEventListener("message",a),b(d.forge.prng.err,d.forge.prng.bytes))}),self.postMessage({forge:{prng:{needed:a}}})}:a.addEventListener("message",function(c){var d=c.data;d.forge&&d.forge.prng&&b.seedFile(d.forge.prng.needed,function(b,c){a.postMessage({forge:{prng:{err:b,bytes:c}}})})})},b}},5019:(a,b,c)=>{a.exports=c(45654),c(45518),c(39804),c(63070),c(66568),c(88819),c(22164),c(76632),c(33206),c(31881),c(69445),c(41702),c(70710),c(49345),c(24985),c(15873),c(76103),c(94463),c(36902),c(4890),c(87981),c(29984),c(67382),c(28169),c(27080),c(33889)},5318:(a,b,c)=>{"use strict";let d=c(4573),e=c(7344),{ClientDestroyedError:f,ClientClosedError:g,InvalidArgumentError:h}=c(61448),{kDestroy:i,kClose:j,kClosed:k,kDestroyed:l,kDispatch:m}=c(49176),n=Symbol("onDestroyed"),o=Symbol("onClosed"),p=Symbol("webSocketOptions"),q=Symbol("eventSourceOptions");class r extends e{[l]=!1;[n]=null;[k]=!1;[o]=null;constructor(a){super(),this[p]=a?.webSocket??{},this[q]=a?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[p].maxFragments??131072,maxPayloadSize:this[p].maxPayloadSize??0x8000000}}get eventSourceOptions(){return{maxEventSize:this[q].maxEventSize??d.kStringMaxLength}}get destroyed(){return this[l]}get closed(){return this[k]}close(a){if(void 0===a)return new Promise((a,b)=>{this.close((c,d)=>c?b(c):a(d))});if("function"!=typeof a)throw new h("invalid callback");if(this[l]){let b=new f;queueMicrotask(()=>a(b,null));return}if(this[k])return void(this[o]?this[o].push(a):queueMicrotask(()=>a(null,null)));this[k]=!0,this[o]??=[],this[o].push(a);let b=()=>{let a=this[o];this[o]=null;for(let b=0;b<a.length;b++)a[b](null,null)};this[j]().then(()=>this.destroy()).then(()=>queueMicrotask(b))}destroy(a,b){if("function"==typeof a&&(b=a,a=null),void 0===b)return new Promise((b,c)=>{this.destroy(a,(a,d)=>a?c(a):b(d))});if("function"!=typeof b)throw new h("invalid callback");if(this[l])return void(this[n]?this[n].push(b):queueMicrotask(()=>b(null,null)));a||(a=new f),this[l]=!0,this[n]??=[],this[n].push(b);let c=()=>{let a=this[n];this[n]=null;for(let b=0;b<a.length;b++)a[b](null,null)};this[i](a).then(()=>queueMicrotask(c))}dispatch(a,b){if(!b||"object"!=typeof b)throw new h("handler must be an object");try{if(!a||"object"!=typeof a)throw new h("opts must be an object.");if(a.dispatcher)throw new h("opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.");if(this[l]||this[n])throw new f;if(this[k])throw new g;return this[m](a,b)}catch(a){if("function"!=typeof b.onResponseError)throw a;return b.onResponseError(null,a),!1}}}a.exports=r},5831:(a,b,c)=>{"use strict";let{collectASequenceOfCodePointsFast:d}=c(70745),{maxNameValuePairSize:e,maxAttributeValueSize:f}=c(29653),{isCTLExcludingHtab:g}=c(84698),h=c(34589);function i(a,b={}){for(;;){if(0===a.length)return b;h(";"===a[0]);let c="";(a=a.slice(1)).includes(";")?(c=d(";",a,{position:0}),a=a.slice(c.length)):(c=a,a="");let e="",g="";if(c.includes("=")){let a={position:0};e=d("=",c,a),g=c.slice(a.position+1)}else e=c;if(e=e.trim(),(g=g.trim()).length>f)continue;let i=e.toLowerCase();if("expires"===i){let a=new Date(g);Number.isNaN(a.getTime())||(b.expires=a)}else if("max-age"===i){let a=g.charCodeAt(0),c=a>=48&&a<=57,d="-"===g[0]&&g.length>1;if(!c&&!d||/[^\d]/.test(g.slice(1)))continue;b.maxAge=Number(g)}else if("domain"===i){let a=g;"."===a[0]&&(a=a.slice(1)),b.domain=a=a.toLowerCase()}else if("path"===i)b.path=0===g.length||"/"!==g[0]?"/":g;else if("secure"===i)b.secure=!0;else if("httponly"===i)b.httpOnly=!0;else if("samesite"===i){let a=g.toLowerCase();"none"===a?b.sameSite="None":"strict"===a?b.sameSite="Strict":"lax"===a&&(b.sameSite="Lax")}else b.unparsed??=[],b.unparsed.push(`${e}=${g}`)}}a.exports={parseSetCookie:function(a){if(g(a))return null;let b="",c="",f="",h="";if(a.includes(";")){let e={position:0};b=d(";",a,e),c=a.slice(e.position)}else b=a;if(b.includes("=")){let a={position:0};f=d("=",b,a),h=b.slice(a.position+1)}else h=b;return(f=f.trim(),h=h.trim(),f.length+h.length>e)?null:{name:f,value:h,...i(c)}},parseUnparsedAttributes:i}},6125:(a,b,c)=>{"use strict";c(10793),"u">typeof process&&process.versions?.node,"u">typeof process&&process.env?.ENABLE_REQUEST_LOGS},6680:(a,b,c)=>{var d=c(45654);c(1277),c(33889);var e=a.exports=d.sha256=d.sha256||{};d.md.sha256=d.md.algorithms.sha256=e,e.create=function(){g||(f=String.fromCharCode(128)+d.util.fillString("\0",64),h=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2],g=!0);var a=null,b=d.util.createBuffer(),c=Array(64),e={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return e.start=function(){e.messageLength=0,e.fullMessageLength=e.messageLength64=[];for(var c=e.messageLengthSize/4,f=0;f<c;++f)e.fullMessageLength.push(0);return b=d.util.createBuffer(),a={h0:0x6a09e667,h1:0xbb67ae85,h2:0x3c6ef372,h3:0xa54ff53a,h4:0x510e527f,h5:0x9b05688c,h6:0x1f83d9ab,h7:0x5be0cd19},e},e.start(),e.update=function(f,g){"utf8"===g&&(f=d.util.encodeUtf8(f));var h=f.length;e.messageLength+=h,h=[h/0x100000000>>>0,h>>>0];for(var j=e.fullMessageLength.length-1;j>=0;--j)e.fullMessageLength[j]+=h[1],h[1]=h[0]+(e.fullMessageLength[j]/0x100000000>>>0),e.fullMessageLength[j]=e.fullMessageLength[j]>>>0,h[0]=h[1]/0x100000000>>>0;return b.putBytes(f),i(a,c,b),(b.read>2048||0===b.length())&&b.compact(),e},e.digest=function(){var g,h=d.util.createBuffer();h.putBytes(b.bytes());var j=e.fullMessageLength[e.fullMessageLength.length-1]+e.messageLengthSize&e.blockLength-1;h.putBytes(f.substr(0,e.blockLength-j));for(var k=8*e.fullMessageLength[0],l=0;l<e.fullMessageLength.length-1;++l)k+=(g=8*e.fullMessageLength[l+1])/0x100000000>>>0,h.putInt32(k>>>0),k=g>>>0;h.putInt32(k);var m={h0:a.h0,h1:a.h1,h2:a.h2,h3:a.h3,h4:a.h4,h5:a.h5,h6:a.h6,h7:a.h7};i(m,c,h);var n=d.util.createBuffer();return n.putInt32(m.h0),n.putInt32(m.h1),n.putInt32(m.h2),n.putInt32(m.h3),n.putInt32(m.h4),n.putInt32(m.h5),n.putInt32(m.h6),n.putInt32(m.h7),n},e};var f=null,g=!1,h=null;function i(a,b,c){for(var d,e,f,g,i,j,k,l,m,n,o,p,q,r,s,t=c.length();t>=64;){for(k=0;k<16;++k)b[k]=c.getInt32();for(;k<64;++k)d=((d=b[k-2])>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,e=((e=b[k-15])>>>7|e<<25)^(e>>>18|e<<14)^e>>>3,b[k]=d+b[k-7]+e+b[k-16]|0;for(l=a.h0,m=a.h1,n=a.h2,o=a.h3,p=a.h4,q=a.h5,r=a.h6,s=a.h7,k=0;k<64;++k)g=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),i=r^p&(q^r),f=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),j=l&m|n&(l^m),d=s+g+i+h[k]+b[k],e=f+j,s=r,r=q,q=p,p=o+d>>>0,o=n,n=m,m=l,l=d+e>>>0;a.h0=a.h0+l|0,a.h1=a.h1+m|0,a.h2=a.h2+n|0,a.h3=a.h3+o|0,a.h4=a.h4+p|0,a.h5=a.h5+q|0,a.h6=a.h6+r|0,a.h7=a.h7+s|0,t-=64}}},6951:(a,b,c)=>{"use strict";c.d(b,{v:()=>j});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(53859);let i=g().join(h.nJ,"mitm","aliases.json");async function j(){try{var a;let b,d,{getMitmAlias:f}=await Promise.resolve().then(c.bind(c,37703));a=await f()||{},b=g().dirname(i),e().mkdirSync(b,{recursive:!0}),d=`${i}.tmp`,e().writeFileSync(d,JSON.stringify(a,null,2),"utf8"),e().renameSync(d,i)}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}},7044:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>l,deleteProviderNode:()=>n,getProviderNodeById:()=>k,getProviderNodes:()=>j,updateProviderNode:()=>m});var d=c(27137),e=c(52825),f=c(50743),g=c(15738);function h(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 i(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)
12
12
  VALUES(?, ?, ?, ?, ?, ?)
13
13
  ON CONFLICT(id) DO UPDATE SET
14
14
  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 j(a={}){let b=await (0,e.c)(),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(h)}async function k(a){return h((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function l(a){let b=await (0,e.c)(),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 i(b,f),f}async function m(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...h(e),...b,updatedAt:new Date().toISOString()};i(c,f),d=f}),d}async function n(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!d)return;c=h(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]);let e=`${a}|`;b.run("DELETE FROM kv WHERE scope = 'customModels' AND substr(key, 1, ?) = ?",[e.length,e]),(0,g.uQ)(b,a)}),c}},7344:(a,b,c)=>{"use strict";let d=c(78474),{kOriginless:e,kUrl:f}=c(49176);class g extends d{dispatch(){throw Error("not implemented")}close(){throw Error("not implemented")}destroy(){throw Error("not implemented")}compose(...a){let b=Array.isArray(a[0])?a[0]:a,c=!0===this[e]?null:this[f]?.origin,d=this.dispatch.bind(this);for(let a of b)if(null!=a){if("function"!=typeof a)throw TypeError(`invalid interceptor, expected function received ${typeof a}`);if(null==(d=a(d,c))||"function"!=typeof d||2!==d.length)throw TypeError("invalid interceptor")}let g=d,h=this;return d=function(a,b){return a&&"object"==typeof a&&!a.origin&&h[f]&&(a=Object.assign({},a,{origin:h[f].origin})),g(a,b)},new Proxy(this,{get:(a,b)=>"dispatch"===b?d:a[b]})}}a.exports=g},7878:(a,b,c)=>{"use strict";c(22884),c(52868),c(68531),c(82689),c(18762)},8719:(a,b,c)=>{"use strict";c(82340)},8772:(a,b,c)=>{"use strict";c.d(b,{P:()=>n});var d=c(99887),e=c(68531),f=c(78953),g=c(18184),h=c(90694),i=c(29055),j=c(96684),k=c(25720);function l(a,b,c=null){return(0,g.k)({id:`chatcmpl-${a.messageId}`,created:a.created??Math.floor(Date.now()/1e3),model:a.model},b,c)}function m(a){return(0,h.B)({input_tokens:a.usage.input_tokens||0,output_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens},"claude")}function n(a,b){if(!a){if(b.finishReasonSent||!b.messageId)return null;b.finishReasonSent=!0;let a=b.finishReason||(b.toolCalls?.size>0?f.bC.TOOL_CALLS:f.bC.STOP),c=l(b,{},a);return b.usage&&"object"==typeof b.usage&&(c.usage=m(b)),[c]}let c=[];switch(a.type){case"error":c.push(l(b,{content:`[Error] ${a.error?.message||"upstream error"}`},f.bC.STOP)),b.finishReason=f.bC.STOP,b.finishReasonSent=!0;break;case"message_start":{b.messageId=a.message?.id||`msg_${Date.now()}`,b.model=a.message?.model||b.model||f.rP,null==b.created&&(b.created=Math.floor(Date.now()/1e3)),b.toolCallIndex=0;let d=a.message?.usage;if(d&&"object"==typeof d){let a="number"==typeof d.input_tokens?d.input_tokens:0,c="number"==typeof d.cache_read_input_tokens?d.cache_read_input_tokens:0,e="number"==typeof d.cache_creation_input_tokens?d.cache_creation_input_tokens:0,f=a+c+e;b.usage={prompt_tokens:f,completion_tokens:0,total_tokens:f,input_tokens:a,output_tokens:0},c>0&&(b.usage.cache_read_input_tokens=c),e>0&&(b.usage.cache_creation_input_tokens=e)}c.push(l(b,{role:f.z7.ASSISTANT}));break}case"content_block_start":{let d=a.content_block;if(d?.type==="server_tool_use"){b.serverToolBlockIndex=a.index;break}if(d?.type===f.R4.THINKING);else if(d?.type===f.R4.REDACTED_THINKING)c.push(l(b,(0,i.B7)("[redacted]")));else if(d?.type==="web_search_tool_result"){let a=(Array.isArray(d.content)?d.content:[]).filter(a=>"string"==typeof a?.url&&a.url).map(a=>`- [${a.title||a.url}](${a.url})`);c.push(l(b,{content:a.length>0?`
@@ -405,7 +405,7 @@ data: ${b}
405
405
 
406
406
  `))}}j>=1e3&&console.warn("[Kiro] Max iterations reached in event parsing"),d!==h||l.finishEmitted||f.enqueue(new TextEncoder().encode(": ka\n\n"))},flush(a){if(!l.finishEmitted){l.finishEmitted=!0;let c={id:e,object:"chat.completion.chunk",created:g,model:b,choices:[{index:0,delta:{},finish_reason:l.pendingFinishReason||(l.hasToolCalls?"tool_calls":"stop")}]};l.usage&&(c.usage=l.usage),a.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)}
407
407
 
408
- `))}a.enqueue(new TextEncoder().encode(i.$U))}});return a.body?new Response(a.body.pipeThrough(n),{status:a.status,statusText:a.statusText,headers:{...i.pb}}):new Response(i.$U,{status:a.status,headers:{"Content-Type":"text/event-stream"}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,h.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},63070:(a,b,c)=>{var d=c(45654);c(33889),c(36105);var e=a.exports=d.asn1=d.asn1||{};function f(a,b,c){if(c>b){var d=Error("Too few bytes to parse DER.");throw d.available=a.length(),d.remaining=b,d.requested=c,d}}e.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},e.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},e.maxDepth=256,e.create=function(a,b,c,f,g){if(d.util.isArray(f)){for(var h=[],i=0;i<f.length;++i)void 0!==f[i]&&h.push(f[i]);f=h}var j={tagClass:a,type:b,constructed:c,composed:c||d.util.isArray(f),value:f};return g&&"bitStringContents"in g&&(j.bitStringContents=g.bitStringContents,j.original=e.copy(j)),j},e.copy=function(a,b){var c;if(d.util.isArray(a)){c=[];for(var f=0;f<a.length;++f)c.push(e.copy(a[f],b));return c}return"string"==typeof a?a:(c={tagClass:a.tagClass,type:a.type,constructed:a.constructed,composed:a.composed,value:e.copy(a.value,b)},b&&!b.excludeBitStringContents&&(c.bitStringContents=a.bitStringContents),c)},e.equals=function(a,b,c){if(d.util.isArray(a)){if(!d.util.isArray(b)||a.length!==b.length)return!1;for(var f=0;f<a.length;++f)if(!e.equals(a[f],b[f]))return!1;return!0}if(typeof a!=typeof b)return!1;if("string"==typeof a)return a===b;var g=a.tagClass===b.tagClass&&a.type===b.type&&a.constructed===b.constructed&&a.composed===b.composed&&e.equals(a.value,b.value);return c&&c.includeBitStringContents&&(g=g&&a.bitStringContents===b.bitStringContents),g},e.getBerValueLength=function(a){var b=a.getByte();if(128!==b)return 128&b?a.getInt((127&b)<<3):b};var g=function(a,b){var c,d=a.getByte();if(b--,128!==d){if(128&d){var e=127&d;f(a,b,e),c=a.getInt(e<<3)}else c=d;if(c<0)throw Error("Negative length: "+c);return c}};e.fromDer=function(a,b){void 0===b&&(b={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),"boolean"==typeof b&&(b={strict:b,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in b||(b.strict=!0),"parseAllBytes"in b||(b.parseAllBytes=!0),"decodeBitStrings"in b||(b.decodeBitStrings=!0),"maxDepth"in b||(b.maxDepth=e.maxDepth),"string"==typeof a&&(a=d.util.createBuffer(a));var c=a.length(),h=function a(b,c,d,h){if(d>=h.maxDepth)throw Error("ASN.1 parsing error: Max depth exceeded.");f(b,c,2);var i,j,k,l=b.getByte();c--;var m=192&l,n=31&l;i=b.length();var o=g(b,c);if(c-=i-b.length(),void 0!==o&&o>c){if(h.strict){var p=Error("Too few bytes to read ASN.1 value.");throw p.available=b.length(),p.remaining=c,p.requested=o,p}o=c}var q=(32&l)==32;if(q)if(j=[],void 0===o)for(;;){if(f(b,c,2),b.bytes(2)===String.fromCharCode(0,0)){b.getBytes(2),c-=2;break}i=b.length(),j.push(a(b,c,d+1,h)),c-=i-b.length()}else for(;o>0;)i=b.length(),j.push(a(b,o,d+1,h)),c-=i-b.length(),o-=i-b.length();if(void 0===j&&m===e.Class.UNIVERSAL&&n===e.Type.BITSTRING&&(k=b.bytes(o)),void 0===j&&h.decodeBitStrings&&m===e.Class.UNIVERSAL&&n===e.Type.BITSTRING&&o>1){var r=b.read,s=c,t=0;if(n===e.Type.BITSTRING&&(f(b,c,1),t=b.getByte(),c--),0===t)try{i=b.length();var u=a(b,c,d+1,{strict:!0,decodeBitStrings:!0}),v=i-b.length();c-=v,n==e.Type.BITSTRING&&v++;var w=u.tagClass;v===o&&(w===e.Class.UNIVERSAL||w===e.Class.CONTEXT_SPECIFIC)&&(j=[u])}catch(a){}void 0===j&&(b.read=r,c=s)}if(void 0===j){if(void 0===o){if(h.strict)throw Error("Non-constructed ASN.1 object of indefinite length.");o=c}if(n===e.Type.BMPSTRING)for(j="";o>0;o-=2)f(b,c,2),j+=String.fromCharCode(b.getInt16()),c-=2;else j=b.getBytes(o),c-=o}var x=void 0===k?null:{bitStringContents:k};return e.create(m,n,q,j,x)}(a,a.length(),0,b);if(b.parseAllBytes&&0!==a.length()){var i=Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=c,i.remaining=a.length(),i}return h},e.toDer=function(a){var b=d.util.createBuffer(),c=a.tagClass|a.type,f=d.util.createBuffer(),g=!1;if("bitStringContents"in a&&(g=!0,a.original&&(g=e.equals(a,a.original))),g)f.putBytes(a.bitStringContents);else if(a.composed){a.constructed?c|=32:f.putByte(0);for(var h=0;h<a.value.length;++h)void 0!==a.value[h]&&f.putBuffer(e.toDer(a.value[h]))}else if(a.type===e.Type.BMPSTRING)for(var h=0;h<a.value.length;++h)f.putInt16(a.value.charCodeAt(h));else a.type===e.Type.INTEGER&&a.value.length>1&&(0===a.value.charCodeAt(0)&&(128&a.value.charCodeAt(1))==0||255===a.value.charCodeAt(0)&&(128&a.value.charCodeAt(1))==128)?f.putBytes(a.value.substr(1)):f.putBytes(a.value);if(b.putByte(c),127>=f.length())b.putByte(127&f.length());else{var i=f.length(),j="";do j+=String.fromCharCode(255&i),i>>>=8;while(i>0);b.putByte(128|j.length);for(var h=j.length-1;h>=0;--h)b.putByte(j.charCodeAt(h))}return b.putBuffer(f),b},e.oidToDer=function(a){var b,c,e,f,g=a.split("."),h=d.util.createBuffer();h.putByte(40*parseInt(g[0],10)+parseInt(g[1],10));for(var i=2;i<g.length;++i){if(b=!0,c=[],(e=parseInt(g[i],10))>0xffffffff)throw Error("OID value too large; max is 32-bits.");do f=127&e,e>>>=7,b||(f|=128),c.push(f),b=!1;while(e>0);for(var j=c.length-1;j>=0;--j)h.putByte(c[j])}return h},e.derToOid=function(a){"string"==typeof a&&(a=d.util.createBuffer(a));var b,c=a.getByte();b=Math.floor(c/40)+"."+c%40;for(var e=0;a.length()>0;){if(e>0x3fffffffffff)throw Error("OID value too large; max is 53-bits.");c=a.getByte(),e*=128,128&c?e+=127&c:(b+="."+(e+c),e=0)}return b},e.utcTimeToDate=function(a){var b=new Date,c=parseInt(a.substr(0,2),10);c=c>=50?1900+c:2e3+c;var d=parseInt(a.substr(2,2),10)-1,e=parseInt(a.substr(4,2),10),f=parseInt(a.substr(6,2),10),g=parseInt(a.substr(8,2),10),h=0;if(a.length>11){var i=a.charAt(10),j=10;"+"!==i&&"-"!==i&&(h=parseInt(a.substr(10,2),10),j+=2)}if(b.setUTCFullYear(c,d,e),b.setUTCHours(f,g,h,0),j&&("+"===(i=a.charAt(j))||"-"===i)){var k=60*parseInt(a.substr(j+1,2),10)+parseInt(a.substr(j+4,2),10);k*=6e4,"+"===i?b.setTime(b-k):b.setTime(+b+k)}return b},e.generalizedTimeToDate=function(a){var b=new Date,c=parseInt(a.substr(0,4),10),d=parseInt(a.substr(4,2),10)-1,e=parseInt(a.substr(6,2),10),f=parseInt(a.substr(8,2),10),g=parseInt(a.substr(10,2),10),h=parseInt(a.substr(12,2),10),i=0,j=0,k=!1;"Z"===a.charAt(a.length-1)&&(k=!0);var l=a.length-5,m=a.charAt(l);return("+"===m||"-"===m)&&(j=(60*parseInt(a.substr(l+1,2),10)+parseInt(a.substr(l+4,2),10))*6e4,"+"===m&&(j*=-1),k=!0),"."===a.charAt(14)&&(i=1e3*parseFloat(a.substr(14),10)),k?(b.setUTCFullYear(c,d,e),b.setUTCHours(f,g,h,i),b.setTime(+b+j)):(b.setFullYear(c,d,e),b.setHours(f,g,h,i)),b},e.dateToUtcTime=function(a){if("string"==typeof a)return a;var b="",c=[];c.push((""+a.getUTCFullYear()).substr(2)),c.push(""+(a.getUTCMonth()+1)),c.push(""+a.getUTCDate()),c.push(""+a.getUTCHours()),c.push(""+a.getUTCMinutes()),c.push(""+a.getUTCSeconds());for(var d=0;d<c.length;++d)c[d].length<2&&(b+="0"),b+=c[d];return b+"Z"},e.dateToGeneralizedTime=function(a){if("string"==typeof a)return a;var b="",c=[];c.push(""+a.getUTCFullYear()),c.push(""+(a.getUTCMonth()+1)),c.push(""+a.getUTCDate()),c.push(""+a.getUTCHours()),c.push(""+a.getUTCMinutes()),c.push(""+a.getUTCSeconds());for(var d=0;d<c.length;++d)c[d].length<2&&(b+="0"),b+=c[d];return b+"Z"},e.integerToDer=function(a){var b=d.util.createBuffer();if(a>=-128&&a<128)return b.putSignedInt(a,8);if(a>=-32768&&a<32768)return b.putSignedInt(a,16);if(a>=-8388608&&a<8388608)return b.putSignedInt(a,24);if(a>=-0x80000000&&a<0x80000000)return b.putSignedInt(a,32);var c=Error("Integer too large; max is 32-bits.");throw c.integer=a,c},e.derToInteger=function(a){"string"==typeof a&&(a=d.util.createBuffer(a));var b=8*a.length();if(b>32)throw Error("Integer too large; max is 32-bits.");return a.getSignedInt(b)},e.validate=function(a,b,c,f){var g=!1;if((a.tagClass===b.tagClass||void 0===b.tagClass)&&(a.type===b.type||void 0===b.type))if(a.constructed===b.constructed||void 0===b.constructed){if(g=!0,b.value&&d.util.isArray(b.value))for(var h=0,i=0;g&&i<b.value.length;++i){var j=b.value[i];g=!!j.optional;var k=a.value[h];if(!k){!j.optional&&(g=!1,f&&f.push("["+b.name+'] Missing required element. Expected tag class "'+j.tagClass+'", type "'+j.type+'"'));continue}if(void 0!==j.tagClass&&void 0!==j.type&&(k.tagClass!==j.tagClass||k.type!==j.type))if(j.optional){g=!0;continue}else{g=!1,f&&f.push("["+b.name+"] Tag mismatch. Expected ("+j.tagClass+","+j.type+"), got ("+k.tagClass+","+k.type+")");break}if(e.validate(k,j,c,f))++h,g=!0;else if(j.optional)g=!0;else{g=!1;break}}if(g&&c&&(b.capture&&(c[b.capture]=a.value),b.captureAsn1&&(c[b.captureAsn1]=a),b.captureBitStringContents&&"bitStringContents"in a&&(c[b.captureBitStringContents]=a.bitStringContents),b.captureBitStringValue&&"bitStringContents"in a))if(a.bitStringContents.length<2)c[b.captureBitStringValue]="";else{if(0!==a.bitStringContents.charCodeAt(0))throw Error("captureBitStringValue only supported for zero unused bits");c[b.captureBitStringValue]=a.bitStringContents.slice(1)}}else f&&f.push("["+b.name+'] Expected constructed "'+b.constructed+'", got "'+a.constructed+'"');else f&&(a.tagClass!==b.tagClass&&f.push("["+b.name+'] Expected tag class "'+b.tagClass+'", got "'+a.tagClass+'"'),a.type!==b.type&&f.push("["+b.name+'] Expected type "'+b.type+'", got "'+a.type+'"'));return g};var h=/[^\\u0000-\\u00ff]/;e.prettyPrint=function(a,b,c){var f="";c=c||2,(b=b||0)>0&&(f+="\n");for(var g="",i=0;i<b*c;++i)g+=" ";switch(f+=g+"Tag: ",a.tagClass){case e.Class.UNIVERSAL:f+="Universal:";break;case e.Class.APPLICATION:f+="Application:";break;case e.Class.CONTEXT_SPECIFIC:f+="Context-Specific:";break;case e.Class.PRIVATE:f+="Private:"}if(a.tagClass===e.Class.UNIVERSAL)switch(f+=a.type,a.type){case e.Type.NONE:f+=" (None)";break;case e.Type.BOOLEAN:f+=" (Boolean)";break;case e.Type.INTEGER:f+=" (Integer)";break;case e.Type.BITSTRING:f+=" (Bit string)";break;case e.Type.OCTETSTRING:f+=" (Octet string)";break;case e.Type.NULL:f+=" (Null)";break;case e.Type.OID:f+=" (Object Identifier)";break;case e.Type.ODESC:f+=" (Object Descriptor)";break;case e.Type.EXTERNAL:f+=" (External or Instance of)";break;case e.Type.REAL:f+=" (Real)";break;case e.Type.ENUMERATED:f+=" (Enumerated)";break;case e.Type.EMBEDDED:f+=" (Embedded PDV)";break;case e.Type.UTF8:f+=" (UTF8)";break;case e.Type.ROID:f+=" (Relative Object Identifier)";break;case e.Type.SEQUENCE:f+=" (Sequence)";break;case e.Type.SET:f+=" (Set)";break;case e.Type.PRINTABLESTRING:f+=" (Printable String)";break;case e.Type.IA5String:f+=" (IA5String (ASCII))";break;case e.Type.UTCTIME:f+=" (UTC time)";break;case e.Type.GENERALIZEDTIME:f+=" (Generalized time)";break;case e.Type.BMPSTRING:f+=" (BMP String)"}else f+=a.type;if(f+="\n",f+=g+"Constructed: "+a.constructed+"\n",a.composed){for(var j=0,k="",i=0;i<a.value.length;++i)void 0!==a.value[i]&&(j+=1,k+=e.prettyPrint(a.value[i],b+1,c),i+1<a.value.length&&(k+=","));f+=g+"Sub values: "+j+k}else{if(f+=g+"Value: ",a.type===e.Type.OID){var l=e.derToOid(a.value);f+=l,d.pki&&d.pki.oids&&l in d.pki.oids&&(f+=" ("+d.pki.oids[l]+") ")}if(a.type===e.Type.INTEGER)try{f+=e.derToInteger(a.value)}catch(b){f+="0x"+d.util.bytesToHex(a.value)}else if(a.type===e.Type.BITSTRING){if(a.value.length>1?f+="0x"+d.util.bytesToHex(a.value.slice(1)):f+="(none)",a.value.length>0){var m=a.value.charCodeAt(0);1==m?f+=" (1 unused bit shown)":m>1&&(f+=" ("+m+" unused bits shown)")}}else if(a.type===e.Type.OCTETSTRING)h.test(a.value)||(f+="("+a.value+") "),f+="0x"+d.util.bytesToHex(a.value);else if(a.type===e.Type.UTF8)try{f+=d.util.decodeUtf8(a.value)}catch(b){if("URI malformed"===b.message)f+="0x"+d.util.bytesToHex(a.value)+" (malformed UTF8)";else throw b}else a.type===e.Type.PRINTABLESTRING||a.type===e.Type.IA5String?f+=a.value:h.test(a.value)?f+="0x"+d.util.bytesToHex(a.value):0===a.value.length?f+="[null]":f+=a.value}return f}},63971:(a,b,c)=>{"use strict";function d(a){if("number"==typeof a)return Number.isFinite(a)?a:null;if("string"==typeof a&&a.trim()){let b=Number(a);return Number.isFinite(b)?b:null}return null}function e(a,b=Date.now()){if(!a||function(a,b=Date.now()){if(a?.blocked===!0)return"Provider reports limit reached";if(a?.stale===!0)return"Refresh unavailable";let c=a?.observedAt?Date.parse(a.observedAt):NaN;if(a?.observedAt&&(!Number.isFinite(c)||c>b+6e4||b-c>=6e5))return"Observation expired";let d=a?.resetAt?Date.parse(a.resetAt):NaN;return Number.isFinite(d)&&d<=b?!1===a.recurring?"Expired":"Reset passed; refresh needed":null}(a,b)||"balance"===a.kind)return null;if(!0===a.unlimited)return 100;let c=d(a.remainingPercentage);if(null!==c)return Math.max(0,Math.min(100,c));let f=d(a.total);if(null===f||f<=0)return null;let g=d(a.used),h=d(a.remaining);return null!==g&&g>=0?Math.max(0,Math.min(100,(f-g)/f*100)):null!==h&&h>=0?Math.max(0,Math.min(100,h/f*100)):null}c.d(b,{Gv:()=>d,_F:()=>e})},63993:(a,b,c)=>{"use strict";function d(a){return null==a?"":String(a).trim()}async function e(a={}){try{let b=function(a={}){let b=a?.connectionProxyEnabled===!0,c=d(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d(a?.connectionNoProxy)}}(a);if(b.connectionProxyEnabled&&b.connectionProxyUrl)return{source:"legacy",proxyPoolId:null,proxyPool:null,...b,strictProxy:!1,vercelRelayUrl:""};return{source:"none",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:b.connectionNoProxy||"",strictProxy:!1,vercelRelayUrl:""}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1,vercelRelayUrl:""}}}c.d(b,{B:()=>e})},63995:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>m});var d=c(4313);let e="⚠️ 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(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","systemoneConfig","credentialFallback","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.aliases?.length?{aliases:a.aliases}:{},...a.hidden?{hidden:!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.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.apiKeyOptionalWith?{apiKeyOptionalWith:a.apiKeyOptionalWith}:{},...a.credentialForm?{credentialForm:a.credentialForm}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m={...h,...i,...j,...k,...l};Object.values(m).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(m).reduce((a,b)=>(a[b.id]=b.alias,a),{}),d.A.filter(a=>a.features?.usage).map(a=>a.id),d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},64156:(a,b,c)=>{"use strict";let d,{URL:e}=c(73136),f=c(5318),{ConnectTimeoutError:g,InvalidArgumentError:h}=c(61448),{Socks5Client:i,STATES:j}=c(40603),{kBusy:k,kConnected:l,kDispatch:m,kClose:n,kDestroy:o}=c(49176),p=c(35689),q=c(55285),{setupConnectTimeout:r}=c(84285),{debuglog:s}=c(57975),t=s("undici:socks5-proxy"),u=Symbol("proxy url"),v=Symbol("proxy headers"),w=Symbol("proxy auth"),x=Symbol("proxy protocol"),y=Symbol("pools"),z=Symbol("connector"),A=Symbol("connect timeout"),B=Symbol("request tls settings"),C=Symbol("request tls timeout");function D(a,b,c){return new g(`Connect Timeout Error (attempted address: ${a}:${b}, timeout: ${c}ms)`)}let E=!1;class F extends f{constructor(a,b={}){if(super(b),E||(process.emitWarning("SOCKS5 proxy support is experimental and subject to change","ExperimentalWarning"),E=!0),!a)throw new h("Proxy URL is mandatory");const c="string"==typeof a?new e(a):a;if("socks5:"!==c.protocol&&"socks:"!==c.protocol)throw new h("Proxy URL must use socks5:// or socks:// protocol");this[u]=c,this[v]=b.headers||{},this[x]=b.proxyTls?"https:":"http:";const d=b.connectTimeout??5e3;if(!Number.isFinite(d)||d<0)throw new h("invalid connectTimeout");this[A]=d;const{timeout:f,...g}=b.requestTls||{},i=f??d;if(!Number.isFinite(i)||i<0)throw new h("invalid requestTls.timeout");this[B]=g,this[C]=i,this[w]={username:b.username||(c.username?decodeURIComponent(c.username):null),password:b.password||(c.password?decodeURIComponent(c.password):null)};const j=b.proxyTls?.timeout??d;if(!Number.isFinite(j)||j<0)throw new h("invalid proxyTls.timeout");this[z]=b.connect||q({...b.proxyTls,timeout:j,servername:b.proxyTls?.servername||c.hostname}),this[y]=new Map}async createSocks5Connection(a,b){let c=this[u].hostname,d=parseInt(this[u].port)||1080;t("creating SOCKS5 connection to",c,d);let e=Promise.withResolvers();this[z]({hostname:c,host:c,port:d,protocol:this[x]},(a,b)=>{a?e.reject(a):e.resolve(b)});let f=await e.promise,g=new i(f,this[w]);g.on("error",a=>{t("SOCKS5 error:",a),f.destroy()}),await g.handshake();let h=Promise.withResolvers(),k=0===this[A]?null:setTimeout(()=>{l(),g.destroy(),h.reject(D(c,d,this[A]))},this[A]),l=()=>{clearTimeout(k),g.removeListener("authenticated",m),g.removeListener("error",n)},m=()=>{l(),h.resolve()},n=a=>{l(),h.reject(a)};g.state===j.AUTHENTICATED?(clearTimeout(k),h.resolve()):(g.once("authenticated",m),g.once("error",n)),await h.promise,await g.connect(a,b);let o=Promise.withResolvers(),p=0===this[A]?null:setTimeout(()=>{q(),g.destroy(),o.reject(D(a,b,this[A]))},this[A]),q=()=>{clearTimeout(p),g.removeListener("connected",r),g.removeListener("error",s)},r=c=>{t("SOCKS5 tunnel established to",a,b,"via",c),q(),o.resolve()},s=a=>{q(),o.reject(a)};return g.once("connected",r),g.once("error",s),await o.promise,f}[m](a,b){let{origin:f}=a;t("dispatching request to",f,"via SOCKS5");try{let g=String(f),h=this[y].get(g);if(!h||h.destroyed||h.closed){h=new p(f,{pipelining:a.pipelining,connections:a.connections,connect:async(a,b)=>{try{let a=new e(f),g=a.hostname,h=parseInt(a.port)||("https:"===a.protocol?443:80);t("establishing SOCKS5 connection to",g,h);let i=await this.createSocks5Connection(g,h),j=i;if("https:"===a.protocol){d||(d=c(41692)),t("upgrading to TLS"),j=d.connect({...this[B],socket:i,servername:this[B]?.servername||g});let a=Promise.withResolvers(),b=()=>{queueMicrotask(k),j.removeListener("secureConnect",e),j.removeListener("error",f)},e=()=>{b(),a.resolve()},f=c=>{b(),a.reject(c)},k=r(new WeakRef(j),{timeout:this[C],hostname:g,port:h});j.once("secureConnect",e),j.once("error",f),await a.promise}b(null,j)}catch(a){t("SOCKS5 connection error:",a),b(a)}}}),this[y].set(g,h);let b=()=>{this[y].get(g)!==h||h[l]>0||h[k]||(this[y].delete(g),h.destroyed||h.close())};h.on("disconnect",b),h.on("connectionError",b)}return h[m](a,b)}catch(a){if(t("dispatch error:",a),"function"==typeof b.onResponseError)return b.onResponseError(null,a),!1;if("function"==typeof b.onError)return b.onError(a),!1;throw a}}async [n](){let a=[];for(let b of this[y].values())a.push(b.close());this[y].clear(),await Promise.all(a)}async [o](a){let b=[];for(let c of this[y].values())b.push(c.destroy(a));this[y].clear(),await Promise.all(b)}}a.exports=F},64371:(a,b,c)=>{"use strict";let d,e=c(34589),{runtimeFeatures:f}=c(56758),g=new Map([["sha256",0],["sha384",1],["sha512",2]]);if(f.has("crypto")){let a=(d=c(77598)).getHashes();for(let b of(0===a.length&&g.clear(),g.keys()))!1===a.includes(b)&&g.delete(b)}else g.clear();let h=Map.prototype.get.bind(g),i=Map.prototype.has.bind(g),j=!1===f.has("crypto")||0===g.size?()=>!0:(a,b)=>{let c=l(b);if(0===c.length)return!0;for(let b of k(c)){let c=b.alg,d=b.val;if(n(m(c,a),d))return!0}return!1};function k(a){let b=[],c=null;for(let d of a){if(e(i(d.alg),"Invalid SRI hash algorithm token"),0===b.length){b.push(d),c=d;continue}let a=h(c.alg),f=h(d.alg);f<a||(f>a?(c=d,b[0]=d,b.length=1):b.push(d))}return b}function l(a){let b=[];for(let c of a.split(" ")){let a=c.split("?",1)[0],d="",e=[a.slice(0,6),a.slice(7)],f=e[0];if(!i(f))continue;e[1]&&(d=e[1]);let g={alg:f,val:d};b.push(g)}return b}let m=(a,b)=>d.hash(a,b,"base64");function n(a,b){let c=a.length;0!==c&&"="===a[c-1]&&(c-=1),0!==c&&"="===a[c-1]&&(c-=1);let d=b.length;if(0!==d&&"="===b[d-1]&&(d-=1),0!==d&&"="===b[d-1]&&(d-=1),c!==d)return!1;for(let d=0;d<c;++d)if(a[d]!==b[d]&&("+"!==a[d]||"-"!==b[d])&&("/"!==a[d]||"_"!==b[d]))return!1;return!0}a.exports={applyAlgorithmToBytes:m,bytesMatch:j,caseSensitiveMatch:n,isValidSRIHashAlgorithm:i,getStrongestMetadata:k,parseMetadata:l}},64704:a=>{"use strict";let b,c=0,d=Symbol("kFastTimer"),e=[];function f(){c+=499;let a=0,b=e.length;for(;a<b;){let d=e[a];0===d._state?(d._idleStart=c-499,d._state=1):1===d._state&&c>=d._idleStart+d._idleTimeout&&(d._state=-1,d._idleStart=-1,d._onTimeout(d._timerArg)),-1===d._state?(d._state=-2,0!=--b&&(e[a]=e[b])):++a}e.length=b,0!==e.length&&g()}function g(){b?.refresh?b.refresh():(clearTimeout(b),b=setTimeout(f,499),b?.unref())}class h{[d]=!0;_state=-2;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(a,b,c){this._onTimeout=a,this._idleTimeout=b,this._timerArg=c,this.refresh()}refresh(){-2===this._state&&e.push(this),b&&1!==e.length||g(),this._state=0}clear(){this._state=-1,this._idleStart=-1}}a.exports={setTimeout:(a,b,c)=>b<=1e3?setTimeout(a,b,c):new h(a,b,c),clearTimeout(a){a[d]?a.clear():clearTimeout(a)},setFastTimeout:(a,b,c)=>new h(a,b,c),clearFastTimeout(a){a.clear()},now:()=>c,tick(a=0){c+=a-1e3+1,f(),f()},reset(){c=0,e.length=0,clearTimeout(b),b=null},kFastTimer:d}},64821:(a,b,c)=>{"use strict";let{Writable:d}=c(57075),e=c(34589),{parserStates:f,opcodes:g,states:h,emptyBuffer:i,sentCloseFrameState:j}=c(62026),{isValidStatusCode:k,isValidOpcode:l,websocketMessageReceived:m,utf8Decode:n,isControlFrame:o,isTextBinaryFrame:p,isContinuationFrame:q}=c(94050),{failWebsocketConnection:r}=c(4654),{WebsocketFrameSend:s}=c(45221),{PerMessageDeflate:t}=c(97210),{MessageSizeExceededError:u}=c(61448);class v extends d{#bI=[];#bJ=0;#bK=0;#bL=!1;#a=f.INFO;#bM={};#bN=[];#bq;#aQ;#bO;#bP;constructor(a,b,c={}){super(),this.#aQ=a,this.#bq=null==b?new Map:b,this.#bO=c.maxFragments??0,this.#bP=c.maxPayloadSize??0,this.#bq.has("permessage-deflate")&&this.#bq.set("permessage-deflate",new t(b,c))}_write(a,b,c){this.#bI.push(a),this.#bK+=a.length,this.#bL=!0,this.run(c)}#bQ(){return!(this.#bP>0)||!!o(this.#bM.opcode)||!(this.#bM.payloadLength+this.#bJ>this.#bP)||(r(this.#aQ,1009,"Payload size exceeds maximum allowed size"),!1)}run(a){for(;this.#bL;)if(this.#a===f.INFO){if(this.#bK<2)return a();let b=this.consume(2),c=(128&b[0])!=0,d=15&b[0],e=(128&b[1])==128,h=!c&&d!==g.CONTINUATION,i=127&b[1],j=64&b[0],k=32&b[0],m=16&b[0];if(!l(d))return r(this.#aQ,1002,"Invalid opcode received"),a();if(e)return r(this.#aQ,1002,"Frame cannot be masked"),a();if(0!==j&&!this.#bq.has("permessage-deflate"))return void r(this.#aQ,1002,"Expected RSV1 to be clear.");if(0!==k||0!==m)return void r(this.#aQ,1002,"RSV1, RSV2, RSV3 must be clear");if(h&&!p(d))return void r(this.#aQ,1002,"Invalid frame type was fragmented.");if(p(d)&&this.#bN.length>0)return void r(this.#aQ,1002,"Expected continuation frame");if(this.#bM.fragmented&&h)return void r(this.#aQ,1002,"Fragmented frame exceeded 125 bytes.");if((i>125||h)&&o(d))return void r(this.#aQ,1002,"Control frame either too large or fragmented");if(q(d)&&0===this.#bN.length&&!this.#bM.compressed)return void r(this.#aQ,1002,"Unexpected continuation frame");if(i<=125){if(this.#bM.payloadLength=i,this.#a=f.READ_DATA,!this.#bQ())return}else 126===i?this.#a=f.PAYLOADLENGTH_16:127===i&&(this.#a=f.PAYLOADLENGTH_64);p(d)&&(this.#bM.binaryType=d,this.#bM.compressed=0!==j),this.#bM.opcode=d,this.#bM.masked=e,this.#bM.fin=c,this.#bM.fragmented=h}else if(this.#a===f.PAYLOADLENGTH_16){if(this.#bK<2)return a();let b=this.consume(2);if(this.#bM.payloadLength=b.readUInt16BE(0),this.#a=f.READ_DATA,!this.#bQ())return}else if(this.#a===f.PAYLOADLENGTH_64){if(this.#bK<8)return a();let b=this.consume(8),c=b.readUInt32BE(0),d=b.readUInt32BE(4);if(0!==c||d>0x80000000-1)return void r(this.#aQ,1009,"Received payload length > 2^31 bytes.");if(this.#bM.payloadLength=d,this.#a=f.READ_DATA,!this.#bQ())return}else if(this.#a===f.READ_DATA){if(this.#bK<this.#bM.payloadLength)return a();let b=this.consume(this.#bM.payloadLength);if(o(this.#bM.opcode))this.#bL=this.parseControlFrame(b),this.#a=f.INFO;else if(this.#bM.compressed){this.#bq.get("permessage-deflate").decompress(b,this.#bM.fin,(b,c)=>{if(b){let a=b instanceof u?1009:1007;r(this.#aQ,a,b.message);return}if(this.writeFragments(c)){if(this.#bP>0&&this.#bJ>this.#bP)return void r(this.#aQ,1009,new u().message);if(!this.#bM.fin){this.#a=f.INFO,this.#bL=!0,this.run(a);return}m(this.#aQ,this.#bM.binaryType,this.consumeFragments()),this.#bL=!0,this.#a=f.INFO,this.run(a)}},this.#bJ),this.#bL=!1;break}else{if(!this.writeFragments(b))return;!this.#bM.fragmented&&this.#bM.fin&&m(this.#aQ,this.#bM.binaryType,this.consumeFragments()),this.#a=f.INFO}}}consume(a){if(a>this.#bK)throw Error("Called consume() before buffers satiated.");if(0===a)return i;this.#bK-=a;let b=this.#bI[0];if(b.length>a)return this.#bI[0]=b.subarray(a,b.length),b.subarray(0,a);{if(b.length===a)return this.#bI.shift();let c=0,d=Buffer.allocUnsafeSlow(a);for(;c!==a;){let b=this.#bI[0],e=b.length;if(e+c===a){d.set(this.#bI.shift(),c);break}if(e+c>a){d.set(b.subarray(0,a-c),c),this.#bI[0]=b.subarray(a-c);break}d.set(this.#bI.shift(),c),c+=e}return d}}writeFragments(a){return this.#bO>0&&this.#bN.length===this.#bO?(r(this.#aQ,1008,"Too many message fragments"),!1):(this.#bJ+=a.length,this.#bN.push(a),!0)}consumeFragments(){let a=this.#bN;if(this.#bM.compressed=!1,1===a.length)return this.#bJ=0,a.shift();let b=0,c=Buffer.allocUnsafeSlow(this.#bJ);for(let d=0;d<a.length;++d){let e=a[d];c.set(e,b),b+=e.length}return this.#bN=[],this.#bJ=0,c}parseCloseBody(a){let b;if(e(1!==a.length),a.length>=2&&(b=a.readUInt16BE(0)),void 0!==b&&!k(b))return{code:1002,reason:"Invalid status code",error:!0};let c=a.subarray(2);239===c[0]&&187===c[1]&&191===c[2]&&(c=c.subarray(3));try{c=n(c)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:b,reason:c,error:!1}}parseControlFrame(a){let{opcode:b,payloadLength:c}=this.#bM;if(b===g.CLOSE){if(1===c)return r(this.#aQ,1002,"Received close frame with a 1-byte body."),!1;if(this.#bM.closeInfo=this.parseCloseBody(a),this.#bM.closeInfo.error){let{code:a,reason:b}=this.#bM.closeInfo;return r(this.#aQ,a,b),!1}if(!this.#aQ.closeState.has(j.SENT)&&!this.#aQ.closeState.has(j.RECEIVED)){let a=i;this.#bM.closeInfo.code&&(a=Buffer.allocUnsafe(2)).writeUInt16BE(this.#bM.closeInfo.code,0);let b=new s(a);this.#aQ.socket.write(b.createFrame(g.CLOSE)),this.#aQ.closeState.add(j.SENT)}return this.#aQ.readyState=h.CLOSING,this.#aQ.closeState.add(j.RECEIVED),!1}if(b===g.PING){if(!this.#aQ.closeState.has(j.RECEIVED)){let b=new s(a);this.#aQ.socket.write(b.createFrame(g.PONG)),this.#aQ.onPing(a)}}else b===g.PONG&&this.#aQ.onPong(a);return!0}get closingInfo(){return this.#bM.closeInfo}}a.exports={ByteParser:v}},65179:(a,b,c)=>{"use strict";var d=c(17438),e=c(88799);(0,d.qd)({loadProviderQuotaState:e.l,saveProviderQuotaState:e._})},65369:(a,b,c)=>{"use strict";c.d(b,{c:()=>t});var d=c(55511),e=c(22256),f=c(38421),g=c(10793),h=c(82689),i=c(49623),j=c(50969),k=c(22435),l=c(69226),m=c(96915);let n=[/high\s+traffic/i,/agent\s+(execution\s+)?terminated\s+due\s+to\s+error/i,/capacity/i,/temporarily\s+unavailable/i,/timeout/i,/stream\s+(ended|closed|terminated|interrupted)/i,/empty\s+response/i],o=new Set([h.gx.SERVER_ERROR,h.gx.BAD_GATEWAY,h.gx.SERVICE_UNAVAILABLE,h.gx.GATEWAY_TIMEOUT]),p=["stream","output_config","thinking","reasoning_effort","reasoning","enable_thinking","thinking_budget","thinkingConfig"],q=a=>{for(let b of p)delete a[b]},r=[/image/i,/imagen/i,/image-generation/i];function s(a){return!!a&&r.some(b=>b.test(a))}class t extends e.Hv{constructor(){super("antigravity",f.xq.antigravity)}parseError(a,b){if((429===a.status||409===a.status)&&b)try{let c=JSON.parse(b),d=c?.error,e=null;for(let a of Array.isArray(d?.details)?d.details:[]){if(a?.metadata?.quotaResetTimeStamp){let b=new Date(a.metadata.quotaResetTimeStamp).getTime();if(!isNaN(b)&&b>Date.now()){e=b;break}}if("string"==typeof a?.retryDelay){let b=parseFloat(a.retryDelay);if(!isNaN(b)&&b>0){let a=Date.now()+Math.round(1e3*b);if(a>Date.now()){e=a;break}}}}if(e)return{status:a.status,message:d?.message||b,resetsAtMs:e}}catch{}return super.parseError(a,b)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0],f=s(a);return`${e}/v1internal:${b&&!f?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null){let d=c||this._lastSessionId;return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,...d&&{"X-Machine-Session-Id":d},Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,e){let f=e?.projectId||this.generateProjectId();if(s(a)){let c=function(a){let b={aspectRatio:"1:1"},c=a.match(/(\d+)x(\d+)$/);if(c){let a=parseInt(c[1]),d=parseInt(c[2]);if(a<=16&&d<=16)b.aspectRatio=`${a}:${d}`;else{let c=(a,b)=>b?c(b,a%b):a,e=c(a,d);b.aspectRatio=`${a/e}:${d/e}`}}return b}(a),g=a.replace(/-(\d+)x(\d+)$/,""),h=[];for(let a of b.request?.contents||b.contents||[]){let b=(a.parts||[]).flatMap(a=>void 0!==a.text?[{text:a.text}]:a.inlineData?.data?[{inlineData:a.inlineData}]:[]);b.length>0&&h.push({role:a.role||"user",parts:b})}let j=(0,i.oV)({headers:e?.rawHeaders,body:b,connectionId:e?.email||e?.connectionId,scope:"antigravity"});return this._lastSessionId=j,{project:f,model:g,userAgent:"antigravity",requestType:"image_gen",requestId:`agent-${d.randomUUID()}`,request:{contents:h,generationConfig:{temperature:1,topP:.95,topK:40,maxOutputTokens:8192,imageConfig:c},sessionId:j}}}let h=b.request?.sessionId||(0,i.oV)({headers:e?.rawHeaders,body:b,connectionId:e?.email||e?.connectionId,scope:"antigravity"}),j=(0,i.E9)(h)||h,n=b.request?.contents?.map(c=>{let d=c.role;c.parts?.some(a=>a.functionResponse)&&(d="user");let f=c.parts?.filter(a=>(!a.thought||!!a.functionCall)&&(!a.thoughtSignature||!!a.functionCall||!!a.text)),g=!1,h=f?.map(c=>{if(!c.functionCall)return c;let d=c.functionCall.id,f=d?(0,m.el)(d,e?._thoughtSignatureSessionId||e?._clientSessionId||j,b.model||a):null,h=c.thoughtSignature||f||(g?void 0:l.bf);if(g=!0,h)return{...c,thoughtSignature:h};if(c.thoughtSignature&&!f){let{thoughtSignature:a,...b}=c;return b}return c}),i=f?.length!==c.parts?.length||(h?.some((a,b)=>a!==c.parts[b])??!1);return d!==c.role||i?{...c,role:d,parts:h||f}:c}),o=n&&(0,k.$J)(n,a),p=b.request?.tools;if(p&&p.length>0){let a=new Set,b=[];for(let c of p)for(let d of c.functionDeclarations||[]){let c=function(a){if(!a)return"_unknown";let b=a.replace(/[^a-zA-Z0-9_.:\-]/g,"_");return/^[a-zA-Z_]/.test(b)||(b="_"+b),b.substring(0,64)}(d.name);a.has(c)||(a.add(c),b.push({...d,name:c,parameters:d.parameters?(0,k.Yr)(structuredClone(d.parameters)):{type:"object",properties:{reason:{type:"string",description:"Brief explanation"}},required:["reason"]}}))}p=b.length>0?[{functionDeclarations:b}]:[]}let{tools:r,toolConfig:t,...u}=b.request||{};q(u),Array.isArray(u.systemInstruction?.parts)&&(u.systemInstruction={...u.systemInstruction,parts:u.systemInstruction.parts.map(a=>{if("string"!=typeof a?.text)return a;let b=a.text;for(let{from:a,to:c}of g.iO)b=b.replaceAll(a,c);return b===a.text?a:{...a,text:b}})});let v={...u.generationConfig||{}};v.maxOutputTokens>16384&&(v.maxOutputTokens=16384);let w={...u,generationConfig:v,...o&&{contents:o},...p&&{tools:p},sessionId:j,safetySettings:void 0,...p?.length>0&&{toolConfig:{functionCallingConfig:{mode:"VALIDATED"}}}};return q(b),this._lastSessionId=w.sessionId,delete b.requestType,{...b,project:f,model:b.model||a,userAgent:"antigravity",requestId:`agent-${d.randomUUID()}`,request:w}}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,j.Fm)(g.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret}),identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Antigravity refresh error: ${a.message}`),null}}generateProjectId(){let a=["useful","bright","swift","calm","bold"][Math.floor(5*Math.random())],b=["fuze","wave","spark","flow","core"][Math.floor(5*Math.random())];return`${a}-${b}-${d.randomUUID().slice(0,5)}`}generateSessionId(){return d.randomUUID()+Date.now().toString()}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}extractErrorMessage(a,b=""){return[a?.error?.message,a?.message,a?.error,b].filter(Boolean).map(a=>"string"==typeof a?a:JSON.stringify(a)).join("\n")}isTransientAntigravityError(a,b){return!!(a===h.gx.RATE_LIMITED||o.has(a))||n.some(a=>a.test(b||""))}async computeRetryDelay(a,b){let c="",d=null,e=this.parseRetryHeaders(a.headers);try{d=(c=await a.clone().text())?JSON.parse(c):null}catch{}let f=this.extractErrorMessage(d,c);return(e||(e=this.parseRetryFromErrorMessage(f)),e)?e<=1e4&&e:!!this.isTransientAntigravityError(a.status,f)&&Math.min(1e3*2**b,a.status===h.gx.RATE_LIMITED?1e4:15e3)}static cloakTools(a,b=null){let c=a.request?.tools;if(!c||0===c.length)return{cloakedBody:a,toolNameMap:null};let d="github-copilot"===b,e=new Map,f=[],h=new Set(u.map(a=>a.name));for(let a of c)if(a.functionDeclarations)for(let b of a.functionDeclarations){if(d&&g.J5.has(b.name)||d&&h.has(b.name))continue;if(g.J5.has(b.name)){f.push(b);continue}let a=`${b.name}${g.QH}`;e.set(a,b.name),f.push({...b,name:a})}let i=[],j=new Set;for(let a of[...f,...u])!a?.name||j.has(a.name)||(j.add(a.name),i.push(a));let k=a.request?.contents?.map(a=>{if(!a.parts)return a;let b=a.parts.map(a=>a.functionCall&&!g.J5.has(a.functionCall.name)?{...a,functionCall:{...a.functionCall,name:`${a.functionCall.name}${g.QH}`}}:a.functionResponse&&!g.J5.has(a.functionResponse.name)?{...a,functionResponse:{...a.functionResponse,name:`${a.functionResponse.name}${g.QH}`}}:a);return{...a,parts:b}});return{cloakedBody:{...a,request:{...a.request,tools:[{functionDeclarations:i}],contents:k||a.request.contents}},toolNameMap:e}}}let u=[{name:"browser_subagent",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"command_status",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"find_by_name",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"generate_image",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"grep_search",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_dir",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_resources",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"mcp_sequential-thinking_sequentialthinking",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"multi_replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"notify_user",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_resource",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_terminal",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_url_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"run_command",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"search_web",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"send_command_input",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"task_boundary",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_content_chunk",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"write_to_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}}]},65429:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.SPECIAL_HEADERS=b.MINOR=b.MAJOR=b.HTAB_SP_VCHAR_OBS_TEXT=b.QUOTED_STRING=b.CONNECTION_TOKEN_CHARS=b.HEADER_CHARS=b.TOKEN=b.HEX=b.URL_CHAR=b.USERINFO_CHARS=b.MARK=b.ALPHANUM=b.NUM=b.HEX_MAP=b.NUM_MAP=b.ALPHA=b.STATUSES_HTTP=b.H_METHOD_MAP=b.METHOD_MAP=b.METHODS_RTSP=b.METHODS_ICE=b.METHODS_HTTP=b.HEADER_STATE=b.FINISH=b.STATUSES=b.METHODS=b.LENIENT_FLAGS=b.FLAGS=b.TYPE=b.ERROR=void 0;let d=c(33629);b.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38},b.TYPE={BOTH:0,REQUEST:1,RESPONSE:2},b.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512},b.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512},b.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46},b.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599},b.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2},b.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8},b.METHODS_HTTP=[b.METHODS.DELETE,b.METHODS.GET,b.METHODS.HEAD,b.METHODS.POST,b.METHODS.PUT,b.METHODS.CONNECT,b.METHODS.OPTIONS,b.METHODS.TRACE,b.METHODS.COPY,b.METHODS.LOCK,b.METHODS.MKCOL,b.METHODS.MOVE,b.METHODS.PROPFIND,b.METHODS.PROPPATCH,b.METHODS.SEARCH,b.METHODS.UNLOCK,b.METHODS.BIND,b.METHODS.REBIND,b.METHODS.UNBIND,b.METHODS.ACL,b.METHODS.REPORT,b.METHODS.MKACTIVITY,b.METHODS.CHECKOUT,b.METHODS.MERGE,b.METHODS["M-SEARCH"],b.METHODS.NOTIFY,b.METHODS.SUBSCRIBE,b.METHODS.UNSUBSCRIBE,b.METHODS.PATCH,b.METHODS.PURGE,b.METHODS.MKCALENDAR,b.METHODS.LINK,b.METHODS.UNLINK,b.METHODS.PRI,b.METHODS.SOURCE,b.METHODS.QUERY],b.METHODS_ICE=[b.METHODS.SOURCE],b.METHODS_RTSP=[b.METHODS.OPTIONS,b.METHODS.DESCRIBE,b.METHODS.ANNOUNCE,b.METHODS.SETUP,b.METHODS.PLAY,b.METHODS.PAUSE,b.METHODS.TEARDOWN,b.METHODS.GET_PARAMETER,b.METHODS.SET_PARAMETER,b.METHODS.REDIRECT,b.METHODS.RECORD,b.METHODS.FLUSH,b.METHODS.GET,b.METHODS.POST],b.METHOD_MAP=(0,d.enumToMap)(b.METHODS),b.H_METHOD_MAP=Object.fromEntries(Object.entries(b.METHODS).filter(([a])=>a.startsWith("H"))),b.STATUSES_HTTP=[b.STATUSES.CONTINUE,b.STATUSES.SWITCHING_PROTOCOLS,b.STATUSES.PROCESSING,b.STATUSES.EARLY_HINTS,b.STATUSES.RESPONSE_IS_STALE,b.STATUSES.REVALIDATION_FAILED,b.STATUSES.DISCONNECTED_OPERATION,b.STATUSES.HEURISTIC_EXPIRATION,b.STATUSES.MISCELLANEOUS_WARNING,b.STATUSES.OK,b.STATUSES.CREATED,b.STATUSES.ACCEPTED,b.STATUSES.NON_AUTHORITATIVE_INFORMATION,b.STATUSES.NO_CONTENT,b.STATUSES.RESET_CONTENT,b.STATUSES.PARTIAL_CONTENT,b.STATUSES.MULTI_STATUS,b.STATUSES.ALREADY_REPORTED,b.STATUSES.TRANSFORMATION_APPLIED,b.STATUSES.IM_USED,b.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,b.STATUSES.MULTIPLE_CHOICES,b.STATUSES.MOVED_PERMANENTLY,b.STATUSES.FOUND,b.STATUSES.SEE_OTHER,b.STATUSES.NOT_MODIFIED,b.STATUSES.USE_PROXY,b.STATUSES.SWITCH_PROXY,b.STATUSES.TEMPORARY_REDIRECT,b.STATUSES.PERMANENT_REDIRECT,b.STATUSES.BAD_REQUEST,b.STATUSES.UNAUTHORIZED,b.STATUSES.PAYMENT_REQUIRED,b.STATUSES.FORBIDDEN,b.STATUSES.NOT_FOUND,b.STATUSES.METHOD_NOT_ALLOWED,b.STATUSES.NOT_ACCEPTABLE,b.STATUSES.PROXY_AUTHENTICATION_REQUIRED,b.STATUSES.REQUEST_TIMEOUT,b.STATUSES.CONFLICT,b.STATUSES.GONE,b.STATUSES.LENGTH_REQUIRED,b.STATUSES.PRECONDITION_FAILED,b.STATUSES.PAYLOAD_TOO_LARGE,b.STATUSES.URI_TOO_LONG,b.STATUSES.UNSUPPORTED_MEDIA_TYPE,b.STATUSES.RANGE_NOT_SATISFIABLE,b.STATUSES.EXPECTATION_FAILED,b.STATUSES.IM_A_TEAPOT,b.STATUSES.PAGE_EXPIRED,b.STATUSES.ENHANCE_YOUR_CALM,b.STATUSES.MISDIRECTED_REQUEST,b.STATUSES.UNPROCESSABLE_ENTITY,b.STATUSES.LOCKED,b.STATUSES.FAILED_DEPENDENCY,b.STATUSES.TOO_EARLY,b.STATUSES.UPGRADE_REQUIRED,b.STATUSES.PRECONDITION_REQUIRED,b.STATUSES.TOO_MANY_REQUESTS,b.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,b.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,b.STATUSES.LOGIN_TIMEOUT,b.STATUSES.NO_RESPONSE,b.STATUSES.RETRY_WITH,b.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,b.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,b.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,b.STATUSES.INVALID_X_FORWARDED_FOR,b.STATUSES.REQUEST_HEADER_TOO_LARGE,b.STATUSES.SSL_CERTIFICATE_ERROR,b.STATUSES.SSL_CERTIFICATE_REQUIRED,b.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,b.STATUSES.INVALID_TOKEN,b.STATUSES.CLIENT_CLOSED_REQUEST,b.STATUSES.INTERNAL_SERVER_ERROR,b.STATUSES.NOT_IMPLEMENTED,b.STATUSES.BAD_GATEWAY,b.STATUSES.SERVICE_UNAVAILABLE,b.STATUSES.GATEWAY_TIMEOUT,b.STATUSES.HTTP_VERSION_NOT_SUPPORTED,b.STATUSES.VARIANT_ALSO_NEGOTIATES,b.STATUSES.INSUFFICIENT_STORAGE,b.STATUSES.LOOP_DETECTED,b.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,b.STATUSES.NOT_EXTENDED,b.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,b.STATUSES.WEB_SERVER_UNKNOWN_ERROR,b.STATUSES.WEB_SERVER_IS_DOWN,b.STATUSES.CONNECTION_TIMEOUT,b.STATUSES.ORIGIN_IS_UNREACHABLE,b.STATUSES.TIMEOUT_OCCURED,b.STATUSES.SSL_HANDSHAKE_FAILED,b.STATUSES.INVALID_SSL_CERTIFICATE,b.STATUSES.RAILGUN_ERROR,b.STATUSES.SITE_IS_OVERLOADED,b.STATUSES.SITE_IS_FROZEN,b.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,b.STATUSES.NETWORK_READ_TIMEOUT,b.STATUSES.NETWORK_CONNECT_TIMEOUT],b.ALPHA=[];for(let a=65;a<=90;a++)b.ALPHA.push(String.fromCharCode(a)),b.ALPHA.push(String.fromCharCode(a+32));b.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9},b.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},b.NUM=["0","1","2","3","4","5","6","7","8","9"],b.ALPHANUM=b.ALPHA.concat(b.NUM),b.MARK=["-","_",".","!","~","*","'","(",")"],b.USERINFO_CHARS=b.ALPHANUM.concat(b.MARK).concat(["%",";",":","&","=","+","$",","]),b.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(b.ALPHANUM),b.HEX=b.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]),b.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(b.ALPHANUM),b.HEADER_CHARS=[" "];for(let a=32;a<=255;a++)127!==a&&b.HEADER_CHARS.push(a);b.CONNECTION_TOKEN_CHARS=b.HEADER_CHARS.filter(a=>44!==a),b.QUOTED_STRING=[" "," "];for(let a=33;a<=255;a++)34!==a&&92!==a&&b.QUOTED_STRING.push(a);b.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let a=33;a<=126;a++)b.HTAB_SP_VCHAR_OBS_TEXT.push(a);for(let a=128;a<=255;a++)b.HTAB_SP_VCHAR_OBS_TEXT.push(a);b.MAJOR=b.NUM_MAP,b.MINOR=b.MAJOR,b.SPECIAL_HEADERS={connection:b.HEADER_STATE.CONNECTION,"content-length":b.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":b.HEADER_STATE.CONNECTION,"transfer-encoding":b.HEADER_STATE.TRANSFER_ENCODING,upgrade:b.HEADER_STATE.UPGRADE},b.default={ERROR:b.ERROR,TYPE:b.TYPE,FLAGS:b.FLAGS,LENIENT_FLAGS:b.LENIENT_FLAGS,METHODS:b.METHODS,STATUSES:b.STATUSES,FINISH:b.FINISH,HEADER_STATE:b.HEADER_STATE,ALPHA:b.ALPHA,NUM_MAP:b.NUM_MAP,HEX_MAP:b.HEX_MAP,NUM:b.NUM,ALPHANUM:b.ALPHANUM,MARK:b.MARK,USERINFO_CHARS:b.USERINFO_CHARS,URL_CHAR:b.URL_CHAR,HEX:b.HEX,TOKEN:b.TOKEN,HEADER_CHARS:b.HEADER_CHARS,CONNECTION_TOKEN_CHARS:b.CONNECTION_TOKEN_CHARS,QUOTED_STRING:b.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:b.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:b.MAJOR,MINOR:b.MINOR,SPECIAL_HEADERS:b.SPECIAL_HEADERS,METHODS_HTTP:b.METHODS_HTTP,METHODS_ICE:b.METHODS_ICE,METHODS_RTSP:b.METHODS_RTSP,METHOD_MAP:b.METHOD_MAP,H_METHOD_MAP:b.H_METHOD_MAP,STATUSES_HTTP:b.STATUSES_HTTP}},65630:(a,b,c)=>{"use strict";let{kClients:d}=c(49176),e=c(37417),{kAgent:f,kMockAgentSet:g,kMockAgentGet:h,kDispatches:i,kIsMockActive:j,kNetConnect:k,kGetNetConnect:l,kOptions:m,kFactory:n,kMockAgentRegisterCallHistory:o,kMockAgentIsCallHistoryEnabled:p,kMockAgentAddCallHistoryLog:q,kMockAgentMockCallHistoryInstance:r,kMockAgentAcceptsNonStandardSearchParameters:s,kMockCallHistoryAddLog:t,kIgnoreTrailingSlash:u}=c(80830),v=c(66498),w=c(86625),{matchValue:x,normalizeSearchParams:y,buildAndValidateMockOptions:z,normalizeOrigin:A}=c(70634),{InvalidArgumentError:B,UndiciError:C}=c(61448),D=c(7344),E=c(70459),{MockCallHistory:F}=c(21523);class G extends D{constructor(a={}){super(a);const b=z(a);if(this[k]=!0,this[j]=!0,this[p]=b.enableCallHistory??!1,this[s]=b.acceptNonStandardSearchParameters??!1,this[u]=b.ignoreTrailingSlash??!1,a?.agent&&"function"!=typeof a.agent.dispatch)throw new B("Argument opts.agent must implement Agent");const c=a?.agent?a.agent:new e(a);this[f]=c,this[d]=c[d],this[m]=b,this[p]&&this[o]()}get(a){let b=A(a),c=this[u]?b.replace(/\/$/,""):b,d=this[h](c);return d||(d=this[n](c),this[g](c,d)),d}dispatch(a,b){a.origin=A(a.origin);let c=this.get(a.origin);this[q](a);let e=this[s],h={...a};if(!1===h.allowH2){let a=`${h.origin}#http1-only`;if(!this[d].has(a)){let b=this[n](h.origin);b[i]=c[i],this[g](a,b)}}if(e&&h.path){let[a,b]=h.path.split("?"),c=y(b,e);h.path=`${a}?${c}`}return this[f].dispatch(h,b)}async close(){this.clearCallHistory(),await this[f].close(),this[d].clear()}deactivate(){this[j]=!1}activate(){this[j]=!0}enableNetConnect(a){if("string"==typeof a||"function"==typeof a||a instanceof RegExp)Array.isArray(this[k])?this[k].push(a):this[k]=[a];else if(void 0===a)this[k]=!0;else throw new B("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[k]=!1}enableCallHistory(){return this[p]=!0,this}disableCallHistory(){return this[p]=!1,this}getCallHistory(){return this[r]}clearCallHistory(){void 0!==this[r]&&this[r].clear()}get isMockActive(){return this[j]}[o](){void 0===this[r]&&(this[r]=new F)}[q](a){this[p]&&(this[o](),this[r][t](a))}[g](a,b){this[d].set(a,b)}[n](a){let b=Object.assign({agent:this},this[m]);return this[m]&&1===this[m].connections?new v(a,b):new w(a,b)}[h](a){let b=this[d].get(a);if(b)return b;if("string"!=typeof a){let b=this[n]("http://localhost:9999");return this[g](a,b),b}for(let[b,c]of Array.from(this[d]))if(c&&"string"!=typeof b&&x(b,a)){let b=this[n](a);return this[g](a,b),b[i]=c[i],b}}[l](){return this[k]}pendingInterceptors(){return Array.from(this[d].entries()).flatMap(([a,b])=>b[i].map(b=>({...b,origin:a}))).filter(({pending:a})=>a)}assertNoPendingInterceptors({pendingInterceptorsFormatter:a=new E}={}){let b=this.pendingInterceptors();if(0!==b.length)throw new C(1===b.length?`1 interceptor is pending:
408
+ `))}a.enqueue(new TextEncoder().encode(i.$U))}});return a.body?new Response(a.body.pipeThrough(n),{status:a.status,statusText:a.statusText,headers:{...i.pb}}):new Response(i.$U,{status:a.status,headers:{"Content-Type":"text/event-stream"}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,h.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},63070:(a,b,c)=>{var d=c(45654);c(33889),c(36105);var e=a.exports=d.asn1=d.asn1||{};function f(a,b,c){if(c>b){var d=Error("Too few bytes to parse DER.");throw d.available=a.length(),d.remaining=b,d.requested=c,d}}e.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},e.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},e.maxDepth=256,e.create=function(a,b,c,f,g){if(d.util.isArray(f)){for(var h=[],i=0;i<f.length;++i)void 0!==f[i]&&h.push(f[i]);f=h}var j={tagClass:a,type:b,constructed:c,composed:c||d.util.isArray(f),value:f};return g&&"bitStringContents"in g&&(j.bitStringContents=g.bitStringContents,j.original=e.copy(j)),j},e.copy=function(a,b){var c;if(d.util.isArray(a)){c=[];for(var f=0;f<a.length;++f)c.push(e.copy(a[f],b));return c}return"string"==typeof a?a:(c={tagClass:a.tagClass,type:a.type,constructed:a.constructed,composed:a.composed,value:e.copy(a.value,b)},b&&!b.excludeBitStringContents&&(c.bitStringContents=a.bitStringContents),c)},e.equals=function(a,b,c){if(d.util.isArray(a)){if(!d.util.isArray(b)||a.length!==b.length)return!1;for(var f=0;f<a.length;++f)if(!e.equals(a[f],b[f]))return!1;return!0}if(typeof a!=typeof b)return!1;if("string"==typeof a)return a===b;var g=a.tagClass===b.tagClass&&a.type===b.type&&a.constructed===b.constructed&&a.composed===b.composed&&e.equals(a.value,b.value);return c&&c.includeBitStringContents&&(g=g&&a.bitStringContents===b.bitStringContents),g},e.getBerValueLength=function(a){var b=a.getByte();if(128!==b)return 128&b?a.getInt((127&b)<<3):b};var g=function(a,b){var c,d=a.getByte();if(b--,128!==d){if(128&d){var e=127&d;f(a,b,e),c=a.getInt(e<<3)}else c=d;if(c<0)throw Error("Negative length: "+c);return c}};e.fromDer=function(a,b){void 0===b&&(b={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),"boolean"==typeof b&&(b={strict:b,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in b||(b.strict=!0),"parseAllBytes"in b||(b.parseAllBytes=!0),"decodeBitStrings"in b||(b.decodeBitStrings=!0),"maxDepth"in b||(b.maxDepth=e.maxDepth),"string"==typeof a&&(a=d.util.createBuffer(a));var c=a.length(),h=function a(b,c,d,h){if(d>=h.maxDepth)throw Error("ASN.1 parsing error: Max depth exceeded.");f(b,c,2);var i,j,k,l=b.getByte();c--;var m=192&l,n=31&l;i=b.length();var o=g(b,c);if(c-=i-b.length(),void 0!==o&&o>c){if(h.strict){var p=Error("Too few bytes to read ASN.1 value.");throw p.available=b.length(),p.remaining=c,p.requested=o,p}o=c}var q=(32&l)==32;if(q)if(j=[],void 0===o)for(;;){if(f(b,c,2),b.bytes(2)===String.fromCharCode(0,0)){b.getBytes(2),c-=2;break}i=b.length(),j.push(a(b,c,d+1,h)),c-=i-b.length()}else for(;o>0;)i=b.length(),j.push(a(b,o,d+1,h)),c-=i-b.length(),o-=i-b.length();if(void 0===j&&m===e.Class.UNIVERSAL&&n===e.Type.BITSTRING&&(k=b.bytes(o)),void 0===j&&h.decodeBitStrings&&m===e.Class.UNIVERSAL&&n===e.Type.BITSTRING&&o>1){var r=b.read,s=c,t=0;if(n===e.Type.BITSTRING&&(f(b,c,1),t=b.getByte(),c--),0===t)try{i=b.length();var u=a(b,c,d+1,{strict:!0,decodeBitStrings:!0}),v=i-b.length();c-=v,n==e.Type.BITSTRING&&v++;var w=u.tagClass;v===o&&(w===e.Class.UNIVERSAL||w===e.Class.CONTEXT_SPECIFIC)&&(j=[u])}catch(a){}void 0===j&&(b.read=r,c=s)}if(void 0===j){if(void 0===o){if(h.strict)throw Error("Non-constructed ASN.1 object of indefinite length.");o=c}if(n===e.Type.BMPSTRING)for(j="";o>0;o-=2)f(b,c,2),j+=String.fromCharCode(b.getInt16()),c-=2;else j=b.getBytes(o),c-=o}var x=void 0===k?null:{bitStringContents:k};return e.create(m,n,q,j,x)}(a,a.length(),0,b);if(b.parseAllBytes&&0!==a.length()){var i=Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=c,i.remaining=a.length(),i}return h},e.toDer=function(a){var b=d.util.createBuffer(),c=a.tagClass|a.type,f=d.util.createBuffer(),g=!1;if("bitStringContents"in a&&(g=!0,a.original&&(g=e.equals(a,a.original))),g)f.putBytes(a.bitStringContents);else if(a.composed){a.constructed?c|=32:f.putByte(0);for(var h=0;h<a.value.length;++h)void 0!==a.value[h]&&f.putBuffer(e.toDer(a.value[h]))}else if(a.type===e.Type.BMPSTRING)for(var h=0;h<a.value.length;++h)f.putInt16(a.value.charCodeAt(h));else a.type===e.Type.INTEGER&&a.value.length>1&&(0===a.value.charCodeAt(0)&&(128&a.value.charCodeAt(1))==0||255===a.value.charCodeAt(0)&&(128&a.value.charCodeAt(1))==128)?f.putBytes(a.value.substr(1)):f.putBytes(a.value);if(b.putByte(c),127>=f.length())b.putByte(127&f.length());else{var i=f.length(),j="";do j+=String.fromCharCode(255&i),i>>>=8;while(i>0);b.putByte(128|j.length);for(var h=j.length-1;h>=0;--h)b.putByte(j.charCodeAt(h))}return b.putBuffer(f),b},e.oidToDer=function(a){var b,c,e,f,g=a.split("."),h=d.util.createBuffer();h.putByte(40*parseInt(g[0],10)+parseInt(g[1],10));for(var i=2;i<g.length;++i){if(b=!0,c=[],(e=parseInt(g[i],10))>0xffffffff)throw Error("OID value too large; max is 32-bits.");do f=127&e,e>>>=7,b||(f|=128),c.push(f),b=!1;while(e>0);for(var j=c.length-1;j>=0;--j)h.putByte(c[j])}return h},e.derToOid=function(a){"string"==typeof a&&(a=d.util.createBuffer(a));var b,c=a.getByte();b=Math.floor(c/40)+"."+c%40;for(var e=0;a.length()>0;){if(e>0x3fffffffffff)throw Error("OID value too large; max is 53-bits.");c=a.getByte(),e*=128,128&c?e+=127&c:(b+="."+(e+c),e=0)}return b},e.utcTimeToDate=function(a){var b=new Date,c=parseInt(a.substr(0,2),10);c=c>=50?1900+c:2e3+c;var d=parseInt(a.substr(2,2),10)-1,e=parseInt(a.substr(4,2),10),f=parseInt(a.substr(6,2),10),g=parseInt(a.substr(8,2),10),h=0;if(a.length>11){var i=a.charAt(10),j=10;"+"!==i&&"-"!==i&&(h=parseInt(a.substr(10,2),10),j+=2)}if(b.setUTCFullYear(c,d,e),b.setUTCHours(f,g,h,0),j&&("+"===(i=a.charAt(j))||"-"===i)){var k=60*parseInt(a.substr(j+1,2),10)+parseInt(a.substr(j+4,2),10);k*=6e4,"+"===i?b.setTime(b-k):b.setTime(+b+k)}return b},e.generalizedTimeToDate=function(a){var b=new Date,c=parseInt(a.substr(0,4),10),d=parseInt(a.substr(4,2),10)-1,e=parseInt(a.substr(6,2),10),f=parseInt(a.substr(8,2),10),g=parseInt(a.substr(10,2),10),h=parseInt(a.substr(12,2),10),i=0,j=0,k=!1;"Z"===a.charAt(a.length-1)&&(k=!0);var l=a.length-5,m=a.charAt(l);return("+"===m||"-"===m)&&(j=(60*parseInt(a.substr(l+1,2),10)+parseInt(a.substr(l+4,2),10))*6e4,"+"===m&&(j*=-1),k=!0),"."===a.charAt(14)&&(i=1e3*parseFloat(a.substr(14),10)),k?(b.setUTCFullYear(c,d,e),b.setUTCHours(f,g,h,i),b.setTime(+b+j)):(b.setFullYear(c,d,e),b.setHours(f,g,h,i)),b},e.dateToUtcTime=function(a){if("string"==typeof a)return a;var b="",c=[];c.push((""+a.getUTCFullYear()).substr(2)),c.push(""+(a.getUTCMonth()+1)),c.push(""+a.getUTCDate()),c.push(""+a.getUTCHours()),c.push(""+a.getUTCMinutes()),c.push(""+a.getUTCSeconds());for(var d=0;d<c.length;++d)c[d].length<2&&(b+="0"),b+=c[d];return b+"Z"},e.dateToGeneralizedTime=function(a){if("string"==typeof a)return a;var b="",c=[];c.push(""+a.getUTCFullYear()),c.push(""+(a.getUTCMonth()+1)),c.push(""+a.getUTCDate()),c.push(""+a.getUTCHours()),c.push(""+a.getUTCMinutes()),c.push(""+a.getUTCSeconds());for(var d=0;d<c.length;++d)c[d].length<2&&(b+="0"),b+=c[d];return b+"Z"},e.integerToDer=function(a){var b=d.util.createBuffer();if(a>=-128&&a<128)return b.putSignedInt(a,8);if(a>=-32768&&a<32768)return b.putSignedInt(a,16);if(a>=-8388608&&a<8388608)return b.putSignedInt(a,24);if(a>=-0x80000000&&a<0x80000000)return b.putSignedInt(a,32);var c=Error("Integer too large; max is 32-bits.");throw c.integer=a,c},e.derToInteger=function(a){"string"==typeof a&&(a=d.util.createBuffer(a));var b=8*a.length();if(b>32)throw Error("Integer too large; max is 32-bits.");return a.getSignedInt(b)},e.validate=function(a,b,c,f){var g=!1;if((a.tagClass===b.tagClass||void 0===b.tagClass)&&(a.type===b.type||void 0===b.type))if(a.constructed===b.constructed||void 0===b.constructed){if(g=!0,b.value&&d.util.isArray(b.value))for(var h=0,i=0;g&&i<b.value.length;++i){var j=b.value[i];g=!!j.optional;var k=a.value[h];if(!k){!j.optional&&(g=!1,f&&f.push("["+b.name+'] Missing required element. Expected tag class "'+j.tagClass+'", type "'+j.type+'"'));continue}if(void 0!==j.tagClass&&void 0!==j.type&&(k.tagClass!==j.tagClass||k.type!==j.type))if(j.optional){g=!0;continue}else{g=!1,f&&f.push("["+b.name+"] Tag mismatch. Expected ("+j.tagClass+","+j.type+"), got ("+k.tagClass+","+k.type+")");break}if(e.validate(k,j,c,f))++h,g=!0;else if(j.optional)g=!0;else{g=!1;break}}if(g&&c&&(b.capture&&(c[b.capture]=a.value),b.captureAsn1&&(c[b.captureAsn1]=a),b.captureBitStringContents&&"bitStringContents"in a&&(c[b.captureBitStringContents]=a.bitStringContents),b.captureBitStringValue&&"bitStringContents"in a))if(a.bitStringContents.length<2)c[b.captureBitStringValue]="";else{if(0!==a.bitStringContents.charCodeAt(0))throw Error("captureBitStringValue only supported for zero unused bits");c[b.captureBitStringValue]=a.bitStringContents.slice(1)}}else f&&f.push("["+b.name+'] Expected constructed "'+b.constructed+'", got "'+a.constructed+'"');else f&&(a.tagClass!==b.tagClass&&f.push("["+b.name+'] Expected tag class "'+b.tagClass+'", got "'+a.tagClass+'"'),a.type!==b.type&&f.push("["+b.name+'] Expected type "'+b.type+'", got "'+a.type+'"'));return g};var h=/[^\\u0000-\\u00ff]/;e.prettyPrint=function(a,b,c){var f="";c=c||2,(b=b||0)>0&&(f+="\n");for(var g="",i=0;i<b*c;++i)g+=" ";switch(f+=g+"Tag: ",a.tagClass){case e.Class.UNIVERSAL:f+="Universal:";break;case e.Class.APPLICATION:f+="Application:";break;case e.Class.CONTEXT_SPECIFIC:f+="Context-Specific:";break;case e.Class.PRIVATE:f+="Private:"}if(a.tagClass===e.Class.UNIVERSAL)switch(f+=a.type,a.type){case e.Type.NONE:f+=" (None)";break;case e.Type.BOOLEAN:f+=" (Boolean)";break;case e.Type.INTEGER:f+=" (Integer)";break;case e.Type.BITSTRING:f+=" (Bit string)";break;case e.Type.OCTETSTRING:f+=" (Octet string)";break;case e.Type.NULL:f+=" (Null)";break;case e.Type.OID:f+=" (Object Identifier)";break;case e.Type.ODESC:f+=" (Object Descriptor)";break;case e.Type.EXTERNAL:f+=" (External or Instance of)";break;case e.Type.REAL:f+=" (Real)";break;case e.Type.ENUMERATED:f+=" (Enumerated)";break;case e.Type.EMBEDDED:f+=" (Embedded PDV)";break;case e.Type.UTF8:f+=" (UTF8)";break;case e.Type.ROID:f+=" (Relative Object Identifier)";break;case e.Type.SEQUENCE:f+=" (Sequence)";break;case e.Type.SET:f+=" (Set)";break;case e.Type.PRINTABLESTRING:f+=" (Printable String)";break;case e.Type.IA5String:f+=" (IA5String (ASCII))";break;case e.Type.UTCTIME:f+=" (UTC time)";break;case e.Type.GENERALIZEDTIME:f+=" (Generalized time)";break;case e.Type.BMPSTRING:f+=" (BMP String)"}else f+=a.type;if(f+="\n",f+=g+"Constructed: "+a.constructed+"\n",a.composed){for(var j=0,k="",i=0;i<a.value.length;++i)void 0!==a.value[i]&&(j+=1,k+=e.prettyPrint(a.value[i],b+1,c),i+1<a.value.length&&(k+=","));f+=g+"Sub values: "+j+k}else{if(f+=g+"Value: ",a.type===e.Type.OID){var l=e.derToOid(a.value);f+=l,d.pki&&d.pki.oids&&l in d.pki.oids&&(f+=" ("+d.pki.oids[l]+") ")}if(a.type===e.Type.INTEGER)try{f+=e.derToInteger(a.value)}catch(b){f+="0x"+d.util.bytesToHex(a.value)}else if(a.type===e.Type.BITSTRING){if(a.value.length>1?f+="0x"+d.util.bytesToHex(a.value.slice(1)):f+="(none)",a.value.length>0){var m=a.value.charCodeAt(0);1==m?f+=" (1 unused bit shown)":m>1&&(f+=" ("+m+" unused bits shown)")}}else if(a.type===e.Type.OCTETSTRING)h.test(a.value)||(f+="("+a.value+") "),f+="0x"+d.util.bytesToHex(a.value);else if(a.type===e.Type.UTF8)try{f+=d.util.decodeUtf8(a.value)}catch(b){if("URI malformed"===b.message)f+="0x"+d.util.bytesToHex(a.value)+" (malformed UTF8)";else throw b}else a.type===e.Type.PRINTABLESTRING||a.type===e.Type.IA5String?f+=a.value:h.test(a.value)?f+="0x"+d.util.bytesToHex(a.value):0===a.value.length?f+="[null]":f+=a.value}return f}},63971:(a,b,c)=>{"use strict";function d(a){if("number"==typeof a)return Number.isFinite(a)?a:null;if("string"==typeof a&&a.trim()){let b=Number(a);return Number.isFinite(b)?b:null}return null}function e(a,b=Date.now()){if(!a||function(a,b=Date.now()){if(a?.blocked===!0)return"Provider reports limit reached";if(a?.stale===!0)return"Refresh unavailable";let c=a?.observedAt?Date.parse(a.observedAt):NaN;if(a?.observedAt&&(!Number.isFinite(c)||c>b+6e4||b-c>=6e5))return"Observation expired";let d=a?.resetAt?Date.parse(a.resetAt):NaN;return Number.isFinite(d)&&d<=b?!1===a.recurring?"Expired":"Reset passed; refresh needed":null}(a,b)||"balance"===a.kind)return null;if(!0===a.unlimited)return 100;let c=d(a.remainingPercentage);if(null!==c)return Math.max(0,Math.min(100,c));let f=d(a.total);if(null===f||f<=0)return null;let g=d(a.used),h=d(a.remaining);return null!==g&&g>=0?Math.max(0,Math.min(100,(f-g)/f*100)):null!==h&&h>=0?Math.max(0,Math.min(100,h/f*100)):null}c.d(b,{Gv:()=>d,_F:()=>e})},63993:(a,b,c)=>{"use strict";function d(a){return null==a?"":String(a).trim()}async function e(a={}){try{let b=function(a={}){let b=a?.connectionProxyEnabled===!0,c=d(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d(a?.connectionNoProxy)}}(a);if(b.connectionProxyEnabled&&b.connectionProxyUrl)return{source:"legacy",proxyPoolId:null,proxyPool:null,...b,strictProxy:!1,vercelRelayUrl:""};return{source:"none",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:b.connectionNoProxy||"",strictProxy:!1,vercelRelayUrl:""}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1,vercelRelayUrl:""}}}c.d(b,{B:()=>e})},63995:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>m});var d=c(4313);let e="⚠️ 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(d.A.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","systemoneConfig","credentialFallback","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.A.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.aliases?.length?{aliases:a.aliases}:{},...a.hidden?{hidden:!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.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.apiKeyOptionalWith?{apiKeyOptionalWith:a.apiKeyOptionalWith}:{},...a.credentialForm?{credentialForm:a.credentialForm}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m={...h,...i,...j,...k,...l};Object.values(m).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(m).reduce((a,b)=>(a[b.id]=b.alias,a),{}),d.A.filter(a=>a.features?.usage).map(a=>a.id),d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},64156:(a,b,c)=>{"use strict";let d,{URL:e}=c(73136),f=c(5318),{ConnectTimeoutError:g,InvalidArgumentError:h}=c(61448),{Socks5Client:i,STATES:j}=c(40603),{kBusy:k,kConnected:l,kDispatch:m,kClose:n,kDestroy:o}=c(49176),p=c(35689),q=c(55285),{setupConnectTimeout:r}=c(84285),{debuglog:s}=c(57975),t=s("undici:socks5-proxy"),u=Symbol("proxy url"),v=Symbol("proxy headers"),w=Symbol("proxy auth"),x=Symbol("proxy protocol"),y=Symbol("pools"),z=Symbol("connector"),A=Symbol("connect timeout"),B=Symbol("request tls settings"),C=Symbol("request tls timeout");function D(a,b,c){return new g(`Connect Timeout Error (attempted address: ${a}:${b}, timeout: ${c}ms)`)}let E=!1;class F extends f{constructor(a,b={}){if(super(b),E||(process.emitWarning("SOCKS5 proxy support is experimental and subject to change","ExperimentalWarning"),E=!0),!a)throw new h("Proxy URL is mandatory");const c="string"==typeof a?new e(a):a;if("socks5:"!==c.protocol&&"socks:"!==c.protocol)throw new h("Proxy URL must use socks5:// or socks:// protocol");this[u]=c,this[v]=b.headers||{},this[x]=b.proxyTls?"https:":"http:";const d=b.connectTimeout??5e3;if(!Number.isFinite(d)||d<0)throw new h("invalid connectTimeout");this[A]=d;const{timeout:f,...g}=b.requestTls||{},i=f??d;if(!Number.isFinite(i)||i<0)throw new h("invalid requestTls.timeout");this[B]=g,this[C]=i,this[w]={username:b.username||(c.username?decodeURIComponent(c.username):null),password:b.password||(c.password?decodeURIComponent(c.password):null)};const j=b.proxyTls?.timeout??d;if(!Number.isFinite(j)||j<0)throw new h("invalid proxyTls.timeout");this[z]=b.connect||q({...b.proxyTls,timeout:j,servername:b.proxyTls?.servername||c.hostname}),this[y]=new Map}async createSocks5Connection(a,b){let c=this[u].hostname,d=parseInt(this[u].port)||1080;t("creating SOCKS5 connection to",c,d);let e=Promise.withResolvers();this[z]({hostname:c,host:c,port:d,protocol:this[x]},(a,b)=>{a?e.reject(a):e.resolve(b)});let f=await e.promise,g=new i(f,this[w]);g.on("error",a=>{t("SOCKS5 error:",a),f.destroy()}),await g.handshake();let h=Promise.withResolvers(),k=0===this[A]?null:setTimeout(()=>{l(),g.destroy(),h.reject(D(c,d,this[A]))},this[A]),l=()=>{clearTimeout(k),g.removeListener("authenticated",m),g.removeListener("error",n)},m=()=>{l(),h.resolve()},n=a=>{l(),h.reject(a)};g.state===j.AUTHENTICATED?(clearTimeout(k),h.resolve()):(g.once("authenticated",m),g.once("error",n)),await h.promise,await g.connect(a,b);let o=Promise.withResolvers(),p=0===this[A]?null:setTimeout(()=>{q(),g.destroy(),o.reject(D(a,b,this[A]))},this[A]),q=()=>{clearTimeout(p),g.removeListener("connected",r),g.removeListener("error",s)},r=c=>{t("SOCKS5 tunnel established to",a,b,"via",c),q(),o.resolve()},s=a=>{q(),o.reject(a)};return g.once("connected",r),g.once("error",s),await o.promise,f}[m](a,b){let{origin:f}=a;t("dispatching request to",f,"via SOCKS5");try{let g=String(f),h=this[y].get(g);if(!h||h.destroyed||h.closed){h=new p(f,{pipelining:a.pipelining,connections:a.connections,connect:async(a,b)=>{try{let a=new e(f),g=a.hostname,h=parseInt(a.port)||("https:"===a.protocol?443:80);t("establishing SOCKS5 connection to",g,h);let i=await this.createSocks5Connection(g,h),j=i;if("https:"===a.protocol){d||(d=c(41692)),t("upgrading to TLS"),j=d.connect({...this[B],socket:i,servername:this[B]?.servername||g});let a=Promise.withResolvers(),b=()=>{queueMicrotask(k),j.removeListener("secureConnect",e),j.removeListener("error",f)},e=()=>{b(),a.resolve()},f=c=>{b(),a.reject(c)},k=r(new WeakRef(j),{timeout:this[C],hostname:g,port:h});j.once("secureConnect",e),j.once("error",f),await a.promise}b(null,j)}catch(a){t("SOCKS5 connection error:",a),b(a)}}}),this[y].set(g,h);let b=()=>{this[y].get(g)!==h||h[l]>0||h[k]||(this[y].delete(g),h.destroyed||h.close())};h.on("disconnect",b),h.on("connectionError",b)}return h[m](a,b)}catch(a){if(t("dispatch error:",a),"function"==typeof b.onResponseError)return b.onResponseError(null,a),!1;if("function"==typeof b.onError)return b.onError(a),!1;throw a}}async [n](){let a=[];for(let b of this[y].values())a.push(b.close());this[y].clear(),await Promise.all(a)}async [o](a){let b=[];for(let c of this[y].values())b.push(c.destroy(a));this[y].clear(),await Promise.all(b)}}a.exports=F},64371:(a,b,c)=>{"use strict";let d,e=c(34589),{runtimeFeatures:f}=c(56758),g=new Map([["sha256",0],["sha384",1],["sha512",2]]);if(f.has("crypto")){let a=(d=c(77598)).getHashes();for(let b of(0===a.length&&g.clear(),g.keys()))!1===a.includes(b)&&g.delete(b)}else g.clear();let h=Map.prototype.get.bind(g),i=Map.prototype.has.bind(g),j=!1===f.has("crypto")||0===g.size?()=>!0:(a,b)=>{let c=l(b);if(0===c.length)return!0;for(let b of k(c)){let c=b.alg,d=b.val;if(n(m(c,a),d))return!0}return!1};function k(a){let b=[],c=null;for(let d of a){if(e(i(d.alg),"Invalid SRI hash algorithm token"),0===b.length){b.push(d),c=d;continue}let a=h(c.alg),f=h(d.alg);f<a||(f>a?(c=d,b[0]=d,b.length=1):b.push(d))}return b}function l(a){let b=[];for(let c of a.split(" ")){let a=c.split("?",1)[0],d="",e=[a.slice(0,6),a.slice(7)],f=e[0];if(!i(f))continue;e[1]&&(d=e[1]);let g={alg:f,val:d};b.push(g)}return b}let m=(a,b)=>d.hash(a,b,"base64");function n(a,b){let c=a.length;0!==c&&"="===a[c-1]&&(c-=1),0!==c&&"="===a[c-1]&&(c-=1);let d=b.length;if(0!==d&&"="===b[d-1]&&(d-=1),0!==d&&"="===b[d-1]&&(d-=1),c!==d)return!1;for(let d=0;d<c;++d)if(a[d]!==b[d]&&("+"!==a[d]||"-"!==b[d])&&("/"!==a[d]||"_"!==b[d]))return!1;return!0}a.exports={applyAlgorithmToBytes:m,bytesMatch:j,caseSensitiveMatch:n,isValidSRIHashAlgorithm:i,getStrongestMetadata:k,parseMetadata:l}},64704:a=>{"use strict";let b,c=0,d=Symbol("kFastTimer"),e=[];function f(){c+=499;let a=0,b=e.length;for(;a<b;){let d=e[a];0===d._state?(d._idleStart=c-499,d._state=1):1===d._state&&c>=d._idleStart+d._idleTimeout&&(d._state=-1,d._idleStart=-1,d._onTimeout(d._timerArg)),-1===d._state?(d._state=-2,0!=--b&&(e[a]=e[b])):++a}e.length=b,0!==e.length&&g()}function g(){b?.refresh?b.refresh():(clearTimeout(b),b=setTimeout(f,499),b?.unref())}class h{[d]=!0;_state=-2;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(a,b,c){this._onTimeout=a,this._idleTimeout=b,this._timerArg=c,this.refresh()}refresh(){-2===this._state&&e.push(this),b&&1!==e.length||g(),this._state=0}clear(){this._state=-1,this._idleStart=-1}}a.exports={setTimeout:(a,b,c)=>b<=1e3?setTimeout(a,b,c):new h(a,b,c),clearTimeout(a){a[d]?a.clear():clearTimeout(a)},setFastTimeout:(a,b,c)=>new h(a,b,c),clearFastTimeout(a){a.clear()},now:()=>c,tick(a=0){c+=a-1e3+1,f(),f()},reset(){c=0,e.length=0,clearTimeout(b),b=null},kFastTimer:d}},64821:(a,b,c)=>{"use strict";let{Writable:d}=c(57075),e=c(34589),{parserStates:f,opcodes:g,states:h,emptyBuffer:i,sentCloseFrameState:j}=c(62026),{isValidStatusCode:k,isValidOpcode:l,websocketMessageReceived:m,utf8Decode:n,isControlFrame:o,isTextBinaryFrame:p,isContinuationFrame:q}=c(94050),{failWebsocketConnection:r}=c(4654),{WebsocketFrameSend:s}=c(45221),{PerMessageDeflate:t}=c(97210),{MessageSizeExceededError:u}=c(61448);class v extends d{#bI=[];#bJ=0;#bK=0;#bL=!1;#a=f.INFO;#bM={};#bN=[];#bq;#aQ;#bO;#bP;constructor(a,b,c={}){super(),this.#aQ=a,this.#bq=null==b?new Map:b,this.#bO=c.maxFragments??0,this.#bP=c.maxPayloadSize??0,this.#bq.has("permessage-deflate")&&this.#bq.set("permessage-deflate",new t(b,c))}_write(a,b,c){this.#bI.push(a),this.#bK+=a.length,this.#bL=!0,this.run(c)}#bQ(){return!(this.#bP>0)||!!o(this.#bM.opcode)||!(this.#bM.payloadLength+this.#bJ>this.#bP)||(r(this.#aQ,1009,"Payload size exceeds maximum allowed size"),!1)}run(a){for(;this.#bL;)if(this.#a===f.INFO){if(this.#bK<2)return a();let b=this.consume(2),c=(128&b[0])!=0,d=15&b[0],e=(128&b[1])==128,h=!c&&d!==g.CONTINUATION,i=127&b[1],j=64&b[0],k=32&b[0],m=16&b[0];if(!l(d))return r(this.#aQ,1002,"Invalid opcode received"),a();if(e)return r(this.#aQ,1002,"Frame cannot be masked"),a();if(0!==j&&!this.#bq.has("permessage-deflate"))return void r(this.#aQ,1002,"Expected RSV1 to be clear.");if(0!==k||0!==m)return void r(this.#aQ,1002,"RSV1, RSV2, RSV3 must be clear");if(h&&!p(d))return void r(this.#aQ,1002,"Invalid frame type was fragmented.");if(p(d)&&this.#bN.length>0)return void r(this.#aQ,1002,"Expected continuation frame");if(this.#bM.fragmented&&h)return void r(this.#aQ,1002,"Fragmented frame exceeded 125 bytes.");if((i>125||h)&&o(d))return void r(this.#aQ,1002,"Control frame either too large or fragmented");if(q(d)&&0===this.#bN.length&&!this.#bM.compressed)return void r(this.#aQ,1002,"Unexpected continuation frame");if(i<=125){if(this.#bM.payloadLength=i,this.#a=f.READ_DATA,!this.#bQ())return}else 126===i?this.#a=f.PAYLOADLENGTH_16:127===i&&(this.#a=f.PAYLOADLENGTH_64);p(d)&&(this.#bM.binaryType=d,this.#bM.compressed=0!==j),this.#bM.opcode=d,this.#bM.masked=e,this.#bM.fin=c,this.#bM.fragmented=h}else if(this.#a===f.PAYLOADLENGTH_16){if(this.#bK<2)return a();let b=this.consume(2);if(this.#bM.payloadLength=b.readUInt16BE(0),this.#a=f.READ_DATA,!this.#bQ())return}else if(this.#a===f.PAYLOADLENGTH_64){if(this.#bK<8)return a();let b=this.consume(8),c=b.readUInt32BE(0),d=b.readUInt32BE(4);if(0!==c||d>0x80000000-1)return void r(this.#aQ,1009,"Received payload length > 2^31 bytes.");if(this.#bM.payloadLength=d,this.#a=f.READ_DATA,!this.#bQ())return}else if(this.#a===f.READ_DATA){if(this.#bK<this.#bM.payloadLength)return a();let b=this.consume(this.#bM.payloadLength);if(o(this.#bM.opcode))this.#bL=this.parseControlFrame(b),this.#a=f.INFO;else if(this.#bM.compressed){this.#bq.get("permessage-deflate").decompress(b,this.#bM.fin,(b,c)=>{if(b){let a=b instanceof u?1009:1007;r(this.#aQ,a,b.message);return}if(this.writeFragments(c)){if(this.#bP>0&&this.#bJ>this.#bP)return void r(this.#aQ,1009,new u().message);if(!this.#bM.fin){this.#a=f.INFO,this.#bL=!0,this.run(a);return}m(this.#aQ,this.#bM.binaryType,this.consumeFragments()),this.#bL=!0,this.#a=f.INFO,this.run(a)}},this.#bJ),this.#bL=!1;break}else{if(!this.writeFragments(b))return;!this.#bM.fragmented&&this.#bM.fin&&m(this.#aQ,this.#bM.binaryType,this.consumeFragments()),this.#a=f.INFO}}}consume(a){if(a>this.#bK)throw Error("Called consume() before buffers satiated.");if(0===a)return i;this.#bK-=a;let b=this.#bI[0];if(b.length>a)return this.#bI[0]=b.subarray(a,b.length),b.subarray(0,a);{if(b.length===a)return this.#bI.shift();let c=0,d=Buffer.allocUnsafeSlow(a);for(;c!==a;){let b=this.#bI[0],e=b.length;if(e+c===a){d.set(this.#bI.shift(),c);break}if(e+c>a){d.set(b.subarray(0,a-c),c),this.#bI[0]=b.subarray(a-c);break}d.set(this.#bI.shift(),c),c+=e}return d}}writeFragments(a){return this.#bO>0&&this.#bN.length===this.#bO?(r(this.#aQ,1008,"Too many message fragments"),!1):(this.#bJ+=a.length,this.#bN.push(a),!0)}consumeFragments(){let a=this.#bN;if(this.#bM.compressed=!1,1===a.length)return this.#bJ=0,a.shift();let b=0,c=Buffer.allocUnsafeSlow(this.#bJ);for(let d=0;d<a.length;++d){let e=a[d];c.set(e,b),b+=e.length}return this.#bN=[],this.#bJ=0,c}parseCloseBody(a){let b;if(e(1!==a.length),a.length>=2&&(b=a.readUInt16BE(0)),void 0!==b&&!k(b))return{code:1002,reason:"Invalid status code",error:!0};let c=a.subarray(2);239===c[0]&&187===c[1]&&191===c[2]&&(c=c.subarray(3));try{c=n(c)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:b,reason:c,error:!1}}parseControlFrame(a){let{opcode:b,payloadLength:c}=this.#bM;if(b===g.CLOSE){if(1===c)return r(this.#aQ,1002,"Received close frame with a 1-byte body."),!1;if(this.#bM.closeInfo=this.parseCloseBody(a),this.#bM.closeInfo.error){let{code:a,reason:b}=this.#bM.closeInfo;return r(this.#aQ,a,b),!1}if(!this.#aQ.closeState.has(j.SENT)&&!this.#aQ.closeState.has(j.RECEIVED)){let a=i;this.#bM.closeInfo.code&&(a=Buffer.allocUnsafe(2)).writeUInt16BE(this.#bM.closeInfo.code,0);let b=new s(a);this.#aQ.socket.write(b.createFrame(g.CLOSE)),this.#aQ.closeState.add(j.SENT)}return this.#aQ.readyState=h.CLOSING,this.#aQ.closeState.add(j.RECEIVED),!1}if(b===g.PING){if(!this.#aQ.closeState.has(j.RECEIVED)){let b=new s(a);this.#aQ.socket.write(b.createFrame(g.PONG)),this.#aQ.onPing(a)}}else b===g.PONG&&this.#aQ.onPong(a);return!0}get closingInfo(){return this.#bM.closeInfo}}a.exports={ByteParser:v}},65179:(a,b,c)=>{"use strict";var d=c(17438),e=c(88799);(0,d.qd)({loadProviderQuotaState:e.l,saveProviderQuotaState:e._})},65369:(a,b,c)=>{"use strict";c.d(b,{c:()=>t});var d=c(55511),e=c(22256),f=c(38421),g=c(10793),h=c(82689),i=c(49623),j=c(50969),k=c(22435),l=c(69226),m=c(96915);let n=[/high\s+traffic/i,/agent\s+(execution\s+)?terminated\s+due\s+to\s+error/i,/capacity/i,/temporarily\s+unavailable/i,/timeout/i,/stream\s+(ended|closed|terminated|interrupted)/i,/empty\s+response/i],o=new Set([h.gx.SERVER_ERROR,h.gx.BAD_GATEWAY,h.gx.SERVICE_UNAVAILABLE,h.gx.GATEWAY_TIMEOUT]),p=["stream","output_config","thinking","reasoning_effort","reasoning","enable_thinking","thinking_budget","thinkingConfig"],q=a=>{for(let b of p)delete a[b]},r=[/image/i,/imagen/i,/image-generation/i];function s(a){return!!a&&r.some(b=>b.test(a))}class t extends e.Hv{constructor(){super("antigravity",f.xq.antigravity)}parseError(a,b){if((429===a.status||409===a.status)&&b)try{let c=JSON.parse(b),d=c?.error,e=null;for(let a of Array.isArray(d?.details)?d.details:[]){if(a?.metadata?.quotaResetTimeStamp){let b=new Date(a.metadata.quotaResetTimeStamp).getTime();if(!isNaN(b)&&b>Date.now()){e=b;break}}if("string"==typeof a?.retryDelay){let b=parseFloat(a.retryDelay);if(!isNaN(b)&&b>0){let a=Date.now()+Math.round(1e3*b);if(a>Date.now()){e=a;break}}}}if(e)return{status:a.status,message:d?.message||b,resetsAtMs:e}}catch{}return super.parseError(a,b)}buildUrl(a,b,c=0){let d=this.getBaseUrls(),e=d[c]||d[0],f=s(a);return`${e}/v1internal:${b&&!f?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0,c=null){let d=c||this._lastSessionId;return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,...d&&{"X-Machine-Session-Id":d},Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,e){let f=e?.projectId||this.generateProjectId();if(s(a)){let c=function(a){let b={aspectRatio:"1:1"},c=a.match(/(\d+)x(\d+)$/);if(c){let a=parseInt(c[1]),d=parseInt(c[2]);if(a<=16&&d<=16)b.aspectRatio=`${a}:${d}`;else{let c=(a,b)=>b?c(b,a%b):a,e=c(a,d);b.aspectRatio=`${a/e}:${d/e}`}}return b}(a),g=a.replace(/-(\d+)x(\d+)$/,""),h=[];for(let a of b.request?.contents||b.contents||[]){let b=(a.parts||[]).flatMap(a=>void 0!==a.text?[{text:a.text}]:a.inlineData?.data?[{inlineData:a.inlineData}]:[]);b.length>0&&h.push({role:a.role||"user",parts:b})}let j=(0,i.oV)({headers:e?.rawHeaders,body:b,connectionId:e?.email||e?.connectionId,scope:"antigravity"});return this._lastSessionId=j,{project:f,model:g,userAgent:"antigravity",requestType:"image_gen",requestId:`agent-${d.randomUUID()}`,request:{contents:h,generationConfig:{temperature:1,topP:.95,topK:40,maxOutputTokens:8192,imageConfig:c},sessionId:j}}}let h=b.request?.sessionId||(0,i.oV)({headers:e?.rawHeaders,body:b,connectionId:e?.email||e?.connectionId,scope:"antigravity"}),j=(0,i.E9)(h)||h,n=b.request?.contents?.map(c=>{let d=c.role;c.parts?.some(a=>a.functionResponse)&&(d="user");let f=c.parts?.filter(a=>(!a.thought||!!a.functionCall)&&(!a.thoughtSignature||!!a.functionCall||!!a.text)),g=!1,h=f?.map(c=>{if(!c.functionCall)return c;let d=c.functionCall.id,f=d?(0,m.el)(d,e?._thoughtSignatureSessionId||e?._clientSessionId||j,b.model||a):null,h=c.thoughtSignature||f||(g?void 0:l.bf);return(g=!0,h)?{...c,thoughtSignature:h}:c}),i=f?.length!==c.parts?.length||(h?.some((a,b)=>a!==c.parts[b])??!1);return d!==c.role||i?{...c,role:d,parts:h||f}:c}),o=n&&(0,k.$J)(n,a),p=b.request?.tools;if(p&&p.length>0){let a=new Set,b=[];for(let c of p)for(let d of c.functionDeclarations||[]){let c=function(a){if(!a)return"_unknown";let b=a.replace(/[^a-zA-Z0-9_.:\-]/g,"_");return/^[a-zA-Z_]/.test(b)||(b="_"+b),b.substring(0,64)}(d.name);a.has(c)||(a.add(c),b.push({...d,name:c,parameters:d.parameters?(0,k.Yr)(structuredClone(d.parameters)):{type:"object",properties:{reason:{type:"string",description:"Brief explanation"}},required:["reason"]}}))}p=b.length>0?[{functionDeclarations:b}]:[]}let{tools:r,toolConfig:t,...u}=b.request||{};q(u),Array.isArray(u.systemInstruction?.parts)&&(u.systemInstruction={...u.systemInstruction,parts:u.systemInstruction.parts.map(a=>{if("string"!=typeof a?.text)return a;let b=a.text;for(let{from:a,to:c}of g.iO)b=b.replaceAll(a,c);return b===a.text?a:{...a,text:b}})});let v={...u.generationConfig||{}};v.maxOutputTokens>16384&&(v.maxOutputTokens=16384);let w={...u,generationConfig:v,...o&&{contents:o},...p&&{tools:p},sessionId:j,safetySettings:void 0,...p?.length>0&&{toolConfig:{functionCallingConfig:{mode:"VALIDATED"}}}};return q(b),this._lastSessionId=w.sessionId,delete b.requestType,{...b,project:f,model:b.model||a,userAgent:"antigravity",requestId:`agent-${d.randomUUID()}`,request:w}}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{let d=await (0,j.Fm)(g.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret}),identity:this.config?.identity,provider:this.provider,format:this.config?.format},c);if(!d.ok)return null;let e=await d.json();return b?.info?.("TOKEN","Antigravity refreshed"),{accessToken:e.access_token,refreshToken:e.refresh_token||a.refreshToken,expiresIn:e.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Antigravity refresh error: ${a.message}`),null}}generateProjectId(){let a=["useful","bright","swift","calm","bold"][Math.floor(5*Math.random())],b=["fuze","wave","spark","flow","core"][Math.floor(5*Math.random())];return`${a}-${b}-${d.randomUUID().slice(0,5)}`}generateSessionId(){return d.randomUUID()+Date.now().toString()}parseRetryHeaders(a){if(!a?.get)return null;let b=a.get("retry-after");if(b){let a=parseInt(b,10);if(!isNaN(a)&&a>0)return 1e3*a;let c=new Date(b);if(!isNaN(c.getTime())){let a=c.getTime()-Date.now();return a>0?a:null}}let c=a.get("x-ratelimit-reset-after");if(c){let a=parseInt(c,10);if(!isNaN(a)&&a>0)return 1e3*a}let d=a.get("x-ratelimit-reset");if(d){let a=1e3*parseInt(d,10)-Date.now();return a>0?a:null}return null}parseRetryFromErrorMessage(a){if(!a||"string"!=typeof a)return null;let b=a.match(/reset after (\d+h)?(\d+m)?(\d+s)?/i);if(!b)return null;let c=0;return b[1]&&(c+=3600*parseInt(b[1])*1e3),b[2]&&(c+=60*parseInt(b[2])*1e3),b[3]&&(c+=1e3*parseInt(b[3])),c>0?c:null}extractErrorMessage(a,b=""){return[a?.error?.message,a?.message,a?.error,b].filter(Boolean).map(a=>"string"==typeof a?a:JSON.stringify(a)).join("\n")}isTransientAntigravityError(a,b){return!!(a===h.gx.RATE_LIMITED||o.has(a))||n.some(a=>a.test(b||""))}async computeRetryDelay(a,b){let c="",d=null,e=this.parseRetryHeaders(a.headers);try{d=(c=await a.clone().text())?JSON.parse(c):null}catch{}let f=this.extractErrorMessage(d,c);return(e||(e=this.parseRetryFromErrorMessage(f)),e)?e<=1e4&&e:!!this.isTransientAntigravityError(a.status,f)&&Math.min(1e3*2**b,a.status===h.gx.RATE_LIMITED?1e4:15e3)}static cloakTools(a,b=null){let c=a.request?.tools;if(!c||0===c.length)return{cloakedBody:a,toolNameMap:null};let d="github-copilot"===b,e=new Map,f=[],h=new Set(u.map(a=>a.name));for(let a of c)if(a.functionDeclarations)for(let b of a.functionDeclarations){if(d&&g.J5.has(b.name)||d&&h.has(b.name))continue;if(g.J5.has(b.name)){f.push(b);continue}let a=`${b.name}${g.QH}`;e.set(a,b.name),f.push({...b,name:a})}let i=[],j=new Set;for(let a of[...f,...u])!a?.name||j.has(a.name)||(j.add(a.name),i.push(a));let k=a.request?.contents?.map(a=>{if(!a.parts)return a;let b=a.parts.map(a=>a.functionCall&&!g.J5.has(a.functionCall.name)?{...a,functionCall:{...a.functionCall,name:`${a.functionCall.name}${g.QH}`}}:a.functionResponse&&!g.J5.has(a.functionResponse.name)?{...a,functionResponse:{...a.functionResponse,name:`${a.functionResponse.name}${g.QH}`}}:a);return{...a,parts:b}});return{cloakedBody:{...a,request:{...a.request,tools:[{functionDeclarations:i}],contents:k||a.request.contents}},toolNameMap:e}}}let u=[{name:"browser_subagent",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"command_status",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"find_by_name",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"generate_image",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"grep_search",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_dir",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"list_resources",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"mcp_sequential-thinking_sequentialthinking",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"multi_replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"notify_user",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_resource",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_terminal",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"read_url_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"replace_file_content",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"run_command",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"search_web",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"send_command_input",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"task_boundary",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_content_chunk",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"view_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}},{name:"write_to_file",description:"This tool is currently unavailable.",parameters:{type:"OBJECT",properties:{},required:[]}}]},65429:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.SPECIAL_HEADERS=b.MINOR=b.MAJOR=b.HTAB_SP_VCHAR_OBS_TEXT=b.QUOTED_STRING=b.CONNECTION_TOKEN_CHARS=b.HEADER_CHARS=b.TOKEN=b.HEX=b.URL_CHAR=b.USERINFO_CHARS=b.MARK=b.ALPHANUM=b.NUM=b.HEX_MAP=b.NUM_MAP=b.ALPHA=b.STATUSES_HTTP=b.H_METHOD_MAP=b.METHOD_MAP=b.METHODS_RTSP=b.METHODS_ICE=b.METHODS_HTTP=b.HEADER_STATE=b.FINISH=b.STATUSES=b.METHODS=b.LENIENT_FLAGS=b.FLAGS=b.TYPE=b.ERROR=void 0;let d=c(33629);b.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38},b.TYPE={BOTH:0,REQUEST:1,RESPONSE:2},b.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512},b.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512},b.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46},b.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599},b.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2},b.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8},b.METHODS_HTTP=[b.METHODS.DELETE,b.METHODS.GET,b.METHODS.HEAD,b.METHODS.POST,b.METHODS.PUT,b.METHODS.CONNECT,b.METHODS.OPTIONS,b.METHODS.TRACE,b.METHODS.COPY,b.METHODS.LOCK,b.METHODS.MKCOL,b.METHODS.MOVE,b.METHODS.PROPFIND,b.METHODS.PROPPATCH,b.METHODS.SEARCH,b.METHODS.UNLOCK,b.METHODS.BIND,b.METHODS.REBIND,b.METHODS.UNBIND,b.METHODS.ACL,b.METHODS.REPORT,b.METHODS.MKACTIVITY,b.METHODS.CHECKOUT,b.METHODS.MERGE,b.METHODS["M-SEARCH"],b.METHODS.NOTIFY,b.METHODS.SUBSCRIBE,b.METHODS.UNSUBSCRIBE,b.METHODS.PATCH,b.METHODS.PURGE,b.METHODS.MKCALENDAR,b.METHODS.LINK,b.METHODS.UNLINK,b.METHODS.PRI,b.METHODS.SOURCE,b.METHODS.QUERY],b.METHODS_ICE=[b.METHODS.SOURCE],b.METHODS_RTSP=[b.METHODS.OPTIONS,b.METHODS.DESCRIBE,b.METHODS.ANNOUNCE,b.METHODS.SETUP,b.METHODS.PLAY,b.METHODS.PAUSE,b.METHODS.TEARDOWN,b.METHODS.GET_PARAMETER,b.METHODS.SET_PARAMETER,b.METHODS.REDIRECT,b.METHODS.RECORD,b.METHODS.FLUSH,b.METHODS.GET,b.METHODS.POST],b.METHOD_MAP=(0,d.enumToMap)(b.METHODS),b.H_METHOD_MAP=Object.fromEntries(Object.entries(b.METHODS).filter(([a])=>a.startsWith("H"))),b.STATUSES_HTTP=[b.STATUSES.CONTINUE,b.STATUSES.SWITCHING_PROTOCOLS,b.STATUSES.PROCESSING,b.STATUSES.EARLY_HINTS,b.STATUSES.RESPONSE_IS_STALE,b.STATUSES.REVALIDATION_FAILED,b.STATUSES.DISCONNECTED_OPERATION,b.STATUSES.HEURISTIC_EXPIRATION,b.STATUSES.MISCELLANEOUS_WARNING,b.STATUSES.OK,b.STATUSES.CREATED,b.STATUSES.ACCEPTED,b.STATUSES.NON_AUTHORITATIVE_INFORMATION,b.STATUSES.NO_CONTENT,b.STATUSES.RESET_CONTENT,b.STATUSES.PARTIAL_CONTENT,b.STATUSES.MULTI_STATUS,b.STATUSES.ALREADY_REPORTED,b.STATUSES.TRANSFORMATION_APPLIED,b.STATUSES.IM_USED,b.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,b.STATUSES.MULTIPLE_CHOICES,b.STATUSES.MOVED_PERMANENTLY,b.STATUSES.FOUND,b.STATUSES.SEE_OTHER,b.STATUSES.NOT_MODIFIED,b.STATUSES.USE_PROXY,b.STATUSES.SWITCH_PROXY,b.STATUSES.TEMPORARY_REDIRECT,b.STATUSES.PERMANENT_REDIRECT,b.STATUSES.BAD_REQUEST,b.STATUSES.UNAUTHORIZED,b.STATUSES.PAYMENT_REQUIRED,b.STATUSES.FORBIDDEN,b.STATUSES.NOT_FOUND,b.STATUSES.METHOD_NOT_ALLOWED,b.STATUSES.NOT_ACCEPTABLE,b.STATUSES.PROXY_AUTHENTICATION_REQUIRED,b.STATUSES.REQUEST_TIMEOUT,b.STATUSES.CONFLICT,b.STATUSES.GONE,b.STATUSES.LENGTH_REQUIRED,b.STATUSES.PRECONDITION_FAILED,b.STATUSES.PAYLOAD_TOO_LARGE,b.STATUSES.URI_TOO_LONG,b.STATUSES.UNSUPPORTED_MEDIA_TYPE,b.STATUSES.RANGE_NOT_SATISFIABLE,b.STATUSES.EXPECTATION_FAILED,b.STATUSES.IM_A_TEAPOT,b.STATUSES.PAGE_EXPIRED,b.STATUSES.ENHANCE_YOUR_CALM,b.STATUSES.MISDIRECTED_REQUEST,b.STATUSES.UNPROCESSABLE_ENTITY,b.STATUSES.LOCKED,b.STATUSES.FAILED_DEPENDENCY,b.STATUSES.TOO_EARLY,b.STATUSES.UPGRADE_REQUIRED,b.STATUSES.PRECONDITION_REQUIRED,b.STATUSES.TOO_MANY_REQUESTS,b.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,b.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,b.STATUSES.LOGIN_TIMEOUT,b.STATUSES.NO_RESPONSE,b.STATUSES.RETRY_WITH,b.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,b.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,b.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,b.STATUSES.INVALID_X_FORWARDED_FOR,b.STATUSES.REQUEST_HEADER_TOO_LARGE,b.STATUSES.SSL_CERTIFICATE_ERROR,b.STATUSES.SSL_CERTIFICATE_REQUIRED,b.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,b.STATUSES.INVALID_TOKEN,b.STATUSES.CLIENT_CLOSED_REQUEST,b.STATUSES.INTERNAL_SERVER_ERROR,b.STATUSES.NOT_IMPLEMENTED,b.STATUSES.BAD_GATEWAY,b.STATUSES.SERVICE_UNAVAILABLE,b.STATUSES.GATEWAY_TIMEOUT,b.STATUSES.HTTP_VERSION_NOT_SUPPORTED,b.STATUSES.VARIANT_ALSO_NEGOTIATES,b.STATUSES.INSUFFICIENT_STORAGE,b.STATUSES.LOOP_DETECTED,b.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,b.STATUSES.NOT_EXTENDED,b.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,b.STATUSES.WEB_SERVER_UNKNOWN_ERROR,b.STATUSES.WEB_SERVER_IS_DOWN,b.STATUSES.CONNECTION_TIMEOUT,b.STATUSES.ORIGIN_IS_UNREACHABLE,b.STATUSES.TIMEOUT_OCCURED,b.STATUSES.SSL_HANDSHAKE_FAILED,b.STATUSES.INVALID_SSL_CERTIFICATE,b.STATUSES.RAILGUN_ERROR,b.STATUSES.SITE_IS_OVERLOADED,b.STATUSES.SITE_IS_FROZEN,b.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,b.STATUSES.NETWORK_READ_TIMEOUT,b.STATUSES.NETWORK_CONNECT_TIMEOUT],b.ALPHA=[];for(let a=65;a<=90;a++)b.ALPHA.push(String.fromCharCode(a)),b.ALPHA.push(String.fromCharCode(a+32));b.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9},b.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},b.NUM=["0","1","2","3","4","5","6","7","8","9"],b.ALPHANUM=b.ALPHA.concat(b.NUM),b.MARK=["-","_",".","!","~","*","'","(",")"],b.USERINFO_CHARS=b.ALPHANUM.concat(b.MARK).concat(["%",";",":","&","=","+","$",","]),b.URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(b.ALPHANUM),b.HEX=b.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]),b.TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(b.ALPHANUM),b.HEADER_CHARS=[" "];for(let a=32;a<=255;a++)127!==a&&b.HEADER_CHARS.push(a);b.CONNECTION_TOKEN_CHARS=b.HEADER_CHARS.filter(a=>44!==a),b.QUOTED_STRING=[" "," "];for(let a=33;a<=255;a++)34!==a&&92!==a&&b.QUOTED_STRING.push(a);b.HTAB_SP_VCHAR_OBS_TEXT=[" "," "];for(let a=33;a<=126;a++)b.HTAB_SP_VCHAR_OBS_TEXT.push(a);for(let a=128;a<=255;a++)b.HTAB_SP_VCHAR_OBS_TEXT.push(a);b.MAJOR=b.NUM_MAP,b.MINOR=b.MAJOR,b.SPECIAL_HEADERS={connection:b.HEADER_STATE.CONNECTION,"content-length":b.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":b.HEADER_STATE.CONNECTION,"transfer-encoding":b.HEADER_STATE.TRANSFER_ENCODING,upgrade:b.HEADER_STATE.UPGRADE},b.default={ERROR:b.ERROR,TYPE:b.TYPE,FLAGS:b.FLAGS,LENIENT_FLAGS:b.LENIENT_FLAGS,METHODS:b.METHODS,STATUSES:b.STATUSES,FINISH:b.FINISH,HEADER_STATE:b.HEADER_STATE,ALPHA:b.ALPHA,NUM_MAP:b.NUM_MAP,HEX_MAP:b.HEX_MAP,NUM:b.NUM,ALPHANUM:b.ALPHANUM,MARK:b.MARK,USERINFO_CHARS:b.USERINFO_CHARS,URL_CHAR:b.URL_CHAR,HEX:b.HEX,TOKEN:b.TOKEN,HEADER_CHARS:b.HEADER_CHARS,CONNECTION_TOKEN_CHARS:b.CONNECTION_TOKEN_CHARS,QUOTED_STRING:b.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:b.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:b.MAJOR,MINOR:b.MINOR,SPECIAL_HEADERS:b.SPECIAL_HEADERS,METHODS_HTTP:b.METHODS_HTTP,METHODS_ICE:b.METHODS_ICE,METHODS_RTSP:b.METHODS_RTSP,METHOD_MAP:b.METHOD_MAP,H_METHOD_MAP:b.H_METHOD_MAP,STATUSES_HTTP:b.STATUSES_HTTP}},65630:(a,b,c)=>{"use strict";let{kClients:d}=c(49176),e=c(37417),{kAgent:f,kMockAgentSet:g,kMockAgentGet:h,kDispatches:i,kIsMockActive:j,kNetConnect:k,kGetNetConnect:l,kOptions:m,kFactory:n,kMockAgentRegisterCallHistory:o,kMockAgentIsCallHistoryEnabled:p,kMockAgentAddCallHistoryLog:q,kMockAgentMockCallHistoryInstance:r,kMockAgentAcceptsNonStandardSearchParameters:s,kMockCallHistoryAddLog:t,kIgnoreTrailingSlash:u}=c(80830),v=c(66498),w=c(86625),{matchValue:x,normalizeSearchParams:y,buildAndValidateMockOptions:z,normalizeOrigin:A}=c(70634),{InvalidArgumentError:B,UndiciError:C}=c(61448),D=c(7344),E=c(70459),{MockCallHistory:F}=c(21523);class G extends D{constructor(a={}){super(a);const b=z(a);if(this[k]=!0,this[j]=!0,this[p]=b.enableCallHistory??!1,this[s]=b.acceptNonStandardSearchParameters??!1,this[u]=b.ignoreTrailingSlash??!1,a?.agent&&"function"!=typeof a.agent.dispatch)throw new B("Argument opts.agent must implement Agent");const c=a?.agent?a.agent:new e(a);this[f]=c,this[d]=c[d],this[m]=b,this[p]&&this[o]()}get(a){let b=A(a),c=this[u]?b.replace(/\/$/,""):b,d=this[h](c);return d||(d=this[n](c),this[g](c,d)),d}dispatch(a,b){a.origin=A(a.origin);let c=this.get(a.origin);this[q](a);let e=this[s],h={...a};if(!1===h.allowH2){let a=`${h.origin}#http1-only`;if(!this[d].has(a)){let b=this[n](h.origin);b[i]=c[i],this[g](a,b)}}if(e&&h.path){let[a,b]=h.path.split("?"),c=y(b,e);h.path=`${a}?${c}`}return this[f].dispatch(h,b)}async close(){this.clearCallHistory(),await this[f].close(),this[d].clear()}deactivate(){this[j]=!1}activate(){this[j]=!0}enableNetConnect(a){if("string"==typeof a||"function"==typeof a||a instanceof RegExp)Array.isArray(this[k])?this[k].push(a):this[k]=[a];else if(void 0===a)this[k]=!0;else throw new B("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[k]=!1}enableCallHistory(){return this[p]=!0,this}disableCallHistory(){return this[p]=!1,this}getCallHistory(){return this[r]}clearCallHistory(){void 0!==this[r]&&this[r].clear()}get isMockActive(){return this[j]}[o](){void 0===this[r]&&(this[r]=new F)}[q](a){this[p]&&(this[o](),this[r][t](a))}[g](a,b){this[d].set(a,b)}[n](a){let b=Object.assign({agent:this},this[m]);return this[m]&&1===this[m].connections?new v(a,b):new w(a,b)}[h](a){let b=this[d].get(a);if(b)return b;if("string"!=typeof a){let b=this[n]("http://localhost:9999");return this[g](a,b),b}for(let[b,c]of Array.from(this[d]))if(c&&"string"!=typeof b&&x(b,a)){let b=this[n](a);return this[g](a,b),b[i]=c[i],b}}[l](){return this[k]}pendingInterceptors(){return Array.from(this[d].entries()).flatMap(([a,b])=>b[i].map(b=>({...b,origin:a}))).filter(({pending:a})=>a)}assertNoPendingInterceptors({pendingInterceptorsFormatter:a=new E}={}){let b=this.pendingInterceptors();if(0!==b.length)throw new C(1===b.length?`1 interceptor is pending:
409
409
 
410
410
  ${a.format(b)}`.trim():`${b.length} interceptors are pending:
411
411
 
@@ -440,7 +440,7 @@ Content-Type: ${d||"application/octet-stream"}\r
440
440
  `)),c.enqueue(i.encode(k.$U)),j=!0;return}let a=h||`upstream status ${g}`,e=JSON.stringify({id:`qoder-error-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:b,choices:[{index:0,delta:{content:`
441
441
  [qoder error ${g}: ${Q(a,200)}]`},finish_reason:"stop"}]});c.enqueue(i.encode(`data: ${e}
442
442
 
443
- `)),c.enqueue(i.encode(k.$U)),j=!0;return}h&&(m.handleInner(h,c),n())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(o(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(o(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{m.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class V extends h.Hv{constructor(a="qoder"){super(a,i.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,m.e9)(a,this.region)}/algo${m.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}fetchInit(a){return{identity:this.resolveIdentity(a),provider:this.provider,format:this.config?.format}}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:g,proxyOptions:h=null,providerOverrides:i=null}){let k,o,p,y=d?.apiKey||d?.accessToken;if((0,n.zh)(y))try{d=await (0,n._M)(d,h,f,this.region)}catch(a){return g?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(d),headers:{},transformedBody:b}}let z=this.buildUrl(d),A=d?.providerSpecificData||{};if(!A.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};if(!d?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};try{({qoderKey:k,payload:o}=await R({model:a,body:b,credentials:d,log:g,proxyOptions:h,signal:f,region:this.region,fetchInit:this.fetchInit(d)}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let B=e(Buffer.from(JSON.stringify(o),"utf8")),C=Buffer.from(B,"latin1");try{(0,q.dE)(C,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})}catch(a){return{response:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let D=`${this.provider}/${k}`,E=this.fetchInit(d),F=async a=>{let c,g,m=Buffer.from(JSON.stringify(a),"utf8"),n=Buffer.from(e(m),"latin1");try{c=(0,q.dE)(n,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})}catch(a){return{error:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let o={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":k,"X-Model-Source":a.model_config&&a.model_config.source||"system","Accept-Encoding":"identity",...c,...i?.headers||{}},p=this.config?.timeoutMs||l.pH,r=new AbortController,s=setTimeout(()=>r.abort(Error("fetch connect timeout")),p),t=f?AbortSignal.any([f,r.signal]):r.signal;try{g=await (0,j.Fm)(z,{method:"POST",headers:o,body:n,signal:t,...E},{...h,strictProxy:!0})}catch(a){if(t.aborted)throw t.reason;throw a}finally{clearTimeout(s)}return{response:g,url:z,headers:o,transformedBody:a}},G=async(a,b,c,e,g)=>{let i=function(a,{requestSetId:b,modelKey:c,queueType:d}={}){let e=new URLSearchParams;return b&&e.set("requestSetId",b),c&&e.set("modelKey",c),d&&e.set("queueType",d),`${a}/algo/api/v2/service/ask/queue/status?${e.toString()}`}((0,m.e9)(d,this.region),{requestSetId:c,modelKey:a,queueType:b});try{let a=await (0,j.Fm)(i,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"identity","X-Request-ID":e,"X-Session-ID":g||"",...(0,q.dE)(Buffer.alloc(0),i,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})},signal:AbortSignal.any([...f?[f]:[],AbortSignal.timeout(Math.max(1,Math.min(l.pH,H-(Date.now()-I))))]),...E},h);if(!a.ok)return await a.body?.cancel().catch(()=>{}),{endpointOk:!1,info:null};let b=function(a){let b="string"==typeof a?w(a):a;if(!s(b))return null;let c=v(b.isQueued);return void 0===c?null:{isQueued:c,serviceAvailable:v(b.serviceAvailable),modelKey:u(b.modelKey),queueType:u(b.queueType),queueCount:t(b.queueCount),retryAfterSeconds:t(b.retryAfterSeconds),waitTime:t(b.waitTime)}}(await a.text().catch(()=>""));return b?{endpointOk:!0,info:b}:{endpointOk:!1,info:null}}catch(a){if(f?.aborted)throw a;return{endpointOk:!1,info:null}}},H=Number.isFinite(p=Number(process.env.QODER_MODEL_QUEUE_MAX_WAIT_MS))&&p>0?p:6e5,I=Date.now(),J=null,K=!0,L=!1,M=o,N=null;for(;;){let a=N,b=J;if(N=null,!a){if((a=await F(M)).error)return{response:a.error,url:a.url,headers:a.headers,transformedBody:a.transformedBody};if(!a.response.ok)return{response:a.response,url:a.url,headers:a.headers,transformedBody:a.transformedBody};let c=a.response.body.getReader(),d=new TextDecoder,e=await T(c,d);if(b=e.isError?function(a){let b="string"==typeof a?w(a):a;if(!b)return null;let c=function(a){let b=[],c=new Set,d=new Set,e=[a];for(;e.length>0;){let a=e.shift();if(s(a)){if(c.has(a))continue;for(let f of(c.add(a),b.push(a),r)){let b=a[f];if(s(b)||Array.isArray(b))e.push(b);else if("string"==typeof b&&!d.has(b)){d.add(b);let a=w(b);a&&e.push(a)}}}else if(Array.isArray(a))for(let b of a)(s(b)||Array.isArray(b))&&e.push(b)}return b}(b),d={code:void 0,subCode:void 0,isQueued:void 0,modelKey:void 0,queueType:void 0,queueCount:void 0,serviceAvailable:void 0,retryAfterSeconds:void 0,waitTime:void 0};for(let a of c)void 0===d.code&&(d.code=u(a.code)),void 0===d.subCode&&(d.subCode=u(a.subCode)),void 0===d.isQueued&&(d.isQueued=v(a.isQueued)),void 0===d.modelKey&&(d.modelKey=u(a.modelKey)),void 0===d.queueType&&(d.queueType=u(a.queueType)),void 0===d.queueCount&&(d.queueCount=t(a.queueCount)),void 0===d.serviceAvailable&&(d.serviceAvailable=v(a.serviceAvailable)),void 0===d.retryAfterSeconds&&(d.retryAfterSeconds=t(a.retryAfterSeconds)),void 0===d.waitTime&&(d.waitTime=t(a.waitTime));return!0!==d.isQueued&&!1!==d.serviceAvailable&&"RESOURCE_LIMIT"!==d.subCode&&"10605"!==d.code?null:d}(e.message||""):null,e.isError&&await c.cancel().catch(()=>{}),!b){if(e.isError){let b=e.isBilling?l.gx.FORBIDDEN:Number.isInteger(e.statusVal)&&e.statusVal>=400&&e.statusVal<=599?e.statusVal:l.gx.BAD_GATEWAY;return{response:new Response(JSON.stringify({error:{message:e.message||"qoder upstream error",code:e.statusVal}}),{status:b,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}let b=new Response(new ReadableStream({start(a){let b=!1,d=()=>{if(!b){b=!0;try{a.close()}catch{}}},f=c=>{if(b)return!1;try{return a.enqueue(c),!0}catch{return b=!0,!1}},g=new TextEncoder;if(e.consumed&&!f(g.encode(e.consumed)))return;if(e.upstreamDone)return void d();let h=()=>{b||c.read().then(({done:a,value:b})=>{a?d():f(b)&&h()}).catch(()=>d())};h()},cancel:()=>c.cancel().catch(()=>{})}),{status:a.response.status,statusText:a.response.statusText,headers:a.response.headers});return{response:await U(b,D,g),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}}J=b;let c=Date.now()-I;if(c>=H)return g?.warn?.("QODER",`model queue wait timed out after ${Math.round(c/1e3)}s for ${D} (queueType=${J.queueType||"?"}, waitTime=${J.waitTime??"?"}s)`),{response:new Response(JSON.stringify({error:{message:`qoder model "${k}" is still queued after ${Math.round(c/1e3)}s (queueType=${J.queueType||"?"}); retry shortly`,code:"qoder_model_queued",type:"rate_limit_error"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody};let d=x(b);if(K){let c=M.request_set_id,e=await G(b.modelKey||k,b.queueType,c,M.request_id,M.session_id);e.endpointOk?!1===e.info.isQueued?L?(K=!1,g?.info?.("QODER",`queue status claims ready but "${k}" is still refused; falling back to timed replays`)):(L=!0,g?.info?.("QODER",`model "${k}" reported ready (queueType=${e.info.queueType||"?"}); replaying`),d=0):(N=a,J={...b,...e.info},d=x(e.info,{fromStatus:!0}),g?.info?.("QODER",`model "${k}" still queued (queueType=${e.info.queueType||"?"}, queueCount=${e.info.queueCount??"?"}); rechecking in ${Math.round(d/1e3)}s`)):K=!1}d>0&&await function(a,b){return a>0?new Promise((c,d)=>{if(b?.aborted)return void d(b.reason);let e=setTimeout(()=>{b?.removeEventListener?.("abort",f),c()},a),f=()=>{clearTimeout(e),d(b.reason)};b?.addEventListener?.("abort",f,{once:!0})}):Promise.resolve()}(Math.min(d,Math.max(0,H-(Date.now()-I))),f)}}async refreshCredentials(){return null}needsRefresh(){return!1}}},78196:(a,b,c)=>{"use strict";let d,e,f,g,{Headers:h,HeadersList:i,fill:j,getHeadersGuard:k,setHeadersGuard:l,setHeadersList:m}=c(28665),{extractBody:n,cloneBody:o,mixinBody:p,streamRegistry:q,bodyUnusable:r}=c(35381),s=c(84285),t=c(57975),{kEnumerableProperty:u}=s,{isValidReasonPhrase:v,isCancelled:w,isAborted:x,isErrorLike:y,environmentSettingsObject:z}=c(42425),{redirectStatusSet:A,nullBodyStatus:B}=c(19608),{webidl:C}=c(32984),{URLSerializer:D}=c(16537),{kConstruct:E}=c(49176),F=c(34589),{isomorphicEncode:G,serializeJavascriptValueToJSONString:H}=c(70745),I=new TextEncoder("utf-8");class J{#e;#a;static error(){return Q(M(),"immutable")}static json(a,b){C.argumentLengthCheck(arguments,1,"Response.json"),b=C.converters.ResponseInit(b);let c=n(I.encode(H(a))),d=Q(L({}),"response");return P(d,b,{body:c[0],type:"application/json"}),d}static redirect(a,b=302){let c;C.argumentLengthCheck(arguments,1,"Response.redirect"),a=C.converters.USVString(a),b=C.converters["unsigned short"](b);try{c=new URL(a,z.settingsObject.baseUrl)}catch(b){throw TypeError(`Failed to parse URL from ${a}`,{cause:b})}if(!A.has(b))throw RangeError(`Invalid status code ${b}`);let d=Q(L({}),"immutable");d.#a.status=b;let e=G(D(c));return d.#a.headersList.append("location",e,!0),d}constructor(a=null,b){if(C.util.markAsUncloneable(this),a===E)return;null!==a&&(a=C.converters.BodyInit(a,"Response","body")),b=C.converters.ResponseInit(b),this.#a=L({}),this.#e=new h(E),l(this.#e,"response"),m(this.#e,this.#a.headersList);let c=null;if(null!=a){const[b,d]=n(a);c={body:b,type:d}}P(this,b,c)}get type(){return C.brandCheck(this,C.is.Response),this.#a.type}get url(){C.brandCheck(this,C.is.Response);let a=this.#a.urlList,b=a[a.length-1]??null;return null===b?"":D(b,!0)}get redirected(){return C.brandCheck(this,C.is.Response),this.#a.urlList.length>1}get status(){return C.brandCheck(this,C.is.Response),this.#a.status}get ok(){return C.brandCheck(this,C.is.Response),this.#a.status>=200&&this.#a.status<=299}get statusText(){return C.brandCheck(this,C.is.Response),this.#a.statusText}get headers(){return C.brandCheck(this,C.is.Response),this.#e}get body(){return C.brandCheck(this,C.is.Response),this.#a.body?this.#a.body.stream:null}get bodyUsed(){return C.brandCheck(this,C.is.Response),!!this.#a.body&&s.isDisturbed(this.#a.body.stream)}clone(){if(C.brandCheck(this,C.is.Response),r(this.#a))throw C.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let a=K(this.#a);return 0!==this.#a.urlList.length&&this.#a.body?.stream&&q.register(this,new WeakRef(this.#a.body.stream)),Q(a,k(this.#e))}[t.inspect.custom](a,b){null===b.depth&&(b.depth=2),b.colors??=!0;let c={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${t.formatWithOptions(b,c)}`}static{d=a=>a.#e,e=(a,b)=>{a.#e=b},f=a=>a.#a,g=(a,b)=>{a.#a=b},C.is.Response=a=>null!=a&&"object"==typeof a&&#a in a}}function K(a){if(a.internalResponse)return O(K(a.internalResponse),a.type);let b=L({...a,body:null});return null!=a.body&&(b.body=o(a.body)),b}function L(a){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...a,headersList:a?.headersList?new i(a?.headersList):new i,urlList:a?.urlList?[...a.urlList]:[]}}function M(a){return L({type:"error",status:0,error:y(a)?a:Error(a?String(a):a),aborted:a&&"AbortError"===a.name})}function N(a,b){return b={internalResponse:a,...b},new Proxy(a,{get:(a,c)=>c in b?b[c]:a[c],set:(a,c,d)=>(F(!(c in b)),a[c]=d,!0)})}function O(a,b){return"basic"===b?N(a,{type:"basic",headersList:a.headersList}):"cors"===b?N(a,{type:"cors",headersList:a.headersList}):"opaque"===b?N(a,{type:"opaque",urlList:[],status:0,statusText:"",body:null}):"opaqueredirect"===b?N(a,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null}):void F(!1)}function P(a,b,c){if(null!==b.status&&(b.status<200||b.status>599))throw RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in b&&null!=b.statusText&&!v(String(b.statusText)))throw TypeError("Invalid statusText");if("status"in b&&null!=b.status&&(f(a).status=b.status),"statusText"in b&&null!=b.statusText&&(f(a).statusText=b.statusText),"headers"in b&&null!=b.headers&&j(d(a),b.headers),c){if(B.includes(a.status))throw C.errors.exception({header:"Response constructor",message:`Invalid response status code ${a.status}`});f(a).body=c.body,null==c.type||f(a).headersList.contains("content-type",!0)||f(a).headersList.append("content-type",c.type,!0)}}function Q(a,b){let c=new J(E);g(c,a);let d=new h(E);return e(c,d),m(d,a.headersList),l(d,b),0!==a.urlList.length&&a.body?.stream&&q.register(c,new WeakRef(a.body.stream)),c}p(J,f,C.is.Response),Object.defineProperties(J.prototype,{type:u,url:u,status:u,ok:u,redirected:u,statusText:u,headers:u,clone:u,body:u,bodyUsed:u,[Symbol.toStringTag]:{value:"Response",configurable:!0}}),Object.defineProperties(J,{json:u,redirect:u,error:u}),C.converters.XMLHttpRequestBodyInit=function(a,b,c){return"string"==typeof a?C.converters.USVString(a,b,c):C.is.Blob(a)||C.is.BufferSource(a)||C.is.FormData(a)||C.is.URLSearchParams(a)?a:C.converters.DOMString(a,b,c)},C.converters.BodyInit=function(a,b,c){return C.is.ReadableStream(a)||a?.[Symbol.asyncIterator]?a:C.converters.XMLHttpRequestBodyInit(a,b,c)},C.converters.ResponseInit=C.dictionaryConverter([{key:"status",converter:C.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:C.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:C.converters.HeadersInit}]),a.exports={isNetworkError:function(a){return"error"===a.type&&0===a.status},makeNetworkError:M,makeResponse:L,makeAppropriateNetworkError:function(a,b=null){return F(w(a)),x(a)?M(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:b})):M(Object.assign(new DOMException("Request was cancelled."),{cause:b}))},filterResponse:O,Response:J,cloneResponse:K,fromInnerResponse:Q,getResponseState:f}},78492:(a,b,c)=>{"use strict";c.d(b,{SM:()=>i,V2:()=>m,kt:()=>n,ux:()=>l,vq:()=>e.vq});var d=c(4313),e=c(15251),f=c(97915),g=c(62397),h=c(68531);function i(a){return e.vq[a]||[]}let j=new Set(["kr","kiro"]);function k(a,b,c){if(!a)return;let d="string"==typeof b?b.replace(/\([^()]+\)\s*$/,"").trim():b,e=a.find(a=>a.id===b||a.id===d);if(e)return e;if(!j.has(c))return;let g=(0,f.Kq)(d);if(g!==d)return a.find(a=>a.id===g)}function l(a,b){if((!a||"oc"===a||"opencode"===a||"ocg"===a||"opencode-go"===a||"ocz"===a||"opencode-zen"===a)&&(0,g.nh)(b))return h.h.OPENAI_RESPONSES;let c=e.vq[a];if(!c)return null;let d=k(c,b,a);return d?(0,f.gr)(d):("opencode-go"===a||"ocg"===a)&&(0,g.i8)(b)?.targetFormat||null}function m(a,b){return k(e.vq[a],b,a)||null}function n(a,b,c=null){let d="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,f=d?d[0]:"",h=f?b.slice(0,d.index).trim():b,i=e.vq[a],j=f?f.slice(1,-1).trim().toLowerCase():"",l="xhigh"===j||"max"===j?"high":"minimal"===j?"low":j;if(!l&&c&&"object"==typeof c){let a=c.reasoning_effort||c.output_config?.effort||("object"==typeof c.reasoning?c.reasoning?.effort:null);if("string"==typeof a&&a){let b=a.toLowerCase().trim();l="xhigh"===b||"max"===b?"high":"minimal"===b?"low":b}else if(c.thinking&&"object"==typeof c.thinking){let a=Number(c.thinking.budget_tokens);Number.isFinite(a)&&a>0&&(l=a>16384?"high":a<=4096?"low":"medium")}}let m=l?`${h}-${l}`:null,o=m&&k(i,m,a)||k(i,h,a),p=o?.upstreamModelId||o?.id;if(p){let a=p.match(/\([^()]+\)\s*$/),b=a?.[0]||"";return(b?p.slice(0,a.index).trim():p)+(f||(b&&l?`(${l})`:b))}return"cx"===a&&"string"==typeof h&&h.endsWith(g.d5)?h.slice(0,-g.d5.length)+f:h+f}Object.fromEntries(d.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),Object.fromEntries(d.A.map(a=>[a.id,a.alias||a.id]))},78953:(a,b,c)=>{"use strict";c.d(b,{R4:()=>e.R4,BY:()=>h,a_:()=>f.a_,RV:()=>d.R,rP:()=>g,x4:()=>e.x4,bC:()=>f.bC,Du:()=>e.Du,z7:()=>d.z});var d=c(66634),e=c(93373),f=c(62457);let g="unknown",h="image/png"},79401:(a,b,c)=>{"use strict";c.d(b,{EM:()=>v,F8:()=>p,NH:()=>t,RB:()=>C,TG:()=>F,Ty:()=>y,Y6:()=>s,_G:()=>n,bg:()=>m,cT:()=>x,d2:()=>u,e9:()=>w,iu:()=>r,o8:()=>q,oj:()=>l,pM:()=>B,pr:()=>G,qk:()=>z,rf:()=>j,ty:()=>g,uR:()=>o,xG:()=>A});let d="intl",e={[d]:{chat:"https://api3.qoder.sh",chatAlt:"https://api2.qoder.sh",openApi:"https://openapi.qoder.sh",center:"https://center.qoder.sh",login:"https://qoder.com/device/selectAccounts",website:"https://qoder.com"},cn:{chat:"https://gateway.qoder.com.cn",chatAlt:"https://gateway.qoder.com.cn",openApi:"https://openapi.qoder.com.cn",center:"https://gateway.qoder.com.cn",login:"https://qoder.com.cn/device/selectAccounts",website:"https://qoder.com.cn"}};function f(a){return e[a]||e[d]}function g(a){return"qoder-cn"===a?"cn":d}e[d].openApi,e[d].center;let h=e[d].chat,i=e[d].chatAlt,j=e[d].login;function k(a){return f(a).openApi}function l(a){return`${k(a)}/api/v1/userinfo`}let m=`${k(d)}/api/v1/deviceToken/poll`,n=l(d);function o(a){return`${k(a)}/api/v1/jobToken/exchange`}k(d),f(d).center,o(d);let p="/api/v2/service/pro/sse/agent_chat_generation";f(d).chat;let q="/api/v2/image/upload",r=6291456,s=524288,t=.15,u="QODER_CONTEXT_TIER",v=Object.freeze({AUTO:"auto",MAX:"max",DEFAULT:"default"});function w(a,b){if("cn"===(b||g(a?.provider)))return e.cn.chat;let c=a?.apiKey||a?.accessToken;return"string"==typeof c&&!c.startsWith("pt-")&&(c.startsWith("jt-")||(a?.accessToken||"").startsWith("jt-"))?i:h}let x="1.0.0",y="5",z="disagree",A="v2",B="x86_64_windows",C="5",D=Object.freeze({model:"",format:"openai",source:"system",url:""}),E=Object.freeze({smodel:Object.freeze({...D,key:"smodel",display_name:"Sonus",is_vl:!0,is_reasoning:!0,max_input_tokens:18e4}),cmodel:Object.freeze({...D,key:"cmodel",display_name:"Cantus",is_vl:!0,is_reasoning:!0,max_input_tokens:18e4})});function F(a){let b=E[a];return b?{...b,key:a}:null}let G=`-----BEGIN PUBLIC KEY-----
443
+ `)),c.enqueue(i.encode(k.$U)),j=!0;return}h&&(m.handleInner(h,c),n())};return new Response(new ReadableStream({async start(a){try{let b;for(;-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}for(h&&(g+=d.decode()).length>0&&(o(g,a),g="");!j&&!h;){let b,{done:c,value:f}=await e.read();if(c){(g+=d.decode()).length>0&&(o(g,a),g="");break}for(g+=d.decode(f,{stream:!0});-1!==(b=g.indexOf("\n"));){let c=g.slice(0,b);if(g=g.slice(b+1),o(c,a),j){await e.cancel().catch(()=>{}),a.close();return}}}}catch{}finally{if(!j)try{m.flush(a),j=!0}catch{}try{a.close()}catch{}await e.cancel().catch(()=>{})}},cancel:()=>e.cancel().catch(()=>{})}),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache"}})}class V extends h.Hv{constructor(a="qoder"){super(a,i.xq[a]),this.region="qoder-cn"===a?"cn":"intl"}buildUrl(a){return`${(0,m.e9)(a,this.region)}/algo${m.F8}?FetchKeys=llm_model_result&AgentId=agent_common&Encode=1`}fetchInit(a){return{identity:this.resolveIdentity(a),provider:this.provider,format:this.config?.format}}async execute({model:a,body:b,stream:c,credentials:d,signal:f,log:g,proxyOptions:h=null,providerOverrides:i=null}){let k,o,p,y=d?.apiKey||d?.accessToken;if((0,n.zh)(y))try{d=await (0,n._M)(d,h,f,this.region)}catch(a){return g?.error?.("QODER",`PAT exchange failed: ${a.message}`),{response:new Response(JSON.stringify({error:{message:`qoder PAT exchange failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:this.buildUrl(d),headers:{},transformedBody:b}}let z=this.buildUrl(d),A=d?.providerSpecificData||{};if(!A.userId)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing userId; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};if(!d?.accessToken)return{response:new Response(JSON.stringify({error:{message:"qoder credential is missing accessToken; reconnect the account"}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b};try{({qoderKey:k,payload:o}=await R({model:a,body:b,credentials:d,log:g,proxyOptions:h,signal:f,region:this.region,fetchInit:this.fetchInit(d)}))}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message}}),{status:400,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let B=e(Buffer.from(JSON.stringify(o),"utf8")),C=Buffer.from(B,"latin1");try{(0,q.dE)(C,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})}catch(a){return{response:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let D=`${this.provider}/${k}`,E=this.fetchInit(d),F=async a=>{let c,g,m=Buffer.from(JSON.stringify(a),"utf8"),n=Buffer.from(e(m),"latin1");try{c=(0,q.dE)(n,z,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})}catch(a){return{error:new Response(JSON.stringify({error:{message:`qoder cosy signing failed: ${a.message}`}}),{status:401,headers:{"Content-Type":"application/json"}}),url:z,headers:{},transformedBody:b}}let o={"Content-Type":"application/json",Accept:"text/event-stream","Cache-Control":"no-cache","X-Model-Key":k,"X-Model-Source":a.model_config&&a.model_config.source||"system","Accept-Encoding":"identity",...c,...i?.headers||{}},p=this.config?.timeoutMs||l.pH,r=new AbortController,s=setTimeout(()=>r.abort(Error("fetch connect timeout")),p),t=f?AbortSignal.any([f,r.signal]):r.signal;try{g=await (0,j.Fm)(z,{method:"POST",headers:o,body:n,signal:t,...E},{...h,strictProxy:!0})}catch(a){if(t.aborted)throw t.reason;throw a}finally{clearTimeout(s)}return{response:g,url:z,headers:o,transformedBody:a}},G=async(a,b,c,e,g)=>{let i=function(a,{requestSetId:b,modelKey:c,queueType:d}={}){let e=new URLSearchParams;return b&&e.set("requestSetId",b),c&&e.set("modelKey",c),d&&e.set("queueType",d),`${a}/algo/api/v2/service/ask/queue/status?${e.toString()}`}((0,m.e9)(d,this.region),{requestSetId:c,modelKey:a,queueType:b});try{let a=await (0,j.Fm)(i,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"identity","X-Request-ID":e,"X-Session-ID":g||"",...(0,q.dE)(Buffer.alloc(0),i,{userId:A.userId,authToken:d.accessToken,name:d.displayName||"",email:d.email||"",machineId:A.machineId||(0,q.if)(A.userId)})},signal:AbortSignal.any([...f?[f]:[],AbortSignal.timeout(Math.max(1,Math.min(l.pH,H-(Date.now()-I))))]),...E},h);if(!a.ok)return await a.body?.cancel().catch(()=>{}),{endpointOk:!1,info:null};let b=function(a){let b="string"==typeof a?w(a):a;if(!s(b))return null;let c=v(b.isQueued);return void 0===c?null:{isQueued:c,serviceAvailable:v(b.serviceAvailable),modelKey:u(b.modelKey),queueType:u(b.queueType),queueCount:t(b.queueCount),retryAfterSeconds:t(b.retryAfterSeconds),waitTime:t(b.waitTime)}}(await a.text().catch(()=>""));return b?{endpointOk:!0,info:b}:{endpointOk:!1,info:null}}catch(a){if(f?.aborted)throw a;return{endpointOk:!1,info:null}}},H=Number.isFinite(p=Number(process.env.QODER_MODEL_QUEUE_MAX_WAIT_MS))&&p>0?p:18e4,I=Date.now(),J=null,K=!0,L=!1,M=o,N=null;for(;;){let a=N,b=J;if(N=null,!a){if((a=await F(M)).error)return{response:a.error,url:a.url,headers:a.headers,transformedBody:a.transformedBody};if(!a.response.ok)return{response:a.response,url:a.url,headers:a.headers,transformedBody:a.transformedBody};let c=a.response.body.getReader(),d=new TextDecoder,e=await T(c,d);if(b=e.isError?function(a){let b="string"==typeof a?w(a):a;if(!b)return null;let c=function(a){let b=[],c=new Set,d=new Set,e=[a];for(;e.length>0;){let a=e.shift();if(s(a)){if(c.has(a))continue;for(let f of(c.add(a),b.push(a),r)){let b=a[f];if(s(b)||Array.isArray(b))e.push(b);else if("string"==typeof b&&!d.has(b)){d.add(b);let a=w(b);a&&e.push(a)}}}else if(Array.isArray(a))for(let b of a)(s(b)||Array.isArray(b))&&e.push(b)}return b}(b),d={code:void 0,subCode:void 0,isQueued:void 0,modelKey:void 0,queueType:void 0,queueCount:void 0,serviceAvailable:void 0,retryAfterSeconds:void 0,waitTime:void 0};for(let a of c)void 0===d.code&&(d.code=u(a.code)),void 0===d.subCode&&(d.subCode=u(a.subCode)),void 0===d.isQueued&&(d.isQueued=v(a.isQueued)),void 0===d.modelKey&&(d.modelKey=u(a.modelKey)),void 0===d.queueType&&(d.queueType=u(a.queueType)),void 0===d.queueCount&&(d.queueCount=t(a.queueCount)),void 0===d.serviceAvailable&&(d.serviceAvailable=v(a.serviceAvailable)),void 0===d.retryAfterSeconds&&(d.retryAfterSeconds=t(a.retryAfterSeconds)),void 0===d.waitTime&&(d.waitTime=t(a.waitTime));return!0!==d.isQueued&&!1!==d.serviceAvailable&&"RESOURCE_LIMIT"!==d.subCode&&"10605"!==d.code?null:d}(e.message||""):null,e.isError&&await c.cancel().catch(()=>{}),!b){if(e.isError){let b=e.isBilling?l.gx.FORBIDDEN:Number.isInteger(e.statusVal)&&e.statusVal>=400&&e.statusVal<=599?e.statusVal:l.gx.BAD_GATEWAY;return{response:new Response(JSON.stringify({error:{message:e.message||"qoder upstream error",code:e.statusVal}}),{status:b,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}let b=new Response(new ReadableStream({start(a){let b=!1,d=()=>{if(!b){b=!0;try{a.close()}catch{}}},f=c=>{if(b)return!1;try{return a.enqueue(c),!0}catch{return b=!0,!1}},g=new TextEncoder;if(e.consumed&&!f(g.encode(e.consumed)))return;if(e.upstreamDone)return void d();let h=()=>{b||c.read().then(({done:a,value:b})=>{a?d():f(b)&&h()}).catch(()=>d())};h()},cancel:()=>c.cancel().catch(()=>{})}),{status:a.response.status,statusText:a.response.statusText,headers:a.response.headers});return{response:await U(b,D,g),url:a.url,headers:a.headers,transformedBody:a.transformedBody}}}J=b;let c=Date.now()-I;if(c>=H)return g?.warn?.("QODER",`model queue wait timed out after ${Math.round(c/1e3)}s for ${D} (queueType=${J.queueType||"?"}, waitTime=${J.waitTime??"?"}s)`),{response:new Response(JSON.stringify({error:{message:`qoder model "${k}" is still queued after ${Math.round(c/1e3)}s (queueType=${J.queueType||"?"}); retry shortly`,code:"qoder_model_queued",type:"rate_limit_error"}}),{status:503,headers:{"Content-Type":"application/json"}}),url:a.url,headers:a.headers,transformedBody:a.transformedBody};let d=x(b);if(K){let c=M.request_set_id,e=await G(b.modelKey||k,b.queueType,c,M.request_id,M.session_id);e.endpointOk?!1===e.info.isQueued?L?(K=!1,g?.info?.("QODER",`queue status claims ready but "${k}" is still refused; falling back to timed replays`)):(L=!0,g?.info?.("QODER",`model "${k}" reported ready (queueType=${e.info.queueType||"?"}); replaying`),d=0):(N=a,J={...b,...e.info},d=x(e.info,{fromStatus:!0}),g?.info?.("QODER",`model "${k}" still queued (queueType=${e.info.queueType||"?"}, queueCount=${e.info.queueCount??"?"}); rechecking in ${Math.round(d/1e3)}s`)):K=!1}d>0&&await function(a,b){return a>0?new Promise((c,d)=>{if(b?.aborted)return void d(b.reason);let e=setTimeout(()=>{b?.removeEventListener?.("abort",f),c()},a),f=()=>{clearTimeout(e),d(b.reason)};b?.addEventListener?.("abort",f,{once:!0})}):Promise.resolve()}(Math.min(d,Math.max(0,H-(Date.now()-I))),f)}}async refreshCredentials(){return null}needsRefresh(){return!1}}},78196:(a,b,c)=>{"use strict";let d,e,f,g,{Headers:h,HeadersList:i,fill:j,getHeadersGuard:k,setHeadersGuard:l,setHeadersList:m}=c(28665),{extractBody:n,cloneBody:o,mixinBody:p,streamRegistry:q,bodyUnusable:r}=c(35381),s=c(84285),t=c(57975),{kEnumerableProperty:u}=s,{isValidReasonPhrase:v,isCancelled:w,isAborted:x,isErrorLike:y,environmentSettingsObject:z}=c(42425),{redirectStatusSet:A,nullBodyStatus:B}=c(19608),{webidl:C}=c(32984),{URLSerializer:D}=c(16537),{kConstruct:E}=c(49176),F=c(34589),{isomorphicEncode:G,serializeJavascriptValueToJSONString:H}=c(70745),I=new TextEncoder("utf-8");class J{#e;#a;static error(){return Q(M(),"immutable")}static json(a,b){C.argumentLengthCheck(arguments,1,"Response.json"),b=C.converters.ResponseInit(b);let c=n(I.encode(H(a))),d=Q(L({}),"response");return P(d,b,{body:c[0],type:"application/json"}),d}static redirect(a,b=302){let c;C.argumentLengthCheck(arguments,1,"Response.redirect"),a=C.converters.USVString(a),b=C.converters["unsigned short"](b);try{c=new URL(a,z.settingsObject.baseUrl)}catch(b){throw TypeError(`Failed to parse URL from ${a}`,{cause:b})}if(!A.has(b))throw RangeError(`Invalid status code ${b}`);let d=Q(L({}),"immutable");d.#a.status=b;let e=G(D(c));return d.#a.headersList.append("location",e,!0),d}constructor(a=null,b){if(C.util.markAsUncloneable(this),a===E)return;null!==a&&(a=C.converters.BodyInit(a,"Response","body")),b=C.converters.ResponseInit(b),this.#a=L({}),this.#e=new h(E),l(this.#e,"response"),m(this.#e,this.#a.headersList);let c=null;if(null!=a){const[b,d]=n(a);c={body:b,type:d}}P(this,b,c)}get type(){return C.brandCheck(this,C.is.Response),this.#a.type}get url(){C.brandCheck(this,C.is.Response);let a=this.#a.urlList,b=a[a.length-1]??null;return null===b?"":D(b,!0)}get redirected(){return C.brandCheck(this,C.is.Response),this.#a.urlList.length>1}get status(){return C.brandCheck(this,C.is.Response),this.#a.status}get ok(){return C.brandCheck(this,C.is.Response),this.#a.status>=200&&this.#a.status<=299}get statusText(){return C.brandCheck(this,C.is.Response),this.#a.statusText}get headers(){return C.brandCheck(this,C.is.Response),this.#e}get body(){return C.brandCheck(this,C.is.Response),this.#a.body?this.#a.body.stream:null}get bodyUsed(){return C.brandCheck(this,C.is.Response),!!this.#a.body&&s.isDisturbed(this.#a.body.stream)}clone(){if(C.brandCheck(this,C.is.Response),r(this.#a))throw C.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let a=K(this.#a);return 0!==this.#a.urlList.length&&this.#a.body?.stream&&q.register(this,new WeakRef(this.#a.body.stream)),Q(a,k(this.#e))}[t.inspect.custom](a,b){null===b.depth&&(b.depth=2),b.colors??=!0;let c={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${t.formatWithOptions(b,c)}`}static{d=a=>a.#e,e=(a,b)=>{a.#e=b},f=a=>a.#a,g=(a,b)=>{a.#a=b},C.is.Response=a=>null!=a&&"object"==typeof a&&#a in a}}function K(a){if(a.internalResponse)return O(K(a.internalResponse),a.type);let b=L({...a,body:null});return null!=a.body&&(b.body=o(a.body)),b}function L(a){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...a,headersList:a?.headersList?new i(a?.headersList):new i,urlList:a?.urlList?[...a.urlList]:[]}}function M(a){return L({type:"error",status:0,error:y(a)?a:Error(a?String(a):a),aborted:a&&"AbortError"===a.name})}function N(a,b){return b={internalResponse:a,...b},new Proxy(a,{get:(a,c)=>c in b?b[c]:a[c],set:(a,c,d)=>(F(!(c in b)),a[c]=d,!0)})}function O(a,b){return"basic"===b?N(a,{type:"basic",headersList:a.headersList}):"cors"===b?N(a,{type:"cors",headersList:a.headersList}):"opaque"===b?N(a,{type:"opaque",urlList:[],status:0,statusText:"",body:null}):"opaqueredirect"===b?N(a,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null}):void F(!1)}function P(a,b,c){if(null!==b.status&&(b.status<200||b.status>599))throw RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in b&&null!=b.statusText&&!v(String(b.statusText)))throw TypeError("Invalid statusText");if("status"in b&&null!=b.status&&(f(a).status=b.status),"statusText"in b&&null!=b.statusText&&(f(a).statusText=b.statusText),"headers"in b&&null!=b.headers&&j(d(a),b.headers),c){if(B.includes(a.status))throw C.errors.exception({header:"Response constructor",message:`Invalid response status code ${a.status}`});f(a).body=c.body,null==c.type||f(a).headersList.contains("content-type",!0)||f(a).headersList.append("content-type",c.type,!0)}}function Q(a,b){let c=new J(E);g(c,a);let d=new h(E);return e(c,d),m(d,a.headersList),l(d,b),0!==a.urlList.length&&a.body?.stream&&q.register(c,new WeakRef(a.body.stream)),c}p(J,f,C.is.Response),Object.defineProperties(J.prototype,{type:u,url:u,status:u,ok:u,redirected:u,statusText:u,headers:u,clone:u,body:u,bodyUsed:u,[Symbol.toStringTag]:{value:"Response",configurable:!0}}),Object.defineProperties(J,{json:u,redirect:u,error:u}),C.converters.XMLHttpRequestBodyInit=function(a,b,c){return"string"==typeof a?C.converters.USVString(a,b,c):C.is.Blob(a)||C.is.BufferSource(a)||C.is.FormData(a)||C.is.URLSearchParams(a)?a:C.converters.DOMString(a,b,c)},C.converters.BodyInit=function(a,b,c){return C.is.ReadableStream(a)||a?.[Symbol.asyncIterator]?a:C.converters.XMLHttpRequestBodyInit(a,b,c)},C.converters.ResponseInit=C.dictionaryConverter([{key:"status",converter:C.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:C.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:C.converters.HeadersInit}]),a.exports={isNetworkError:function(a){return"error"===a.type&&0===a.status},makeNetworkError:M,makeResponse:L,makeAppropriateNetworkError:function(a,b=null){return F(w(a)),x(a)?M(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:b})):M(Object.assign(new DOMException("Request was cancelled."),{cause:b}))},filterResponse:O,Response:J,cloneResponse:K,fromInnerResponse:Q,getResponseState:f}},78492:(a,b,c)=>{"use strict";c.d(b,{SM:()=>i,V2:()=>m,kt:()=>n,ux:()=>l,vq:()=>e.vq});var d=c(4313),e=c(15251),f=c(97915),g=c(62397),h=c(68531);function i(a){return e.vq[a]||[]}let j=new Set(["kr","kiro"]);function k(a,b,c){if(!a)return;let d="string"==typeof b?b.replace(/\([^()]+\)\s*$/,"").trim():b,e=a.find(a=>a.id===b||a.id===d);if(e)return e;if(!j.has(c))return;let g=(0,f.Kq)(d);if(g!==d)return a.find(a=>a.id===g)}function l(a,b){if((!a||"oc"===a||"opencode"===a||"ocg"===a||"opencode-go"===a||"ocz"===a||"opencode-zen"===a)&&(0,g.nh)(b))return h.h.OPENAI_RESPONSES;let c=e.vq[a];if(!c)return null;let d=k(c,b,a);return d?(0,f.gr)(d):("opencode-go"===a||"ocg"===a)&&(0,g.i8)(b)?.targetFormat||null}function m(a,b){return k(e.vq[a],b,a)||null}function n(a,b,c=null){let d="string"==typeof b?b.match(/\([^()]+\)\s*$/):null,f=d?d[0]:"",h=f?b.slice(0,d.index).trim():b,i=e.vq[a],j=f?f.slice(1,-1).trim().toLowerCase():"",l="xhigh"===j||"max"===j?"high":"minimal"===j?"low":j;if(!l&&c&&"object"==typeof c){let a=c.reasoning_effort||c.output_config?.effort||("object"==typeof c.reasoning?c.reasoning?.effort:null);if("string"==typeof a&&a){let b=a.toLowerCase().trim();l="xhigh"===b||"max"===b?"high":"minimal"===b?"low":b}else if(c.thinking&&"object"==typeof c.thinking){let a=Number(c.thinking.budget_tokens);Number.isFinite(a)&&a>0&&(l=a>16384?"high":a<=4096?"low":"medium")}}let m=l?`${h}-${l}`:null,o=m&&k(i,m,a)||k(i,h,a),p=o?.upstreamModelId||o?.id;if(p){let a=p.match(/\([^()]+\)\s*$/),b=a?.[0]||"";return(b?p.slice(0,a.index).trim():p)+(f||(b&&l?`(${l})`:b))}return"cx"===a&&"string"==typeof h&&h.endsWith(g.d5)?h.slice(0,-g.d5.length)+f:h+f}Object.fromEntries(d.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),Object.fromEntries(d.A.map(a=>[a.id,a.alias||a.id]))},78953:(a,b,c)=>{"use strict";c.d(b,{R4:()=>e.R4,BY:()=>h,a_:()=>f.a_,RV:()=>d.R,rP:()=>g,x4:()=>e.x4,bC:()=>f.bC,Du:()=>e.Du,z7:()=>d.z});var d=c(66634),e=c(93373),f=c(62457);let g="unknown",h="image/png"},79401:(a,b,c)=>{"use strict";c.d(b,{EM:()=>v,F8:()=>p,NH:()=>t,RB:()=>C,TG:()=>F,Ty:()=>y,Y6:()=>s,_G:()=>n,bg:()=>m,cT:()=>x,d2:()=>u,e9:()=>w,iu:()=>r,o8:()=>q,oj:()=>l,pM:()=>B,pr:()=>G,qk:()=>z,rf:()=>j,ty:()=>g,uR:()=>o,xG:()=>A});let d="intl",e={[d]:{chat:"https://api3.qoder.sh",chatAlt:"https://api2.qoder.sh",openApi:"https://openapi.qoder.sh",center:"https://center.qoder.sh",login:"https://qoder.com/device/selectAccounts",website:"https://qoder.com"},cn:{chat:"https://gateway.qoder.com.cn",chatAlt:"https://gateway.qoder.com.cn",openApi:"https://openapi.qoder.com.cn",center:"https://gateway.qoder.com.cn",login:"https://qoder.com.cn/device/selectAccounts",website:"https://qoder.com.cn"}};function f(a){return e[a]||e[d]}function g(a){return"qoder-cn"===a?"cn":d}e[d].openApi,e[d].center;let h=e[d].chat,i=e[d].chatAlt,j=e[d].login;function k(a){return f(a).openApi}function l(a){return`${k(a)}/api/v1/userinfo`}let m=`${k(d)}/api/v1/deviceToken/poll`,n=l(d);function o(a){return`${k(a)}/api/v1/jobToken/exchange`}k(d),f(d).center,o(d);let p="/api/v2/service/pro/sse/agent_chat_generation";f(d).chat;let q="/api/v2/image/upload",r=6291456,s=524288,t=.15,u="QODER_CONTEXT_TIER",v=Object.freeze({AUTO:"auto",MAX:"max",DEFAULT:"default"});function w(a,b){if("cn"===(b||g(a?.provider)))return e.cn.chat;let c=a?.apiKey||a?.accessToken;return"string"==typeof c&&!c.startsWith("pt-")&&(c.startsWith("jt-")||(a?.accessToken||"").startsWith("jt-"))?i:h}let x="1.0.0",y="5",z="disagree",A="v2",B="x86_64_windows",C="5",D=Object.freeze({model:"",format:"openai",source:"system",url:""}),E=Object.freeze({smodel:Object.freeze({...D,key:"smodel",display_name:"Sonus",is_vl:!0,is_reasoning:!0,max_input_tokens:18e4}),cmodel:Object.freeze({...D,key:"cmodel",display_name:"Cantus",is_vl:!0,is_reasoning:!0,max_input_tokens:18e4})});function F(a){let b=E[a];return b?{...b,key:a}:null}let G=`-----BEGIN PUBLIC KEY-----
444
444
  MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA8iMH5c02LilrsERw9t6Pv5Nc
445
445
  4k6Pz1EaDicBMpdpxKduSZu5OANqUq8er4GM95omAGIOPOh+Nx0spthYA2BqGz+l
446
446
  6HRkPJ7S236FZz73In/KVuLnwI8JJ2CbuJap8kvheCCZpmAWpb/cPx/3Vr/J6I17