@rsalmn/extremerouter 0.8.6 → 0.8.8
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.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +15 -11
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/routes-manifest.json +26 -0
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -4
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/alerts/test/route.js +2 -2
- package/app/.next-cli-build/server/app/api/alerts/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/breaker/route.js +1 -1
- package/app/.next-cli-build/server/app/api/breaker/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cache/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cache/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +3 -3
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/lab/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/lab/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/simulate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/simulate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js +2 -2
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/overview/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/overview/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/health/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +5 -5
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -0
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/1min/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/1min/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/freebuff/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/freebuff/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/quota/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/quota/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/qwen/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/qwen/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/wp-studio/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/wp-studio/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zcode/import/route.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/zcode/import/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/zcode/import/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/agnes-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/agnes-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/felo-profile/route.js +2 -2
- package/app/.next-cli-build/server/app/api/providers/[id]/felo-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +2 -2
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zai-profile/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zai-profile/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/launch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/launch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/capture/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/launch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/launch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/felo-capture/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/active/route.js +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/active/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/history/route.js +2 -2
- package/app/.next-cli-build/server/app/api/smart-routing/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/lab/route.js +2 -2
- package/app/.next-cli-build/server/app/api/smart-routing/lab/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/smart-routing/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/smart-routing/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/swarm/active/route.js +1 -1
- package/app/.next-cli-build/server/app/api/swarm/active/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/swarm/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/swarm/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/meta/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/meta/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/media/results/[id]/route.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/media/results/[id]/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/v1/media/results/[id]/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/video/generations/route.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/video/generations/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/v1/video/generations/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +2 -2
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +2 -2
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login/page.js +2 -2
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +2 -2
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +15 -11
- package/app/.next-cli-build/server/chunks/1194.js +1 -1
- package/app/.next-cli-build/server/chunks/1241.js +1 -1
- package/app/.next-cli-build/server/chunks/1350.js +3 -3
- package/app/.next-cli-build/server/chunks/1411.js +9 -0
- package/app/.next-cli-build/server/chunks/1429.js +1 -1
- package/app/.next-cli-build/server/chunks/1719.js +1 -1
- package/app/.next-cli-build/server/chunks/212.js +1 -1
- package/app/.next-cli-build/server/chunks/2409.js +1 -1
- package/app/.next-cli-build/server/chunks/2436.js +1 -0
- package/app/.next-cli-build/server/chunks/3520.js +1 -1
- package/app/.next-cli-build/server/chunks/3535.js +1 -1
- package/app/.next-cli-build/server/chunks/3552.js +1 -0
- package/app/.next-cli-build/server/chunks/3593.js +1 -1
- package/app/.next-cli-build/server/chunks/4046.js +1 -1
- package/app/.next-cli-build/server/chunks/4109.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +1 -1
- package/app/.next-cli-build/server/chunks/4161.js +1 -0
- package/app/.next-cli-build/server/chunks/4502.js +6 -6
- package/app/.next-cli-build/server/chunks/4739.js +1 -1
- package/app/.next-cli-build/server/chunks/4780.js +1 -1
- package/app/.next-cli-build/server/chunks/4828.js +1 -0
- package/app/.next-cli-build/server/chunks/4957.js +1 -0
- package/app/.next-cli-build/server/chunks/4987.js +1 -0
- package/app/.next-cli-build/server/chunks/5050.js +2 -0
- package/app/.next-cli-build/server/chunks/507.js +1 -1
- package/app/.next-cli-build/server/chunks/5253.js +1 -1
- package/app/.next-cli-build/server/chunks/5258.js +1 -1
- package/app/.next-cli-build/server/chunks/5330.js +17 -17
- package/app/.next-cli-build/server/chunks/5473.js +9 -0
- package/app/.next-cli-build/server/chunks/5604.js +13 -0
- package/app/.next-cli-build/server/chunks/5612.js +1 -1
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5628.js +1 -1
- package/app/.next-cli-build/server/chunks/5961.js +1 -1
- package/app/.next-cli-build/server/chunks/6007.js +10 -0
- package/app/.next-cli-build/server/chunks/6157.js +1 -0
- package/app/.next-cli-build/server/chunks/6182.js +1 -1
- package/app/.next-cli-build/server/chunks/6488.js +1 -0
- package/app/.next-cli-build/server/chunks/6777.js +1 -1
- package/app/.next-cli-build/server/chunks/698.js +1 -1
- package/app/.next-cli-build/server/chunks/7247.js +1 -0
- package/app/.next-cli-build/server/chunks/7566.js +2 -2
- package/app/.next-cli-build/server/chunks/7765.js +2 -2
- package/app/.next-cli-build/server/chunks/7965.js +1 -1
- package/app/.next-cli-build/server/chunks/809.js +1 -1
- package/app/.next-cli-build/server/chunks/8238.js +1 -1
- package/app/.next-cli-build/server/chunks/8240.js +1 -0
- package/app/.next-cli-build/server/chunks/8266.js +1 -1
- package/app/.next-cli-build/server/chunks/8271.js +1 -1
- package/app/.next-cli-build/server/chunks/8520.js +1 -1
- package/app/.next-cli-build/server/chunks/8802.js +2 -2
- package/app/.next-cli-build/server/chunks/885.js +15 -15
- package/app/.next-cli-build/server/chunks/8851.js +3 -0
- package/app/.next-cli-build/server/chunks/8895.js +6 -6
- package/app/.next-cli-build/server/chunks/9609.js +1 -1
- package/app/.next-cli-build/server/chunks/9715.js +1 -0
- package/app/.next-cli-build/server/chunks/9903.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +6 -6
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/1321-738b3efba6f43f03.js +1 -0
- package/app/.next-cli-build/static/chunks/5497-97801e653d366579.js +7 -0
- package/app/.next-cli-build/static/chunks/705-1b66113f1f9bdd89.js +1 -0
- package/app/.next-cli-build/static/chunks/9086-5e0c8ccb81f25cbb.js +1 -0
- package/app/.next-cli-build/static/chunks/{9622-fcd7c93a94eaa38f.js → 9622-1dc5485471326b33.js} +6 -6
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/alerts/{page-812b19e92ea94f14.js → page-5da9d88aea0f0c4d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-9a0e996c5bc5a169.js → page-af18b8bd5a604e31.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-0e1d5c3cf52823c3.js → page-c933ec2b61961be3.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-3122fd2735ba291c.js → page-3b6ddb5ae1f382fc.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-6e960c6e7b31b9df.js +3 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-dd4edb101f50cc0f.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-f1add2aaae4a459c.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/health/{page-1c94a0710d61767e.js → page-2ac0245eea32c9aa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-9e98db59d6b1d05f.js → page-e0b2567bb9fe606d.js} +7 -7
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-026721fa921475e0.js → page-9da68f29ab52796d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-ec37860600228def.js → page-2c80d26d992e4bb2.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-7cdd74503baa001a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-825c8673e6351d02.js → page-ebc169fccd95e5d8.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-65072e4024bb73b6.js → page-50b3f8c8ed3358f2.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/overview/{page-b92bc7ebaa0813b2.js → page-c4728000c2a09214.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-86eaf12ef68c60ba.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-c43d594bf432dbb3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-8147c101767a32a1.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-9eea89b85926cfd8.js → page-f20fce2b984f4ef3.js} +3 -3
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-aaaaeede554f51a5.js → page-99b2fb0411fa61e4.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-3231355c17df9913.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-70bfba02b4fc414f.js → page-c619835a47dd125d.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-46f5c7b65b5bb9ad.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-17bcf4e0db497e3a.js → page-fb7fe2c2ce8ee710.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-6e8f34517990d858.js → page-971ad40322c4940b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-d9e35b679b85696a.js → page-33f472a9351a93f8.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-52a5ff6e854d82e7.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-20cc41f2e1307f06.js → layout-6605206f3a2e2db9.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/breaker/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cache/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/lab/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/simulate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/overview/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/providers/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/catalog-sync/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/freebuff/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/quota/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/qwen/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zcode/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/felo-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zai-profile/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/launch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/launch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/active/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/history/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/lab/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/media/results/[id]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/video/generations/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/{page-bc142d42a8a549b4.js → page-cb505396f61fd853.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/{layout-0e3fdd66d189006c.js → layout-43c49c1c04131398.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/login/{page-4b39978fc147efa3.js → page-783218bde9da4df5.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-fe046df355b8d174.js +1 -0
- package/app/.next-cli-build/static/css/4311ce5e9ab1213e.css +1 -0
- package/app/.next-cli-build/static/zahf-uMWnrDSCrrfcee0d/_buildManifest.js +1 -0
- package/app/package.json +1 -1
- package/app/public/favicon.svg +70 -8
- package/app/public/icons/icon-192.svg +73 -3
- package/app/public/icons/icon-512.svg +72 -3
- package/app/public/providers/ai21.png +0 -0
- package/app/public/providers/aimlapi.png +0 -0
- package/app/public/providers/ainative.png +0 -0
- package/app/public/providers/aion.png +0 -0
- package/app/public/providers/alibaba-cn.svg +1 -11
- package/app/public/providers/alibaba.svg +1 -11
- package/app/public/providers/alitp-intl.svg +1 -0
- package/app/public/providers/anyapi.png +0 -0
- package/app/public/providers/arcee-ai.png +0 -0
- package/app/public/providers/auriko.svg +61 -4
- package/app/public/providers/azure-ai.svg +23 -4
- package/app/public/providers/bai.png +0 -0
- package/app/public/providers/baseten.png +0 -0
- package/app/public/providers/blackbox-web.png +0 -0
- package/app/public/providers/bluesminds.png +0 -0
- package/app/public/providers/bytez.png +0 -0
- package/app/public/providers/charm-hyper.png +0 -0
- package/app/public/providers/chatanywhere.svg +1 -4
- package/app/public/providers/cheaperinference.png +0 -0
- package/app/public/providers/chenzk.png +0 -0
- package/app/public/providers/clarifai.svg +1 -4
- package/app/public/providers/cloudcode-one.svg +12 -3
- package/app/public/providers/conol-web.png +0 -0
- package/app/public/providers/crof.png +0 -0
- package/app/public/providers/datarobot.png +0 -0
- package/app/public/providers/digitalocean.svg +1 -4
- package/app/public/providers/dit.svg +9 -3
- package/app/public/providers/docker-model-runner.svg +1 -1
- package/app/public/providers/duckduckgo-web.svg +1 -7
- package/app/public/providers/dxnt.svg +9 -3
- package/app/public/providers/gemini-business.svg +1 -1
- package/app/public/providers/gitlab.svg +1 -0
- package/app/public/providers/hailuo-web.svg +1 -1
- package/app/public/providers/heroku.svg +15 -3
- package/app/public/providers/huggingchat.svg +1 -9
- package/app/public/providers/kimi-desktop.svg +1 -9
- package/app/public/providers/kimi-web.svg +1 -8
- package/app/public/providers/lm-studio.svg +1 -1
- package/app/public/providers/meta-llama.svg +1 -4
- package/app/public/providers/modal.svg +1 -4
- package/app/public/providers/modelscope.svg +1 -4
- package/app/public/providers/notion-web.svg +1 -1
- package/app/public/providers/oci.svg +19 -3
- package/app/public/providers/ollama-cloud.svg +1 -4
- package/app/public/providers/orcarouter.png +0 -0
- package/app/public/providers/ovhcloud.svg +1 -4
- package/app/public/providers/perplexity-agent.svg +1 -13
- package/app/public/providers/poe-web.svg +1 -8
- package/app/public/providers/qwen-cloud.svg +1 -1
- package/app/public/providers/qwen-web.svg +1 -6
- package/app/public/providers/qwencloud.svg +1 -6
- package/app/public/providers/sap.svg +1 -4
- package/app/public/providers/scaleway.svg +1 -4
- package/app/public/providers/snowflake.svg +1 -4
- package/app/public/providers/triton.svg +1 -1
- package/app/public/providers/vllm.svg +1 -1
- package/app/public/providers/wandb.svg +1 -4
- package/app/public/providers/watsonx.svg +50 -3
- package/app/public/providers/xkiro.svg +11 -0
- package/app/public/providers/zai-web.svg +1 -7
- package/app/public/providers/zcode.png +0 -0
- package/app/public/vercel.svg +73 -1
- package/app/src/lib/db/migrate.js +6 -3
- package/app/src/mitm/server.js +27 -27
- package/package.json +1 -1
- package/src/cli/menus/providers.js +6 -0
- package/src/cli/tray/icon.ico +0 -0
- package/src/cli/tray/icon.png +0 -0
- package/app/.next-cli-build/server/chunks/1891.js +0 -10
- package/app/.next-cli-build/server/chunks/3735.js +0 -1
- package/app/.next-cli-build/server/chunks/3841.js +0 -1
- package/app/.next-cli-build/server/chunks/3988.js +0 -1
- package/app/.next-cli-build/server/chunks/422.js +0 -9
- package/app/.next-cli-build/server/chunks/5699.js +0 -1
- package/app/.next-cli-build/server/chunks/6306.js +0 -1
- package/app/.next-cli-build/server/chunks/6878.js +0 -1
- package/app/.next-cli-build/server/chunks/7016.js +0 -3
- package/app/.next-cli-build/server/chunks/7410.js +0 -1
- package/app/.next-cli-build/server/chunks/8048.js +0 -1
- package/app/.next-cli-build/server/chunks/874.js +0 -9
- package/app/.next-cli-build/server/chunks/9703.js +0 -14
- package/app/.next-cli-build/static/FP2YsqoRbzETOIHRfld7X/_buildManifest.js +0 -1
- package/app/.next-cli-build/static/chunks/1321-a387932dc3179f86.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-c6d8b48c8828240a.js +0 -7
- package/app/.next-cli-build/static/chunks/705-42ad329bbe0c47df.js +0 -1
- package/app/.next-cli-build/static/chunks/9497-d27e455b90c7936e.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a84afe4d66f3439a.js +0 -3
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-9850fafcf9dd605b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-9879594c5128cd91.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/page-99c8024bece93467.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-d3be818ebce4ade2.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-5ef2d54550eda9da.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-d208597b457fee58.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-1f465a9d64823fe6.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-e249d28461673557.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-7ea08e0acef52ce3.js +0 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/breaker/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cache/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/lab/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/simulate/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/overview/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/providers/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/stream/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/freebuff/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/auto-import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/quota/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/qwen/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/felo-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zai-profile/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/launch/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/capture/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/launch/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/active/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/history/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/lab/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/smart-routing/stream/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-d93feb6893aee449.js +0 -1
- package/app/.next-cli-build/static/css/d30ee18d498368cc.css +0 -1
- package/app/public/providers/ai21.svg +0 -4
- package/app/public/providers/aimlapi.svg +0 -4
- package/app/public/providers/ainative.svg +0 -4
- package/app/public/providers/aion.svg +0 -4
- package/app/public/providers/anyapi.svg +0 -4
- package/app/public/providers/arcee-ai.svg +0 -4
- package/app/public/providers/bai.svg +0 -4
- package/app/public/providers/baseten.svg +0 -4
- package/app/public/providers/blackbox-web.svg +0 -6
- package/app/public/providers/bluesminds.svg +0 -4
- package/app/public/providers/bytez.svg +0 -4
- package/app/public/providers/charm-hyper.svg +0 -4
- package/app/public/providers/cheaperinference.svg +0 -4
- package/app/public/providers/chenzk.svg +0 -4
- package/app/public/providers/conol-web.svg +0 -1
- package/app/public/providers/crof.svg +0 -4
- package/app/public/providers/datarobot.svg +0 -4
- package/app/public/providers/orcarouter.svg +0 -4
- /package/app/.next-cli-build/static/{FP2YsqoRbzETOIHRfld7X → zahf-uMWnrDSCrrfcee0d}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
exports.id=8802,exports.ids=[8802,9573],exports.modules={1133:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{O:()=>x,g:()=>w});var e=c(48895),f=c(89718),g=c(69788),h=c(6551),i=c(55330),j=c(74129),k=c(39609),l=c(39326),m=c(18271),n=c(30869),o=a([e,i,m]);[e,i,m]=o.then?(await o)():o;let y=n.oc,z={claude:{getUsage:g.g,sendPing:s},codex:{getUsage:h.Tl,sendPing:u}},A=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{}};function p(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function q(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function r(a){if(!a||!0===a.unlimited)return!1;let b=q(a.remaining);if(null!==b)return b<=0;let c=q(a.used),d=q(a.total);return null!==d&&d>0&&null!==c&&c>=d}async function s(a,b,c,d){return(await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...j.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c)).ok}async function t(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function u(a,b,c,d){var e;let f=d.getExecutor("codex"),{response:g}=await f.execute({model:b.pingModel,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,providerSpecificData:a.providerSpecificData},proxyOptions:c,log:console,body:{model:b.pingModel,input:(e=b.pingText,[{type:"message",role:"user",content:[{type:"input_text",text:e}]}]),instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await t(g),!0}async function v(a,b,c,d,e,f=A){var g,h,i;let j=(g=a.id,`${b}:${g}`),k=f.resetCache[j];if(!c.pingWhenResetAtSlides&&k&&Date.now()<new Date(k).getTime()-y.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<y.failureCooldownMs}(f,j))return;let l=(h=await e.resolveConnectionProxyConfig(a.providerSpecificData),{connectionProxyEnabled:!0===h.connectionProxyEnabled,connectionProxyUrl:h.connectionProxyUrl||"",connectionNoProxy:h.connectionNoProxy||"",vercelRelayUrl:h.vercelRelayUrl||"",strictProxy:!1}),m=a;try{m=(await e.refreshAndUpdateCredentials(m,!1,l)).connection}catch(c){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let n=await d.getUsage(m.accessToken,l),o=n?.quotas||{},q=o?.[c.quotaKey],s=q?.resetAt;if(!s||(f.resetCache[j]=s,c.skipWhenBlockingQuotaExhausted&&(i=c.quotaKey,Object.entries(o||{}).some(([a,b])=>a!==i&&!String(a).toLowerCase().includes("session")&&r(b)))||r(q)))return;let t=Date.now(),u=p(s),w=m.lastPingedResetKey||p(m.lastPingedResetAt);if(!(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-y.pingLeadMs}(c,k,s,t)||function(a,b,c=Date.now()){if(!b)return!1;let d=new Date(a.lastPingAt).getTime();return Number.isFinite(d)&&c-d<b}(m,c.minPingIntervalMs,t))&&w!==u){if(!await d.sendPing(m,c,l,e)){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: ping failed (reset ${s})`);return}delete f.failureCache[j],await e.updateProviderConnection(m.id,{lastPingedResetAt:s,lastPingedResetKey:u,lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),console.log(`[AutoPing] ${b}:${m.id}: ping sent (reset ${s})`)}}async function w(a={getSettings:f.mt,getProviderConnections:f.getProviderConnections,updateProviderConnection:f.updateProviderConnection,resolveConnectionProxyConfig:l.B,refreshAndUpdateCredentials:m.refreshAndUpdateCredentials,proxyAwareFetch:k.proxyAwareFetch,getExecutor:i.SB},b=A){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(y.providers)){let g=z[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await v(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function x(){!A.interval&&(console.log("[AutoPing] scheduler started"),w().catch(()=>{}),A.interval=setInterval(()=>{w().catch(()=>{})},y.tickIntervalMs),A.interval.unref&&A.interval.unref())}d()}catch(a){d(a)}})},3256:(a,b,c)=>{"use strict";c.d(b,{R:()=>l});var d=c(7803),e=c(89718),f=c(67828),g=c(8521);let h="1"===process.env.DISABLE_BACKGROUND_TOKEN_REFRESH,i=!1,j=!1;async function k(){if(!j){j=!0;try{let a=(await (0,e.getProviderConnections)({isActive:!0})).filter(a=>"oauth"===a.authType),b=0;for(let c of a){let a=c.provider,e=c.expiresAt?new Date(c.expiresAt).getTime():null;if(null!==e&&e-Date.now()<Math.max((0,g.Og)(a),18e5)){if(!c.refreshToken){d.debug("REFRESH",`${a}:${c.id?.slice(0,8)} due but no refreshToken — skip`);continue}try{await (0,f.eU)(a,c,{force:!0}),b++}catch(b){d.warn("REFRESH",`${a}:${c.id?.slice(0,8)} background refresh failed`,{error:b?.message??b})}}}b>0&&d.info("REFRESH",`Background refresh done: ${b}/${a.length} connections refreshed`)}catch(a){d.warn("REFRESH","Background refresh sweep failed",{error:a?.message??a})}finally{j=!1}}}function l(){if(h)return void d.info("REFRESH","Background token refresh disabled via DISABLE_BACKGROUND_TOKEN_REFRESH");if(i)return;i=!0;let a=setTimeout(()=>{k().catch(()=>{})},1e4);a.unref&&a.unref();let b=setInterval(()=>{k().catch(()=>{})},3e5);b.unref&&b.unref(),d.info("REFRESH","Background token refresh started (boot +10s, every 5min)")}},5211:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>f});var d=c(48249);c(67484);var e=c(19099);function f({children:a}){return(0,e.usePathname)(),(0,d.jsx)(d.Fragment,{children:a})}c(99258)},10680:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},11352:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},12020:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>d.Q2,fg:()=>d.fg,vQ:()=>e,MA:()=>d.MA,UY:()=>i,Nu:()=>f,zN:()=>d.zN,B2:()=>h,h0:()=>g});var d=c(92592);c(91431);let e={name:"ExtremeRouter",description:"AI Gateway Control Plane",version:"0.8.6"},f={changelogUrl:"https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/main/CHANGELOG.md",donateUrl:"https://github.com/sponsors/rsalmn"},g={npmPackageName:"@rsalmn/extremerouter",installCmd:"npm i -g @rsalmn/extremerouter",installCmdLatest:"npm i -g @rsalmn/extremerouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={storageKey:"theme",defaultTheme:"system"},i={maxLines:200,pollIntervalMs:1e3}},13033:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(31417),e=c(300),f=c(12020);let g=(0,d.v)((0,e.Zr)((a,b)=>({theme:f.B2.defaultTheme,setTheme:b=>{a({theme:b})},toggleTheme:()=>{let c=b().theme,d="dark"===c||"glass"===c?"light":"dark";a({theme:d})},initTheme:()=>{b().theme}}),{name:f.B2.storageKey}))},14596:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{var d=c(94123),e=a([d]);d=(e.then?(await e)():e)[0],"phase-production-build"===process.env.NEXT_PHASE||"phase-export"===process.env.NEXT_PHASE||"phase-static"===process.env.NEXT_PHASE||global.__appBootstrapped||(global.__appBootstrapped=!0,(0,d.A)().catch(a=>console.error("[Bootstrap] init failed:",a.message))),b()}catch(a){b(a)}})},16850:(a,b,c)=>{"use strict";c.d(b,{A:()=>G});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"};process.version,function(){switch((0,d.arch)()){case"x64":case"arm64":case"ia32":return;default:return(0,d.arch)()}}(),function(){switch((0,d.platform)()){case"darwin":case"win32":case"linux":case"freebsd":return;default:return(0,d.platform)()}}();let f=(a,b)=>"u">typeof process&&process.env?.[a]||b,g={clientId:f("ANTIGRAVITY_OAUTH_CLIENT_ID","1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com"),clientSecret:f("ANTIGRAVITY_OAUTH_CLIENT_SECRET","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")},h={clientId:f("GEMINI_OAUTH_CLIENT_ID","681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"),clientSecret:f("GEMINI_OAUTH_CLIENT_SECRET","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")},i={clientId:f("IFLOW_OAUTH_CLIENT_ID","10009311001"),clientSecret:f("IFLOW_OAUTH_CLIENT_SECRET","4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW")},j={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"],transport:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":"antigravity/1.107.0 darwin/arm64"},retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:g.clientId,clientSecret:g.clientSecret},models:[{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-pro-agent",name:"Gemini 3.1 Pro (High)"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]}],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",refreshLeadMs:3e5},features:{usage:!0}},k={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:"Command Code is a multi-model AI router with OpenAI and Anthropic API support. Create an API key at commandcode.ai/studio, then paste it here. Supports Claude, GPT, DeepSeek, GLM, Kimi, and more.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.commandcode.ai/provider/v1/chat/completions",format:"openai",validateUrl:"https://api.commandcode.ai/provider/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://api.commandcode.ai/provider/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.commandcode.ai/provider/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://api.commandcode.ai/provider/v1/models",type:"openai"}},l={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",thinkingConfig:{options:["auto","low","high","max"],defaultMode:"auto"},transport:{baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"}},transports:[{format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}]},m={id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",cliVersion:"0.34.0",apiClient:"google-genai-sdk/1.41.0 gl-node/v22.19.0",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:h.clientId,clientSecret:h.clientSecret},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}},n={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:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:h.clientId,clientSecret:h.clientSecret,auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-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-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},o={id:"glm",priority:140,alias:"glm",display:{name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-high",name:"GLM 5.3 High",upstreamModelId:"glm-5.3"},{id:"glm-5.3-low",name:"GLM 5.3 Low",upstreamModelId:"glm-5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},p={id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:i.clientId,clientSecret:i.clientSecret,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}},q={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:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-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}},r={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:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],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"],searchViaChat:{defaultModel:"kimi-k2.5",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},s={id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},t={id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},u={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:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"}]},v={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:{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:[{format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.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"}]},w="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",x={id:"qwen-cloud",priority:164,alias:"qwc",aliases:["qwen-cloud","qwen-cloud-token-plan"],uiAlias:"qwc",display:{name:"Qwen Cloud",icon:"cloud",color:"#7A5EF4",textIcon:"QC",website:"https://dashscope.console.aliyun.com",notice:{signupUrl:"https://dashscope.console.aliyun.com",apiKeyUrl:"https://dashscope.console.aliyun.com/apiKey",text:"Alibaba DashScope international API. Create an API key at dashscope.console.aliyun.com, then paste it here. Supports OpenAI, Anthropic, and Responses API formats — works with any client (Claude Code, Cline, OpenAI, etc.). Hosts Qwen, GLM, DeepSeek, and Kimi models."}},category:"apikey",authType:"apikey",transport:{baseUrl:`${w}/chat/completions`,format:"openai",responsesUrl:`${w}/responses`,validateUrl:`${w}/models`,auth:{combined:!0,header:"Authorization",scheme:"bearer"},quirks:{dropStreamOptions:!0}},transports:[{format:"openai",baseUrl:`${w}/chat/completions`,responsesUrl:`${w}/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"openai-responses",baseUrl:`${w}/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-max",name:"Qwen3.7 Max",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-max-2026-06-08",name:"Qwen3.7 Max (2026-06-08)",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-plus",name:"Qwen3.7 Plus",contextWindow:1e6,maxOutput:65536},{id:"qwen3.6-plus",name:"Qwen3.6 Plus",contextWindow:1e6,maxOutput:65536},{id:"qwen3.6-flash",name:"Qwen3.6 Flash",contextWindow:1e6,maxOutput:32768},{id:"qwen3.6-27b",name:"Qwen3.6 27B",contextWindow:1e6,maxOutput:32768},{id:"qwen3.6-35b-a3b",name:"Qwen3.6 35B A3B",contextWindow:1e6,maxOutput:32768},{id:"qwen3.5-plus-2026-04-20",name:"Qwen3.5 Plus (2026-04-20)",contextWindow:1e6,maxOutput:32768},{id:"qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B",contextWindow:1e6,maxOutput:32768},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B",contextWindow:1e6,maxOutput:32768},{id:"glm-5.2",name:"GLM 5.2",contextWindow:1e6,maxOutput:16384},{id:"glm-5.2-fast-preview",name:"GLM 5.2 Fast Preview",contextWindow:1e6,maxOutput:16384},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:163840,maxOutput:32768},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:163840,maxOutput:32768},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindow:1e6,maxOutput:65536}],passthroughModels:!0,modelsFetcher:{url:`${w}/models`,type:"openai"},reasoningInject:{scope:"all"},thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"}},y={id:"hcnsec",priority:330,alias:"hcnsec",aliases:["hc"],uiAlias:"hc",display:{name:"Huancheng Public API",icon:"security",color:"#0EA5E9",textIcon:"HC",website:"https://api.hcnsec.cn",notice:{signupUrl:"https://api.hcnsec.cn/sign-up?aff=ZKgv",apiKeyUrl:"https://api.hcnsec.cn/sign-up?aff=ZKgv",text:"Xinjiang Huancheng Cybersecurity public LLM API platform. Free credits with daily check-ins. Create an API key at api.hcnsec.cn, then paste it here. Supports both OpenAI and Anthropic API formats — works with any client."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://api.hcnsec.cn/v1/chat/completions",format:"openai",validateUrl:"https://api.hcnsec.cn/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://api.hcnsec.cn/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.hcnsec.cn/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-v3",name:"DeepSeek V3"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"qwq-32b",name:"QwQ 32B"}],passthroughModels:!0,modelsFetcher:{url:"https://api.hcnsec.cn/v1/models",type:"hcnsec"}},z={id:"inxorastudio",priority:340,alias:"inxora",aliases:[],uiAlias:"inxora",display:{name:"InxoraStudio Labs",icon:"science",color:"#8B5CF6",textIcon:"IX",website:"https://labs.inxorastudio.com",notice:{signupUrl:"https://labs.inxorastudio.com",apiKeyUrl:"https://labs.inxorastudio.com/dashboard",text:"InxoraStudio Labs is a multi-model AI gateway hosting Claude, GLM, DeepSeek, and more behind a single API key. Create an API key at labs.inxorastudio.com/dashboard, then paste it here. Supports both OpenAI and Anthropic API formats."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://labs.inxorastudio.com/v1/chat/completions",format:"openai",validateUrl:"https://labs.inxorastudio.com/api/ai/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://labs.inxorastudio.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://labs.inxorastudio.com/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://labs.inxorastudio.com/api/ai/models",type:"inxora"}},A={id:"bynara",priority:350,alias:"bynara",aliases:["by"],uiAlias:"by",display:{name:"Bynara",icon:"hub",color:"#6366F1",textIcon:"BY",website:"https://router.bynara.id",notice:{signupUrl:"https://router.bynara.id/register?ref=884C9YJM",apiKeyUrl:"https://router.bynara.id/register?ref=884C9YJM",text:"Bynara is a multi-model AI router with OpenAI, Anthropic, and Responses API support. Create an API key at router.bynara.id, then paste it here. Supports LLM chat, image generation, and image editing."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://router.bynara.id/v1/chat/completions",format:"openai",responsesUrl:"https://router.bynara.id/v1/responses",validateUrl:"https://router.bynara.id/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://router.bynara.id/v1/chat/completions",responsesUrl:"https://router.bynara.id/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://router.bynara.id/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://router.bynara.id/v1/models",type:"bynara"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api-images.bynara.id/v1/images/generations",editUrl:"https://api-images.bynara.id/v1/images/edits",bodyFields:["model","prompt","n","size","response_format"]}},B={id:"infron",priority:355,alias:"infron",aliases:["ifr"],uiAlias:"ifr",display:{name:"Infron AI",icon:"hub",color:"#06B6D4",textIcon:"IF",website:"https://onerouter.pro",notice:{signupUrl:"https://onerouter.pro",apiKeyUrl:"https://onerouter.pro",text:"Infron AI is a multi-model AI router with OpenAI and Anthropic API support. 457+ models including Claude, GPT, Gemini, DeepSeek, Kimi, and more. Create an API key at onerouter.pro, then paste it here."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://llm.onerouter.pro/v1/chat/completions",format:"openai",validateUrl:"https://llm.onerouter.pro/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{balanceUrl:"https://api.onerouter.pro/v1/balance"}},transports:[{format:"openai",baseUrl:"https://llm.onerouter.pro/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://llm.onerouter.pro/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://llm.onerouter.pro/v1/models",type:"openai"},features:{usage:!0,usageApikey:!0}},C={id:"agentrouter",priority:360,alias:"agentrouter",aliases:["ar"],uiAlias:"ar",display:{name:"AgentRouter",icon:"hub",color:"#F97316",textIcon:"AR",website:"https://agentrouter.org",notice:{signupUrl:"https://agentrouter.org",apiKeyUrl:"https://agentrouter.org",text:"AgentRouter is a multi-model AI router with OpenAI and Anthropic API support. Create an API key at agentrouter.org, then paste it here. Models: GLM 5.2, GPT 5.5, Claude Opus 4.6/4.7/4.8."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://agentrouter.org/v1/chat/completions",format:"openai",validateUrl:"https://agentrouter.org/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://agentrouter.org/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://agentrouter.org/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.2",name:"GLM 5.2"},{id:"gpt-5.5",name:"GPT 5.5"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"}],passthroughModels:!0,modelsFetcher:{url:"https://agentrouter.org/api/pricing",type:"agentrouter"}},D="https://public-api.wordpress.com/wpcom/v2/ai-api-proxy",E="https://effulgent-pika-7b150e.netlify.app",F="https://api.stepfun.ai",G=[{id:"adapta-web",priority:150,alias:"adapta-web",aliases:["adp-web"],uiAlias:"adp-web",display:{name:"Adapta Web",icon:"hub",color:"#7C3AED",textIcon:"AD",website:"https://agent.adapta.one",notice:{signupUrl:"https://agent.adapta.one",apiKeyUrl:"https://agent.adapta.one",text:"Adapta agentic chat (GPT/Claude/Gemini/Grok/DeepSeek/Llama routed via Adapta's 'ONE' auto-select). Log into agent.adapta.one, then copy the __client cookie value from DevTools → Application → Cookies → clerk.agent.adapta.one. Paste it here (bare JWT or __client=<jwt>). The executor auto-refreshes the short-lived session JWT via Clerk. Streaming is translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your clerk.agent.adapta.one __client cookie value (bare JWT or __client=<jwt>).",transport:{baseUrl:"https://agent.adapta.one/api/chat/stream/v1",format:"adapta-web",authType:"cookie"},models:[{id:"adapta-one",name:"Adapta ONE (Auto)"},{id:"adapta-gpt",name:"GPT-5 (via Adapta)"},{id:"adapta-claude",name:"Claude Sonnet 4.6 (via Adapta)"},{id:"adapta-gemini",name:"Gemini 2.5 Pro (via Adapta)"},{id:"adapta-grok",name:"Grok 4 (via Adapta)"},{id:"adapta-deepseek",name:"DeepSeek R2 (via Adapta)"},{id:"adapta-llama",name:"Llama 4 (via Adapta)"}],passthroughModels:!0},{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:{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},models:[{id:"claude-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"]},j,{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",headers:{}}},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox-web",priority:60,alias:"blackbox-web",aliases:["bb-web"],uiAlias:"bb-web",display:{name:"Blackbox AI (Web)",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://app.blackbox.ai",notice:{signupUrl:"https://app.blackbox.ai",apiKeyUrl:"https://app.blackbox.ai",text:"Blackbox AI free/paid web chat. Open app.blackbox.ai, log in, then copy your next-auth.session-token cookie (DevTools → Application → Cookies). Paste the full cookie string here. Premium models require a paid subscription; the executor probes your subscription status automatically."}},category:"webCookie",authType:"cookie",authHint:"Paste your app.blackbox.ai cookie (full Cookie header or just the next-auth.session-token value).",transport:{baseUrl:"https://app.blackbox.ai/api/chat",format:"blackbox-web",authType:"cookie"},models:[{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"claude-3-opus",name:"Claude 3 Opus"},{id:"claude-3-sonnet",name:"Claude 3 Sonnet"},{id:"gemini-pro",name:"Gemini Pro"}],passthroughModels:!0},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"zai-web",priority:60,alias:"zai-web",uiAlias:"zai-web",display:{name:"Z.ai Web",icon:"auto_awesome",color:"#2563EB",textIcon:"ZW",website:"https://chat.z.ai",notice:{signupUrl:"https://chat.z.ai",apiKeyUrl:"https://chat.z.ai",text:'Z.ai free web chat (GLM-5.2, GLM-5.1, GLM-5-Turbo, GLM-5V-Turbo). Open chat.z.ai, log in, then copy the "token" value from DevTools → Application → Local Storage → chat.z.ai and paste it here — do NOT copy cookies; the token is what the executor authenticates with. A JSON credential including captcha_verify_param is accepted when a CAPTCHA challenge is active.'}},category:"webCookie",authType:"cookie",authHint:'Copy the "token" value from chat.z.ai → DevTools → Application → Local Storage → chat.z.ai and paste it (raw value, or a JSON credential with captcha_verify_param when challenged). Do not copy cookies.',transport:{baseUrl:"https://chat.z.ai",format:"zai-web",authType:"cookie"},models:[{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-5v-turbo",name:"GLM-5V Turbo"}],passthroughModels:!0,thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"chatgpt-web",priority:150,alias:"chatgpt-web",aliases:["cgpt-web"],uiAlias:"cgpt-web",display:{name:"ChatGPT Web (chatgpt.com)",icon:"smart_toy",color:"#10A37F",textIcon:"CW",website:"https://chatgpt.com",notice:{signupUrl:"https://chatgpt.com",apiKeyUrl:"https://chatgpt.com",text:"ChatGPT Web (chatgpt.com) cookie provider (Plus/Pro session). Open chatgpt.com, log in, then copy your __Secure-next-auth.session-token cookie value (or the full 'Cookie:' line from DevTools → Network). ⚠️ chatgpt.com uses Sentinel anti-bot (proof-of-work + Turnstile + TLS fingerprint). OmniRoute bypasses it with native TLS impersonation; ExtremeRouter does NOT have that, so even though we solve the PoW and send exact headers, requests usually get blocked (403 / 'needs a browser'). Your cookie is probably valid when that happens — the TLS fingerprint is rejected, not your login. For reliable access use the official 'openai' provider instead."}},category:"webCookie",authType:"cookie",authHint:"Paste your chatgpt.com __Secure-next-auth.session-token value (or full Cookie line).",transport:{baseUrl:"https://chatgpt.com/backend-api/f/conversation",format:"chatgpt-web",authType:"cookie"},models:[{id:"gpt-5.5-pro",name:"GPT-5.5 Pro"},{id:"gpt-5.5-pro-extended",name:"GPT-5.5 Pro Extended"},{id:"gpt-5.5-thinking",name:"GPT-5.5 Thinking"},{id:"gpt-5.5",name:"GPT-5.5 Instant"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro"},{id:"gpt-5.4-thinking",name:"GPT-5.4 Thinking"},{id:"gpt-5.4-thinking-mini",name:"GPT-5.4 Thinking Mini"},{id:"gpt-5.3",name:"GPT-5.3 Instant"},{id:"gpt-5.3-mini",name:"GPT-5.3 Mini"},{id:"o3",name:"o3"}],passthroughModels:!0},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude-web",priority:150,alias:"claude-web",aliases:["cw"],uiAlias:"cw",display:{name:"Claude Web (claude.ai)",icon:"psychology",color:"#D97757",textIcon:"CW",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai",apiKeyUrl:"https://claude.ai/new",text:"Claude Web (claude.ai) cookie provider. Open claude.ai, log in, then copy your cookies (DevTools → Application → Cookies) — you need sessionKey= (and ideally a cf_clearance= scraped from a residential-IP browser). ⚠️ claude.ai is behind Cloudflare bot management: OmniRoute bypasses it with native TLS impersonation + Turnstile solving, which ExtremeRouter does NOT have. Requests will usually be blocked (403 'Just a moment' / cf-mitigated). When this happens your cookie is probably still valid — the TLS fingerprint is rejected, not your login. For reliable access use the official 'claude' provider instead."}},category:"webCookie",authType:"cookie",authHint:"Paste your claude.ai cookies (need sessionKey=, and ideally cf_clearance=).",transport:{baseUrl:"https://claude.ai/api",format:"claude-web",authType:"cookie"},models:[{id:"claude-sonnet-4-6",name:"Claude 4.6 Sonnet (web)"},{id:"claude-haiku-4-5",name:"Claude 4.5 Haiku (web)"}],passthroughModels:!0},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"600"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"},hooks:["claudeOverlay"]},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"}},models:[{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-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot",apiKeyUrl:"https://app.cline.bot/settings#api-keys"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",forceStream:!0,headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline","x-client-type":"cline-cli"},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"]},usage:{url:"https://api.cline.bot/api/v1/users/me/plan/usage-limits"}},models:[{id:"anthropic/claude-opus-5",name:"Claude Opus 5",upstreamModelId:"anthropic/claude-opus-5"},{id:"claude-opus-5",name:"Claude Opus 5",upstreamModelId:"anthropic/claude-opus-5"},{id:"zai/glm-5.2",name:"GLM 5.2",upstreamModelId:"zai/glm-5.2"},{id:"glm-5.2",name:"GLM 5.2",upstreamModelId:"zai/glm-5.2"},{id:"x-ai/grok-4.5",name:"Grok 4.5",upstreamModelId:"x-ai/grok-4.5"},{id:"grok-4.5",name:"Grok 4.5",upstreamModelId:"x-ai/grok-4.5"},{id:"openai/gpt-5.6-sol",name:"GPT-5.6 Sol",upstreamModelId:"openai/gpt-5.6-sol"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",upstreamModelId:"openai/gpt-5.6-sol"},{id:"moonshotai/kimi-k3",name:"Kimi K3",upstreamModelId:"moonshotai/kimi-k3"},{id:"kimi-k3",name:"Kimi K3",upstreamModelId:"moonshotai/kimi-k3"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"deepseek/deepseek-v4-flash"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"deepseek/deepseek-v4-flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",upstreamModelId:"deepseek/deepseek-v4-pro"},{id:"poolside/laguna-s-2.1:free",name:"Laguna S 2.1 (Free)",upstreamModelId:"poolside/laguna-s-2.1:free"},{id:"laguna-s-2.1:free",name:"Laguna S 2.1 (Free)",upstreamModelId:"poolside/laguna-s-2.1:free"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash",upstreamModelId:"stepfun/step-3.7-flash"},{id:"step-3.7-flash",name:"Step 3.7 Flash",upstreamModelId:"stepfun/step-3.7-flash"},{id:"anthropic/claude-opus-4-7",name:"Claude Opus 4.7",upstreamModelId:"anthropic/claude-opus-4-7"},{id:"anthropic/claude-opus-4-6",name:"Claude Opus 4.6",upstreamModelId:"anthropic/claude-opus-4-6"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6",upstreamModelId:"anthropic/claude-sonnet-4-6"},{id:"anthropic/claude-3-7-sonnet",name:"Claude 3.7 Sonnet",upstreamModelId:"anthropic/claude-3-7-sonnet"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"openai/gpt-5.3-codex"},{id:"openai/gpt-5.4",name:"GPT-5.4",upstreamModelId:"openai/gpt-5.4"},{id:"openai/gpt-4o",name:"GPT-4o",upstreamModelId:"openai/gpt-4o"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",upstreamModelId:"google/gemini-3.1-pro-preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",upstreamModelId:"google/gemini-3.1-flash-lite-preview"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",upstreamModelId:"google/gemini-2.5-pro"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat",upstreamModelId:"deepseek/deepseek-chat"},{id:"minimax/minimax-m2.5",name:"MiniMax M2.5 (Free)",upstreamModelId:"minimax/minimax-m2.5"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro",upstreamModelId:"kwaipilot/kat-coder-pro"}],passthroughModels:!0,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"},features:{usage:!0,usageApikey:!0}},{id:"clinepass",priority:85,alias:"clinepass",uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot",apiKeyUrl:"https://app.cline.bot/settings#api-keys",text:"ClinePass is a paid Cline subscription ($4.99–$9.99/mo) for curated open-weight coding models. Create an API key in your Cline account settings, then add it here."}},category:"oauth",authModes:["apikey","oauth"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]},usage:{url:"https://api.cline.bot/api/v1/users/me/plan/usage-limits"}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)",upstreamModelId:"cline-pass/glm-5.2"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)",upstreamModelId:"cline-pass/kimi-k2.7-code"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)",upstreamModelId:"cline-pass/kimi-k2.6"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)",upstreamModelId:"cline-pass/deepseek-v4-pro"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)",upstreamModelId:"cline-pass/deepseek-v4-flash"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)",upstreamModelId:"cline-pass/mimo-v2.5"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)",upstreamModelId:"cline-pass/mimo-v2.5-pro"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)",upstreamModelId:"cline-pass/minimax-m3"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)",upstreamModelId:"cline-pass/qwen3.7-max"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)",upstreamModelId:"cline-pass/qwen3.7-plus"}],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"},features:{usage:!0,usageApikey:!0}},{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:{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{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"},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:"glm-5.0",name:"GLM-5.0"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"hy3",name:"Hy3"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],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:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,headers:{originator:"codex_cli_rs","User-Agent":"codex_cli_rs/0.136.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-5.6-sol",name:"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-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-review",name:"GPT 5.6 Luna Review",upstreamModelId:"gpt-5.6-luna",quotaFamily:"review"},{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.5-review",name:"GPT 5.5 Review",upstreamModelId:"gpt-5.5",quotaFamily:"review"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.4-review",name:"GPT 5.4 Review",upstreamModelId:"gpt-5.4",quotaFamily:"review"},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini"},{id:"gpt-5.4-mini-review",name:"GPT 5.4 Mini Review",upstreamModelId:"gpt-5.4-mini",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-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.3-codex-spark-review",name:"GPT 5.3 Codex Spark Review",upstreamModelId:"gpt-5.3-codex-spark",quotaFamily:"review"},{id:"gpt-5.5-image",name:"GPT 5.5 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.3-image",name:"GPT 5.3 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:432e6,refresh:{encoding:"form",scope:"openid profile email offline_access"},maxRefreshAgeMs:6912e5,trackRefreshAt:!0},features:{usage:!0}},{id:"cody",priority:50,alias:"cody",uiAlias:"cody",display:{name:"Cody (Sourcegraph)",icon:"code_blocks",color:"#FF6B35",textIcon:"CO",website:"https://sourcegraph.com/cody",notice:{signupUrl:"https://sourcegraph.com/cody",apiKeyUrl:"https://sourcegraph.com/user/settings/tokens",text:"Sourcegraph Cody — coding assistant with a free plan (~200 messages/month). Create a personal access token (sgp_...) at sourcegraph.com/user/settings/tokens, then paste it here. Models include Claude Sonnet 4, GPT-4o, and Gemini Pro."}},category:"oauth",authModes:["apikey"],hasOAuth:!1,transport:{baseUrl:"https://sourcegraph.com/.api/llm/completions/Stream",format:"openai",headers:{"X-Requested-With":"Sourcegraph-Editor"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"anthropic::new::claude-sonnet-4",name:"Claude Sonnet 4 (Cody)"},{id:"anthropic::new::claude-haiku-4",name:"Claude Haiku 4 (Cody)"},{id:"anthropic::new::claude-3.7-sonnet",name:"Claude 3.7 Sonnet (Cody)"},{id:"openai::new::gpt-4o",name:"GPT-4o (Cody)"},{id:"openai::new::o3-mini",name:"o3-mini (Cody)"},{id:"google::new::gemini-2.5-pro",name:"Gemini 2.5 Pro (Cody)"},{id:"google::new::gemini-2.0-flash",name:"Gemini 2.0 Flash (Cody)"},{id:"mixtral-8x22B",name:"Mixtral 8x22B (Cody)"}],passthroughModels:!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:{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:{baseUrl:"http://localhost:8188"}},k,{id:"copilot-web",priority:150,alias:"copilot-web",aliases:["copilot"],uiAlias:"copilot",display:{name:"Microsoft Copilot Web (Cookie)",icon:"smart_toy",color:"#0A7BBA",textIcon:"CP",website:"https://copilot.microsoft.com"},category:"webCookie",authType:"cookie",authHint:"Paste your access_token from copilot.microsoft.com (anonymous works with limited models)",transport:{baseUrl:"wss://copilot.microsoft.com/c/api/chat?api-version=2",format:"copilot-web",authType:"cookie"},models:[{id:"copilot",name:"Copilot Chat"},{id:"copilot-chat",name:"Copilot Chat"},{id:"copilot-think",name:"Copilot Think (reasoning)"},{id:"copilot-think-deeper",name:"Copilot Think Deeper (reasoning)"},{id:"copilot-smart",name:"Copilot Smart"},{id:"copilot-gpt5",name:"Copilot GPT-5"},{id:"copilot-study",name:"Copilot Study"},{id:"gpt-4o",name:"GPT-4o (via Copilot)"},{id:"gpt-4-turbo",name:"GPT-4 Turbo (via Copilot)"},{id:"gpt-4",name:"GPT-4 (via Copilot)"},{id:"gpt-5",name:"GPT-5 (via Copilot)"},{id:"o1",name:"o1 (reasoning)"},{id:"o3",name:"o3 (reasoning)"}],passthroughModels:!0},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",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"}}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.deepgram.com/v1/listen"},models:[{id:"nova-3",name:"Nova 3",params:["language"],kind:"stt"},{id:"nova-2",name:"Nova 2",params:["language"],kind:"stt"},{id:"whisper-large",name:"Whisper Large",params:["language"],kind:"stt"},{id:"nova",name:"Nova",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},{id:"deepseek-web",priority:130,alias:"ds-web",uiAlias:"ds-web",display:{name:"DeepSeek Web (Subscription)",icon:"psychology",color:"#4D6BFE",textIcon:"DS",website:"https://chat.deepseek.com",notice:{signupUrl:"https://chat.deepseek.com",apiKeyUrl:"https://chat.deepseek.com",text:"DeepSeek free web chat. Open chat.deepseek.com, log in, then copy your userToken from DevTools (Application → Local Storage → chat.deepseek.com → userToken). Paste it here. The token is exchanged for a short-lived access token automatically, and a proof-of-work challenge is solved per request. Responses are streamed from the web backend and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your userToken value from chat.deepseek.com (DevTools → Application → Local Storage → userToken).",transport:{baseUrl:"https://chat.deepseek.com",format:"deepseek-web",authType:"cookie"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-think",name:"DeepSeek V4 Pro Think",supportsReasoning:!0},{id:"deepseek-v4-pro-search",name:"DeepSeek V4 Pro Search"},{id:"deepseek-v4-pro-think-search",name:"DeepSeek V4 Pro Think+Search",supportsReasoning:!0},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-think",name:"DeepSeek V4 Flash Think",supportsReasoning:!0},{id:"deepseek-v4-flash-search",name:"DeepSeek V4 Flash Search"},{id:"deepseek-v4-flash-think-search",name:"DeepSeek V4 Flash Think+Search",supportsReasoning:!0},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-reasoner",name:"DeepSeek Reasoner",supportsReasoning:!0},{id:"DeepSeek-R1",name:"DeepSeek R1",supportsReasoning:!0},{id:"DeepSeek-R1-Search",name:"DeepSeek R1 Search",supportsReasoning:!0},{id:"DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"DeepSeek-Search",name:"DeepSeek Search"}],passthroughModels:!0},l,{id:"devin",priority:70,alias:"devin",uiAlias:"devin",display:{name:"Devin CLI",icon:"smart_toy",color:"#7C5CFF",textIcon:"DV",website:"https://devin.ai",notice:{signupUrl:"https://app.devin.ai",apiKeyUrl:"https://app.devin.ai/settings",text:"Devin (by Cognition) is a session-based AI software engineer. Create an API key (cog_...) in your Devin account settings. Each model below maps to a Devin agent mode. Responses are aggregated from Devin sessions and streamed back — they may take longer than a typical chat model."}},category:"apikey",authModes:["apikey"],hasOAuth:!1,transport:{baseUrl:"https://api.devin.ai",headers:{"Content-Type":"application/json",Accept:"application/json"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"devin-normal",name:"Devin (Normal)",upstreamModelId:"normal"},{id:"devin-fast",name:"Devin (Fast)",upstreamModelId:"fast"},{id:"devin-lite",name:"Devin Lite",upstreamModelId:"lite"},{id:"devin-ultra",name:"Devin Ultra",upstreamModelId:"ultra"}]},{id:"doubao-web",priority:150,alias:"doubao-web",aliases:["db"],uiAlias:"db",display:{name:"Doubao Web (Cookie)",icon:"smart_toy",color:"#3B5BFF",textIcon:"豆",website:"https://www.doubao.com"},category:"webCookie",authType:"cookie",authHint:"Paste your full Cookie header from doubao.com",transport:{baseUrl:"https://www.doubao.com/api/chat",format:"openai",authType:"cookie"},models:[{id:"doubao-default",name:"Doubao Default"},{id:"doubao-pro",name:"Doubao Pro"}],passthroughModels:!0},{id:"duckduckgo-web",priority:60,alias:"duckduckgo-web",aliases:["ddgw"],uiAlias:"ddgw",display:{name:"DuckDuckGo AI Chat",icon:"public",color:"#DE5833",textIcon:"DD",website:"https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1",notice:{signupUrl:"https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1",apiKeyUrl:"https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1",text:"DuckDuckGo AI Chat is free and anonymous — no login or cookie required. It exposes GPT-4o Mini, GPT-5 Mini, Claude 3.5 Haiku, Llama 4 Scout, Mistral Small and O3 Mini. No credential is needed; an anonymous VQD token is acquired per request. DuckDuckGo rate-limits anonymous sessions, so it is best for light use."}},category:"webCookie",authType:"none",noAuth:!0,authHint:"No credential needed — DuckDuckGo AI Chat is free and anonymous.",transport:{baseUrl:"https://duckduckgo.com",format:"duckduckgo-web",authType:"none"},models:[{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku"},{id:"llama-4-scout",name:"Llama 4 Scout"},{id:"mistral-small-2501",name:"Mistral Small"},{id:"o3-mini",name:"O3 Mini"}],passthroughModels:!0},{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run"}},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys",text:"Fireworks hosts 200+ open-weight models (DeepSeek, GLM, Kimi, Qwen, Llama) on fast serverless GPUs. Get a key at fireworks.ai/account/api-keys — new accounts include free credits. OpenAI-compatible — works with any standard client."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models",thinkingFormat:"openai"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/glm-5p2",name:"GLM-5.2"},{id:"accounts/fireworks/models/kimi-k2p6",name:"Kimi K2.6"},{id:"accounts/fireworks/models/kimi-k2-instruct-0905",name:"Kimi K2 Instruct 0905"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},m,{id:"gemini-web",priority:150,alias:"gemini-web",aliases:["gweb"],uiAlias:"gweb",display:{name:"Gemini Web (Google)",icon:"auto_awesome",color:"#4285F4",textIcon:"GE",website:"https://gemini.google.com",notice:{signupUrl:"https://gemini.google.com",apiKeyUrl:"https://gemini.google.com/app",text:"Gemini Web (gemini.google.com) cookie provider. Open gemini.google.com, log in, then copy your cookies (DevTools → Application → Cookies) — you need at least __Secure-1PSID and __Secure-1PSIDTS. ⚠️ Google blocks programmatic (non-browser) requests: this provider will often fail with 403/empty responses because ExtremeRouter cannot impersonate a browser TLS fingerprint. The cookies are probably valid when this happens — the request shape is rejected, not your login. Responses are translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your gemini.google.com cookies (need __Secure-1PSID + __Secure-1PSIDTS).",transport:{baseUrl:"https://gemini.google.com/app",format:"gemini-web",authType:"cookie"},models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.0-pro",name:"Gemini 2.0 Pro"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}],passthroughModels:!0},n,{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",messagesUrl:"https://api.githubcopilot.com/v1/messages",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},copilot:{vscodeVersion:"1.110.0",chatVersion:"0.38.0",userAgent:"GitHubCopilotChat/0.38.0",apiVersion:"2025-04-01"},usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"claude-fable-5",name:"Claude Fable 5",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-opus-4.8-fast",name:"Claude Opus 4.8 (fast mode)",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3,unsupportedParams:["temperature","top_p","top_k"]},{id:"claude-opus-4.8",name:"Claude Opus 4.8",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3,unsupportedParams:["temperature","top_p","top_k"]},{id:"claude-opus-4.7",name:"Claude Opus 4.7",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-opus-4.5",name:"Claude Opus 4.5",targetFormat:"claude",contextWindow:2e5,maxOutput:32e3},{id:"claude-sonnet-5",name:"Claude Sonnet 5",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",targetFormat:"claude",contextWindow:2e5,maxOutput:32e3},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",targetFormat:"claude",contextWindow:2e5,maxOutput:32e3},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",contextWindow:1e6,maxOutput:64e3},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindow:1e6,maxOutput:64e3},{id:"gpt-5.5",name:"GPT-5.5",targetFormat:"openai-responses",contextWindow:105e4,maxOutput:128e3},{id:"gpt-5.4",name:"GPT-5.4",targetFormat:"openai-responses",contextWindow:105e4,maxOutput:128e3},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",targetFormat:"openai-responses",contextWindow:4e5,maxOutput:128e3},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",targetFormat:"openai-responses",contextWindow:4e5,maxOutput:128e3},{id:"gpt-5-mini",name:"GPT-5 Mini",targetFormat:"openai-responses",contextWindow:264e3,maxOutput:64e3},{id:"gpt-4o-2024-11-20",name:"GPT-4o",contextWindow:128e3,maxOutput:16384},{id:"gpt-4o-mini",name:"GPT-4o Mini",contextWindow:128e3,maxOutput:4096},{id:"gpt-4-0125-preview",name:"GPT 4 Turbo",contextWindow:128e3,maxOutput:4096},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindow:256e3,maxOutput:32e3},{id:"mai-code-1-flash",name:"MAI-Code-1-Flash",targetFormat:"openai-responses",contextWindow:256e3,maxOutput:128e3},{id:"oswe-vscode-prime",name:"Raptor Mini",targetFormat:"openai-responses",contextWindow:264e3,maxOutput:64e3},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-high",name:"GLM 5.3 High",upstreamModelId:"glm-5.3"},{id:"glm-5.3-low",name:"GLM 5.3 Low",upstreamModelId:"glm-5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],features:{usage:!0,usageApikey:!0}},o,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",transport:{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie",usage:{rateLimitsUrl:"https://grok.com/rest/rate-limits"}},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,features:{usage:!0}},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingchat",priority:60,alias:"huggingchat",aliases:["hc-web"],uiAlias:"huggingchat",display:{name:"HuggingChat (Web)",icon:"smart_toy",color:"#FFD21E",textIcon:"HC",website:"https://huggingface.co/chat",notice:{signupUrl:"https://huggingface.co/chat",apiKeyUrl:"https://huggingface.co/chat",text:"⚠️ ANTI-BOT: HuggingFace is behind AWS WAF which blocks non-browser requests. Even with valid cookies (hf-chat + token + aws-waf-token), server-side requests are rejected. This provider may not work until a headless browser integration is added. Consider using HuggingFace Inference API (API key) as an alternative."}},category:"webCookie",authType:"cookie",comingSoon:!0,authHint:"Paste the FULL cookie string from huggingface.co/chat. Note: AWS WAF may block server-side requests regardless of cookie validity.",transport:{baseUrl:"https://huggingface.co",format:"huggingchat",authType:"cookie"},models:[{id:"omni",name:"Omni (Auto-Router)"},{id:"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT",name:"ERNIE 4.5 VL 424B A47B Base PT"},{id:"CohereLabs/c4ai-command-r7b-12-2024",name:"Command R7B 12-2024"},{id:"CohereLabs/command-a-reasoning-08-2025",name:"Command A Reasoning 08-2025"},{id:"CohereLabs/command-a-vision-07-2025",name:"Command A Vision 07-2025"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B"},{id:"google/gemma-4-26B-A4B-it",name:"Gemma 4 26B A4B"},{id:"inclusionAI/Ling-2.6-1T",name:"Ling 2.6 1T"},{id:"meta-llama/Llama-4-Scout-17B-16E-Instruct",name:"Llama 4 Scout 17B 16E Instruct"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick 17B 128E Instruct FP8"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4",name:"NVIDIA Nemotron 3 Ultra 550B A55B NVFP4"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"openai/gpt-oss-20b",name:"GPT-OSS 20B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen3.5 122B A10B"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5 397B A17B"},{id:"Qwen/Qwen3.6-27B",name:"Qwen3.6 27B"},{id:"Qwen/Qwen3.6-35B-A3B",name:"Qwen3.6 35B A3B"},{id:"stepfun-ai/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"XiaomiMiMo/MiMo-V2.5-Pro",name:"MiMo V2.5 Pro"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"}],passthroughModels:!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"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},p,{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",quirks:{dropStreamOptions:!0},headers:{"User-Agent":"kimchi/0.1.76"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"kimi-k2.7",name:"Kimi K2.7"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"}],serviceKinds:["llm","imageToText"],features:{usage:!0},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},q,{id:"kimi-web",priority:130,alias:"kimi-web",uiAlias:"kimi-web",display:{name:"Kimi Web (Subscription)",icon:"auto_fix_high",color:"#1F1F1F",textIcon:"KM",website:"https://www.kimi.com",notice:{signupUrl:"https://www.kimi.com",apiKeyUrl:"https://www.kimi.com",text:"Moonshot Kimi free web chat (international). Open www.kimi.com, log in, then copy your Cookie header (DevTools → Application → Cookies → kimi-auth, or DevTools → Network → any request → Cookie). The kimi-auth JWT is what we actually use — paste the full cookie string or just the JWT value. Responses are streamed over the Connect-RPC protocol and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your Cookie header from www.kimi.com (must contain kimi-auth=<JWT>), or just the kimi-auth JWT value.",transport:{baseUrl:"https://www.kimi.com",format:"kimi-web",authType:"cookie"},models:[{id:"kimi-default",name:"Kimi Default"},{id:"kimi-k2.6",name:"Kimi K2.6 (Thinking)",supportsReasoning:!0},{id:"kimi-128k",name:"Kimi 128K (Long Context)"}],passthroughModels:!0},r,{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","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-sonnet-5",name:"Claude Sonnet 5",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5,maxOutputTokens:128e3},{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)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)",contextLength:2e5,maxOutputTokens:128e3},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)",contextLength:2e5,maxOutputTokens:128e3},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)",contextLength:2e5,maxOutputTokens:128e3},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-sol-thinking",name:"GPT-5.6 Sol (Thinking)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra-thinking",name:"GPT-5.6 Terra (Thinking)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna-thinking",name:"GPT-5.6 Luna (Thinking)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-sol-agentic",name:"GPT-5.6 Sol (Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra-agentic",name:"GPT-5.6 Terra (Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna-agentic",name:"GPT-5.6 Luna (Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-sol-thinking-agentic",name:"GPT-5.6 Sol (Thinking + Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra-thinking-agentic",name:"GPT-5.6 Terra (Thinking + Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna-thinking-agentic",name:"GPT-5.6 Luna (Thinking + Agentic)",contextLength:272e3,maxOutputTokens:128e3}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"lmarena",priority:150,alias:"lmarena",aliases:["lma"],uiAlias:"lmarena",display:{name:"LMArena (Free)",icon:"auto_awesome",color:"#FF6B6B",textIcon:"LMA",website:"https://lmarena.ai",notice:{signupUrl:"https://lmarena.ai",apiKeyUrl:"https://lmarena.ai",text:"LMArena is FREE for testing models — a model comparison platform with 40+ frontier models (GPT, Claude, Gemini, Llama, ...). No subscription required. Log into lmarena.ai, then copy the FULL Cookie header from any request (DevTools → Network → request → Request Headers → Cookie). The session is now split across arena-auth-prod-v1.0, .1, … — copy the whole header. Paste it here; the executor auto-recombines the chunks. Works with the free tier for basic comparisons."}},category:"webCookie",authType:"cookie",authHint:"Paste the full Cookie header from lmarena.ai (DevTools → Network → request → Cookie). Includes arena-auth-prod-v1.0/.1/… chunks.",transport:{baseUrl:"https://arena.ai/nextjs-api/stream",format:"lmarena",authType:"cookie"},models:[{id:"gpt-5",name:"GPT-5 (via LMArena)"},{id:"gpt-5-mini",name:"GPT-5 Mini (via LMArena)"},{id:"gpt-4.1",name:"GPT-4.1 (via LMArena)"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 (via LMArena)"},{id:"claude-opus-4-1",name:"Claude Opus 4.1 (via LMArena)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (via LMArena)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (via LMArena)"},{id:"grok-4",name:"Grok 4 (via LMArena)"},{id:"deepseek-v3-2",name:"DeepSeek V3.2 (via LMArena)"},{id:"qwen3-235b",name:"Qwen3 235B (via LMArena)"},{id:"llama-4-maverick",name:"Llama 4 Maverick (via LMArena)"}],passthroughModels:!0},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"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:{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},s,t,{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"muse-spark-web",priority:150,alias:"muse-spark-web",aliases:["ms-web"],uiAlias:"ms-web",display:{name:"Muse Spark Web (Meta AI)",icon:"auto_awesome",color:"#0866FF",textIcon:"MS",website:"https://www.meta.ai",notice:{signupUrl:"https://www.meta.ai",apiKeyUrl:"https://www.meta.ai",text:"Muse Spark (Meta AI) free web chat. Log into meta.ai, then copy the ecto_1_sess cookie value from DevTools → Application → Cookies → www.meta.ai. Paste it here (bare value or full cookie line). Streaming responses from Meta's GraphQL endpoint are translated to OpenAI format. Thinking/contemplating models expose reasoning_content."}},category:"webCookie",authType:"cookie",authHint:"Paste your meta.ai ecto_1_sess cookie value (or the full cookie line from DevTools).",transport:{baseUrl:"https://www.meta.ai/api/graphql",format:"muse-spark-web",authType:"cookie"},models:[{id:"muse-spark",name:"Muse Spark"},{id:"muse-spark-thinking",name:"Muse Spark Thinking",supportsReasoning:!0},{id:"muse-spark-contemplating",name:"Muse Spark Contemplating",supportsReasoning:!0}],passthroughModels:!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:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",transport:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama",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:{baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.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-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},models:[{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.2-high",name:"GLM 5.2 (High Effort)"},{id:"glm-5.2-max",name:"GLM 5.2 (Max Effort)"},{id:"glm-5.1",name:"GLM 5.1"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-low",name:"DeepSeek V4 Pro (Low Effort)"},{id:"deepseek-v4-pro-medium",name:"DeepSeek V4 Pro (Medium Effort)"},{id:"deepseek-v4-pro-high",name:"DeepSeek V4 Pro (High Effort)"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro (Max Effort)"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2.5-high",name:"MiMo V2.5 (High Effort)"},{id:"mimo-v2.5-max",name:"MiMo V2.5 (Max Effort)"},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"minimax-m3",name:"MiniMax M3",targetFormat:"claude"},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude"},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude"},{id:"qwen3.7-max",name:"Qwen 3.7 Max",targetFormat:"claude"},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",targetFormat:"claude"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",targetFormat:"claude"}]},{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:{baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"desktop"},noAuth:!0},models:[],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",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"}],serviceKinds:["llm","embedding","tts","imageToText"],ttsConfig:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},imageConfig:{baseUrl:"https://openrouter.ai/api/v1/images/generations",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"poe-web",priority:150,alias:"poe-web",aliases:["poe"],uiAlias:"poe",display:{name:"Poe Web (Subscription)",icon:"forum",color:"#7C3AED",textIcon:"P",website:"https://www.poe.com"},category:"webCookie",authType:"cookie",authHint:"Paste your p-b= cookie value from poe.com",transport:{baseUrl:"https://www.poe.com/api/gql_POST",format:"poe-web",authType:"cookie"},models:[{id:"gpt-4o",name:"GPT-4o (via Poe)"},{id:"gpt-4-turbo",name:"GPT-4 Turbo (via Poe)"},{id:"claude-3.5-sonnet",name:"Claude 3.5 Sonnet (via Poe)"},{id:"claude-3-opus",name:"Claude 3 Opus (via Poe)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash (via Poe)"},{id:"llama-3-70b",name:"Llama 3 70B (via Poe)"},{id:"mixtral-8x22b",name:"Mixtral 8x22B (via Poe)"},{id:"poe-default",name:"Poe Assistant"}],passthroughModels:!0},{id:"pollinations",priority:80,alias:"pollinations",aliases:["pol"],uiAlias:"pollinations",display:{name:"Pollinations",icon:"local_florist",color:"#7C3AED",textIcon:"PL",website:"https://pollinations.ai",notice:{signupUrl:"https://enter.pollinations.ai",apiKeyUrl:"https://enter.pollinations.ai",text:"Pollinations is FREE text + image generation. Keyless models (openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning) need no auth. Premium models (claude, gemini, midijourney) require a Pollinations API key from enter.pollinations.ai. No credential is required for the free tier; paste an API key only to unlock premium models."}},category:"webCookie",authType:"none",noAuth:!0,authHint:"Optional — leave blank for free keyless models. Paste a Pollinations API key for premium models.",transport:{baseUrl:"https://gen.pollinations.ai/v1/chat/completions",format:"pollinations",authType:"none"},models:[{id:"openai",name:"OpenAI (Pollinations)"},{id:"openai-fast",name:"OpenAI Fast (Pollinations)"},{id:"openai-large",name:"OpenAI Large (Pollinations)"},{id:"qwen-coder",name:"Qwen Coder (Pollinations)"},{id:"mistral",name:"Mistral (Pollinations)"},{id:"gemini",name:"Gemini (Pollinations)"},{id:"gemini-flash-lite-3.1",name:"Gemini Flash Lite 3.1 (Pollinations)"},{id:"gemini-fast",name:"Gemini Fast (Pollinations)"},{id:"deepseek",name:"DeepSeek (Pollinations)"},{id:"grok",name:"Grok (Pollinations)"},{id:"grok-large",name:"Grok Large (Pollinations)"},{id:"gemini-search",name:"Gemini Search (Pollinations)"},{id:"midijourney",name:"Midijourney (Pollinations)"},{id:"midijourney-large",name:"Midijourney Large (Pollinations)"},{id:"claude-fast",name:"Claude Fast (Pollinations)"},{id:"claude",name:"Claude (Pollinations)"},{id:"claude-large",name:"Claude Large (Pollinations)"},{id:"perplexity-fast",name:"Perplexity Fast (Pollinations)"},{id:"perplexity-reasoning",name:"Perplexity Reasoning (Pollinations)"},{id:"kimi",name:"Kimi (Pollinations)"},{id:"gemini-large",name:"Gemini Large (Pollinations)"},{id:"nova-fast",name:"Nova Fast (Pollinations)"},{id:"nova",name:"Nova (Pollinations)"},{id:"glm",name:"GLM (Pollinations)"},{id:"minimax",name:"MiniMax (Pollinations)"},{id:"mistral-large",name:"Mistral Large (Pollinations)"},{id:"polly",name:"Polly (Pollinations)"},{id:"qwen-coder-large",name:"Qwen Coder Large (Pollinations)"},{id:"qwen-large",name:"Qwen Large (Pollinations)"},{id:"qwen-vision",name:"Qwen Vision (Pollinations)"},{id:"qwen-safety",name:"Qwen Safety (Pollinations)"}],passthroughModels:!0},{id:"puter",priority:60,alias:"puter",uiAlias:"puter",display:{name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",notice:{signupUrl:"https://puter.com",apiKeyUrl:"https://puter.com/dashboard",text:'Puter is FREE AI. Log in at puter.com, then open the dashboard and click "Copy Auth Token" (or copy your puter_auth_token cookie). Paste the token here — it works as a Bearer credential. Puter exposes 500+ models (GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Mistral, Llama...) through one OpenAI-compatible endpoint. Model IDs use provider/model-name format for non-OpenAI models. Only chat completions (with streaming) are available via REST.'}},category:"webCookie",authType:"cookie",authHint:"Paste your Puter auth token (from puter.com/dashboard → Copy Auth Token) or your puter_auth_token cookie value.",transport:{baseUrl:"https://api.puter.com/puterai/openai/v1/chat/completions",format:"puter",authType:"cookie"},models:[{id:"gpt-5.5",name:"GPT-5.5 (Puter)"},{id:"gpt-5.4",name:"GPT-5.4 (Puter)"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini (Puter)"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano (Puter)"},{id:"gpt-4o",name:"GPT-4o (Puter)"},{id:"gpt-4o-mini",name:"GPT-4o Mini (Puter)"},{id:"o3",name:"OpenAI o3 (Puter)"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5 (Puter)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Puter)"},{id:"claude-opus-4-7",name:"Claude Opus 4.7 (Puter)"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash (Puter)"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite (Puter)"},{id:"google/gemini-3-flash",name:"Gemini 3 Flash (Puter)"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro (Puter)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro (Puter)",supportsReasoning:!0},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash (Puter)",supportsReasoning:!0},{id:"x-ai/grok-4.3",name:"Grok 4.3 (Puter)"},{id:"x-ai/grok-4.20",name:"Grok 4.20 (Puter)"},{id:"llama-4-scout",name:"Llama 4 Scout (Puter)"},{id:"llama-4-maverick",name:"Llama 4 Maverick (Puter)"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B (Puter)"},{id:"mistral-small-2603",name:"Mistral Small 4 (Puter)"},{id:"mistral-medium-3-5",name:"Mistral Medium 3.5 (Puter)"},{id:"mistral-large-2512",name:"Mistral Large (Puter)"},{id:"devstral-2512",name:"Devstral 2 (Puter)"},{id:"codestral-2508",name:"Codestral (Puter)"},{id:"mistral-nemo",name:"Mistral Nemo (Puter)"},{id:"qwen/qwen3.6-plus",name:"Qwen 3.6 Plus (Puter)"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen 3.5 397B (Puter)"},{id:"perplexity/sonar-deep-research",name:"Perplexity Sonar Deep Research (Puter)"},{id:"perplexity/sonar-pro-search",name:"Perplexity Sonar Pro Search (Puter)"},{id:"perplexity/sonar-pro",name:"Perplexity Sonar Pro (Puter)"},{id:"perplexity/sonar-reasoning-pro",name:"Perplexity Sonar Reasoning Pro (Puter)"},{id:"perplexity/sonar",name:"Perplexity Sonar (Puter)"}],passthroughModels:!0},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) from https://qoder.com/account/integrations",transport:{baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"qmodel_latest",name:"Qoder Qwen 3.7 Max"}],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-web",priority:130,alias:"qwen-web",uiAlias:"qwen-web",display:{name:"Qwen Web (Subscription)",icon:"hub",color:"#615CED",textIcon:"QW",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai",apiKeyUrl:"https://chat.qwen.ai",text:"Alibaba Tongyi Qwen Chat free web access. Open chat.qwen.ai, log in, then copy your FULL Cookie header (DevTools → Network → any request → Request Headers → Cookie, or DevTools → Application → Cookies). Paste ALL cookies here — the WAF (baxia) requires the complete cookie jar (cna, ssxmod_itna, token, ...), not just the bearer token. The auth token is read from the `token` cookie automatically. Optionally append `bx-umidtoken=<value>` (captured from DevTools → Network → request headers) to bypass the anti-bot check if you get 'unauthorized' errors. Responses are streamed from the v2 API and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your FULL Cookie header from chat.qwen.ai (must include cna, ssxmod_itna and token cookies). Optionally append bx-umidtoken=<value> (from request headers) if you get 'unauthorized' errors.",transport:{baseUrl:"https://chat.qwen.ai",format:"qwen-web",authType:"cookie"},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-max",name:"Qwen3.7 Max",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-plus",name:"Qwen3.7 Plus",contextWindow:1e6,maxOutput:65536},{id:"qwen3.6-plus",name:"Qwen3.6 Plus",contextWindow:1e6,maxOutput:65536}],passthroughModels:!0},{id:"qwen",hidden:!0,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:{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:{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:{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:{baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"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:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"t3-web",priority:60,alias:"t3-web",aliases:["t3chat"],uiAlias:"t3chat",display:{name:"T3 Chat (Web)",icon:"chat",color:"#6D28D9",textIcon:"T3",website:"https://t3.chat",notice:{signupUrl:"https://t3.chat",apiKeyUrl:"https://t3.chat",text:"T3 Chat aggregates Claude, GPT, Gemini, DeepSeek, Grok, Llama, Mistral, Qwen and Kimi behind one subscription. Open t3.chat, log in, then copy your full Cookie header (DevTools → Network → request → Cookie), including convex-session-id. Paste the full cookie string here. Responses are translated from TanStack Start TSS/NDJSON into OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your t3.chat full Cookie header (must include convex-session-id).",transport:{baseUrl:"https://t3.chat",format:"t3-web",authType:"cookie"},models:[{id:"claude-opus-4",name:"Claude Opus 4 (via t3.chat)"},{id:"claude-sonnet-4",name:"Claude Sonnet 4 (via t3.chat)"},{id:"claude-haiku-4",name:"Claude Haiku 4 (via t3.chat)"},{id:"claude-3.7",name:"Claude 3.7 Sonnet (via t3.chat)"},{id:"gpt-5",name:"GPT-5 (via t3.chat)"},{id:"gpt-4o",name:"GPT-4o (via t3.chat)"},{id:"gpt-4.1",name:"GPT-4.1 (via t3.chat)"},{id:"o3",name:"o3 (via t3.chat)"},{id:"o4-mini",name:"o4-mini (via t3.chat)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (via t3.chat)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (via t3.chat)"},{id:"deepseek-r1",name:"DeepSeek R1 (via t3.chat)"},{id:"deepseek-v3",name:"DeepSeek V3 (via t3.chat)"},{id:"grok-3",name:"Grok 3 (via t3.chat)"},{id:"grok-3-mini",name:"Grok 3 Mini (via t3.chat)"},{id:"llama-4-maverick",name:"Llama 4 Maverick (via t3.chat)"},{id:"llama-4-scout",name:"Llama 4 Scout (via t3.chat)"},{id:"llama-3.3-70b",name:"Llama 3.3 70B (via t3.chat)"},{id:"devstral",name:"Devstral (via t3.chat)"},{id:"mistral-large",name:"Mistral Large (via t3.chat)"},{id:"qwen3-235b",name:"Qwen3 235B (via t3.chat)"},{id:"qwen3-32b",name:"Qwen3 32B (via t3.chat)"},{id:"kimi-k2",name:"Kimi K2 (via t3.chat)"}],passthroughModels:!0},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"trae",priority:55,alias:"tr",uiAlias:"tr",display:{name:"Trae (ByteDance)",icon:"code",color:"#8B5CF6",textIcon:"TR",website:"https://trae.ai",notice:{signupUrl:"https://trae.ai",apiKeyUrl:"https://solo.trae.ai",text:"ByteDance Trae coding IDE — sign in at solo.trae.ai, then copy the Cloud-IDE-JWT token from the Authorization header (DevTools → Network). Lifetime ~14 days. Models include Gemini 3.1 Pro, MiniMax M3 (1M ctx), Kimi K2.5, GPT-5.4/5.2, and an 'auto' router."}},category:"oauth",authModes:["apikey"],hasOAuth:!1,transport:{baseUrl:"https://core-normal.trae.ai/api/remote/v1",format:"trae",auth:{combined:!0,header:"Authorization",scheme:"raw"}},models:[{id:"auto",name:"Auto (Code \xb7 Server Picks)"},{id:"work",name:"Work (Auto \xb7 fast)"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",upstreamModelId:"gemini-3.1-pro"},{id:"gemini-3-flash-solo",name:"Gemini 3 Flash"},{id:"minimax-m3",name:"MiniMax M3",upstreamModelId:"minimax-m3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.2",name:"GPT 5.2"}],passthroughModels:!0},{id:"v0-vercel-web",priority:150,alias:"v0-vercel-web",aliases:["v0"],uiAlias:"v0",display:{name:"v0 (Vercel)",icon:"code",color:"#000000",textIcon:"v0",website:"https://v0.app",notice:{signupUrl:"https://v0.app",apiKeyUrl:"https://v0.app",text:"v0 is Vercel's AI code generation tool. Log in at v0.app, then open DevTools → Application → Cookies → copy the FULL cookie string (must include user_session + v0-last-scope). Default model: v0-mini. Free tier: 5 credits/month."}},category:"webCookie",authType:"cookie",authHint:"Paste your full Cookie header from v0.app (must include user_session and v0-last-scope cookies).",transport:{baseUrl:"https://v0.app/chat/api/chat",format:"v0-vercel-web",authType:"cookie"},models:[{id:"v0-mini",name:"v0 Mini"},{id:"v0-default",name:"v0 Default"}],passthroughModels:!0},{id:"venice-web",priority:60,alias:"venice-web",aliases:["ven-web"],uiAlias:"ven-web",display:{name:"Venice (Web)",icon:"lock",color:"#9333EA",textIcon:"VE",website:"https://venice.ai",notice:{signupUrl:"https://venice.ai",apiKeyUrl:"https://venice.ai",text:"Venice is a privacy-focused AI chat. Open venice.ai, log in, then copy your full Cookie header (DevTools → Application → Cookies). Paste the full cookie string here. Responses are streamed from the web /api/chat endpoint and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your venice.ai full Cookie header.",transport:{baseUrl:"https://venice.ai",format:"venice-web",authType:"cookie"},models:[{id:"venice-latest",name:"Venice Latest"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"qwen-2.5-coder",name:"Qwen 2.5 Coder"}],passthroughModels:!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:{baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"veoaifree-web",priority:150,alias:"veoaifree-web",aliases:["veo-free"],uiAlias:"veo-free",display:{name:"Veo AI Free",icon:"movie",color:"#10B981",textIcon:"VF",website:"https://veoaifree.com",notice:{signupUrl:"https://veoaifree.com",apiKeyUrl:"https://veoaifree.com",text:"Veo AI Free (veoaifree.com) — free multi-tool via WordPress AJAX: text-to-video, image generation, TTS, and prompt enhancement. No auth required. Intent is detected from the model id / prompt (e.g. models containing 'image'/'tts'/'enhance'). Limited to ~6 requests/hour per IP. Send the prompt as the last user message; optional system message can set aspect_ratio:/voice:/lang: hints. No connection key needed — paste any placeholder."}},category:"webCookie",authType:"cookie",authHint:"No auth required — veoaifree.com is free. Paste any placeholder value (the key is ignored).",transport:{baseUrl:"https://veoaifree.com",format:"veoaifree-web",authType:"cookie"},models:[{id:"veo",name:"VEO 3.1"},{id:"seedance",name:"Seedance"}],passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"windsurf",priority:45,alias:"ws",uiAlias:"ws",display:{name:"Windsurf",icon:"surfing",color:"#1FB6FF",textIcon:"WS",website:"https://windsurf.com",notice:{signupUrl:"https://windsurf.com",apiKeyUrl:"https://windsurf.com/show-auth-token",text:"Windsurf coding IDE — Claude Opus 4.7 (full effort tiers), Sonnet 4.6 1M context, GPT-5.5/5.4, Gemini 3.1 Pro, SWE models. ⚠️ COMING SOON: Windsurf speaks gRPC-web+protobuf, not REST — a native adapter is pending. The brand icon & catalog are shown now; chat requests will return a clear 'gRPC adapter pending' error until the adapter lands."}},category:"oauth",authModes:["apikey"],hasOAuth:!1,comingSoon:!0,transport:{baseUrl:"https://server.self-serve.windsurf.com",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max",contextLength:2e5},{id:"claude-opus-4.7-xhigh",name:"Claude Opus 4.7 XHigh",contextLength:2e5},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High",contextLength:2e5},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium",contextLength:2e5},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low",contextLength:2e5},{id:"claude-opus-4.7-review",name:"Claude Opus 4.7 Review",contextLength:2e5},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M",contextLength:1e6},{id:"claude-sonnet-4.6-1m",name:"Claude Sonnet 4.6 1M",contextLength:1e6},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking",contextLength:2e5},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:2e5},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking",contextLength:2e5},{id:"claude-opus-4.6",name:"Claude Opus 4.6",contextLength:2e5},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh",contextLength:2e5},{id:"gpt-5.5-high",name:"GPT-5.5 High",contextLength:2e5},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium",contextLength:2e5},{id:"gpt-5.5-low",name:"GPT-5.5 Low",contextLength:2e5},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",contextLength:1e6},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",contextLength:1e6},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High",contextLength:1e6}],passthroughModels:!0},{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,thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",usage:{billingUrl:"https://api.x.ai/v1/billing?format=credits",subscriptionUrl:"https://api.x.ai/v1/user?include=subscription"}},features:{usage:!0,usageApikey:!0},models:[{id:"grok-4.5",name:"Grok 4.5",contextWindow:5e5},{id:"grok-4.20-multi-agent",name:"Grok 4.20 Multi-Agent"},{id:"grok-4.20-reasoning",name:"Grok 4.20 Reasoning"},{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-imagine-image-quality",name:"Grok Imagine (Image Quality)",params:["n","response_format"],kind:"image"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video-1.5",name:"Grok Imagine Video 1.5",kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},u,v,{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"zenmux-free",priority:65,alias:"zmf",uiAlias:"zmf",display:{name:"ZenMux Free",icon:"hub",color:"#6366F1",textIcon:"ZM",website:"https://zenmux.ai",notice:{signupUrl:"https://zenmux.ai",apiKeyUrl:"https://zenmux.ai",text:"ZenMux Free tier — log in at zenmux.ai, export all cookies (EditThisCookie / Cookie-Editor / DevTools), and paste the full Cookie string. Must include `ctoken`. Free models: DeepSeek V3.2, GLM 4.7 Flash, MiMo V2 Flash, KAT Coder Pro, and more."}},category:"webCookie",authType:"cookie",authHint:"Paste the FULL cookie string from zenmux.ai (must include ctoken). Use EditThisCookie or DevTools → Application → Cookies → copy all.",transport:{baseUrl:"https://zenmux.ai/api/anthropic/v1/messages",format:"zenmux-free",authType:"cookie"},models:[{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"z-ai/glm-4.7-flash-free",name:"GLM 4.7 Flash Free"},{id:"z-ai/glm-4.6v-flash-free",name:"GLM 4.6V Flash Free"},{id:"z-ai/glm-4.7",name:"GLM 4.7"},{id:"z-ai/glm-4.6v-flash",name:"GLM 4.6V Flash"},{id:"qwen/qwen3.7-plus",name:"Qwen 3.7 Plus"},{id:"minimax/minimax-m3",name:"MiniMax M3"},{id:"minimax/minimax-m2.1",name:"MiniMax M2.1"},{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash"},{id:"stepfun/step-3.7-flash-free",name:"Step 3.7 Flash Free"},{id:"stepfun/step-3",name:"Step 3"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-image",name:"Gemini 3.1 Flash Lite Image"},{id:"anthropic/claude-fable-5",name:"Claude Fable 5"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5"},{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"inclusionai/ling-2.6-1t",name:"Ling 2.6 1T"},{id:"inclusionai/ring-2.6-1t",name:"Ring 2.6 1T"},{id:"meituan/longcat-2.0",name:"Longcat 2.0"},{id:"kuaishou/kat-coder-pro-v2.5",name:"KAT Coder Pro V2.5"},{id:"kuaishou/kat-coder-air-v2.5",name:"KAT Coder Air V2.5"},{id:"sapiens-ai/agnes-image-1.2",name:"Agnes Image 1.2"}],passthroughModels:!0},{id:"api-airforce",priority:70,alias:"airforce",aliases:["airforce","af"],uiAlias:"airforce",display:{name:"Api.Airforce",icon:"flight",color:"#6366F1",textIcon:"AF",website:"https://api.airforce",notice:{signupUrl:"https://api.airforce/playground/",apiKeyUrl:"https://api.airforce/playground/",text:"Api.Airforce is an OpenAI-compatible gateway with 65+ models. Log in at api.airforce/playground/, then open DevTools → Application → Cookies → copy the `airforce_session` cookie value (a JWT starting with eyJ). Paste it here — ExtremeRouter exchanges it for your API key automatically. Free tier: 10 free chat models (gpt-4o-mini, glm-4.7-flash, gpt-oss-120b/20b). Paid models need a positive balance at api.airforce/dashboard."}},category:"webCookie",authType:"cookie",authHint:"Paste your airforce_session cookie value (JWT from api.airforce DevTools → Application → Cookies), or the full `airforce_session=...` cookie string.",transport:{baseUrl:"https://api.airforce/v1/chat/completions",format:"openai",authType:"cookie"},models:[{id:"gpt-4o-mini",name:"GPT-4o mini (Free)"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash (Free)"},{id:"gpt-oss-120b",name:"GPT-OSS 120B (Free)"},{id:"gpt-oss-20b",name:"GPT-OSS 20B (Free)"},{id:"minimax-m2.5",name:"MiniMax M2.5 (Free)"},{id:"seed-rp",name:"Seed RP (Free)"},{id:"unmoderated-gpt",name:"Unmoderated GPT (Free)"},{id:"gemma3-270m:free",name:"Gemma 3 270M (Free)"},{id:"rnj-1",name:"RNJ-1 (Free)"},{id:"plutotext-r3-emotional",name:"PlutoText R3 Emotional (Free)"},{id:"claude-sonnet-4.6-rp",name:"Claude Sonnet 4.6 (Paid)"},{id:"claude-opus-4.5-rp",name:"Claude Opus 4.5 (Paid)"},{id:"gpt-5",name:"GPT-5 (Paid)"},{id:"deepseek-v3-0324",name:"DeepSeek V3.2 (Paid)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (Paid)"}],passthroughModels:!0},{id:"openvecta",priority:310,alias:"openvecta",aliases:["ov"],uiAlias:"ov",display:{name:"OpenVecta",icon:"hub",color:"#7C3AED",textIcon:"OV",website:"https://openvecta.com",notice:{signupUrl:"https://openvecta.com",apiKeyUrl:"https://openvecta.com",text:"OpenVecta is a pay-per-use AI inference gateway. Sign up at openvecta.com for free credits, then paste your API key. OpenAI-compatible — works with any OpenAI-format client. ~17 LLMs + embeddings available."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.openvecta.com/v1/chat/completions",format:"openai",validateUrl:"https://api.openvecta.com/v1/models"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gemma-4-31b",name:"Gemma 4 31B"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"nemotron-3-super-120b",name:"Nemotron 3 Super 120B"}],passthroughModels:!0},{id:"freebuff-web",priority:65,alias:"fb-web",aliases:["freebuff-web","freebuff-cookie"],uiAlias:"fbw",display:{name:"FreeBuff",icon:"bolt",color:"#F97316",textIcon:"FB",website:"https://freebuff.com",notice:{signupUrl:"https://freebuff.com",apiKeyUrl:"https://freebuff.com",text:"FreeBuff is a FREE AI assistant with coding help, web research, and deep reasoning. Log in at freebuff.com/chat, then open DevTools → Application → Cookies → copy the __Secure-next-auth.session-token cookie value (or the full cookie string). Default model: deepseek-v4-flash."}},category:"webCookie",authType:"cookie",authHint:"Paste your freebuff.com session cookie (__Secure-next-auth.session-token value or full cookie string).",transport:{baseUrl:"https://freebuff.com/api/chat/stream",format:"freebuff-web",authType:"cookie"},models:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (FreeBuff)"}],passthroughModels:!0},{id:"perplexity-agent",priority:175,alias:"pplx-agent",aliases:["pplxa","perplexity-agent"],uiAlias:"pplxa",display:{name:"Perplexity Agent",icon:"smart_toy",color:"#20A39E",textIcon:"PA",website:"https://www.perplexity.ai",notice:{signupUrl:"https://www.perplexity.ai",apiKeyUrl:"https://www.perplexity.ai/settings/api",text:"Perplexity Agent API routes to 30+ third-party models (GPT, Claude, Gemini, Grok, GLM, Kimi, Sonar) through one Perplexity API key. Get a key at perplexity.ai/settings/api. Uses the Responses API format."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/v1/agent",format:"openai-responses",validateUrl:"https://api.perplexity.ai/v1/models"},models:[{id:"openai/gpt-5-mini",name:"GPT-5 Mini"},{id:"openai/gpt-5",name:"GPT-5"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4-7",name:"Claude Opus 4.7"},{id:"anthropic/claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"xai/grok-4.20-multi-agent",name:"Grok 4.20 Multi-Agent"},{id:"perplexity/glm-5.2",name:"GLM 5.2"},{id:"perplexity/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"perplexity/sonar",name:"Sonar"}],passthroughModels:!0},{id:"featherless",priority:290,alias:"featherless",aliases:["fl"],uiAlias:"fl",display:{name:"Featherless",icon:"flutter_dash",color:"#FF6B35",textIcon:"FL",website:"https://featherless.ai",notice:{signupUrl:"https://featherless.ai",apiKeyUrl:"https://featherless.ai/account/api-keys",text:"Featherless hosts 46,000+ open-source models from HuggingFace. Get a key at featherless.ai/account/api-keys. OpenAI-compatible — works with any standard client. Models are auto-discovered at runtime."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.featherless.ai/v1/chat/completions",format:"openai",validateUrl:"https://api.featherless.ai/v1/models"},modelsFetcher:{url:"https://api.featherless.ai/v1/models?available_on_current_plan=true&per_page=100",type:"openai"},models:[{id:"meta-llama/Meta-Llama-3.1-8B-Instruct",name:"Llama 3.1 8B"},{id:"meta-llama/Meta-Llama-3.1-70B-Instruct",name:"Llama 3.1 70B"},{id:"Qwen/Qwen2.5-7B-Instruct",name:"Qwen 2.5 7B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"google/gemma-2-9b-it",name:"Gemma 2 9B"},{id:"mistralai/Mistral-7B-Instruct-v0.3",name:"Mistral 7B v0.3"},{id:"mistralai/Mixtral-8x7B-Instruct-v0.1",name:"Mixtral 8x7B"},{id:"deepseek-ai/deepseek-llm-7b-chat",name:"DeepSeek LLM 7B Chat"},{id:"microsoft/Phi-3.5-mini-instruct",name:"Phi 3.5 Mini"}],passthroughModels:!0},{id:"moonshot",priority:165,alias:"moonshot",aliases:["ms"],uiAlias:"ms",display:{name:"Moonshot AI",icon:"dark_mode",color:"#6D28D9",textIcon:"MS",website:"https://platform.moonshot.ai",notice:{signupUrl:"https://platform.moonshot.ai/console/api-keys",apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",text:"Moonshot AI is the official platform for Kimi models (kimi-k3, kimi-k2.6, kimi-k2.5). Get an API key at platform.moonshot.ai. OpenAI-compatible. kimi-k3 supports reasoning_effort: max."}},category:"apikey",authType:"apikey",thinkingConfig:{options:["auto","none","max"],defaultMode:"auto"},transport:{baseUrl:"https://api.moonshot.ai/v1/chat/completions",format:"openai",validateUrl:"https://api.moonshot.ai/v1/models"},models:[{id:"kimi-k3",name:"Kimi K3"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"moonshot-v1-8k-vision-preview",name:"Moonshot v1 8K Vision"},{id:"moonshot-v1-32k-vision-preview",name:"Moonshot v1 32K Vision"},{id:"moonshot-v1-128k-vision-preview",name:"Moonshot v1 128K Vision"}],passthroughModels:!0},{id:"qwencloud",priority:65,alias:"qc",aliases:["qwencloud"],uiAlias:"qc",display:{name:"QwenCloud",icon:"cloud",color:"#615CED",textIcon:"QC",website:"https://www.qwencloud.com",notice:{signupUrl:"https://www.qwencloud.com",apiKeyUrl:"https://www.qwencloud.com",text:"QwenCloud provides access to Qwen 3.7 models via web chat. Log in at qwencloud.com, open the chat at qwencloud.com/try-ai/chat?models=qwen3.7-max, then copy the FULL Cookie string + bx-ua + bx-umidtoken from DevTools. The executor handles the multi-step auth flow automatically."}},category:"webCookie",authType:"cookie",authHint:"Paste your cookie string from qwencloud.com (must include login_qwencloud_ticket). Optionally append: ; bx-ua=<value>; bx-umidtoken=<value> for accessToken generation.",transport:{baseUrl:"https://cs-stream.qwencloud.com/sse/console4Json",format:"qwencloud",authType:"cookie"},models:[{id:"qwen3.7-max",name:"Qwen 3.7 Max"},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus"}],passthroughModels:!0},{id:"forge",priority:310,alias:"forge",aliases:["fg","forgeai"],uiAlias:"fg",display:{name:"Forge Workspace",icon:"local_fire_department",color:"#FF6B35",textIcon:"FG",website:"https://www.forge-ai.space/",notice:{signupUrl:"https://www.forge-ai.space/?ref=ref-a556c7a8",apiKeyUrl:"https://www.forge-ai.space/?ref=ref-a556c7a8",text:"Forge Workspace is an AI model gateway with 33+ models across FREE and PRO tiers. Sign up for free credits at forge-ai.space, then paste your API key. OpenAI-compatible — works with any OpenAI-format client."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://forge-gateway-api.fly.dev/v1/chat/completions",format:"openai",validateUrl:"https://forge-gateway-api.fly.dev/v1/models"},models:[{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:105e4,tier:"FREE"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindow:105e4,tier:"FREE"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindow:105e4,tier:"FREE"},{id:"gpt-5.5",name:"GPT-5.5",contextWindow:128e3,tier:"FREE"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindow:4e5,tier:"FREE"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,tier:"FREE"},{id:"claude-sonnet-4-6-thinking",name:"Claude Sonnet 4.6 Thinking",contextWindow:1e6,tier:"FREE"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindow:1e6,tier:"FREE"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",contextWindow:2e5,tier:"FREE"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",contextWindow:2e5,tier:"FREE"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",contextWindow:2e5,tier:"FREE"},{id:"claude-fable-5",name:"Claude Fable 5",contextWindow:1e6,tier:"PRO"},{id:"grok-4.5",name:"Grok 4.5",contextWindow:5e5,tier:"FREE"},{id:"grok-4.3",name:"Grok 4.3",contextWindow:1e6,tier:"FREE"},{id:"grok-build-0.1",name:"Grok Build 0.1",contextWindow:256e3,tier:"FREE"},{id:"deepseek-r1",name:"DeepSeek R1",contextWindow:128e3,tier:"FREE"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:1e6,tier:"FREE"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:1e6,tier:"FREE"},{id:"deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:163e3,tier:"FREE"},{id:"deepseek-v3.1",name:"DeepSeek V3.1",contextWindow:128e3,tier:"FREE"},{id:"deepseek-v3",name:"DeepSeek V3",contextWindow:128e3,tier:"FREE"},{id:"kimi-k3",name:"Kimi K3",contextWindow:1e6,tier:"FREE"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindow:1e6,tier:"FREE"},{id:"kimi-k2.6",name:"Kimi K2.6",contextWindow:1e6,tier:"FREE"},{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:1e6,tier:"FREE"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,tier:"FREE"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindow:1e6,tier:"FREE"},{id:"tencent/hy3",name:"Tencent HY3",contextWindow:1e6,tier:"FREE"},{id:"mimo-v2.5",name:"MiMo V2.5",contextWindow:1e6,tier:"FREE"},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",contextWindow:1e6,tier:"FREE"},{id:"MiniMax-M3",name:"MiniMax M3",contextWindow:1e6,tier:"FREE"},{id:"MiniMax-M2.5",name:"MiniMax M2.5",contextWindow:1e6,tier:"FREE"},{id:"glm-5.2",name:"GLM 5.2",contextWindow:1e6,tier:"FREE"}],modelsFetcher:{url:"https://forge-gateway-api.fly.dev/v1/models",type:"forge"},thinkingConfig:{options:["auto","none","max"],defaultMode:"auto"},passthroughModels:!0},{id:"tokenrouter",priority:320,alias:"tokenrouter",aliases:[],uiAlias:"tr",display:{name:"TokenRouter",icon:"router",color:"#10B981",textIcon:"TR",website:"https://api.tokenrouter.com",notice:{signupUrl:"https://api.tokenrouter.com",apiKeyUrl:"https://api.tokenrouter.com",text:"TokenRouter is an AI model gateway with Claude, GPT, Gemini, Kimi, DeepSeek, GLM and more. Create an API key at api.tokenrouter.com, then paste it here. OpenAI-compatible — works with any OpenAI-format client. For Quota Tracker, also paste your management key (separate from the chat sk- key)."}},category:"apikey",authType:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://api.tokenrouter.com/v1/chat/completions",format:"openai",thinkingFormat:"openai",validateUrl:"https://api.tokenrouter.com/v1/models",usage:{walletUrl:"https://api.tokenrouter.com/api/management/self/wallet"}},models:[],passthroughModels:!0,modelsFetcher:{url:"https://api.tokenrouter.com/v1/models",type:"tokenrouter"},pricing:"tokenrouter",thinkingConfig:{options:["auto","none","low","medium","high","xhigh","max"],defaultMode:"auto"}},x,{id:"alibaba",priority:160,alias:"alibaba",aliases:["ali"],uiAlias:"ali",display:{name:"Alibaba (Model Studio)",icon:"cloud",color:"#FF6A00",textIcon:"AL",website:"https://dashscope.console.aliyun.com",notice:{signupUrl:"https://dashscope.console.aliyun.com",apiKeyUrl:"https://dashscope.console.aliyun.com/apiKey",text:"Alibaba Cloud Model Studio (DashScope International). Create an API key at dashscope.console.aliyun.com. OpenAI-compatible."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",format:"openai",validateUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen3.6-27b",name:"Qwen3.6 27B"},{id:"qwen3.6-35b-a3b",name:"Qwen3.6 35B A3B"},{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.2-fast-preview",name:"GLM 5.2 Fast Preview"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"}],passthroughModels:!0},{id:"alibaba-cn",priority:161,alias:"alibaba-cn",aliases:["alicn"],uiAlias:"alicn",display:{name:"Alibaba (China)",icon:"cloud",color:"#FF6A00",textIcon:"AC",website:"https://dashscope.console.aliyun.com",notice:{signupUrl:"https://dashscope.console.aliyun.com",apiKeyUrl:"https://dashscope.console.aliyun.com/apiKey",text:"Alibaba Cloud Model Studio (DashScope China region). Create an API key at dashscope.console.aliyun.com. OpenAI-compatible."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",format:"openai",validateUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen3.6-27b",name:"Qwen3.6 27B"},{id:"qwen3.6-35b-a3b",name:"Qwen3.6 35B A3B"},{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.2-fast-preview",name:"GLM 5.2 Fast Preview"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"}],passthroughModels:!0},y,z,{id:"inxorastudio-web",priority:345,alias:"ix-web",aliases:["ixweb"],uiAlias:"ix-web",display:{name:"InxoraStudio Labs (Web)",icon:"science",color:"#A78BFA",textIcon:"IX",website:"https://labs.inxorastudio.com",notice:{signupUrl:"https://labs.inxorastudio.com",text:"InxoraStudio Labs web dashboard chat. Log in at labs.inxorastudio.com, then open DevTools → Network → copy the Authorization Bearer token (eyJ...) from any API request. Paste it here."}},category:"webCookie",authType:"cookie",authHint:"Paste your Bearer JWT token (eyJ...) from labs.inxorastudio.com DevTools",transport:{baseUrl:"https://labs.inxorastudio.com/api/conversations",format:"inxorastudio-web",authType:"cookie"},models:[],passthroughModels:!0,modelsFetcher:{url:"https://labs.inxorastudio.com/api/ai/models",type:"inxora"}},A,B,C,{id:"1min",priority:365,alias:"1min",aliases:["1m"],uiAlias:"1m",display:{name:"1min.ai",icon:"bolt",color:"#8B5CF6",textIcon:"1M",website:"https://1min.ai",notice:{signupUrl:"https://1min.ai?referrer_id=3cf6f69c-2006-4ce2-93d5-de493365e967",text:"1min.ai is an AI platform with 38+ coding models (Claude, GPT, Gemini, DeepSeek, Qwen, GLM, Grok). Log in at app.1min.ai, then open DevTools → Network → copy the x-auth-token Bearer value (eyJ...) from any API request. Paste it here."}},category:"webCookie",authType:"cookie",authHint:"Paste your Bearer JWT token (eyJ...) from app.1min.ai DevTools (x-auth-token header)",transport:{baseUrl:"https://api.1min.ai/teams",format:"1min",authType:"cookie"},models:[{id:"claude-5-sonnet",name:"Claude 5 Sonnet"},{id:"claude-4-6-sonnet",name:"Claude 4.6 Sonnet"},{id:"claude-4-8-opus",name:"Claude 4.8 Opus"},{id:"gpt-5-6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5-6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5-5",name:"GPT-5.5"},{id:"deepseek-v3-2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"gemini-3-5-flash",name:"Gemini 3.5 Flash"},{id:"glm-5-2",name:"GLM-5.2"},{id:"xai-grok-code-fast-1",name:"Grok Code Fast 1"}],passthroughModels:!0,modelsFetcher:{url:"https://api.1min.ai/models?feature=CODE_GENERATOR",type:"1min"}},{id:"1min-api",priority:364,alias:"1min-api",aliases:["1m-api","1minai"],uiAlias:"1m-api",display:{name:"1min.ai (API)",icon:"bolt",color:"#7C3AED",textIcon:"1M",website:"https://1min.ai",notice:{signupUrl:"https://1min.ai?referrer_id=3cf6f69c-2006-4ce2-93d5-de493365e967",apiKeyUrl:"https://1min.ai?referrer_id=3cf6f69c-2006-4ce2-93d5-de493365e967",text:"1min.ai official API. Create an API key in your dashboard (app.1min.ai → API), then paste it here. Uses the chat-with-ai streaming endpoint with 38+ models (Claude, GPT, Gemini, DeepSeek, Qwen, GLM, Grok)."}},category:"freeTier",hasFree:!0,authType:"apikey",authHint:"Paste your 1min.ai API key (from app.1min.ai → API). Starts with letters/numbers — no 'Bearer' prefix.",transport:{baseUrl:"https://api.1min.ai/api/chat-with-ai",format:"1min-api",authType:"apikey",auth:{header:"API-KEY",scheme:"raw"},validateUrl:"https://api.1min.ai/api/profile"},models:[{id:"claude-5-sonnet",name:"Claude 5 Sonnet"},{id:"claude-4-6-sonnet",name:"Claude 4.6 Sonnet"},{id:"claude-4-8-opus",name:"Claude 4.8 Opus"},{id:"gpt-5-6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5-6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5-5",name:"GPT-5.5"},{id:"deepseek-v3-2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"gemini-3-5-flash",name:"Gemini 3.5 Flash"},{id:"glm-5-2",name:"GLM-5.2"},{id:"xai-grok-code-fast-1",name:"Grok Code Fast 1"}],passthroughModels:!0,modelsFetcher:{url:"https://api.1min.ai/models?feature=UNIFY_CHAT_WITH_AI",type:"1min"}},{id:"marathon",priority:363,alias:"marathon",aliases:["mara","marathonbuild"],uiAlias:"mara",display:{name:"Marathon",icon:"timer",color:"#0EA5E9",textIcon:"MR",website:"https://marathon.build",notice:{signupUrl:"https://marathon.build",apiKeyUrl:"https://marathon.build",text:"Marathon (by GoKite AI) is adaptive inference infrastructure. Choose a completion window per request: 'now' for real-time streaming, or 'soon'/'later'/'anytime' for up to 65% cost savings (delayed async with automatic polling). Create an API key at marathon.build, then paste it here."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://delayed-inference.prod.gokite.ai/v1/delayed/chat/completions",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"kimi-k3",name:"Kimi K3"},{id:"glm-5-2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"qwen3-6-35b-a3b",name:"Qwen3.6-35B-A3B"},{id:"nemotron-3-ultra",name:"Nemotron 3 Ultra"}],passthroughModels:!0,modelsFetcher:{url:"https://delayed-inference.prod.gokite.ai/v1/models",type:"openai"}},{id:"zed",priority:56,alias:"zed",uiAlias:"zed",display:{name:"Zed Hosted AI",icon:"code",color:"#1348DC",textIcon:"Z",website:"https://zed.dev",notice:{signupUrl:"https://zed.dev",text:"Zed Hosted AI provides access to Claude, GPT, and Gemini models via the Zed Editor cloud. Import your Zed credentials (user ID + access token from the Zed keychain) to mint an LLM token automatically."}},category:"oauth",authType:"oauth",hasOAuth:!0,transport:{baseUrl:"https://cloud.zed.dev",chatPath:"/completions",format:"openai",forceStream:!0,headers:{"Content-Type":"application/json","x-zed-client-supports-status-messages":"true","x-zed-client-supports-stream-ended-request-completion-status":"true","x-zed-client-supports-x-ai":"true"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://cloud.zed.dev/client/users/me"},modelsUrl:"https://cloud.zed.dev/models"},models:[],passthroughModels:!0,oauth:{apiEndpoint:"https://cloud.zed.dev",completionsPath:"/completions",modelsPath:"/models",llmTokensPath:"/client/llm_tokens",usersMePath:"/client/users/me",refreshLeadMs:3e5}},{id:"wp-studio",priority:57,alias:"wp-studio",aliases:["wps","wpstudio"],uiAlias:"wps",display:{name:"WordPress Studio Code",icon:"code",color:"#3499CD",textIcon:"WP",website:"https://developer.wordpress.com/studio/",notice:{signupUrl:"https://developer.wordpress.com/studio/",text:"WordPress Studio Code provides access to Claude Sonnet 5, Opus 4.8, and GPT-5.6 Sol via the WordPress.com AI proxy. Install Studio Code, log in with your WordPress.com account, then import your credentials here."}},category:"oauth",authType:"oauth",transport:{baseUrl:`${D}/v1/messages`,format:"claude",headers:{"X-WPCOM-AI-Feature":"studio-assistant-anthropic"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"claude",baseUrl:`${D}/v1/messages`,headers:{"X-WPCOM-AI-Feature":"studio-assistant-anthropic"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"openai",baseUrl:`${D}/v1/chat/completions`,headers:{"X-WPCOM-AI-Feature":"studio-assistant"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindow:2e5},{id:"claude-opus-4-8",name:"Claude Opus 4.8",contextWindow:2e5},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:128e3}],passthroughModels:!0,oauth:{apiEndpoint:D,refreshLeadMs:864e5}},{id:"agnes-web",priority:58,alias:"agnes",aliases:["agnes-web"],uiAlias:"agnes",display:{name:"Agnes (Web)",icon:"auto_awesome",color:"#6C5CE7",textIcon:"AG",website:"https://app.agnes-ai.com",notice:{signupUrl:"https://app.agnes-ai.com",text:"Agnes is an agentic AI assistant. Log in at app.agnes-ai.com, then copy the token cookie value (eyJ...) from DevTools. Paste it here. The JWT is valid for ~28 days."}},category:"webCookie",authType:"cookie",authHint:"Paste your Agnes JWT token (from app.agnes-ai.com cookie 'token' or Authorization Bearer header). Starts with eyJ...",transport:{baseUrl:"https://api.agnes-ai.com/api/v1/agnes/chat/stream",format:"agnes-web",authType:"cookie"},models:[{id:"agnes-super",name:"Agnes Super (Agent)"}],passthroughModels:!0},{id:"agnes-api",priority:59,alias:"agnes-api",aliases:["agnesaapi"],uiAlias:"agnes-api",display:{name:"Agnes AI (API)",icon:"auto_awesome",color:"#6C5CE7",textIcon:"AG",website:"https://app.agnes-ai.com",notice:{signupUrl:"https://app.agnes-ai.com",apiKeyUrl:"https://app.agnes-ai.com",text:"Agnes AI official API. Create an API key in your Agnes dashboard, then paste it here. OpenAI-compatible — supports streaming, vision, and reasoning. Free tier available for Agnes 2.0/2.5 Flash."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://apihub.agnes-ai.com/v1/chat/completions",format:"openai",validateUrl:"https://apihub.agnes-ai.com/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"agnes-2.5-pro-alpha",name:"Agnes 2.5 Pro Alpha",contextWindow:1e6,maxOutput:65536},{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash",contextWindow:524288,maxOutput:65536},{id:"agnes-2.0",name:"Agnes 2.0",contextWindow:524288,maxOutput:65536}],passthroughModels:!0,modelsFetcher:{url:"https://apihub.agnes-ai.com/v1/models",type:"openai"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://apihub.agnes-ai.com/v1/images/generations",bodyFields:["model","prompt","n","size","response_format"]}},{id:"qwen2api",priority:60,alias:"extreme-exclusive",aliases:["qwen2api","qwen-proxy"],uiAlias:"extreme-exclusive",display:{name:"ExtremeRouter (Exclusive)",icon:"diamond",color:"#FF6B35",textIcon:"EX",website:"https://github.com/smanx/qwen2api",notice:{signupUrl:"https://github.com/smanx/qwen2api",text:"Exclusive ExtremeRouter provider — Qwen models (3.7/3.8) via OpenAI-compatible proxy. No API key required. Dual endpoint with automatic fallback."}},category:"free",authType:"apikey",noAuth:!0,transport:{baseUrl:`${E}/v1/chat/completions`,format:"openai",validateUrl:`${E}/v1/models`},transports:[{format:"openai",baseUrl:`${E}/v1/chat/completions`},{format:"openai",baseUrl:"https://qwen2api-n.smanx.xx.kg/v1/chat/completions"}],models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview",contextWindow:1e6},{id:"qwen3.7-max",name:"Qwen3.7 Max",contextWindow:1e6},{id:"qwen3.7-plus",name:"Qwen3.7 Plus",contextWindow:1e6},{id:"qwen3.6-plus",name:"Qwen3.6 Plus",contextWindow:1e6}],passthroughModels:!0,modelsFetcher:{url:`${E}/v1/models`,type:"openai"}},{id:"stepfun",priority:63,alias:"stepfun",aliases:["step","sf"],uiAlias:"stepfun",display:{name:"StepFun",icon:"stairs",color:"#FF6B35",textIcon:"SF",website:"https://platform.stepfun.ai",notice:{signupUrl:"https://platform.stepfun.ai",apiKeyUrl:"https://platform.stepfun.ai",text:"StepFun provides access to the Step-3/3.x model family (multimodal MoE, 256K context, vision, video, reasoning). Create an API key at platform.stepfun.ai, then paste it here. Supports OpenAI, Responses API, and Anthropic formats."}},category:"apikey",authType:"apikey",transport:{baseUrl:`${F}/v1/chat/completions`,format:"openai",responsesUrl:`${F}/v1/responses`,validateUrl:`${F}/v1/models`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:`${F}/v1/chat/completions`,responsesUrl:`${F}/v1/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"openai-responses",baseUrl:`${F}/v1/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:`${F}/v1/messages`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"step-3.7-flash",name:"Step 3.7 Flash",contextWindow:256e3},{id:"step-3.5-flash",name:"Step 3.5 Flash",contextWindow:256e3},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603",contextWindow:256e3},{id:"step-3",name:"Step 3",contextWindow:65536},{id:"step-image-edit-2",name:"Step Image Edit 2",kind:"image"}],passthroughModels:!0,modelsFetcher:{url:`${F}/v1/models`,type:"openai"},thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},serviceKinds:["llm","image"],imageConfig:{baseUrl:`${F}/v1/images/generations`,editUrl:`${F}/v1/images/edits`,bodyFields:["model","prompt","n","size","response_format","cfg_scale","steps","seed"]}},{id:"deepinfra",priority:50,alias:"deepinfra",display:{name:"DeepInfra",icon:"hub",color:"#2563EB",textIcon:"DI",website:"https://deepinfra.com",notice:{apiKeyUrl:"https://deepinfra.com/dash/api_keys",text:"DeepInfra hosts hundreds of open models (Llama, Qwen, DeepSeek, GLM, Kimi, MiniMax). Get an API key from deepinfra.com/dash/api_keys — free signup credits included."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.deepinfra.com/v1/openai/chat/completions",validateUrl:"https://api.deepinfra.com/v1/openai/models"},models:[{id:"anthropic/claude-4-opus",name:"Claude 4 Opus"},{id:"anthropic/claude-4-sonnet",name:"Claude 4 Sonnet"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"openai/gpt-oss-20b",name:"GPT OSS 20B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"meta-llama/Llama-4-Scout-17B-16E-Instruct",name:"Llama 4 Scout"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5 397B"},{id:"Qwen/Qwen3.6-35B-A3B",name:"Qwen3.6 35B"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B"},{id:"XiaomiMiMo/MiMo-V2.5-Pro",name:"MiMo V2.5 Pro"}],passthroughModels:!0,hasFree:!0,freeNote:"Free signup credits for API testing and model exploration"},{id:"codestral",priority:50,alias:"codestral",display:{name:"Codestral",icon:"terminal",color:"#FF7000",textIcon:"CS",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys/",text:"Codestral is Mistral's code-specialist model. Get an API key from console.mistral.ai — free tier available for non-commercial use."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://codestral.mistral.ai/v1/chat/completions",validateUrl:"https://codestral.mistral.ai/v1/models"},models:[{id:"codestral-2508",name:"Codestral 2508"},{id:"codestral-latest",name:"Codestral Latest"}],passthroughModels:!0},{id:"databricks",priority:50,alias:"databricks",display:{name:"Databricks",icon:"table_chart",color:"#F97316",textIcon:"DB",website:"https://www.databricks.com",notice:{apiKeyUrl:"https://accounts.cloud.databricks.com/oidc/token",text:"Databricks Mosaic AI Model Serving. Base URL is your workspace serving-endpoint (https://<workspace>.cloud.databricks.com/serving-endpoints/...). For self-hosted workspaces, add the endpoint URL via a custom baseUrl connection."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://adb-0000000000000000.0.azuredatabricks.net/serving-endpoints",validateUrl:"https://adb-0000000000000000.0.azuredatabricks.net/serving-endpoints"},models:[{id:"databricks-gpt-5",name:"Databricks GPT-5"},{id:"databricks-meta-llama-3-3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"databricks-claude-sonnet-4",name:"Claude Sonnet 4"},{id:"databricks-gemini-2-5-pro",name:"Gemini 2.5 Pro"}]},{id:"unimodel",priority:280,alias:"unimodel",aliases:["um","unimodel-ai"],uiAlias:"um",display:{name:"UniModel",icon:"hub",color:"#7C4DFF",textIcon:"UM",website:"https://unimodel.ai",notice:{signupUrl:"https://unimodel.ai",apiKeyUrl:"https://unimodel.ai",text:"UniModel.ai aggregates LLMs from one key, converting them to OpenAI-compatible endpoints. Get a key from the UniModel dashboard. Models are auto-discovered at runtime."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://sg.unimodel.ai/v1/chat/completions",format:"openai",validateUrl:"https://sg.unimodel.ai/v1/models"},modelsFetcher:{url:"https://sg.unimodel.ai/v1/models",type:"openai"},models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"claude-3-7-sonnet",name:"Claude 3.7 Sonnet"},{id:"claude-3-5-sonnet",name:"Claude 3.5 Sonnet"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-reasoner",name:"DeepSeek Reasoner"}],passthroughModels:!0},{id:"inferx",priority:50,alias:"inferx",aliases:["ix"],uiAlias:"inferx",display:{name:"InferX",icon:"bolt",color:"#6366F1",textIcon:"IX",website:"https://model.inferx.net",notice:{signupUrl:"https://model.inferx.net/login",apiKeyUrl:"https://model.inferx.net/login",text:"InferX provides serverless OpenAI-compatible inference endpoints for open models. Sign up at model.inferx.net/login to get your tenant-scoped API key. Free / 100% discount models available."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://model.inferx.net/endpoints/v1/chat/completions",format:"openai",validateUrl:"https://model.inferx.net/endpoints/v1/models"},modelsFetcher:{url:"https://model.inferx.net/endpoints/v1/models",type:"openai"},models:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash (0731)"},{id:"Qwen3.6-35B-A3B-FP8",name:"Qwen 3.6 35B A3B"},{id:"Qwen3.6-35B-A3B-fp8-no-thinking",name:"Qwen 3.6 35B A3B (No Thinking)"},{id:"Qwen3-Coder-Next-FP8",name:"Qwen 3 Coder Next"},{id:"gemma-4-31B-it-fp8",name:"Gemma 4 31B IT"},{id:"glm-52",name:"GLM 52"},{id:"Agents-A1",name:"Agents A1"},{id:"Devstral-2-123B-Instruct-2512-int4-AutoRound",name:"Devstral 2 123B Instruct"},{id:"Ornith-1.0-35B-FP8",name:"Ornith 1.0 35B"},{id:"Qwen3.6-27B-FP8",name:"Qwen 3.6 27B"},{id:"Qwen3-Embedding-8B",name:"Qwen 3 Embedding 8B"}],passthroughModels:!0,hasFree:!0,freeNote:"100% discount free-tier models available upon login at model.inferx.net"},{id:"novita",priority:50,alias:"novita",aliases:["nv"],uiAlias:"novita",display:{name:"Novita AI",icon:"hub",color:"#8B5CF6",textIcon:"NV",website:"https://novita.ai",notice:{signupUrl:"https://novita.ai",apiKeyUrl:"https://novita.ai/dashboard/key-management",text:"Novita AI offers fast, low-cost API inference for open LLMs (DeepSeek R1/V3, Llama, Qwen, GLM) with OpenAI SDK compatibility. Sign up at novita.ai to get your API key."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.novita.ai/v3/openai/chat/completions",format:"openai",validateUrl:"https://api.novita.ai/v3/openai/models"},modelsFetcher:{url:"https://api.novita.ai/v3/openai/models",type:"openai"},models:[{id:"deepseek/deepseek-r1",name:"DeepSeek R1"},{id:"deepseek/deepseek-v3",name:"DeepSeek V3"},{id:"deepseek/deepseek-r1-distill-llama-70b",name:"DeepSeek R1 Distill Llama 70B"},{id:"deepseek/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"meta-llama/llama-3.1-405b-instruct",name:"Llama 3.1 405B Instruct"},{id:"qwen/qwen-2.5-72b-instruct",name:"Qwen 2.5 72B Instruct"},{id:"qwen/qwen-2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B"},{id:"mistralai/mistral-nemo",name:"Mistral Nemo"}],passthroughModels:!0,hasFree:!0,freeNote:"Free trial credits upon signup at novita.ai"},{id:"kimi-desktop",priority:131,alias:"kimi-desktop",uiAlias:"kimi-desktop",display:{name:"Kimi Desktop (App)",icon:"auto_fix_high",color:"#4338CA",textIcon:"KD",website:"https://www.kimi.com",notice:{signupUrl:"https://www.kimi.com",text:"Kimi Desktop (Windows/macOS app). Log in on the desktop app, then import the session automatically — the gateway reads the token store in the app's AppData folder and uses it against www.kimi.com. No browser cookies needed. If the session has expired, re-open the desktop app and re-login, then import again."}},category:"oauth",authType:"import_token",authHint:"Session imported from the Kimi desktop app. Re-import after re-login to refresh.",transport:{baseUrl:"https://www.kimi.com",format:"kimi-web",authType:"cookie"},models:[{id:"kimi-default",name:"Kimi Default"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 (Thinking)",supportsReasoning:!0},{id:"kimi-k2.5-search",name:"Kimi K2.5 (Search)"},{id:"kimi-k2.5-thinking-search",name:"Kimi K2.5 (Thinking + Search)",supportsReasoning:!0},{id:"kimi-2.6-fast",name:"Kimi 2.6 Fast"},{id:"kimi-2.6-thinking",name:"Kimi 2.6 (Thinking)",supportsReasoning:!0},{id:"kimi-2.6-search",name:"Kimi 2.6 (Search)"},{id:"kimi-2.6-thinking-search",name:"Kimi 2.6 (Thinking + Search)",supportsReasoning:!0},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 (Thinking)",supportsReasoning:!0},{id:"kimi-k2-search",name:"Kimi K2 (Search)"},{id:"kimi-k2-thinking-search",name:"Kimi K2 (Thinking + Search)",supportsReasoning:!0},{id:"kimi-thinking",name:"Kimi (Thinking)",supportsReasoning:!0},{id:"kimi-search",name:"Kimi (Search)"},{id:"kimi-thinking-search",name:"Kimi (Thinking + Search)",supportsReasoning:!0},{id:"kimi-k3",name:"Kimi K3"}],passthroughModels:!0,features:{usage:!0},thinkingConfig:{options:["standard","high","max"],defaultMode:"high"},quotaFamily:"kimi-desktop",oauth:{tokenStoragePath:{win32:"%APPDATA%\\kimi-desktop\\bridge-store\\token-store.json",darwin:"~/Library/Application Support/kimi-desktop/bridge-store/token-store.json"},dbKeys:{accessToken:"tokens.access_token",refreshToken:"tokens.refresh_token",userId:"tokens.msh_user_id"}}},{id:"tokenharbor",priority:300,alias:"th",uiAlias:"th",display:{name:"TokenHarbor",icon:"anchor",color:"#0EA5E9",textIcon:"TH",website:"https://tokenharbor.ai",notice:{signupUrl:"https://tokenharbor.ai/login?invite=TH-ATB2-9CP7",apiKeyUrl:"https://tokenharbor.ai/login?invite=TH-ATB2-9CP7",text:"TokenHarbor — AI model gateway with a shared cache. One API key fronts OpenAI- and Anthropic-compatible endpoints (Claude Opus 5, GPT-5.6, Kimi K3, GLM 5.2, Gemini 3.6 Flash…). Create a key at tokenharbor.ai. Per-request cache control: set X-TH-Cache-Control: bypass (skip lookup, still write) or force-refresh (pure passthrough, no write) on the request to override caching."}},category:"apikey",authType:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://tokenharbor.ai/v1/chat/completions",format:"openai",thinkingFormat:"openai",validateUrl:"https://tokenharbor.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://tokenharbor.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://tokenharbor.ai/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"claude-opus-5",name:"Claude Opus 5",targetFormat:"claude"},{id:"claude-fable-5",name:"Claude Fable 5",targetFormat:"claude"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",targetFormat:"claude"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"kimi-k3",name:"Kimi K3"},{id:"qwen3.8-max",name:"Qwen3.8 Max"},{id:"grok-4.5",name:"Grok 4.5"},{id:"glm-5.2",name:"GLM 5.2"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash"}],passthroughModels:!0,pricing:"tokenharbor",thinkingConfig:{options:["auto","none","low","medium","high","xhigh","max"],defaultMode:"auto"}},{id:"workbuddy",alias:"wb",uiAlias:"wb",hidden:!1,priority:90,display:{name:"WorkBuddy",icon:"smart_toy",color:"#006EFF",website:"https://www.workbuddy.ai",notice:{signupUrl:"https://www.workbuddy.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.workbuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"CLI/2.108.1 WorkBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.workbuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"hy3",name:"Hy3"},{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"glm-5.0",name:"GLM-5.0"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"glm-4.7",name:"GLM-4.7"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],oauth:{baseUrl:"https://www.workbuddy.ai",stateUrl:"https://www.workbuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.workbuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.workbuddy.ai/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 WorkBuddy/2.63.2",platform:"workbuddy",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codebuddy-intl",alias:"cbai",uiAlias:"cbai",hidden:!1,priority:90,display:{name:"CodeBuddy Intl",icon:"smart_toy",color:"#006EFF",website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.codebuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"IDE/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"IDE","X-IDE-Name":"IDE","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.codebuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"glm-5.0",name:"GLM-5.0"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"glm-4.7",name:"GLM-4.7"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],oauth:{baseUrl:"https://www.codebuddy.ai",stateUrl:"https://www.codebuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.codebuddy.ai/v2/plugin/auth/token/refresh",userAgent:"IDE/2.63.2 CodeBuddy/2.63.2",platform:"ide",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"meta-ai",priority:300,alias:"ma",uiAlias:"ma",display:{name:"Meta AI",icon:"smart_toy",textIcon:"MA",website:"https://api.meta.ai",notice:{signupUrl:"https://www.meta.ai",apiKeyUrl:"https://api.meta.ai",text:'Meta AI — Muse Spark via one API key. Two tiers: Standard (private data, $1.25/$4.25 per 1M input/output) and Contributor (data-sharing, $0.10/$0.20; ~60 req/min, ~250K tokens/day cap). Cached input $0.15/1M. Muse Spark is a reasoning model — reasoning_effort minimal/low/medium/high/xhigh at request top level; "none" is not supported (HTTP 400).'}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.meta.ai/v1/chat/completions",format:"openai",thinkingFormat:"openai",validateUrl:"https://api.meta.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://api.meta.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.meta.ai/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"muse-spark-1.2",name:"Muse Spark 1.2"},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 (Contributor)"},{id:"muse-spark-1.1",name:"Muse Spark 1.1"}],passthroughModels:!0,pricing:"meta-ai",thinkingConfig:{options:["auto","minimal","low","medium","high","xhigh"],defaultMode:"auto"}},{id:"helyxai",priority:140,alias:"helyxai",aliases:["hx"],uiAlias:"hx",display:{name:"Helyx AI",icon:"hub",color:"#7C3AED",textIcon:"HX",website:"https://helyxai.space",notice:{signupUrl:"https://helyxai.space",apiKeyUrl:"https://helyxai.space/dashboard",text:"Helyx AI — one OpenAI-compatible API for 50+ models (GPT, Claude, Gemini, Kimi, DeepSeek, Grok) plus image/video generation. Free tier: 100K tokens/day, resets every 24h."}},category:"apikey",authType:"apikey",hasFree:!0,freeNote:"Free plan: 100K tokens daily, resets every 24 hours.",transport:{baseUrl:"https://helyxai.space/v1/chat/completions",format:"openai"},pricing:"helyxai",passthroughModels:!0,models:[{id:"DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna"},{id:"gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite"},{id:"GLM-5.2",name:"GLM 5.2"},{id:"Qwen3-32B",name:"Qwen3 32B"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"Mistral-4",name:"Mistral 4"},{id:"gemma-4-31B-it",name:"Gemma 4 31B"},{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"Kimi-K3",name:"Kimi K3"},{id:"llama-3.1-8b-instruct",name:"Llama 3.1 8B Instruct"},{id:"flux-1",name:"FLUX 1",params:["n","size"],kind:"image"},{id:"kling-video",name:"Kling Video",params:["duration"],kind:"video"}],serviceKinds:["llm","image","video"],imageConfig:{baseUrl:"https://helyxai.space/v1/images/generations",bodyFields:["model","prompt","n","size","response_format"]},videoConfig:{baseUrl:"https://helyxai.space/v1/videos/generations",bodyFields:["model","prompt","duration"]}},{id:"freebuff",priority:66,alias:"fb",aliases:["freebuff-api","freebuff-token"],uiAlias:"fb",display:{name:"Freebuff (Account)",icon:"bolt",color:"#F97316",textIcon:"FB",website:"https://freebuff.com",notice:{signupUrl:"https://freebuff.llm.pm",apiKeyUrl:"https://freebuff.llm.pm",text:"Connect your Freebuff account with a guided browser login (freebuff.com GitHub/Google) — no manual token needed. Already have an authToken? Paste it from https://freebuff.llm.pm or import it from the Freebuff CLI (~/.config/manicode/credentials.json)."}},category:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{baseUrl:"https://codebuff.com",format:"freebuff",authType:"token"},models:[{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash (Freebuff)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro (Freebuff)"},{id:"openai/gpt-5.6-luna",name:"GPT-5.6 Luna (Freebuff)"},{id:"minimax/minimax-m3",name:"MiniMax M3 (Freebuff)"}],passthroughModels:!0},{id:"tencent-aistudio-web",priority:60,alias:"tasw",uiAlias:"tasw",display:{name:"Tencent AI Studio (Free)",icon:"auto_awesome",color:"#0052D9",textIcon:"TAS",website:"https://aistudio.tencent.ai",notice:{signupUrl:"https://aistudio.tencent.ai",apiKeyUrl:"https://aistudio.tencent.ai",text:"Free web session on Tencent AI Studio (aistudio.tencent.ai) — direct chat with Hunyuan models (hy3-g, Hunyuan Default, Hunyuan 3D). Open aistudio.tencent.ai, log in, then copy your full Cookie header (DevTools → Network → any request → Request Headers → Cookie). Paste the full cookie string here. Responses are streamed from the web /api/chat endpoint and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Log in to aistudio.tencent.ai, open DevTools → Network, copy any request Cookie header containing session tokens.",hasFree:!0,transport:{baseUrl:"https://aistudio.tencent.ai",format:"openai",authType:"cookie"},models:[{id:"hy3-g",name:"HY3-G (via Tencent AI Studio)",toolCalling:!1},{id:"hunyuan-default",name:"Hunyuan Default (via Tencent AI Studio)",toolCalling:!1},{id:"hunyuan-3d",name:"Hunyuan 3D (via Tencent AI Studio)",toolCalling:!1}]},{id:"aihorde",priority:60,alias:"aihorde",display:{name:"AI Horde",icon:"groups",color:"#9333EA",textIcon:"AH",website:"https://aihorde.net",notice:{text:"Crowdsourced inference from volunteer GPUs — free anonymous key (or an account key for higher queue priority via kudos). Requests wait in a shared queue, so latency is minutes, not seconds. No tool calling. The catalog changes as workers come and go."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://oai.aihorde.net/v1/chat/completions",format:"openai",noAuth:!0,timeoutMs:12e4},models:[{id:"aphrodite/TheDrummer/Cydonia-24B-v4.3",name:"Cydonia 24B (AI Horde)",contextLength:32768,toolCalling:!1},{id:"aphrodite/TheDrummer/Skyfall-31B-v4.2",name:"Skyfall 31B (AI Horde)",contextLength:32768,toolCalling:!1},{id:"google/gemma-4-31b",name:"Gemma 4 31B (AI Horde)",contextLength:32768,toolCalling:!1}],passthroughModels:!0},{id:"bazaarlink",priority:60,alias:"bzl",uiAlias:"bzl",display:{name:"BazaarLink",icon:"storefront",color:"#10B981",textIcon:"BZ",website:"https://bazaarlink.ai",notice:{apiKeyUrl:"https://bazaarlink.ai",text:"OpenAI-compatible gateway with a free tier: `auto:free` routes to zero-cost inference (4M tokens/day, no credit card). Sign up at bazaarlink.ai for an API key; the paid catalog (Claude, GPT-5.5, Grok, Gemini, GLM, Kimi, MiniMax, Qwen, Mistral, Llama, Nemotron) bills at vendor rates."}},category:"apikey",authType:"apikey",authHint:"Create an API key at bazaarlink.ai. Use model `auto:free` for the zero-cost free tier.",hasFree:!0,transport:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",format:"openai"},models:[{id:"auto:free",name:"Auto Free (Zero Cost)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{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:"grok-4.3",name:"Grok 4.3"},{id:"grok-4.20",name:"Grok 4.20"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B"},{id:"gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B"},{id:"deepseek-v3.2",name:"DeepSeek V3.2"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"mimo-v2.5-pro",name:"MiMo-V2.5-Pro"},{id:"mimo-v2.5",name:"MiMo-V2.5"},{id:"minimax-m3",name:"MiniMax M3",contextLength:1048576,supportsVision:!0},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-4-scout",name:"Llama 4 Scout"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus"},{id:"mistral-large-2512",name:"Mistral Large 3"},{id:"mistral-medium-3.1",name:"Mistral Medium 3.1"},{id:"mistral-small-2603",name:"Mistral Small 4"},{id:"nemotron-3-super-120b-a12b",name:"Nemotron 3 Super"}]},{id:"dahl",priority:60,alias:"dahl",display:{name:"Dahl",icon:"local_florist",color:"#14B8A6",textIcon:"DH",website:"https://dahl.global",notice:{apiKeyUrl:"https://inference.dahl.global/tokens",text:"Free OpenAI-compatible inference — MiniMax M2.7 and Kimi K2.6. To mint a token: POST to https://inference.dahl.global/tokens, then paste the returned `token` field as the API key."}},category:"apikey",authType:"apikey",authHint:"POST https://inference.dahl.global/tokens (no body needed) → copy the `token` field from the JSON response into the API key field.",hasFree:!0,transport:{baseUrl:"https://inference.dahl.global/v1/chat/completions",format:"openai"},models:[{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"}]},{id:"dgrid",priority:60,alias:"dgrid",display:{name:"DGrid Free",icon:"grid_view",color:"#8B5CF6",textIcon:"DG",website:"https://dgrid.ai",notice:{apiKeyUrl:"https://dgrid.ai",text:"Free models router — `dgridai/free` auto-routes to available free models. Free tier: 10 requests/min and 100 requests/day."}},category:"apikey",authType:"apikey",authHint:"Create an API key at dgrid.ai. Free tier limited to 10 rpm / 100 rpd.",hasFree:!0,transport:{baseUrl:"https://api.dgrid.ai/v1/chat/completions",format:"openai"},models:[{id:"dgridai/free",name:"DGrid Free Models Router"}],passthroughModels:!0},{id:"felo-web",priority:60,alias:"felo",uiAlias:"felo",display:{name:"Felo (Free)",icon:"travel_explore",color:"#0EA5E9",textIcon:"FE",website:"https://felo.ai",notice:{signupUrl:"https://felo.ai",apiKeyUrl:"https://felo.ai",text:"Felo is a chat/search-agent aggregator backed by real frontier models (DeepSeek V4, GPT-5.6, Claude 5, Gemini 3.x…). Open felo.ai in a browser, run one search so the security check completes, then copy DevTools → Application → Session Storage → `turnstile_session_token` and paste it as `cf_token=<token>` (required for chat). For the profile badge, also copy the full Cookie header from any request (DevTools → Network → Request Headers) and append `; cookie=<full Cookie>` — the `felo-user-token` cookie identifies your account. `cf_token` alone is not enough for the badge."}},category:"webCookie",authType:"cookie",authHint:"Easiest: press 'Capture from Felo' above — it reads your logged-in session straight from the running browser (Brave/Chrome/Edge; if none is reachable, 'Launch browser' detects your OS and starts one with remote debugging). Manual: paste your session cookie `cookie=felo-user-token=<6h_...>` (DevTools → Application → Cookies → felo.ai — enough for chat AND the profile badge, no Turnstile needed for logged-in accounts). Anonymous fallback: `cf_token=<turnstile_session_token>` (DevTools → Application → Session Storage → felo.ai — NOT a cookie). Example: cookie=felo-user-token=6h_...",transport:{baseUrl:"https://felo.ai",format:"openai",authType:"cookie"},models:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (Felo)",toolCalling:!1},{id:"gpt-5-6-terra",name:"GPT-5.6 Terra (Felo, Pro)",toolCalling:!1},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna (Felo, Pro)",toolCalling:!1},{id:"claude-5-0-sonnet",name:"Claude 5 Sonnet (Felo, Pro)",toolCalling:!1},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash (Felo, Pro)",toolCalling:!1},{id:"grok-4.6",name:"Grok 4.6 (Felo, Pro)",toolCalling:!1},{id:"kimi-k2-thinking",name:"Kimi K2 (Felo, Pro)",toolCalling:!1}]},{id:"g4f-gemini",priority:60,alias:"g4fgem",uiAlias:"g4fgem",display:{name:"g4f.space — Gemini",icon:"auto_awesome",color:"#4285F4",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to Gemini (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/gemini/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"models/gemini-2.5-flash",name:"Gemini 2.5 Flash (g4f)"},{id:"models/gemini-2.5-pro",name:"Gemini 2.5 Pro (g4f)"}],passthroughModels:!0},{id:"g4f-groq",priority:60,alias:"g4fgroq",uiAlias:"g4fgroq",display:{name:"g4f.space — Groq",icon:"rocket_launch",color:"#F97316",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to Groq (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/groq/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B (g4f/Groq)"},{id:"llama-3.1-8b-instant",name:"Llama 3.1 8B Instant (g4f/Groq)"}],passthroughModels:!0},{id:"g4f-nvidia",priority:60,alias:"g4fnv",uiAlias:"g4fnv",display:{name:"g4f.space — NVIDIA",icon:"memory",color:"#76B900",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to NVIDIA NIM (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/nvidia/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"nvidia/nemotron-3-nano-30b-a3b",name:"Nemotron 3 Nano 30B (g4f/NVIDIA)"},{id:"z-ai/glm-5.2",name:"GLM 5.2 (g4f/NVIDIA)"},{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7 (g4f/NVIDIA)"}],passthroughModels:!0},{id:"g4f-ollama",priority:60,alias:"g4foll",uiAlias:"g4foll",display:{name:"g4f.space — Ollama",icon:"smart_toy",color:"#6366F1",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key hosted Ollama gateway (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/ollama/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"gemma3:4b",name:"Gemma 3 4B (g4f/Ollama)"}],passthroughModels:!0},{id:"g4f-pollinations",priority:60,alias:"g4fpol",uiAlias:"g4fpol",display:{name:"g4f.space — Pollinations",icon:"local_florist",color:"#A855F7",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to Pollinations (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/pollinations/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"openai",name:"OpenAI (g4f/Pollinations)"},{id:"openai-fast",name:"OpenAI Fast (g4f/Pollinations)"}],passthroughModels:!0},{id:"hackclub",priority:60,alias:"hcb",uiAlias:"hcb",display:{name:"Hack Club AI",icon:"construction",color:"#E8374C",textIcon:"HC",website:"https://hackclub.com",notice:{apiKeyUrl:"https://hackclub.com",text:"Free AI for Hack Club members — 30+ models (Llama, Mistral, DeepSeek, Qwen…), no credit card. Model ids are the Hugging Face ids (e.g. `meta-llama/llama-3.3-70b-instruct`). API key is optional."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://ai.hackclub.com/proxy/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"mistralai/mistral-7b-instruct",name:"Mistral 7B"},{id:"deepseek-ai/deepseek-coder-33b",name:"DeepSeek Coder 33B"}],passthroughModels:!0},{id:"llm7",priority:60,alias:"llm7",display:{name:"LLM7",icon:"bolt",color:"#F59E0B",textIcon:"L7",website:"https://llm7.io",notice:{apiKeyUrl:"https://llm7.io",text:"No-signup free tier (2 req/s, 20 RPM, 100 req/hr). GPT-4o mini, GPT-4.1 nano, DeepSeek R1 and Qwen2.5 Coder via api.llm7.io."}},category:"apikey",authType:"apikey",authHint:"Create an API key at llm7.io. Free tier is rate-limited (~2 req/s).",hasFree:!0,transport:{baseUrl:"https://api.llm7.io/v1/chat/completions",format:"openai"},models:[{id:"gpt-4o-mini-2024-07-18",name:"GPT-4o mini (LLM7)"},{id:"gpt-4.1-nano-2025-04-14",name:"GPT-4.1 nano (LLM7)"},{id:"deepseek-r1-0528",name:"DeepSeek R1 (LLM7)"},{id:"qwen2.5-coder-32b-instruct",name:"Qwen2.5 Coder 32B (LLM7)"}]},{id:"mimocode",priority:60,alias:"mcode",uiAlias:"mcode",display:{name:"MiMoCode (Free)",icon:"smart_toy",color:"#FF6900",textIcon:"MC",website:"https://github.com/XiaomiMiMo/MiMo-Code",notice:{text:"Free Xiaomi MiMo models via bootstrap JWT auth — no API key required. Supports the `mimo-auto` model (1M context, 128K output) with streaming."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://api.xiaomimimo.com",format:"openai",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto",contextLength:1e6,maxOutput:131072}],passthroughModels:!0},{id:"theoldllm",priority:60,alias:"tllm",uiAlias:"tllm",display:{name:"The Old LLM (Free)",icon:"history_edu",color:"#F59E0B",textIcon:"TL",website:"https://theoldllm.vercel.app",notice:{text:"Free GPT-5.4, Claude 4.6 Opus/Sonnet/Haiku, Gemini 3 Pro, Grok 4, DeepSeek and more — no API key, tokens are auto-generated. If requests are blocked by Vercel bot protection, configure a residential/global proxy for this provider."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://theoldllm.vercel.app/api/chatgpt",format:"openai",noAuth:!0},models:[{id:"GPT_5_4",name:"GPT-5.4 (The Old LLM)",contextLength:4e5},{id:"GPT_5_3",name:"GPT-5.3 (The Old LLM)",contextLength:4e5},{id:"GPT_5_2",name:"GPT-5.2 (The Old LLM)",contextLength:4e5},{id:"GPT_5_1",name:"GPT-5.1 (The Old LLM)",contextLength:4e5},{id:"GPT_5",name:"GPT-5 (The Old LLM)",contextLength:4e5},{id:"GPT_o4_mini",name:"o4-mini (The Old LLM)"},{id:"GPT_o3_mini",name:"o3-mini (The Old LLM)"},{id:"gemini_3_pro",name:"Gemini 3 Pro (The Old LLM)",contextLength:1e6},{id:"gemini_2_5_pro",name:"Gemini 2.5 Pro (The Old LLM)",contextLength:1e6},{id:"gemini_2_0_flash",name:"Gemini 2.0 Flash (The Old LLM)",contextLength:1e6},{id:"gemini_1_5_flash",name:"Gemini 1.5 Flash (The Old LLM)",contextLength:1e6},{id:"CLAUDE_4_6_OPUS",name:"Claude 4.6 Opus (The Old LLM)",contextLength:2e5},{id:"CLAUDE_4_6_SONNET",name:"Claude 4.6 Sonnet (The Old LLM)",contextLength:2e5},{id:"CLAUDE_4_5_HAIKU",name:"Claude 4.5 Haiku (The Old LLM)",contextLength:2e5},{id:"openrouter_gpt_4_o",name:"GPT-4o (The Old LLM)"},{id:"openrouter_gpt_4_o_mini",name:"GPT-4o mini (The Old LLM)"},{id:"openrouter_grok_4",name:"Grok 4 (The Old LLM)"},{id:"together_deepseek_v3",name:"DeepSeek V3 (The Old LLM)"},{id:"openrouter_deepseek_r1",name:"DeepSeek R1 (The Old LLM)"},{id:"sonar-pro",name:"Sonar Pro (The Old LLM)"}],passthroughModels:!0},{id:"uncloseai",priority:60,alias:"unc",uiAlias:"unc",display:{name:"UncloseAI",icon:"lock_open",color:"#22C55E",textIcon:"UC",website:"https://hermes.ai.unturf.com",notice:{text:"Free forever OpenAI-compatible gateway — no signup, no credit card. Model ids are served verbatim (e.g. `adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic`, `qwen3.6:27b`, `gemma4:31b`). API key is optional."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://hermes.ai.unturf.com/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic",name:"Hermes 3 Llama 3.1 8B (Free)"},{id:"qwen3.6:27b",name:"Qwen3 Coder 27B (Free)"},{id:"gemma4:31b",name:"Gemma 4 31B (Free)"}],passthroughModels:!0},{id:"ai21",priority:50,alias:"ai21",display:{name:"AI21 Labs",icon:"psychology_alt",color:"#0284C7",textIcon:"A21",website:"https://www.ai21.com",notice:{apiKeyUrl:"https://studio.ai21.com/account/api-keys",text:"$10 trial credits on signup (valid 3 months), no credit card required."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.ai21.com/studio/v1/chat/completions",validateUrl:"https://api.ai21.com/studio/v1/models"},models:[{id:"jamba-large-1.7",name:"Jamba Large 1.7"},{id:"jamba-mini-2",name:"Jamba Mini 2"}],serviceKinds:["llm"],hasFree:!0,freeNote:"$10 trial credits on signup (valid 3 months), no credit card required"},{id:"aimlapi",priority:50,alias:"aiml",display:{name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.aimlapi.com/v1/chat/completions",validateUrl:"https://api.aimlapi.com/v1/models"},models:[{id:"gpt-4o",name:"GPT-4o (via AI/ML API)"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet (via AI/ML API)"},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro (via AI/ML API)"},{id:"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",name:"Llama 3.1 70B (via AI/ML API)"},{id:"deepseek-chat",name:"DeepSeek Chat (via AI/ML API)"},{id:"mistral-large-latest",name:"Mistral Large (via AI/ML API)"}],passthroughModels:!0,freeNote:"Free tier paused (2026) — AI/ML API is now pay-as-you-go only (min $20 top-up); no recurring free credits."},{id:"ainative",priority:50,alias:"ainative",display:{name:"AINative Studio",icon:"hub",color:"#7C3AED",textIcon:"AN",website:"https://ainative.studio",notice:{text:"Create a free API key at ainative.studio (no card), then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.ainative.studio/api/v1/chat/completions",validateUrl:"https://api.ainative.studio/api/v1/models"},models:[{id:"qwen3-235b-cerebras",name:"Qwen3 235B (Cerebras)"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"qwen3-14b",name:"Qwen3 14B"},{id:"qwen3-8b",name:"Qwen3 8B"},{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama3.1-8b-cerebras",name:"Llama 3.1 8B (Cerebras)"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"nous-coder",name:"Nous Coder"},{id:"gemini-flash",name:"Gemini Flash"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier ~10M tokens/month (claimed) across Qwen3, Llama 4, DeepSeek R1 and more."},{id:"aion",priority:50,alias:"aion",display:{name:"Aion Labs",icon:"hub",color:"#0EA5E9",textIcon:"AI",website:"https://www.aionlabs.ai",notice:{text:"Create a free API key at aionlabs.ai (no card), then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.aionlabs.ai/v1/chat/completions",validateUrl:"https://api.aionlabs.ai/v1/models"},models:[{id:"aion-labs/aion-3.0",name:"Aion 3.0"},{id:"aion-labs/aion-3.0-mini",name:"Aion 3.0 Mini"},{id:"aion-labs/aion-2.5",name:"Aion 2.5"},{id:"aion-labs/aion-2.0",name:"Aion 2.0"},{id:"aion-labs/aion-rp-llama-3.1-8b",name:"Aion RP Llama 3.1 8B"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier ~20k tokens/day across the Aion reasoning models."},{id:"anyapi",priority:50,alias:"anyapi",display:{name:"AnyAPI AI",icon:"hub",color:"#0EA5E9",textIcon:"AA",website:"https://anyapi.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.anyapi.ai/v1/chat/completions",validateUrl:"https://api.anyapi.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: 100,000 ANY Tokens/day and 100 RPM for eligible Free/Basic models; no credit card required."},{id:"arcee-ai",priority:50,alias:"arcee-ai",aliases:["arcee"],uiAlias:"arcee",display:{name:"Arcee AI",icon:"auto_awesome",color:"#8B5CF6",textIcon:"AR",website:"https://arcee.ai",notice:{apiKeyUrl:"https://docs.arcee.ai/api-reference/authentication",text:"OpenAI-compatible. Free Trinity Large Thinking model (262K context), no credit card required."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.arcee.ai/api/v1/chat/completions",validateUrl:"https://api.arcee.ai/api/v1/models"},models:[{id:"trinity-mini",name:"Trinity Mini"},{id:"trinity-large-thinking",name:"Trinity Large Thinking"},{id:"trinity-large-preview",name:"Trinity Large Preview"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free Trinity Large Thinking model (262K context). No credit card required."},{id:"auriko",priority:50,alias:"auriko",display:{name:"Auriko",icon:"hub",color:"#0891B2",textIcon:"AU",website:"https://www.auriko.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.auriko.ai/v1/chat/completions",validateUrl:"https://api.auriko.ai/v1/models"},models:[{id:"minimax-m2-7",name:"MiniMax-M2.7"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],passthroughModels:!0,hasFree:!0,freeNote:"Free plan publishes 1,000 Platform RPM and 10,000 BYOK RPM. Platform inference still passes through provider cost; this is not a free-token pool or unlimited free inference."},{id:"azure-ai",priority:40,alias:"azure-ai",display:{name:"Azure AI Foundry",icon:"cloud",color:"#2563EB",textIcon:"AF",website:"https://learn.microsoft.com/azure/ai-foundry",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI",text:"Azure AI Foundry uses the OpenAI v1 surface with deployment names as models. Base URL is per resource — e.g. https://<resource>.services.ai.azure.com/openai/v1. Add the resource endpoint via a custom baseUrl connection."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://example-resource.services.ai.azure.com/openai/v1/chat/completions",validateUrl:"https://example-resource.services.ai.azure.com/openai/v1/models"},passthroughModels:!0},{id:"bai",priority:50,alias:"bai",display:{name:"b.ai",icon:"hub",color:"#6366F1",textIcon:"BA",website:"https://b.ai",notice:{text:"Bearer API key for the b.ai OpenAI-compatible LLM gateway (distinct from TheB.AI). Create a key at https://docs.b.ai, then use https://api.b.ai/v1 OpenAI-compat"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.b.ai/v1/chat/completions",validateUrl:"https://api.b.ai/v1/models"},passthroughModels:!0},{id:"baseten",priority:50,alias:"baseten",display:{name:"Baseten",icon:"deployed_code",color:"#111827",textIcon:"BT",website:"https://baseten.co"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.baseten.co/v1/chat/completions",validateUrl:"https://inference.baseten.co/v1/models"},models:[{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"nvidia/Nemotron-120B-A12B",name:"Nemotron Super"},{id:"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",name:"Nemotron Ultra"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K3",name:"Kimi K3"}],hasFree:!0,freeNote:"$30 free trial credits for GPU inference"},{id:"bluesminds",priority:50,alias:"bm",display:{name:"BluesMinds",icon:"psychology",color:"#3B82F6",textIcon:"BM",website:"https://www.bluesminds.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.bluesminds.com/v1/chat/completions",validateUrl:"https://api.bluesminds.com/v1/models"},models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{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:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash (Exp)"},{id:"deepseek-reasoner",name:"DeepSeek Reasoner"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"qwen-plus",name:"Qwen Plus"},{id:"qwen-turbo",name:"Qwen Turbo"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4-flash",name:"GLM 4 Flash"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (VIP)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (VIP)"},{id:"grok-3",name:"Grok-3 (VIP)"},{id:"qwen-max",name:"Qwen Max (VIP)"}],hasFree:!0,freeNote:"Free daily pi credits — supports 200+ models including GPT-4o, GPT-4.1, Claude Sonnet 4.5, Gemini 2.0 Flash, DeepSeek V4, Qwen, Kimi K2"},{id:"bytez",priority:50,alias:"bytez",display:{name:"Bytez",icon:"api",color:"#6366F1",textIcon:"BZ",website:"https://bytez.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.bytez.com/v1/chat/completions",validateUrl:"https://api.bytez.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$1 free credits, refreshes every 4 weeks"},{id:"charm-hyper",priority:50,alias:"charm-hyper",display:{name:"Charm Hyper",icon:"router",color:"#7C3AED",textIcon:"CH",website:"https://hyper.charm.land"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://hyper.charm.land/v1/chat/completions",validateUrl:"https://hyper.charm.land/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"100 free monthly Hypercredits on signup"},{id:"chat-oripe",priority:50,alias:"chat-oripe",display:{name:"Chat Oripe",icon:"router",color:"#64748B",textIcon:"CO",website:"https://api.oriper.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.oriper.com/v1/chat/completions",validateUrl:"https://api.oriper.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Official metadata advertises 2M tokens/month, but the public site and documentation were blocked during audit; treat the quota and brand mapping."},{id:"chatanywhere",priority:50,alias:"chatanywhere",display:{name:"ChatAnywhere",icon:"router",color:"#2563EB",textIcon:"CA",website:"https://chatanywhere.tech"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.chatanywhere.org/v1/chat/completions",validateUrl:"https://api.chatanywhere.org/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Personal, educational or research use only: public documentation cites 10,000 points/day and 200 requests/day per IP/key; do not use for commercial traffic."},{id:"cheaperinference",priority:50,alias:"cinf",display:{name:"Cheaper Inference",icon:"savings",color:"#31f889",textIcon:"CI",website:"https://cheaperinference.com/?utm_source=omniroute"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.cheaperinference.com/v1/chat/completions",validateUrl:"https://api.cheaperinference.com/v1/models"},passthroughModels:!0},{id:"chenzk",priority:50,alias:"chenzk",display:{name:"Chenzk API",icon:"hub",color:"#10B981",textIcon:"CZ",website:"https://chenzk.top"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://chenzk.top/v1/chat/completions",validateUrl:"https://chenzk.top/v1/models"},passthroughModels:!0},{id:"clarifai",priority:40,alias:"clarifai",display:{name:"Clarifai",icon:"hub",color:"#7C3AED",textIcon:"CF",website:"https://docs.clarifai.com",notice:{apiKeyUrl:"https://clarifai.com/settings/security",text:"OpenAI-compatible at /v2/ext/openai/v1. Use a Personal Access Token (PAT); sends the key as Authorization: Key <token>. App-scoped keys only work for resources inside that app."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.clarifai.com/v2/ext/openai/v1/chat/completions",validateUrl:"https://api.clarifai.com/v2/ext/openai/v1/models",auth:{combined:!0,header:"Authorization",scheme:"key"}},models:[{id:"claude-3-5-sonnet",name:"Claude 3.5 Sonnet"},{id:"gpt-4o",name:"GPT-4o"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}],serviceKinds:["llm"],passthroughModels:!0},{id:"cloudcode-one",priority:50,alias:"cloudcode-one",display:{name:"CloudCode.ONE",icon:"router",color:"#6366F1",textIcon:"CC",website:"https://cloudcode.one"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.cloudcode.one/v1/chat/completions",validateUrl:"https://api.cloudcode.one/v1/models"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"glm-4.6v-flash",name:"GLM 4.6V Flash"}],passthroughModels:!0,hasFree:!0,freeNote:"Published free models include glm-4.7-flash and glm-4.6v-flash; no numeric quota is published, and key creation may require credit or a coupon."},{id:"conol-web",priority:150,alias:"cnl",display:{name:"Conol Web",icon:"auto_awesome",color:"#6D4AFF",textIcon:"CN",website:"https://conol.ai",notice:{signupUrl:"https://conol.ai",apiKeyUrl:"https://conol.ai",text:"Conol browser-session chat. Open conol.ai, log in, then copy the `__Secure-better-auth.session_token` cookie (or the full Cookie header) from DevTools → Application → Cookies → conol.ai and paste it here. Sessions are created and configured automatically (preset → model → effort); the executor reuses one session per logical chat. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "__Secure-better-auth.session_token" cookie value from conol.ai → DevTools → Application → Cookies → conol.ai and paste it here.',transport:{baseUrl:"https://conol.ai",format:"conol-web",authType:"cookie"},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"z-ai/glm-5.2",name:"GLM 5.2"}],passthroughModels:!0},{id:"crof",priority:50,alias:"crof",display:{name:"CrofAI",icon:"auto_awesome",color:"#0EA5E9",textIcon:"CR",website:"https://crof.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://crof.ai/v1/chat/completions",validateUrl:"https://crof.ai/v1/models"},models:[{id:"deepseek-v4-pro-precision",name:"DeepSeek V4 Pro (Precision)"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-lightning",name:"DeepSeek V4 Pro (Lightning)"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731"},{id:"deepseek-v3.2",name:"DeepSeek V3.2"},{id:"kimi-k2.6-precision",name:"Kimi K2.6 (Precision)"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k3",name:"Kimi K3"},{id:"kimi-k3-eco",name:"Kimi K3 Eco"},{id:"kimi-k2.5-lightning",name:"Kimi K2.5 (Lightning)"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1-precision",name:"GLM 5.1 (Precision)"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"mimo-v2.5-pro-precision",name:"Mimo 2.5 Pro (Precision)"},{id:"mimo-v2.5-pro",name:"Mimo 2.5 Pro"},{id:"gemma-4-31b-it",name:"Gemma 4 31B"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"qwen3.6-27b",name:"Qwen3.6 27B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen3.5-9b",name:"Qwen3.5 9B"}]},{id:"datarobot",priority:40,alias:"datarobot",display:{name:"DataRobot",icon:"precision_manufacturing",color:"#6D28D9",textIcon:"DR",website:"https://docs.datarobot.com",notice:{apiKeyUrl:"https://app.datarobot.com/account/api-token",text:"LLM Gateway catalogs active models from /genai/llmgw/catalog/. The gateway endpoint is per-account — add it via a custom baseUrl connection (OpenAI-compatible)."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",validateUrl:""},passthroughModels:!0},{id:"digitalocean",priority:50,alias:"digitalocean",display:{name:"DigitalOcean",icon:"cloud",color:"#0060FF",textIcon:"DO",website:"https://docs.digitalocean.com/products/ai-platform/",notice:{text:"Use a DigitalOcean Personal Access Token (dop_v1_...) or a Model Access Key from the Inference console. OAuth tokens (doo_v1_...) may not have the required scopes.",apiKeyUrl:"https://cloud.digitalocean.com/account/api/tokens"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.do-ai.run/v1/chat/completions",validateUrl:"https://inference.do-ai.run/v1/models"},models:[{id:"openai-gpt-5.2-pro",name:"OpenAI GPT-5.2 Pro"},{id:"openai-gpt-5.6-luna",name:"OpenAI GPT-5.6 Luna"},{id:"gte-large-en-v1.5",name:"GTE Large (v1.5)"},{id:"anthropic-claude-4.6-sonnet",name:"Anthropic Claude Sonnet 4.6"},{id:"openai-o3",name:"OpenAI o3"},{id:"anthropic-claude-opus-5",name:"Anthropic Claude Opus 5"}],passthroughModels:!0},{id:"dit",priority:50,alias:"dai",display:{name:"DIT.ai",icon:"hub",color:"#0EA5E9",textIcon:"DT",website:"https://dit.ai",notice:{text:"Use your dit.ai API key in Authorization: Bearer <key>. Fully OpenAI-compatible — a drop-in replacement, just change the base URL to https://api.dit.ai/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.dit.ai/v1/chat/completions",validateUrl:"https://api.dit.ai/v1/models"},models:[{id:"gpt-5.4",name:"GPT-5.4 (DIT.ai)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (DIT.ai)"}]},{id:"docker-model-runner",priority:50,alias:"dmr",display:{name:"Docker Model Runner",icon:"dns",color:"#2496ED",textIcon:"DM",website:"https://docs.docker.com/ai/model-runner/",notice:{text:"Docker Model Runner — local AI model runner with OpenAI-compatible API (default port 12434). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:12434/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"dxnt",priority:50,alias:"dxnt",display:{name:"DXNT / DX Token",icon:"hub",color:"#111827",textIcon:"DX",website:"https://www.dxnt.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://www.dxnt.com/v1/chat/completions",validateUrl:"https://www.dxnt.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free accounts are documented at 100 calls/day; the quota may increase through invitations and can vary by account."},{id:"electronhub",priority:50,alias:"electronhub",display:{name:"Electron Hub",icon:"hub",color:"#22C55E",textIcon:"EH",website:"https://www.electronhub.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.electronhub.ai/v1/chat/completions",validateUrl:"https://api.electronhub.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: 5 RPM, $0.25 weekly credits and 10 Neutrinos/day for :free models; family budgets also apply."},{id:"empower",priority:50,alias:"empower",display:{name:"Empower",icon:"hub",color:"#14B8A6",textIcon:"EM",website:"https://docs.empower.dev",notice:{text:"Bearer API key for the Empower OpenAI-compatible endpoint."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://app.empower.dev/api/v1/chat/completions",validateUrl:"https://app.empower.dev/api/v1/models"},passthroughModels:!0},{id:"factory",priority:50,alias:"factory",display:{name:"Factory",icon:"smart_toy",color:"#0F172A",textIcon:"FA",website:"https://factory.ai",notice:{text:"Bearer API key for the Factory OpenAI-compatible gateway."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.factory.ai/v1/chat/completions",validateUrl:"https://api.factory.ai/v1/models"},passthroughModels:!0},{id:"fastrouter",priority:50,alias:"fastrouter",display:{name:"FastRouter",icon:"speed",color:"#F97316",textIcon:"FR",website:"https://fastrouter.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fastrouter.ai/api/v1/chat/completions",validateUrl:"https://api.fastrouter.ai/api/v1/models"},models:[{id:"z-ai/glm-5",name:"GLM-5"},{id:"z-ai/glm-5.1",name:"GLM-5.1"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"google/gemini-3-pro-image-preview",name:"Nano Banana Pro"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemma-4-31b-it",name:"Gemma 4 31B IT"}],passthroughModels:!0,hasFree:!0,freeNote:"Models with the :free suffix allow 10 requests/day per organization and model; availability may change."},{id:"fishaudio",priority:30,alias:"fish",display:{name:"Fish Audio",icon:"record_voice_over",color:"#00C2A8",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/account",text:"TTS (Fish Speech S1 / 1.6 / 1.5). API key from fish.audio — model id is sent as an HTTP header."}},category:"apikey",authType:"apikey",serviceKinds:["tts"],models:[{id:"s1",name:"Fish Speech S1",kind:"tts"},{id:"speech-1.6",name:"Fish Speech 1.6",kind:"tts"},{id:"speech-1.5",name:"Fish Speech 1.5",kind:"tts"}],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fishaudio"}},{id:"free-ai",priority:50,alias:"free-ai",display:{name:"Free.ai",icon:"hub",color:"#16A34A",textIcon:"FA",website:"https://free.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.free.ai/v1/chat/",validateUrl:"https://api.free.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"30,000 tokens/day cover self-hosted models after email verification. Usage beyond the pool can bill at raw cost, and premium external models are paid."},{id:"freeaiapikey",priority:50,alias:"faik",display:{name:"FreeAIAPIKey",icon:"vpn_key",color:"#F59E0B",textIcon:"FK",website:"https://freeaiapikey.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.freeaiapikey.com/v1/chat/completions",validateUrl:"https://api.freeaiapikey.com/v1/models"},models:[{id:"openai/gpt-4o",name:"GPT-4o (via FreeAIAPIKey)"},{id:"openai/gpt-5.4",name:"GPT-5.4 (via FreeAIAPIKey)"},{id:"openai/gpt-5.5",name:"GPT-5.5 (via FreeAIAPIKey)"},{id:"openai/gpt-5.6-sol",name:"GPT-5.6 Sol (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6 (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7 (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8 (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-5",name:"Claude Opus 5 (via FreeAIAPIKey)"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6 (via FreeAIAPIKey)"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5 (via FreeAIAPIKey)"}]},{id:"freeinference",priority:50,alias:"freeinference",display:{name:"FreeInference",icon:"science",color:"#8B5CF6",textIcon:"FI",website:"https://freeinference.org"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://freeinference.org/v1/chat/completions",validateUrl:"https://freeinference.org/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free research access without a card; non-Harvard applicants require manual approval and no numeric quota is publicly guaranteed."},{id:"freemodel-dev",priority:50,alias:"fmd",display:{name:"FreeModel.dev",icon:"auto_awesome",color:"#8B5CF6",textIcon:"FM",website:"https://freemodel.dev"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.freemodel.dev/v1/chat/completions",validateUrl:"https://api.freemodel.dev/v1/models"},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.3-codex",name:"GPT-5.3 Codex"}],hasFree:!0,freeNote:"$300 free credits on signup — no credit card required. Access GPT-5.4 and GPT-5.5 (OpenAI's latest flagship models) through an OpenAI-compatible API."},{id:"freetheai",priority:50,alias:"fta",display:{name:"FreeTheAi",icon:"hub",color:"#22C55E",textIcon:"FTA",website:"https://freetheai.xyz",notice:{text:"Join the FreeTheAi Discord to get your free API key."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.freetheai.xyz/v1/chat/completions",validateUrl:"https://api.freetheai.xyz/v1/models"},models:[{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"deepseek-chat",name:"DeepSeek Chat"}],passthroughModels:!0,hasFree:!0,freeNote:"Free OpenAI-compatible gateway — sign up via Discord for an API key."},{id:"friendliai",priority:50,alias:"friendli",display:{name:"FriendliAI",icon:"handshake",color:"#EC4899",textIcon:"FR",website:"https://friendli.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.friendli.ai/serverless/v1/chat/completions",validateUrl:"https://api.friendli.ai/serverless/v1/models"},models:[{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B IT"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek-V3.2"},{id:"zai-org/GLM-5.1",name:"GLM-5.1"},{id:"zai-org/GLM-5.2",name:"GLM-5.2"}],hasFree:!0,freeNote:"Free tier for serverless inference — no credit card required"},{id:"gemini-business",priority:150,alias:"gembiz",uiAlias:"gembiz",display:{name:"Gemini Business (Enterprise)",icon:"auto_awesome",color:"#4285F4",textIcon:"GB",website:"https://business.gemini.google",notice:{signupUrl:"https://business.gemini.google",apiKeyUrl:"https://business.gemini.google",text:"Gemini Business for Google Workspace enterprise accounts — enterprise Gemini models (Pro, Flash, image, video) via the internal StreamGenerate HTTP API, no subscription required (just enterprise SSO). Paste __Secure-1PSID + __Secure-1PSIDTS from business.gemini.google (DevTools → Application → Cookies). If your entry URL is not the default /home, provide it via connection settings (entryUrl) so the CID prefix is routed correctly. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:"From your enterprise account: open business.gemini.google/home/cid/{your-cid}, then copy __Secure-1PSID and __Secure-1PSIDTS cookies from DevTools → Application → Cookies. Paste as a cookie header (or JSON credential) below.",transport:{baseUrl:"https://business.gemini.google",format:"gemini-business",authType:"cookie"},models:[{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"gemini-3-ultra",name:"Gemini 3 Ultra"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{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-thinking",name:"Gemini 2.5 Flash Thinking"},{id:"gemini-2.0-pro",name:"Gemini 2.0 Pro"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-thinking",name:"Gemini 2.0 Flash Thinking"}],passthroughModels:!0},{id:"getgoapi",priority:50,alias:"ggo",display:{name:"GoAPI",icon:"rocket_launch",color:"#FF6D00",textIcon:"GO",website:"https://api.getgoapi.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.getgoapi.com/v1/chat/completions",validateUrl:"https://api.getgoapi.com/v1/models"},passthroughModels:!0},{id:"gitlawb-gmi",priority:50,alias:"glb-gmi",display:{name:"Gitlawb Opengateway (GMI Cloud)",icon:"hub",color:"#10B981",textIcon:"GMI",website:"https://opengateway.gitlawb.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://opengateway.gitlawb.com/v1/chat/completions",validateUrl:"https://opengateway.gitlawb.com/v1/models"},passthroughModels:!0,freeNote:"Free Nemotron promo ended 2026-06 — the GMI Cloud route is now pay-as-you-go credit only."},{id:"gitlawb",priority:50,alias:"glb",display:{name:"Gitlawb Opengateway (MiMo)",icon:"hub",color:"#10B981",textIcon:"GLB",website:"https://opengateway.gitlawb.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://opengateway.gitlawb.com/v1/xiaomi-mimo",validateUrl:"https://opengateway.gitlawb.com/v1/xiaomi-mimo"},passthroughModels:!0,freeNote:"Free MiMo (xiaomi/mimo-v2.5) revoked 2026-05 — Opengateway is now a pay-as-you-go credit gateway; no recurring free model."},{id:"gladia",priority:30,alias:"gladia",display:{name:"Gladia",icon:"record_voice_over",color:"#F97316",textIcon:"GL",website:"https://gladia.io",notice:{apiKeyUrl:"https://app.gladia.io",text:"Async transcription (solaria-1 / solaria-mini). Free tier: 10 hours/month, no credit card. Auth header: x-gladia-key."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"solaria-1",name:"Solaria 1",kind:"stt"},{id:"solaria-mini",name:"Solaria Mini",kind:"stt"}],sttConfig:{baseUrl:"https://api.gladia.io/v2/pre-recorded",authType:"apikey",authHeader:"x-gladia-key",format:"gladia"}},{id:"hailuo-web",priority:150,alias:"hailuo-web",display:{name:"Hailuo Web (MiniMax)",icon:"auto_awesome",color:"#5B21B6",textIcon:"HL",website:"https://hailuo.ai",notice:{signupUrl:"https://hailuo.ai",apiKeyUrl:"https://hailuo.ai",text:"Hailuo AI (MiniMax) free web chat. Open hailuo.ai, log in, then copy the `_token` value from DevTools → Application → Local Storage → hailuo.ai and paste it here. The executor signs each request with a per-request MD5 header; device-fingerprint params are derived stably from the token when not captured. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "_token" value from hailuo.ai → DevTools → Application → Local Storage → hailuo.ai and paste it here.',transport:{baseUrl:"https://www.hailuo.ai",format:"hailuo-web",authType:"cookie"},models:[{id:"hailuo",name:"Hailuo (MiniMax Web)"}],passthroughModels:!0},{id:"helixmind",priority:50,alias:"helixmind",display:{name:"HelixMind",icon:"hub",color:"#4F46E5",textIcon:"HM",website:"https://helixmind.online"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://helixmind.online/v1/chat/completions",validateUrl:"https://helixmind.online/v1/models",auth:{combined:!0,header:"X-API-Key",scheme:"raw"}},passthroughModels:!0,freeNote:"Previously circulated 3 RPM/50 RPD and no-card claims were not confirmed during the 2026-08-02 audit; current quota and billing require account verification."},{id:"heroku",priority:40,alias:"heroku",display:{name:"Heroku AI",icon:"cloud_upload",color:"#7C3AED",textIcon:"HK",website:"https://www.heroku.com",notice:{apiKeyUrl:"https://dashboard.heroku.com/account/applications",text:"Hosted inference gateway over frontier open-weight models."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://us.inference.heroku.com/v1/chat/completions",validateUrl:"https://us.inference.heroku.com/v1/models"},models:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-4-6-sonnet",name:"Claude 4.6 Sonnet"},{id:"claude-4-5-haiku",name:"Claude 4.5 Haiku"},{id:"glm-4-7",name:"GLM 4.7"},{id:"kimi-k2-5",name:"Kimi K2.5"},{id:"minimax-m2-1",name:"MiniMax M2.1"},{id:"deepseek-v3-2",name:"DeepSeek V3.2"},{id:"qwen3-coder-480b",name:"Qwen3 Coder 480B"},{id:"qwen3-235b",name:"Qwen3 235B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"nova-pro",name:"Nova Pro"},{id:"nova-2-lite",name:"Nova 2 Lite"}],serviceKinds:["llm"]},{id:"inception",priority:50,alias:"inception",display:{name:"Inception",icon:"bolt",color:"#F97316",textIcon:"IN",website:"https://docs.inceptionlabs.ai",notice:{apiKeyUrl:"https://app.inceptionlabs.ai/keys",text:"Mercury is the first diffusion LLM (dLLM) — 5-10x faster generation with tool calling, json_mode, and structured outputs. 10M free tokens on signup."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.inceptionlabs.ai/v1/chat/completions",validateUrl:"https://api.inceptionlabs.ai/v1/models"},models:[{id:"mercury-2",name:"Mercury 2"}],serviceKinds:["llm"],hasFree:!0,freeNote:"10M free tokens on signup, no credit card required"},{id:"inference-net",priority:50,alias:"inet",display:{name:"Inference.net",icon:"dns",color:"#2563EB",textIcon:"IN",website:"https://inference.net"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.inference.net/v1/chat/completions",validateUrl:"https://api.inference.net/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$25 free credits on signup plus research grants available"},{id:"inner-ai",priority:150,alias:"in-ai",display:{name:"Inner.ai",icon:"auto_awesome",color:"#0EA5E9",textIcon:"IA",website:"https://app.innerai.com",notice:{signupUrl:"https://app.innerai.com",apiKeyUrl:"https://app.innerai.com",text:"Inner.ai gateway — GPT, Claude, Gemini, DeepSeek, Grok, Llama, Mistral. Auth: the `token` cookie scoped to .innerai.com (DevTools → Application → Cookies → .innerai.com → token). Paste it directly, or as `token=<value> user@example.com` to include your account email. The executor resolves the live model catalog per account (plan-gated) and caches it for 1 hour. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "token" cookie value from .innerai.com (DevTools → Application → Cookies → .innerai.com → token) and paste it here. Optional: "token=<value> user@example.com".',transport:{baseUrl:"https://chatapi.innerai.com",format:"inner-ai",authType:"cookie"},models:[{id:"gpt-4o",name:"GPT-4o (via Inner.ai)"},{id:"gpt-4.1",name:"GPT-4.1 (via Inner.ai)"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini (via Inner.ai)"},{id:"o3",name:"o3 (via Inner.ai)",supportsReasoning:!0},{id:"o4-mini",name:"o4-mini (via Inner.ai)",supportsReasoning:!0},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (via Inner.ai)"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 (via Inner.ai)"},{id:"claude-3-7-sonnet-20250219",name:"Claude 3.7 Sonnet (via Inner.ai)"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet (via Inner.ai)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (via Inner.ai)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (via Inner.ai)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash (via Inner.ai)"},{id:"deepseek-r1",name:"DeepSeek R1 (via Inner.ai)",supportsReasoning:!0},{id:"deepseek-v3",name:"DeepSeek V3 (via Inner.ai)"},{id:"grok-3",name:"Grok 3 (via Inner.ai)"},{id:"grok-3-mini",name:"Grok 3 Mini (via Inner.ai)",supportsReasoning:!0},{id:"llama-4-maverick",name:"Llama 4 Maverick (via Inner.ai)"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B (via Inner.ai)"},{id:"mistral-large-2411",name:"Mistral Large (via Inner.ai)"}],passthroughModels:!0},{id:"kenari",priority:50,alias:"kenari",display:{name:"Kenari",icon:"hub",color:"#B5362A",textIcon:"KN",website:"https://kenari.id",notice:{text:"Use your Kenari API key (kn-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://kenari.id/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://kenari.id/v1/chat/completions",validateUrl:"https://kenari.id/v1/models"},models:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B A12B (Free)"},{id:"glm-4-7-flash:free",name:"GLM-4.7-Flash (Free)"},{id:"nemotron-3-nano-30b-a3b",name:"Nemotron 3 Nano 30B A3B"},{id:"kimi-k3",name:"Kimi K3"},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna"}],passthroughModels:!0},{id:"kilo-gateway",priority:50,alias:"kg",display:{name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.kilo.ai/api/gateway/chat/completions",validateUrl:"https://api.kilo.ai/api/gateway/models"},models:[{id:"kilo-auto/frontier",name:"Kilo Auto Frontier"},{id:"kilo-auto/balanced",name:"Kilo Auto Balanced"},{id:"kilo-auto/free",name:"Kilo Auto Free"},{id:"nvidia/nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B (Free)"},{id:"minimax/minimax-m2.5:free",name:"MiniMax M2.5 (Free)"},{id:"arcee-ai/trinity-large-preview:free",name:"Trinity Large Preview (Free)"}],passthroughModels:!0},{id:"lambda-ai",priority:50,alias:"lambda",display:{name:"Lambda AI",icon:"bolt",color:"#7C3AED",textIcon:"LA",website:"https://lambda.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.lambda.ai/v1/chat/completions",validateUrl:"https://api.lambda.ai/v1/models"},passthroughModels:!0},{id:"laozhang",priority:50,alias:"lz",display:{name:"LaoZhang AI",icon:"hub",color:"#FF1744",textIcon:"LZ",website:"https://api.laozhang.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.laozhang.ai/v1/chat/completions",validateUrl:"https://api.laozhang.ai/v1/models"},passthroughModels:!0},{id:"lemonade",priority:50,alias:"lemonade",display:{name:"Lemonade Server",icon:"bolt",color:"#F59E0B",textIcon:"LM",website:"https://lemonade-server.ai",notice:{text:"Lemonade Server — local LLM serving (cloud-models compatible). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:13305/api/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"liquid",priority:50,alias:"liquid",display:{name:"Liquid AI",icon:"water_drop",color:"#06B6D4",textIcon:"LQ",website:"https://liquid.ai",notice:{apiKeyUrl:"https://labs.liquid.ai/keys",text:"OpenAI-compatible. Free LFM2.5-1.2B-Thinking and LFM2.5-1.2B-Instruct models. MIT spinoff, hybrid architecture."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.liquid.ai/v1/chat/completions",validateUrl:"https://inference.liquid.ai/v1/models"},models:[{id:"liquid-lfm-40b",name:"Liquid LFM 40B"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free LFM2.5-1.2B-Thinking and LFM2.5-1.2B-Instruct models"},{id:"literouter",priority:50,alias:"literouter",display:{name:"LiteRouter",icon:"router",color:"#2563EB",textIcon:"LR",website:"https://literouter.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.literouter.com/v1/chat/completions",validateUrl:"https://api.literouter.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free model variants use the :free suffix; daily credit limits vary by model and free input is capped at 5,000 tokens."},{id:"llama-cpp",priority:50,alias:"llamacpp",display:{name:"llama.cpp",icon:"description",color:"#795548",textIcon:"LC",website:"https://github.com/ggml-org/llama.cpp",notice:{text:"llama.cpp server — OpenAI-compatible local inference (default port 8080). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://127.0.0.1:8080/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"llamafile",priority:50,alias:"llamafile",display:{name:"Llamafile",icon:"description",color:"#EA580C",textIcon:"LF",website:"https://github.com/Mozilla-Ocho/llamafile",notice:{text:"Llamafile — single-file local LLM runner with OpenAI-compatible API (default port 8080). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://127.0.0.1:8080/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"llamagate",priority:50,alias:"llamagate",display:{name:"LlamaGate",icon:"gate",color:"#16A34A",textIcon:"LG",website:"https://llamagate.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://llamagate.ai/v1/chat/completions",validateUrl:"https://llamagate.ai/v1/models"},passthroughModels:!0},{id:"llm-kiwi",priority:50,alias:"llmkiwi",display:{name:"LLM.Kiwi",icon:"hub",color:"#84CC16",textIcon:"LK",website:"https://llm.kiwi"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.llm.kiwi/v1/chat/completions",validateUrl:"https://api.llm.kiwi/v1/models"},models:[{id:"auto",name:"Auto"},{id:"hrLLM",name:"hrLLM"}],passthroughModels:!0,hasFree:!0,freeNote:"Free plan exposes auto and hrLLM; the published 40 requests/hour limit applies to hrLLM."},{id:"llmgateway",priority:50,alias:"llmgateway",display:{name:"LLM Gateway",icon:"router",color:"#6366F1",textIcon:"LG",website:"https://llmgateway.io"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.llmgateway.io/v1/chat/completions",validateUrl:"https://api.llmgateway.io/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Hosted Free plan: free-priced models are limited to 5 requests per 10 minutes when the account has no credits."},{id:"lm-studio",priority:50,alias:"lmstudio",display:{name:"LM Studio",icon:"server",color:"#4A148C",textIcon:"LM",website:"https://lmstudio.ai",notice:{text:"LM Studio desktop app — OpenAI-compatible local server. Start the Local Server (port 1234) in the app, then use this connection. Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:1234/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"maritalk",priority:50,alias:"maritalk",display:{name:"Maritalk",icon:"translate",color:"#1D4ED8",textIcon:"MT",website:"https://www.maritaca.ai",notice:{apiKeyUrl:"https://chat.maritaca.ai/api-keys",text:"MariTalk by Maritaca AI — Sabi\xe1 models, strong in Portuguese. OpenAI-compatible; sends the key as Authorization: Key <token>."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://chat.maritaca.ai/api/chat/completions",validateUrl:"https://chat.maritaca.ai/api/models",auth:{combined:!0,header:"Authorization",scheme:"key"}},models:[{id:"sabia-4",name:"Sabi\xe1 4"},{id:"sabia-4-thinking",name:"Sabi\xe1 4 Thinking"},{id:"sabiazinho-4",name:"Sabiazinho 4"}],serviceKinds:["llm"]},{id:"meganova-ai",priority:50,alias:"meganova-ai",display:{name:"MegaNova AI",icon:"router",color:"#7C3AED",textIcon:"MN",website:"https://meganova.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.meganova.ai/v1/chat/completions",validateUrl:"https://api.meganova.ai/v1/models"},models:[{id:"XiaomiMiMo/MiMo-V2-Flash",name:"MiMo V2 Flash"},{id:"MiniMaxAI/MiniMax-M2.1",name:"MiniMax M2.1"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2-Thinking",name:"Kimi K2 Thinking"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"}],passthroughModels:!0,hasFree:!0,freeNote:"Free signup without a card. Published Tier 1 per-model quotas total 550 requests/day; they are not a shared global pool, and paid overage can apply if enabled."},{id:"meta-llama",priority:50,alias:"meta-llama",display:{name:"Meta Llama API",icon:"smart_toy",color:"#0F766E",textIcon:"ML",website:"https://ai.developer.meta.com/docs/overview/",notice:{apiKeyUrl:"https://ai.developer.meta.com/get-started/",text:"Meta's official Llama Model API. OpenAI-compatible chat completions endpoint."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.llama.com/compat/v1/chat/completions",validateUrl:"https://api.llama.com/compat/v1/models"},models:[{id:"Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"Llama-4-Scout-17B-16E-Instruct-FP8",name:"Llama 4 Scout"},{id:"Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Llama-3.3-8B-Instruct",name:"Llama 3.3 8B Instruct"}],serviceKinds:["llm"]},{id:"mixlayer",priority:50,alias:"mixlayer",display:{name:"Mixlayer",icon:"router",color:"#0EA5E9",textIcon:"MX",website:"https://www.mixlayer.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://models.mixlayer.ai/v1/chat/completions",validateUrl:"https://models.mixlayer.ai/v1/models"},models:[{id:"qwen/qwen3.5-35b-a3b",name:"Qwen3.5 35B A3B"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen/qwen3.5-9b",name:"Qwen3.5 9B"},{id:"qwen/qwen3.5-27b",name:"Qwen3.5 27B"},{id:"qwen/qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"}],passthroughModels:!0,hasFree:!0,freeNote:"The qwen/qwen3.5-4b-free model is free for prototyping and rate-limited; no fixed public RPM or daily quota is confirmed."},{id:"mnn-ai",priority:50,alias:"mnn-ai",display:{name:"MNN AI",icon:"hub",color:"#0F766E",textIcon:"MNN",website:"https://mnnai.ru"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.mnnai.ru/v1/chat/completions",validateUrl:"https://api.mnnai.ru/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: $1 monthly credits, 10 RPM and access only to models marked Free."},{id:"modal",priority:40,alias:"modal",display:{name:"Modal",icon:"cloud_queue",color:"#7C3AED",textIcon:"MDL",website:"https://modal.com/docs",notice:{apiKeyUrl:"https://modal.com/settings/tokens",text:"OpenAI-compatible. $30/month free credits for new accounts."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.modal.ai/v1/chat/completions",validateUrl:"https://api.modal.ai/v1/models"},models:[{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash"}],serviceKinds:["llm"],hasFree:!0,freeNote:"$30/month free credits for new accounts"},{id:"modelscope",priority:50,alias:"modelscope",display:{name:"ModelScope",icon:"cloud",color:"#FF6A00",textIcon:"MS",website:"https://modelscope.cn"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api-inference.modelscope.cn/v1/chat/completions",validateUrl:"https://api-inference.modelscope.cn/v1/models"},models:[{id:"ZhipuAI/GLM-4.5",name:"GLM-4.5"},{id:"ZhipuAI/GLM-4.6",name:"GLM-4.6"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B A22B Instruct 2507"},{id:"Qwen/Qwen3-Coder-30B-A3B-Instruct",name:"Qwen3 Coder 30B A3B Instruct"},{id:"Qwen/Qwen3-30B-A3B-Thinking-2507",name:"Qwen3 30B A3B Thinking 2507"},{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",name:"Qwen3 30B A3B Instruct 2507"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier via ModelScope API-Inference — Alibaba account required."},{id:"morph",priority:50,alias:"morph",display:{name:"Morph",icon:"auto_fix_high",color:"#2563EB",textIcon:"MP",website:"https://www.morphllm.com",notice:{apiKeyUrl:"https://www.morphllm.com/keys",text:"OpenAI-compatible. Hosts open-weight models (Qwen, MiniMax, DeepSeek, GLM) optimized for coding agents. Free tier: 250K credits/month."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.morphllm.com/v1/chat/completions",validateUrl:"https://api.morphllm.com/v1/models"},models:[{id:"morph-v3-large",name:"Morph V3 Large"},{id:"morph-v3-fast",name:"Morph V3 Fast"},{id:"morph-glm52-744b",name:"GLM-5.2 744B"},{id:"morph-qwen35-397b",name:"Qwen 3.5 397B"},{id:"morph-qwen36-27b",name:"Qwen 3.6 27B"},{id:"morph-minimax3-428b",name:"MiniMax M3"},{id:"morph-dsv4flash",name:"DeepSeek V4 Flash"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free tier: 250K credits/month, $0"},{id:"naga-ac",priority:50,alias:"naga",display:{name:"Naga.ac",icon:"bolt",color:"#7C3AED",textIcon:"NA",website:"https://naga.ac",notice:{text:"Get API key at naga.ac — Google/GitHub/Discord signup available."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.naga.ac/v1/chat/completions",validateUrl:"https://api.naga.ac/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free models include Nemotron 3 Ultra (free) and Llama 3.3 70B Instruct (Free). Paid models require credits. Google/GitHub/Discord signup."},{id:"naga-ai",priority:50,alias:"naga-ai",display:{name:"Naga AI",icon:"router",color:"#059669",textIcon:"NA",website:"https://naga.ac"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.naga.ac/v1/chat/completions",validateUrl:"https://api.naga.ac/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Models marked :free are publicly listed, but no numeric quota is confirmed. Naga's policy warns that free-tier prompts and outputs may be collected or used for training."},{id:"nanogpt",priority:50,alias:"nanogpt",display:{name:"NanoGPT",icon:"chat",color:"#4F46E5",textIcon:"NG",website:"https://nano-gpt.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://nano-gpt.com/api/v1/chat/completions",validateUrl:"https://nano-gpt.com/api/v1/models"},passthroughModels:!0},{id:"nara",priority:50,alias:"nara",display:{name:"NaraRouter",icon:"hub",color:"#EC4899",textIcon:"NA",website:"https://bynara.id",notice:{text:"Get a free API key via NaraRouter's Telegram channel, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://router.bynara.id/v1/chat/completions",validateUrl:"https://router.bynara.id/v1/models"},models:[{id:"tencent-hy3",name:"Tencent Hy3"},{id:"mistral-large",name:"Mistral Large"},{id:"mistral-medium-3-5",name:"Mistral Medium 3.5"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier is a shared 5M tokens/day pool; some models are gated behind credit/plan."},{id:"navy",priority:50,alias:"navy",display:{name:"NavyAI",icon:"hub",color:"#1E3A8A",textIcon:"NV",website:"https://api.navy",notice:{text:"Create a free API key from the NavyAI dashboard, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.navy/v1/chat/completions",validateUrl:"https://api.navy/v1/models"},models:[{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"mistral-small-latest",name:"Mistral Small"},{id:"llama-4-scout",name:"Llama 4 Scout"}],passthroughModels:!0,hasFree:!0,freeNote:"Free plan is one shared 150K tokens/day pool at 20 RPM. Each model carries a token multiplier, so heavier models drain the pool faster (grok-4 at 10x is ~15K real tokens/day)."},{id:"nous-research",priority:50,alias:"nous-research",aliases:["nous"],uiAlias:"nous",display:{name:"Nous Research",icon:"hub",color:"#2563EB",textIcon:"NO",website:"https://portal.nousresearch.com/help",notice:{apiKeyUrl:"https://portal.nousresearch.com/keys",text:"Official OpenAI-compatible inference endpoint. Free tier: 50 RPM / 500,000 TPM — no credit card."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference-api.nousresearch.com/v1/chat/completions",validateUrl:"https://inference-api.nousresearch.com/v1/models"},models:[{id:"Hermes-4-405B",name:"Hermes 4 405B"},{id:"Hermes-4-70B",name:"Hermes 4 70B"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free tier: 50 RPM, 500,000 TPM — no credit card"},{id:"nscale",priority:50,alias:"nscale",display:{name:"nScale",icon:"token",color:"#0891B2",textIcon:"NS",website:"https://nscale.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.api.nscale.com/v1/chat/completions",validateUrl:"https://inference.api.nscale.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$5 free credits on signup for inference testing"},{id:"nube",priority:50,alias:"nube",display:{name:"Nube.sh",icon:"cloud",color:"#2563EB",textIcon:"NB",website:"https://nube.sh",notice:{text:"OpenAI-compatible gateway (LiteLLM). Bring your own API key — models are resolved live from the account (passthrough).",apiKeyUrl:"https://nube.sh/dashboard/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://ai.nube.sh/api/v1/chat/completions",validateUrl:"https://ai.nube.sh/api/v1/models"},passthroughModels:!0},{id:"oci",priority:40,alias:"oci",display:{name:"OCI Generative AI",icon:"cloud",color:"#C74634",textIcon:"OCI",website:"https://www.oracle.com/artificial-intelligence/generative-ai",notice:{apiKeyUrl:"https://cloud.oracle.com/identity/domains/my-profile/api-keys",text:"OpenAI-compatible at https://inference.generativeai.<region>.oci.oraclecloud.com/openai/v1/. Override with your region via a custom baseUrl connection if needed."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1/chat/completions",validateUrl:"https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1/models"},models:[{id:"meta.llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"cohere.command-r-plus",name:"Command R+ (Cohere)"}],serviceKinds:["llm"],passthroughModels:!0},{id:"ofoxai",priority:50,alias:"ofoxai",display:{name:"OfoxAI",icon:"router",color:"#0F766E",textIcon:"OF",website:"https://ofox.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.ofox.ai/v1/chat/completions",validateUrl:"https://api.ofox.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"The current catalog advertises 10+ free models without a public numeric quota; review upstream provenance, retention and training terms before production use."},{id:"ollama-cloud",priority:50,alias:"ollamacloud",display:{name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/keys"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://ollama.com/v1/chat/completions",validateUrl:"https://ollama.com/api/tags"},models:[{id:"gpt-oss:20b",name:"GPT-OSS 20B"},{id:"gpt-oss:120b",name:"GPT-OSS 120B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5.2",name:"GLM 5.2"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"gemma4:31b",name:"Gemma 4 31B"},{id:"nemotron-3-super",name:"NVIDIA Nemotron 3 Super"},{id:"qwen3.5:397b",name:"Qwen 3.5 397B"}],passthroughModels:!0,hasFree:!0},{id:"oobabooga",priority:50,alias:"ooba",display:{name:"oobabooga",icon:"smart_toy",color:"#8B5CF6",textIcon:"OO",website:"https://github.com/oobabooga/text-generation-webui",notice:{text:"oobabooga Text Generation WebUI — OpenAI-compatible local endpoint (default port 5000). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:5000/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"openadapter",priority:50,alias:"oad",display:{name:"OpenAdapter",icon:"hub",color:"#10B981",textIcon:"OD",website:"https://openadapter.dev",notice:{text:"Use your OpenAdapter API key in Authorization: Bearer sk-cv-<key>. Fully OpenAI-compatible. API base URL: https://api.openadapter.in/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.openadapter.in/v1/chat/completions",validateUrl:"https://api.openadapter.in/v1/models"},models:[{id:"glm-4.7",name:"GLM 4.7 (OpenAdapter)"}],hasFree:!0,freeNote:"Free tier with a generous quota and no credit card — 15+ open-source models with daily quota. Get your API key at https://dashboard.openadapter.in."},{id:"opencode-zen",priority:50,alias:"opencode-zen",display:{name:"OpenCode Zen",icon:"opencode",color:"#6366f1",textIcon:"OP",website:"https://opencode.ai/zen"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://opencode.ai/zen/v1/chat/completions",validateUrl:"https://opencode.ai/zen/v1/models"},models:[{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"ling-3.0-flash-free",name:"Ling-3.0-flash Free"},{id:"laguna-s-2.1-free",name:"Laguna S 2.1 Free"},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free"}]},{id:"openference-api",priority:50,alias:"ofa",display:{name:"Openference API",icon:"openference",color:"#6366F1",textIcon:"OF",website:"https://openference.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.openference.com/v1/chat/completions",validateUrl:"https://api.openference.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: 3-day trial with open-source models — no credit card required"},{id:"orcarouter",priority:50,alias:"orcarouter",display:{name:"OrcaRouter",icon:"router",color:"#0891B2",textIcon:"ORC",website:"https://www.orcarouter.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.orcarouter.ai/v1",validateUrl:"https://api.orcarouter.ai/v1/models"},models:[{id:"orcarouter/auto",name:"Auto (smart routing)"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8"},{id:"grok/grok-4.3",name:"Grok 4.3"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"minimax/minimax-m2.7",name:"MiniMax M2.7"},{id:"qwen/qwen3.7-max",name:"Qwen3.7 Max"}],passthroughModels:!0},{id:"ovhcloud",priority:40,alias:"ovhcloud",aliases:["ovh"],uiAlias:"ovh",display:{name:"OVHcloud",icon:"cloud",color:"#2563EB",textIcon:"OVH",website:"https://www.ovhcloud.com",notice:{apiKeyUrl:"https://endpoints.ai.cloud.ovh.net/keys",text:"EU-hosted AI Endpoints. Anonymous tier works without a key (rate-limited); an OVHcloud key raises the rate limit."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/chat/completions",validateUrl:"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models"},models:[{id:"Meta-Llama-3_3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen2.5-Coder-32B-Instruct",name:"Qwen2.5 Coder 32B Instruct"},{id:"Mistral-Small-3.2-24B-Instruct-2506",name:"Mistral Small 3.2 24B"}],serviceKinds:["llm"]},{id:"piapi",priority:50,alias:"pi",display:{name:"PiAPI",icon:"api",color:"#7C4DFF",textIcon:"PI",website:"https://piapi.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.piapi.ai/v1/chat/completions",validateUrl:"https://api.piapi.ai/v1/models"},passthroughModels:!0},{id:"pioneer",priority:50,alias:"pioneer",display:{name:"Pioneer AI",icon:"rocket_launch",color:"#7C5CFF",textIcon:"PN",website:"https://pioneer.ai",notice:{apiKeyUrl:"https://agent.pioneer.ai/api-keys",text:"$75 free usage credits, no credit card required. Use an API key starting with pio_sk_. Only open-tier models (Qwen3, Llama, Gemma, SmolLM) work directly — gated models (Claude/GPT/Gemini) require prior fine-tuning via the Pioneer platform."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.pioneer.ai/v1/chat/completions",validateUrl:"https://api.pioneer.ai/v1/models",auth:{combined:!0,header:"X-API-Key",scheme:"raw"}},models:[{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"Qwen/Qwen3.6-27B",name:"Qwen3.6 27B"},{id:"Qwen/Qwen3.5-9B",name:"Qwen3.5 9B"},{id:"Qwen/Qwen3-8B",name:"Qwen3 8B"},{id:"Qwen/Qwen3-4B-Base",name:"Qwen3 4B Base"},{id:"Qwen/Qwen3-1.7B-Base",name:"Qwen3 1.7B Base"},{id:"meta-llama/Llama-3.1-8B-Instruct",name:"Llama 3.1 8B Instruct"},{id:"meta-llama/Llama-3.2-1B-Instruct",name:"Llama 3.2 1B Instruct"},{id:"google/gemma-3-4b-pt",name:"Gemma 3 4B (Pretrained)"},{id:"HuggingFaceTB/SmolLM3-3B-Base",name:"SmolLM3 3B Base"}],serviceKinds:["llm"],hasFree:!0,freeNote:"$75 free usage credits — no credit card required"},{id:"poixe-ai",priority:50,alias:"poixe-ai",display:{name:"Poixe AI",icon:"router",color:"#EA580C",textIcon:"PX",website:"https://poixe.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.poixe.com/v1/chat/completions",validateUrl:"https://api.poixe.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Current public free limits are small and model-group specific: 2 RPM/5 RPD for large-cup models and 20 RPM/50 RPD for small-cup models."},{id:"poolside",priority:50,alias:"poolside",display:{name:"Poolside",icon:"memory",color:"#111827",textIcon:"PS",website:"https://poolside.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.poolside.ai/v1/chat/completions",validateUrl:"https://inference.poolside.ai/v1/models"},models:[{id:"poolside/laguna-xs-2.1",name:"Laguna XS 2.1"},{id:"poolside/laguna-s-2.1",name:"Laguna S 2.1"}],passthroughModels:!0,hasFree:!0,freeNote:"Laguna S 2.1 and XS 2.1 are free during Preview; no public numeric quota is published."},{id:"predibase",priority:50,alias:"predibase",display:{name:"Predibase",icon:"deployed_code_history",color:"#0F766E",textIcon:"PB",website:"https://predibase.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://serving.app.predibase.com/v1/chat/completions",validateUrl:"https://serving.app.predibase.com/v1/models"},passthroughModels:!0,freeNote:"$25 free trial credits (30-day validity)"},{id:"publicai",priority:50,alias:"publicai",display:{name:"PublicAI",icon:"public",color:"#059669",textIcon:"PA",website:"https://publicai.co"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.publicai.co/v1/chat/completions",validateUrl:"https://api.publicai.co/v1/models"},passthroughModels:!0,freeNote:"Requires an API key — one-time signup credit, then paid"},{id:"qiniu",priority:50,alias:"qiniu",display:{name:"Qiniu",icon:"cloud",color:"#1E88E5",textIcon:"QN",website:"https://www.qiniu.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.qnaigc.com/v1/chat/completions",validateUrl:"https://api.qnaigc.com/v1/models"},models:[{id:"mimo-v2-flash",name:"Mimo-V2-Flash"},{id:"xiaomi/mimo-v2-flash",name:"Xiaomi/Mimo-V2-Flash"}],passthroughModels:!0},{id:"regolo",priority:50,alias:"regolo",display:{name:"Regolo AI",icon:"hub",color:"#6366F1",textIcon:"RG",website:"https://regolo.ai",notice:{text:"Get your Regolo API key from regolo.ai, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.regolo.ai",validateUrl:"https://api.regolo.ai/v1/models"},models:[{id:"regolo-chat",name:"Regolo Chat"},{id:"regolo-fast",name:"Regolo Fast"}],passthroughModels:!0},{id:"reka",priority:50,alias:"reka",display:{name:"Reka",icon:"auto_awesome",color:"#111827",textIcon:"RK",website:"https://docs.reka.ai/chat/overview",notice:{apiKeyUrl:"https://platform.reka.ai/keys",text:"Fully OpenAI-compatible. $10/month recurring free API credits."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.reka.ai/v1/chat/completions",validateUrl:"https://api.reka.ai/v1/models"},models:[{id:"reka-flash-3",name:"Reka Flash 3"},{id:"reka-flash",name:"Reka Flash"},{id:"reka-edge-2603",name:"Reka Edge 2603"}],serviceKinds:["llm","imageToText"],hasFree:!0,freeNote:"$10/month recurring free API credits"},{id:"requesty",priority:50,alias:"requesty",display:{name:"Requesty",icon:"router",color:"#6366F1",textIcon:"RQ",website:"https://requesty.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://router.requesty.ai/v1/chat/completions",validateUrl:"https://router.requesty.ai/v1/models"},models:[{id:"claude-sonnet-4-5@eu",name:"Claude Sonnet 4.5 (latest) (EU)"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"gpt-5.1@eu",name:"GPT-5.1 (EU)"},{id:"gpt-4.1-nano@eu",name:"GPT-4.1 nano (EU)"},{id:"gemini-2.5-flash@eu",name:"Gemini 2.5 Flash (EU)"},{id:"kimi-k3",name:"Kimi K3"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier ~200 requests/day - multi-model routing gateway (300+ models)"},{id:"rev-ai",priority:30,alias:"revai",display:{name:"Rev AI",icon:"record_voice_over",color:"#E5484D",textIcon:"RV",website:"https://rev.ai",notice:{apiKeyUrl:"https://www.rev.ai/access-token",text:"Async STT (machine / low_cost / fusion). API key from rev.ai."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"machine",name:"Reverb ASR",kind:"stt"},{id:"low_cost",name:"Low-Cost ASR",kind:"stt"},{id:"fusion",name:"Fusion ASR",kind:"stt"}],sttConfig:{baseUrl:"https://api.rev.ai/speechtotext/v1",authType:"apikey",authHeader:"bearer",format:"rev-ai"}},{id:"routeway",priority:50,alias:"routeway",display:{name:"Routeway",icon:"hub",color:"#F59E0B",textIcon:"RW",website:"https://routeway.ai",notice:{text:"Create a free API key at routeway.ai, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.routeway.ai/v1/chat/completions",validateUrl:"https://api.routeway.ai/v1/models"},models:[{id:"llama-3.3-70b-instruct:free",name:"Llama 3.3 70B Instruct (free)"},{id:"nemotron-3-nano-30b-a3b:free",name:"Nemotron 3 Nano 30B (free)"},{id:"nemotron-nano-9b-v2:free",name:"Nemotron Nano 9B v2 (free)"},{id:"step-3.7-flash:free",name:"Step 3.7 Flash (free)"},{id:"step-3.5-flash:free",name:"Step 3.5 Flash (free)"},{id:"laguna-m.1:free",name:"Laguna M.1 (free)"},{id:"laguna-xs.2:free",name:"Laguna XS.2 (free)"},{id:"llama-3.2-3b-instruct:free",name:"Llama 3.2 3B Instruct (free)"}],passthroughModels:!0,hasFree:!0,freeNote:"Free models (:free suffix) at ~5 RPM / 200 RPD across Llama, Nemotron, Step and Laguna."},{id:"sambanova",priority:50,alias:"samba",display:{name:"SambaNova",icon:"memory",color:"#DC2626",textIcon:"SN",website:"https://sambanova.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",validateUrl:"https://api.sambanova.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$5 free credits on signup (30-day validity), no credit card required"},{id:"sap",priority:40,alias:"sap",display:{name:"SAP Generative AI Hub",icon:"business",color:"#0FAAFF",textIcon:"SAP",website:"https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/generative-ai-hub-in-sap-ai-core",notice:{apiKeyUrl:"https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/create-api-credentials-for-ai-core",text:"Chat requests use the deploymentUrl from Generative AI Hub and require an AI-Resource-Group header. Add the deployment endpoint via a custom baseUrl connection (OpenAI-compatible)."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",validateUrl:""},passthroughModels:!0},{id:"scaleway",priority:40,alias:"scaleway",aliases:["scw"],uiAlias:"scw",display:{name:"Scaleway",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/docs/ai-data/generative-apis/",notice:{apiKeyUrl:"https://console.scaleway.com/project/credentials",text:"EU/GDPR-compliant (Paris). 1M free tokens for new accounts."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.scaleway.ai/v1/chat/completions",validateUrl:"https://api.scaleway.ai/v1/models"},models:[{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"mistral-small-3.2-24b-instruct-2506",name:"Mistral Small 3.2"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"glm-5.2",name:"GLM 5.2"}],serviceKinds:["llm"],hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris)"},{id:"snowflake",priority:40,alias:"snowflake",display:{name:"Snowflake Cortex",icon:"ac_unit",color:"#29B5E8",textIcon:"SF",website:"https://www.snowflake.com",notice:{apiKeyUrl:"https://app.snowflake.com",text:"Cortex inference is OpenAI-compatible at https://<org>-<account>.snowflakecomputing.com/api/v2/cortex/inference:complete. Add your account endpoint via a custom baseUrl connection."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://example-org-example-account.snowflakecomputing.com/api/v2/cortex/inference:complete",validateUrl:"https://example-org-example-account.snowflakecomputing.com/api/v2/cortex/inference:complete"},models:[{id:"llama3.1-70b",name:"Llama 3.1 70B"},{id:"llama3.3-70b",name:"Llama 3.3 70B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"claude-3-5-sonnet",name:"Claude 3.5 Sonnet"}],serviceKinds:["llm"],passthroughModels:!0},{id:"soniox",priority:30,alias:"soniox",display:{name:"Soniox",icon:"record_voice_over",color:"#0EA5E9",textIcon:"SX",website:"https://soniox.com",notice:{apiKeyUrl:"https://platform.soniox.com",text:"Async batch STT (stt-async-v5/v4). API key from platform.soniox.com."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"stt-async-v5",name:"Soniox STT Async v5",kind:"stt"},{id:"stt-async-v4",name:"Soniox STT Async v4",kind:"stt"}],sttConfig:{baseUrl:"https://api.soniox.com/v1/transcriptions",authType:"apikey",authHeader:"bearer",format:"soniox"}},{id:"speechmatics",priority:30,alias:"speechmatics",display:{name:"Speechmatics",icon:"record_voice_over",color:"#6366F1",textIcon:"SM",website:"https://speechmatics.com",notice:{apiKeyUrl:"https://portal.speechmatics.com",text:"Async batch STT (enhanced). Free tier: 8 hours/month, no credit card."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"enhanced",name:"Enhanced",kind:"stt"}],sttConfig:{baseUrl:"https://asr.api.speechmatics.com/v2/jobs",authType:"apikey",authHeader:"bearer",format:"speechmatics"}},{id:"speka",priority:50,alias:"speka",display:{name:"Speka AI",icon:"router",color:"#DB2777",textIcon:"SP",website:"https://speka.me"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://speka.me/v1/chat/completions",validateUrl:"https://speka.me/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: $1 monthly usage, 10 RPM, one API key and access to open models and the playground; no card required."},{id:"sumopod",priority:50,alias:"sumopod",display:{name:"SumoPod",icon:"router",color:"#2563EB",textIcon:"SP",website:"https://ai.sumopod.com",notice:{text:"Use your SumoPod API key (sk-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://ai.sumopod.com/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://ai.sumopod.com/v1/chat/completions",validateUrl:"https://ai.sumopod.com/v1/models"},passthroughModels:!0},{id:"synthetic",priority:50,alias:"synthetic",display:{name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.synthetic.new/openai/v1/chat/completions",validateUrl:"https://api.synthetic.new/openai/v1/models"},models:[{id:"hf:openai/gpt-oss-120b",name:"openai/gpt-oss-120b"},{id:"hf:zai-org/GLM-5.2",name:"zai-org/GLM-5.2"},{id:"hf:moonshotai/Kimi-K2.7-Code",name:"moonshotai/Kimi-K2.7-Code"},{id:"hf:Qwen/Qwen3.6-27B",name:"Qwen/Qwen3.6-27B"},{id:"hf:MiniMaxAI/MiniMax-M3",name:"MiniMaxAI/MiniMax-M3"},{id:"hf:zai-org/GLM-4.7-Flash",name:"zai-org/GLM-4.7-Flash"},{id:"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4",name:"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4"}],passthroughModels:!0},{id:"thebai",priority:50,alias:"thebai",display:{name:"TheB.AI",icon:"hub",color:"#3B82F6",textIcon:"TB",website:"https://theb.ai",notice:{text:"Bearer API key for the TheB.AI OpenAI-compatible gateway."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.theb.ai/v1/chat/completions",validateUrl:"https://api.theb.ai/v1/models"},passthroughModels:!0},{id:"tokenreply",priority:50,alias:"tokenreply",display:{name:"TokenReply",icon:"router",color:"#3B82F6",textIcon:"TR",website:"https://www.tokenreply.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.tokenreply.com/v1/chat/completions",validateUrl:"https://api.tokenreply.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free-tagged models have model- and campaign-specific daily limits; no fixed global free quota is published."},{id:"triton",priority:50,alias:"triton",display:{name:"NVIDIA Triton",icon:"memory",color:"#76B900",textIcon:"TR",website:"https://developer.nvidia.com/triton-inference-server",notice:{text:"NVIDIA Triton Inference Server — OpenAI-compatible endpoint. Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:8000/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"unorouter",priority:50,alias:"unorouter",display:{name:"UnoRouter",icon:"unorouter",color:"#8B5CF6",textIcon:"UR",website:"https://unorouter.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.unorouter.com/v1/chat/completions",validateUrl:"https://api.unorouter.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Models with the :free suffix do not debit balance; limit is 1 request/minute per free model per user."},{id:"upstage",priority:50,alias:"upstage",display:{name:"Upstage",icon:"trending_up",color:"#0F766E",textIcon:"UP",website:"https://www.upstage.ai",notice:{apiKeyUrl:"https://console.upstage.ai/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.upstage.ai/v1/chat/completions",validateUrl:"https://api.upstage.ai/v1/models"},models:[{id:"solar-pro3",name:"Solar Pro 3"},{id:"solar-mini",name:"Solar Mini"}],serviceKinds:["llm"]},{id:"vllm",priority:50,alias:"vllm",display:{name:"vLLM",icon:"memory",color:"#0F766E",textIcon:"VL",website:"https://github.com/vllm-project/vllm",notice:{text:"vLLM inference server — OpenAI-compatible endpoint. Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:8000/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"void-ai",priority:50,alias:"void-ai",display:{name:"Void AI",icon:"science",color:"#111827",textIcon:"VA",website:"https://voidai.app"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.voidai.app/v1/chat/completions",validateUrl:"https://api.voidai.app/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"The public model catalog marks some models with a free plan requirement, but access is conditional and no numeric quota is confirmed."},{id:"wafer",priority:50,alias:"wafer",display:{name:"Wafer AI",icon:"layers",color:"#6366F1",textIcon:"WF",website:"https://wafer.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://pass.wafer.ai/v1/messages",validateUrl:"https://pass.wafer.ai/v1/models"},models:[{id:"DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"Qwen3.5-397B-A17B",name:"Qwen3.5 397B A17B"},{id:"GLM-5.1",name:"GLM 5.1"}]},{id:"wandb",priority:50,alias:"wandb",display:{name:"Weights & Biases Inference",icon:"monitoring",color:"#FFBE0B",textIcon:"WB",website:"https://wandb.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.inference.wandb.ai/v1/chat/completions",validateUrl:"https://api.inference.wandb.ai/v1/models"},models:[{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",name:"Nemotron 3 Ultra"},{id:"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8",name:"Nemotron 3 Super"},{id:"nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B",name:"Nemotron 3.5 Lightning"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B"}]},{id:"watsonx",priority:40,alias:"watsonx",display:{name:"IBM watsonx.ai",icon:"hub",color:"#0F62FE",textIcon:"WX",website:"https://www.ibm.com/products/watsonx-ai",notice:{apiKeyUrl:"https://dataplatform.cloud.ibm.com/iam/apikeys",text:"watsonx model gateway is OpenAI-compatible under /ml/gateway/v1. Base URL is regional — override with your region's gateway (e.g. https://us-south.ml.cloud.ibm.com/ml/gateway/v1) via a custom baseUrl connection."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://us-south.ml.cloud.ibm.com/ml/gateway/v1/chat/completions",validateUrl:"https://us-south.ml.cloud.ibm.com/ml/gateway/v1/models"},models:[{id:"ibm/granite-3-8b-instruct",name:"Granite 3 8B Instruct"},{id:"meta-llama/llama-3-3-70b-instruct",name:"Llama 3.3 70B Instruct"}],serviceKinds:["llm"],passthroughModels:!0},{id:"writer",priority:50,alias:"writer",display:{name:"Writer",icon:"edit",color:"#111827",textIcon:"WR",website:"https://dev.writer.com",notice:{apiKeyUrl:"https://app.writer.com/settings/api-keys",text:"Palmyra X5 offers a 1M-token context window. OpenAI-compatible."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.writer.com/v1/chat/completions",validateUrl:"https://api.writer.com/v1/models"},models:[{id:"palmyra-x5",name:"Palmyra X5"},{id:"palmyra-x4",name:"Palmyra X4"}],serviceKinds:["llm"]},{id:"x5lab",priority:50,alias:"x5lab",display:{name:"X5Lab",icon:"router",color:"#7C3AED",textIcon:"X5",website:"https://x5lab.dev",notice:{text:"Use your X5Lab API key (x5-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://api.x5lab.dev/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.x5lab.dev/v1/chat/completions",validateUrl:"https://api.x5lab.dev/v1/models"},passthroughModels:!0},{id:"xinference",priority:50,alias:"xinference",display:{name:"XInference",icon:"hub",color:"#DC2626",textIcon:"XI",website:"https://inference.readthedocs.io",notice:{text:"XInference — local model serving platform, OpenAI-compatible endpoint (default port 9997). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:9997/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"yolo-auto",priority:50,alias:"yolo-auto",display:{name:"Yolo-Auto",icon:"auto_awesome",color:"#F59E0B",textIcon:"YA",website:"https://yolo-auto.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://yolo-auto.com/v1/chat/completions",validateUrl:"https://yolo-auto.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free API access is request-limited and intended for testing; no numeric daily quota is published and free access is not promised indefinitely."},{id:"zerolimitai",priority:50,alias:"zerolimitai",display:{name:"ZeroLimitAI",icon:"router",color:"#475569",textIcon:"ZL",website:"https://www.zerolimitai.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://www.zerolimitai.com/api/v1/chat/completions",validateUrl:"https://www.zerolimitai.com/api/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Temporary free trial is advertised, but official pages conflict between 3 and 7 days; a 100-calls/day claim is not treated."},{id:"zylo-api",priority:50,alias:"zylo",display:{name:"Zylo API",icon:"hub",color:"#2563EB",textIcon:"ZY",website:"https://zyloai.net"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.zyloai.net/v1/chat/completions",validateUrl:"https://api.zyloai.net/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Basic plan: 10 RPM, 7,200 requests/day and 200,000 tokens/day; limited to Basic text models."},{id:"notion-web",priority:150,alias:"nw",display:{name:"Notion AI Web",icon:"auto_awesome",color:"#1A1919",textIcon:"NW",website:"https://www.notion.so",notice:{signupUrl:"https://www.notion.so",apiKeyUrl:"https://www.notion.so",text:"Notion AI browser-session chat. Open notion.so, log in, then copy the `token_v2` cookie (plus `space_id` / `notion_user_id` / `notion_browser_id` if present) from DevTools → Application → Cookies → notion.so and paste it here. Requests go through Chrome-TLS impersonation because Notion's edge rejects plain Node fetch. Multi-turn chats reuse one Notion thread. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "token_v2" cookie value from notion.so → DevTools → Application → Cookies → notion.so and paste it here. Optional: "space_id=...; notion_user_id=..." pairs.',transport:{baseUrl:"https://app.notion.com",format:"notion-web",authType:"cookie"},models:[{id:"fable-5",name:"Fable 5"},{id:"sonnet-5",name:"Sonnet 5"},{id:"opus-4.8",name:"Opus 4.8"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"glm-5.2",name:"GLM 5.2"},{id:"grok-4.5",name:"Grok 4.5"},{id:"notion-ai",name:"Notion AI (default)"}],passthroughModels:!0},{id:"hyperagent",priority:150,alias:"ha",display:{name:"HyperAgent",icon:"auto_awesome",color:"#7C3AED",textIcon:"HA",website:"https://hyperagent.com",notice:{signupUrl:"https://hyperagent.com",apiKeyUrl:"https://hyperagent.com",text:"HyperAgent agent chat via browser session. Open hyperagent.com, log in, then paste the full Cookie header from DevTools → Network → any document request → Request Headers → Cookie. Claude-family agent models with 1M context; multi-turn chats reuse one thread + session. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:"Paste the full Cookie header from hyperagent.com (DevTools → Network → any document request → Request Headers → Cookie).",transport:{baseUrl:"https://hyperagent.com",format:"hyperagent",authType:"cookie"},defaultContextLength:1e6,models:[{id:"fable-latest",name:"Fable 5",contextLength:1e6},{id:"claude-fable-5",name:"Claude Fable 5",contextLength:1e6},{id:"opus-latest",name:"Claude Opus Latest",contextLength:1e6},{id:"claude-opus-4-8",name:"Claude Opus 4.8",contextLength:1e6},{id:"sonnet-latest",name:"Claude Sonnet Latest",contextLength:1e6},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextLength:1e6}],passthroughModels:!0}]},19308:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(48249);c(67484);var e=c(13033);function f({children:a}){let{initTheme:b}=(0,e.A)();return(0,d.jsx)(d.Fragment,{children:a})}},24467:(a,b,c)=>{"use strict";c.d(b,{DS:()=>r,GK:()=>m,MX:()=>l,RF:()=>s,X6:()=>f,Yh:()=>t,aS:()=>p,gI:()=>h,hy:()=>i,i5:()=>o,j8:()=>n});var d=c(78474);global._circuitBreakers||(global._circuitBreakers=new Map,global._breakerEmitter=new d.EventEmitter,global._breakerEmitter.setMaxListeners(50));let e=global._circuitBreakers,f=global._breakerEmitter,g={enabled:!0,failureThreshold:5,windowMs:6e4,cooldownMs:3e4,halfOpenMaxCalls:1};function h(a,b){let c=b&&"object"==typeof b?b:{};if(!c.connectionProxyEnabled)return a;let d=c.connectionProxyPoolId||"",e=c.connectionProxyUrl||"";return`${a}:proxy:${d||e}`}function i(a){let b=Number(a)||0;return 0===b||429===b||b>=500}function j(a){let b=e.get(a);return b||(b={key:a,state:"closed",failures:[],openedAt:null,cooldownEndsAt:null,halfOpenCalls:0,lastActivityAt:Date.now()},e.set(a,b)),b}function k(a){let b=e.get(a);b&&f.emit("breaker:update",{provider:b.key,state:b.state,failures:b.failures.length,openedAt:b.openedAt,cooldownEndsAt:b.cooldownEndsAt})}function l(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let e=c||a,f=j(e);f.lastActivityAt=Date.now();let h=Date.now();if("open"===f.state)if(!f.cooldownEndsAt||!(h>=f.cooldownEndsAt))return!0;else f.state="halfOpen",f.halfOpenCalls=0,k(e);if("halfOpen"===f.state){if(f.halfOpenCalls>=d.halfOpenMaxCalls)return!0;f.halfOpenCalls++}return!1}function m(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let f=e.get(c||a);if(!f)return!1;let h=Date.now();return"open"===f.state?!f.cooldownEndsAt||!(h>=f.cooldownEndsAt):"halfOpen"===f.state&&f.halfOpenCalls>=d.halfOpenMaxCalls}function n(a,b={},c=null){if(!({...g,...b?.circuitBreaker||{}}).enabled)return;let d=c||a,e=j(d);e.lastActivityAt=Date.now(),("closed"!==e.state||e.failures.length>0)&&(e.state="closed",e.failures=[],e.openedAt=null,e.cooldownEndsAt=null,e.halfOpenCalls=0,k(d))}function o(a,b,c={},d=null){let e={...g,...c?.circuitBreaker||{}};if(!e.enabled)return;let f=d||a,h=j(f);h.lastActivityAt=Date.now();let i=Date.now();if("halfOpen"===h.state){h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,h.halfOpenCalls=0,h.failures=[{ts:i,status:b}],k(f);return}if("closed"===h.state){h.failures.push({ts:i,status:b});let a=i-e.windowMs;h.failures=h.failures.filter(b=>b.ts>=a),h.failures.length>=e.failureThreshold&&(h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,k(f))}}function p(a,b=null){let c=e.get(b||a);!c||(c.lastActivityAt=Date.now(),"halfOpen"===c.state&&c.halfOpenCalls>0&&c.halfOpenCalls--)}let q=0;function r(){let a=Date.now();!function(a){if(a-q<6e4)return;q=a;let b=a-6e5;for(let[a,c]of e)"closed"===c.state&&(c.lastActivityAt||0)<b&&e.delete(a)}(a);let b=[];for(let c of e.values()){let d=c.state,e=null;"open"===c.state&&c.cooldownEndsAt&&0===(e=Math.max(0,c.cooldownEndsAt-a))&&(d="halfOpen"),b.push({provider:c.key,state:d,failures:c.failures.length,openedAt:c.openedAt,cooldownEndsAt:c.cooldownEndsAt,cooldownRemainingMs:e})}return b}function s(a,b=null){let c=e.get(b||a);return c&&"open"===c.state&&c.cooldownEndsAt?c.cooldownEndsAt:null}function t(a,b=null){if(b){let a=e.get(b);return!!a&&(a.state="closed",a.failures=[],a.openedAt=null,a.cooldownEndsAt=null,a.halfOpenCalls=0,k(b),!0)}let c=!1;for(let[b,d]of e)(b===a||b.startsWith(`${a}:`))&&(d.state="closed",d.failures=[],d.openedAt=null,d.cooldownEndsAt=null,d.halfOpenCalls=0,k(b),c=!0);return c}},25334:(a,b,c)=>{"use strict";function d(a){return null==a?"":String(a).trim()}c.d(b,{k:()=>f});let e=["http:","https:","socks5:","socks4:","socks5h:","socks4a:"];function f({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let g=d(b),h=d(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let i="1"===process.env.NINE_ROUTER_PROXY_MANAGED,j=!1;if(i&&(g||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),h||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),g){let a=function(a){if(!a||/[\n\r`$]/.test(a))return null;try{let b=new URL(a);if(!e.includes(b.protocol))return null;return b.href}catch{return null}}(g);a&&(process.env.HTTP_PROXY=a,process.env.HTTPS_PROXY=a,process.env.ALL_PROXY=a,process.env.NINE_ROUTER_PROXY_URL=a,j=!0)}h&&(process.env.NO_PROXY=h,process.env.NINE_ROUTER_NO_PROXY=h,j=!0),j?process.env.NINE_ROUTER_PROXY_MANAGED="1":i&&delete process.env.NINE_ROUTER_PROXY_MANAGED}},26892:(a,b,c)=>{"use strict";c.d(b,{KM:()=>n,fO:()=>m,up:()=>o,wJ:()=>l});var d=c(94735),e=c(30869);let f=["log","info","warn","error","debug"];global._consoleLogBufferState||(global._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new d.EventEmitter},global._consoleLogBufferState.emitter.setMaxListeners(50));let g=global._consoleLogBufferState;function h(){if(g.flushTimer=null,!g.pendingLines.length)return;let a=g.pendingLines.splice(0,g.pendingLines.length);g.emitter.emit("lines",a)}g.emitter||(g.emitter=new d.EventEmitter,g.emitter.setMaxListeners(50)),g.pendingLines||(g.pendingLines=[]),g.flushTimer||(g.flushTimer=null);let i=/\x1b\[[0-9;]*m/g;function j(a){return a.replace(i,"")}function k(a){if("string"==typeof a)return j(a);if(a instanceof Error)return j(a.stack||a.message||String(a));try{return j(JSON.stringify(a))}catch{return j(String(a))}}function l(){if(!g.patched){for(let a of f)g.originals[a]=console[a],console[a]=(...b)=>{!function(a){g.logs.push(a);let b=e.UY.maxLines;g.logs.length>b&&(g.logs=g.logs.slice(-b)),g.pendingLines.push(a),g.pendingLines.length>=50?(g.flushTimer&&(clearTimeout(g.flushTimer),g.flushTimer=null),h()):g.flushTimer||(g.flushTimer=setTimeout(h,100),g.flushTimer?.unref?.())}(b.map(k).join(" ")),g.originals[a](...b)};g.patched=!0}}function m(){return g.logs}function n(){g.logs=[],g.emitter.emit("clear")}function o(){return g.emitter}},30869:(a,b,c)=>{"use strict";c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@rsalmn/extremerouter",installCmd:"npm i -g @rsalmn/extremerouter",installCmdLatest:"npm i -g @rsalmn/extremerouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},34973:(a,b,c)=>{"use strict";c.d(b,{I:()=>d});let d=[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},36436:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},40468:(a,b,c)=>{"use strict";var d=c(89718),e=c(25334);let f=!1;async function g(){if(f)return!0;try{let a=await (0,d.mt)();(0,e.k)(a),f=!0}catch(a){console.error("[ServerInit] Error initializing outbound proxy:",a)}return f}setImmediate(()=>{g().catch(console.log)})},49573:(a,b,c)=>{"use strict";c.r(b),c.d(b,{dispatchAlert:()=>j,initAlertService:()=>i});var d=c(89718),e=c(24467);let f={provider_down:0xef4444,rate_limited:0xf59e0b,health_degraded:0xf59e0b,budget_exceeded:0xef4444,test:3900150},g={provider_down:"\uD83D\uDD34 Provider Down",rate_limited:"⚠️ Rate Limited",health_degraded:"⚠️ Health Degraded",budget_exceeded:"\uD83D\uDD34 Budget Exceeded",test:"\uD83D\uDD14 Test Alert"};global._alertService||(global._alertService={initialized:!1,lastAlert:new Map});let h=global._alertService;function i(){h.initialized||(h.initialized=!0,e.X6.on("breaker:update",a=>{"open"===a.state&&j("provider_down",{provider:a.provider,failures:a.failures,message:`Circuit Breaker OPEN for "${a.provider}" — ${a.failures} failures in window. Provider is now bypassed.`}).catch(()=>{})}),console.log("[AlertService] initialized — subscribed to breaker events"))}async function j(a,b={}){try{let c=await (0,d.mt)();if(!c.webhookEnabled)return;let e=c.webhookAlertEvents||{},i=a.replace(/_([a-z])/g,(a,b)=>b.toUpperCase());if("test"!==a&&!e[i]&&!e[a])return;let j=`${a}:${b.provider||"global"}`,n=Date.now(),o=h.lastAlert.get(j);if(o&&n-o<3e5)return;h.lastAlert.set(j,n);let p=g[a]||`🔔 ${a}`,q=b.message||JSON.stringify(b),r=f[a]||7041664,s=b.provider?`[${b.provider}]`:"",t=`${p} ${s}
|
|
2
|
-
${q}`,u=[];c.webhookDiscordUrl&&u.push(k(c.webhookDiscordUrl,{title:p,description:q,color:r})),c.webhookTelegramToken&&c.webhookTelegramChatId&&u.push(l(c.webhookTelegramToken,c.webhookTelegramChatId,t)),c.webhookGenericUrl&&u.push(m(c.webhookGenericUrl,{eventType:a,title:p,description:q,...b,timestamp:new Date().toISOString()})),await Promise.allSettled(u)}catch(a){console.warn("[AlertService] dispatch error:",a?.message||String(a))}}async function k(a,{title:b,description:d,color:e}){try{let{proxyAwareFetch:f}=await c.e(9609).then(c.bind(c,39609));await f(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:"ExtremeRouter",embeds:[{title:b,description:d,color:e,timestamp:new Date().toISOString(),footer:{text:"ExtremeRouter Gateway"}}]})},null)}catch(a){console.warn("[AlertService] Discord delivery failed:",a?.message)}}async function l(a,b,d){try{let{proxyAwareFetch:e}=await c.e(9609).then(c.bind(c,39609));await e(`https://api.telegram.org/bot${a}/sendMessage`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:b,text:d,parse_mode:"HTML",disable_web_page_preview:!0})},null)}catch(a){console.warn("[AlertService] Telegram delivery failed:",a?.message)}}async function m(a,b){try{let{proxyAwareFetch:d}=await c.e(9609).then(c.bind(c,39609));await d(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)},null)}catch(a){console.warn("[AlertService] Generic webhook delivery failed:",a?.message)}}},50385:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>o,metadata:()=>p,viewport:()=>q});var e=c(5735),f=c(75329),g=c.n(f),h=c(93968),i=c(59537);c(36497),c(61135);var j=c(89886);c(40468);var k=c(14596),l=c(26892),m=c(85117),n=a([k]);k=(n.then?(await n)():n)[0],(0,l.wJ)();let p={title:"ExtremeRouter - AI Infrastructure Management",description:"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.",icons:{icon:"/favicon.svg"}},q={themeColor:"#0a0a0a"};function o({children:a}){return(0,e.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,e.jsx)("head",{children:(0,e.jsx)(h.default,{id:"font-loading",strategy:"beforeInteractive",children:"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"})}),(0,e.jsxs)("body",{className:`${g().variable} font-sans antialiased`,children:[(0,e.jsx)(j.ThemeProvider,{children:(0,e.jsx)(m.RuntimeI18nProvider,{children:a})}),(0,e.jsx)(i.GoogleAnalytics,{gaId:"G-LC959F603F"})]})]})}d()}catch(a){d(a)}})},51126:(a,b,c)=>{"use strict";c.d(b,{CL:()=>f,QC:()=>g,Xn:()=>e,YZ:()=>d});let d=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],e="en",f="locale";function g(a){return"zh"===a||"zh-CN"===a?"zh-CN":"en"===a?"en":"vi"===a?"vi":"zh-TW"===a?"zh-TW":"ja"===a?"ja":"pt-BR"===a?"pt-BR":"pt-PT"===a?"pt-PT":"ko"===a?"ko":"es"===a?"es":"de"===a?"de":"fr"===a?"fr":"he"===a?"he":"ar"===a?"ar":"ru"===a?"ru":"pl"===a?"pl":"cs"===a?"cs":"nl"===a?"nl":"tr"===a?"tr":"uk"===a?"uk":"tl"===a?"tl":"id"===a?"id":"th"===a?"th":"hi"===a?"hi":"bn"===a?"bn":"ur"===a?"ur":"ro"===a?"ro":"sv"===a?"sv":"it"===a?"it":"el"===a?"el":"hu"===a?"hu":"fi"===a?"fi":"da"===a?"da":"no"===a?"no":e}},61135:()=>{},68019:(a,b,c)=>{"use strict";c.d(b,{jY:()=>k,pp:()=>l});var d=c(34973);let e={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},f=(...a)=>a.map(a=>({...e[a],type:"tts"})),g=f("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),h=f("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),i=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),j={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":h,"tts-1":g,"tts-1-hd":g},allVoices:h},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":h,"openai/tts-1":g,"openai/tts-1-hd":g},allVoices:h},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:d.I},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":i,"gemini-2.5-flash-preview-tts":i,"gemini-2.5-pro-preview-tts":i},allVoices:i}};function k(a,b){let c=j[a];return c?.voices&&(c.voices[b]||c.allVoices)||null}function l(){let a={};for(let[b,c]of Object.entries(j))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=j.openai.allVoices,a["openrouter-tts-voices"]=j.openrouter.allVoices,a}},70440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(88868);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico",!0)+"?603d046c9a6fdfbb"}]},75975:(a,b,c)=>{Promise.resolve().then(c.bind(c,82275)),Promise.resolve().then(c.bind(c,74281)),Promise.resolve().then(c.bind(c,78962)),Promise.resolve().then(c.t.bind(c,90929,23)),Promise.resolve().then(c.bind(c,5211)),Promise.resolve().then(c.bind(c,19308))},76476:(a,b,c)=>{"use strict";c.d(b,{N:()=>n,v:()=>m});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"@rsalmn/extremerouter"):g().join(i().homedir(),".extremerouter")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},77977:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>r,vq:()=>m,u0:()=>p,KC:()=>s});var d=c(16850);function e(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}e("STREAM_STALL_TIMEOUT_MS",36e4),e("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5),e("FETCH_CONNECT_TIMEOUT_MS",6e4),e("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3);function f(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}let g=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,a=>`Kimi K${a[1]}${a[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,a=>`GLM ${a[1]}${a[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,a=>`MiniMax M${a[1]}`],[/^gpt-(.+)$/i,a=>`GPT ${f(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${f(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${f(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${f(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${f(a[1])}`]];function h(a){let b="string"==typeof a?{id:a}:a;return void 0!==b.name?b:{...b,name:function(a){if("string"!=typeof a)return a;for(let[b,c]of g){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}var i=c(68019);let j=["clientId","clientSecret","tokenUrl"],k=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),l={},m={},n={},o={};for(let a of d.A){a.transport&&(l[a.id]=function(a,b){let c={...a};if(c.format||(c.format="openai"),b)for(let a of j)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(l[a.id].transports=a.transports)),void 0!==a.models&&(m[a.alias||a.id]=a.models.map(h)),a.oauth&&(n[a.id]=a.oauth);let b={};for(let c of k)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(o[a.id]=b)}function p(a,b){let c=m[a];if(!c)return b;let d=c.find(a=>a.id===b);return d?.name||b}Object.assign(m,(0,i.pp)()),l["xiaomi-tokenplan"]?.regions,l["xiaomi-tokenplan"]?.defaultRegion;let q=Object.fromEntries(d.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),r=Object.fromEntries(Object.keys(l).map(a=>[a,q[a]||a]));function s(a){return m[r[a]||a]||[]}},81329:(a,b,c)=>{"use strict";c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(45699);Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=(()=>{let a=new Set,b=[];for(let[c,e]of Object.entries(d.PROVIDER_MODELS))for(let d of e){let e=`${c}/${d.id}`;a.has(e)||(a.add(e),b.push({provider:c,model:d.id,name:d.name}))}return b})(),f=(a,b=null)=>a?.kind||a?.type||b},83700:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},85117:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call RuntimeI18nProvider() from the server but RuntimeI18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/i18n/RuntimeI18nProvider.js","RuntimeI18nProvider")},87618:(a,b,c)=>{"use strict";c.d(b,{r:()=>f});var d=c(7803),e=c(12557);async function f(){let a,{getProviderConnections:b,updateProviderConnection:f}=await Promise.resolve().then(c.bind(c,89718));try{a=await b({provider:"kimchi",isActive:!1})}catch(a){return d.warn("AUTH",`Kimchi quota reactivation: failed to query connections: ${a.message}`),0}if(!a||0===a.length)return 0;let g=Date.now(),h=0;for(let b of a){if("quota_exhausted"!==b.testStatus||!b.rateLimitedUntil)continue;let a=new Date(b.rateLimitedUntil).getTime();if(!Number.isNaN(a)&&!(a>g))try{await f(b.id,(0,e.zZ)()),h++,d.info("AUTH",`Kimchi quota reactivated: ${b.name||b.id} (cooldown expired ${b.rateLimitedUntil})`)}catch(a){d.warn("AUTH",`Kimchi quota reactivation failed for ${b.name||b.id}: ${a.message}`)}}return h>0&&d.info("AUTH",`Kimchi quota reactivation: ${h} account(s) reactivated`),h}},89886:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ThemeProvider.js","ThemeProvider")},91431:(a,b,c)=>{"use strict";c.d(b,{CP:()=>e,KC:()=>d.KC,Xg:()=>d.Xg,bs:()=>f,u0:()=>d.u0});var d=c(77977);Object.entries(c(92592).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),(()=>{let a=new Set,b=[];for(let[c,e]of Object.entries(d.vq))for(let d of e){let e=`${c}/${d.id}`;a.has(e)||(a.add(e),b.push({provider:c,model:d.id,name:d.name}))}})();let e=(a,b=null)=>a?.kind||a?.type||b,f={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-blue-500"},pdf:{icon:"description",label:"PDF",desc:"Supports PDF input",color:"text-red-500"},audioInput:{icon:"graphic_eq",label:"Audio",desc:"Supports audio input",color:"text-green-500"},videoInput:{icon:"videocam",label:"Video",desc:"Supports video input",color:"text-purple-500"},search:{icon:"travel_explore",label:"Web Search",desc:"Supports web search",color:"text-cyan-500"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-amber-500"}}},92592:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>x,DI:()=>r,fg:()=>n,MA:()=>y,IS:()=>j,nJ:()=>k,rj:()=>p,zN:()=>m,JH:()=>q,s9:()=>l,wb:()=>D,br:()=>o,wG:()=>B,zt:()=>z,o5:()=>C,gb:()=>t,gC:()=>u,Ox:()=>v,U_:()=>w,mq:()=>s,rs:()=>A});var d=c(16850);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","modelsFetcher","mediaPriority","hiddenKinds"],g={toolUse:!0,fileAccess:!0,streaming:!0,multiTurn:!0},h={webCookie:{toolUse:!1,fileAccess:!1,streaming:!0,multiTurn:!0}},i=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.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}:"freeTier"===a.category||"apikey"===a.category?{authModes:["apikey"]}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.comingSoon?{comingSoon:!0}:{},capabilities:function(a){if(a.capabilities&&"object"==typeof a.capabilities)return{...g,...a.capabilities};let b=h[a.category];return b?{...b}:{...g}}(a)}}(a)])),j=i("free"),k=i("freeTier"),l={extended:{options:["auto","on","off"],defaultMode:"auto",defaultBudgetTokens:1e4},effort:{options:["auto","none","low","medium","high"],defaultMode:"auto"}},m=i("oauth"),n=i("apikey"),o=i("webCookie"),p=[{id:"embedding",label:"Embedding",icon:"data_array",endpoint:{method:"POST",path:"/v1/embeddings"}},{id:"image",label:"Text to Image",icon:"brush",endpoint:{method:"POST",path:"/v1/images/generations"}},{id:"imageToText",label:"Image to Text",icon:"image_search",endpoint:{method:"POST",path:"/v1/images/understanding"}},{id:"tts",label:"Text To Speech",icon:"record_voice_over",endpoint:{method:"POST",path:"/v1/audio/speech"}},{id:"stt",label:"Speech To Text",icon:"mic",endpoint:{method:"POST",path:"/v1/audio/transcriptions"}},{id:"webSearch",label:"Web Search",icon:"travel_explore",endpoint:{method:"POST",path:"/v1/search"}},{id:"webFetch",label:"Web Fetch",icon:"language",endpoint:{method:"POST",path:"/v1/web/fetch"}},{id:"video",label:"Video",icon:"movie",endpoint:{method:"POST",path:"/v1/video/generations"}},{id:"music",label:"Music",icon:"music_note",endpoint:{method:"POST",path:"/v1/audio/music"}}],q="openai-compatible-",r="anthropic-compatible-";function s(a){return"string"==typeof a&&a.startsWith(q)}function t(a){return"string"==typeof a&&a.startsWith(r)}function u(a){return"string"==typeof a&&a.startsWith("custom-embedding-")}function v(a){return"string"==typeof a&&a.startsWith("custom-stt-")}function w(a){return"string"==typeof a&&a.startsWith("custom-tts-")}let x={...j,...k,...m,...n,...o},y={oauth:{id:"oauth"},apikey:{id:"apikey"},cookie:{id:"cookie"}};function z(a){for(let b of Object.values(x))if(b.alias===a||b.id===a)return b;return null}function A(a){let b=z(a);return b?.id||a}function B(a){let b=x[a];return b?.alias||a}function C(a){return Object.values(x).filter(b=>!(!(b.serviceKinds??["llm"]).includes(a)||b.hidden||b.hiddenKinds?.includes(a))).sort((a,b)=>(a.priority??a.mediaPriority??999)-(b.priority??b.mediaPriority??999))}Object.values(x).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(x).reduce((a,b)=>(a[b.id]=b.alias,a),{});let D=d.A.filter(a=>a.features?.usage).map(a=>a.id);d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},92847:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,20349,23)),Promise.resolve().then(c.t.bind(c,31935,23)),Promise.resolve().then(c.t.bind(c,16764,23)),Promise.resolve().then(c.t.bind(c,33071,23)),Promise.resolve().then(c.bind(c,85117)),Promise.resolve().then(c.bind(c,89886))},94123:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>z});var e=c(21820),f=c.n(e),g=c(1932),h=c(33873),i=c(29021),j=c(89718),k=c(66457),l=c(96182),m=c(1133),n=c(49573),o=c(76476),p=c(87618),q=c(3256),r=a([m]);if(m=(r.then?(await r)():r)[0],!process.env.MITM_SERVER_PATH)try{let a=(0,g.fileURLToPath)("file:///home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/services/initializeApp.js"),b=(0,h.dirname)((0,h.dirname)(a)),c=(0,h.join)(b,"mitm","server.js");(0,i.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,l.initDbHooks)(j.mt,j.Xx)}catch{}process.setMaxListeners(40),global.__erGlobalHandlersRegistered||(global.__erGlobalHandlersRegistered=!0,process.on("unhandledRejection",a=>{console.error("[FATAL] Unhandled promise rejection:",a)}),process.on("uncaughtException",a=>{console.error("[FATAL] Uncaught exception:",a?.stack||a)}));let x=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1,kimchiReactivationStarted:!1};async function s(){try{await (0,j.bI)();let a=await (0,j.mt)();if(a.tunnelEnabled&&!x.tunnelAutoResumed&&(x.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),u("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),a.tailscaleEnabled&&!x.tailscaleAutoResumed&&(x.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),v("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),!x.signalHandlersRegistered){let a=()=>{try{(0,l.removeAllDNSEntriesSync)()}catch{}(0,k.ss)(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),process.on("exit",()=>{try{(0,l.removeAllDNSEntriesSync)()}catch{}}),x.signalHandlersRegistered=!0}(0,k.Al)().catch(()=>{}),(0,o.v)().catch(()=>{}),(0,k.X$)(()=>{u("unexpected-exit").catch(()=>{})}),!x.watchdogInterval&&(x.watchdogInterval=setInterval(()=>{u("watchdog").catch(()=>{}),v("watchdog").catch(()=>{})},k.DA),x.watchdogInterval.unref&&x.watchdogInterval.unref()),!x.networkMonitorInterval&&(x.lastNetworkFingerprint=w(),x.lastWatchdogTick=Date.now(),x.lastOnline=null,x.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-x.lastWatchdogTick;x.lastWatchdogTick=a;let c=w(),d=c!==x.lastNetworkFingerprint,e=b>6*k.rI;d&&(x.lastNetworkFingerprint=c);let f=await (0,k.u7)(),g=!1===x.lastOnline;if(x.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,k.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";u(h).catch(()=>{}),v(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},k.rI),x.networkMonitorInterval.unref&&x.networkMonitorInterval.unref()),t(),(0,m.O)(),(0,n.initAlertService)(),function(){if(x.kimchiReactivationStarted)return;x.kimchiReactivationStarted=!0;let a=()=>{(0,p.r)().catch(a=>{console.log("[InitApp] Kimchi quota reactivation sweep failed:",a?.message||a)})};a();let b=setInterval(a,18e5);b.unref&&b.unref()}(),(0,q.R)()}catch(a){console.error("[InitApp] Error:",a)}}async function t(){if(!x.mitmStartInProgress){x.mitmStartInProgress=!0;try{if(!(await (0,j.mt)()).mitmEnabled||(await (0,l.getMitmStatus)()).running)return;let a=await (0,l.loadEncryptedPassword)();if(!a&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let b=(await (0,j.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,l.startMitm)(b?.key||"sk_extremerouter",a),console.log("[InitApp] MITM auto-started");try{await (0,l.restoreToolDNS)(a),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{x.mitmStartInProgress=!1}}}let y=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function u(a){let b=(0,k.Qn)();if(!(await (0,j.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=y.test(a);if(!(0,k.nN)()){if(!c&&Date.now()-b.lastRestartAt<k.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,k.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,k.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function v(a){let b=(0,k.oN)();if(!(await (0,j.mt)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,k.hp)():(0,k.Kp)()))return;if((0,k.si)()&&b.activeLocalPort){try{await (0,k.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=y.test(a);if(!c&&Date.now()-b.lastRestartAt<k.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,k.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,k.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function w(){let a=f().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!k.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}let z=s;d()}catch(a){d(a)}})},99258:(a,b,c)=>{"use strict";c.d(b,{FE:()=>m,Tl:()=>i,kk:()=>j,oQ:()=>k,wn:()=>n});var d=c(51126);let e={},f=d.Xn,g=[];async function h(a){if("en"===a){e={};return}try{let b=await fetch(`/i18n/literals/${a}.json`);e=await b.json()}catch(a){console.error("Failed to load translations:",a),e={}}}function i(a){if(!a||"string"!=typeof a)return a;let b=a.trim();return b&&"en"!==f&&e[b]||a}function j(){return f}function k(a){return g.push(a),()=>{g=g.filter(b=>b!==a)}}function l(a){if(!a.nodeValue||!a.nodeValue.trim())return;let b=a.parentElement;if(!b)return;let c=b;for(;c;){if(c.hasAttribute&&c.hasAttribute("data-i18n-skip"))return;c=c.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(b.tagName?.toLowerCase()))return;a._originalText||(a._originalText=a.nodeValue);let d=i(a._originalText);d!==a.nodeValue&&(a.nodeValue=d)}async function m(){}async function n(){f=function(){if("u"<typeof document)return d.Xn;let a=document.cookie.split(";").find(a=>a.trim().startsWith(`${d.CL}=`)),b=a?decodeURIComponent(a.split("=")[1]):d.Xn;return(0,d.QC)(b)}(),await h(f),g.forEach(a=>a()),function(a){let b;if(!a)return;let c=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1),d=[];for(;b=c.nextNode();)d.push(b);d.forEach(l)}(document.body)}}};
|
|
1
|
+
exports.id=8802,exports.ids=[8802,9573],exports.modules={1133:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{O:()=>x,g:()=>w});var e=c(48895),f=c(89718),g=c(69788),h=c(6551),i=c(55330),j=c(74129),k=c(39609),l=c(39326),m=c(18271),n=c(30869),o=a([e,i,m]);[e,i,m]=o.then?(await o)():o;let y=n.oc,z={claude:{getUsage:g.g,sendPing:s},codex:{getUsage:h.Tl,sendPing:u}},A=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{}};function p(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function q(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function r(a){if(!a||!0===a.unlimited)return!1;let b=q(a.remaining);if(null!==b)return b<=0;let c=q(a.used),d=q(a.total);return null!==d&&d>0&&null!==c&&c>=d}async function s(a,b,c,d){return(await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...j.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c)).ok}async function t(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function u(a,b,c,d){var e;let f=d.getExecutor("codex"),{response:g}=await f.execute({model:b.pingModel,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,providerSpecificData:a.providerSpecificData},proxyOptions:c,log:console,body:{model:b.pingModel,input:(e=b.pingText,[{type:"message",role:"user",content:[{type:"input_text",text:e}]}]),instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await t(g),!0}async function v(a,b,c,d,e,f=A){var g,h,i;let j=(g=a.id,`${b}:${g}`),k=f.resetCache[j];if(!c.pingWhenResetAtSlides&&k&&Date.now()<new Date(k).getTime()-y.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<y.failureCooldownMs}(f,j))return;let l=(h=await e.resolveConnectionProxyConfig(a.providerSpecificData),{connectionProxyEnabled:!0===h.connectionProxyEnabled,connectionProxyUrl:h.connectionProxyUrl||"",connectionNoProxy:h.connectionNoProxy||"",vercelRelayUrl:h.vercelRelayUrl||"",strictProxy:!1}),m=a;try{m=(await e.refreshAndUpdateCredentials(m,!1,l)).connection}catch(c){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let n=await d.getUsage(m.accessToken,l),o=n?.quotas||{},q=o?.[c.quotaKey],s=q?.resetAt;if(!s||(f.resetCache[j]=s,c.skipWhenBlockingQuotaExhausted&&(i=c.quotaKey,Object.entries(o||{}).some(([a,b])=>a!==i&&!String(a).toLowerCase().includes("session")&&r(b)))||r(q)))return;let t=Date.now(),u=p(s),w=m.lastPingedResetKey||p(m.lastPingedResetAt);if(!(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-y.pingLeadMs}(c,k,s,t)||function(a,b,c=Date.now()){if(!b)return!1;let d=new Date(a.lastPingAt).getTime();return Number.isFinite(d)&&c-d<b}(m,c.minPingIntervalMs,t))&&w!==u){if(!await d.sendPing(m,c,l,e)){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: ping failed (reset ${s})`);return}delete f.failureCache[j],await e.updateProviderConnection(m.id,{lastPingedResetAt:s,lastPingedResetKey:u,lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),console.log(`[AutoPing] ${b}:${m.id}: ping sent (reset ${s})`)}}async function w(a={getSettings:f.mt,getProviderConnections:f.getProviderConnections,updateProviderConnection:f.updateProviderConnection,resolveConnectionProxyConfig:l.B,refreshAndUpdateCredentials:m.refreshAndUpdateCredentials,proxyAwareFetch:k.proxyAwareFetch,getExecutor:i.SB},b=A){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(y.providers)){let g=z[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await v(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function x(){!A.interval&&(console.log("[AutoPing] scheduler started"),w().catch(()=>{}),A.interval=setInterval(()=>{w().catch(()=>{})},y.tickIntervalMs),A.interval.unref&&A.interval.unref())}d()}catch(a){d(a)}})},3256:(a,b,c)=>{"use strict";c.d(b,{R:()=>n});var d=c(7803),e=c(89718),f=c(67828),g=c(8521);let h="1"===process.env.DISABLE_BACKGROUND_TOKEN_REFRESH,i=new Set(["antigravity","gemini-cli"]),j=Number(process.env.BG_REFRESH_GOOGLE_DELAY_MS)||12e3,k=!1,l=!1;async function m(){if(!l){l=!0;try{let a=(await (0,e.getProviderConnections)({isActive:!0})).filter(a=>"oauth"===a.authType),b=0,c=!1;for(let e of a){let a=e.provider,h=e.expiresAt?new Date(e.expiresAt).getTime():null;if(null!==h&&h-Date.now()<Math.max((0,g.Og)(a),18e5)){if(!e.refreshToken){d.debug("REFRESH",`${a}:${e.id?.slice(0,8)} due but no refreshToken — skip`);continue}if(b>0&&c&&i.has(a)){let a=Math.floor(5e3*Math.random());await new Promise(b=>setTimeout(b,j+a))}try{await (0,f.eU)(a,e,{force:!0}),b++,c=i.has(a)}catch(b){d.warn("REFRESH",`${a}:${e.id?.slice(0,8)} background refresh failed`,{error:b?.message??b}),c=!1}}}b>0&&d.info("REFRESH",`Background refresh done: ${b}/${a.length} connections refreshed`)}catch(a){d.warn("REFRESH","Background refresh sweep failed",{error:a?.message??a})}finally{l=!1}}}function n(){if(h)return void d.info("REFRESH","Background token refresh disabled via DISABLE_BACKGROUND_TOKEN_REFRESH");if(k)return;k=!0;let a=setTimeout(()=>{m().catch(()=>{})},1e4);a.unref&&a.unref();let b=setInterval(()=>{m().catch(()=>{})},3e5);b.unref&&b.unref(),d.info("REFRESH","Background token refresh started (boot +10s, every 5min)")}},5211:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>f});var d=c(48249);c(67484);var e=c(19099);function f({children:a}){return(0,e.usePathname)(),(0,d.jsx)(d.Fragment,{children:a})}c(99258)},10680:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},11352:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},12020:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>d.Q2,fg:()=>d.fg,vQ:()=>e,MA:()=>d.MA,UY:()=>i,Nu:()=>f,zN:()=>d.zN,B2:()=>h,h0:()=>g});var d=c(92592);c(91431);let e={name:"ExtremeRouter",description:"AI Gateway Control Plane",version:"0.8.8"},f={changelogUrl:"https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/main/CHANGELOG.md",donateUrl:"https://github.com/sponsors/rsalmn"},g={npmPackageName:"@rsalmn/extremerouter",installCmd:"npm i -g @rsalmn/extremerouter",installCmdLatest:"npm i -g @rsalmn/extremerouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={storageKey:"theme",defaultTheme:"system"},i={maxLines:200,pollIntervalMs:1e3}},13033:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(31417),e=c(300),f=c(12020);let g=(0,d.v)((0,e.Zr)((a,b)=>({theme:f.B2.defaultTheme,setTheme:b=>{a({theme:b})},toggleTheme:()=>{let c=b().theme,d="dark"===c||"glass"===c?"light":"dark";a({theme:d})},initTheme:()=>{b().theme}}),{name:f.B2.storageKey}))},14596:(a,b,c)=>{"use strict";c.a(a,async(a,b)=>{try{var d=c(94123),e=a([d]);d=(e.then?(await e)():e)[0],"phase-production-build"===process.env.NEXT_PHASE||"phase-export"===process.env.NEXT_PHASE||"phase-static"===process.env.NEXT_PHASE||global.__appBootstrapped||(global.__appBootstrapped=!0,(0,d.A)().catch(a=>console.error("[Bootstrap] init failed:",a.message))),b()}catch(a){b(a)}})},19308:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(48249);c(67484);var e=c(13033);function f({children:a}){let{initTheme:b}=(0,e.A)();return(0,d.jsx)(d.Fragment,{children:a})}},24467:(a,b,c)=>{"use strict";c.d(b,{DS:()=>r,GK:()=>m,MX:()=>l,RF:()=>s,X6:()=>f,Yh:()=>u,aS:()=>p,gI:()=>h,hy:()=>i,i5:()=>o,j8:()=>n,qK:()=>t});var d=c(78474);global._circuitBreakers||(global._circuitBreakers=new Map,global._breakerEmitter=new d.EventEmitter,global._breakerEmitter.setMaxListeners(50));let e=global._circuitBreakers,f=global._breakerEmitter,g={enabled:!0,failureThreshold:5,windowMs:6e4,cooldownMs:3e4,halfOpenMaxCalls:1};function h(a,b){let c=b&&"object"==typeof b?b:{};if(!c.connectionProxyEnabled)return a;let d=c.connectionProxyPoolId||"",e=c.connectionProxyUrl||"";return`${a}:proxy:${d||e}`}function i(a){let b=Number(a)||0;return 0===b||429===b||b>=500}function j(a){let b=e.get(a);return b||(b={key:a,state:"closed",failures:[],openedAt:null,cooldownEndsAt:null,halfOpenCalls:0,lastActivityAt:Date.now()},e.set(a,b)),b}function k(a){let b=e.get(a);b&&f.emit("breaker:update",{provider:b.key,state:b.state,failures:b.failures.length,openedAt:b.openedAt,cooldownEndsAt:b.cooldownEndsAt})}function l(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let e=c||a,f=j(e);f.lastActivityAt=Date.now();let h=Date.now();if("open"===f.state)if(!f.cooldownEndsAt||!(h>=f.cooldownEndsAt))return!0;else f.state="halfOpen",f.halfOpenCalls=0,k(e);if("halfOpen"===f.state){if(f.halfOpenCalls>=d.halfOpenMaxCalls)return!0;f.halfOpenCalls++}return!1}function m(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let f=e.get(c||a);if(!f)return!1;let h=Date.now();return"open"===f.state?!f.cooldownEndsAt||!(h>=f.cooldownEndsAt):"halfOpen"===f.state&&f.halfOpenCalls>=d.halfOpenMaxCalls}function n(a,b={},c=null){if(!({...g,...b?.circuitBreaker||{}}).enabled)return;let d=c||a,e=j(d);e.lastActivityAt=Date.now(),("closed"!==e.state||e.failures.length>0)&&(e.state="closed",e.failures=[],e.openedAt=null,e.cooldownEndsAt=null,e.halfOpenCalls=0,k(d))}function o(a,b,c={},d=null){let e={...g,...c?.circuitBreaker||{}};if(!e.enabled)return;let f=d||a,h=j(f);h.lastActivityAt=Date.now();let i=Date.now();if("halfOpen"===h.state){h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,h.halfOpenCalls=0,h.failures=[{ts:i,status:b}],k(f);return}if("closed"===h.state){h.failures.push({ts:i,status:b});let a=i-e.windowMs;h.failures=h.failures.filter(b=>b.ts>=a),h.failures.length>=e.failureThreshold&&(h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,k(f))}}function p(a,b=null){let c=e.get(b||a);!c||(c.lastActivityAt=Date.now(),"halfOpen"===c.state&&c.halfOpenCalls>0&&c.halfOpenCalls--)}let q=0;function r(){let a=Date.now();!function(a){if(a-q<6e4)return;q=a;let b=a-6e5;for(let[a,c]of e)"closed"===c.state&&(c.lastActivityAt||0)<b&&e.delete(a)}(a);let b=[];for(let c of e.values()){let d=c.state,e=null;"open"===c.state&&c.cooldownEndsAt&&0===(e=Math.max(0,c.cooldownEndsAt-a))&&(d="halfOpen"),b.push({provider:c.key,state:d,failures:c.failures.length,openedAt:c.openedAt,cooldownEndsAt:c.cooldownEndsAt,cooldownRemainingMs:e})}return b}function s(a,b=null){let c=e.get(b||a);return c&&"open"===c.state&&c.cooldownEndsAt?c.cooldownEndsAt:null}function t(){return 0!==e.size&&(e.clear(),!0)}function u(a,b=null){if(b){let a=e.get(b);return!!a&&(a.state="closed",a.failures=[],a.openedAt=null,a.cooldownEndsAt=null,a.halfOpenCalls=0,k(b),!0)}let c=!1;for(let[b,d]of e)(b===a||b.startsWith(`${a}:`))&&(d.state="closed",d.failures=[],d.openedAt=null,d.cooldownEndsAt=null,d.halfOpenCalls=0,k(b),c=!0);return c}},25334:(a,b,c)=>{"use strict";function d(a){return null==a?"":String(a).trim()}c.d(b,{k:()=>f});let e=["http:","https:","socks5:","socks4:","socks5h:","socks4a:"];function f({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let g=d(b),h=d(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let i="1"===process.env.NINE_ROUTER_PROXY_MANAGED,j=!1;if(i&&(g||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),h||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),g){let a=function(a){if(!a||/[\n\r`$]/.test(a))return null;try{let b=new URL(a);if(!e.includes(b.protocol))return null;return b.href}catch{return null}}(g);a&&(process.env.HTTP_PROXY=a,process.env.HTTPS_PROXY=a,process.env.ALL_PROXY=a,process.env.NINE_ROUTER_PROXY_URL=a,j=!0)}h&&(process.env.NO_PROXY=h,process.env.NINE_ROUTER_NO_PROXY=h,j=!0),j?process.env.NINE_ROUTER_PROXY_MANAGED="1":i&&delete process.env.NINE_ROUTER_PROXY_MANAGED}},26892:(a,b,c)=>{"use strict";c.d(b,{KM:()=>n,fO:()=>m,up:()=>o,wJ:()=>l});var d=c(94735),e=c(30869);let f=["log","info","warn","error","debug"];global._consoleLogBufferState||(global._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new d.EventEmitter},global._consoleLogBufferState.emitter.setMaxListeners(50));let g=global._consoleLogBufferState;function h(){if(g.flushTimer=null,!g.pendingLines.length)return;let a=g.pendingLines.splice(0,g.pendingLines.length);g.emitter.emit("lines",a)}g.emitter||(g.emitter=new d.EventEmitter,g.emitter.setMaxListeners(50)),g.pendingLines||(g.pendingLines=[]),g.flushTimer||(g.flushTimer=null);let i=/\x1b\[[0-9;]*m/g;function j(a){return a.replace(i,"")}function k(a){if("string"==typeof a)return j(a);if(a instanceof Error)return j(a.stack||a.message||String(a));try{return j(JSON.stringify(a))}catch{return j(String(a))}}function l(){if(!g.patched){for(let a of f)g.originals[a]=console[a],console[a]=(...b)=>{!function(a){g.logs.push(a);let b=e.UY.maxLines;g.logs.length>b&&(g.logs=g.logs.slice(-b)),g.pendingLines.push(a),g.pendingLines.length>=50?(g.flushTimer&&(clearTimeout(g.flushTimer),g.flushTimer=null),h()):g.flushTimer||(g.flushTimer=setTimeout(h,100),g.flushTimer?.unref?.())}(b.map(k).join(" ")),g.originals[a](...b)};g.patched=!0}}function m(){return g.logs}function n(){g.logs=[],g.emitter.emit("clear")}function o(){return g.emitter}},30869:(a,b,c)=>{"use strict";c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@rsalmn/extremerouter",installCmd:"npm i -g @rsalmn/extremerouter",installCmdLatest:"npm i -g @rsalmn/extremerouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},34973:(a,b,c)=>{"use strict";c.d(b,{I:()=>d});let d=[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},36436:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},36633:(a,b,c)=>{"use strict";c.d(b,{A:()=>M});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"};process.version,function(){switch((0,d.arch)()){case"x64":case"arm64":case"ia32":return;default:return(0,d.arch)()}}(),function(){switch((0,d.platform)()){case"darwin":case"win32":case"linux":case"freebsd":return;default:return(0,d.platform)()}}();let f=(a,b)=>"u">typeof process&&process.env?.[a]||b,g={clientId:f("ANTIGRAVITY_OAUTH_CLIENT_ID","1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com"),clientSecret:f("ANTIGRAVITY_OAUTH_CLIENT_SECRET","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")},h={clientId:f("GEMINI_OAUTH_CLIENT_ID","681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"),clientSecret:f("GEMINI_OAUTH_CLIENT_SECRET","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")},i={clientId:f("IFLOW_OAUTH_CLIENT_ID","10009311001"),clientSecret:f("IFLOW_OAUTH_CLIENT_SECRET","4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW")},j={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"],transport:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":"antigravity/1.107.0 darwin/arm64"},retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:g.clientId,clientSecret:g.clientSecret},models:[{id:"gemini-3.8-flash-high",name:"Gemini 3.8 Flash (High)",upstreamModelId:"gemini-3.8-flash-tiered"},{id:"gemini-3.8-flash-medium",name:"Gemini 3.8 Flash (Medium)",upstreamModelId:"gemini-3.8-flash-tiered"},{id:"gemini-3.8-flash-low",name:"Gemini 3.8 Flash (Low)",upstreamModelId:"gemini-3.8-flash-tiered"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",upstreamModelId:"gemini-3.8-flash-tiered"},{id:"gemini-3.7-flash-high",name:"Gemini 3.7 Flash (High)",upstreamModelId:"gemini-3.7-flash-tiered"},{id:"gemini-3.7-flash-medium",name:"Gemini 3.7 Flash (Medium)",upstreamModelId:"gemini-3.7-flash-tiered"},{id:"gemini-3.7-flash-low",name:"Gemini 3.7 Flash (Low)",upstreamModelId:"gemini-3.7-flash-tiered"},{id:"gemini-3.6-flash-high",name:"Gemini 3.6 Flash (High)",upstreamModelId:"gemini-3.6-flash-tiered"},{id:"gemini-3.6-flash-medium",name:"Gemini 3.6 Flash (Medium)",upstreamModelId:"gemini-3.6-flash-tiered"},{id:"gemini-3.6-flash-low",name:"Gemini 3.6 Flash (Low)",upstreamModelId:"gemini-3.6-flash-tiered"},{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-pro-agent",name:"Gemini 3.1 Pro (High)"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]}],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",refreshLeadMs:3e5},features:{usage:!0}},k={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:"Command Code is a multi-model AI router with OpenAI and Anthropic API support. Create an API key at commandcode.ai/studio, then paste it here. Supports Claude, GPT, DeepSeek, GLM, Kimi, and more.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.commandcode.ai/provider/v1/chat/completions",format:"openai",validateUrl:"https://api.commandcode.ai/provider/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://api.commandcode.ai/provider/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.commandcode.ai/provider/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://api.commandcode.ai/provider/v1/models",type:"openai"}},l={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",thinkingConfig:{options:["auto","low","high","max"],defaultMode:"auto"},transport:{baseUrl:"https://api.deepseek.com/chat/completions",validateUrl:"https://api.deepseek.com/models",reasoningInject:{scope:"all"}},transports:[{format:"openai",baseUrl:"https://api.deepseek.com/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.deepseek.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}]},m={id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",cliVersion:"0.34.0",apiClient:"google-genai-sdk/1.41.0 gl-node/v22.19.0",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:h.clientId,clientSecret:h.clientSecret},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}},n={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:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:h.clientId,clientSecret:h.clientSecret,auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{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-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},o={id:"glm",priority:140,alias:"glm",display:{name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-high",name:"GLM 5.3 High",upstreamModelId:"glm-5.3"},{id:"glm-5.3-low",name:"GLM 5.3 Low",upstreamModelId:"glm-5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},p={id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:i.clientId,clientSecret:i.clientSecret,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}},q={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:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-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}},r={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:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],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"],searchViaChat:{defaultModel:"kimi-k2.5",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},s={id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},t={id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},u={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:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"}]},v={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:{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:[{format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.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"}]},w="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",x={id:"qwen-cloud",priority:164,alias:"qwc",aliases:["qwen-cloud"],uiAlias:"qwc",display:{name:"Qwen Cloud",icon:"cloud",color:"#7A5EF4",textIcon:"QC",website:"https://dashscope.console.aliyun.com",notice:{signupUrl:"https://dashscope.console.aliyun.com",apiKeyUrl:"https://dashscope.console.aliyun.com/apiKey",text:"Alibaba DashScope international API. Create an API key at dashscope.console.aliyun.com, then paste it here. Supports OpenAI, Anthropic, and Responses API formats — works with any client (Claude Code, Cline, OpenAI, etc.). Hosts Qwen, GLM, DeepSeek, and Kimi models."}},category:"apikey",authType:"apikey",transport:{baseUrl:`${w}/chat/completions`,format:"openai",responsesUrl:`${w}/responses`,validateUrl:`${w}/models`,auth:{combined:!0,header:"Authorization",scheme:"bearer"},quirks:{dropStreamOptions:!0}},transports:[{format:"openai",baseUrl:`${w}/chat/completions`,responsesUrl:`${w}/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"openai-responses",baseUrl:`${w}/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://dashscope-intl.aliyuncs.com/apps/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-max",name:"Qwen3.7 Max",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-max-2026-06-08",name:"Qwen3.7 Max (2026-06-08)",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-plus",name:"Qwen3.7 Plus",contextWindow:1e6,maxOutput:65536},{id:"qwen3.6-plus",name:"Qwen3.6 Plus",contextWindow:1e6,maxOutput:65536},{id:"qwen3.6-flash",name:"Qwen3.6 Flash",contextWindow:1e6,maxOutput:32768},{id:"qwen3.6-27b",name:"Qwen3.6 27B",contextWindow:1e6,maxOutput:32768},{id:"qwen3.6-35b-a3b",name:"Qwen3.6 35B A3B",contextWindow:1e6,maxOutput:32768},{id:"qwen3.5-plus-2026-04-20",name:"Qwen3.5 Plus (2026-04-20)",contextWindow:1e6,maxOutput:32768},{id:"qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B",contextWindow:1e6,maxOutput:32768},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B",contextWindow:1e6,maxOutput:32768},{id:"glm-5.2",name:"GLM 5.2",contextWindow:1e6,maxOutput:16384},{id:"glm-5.2-fast-preview",name:"GLM 5.2 Fast Preview",contextWindow:1e6,maxOutput:16384},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:163840,maxOutput:32768},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:163840,maxOutput:32768},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindow:1e6,maxOutput:65536}],passthroughModels:!0,modelsFetcher:{url:`${w}/models`,type:"openai"},reasoningInject:{scope:"all"},thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"}},y={id:"hcnsec",priority:330,alias:"hcnsec",aliases:["hc"],uiAlias:"hc",display:{name:"Huancheng Public API",icon:"security",color:"#0EA5E9",textIcon:"HC",website:"https://api.hcnsec.cn",notice:{signupUrl:"https://api.hcnsec.cn/sign-up?aff=ZKgv",apiKeyUrl:"https://api.hcnsec.cn/sign-up?aff=ZKgv",text:"Xinjiang Huancheng Cybersecurity public LLM API platform. Free credits with daily check-ins. Create an API key at api.hcnsec.cn, then paste it here. Supports both OpenAI and Anthropic API formats — works with any client."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://api.hcnsec.cn/v1/chat/completions",format:"openai",retry:{429:2},thinkingFormat:"openai",validateUrl:"https://api.hcnsec.cn/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://api.hcnsec.cn/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.hcnsec.cn/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"deepseek-v3",name:"DeepSeek V3"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"qwq-32b",name:"QwQ 32B"}],passthroughModels:!0,modelsFetcher:{url:"https://api.hcnsec.cn/v1/models",type:"hcnsec"}},z={id:"inxorastudio",priority:340,alias:"inxora",aliases:[],uiAlias:"inxora",display:{name:"InxoraStudio Labs",icon:"science",color:"#8B5CF6",textIcon:"IX",website:"https://labs.inxorastudio.com",notice:{signupUrl:"https://labs.inxorastudio.com",apiKeyUrl:"https://labs.inxorastudio.com/dashboard",text:"InxoraStudio Labs is a multi-model AI gateway hosting Claude, GLM, DeepSeek, and more behind a single API key. Create an API key at labs.inxorastudio.com/dashboard, then paste it here. Supports both OpenAI and Anthropic API formats."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://labs.inxorastudio.com/v1/chat/completions",format:"openai",validateUrl:"https://labs.inxorastudio.com/api/ai/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://labs.inxorastudio.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://labs.inxorastudio.com/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://labs.inxorastudio.com/api/ai/models",type:"inxora"}},A={id:"bynara",priority:350,alias:"bynara",aliases:["by"],uiAlias:"by",display:{name:"Bynara",icon:"hub",color:"#6366F1",textIcon:"BY",website:"https://router.bynara.id",notice:{signupUrl:"https://router.bynara.id/register?ref=884C9YJM",apiKeyUrl:"https://router.bynara.id/register?ref=884C9YJM",text:"Bynara is a multi-model AI router with OpenAI, Anthropic, and Responses API support. Create an API key at router.bynara.id, then paste it here. Supports LLM chat, image generation, and image editing."}},category:"free",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://router.bynara.id/v1/chat/completions",format:"openai",thinkingFormat:"openai",responsesUrl:"https://router.bynara.id/v1/responses",validateUrl:"https://router.bynara.id/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://router.bynara.id/v1/chat/completions",responsesUrl:"https://router.bynara.id/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://router.bynara.id/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"agnes-video-v2.0",name:"Agnes Video 2.0",kind:"video",params:["mode","duration","ratio","resolution"]}],passthroughModels:!0,modelsFetcher:{url:"https://router.bynara.id/v1/models",type:"bynara"},serviceKinds:["llm","image","video"],imageConfig:{baseUrl:"https://api-images.bynara.id/v1/images/generations",editUrl:"https://api-images.bynara.id/v1/images/edits",bodyFields:["model","prompt","n","size","response_format"]},videoConfig:{baseUrl:"https://router.bynara.id/v1/videos",bodyFields:["model","mode","prompt","negative_prompt","resolution","ratio","duration","seed","watermark"]}},B={id:"infron",priority:355,alias:"infron",aliases:["ifr"],uiAlias:"ifr",display:{name:"Infron AI",icon:"hub",color:"#06B6D4",textIcon:"IF",website:"https://onerouter.pro",notice:{signupUrl:"https://onerouter.pro",apiKeyUrl:"https://onerouter.pro",text:"Infron AI is a multi-model AI router with OpenAI and Anthropic API support. 457+ models including Claude, GPT, Gemini, DeepSeek, Kimi, and more. Create an API key at onerouter.pro, then paste it here."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://llm.onerouter.pro/v1/chat/completions",format:"openai",validateUrl:"https://llm.onerouter.pro/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{balanceUrl:"https://api.onerouter.pro/v1/balance"}},transports:[{format:"openai",baseUrl:"https://llm.onerouter.pro/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://llm.onerouter.pro/v1/messages",headers:{...e},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://llm.onerouter.pro/v1/models",type:"openai"},features:{usage:!0,usageApikey:!0}},C={id:"agentrouter",priority:360,alias:"agentrouter",aliases:["ar"],uiAlias:"ar",display:{name:"AgentRouter",icon:"hub",color:"#F97316",textIcon:"AR",website:"https://agentrouter.org",notice:{signupUrl:"https://agentrouter.org",apiKeyUrl:"https://agentrouter.org",text:"AgentRouter is a multi-model AI router with OpenAI and Anthropic API support. Create an API key at agentrouter.org, then paste it here. Models: GLM 5.2, GPT 5.5, Claude Opus 4.6/4.7/4.8."}},category:"freeTier",hasFree:!0,authType:"apikey",transport:{baseUrl:"https://agentrouter.org/v1/chat/completions",format:"openai",validateUrl:"https://agentrouter.org/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:"https://agentrouter.org/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://agentrouter.org/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.2",name:"GLM 5.2"},{id:"gpt-5.5",name:"GPT 5.5"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"}],passthroughModels:!0,modelsFetcher:{url:"https://agentrouter.org/api/pricing",type:"agentrouter"}},D="https://public-api.wordpress.com/wpcom/v2/ai-api-proxy",E={id:"wp-studio",priority:57,alias:"wp-studio",aliases:["wps","wpstudio"],uiAlias:"wps",display:{name:"WordPress Studio Code",icon:"code",color:"#3499CD",textIcon:"WP",website:"https://developer.wordpress.com/studio/",notice:{signupUrl:"https://developer.wordpress.com/studio/",text:"WordPress Studio Code provides access to Claude Sonnet 5, Opus 4.8, and GPT-5.6 Sol via the WordPress.com AI proxy. Install Studio Code, log in with your WordPress.com account, then import your credentials here."}},category:"oauth",authType:"oauth",transport:{baseUrl:`${D}/v1/messages`,format:"claude",headers:{"X-WPCOM-AI-Feature":"studio-assistant-anthropic"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"claude",baseUrl:`${D}/v1/messages`,headers:{"X-WPCOM-AI-Feature":"studio-assistant-anthropic"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"openai",baseUrl:`${D}/v1/chat/completions`,headers:{"X-WPCOM-AI-Feature":"studio-assistant"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindow:2e5},{id:"claude-opus-4-8",name:"Claude Opus 4.8",contextWindow:2e5},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:128e3}],passthroughModels:!0,oauth:{apiEndpoint:D,refreshLeadMs:864e5}},F="https://effulgent-pika-7b150e.netlify.app",G={id:"qwen2api",priority:60,alias:"extreme-exclusive",aliases:["qwen2api","qwen-proxy"],uiAlias:"extreme-exclusive",display:{name:"ExtremeRouter (Exclusive)",icon:"diamond",color:"#FF6B35",textIcon:"EX",website:"https://github.com/smanx/qwen2api",notice:{signupUrl:"https://github.com/smanx/qwen2api",text:"Exclusive ExtremeRouter provider — Qwen models (3.7/3.8) via OpenAI-compatible proxy. No API key required. Dual endpoint with automatic fallback."}},category:"free",authType:"apikey",noAuth:!0,transport:{baseUrl:`${F}/v1/chat/completions`,format:"openai",validateUrl:`${F}/v1/models`},transports:[{format:"openai",baseUrl:`${F}/v1/chat/completions`},{format:"openai",baseUrl:"https://qwen2api-n.smanx.xx.kg/v1/chat/completions"}],models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview",contextWindow:1e6},{id:"qwen3.7-max",name:"Qwen3.7 Max",contextWindow:1e6},{id:"qwen3.7-plus",name:"Qwen3.7 Plus",contextWindow:1e6},{id:"qwen3.6-plus",name:"Qwen3.6 Plus",contextWindow:1e6}],passthroughModels:!0,modelsFetcher:{url:`${F}/v1/models`,type:"openai"}},H="https://api.stepfun.ai",I={id:"stepfun",priority:63,alias:"stepfun",aliases:["step","sf"],uiAlias:"stepfun",display:{name:"StepFun",icon:"stairs",color:"#FF6B35",textIcon:"SF",website:"https://platform.stepfun.ai",notice:{signupUrl:"https://platform.stepfun.ai",apiKeyUrl:"https://platform.stepfun.ai",text:"StepFun provides access to the Step-3/3.x model family (multimodal MoE, 256K context, vision, video, reasoning). Create an API key at platform.stepfun.ai, then paste it here. Supports OpenAI, Responses API, and Anthropic formats."}},category:"apikey",authType:"apikey",transport:{baseUrl:`${H}/v1/chat/completions`,format:"openai",responsesUrl:`${H}/v1/responses`,validateUrl:`${H}/v1/models`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},transports:[{format:"openai",baseUrl:`${H}/v1/chat/completions`,responsesUrl:`${H}/v1/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"openai-responses",baseUrl:`${H}/v1/responses`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:`${H}/v1/messages`,auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"step-3.7-flash",name:"Step 3.7 Flash",contextWindow:256e3},{id:"step-3.5-flash",name:"Step 3.5 Flash",contextWindow:256e3},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603",contextWindow:256e3},{id:"step-3",name:"Step 3",contextWindow:65536},{id:"step-image-edit-2",name:"Step Image Edit 2",kind:"image"}],passthroughModels:!0,modelsFetcher:{url:`${H}/v1/models`,type:"openai"},thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},serviceKinds:["llm","image"],imageConfig:{baseUrl:`${H}/v1/images/generations`,editUrl:`${H}/v1/images/edits`,bodyFields:["model","prompt","n","size","response_format","cfg_scale","steps","seed"]}},J={id:"tokenharbor",priority:300,alias:"th",uiAlias:"th",display:{name:"TokenHarbor",icon:"anchor",color:"#0EA5E9",textIcon:"TH",website:"https://tokenharbor.ai",notice:{signupUrl:"https://tokenharbor.ai/login?invite=TH-ATB2-9CP7",apiKeyUrl:"https://tokenharbor.ai/login?invite=TH-ATB2-9CP7",text:"TokenHarbor — AI model gateway with a shared cache. One API key fronts OpenAI- and Anthropic-compatible endpoints (Claude Opus 5, GPT-5.6, Kimi K3, GLM 5.2, Gemini 3.6 Flash…). Create a key at tokenharbor.ai. Per-request cache control: set X-TH-Cache-Control: bypass (skip lookup, still write) or force-refresh (pure passthrough, no write) on the request to override caching."}},category:"apikey",authType:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://tokenharbor.ai/v1/chat/completions",format:"openai",thinkingFormat:"openai",validateUrl:"https://tokenharbor.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://tokenharbor.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://tokenharbor.ai/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"claude-opus-5",name:"Claude Opus 5",targetFormat:"claude"},{id:"claude-fable-5",name:"Claude Fable 5",targetFormat:"claude"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",targetFormat:"claude"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"kimi-k3",name:"Kimi K3"},{id:"qwen3.8-max",name:"Qwen3.8 Max"},{id:"grok-4.5",name:"Grok 4.5"},{id:"glm-5.2",name:"GLM 5.2"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash"}],passthroughModels:!0,pricing:"tokenharbor",thinkingConfig:{options:["auto","none","low","medium","high","xhigh","max"],defaultMode:"auto"}},K={id:"meta-ai",priority:300,alias:"ma",uiAlias:"ma",display:{name:"Meta AI",icon:"smart_toy",textIcon:"MA",website:"https://api.meta.ai",notice:{signupUrl:"https://www.meta.ai",apiKeyUrl:"https://api.meta.ai",text:'Meta AI — Muse Spark via one API key. Two tiers: Standard (private data, $1.25/$4.25 per 1M input/output) and Contributor (data-sharing, $0.10/$0.20; ~60 req/min, ~250K tokens/day cap). Cached input $0.15/1M. Muse Spark is a reasoning model — reasoning_effort minimal/low/medium/high/xhigh at request top level; "none" is not supported (HTTP 400).'}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.meta.ai/v1/chat/completions",format:"openai",thinkingFormat:"openai",validateUrl:"https://api.meta.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://api.meta.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.meta.ai/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"muse-spark-1.2",name:"Muse Spark 1.2"},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 (Contributor)"},{id:"muse-spark-1.1",name:"Muse Spark 1.1"}],passthroughModels:!0,pricing:"meta-ai",thinkingConfig:{options:["auto","minimal","low","medium","high","xhigh"],defaultMode:"auto"}},L=["https://zcode.z.ai/api/v1/zcode-plan/anthropic/v1/messages","https://open.bigmodel.cn/api/anthropic/v1/messages","https://api.z.ai/api/anthropic/v1/messages"],M=[{id:"adapta-web",priority:150,alias:"adapta-web",aliases:["adp-web"],uiAlias:"adp-web",display:{name:"Adapta Web",icon:"hub",color:"#7C3AED",textIcon:"AD",website:"https://agent.adapta.one",notice:{signupUrl:"https://agent.adapta.one",apiKeyUrl:"https://agent.adapta.one",text:"Adapta agentic chat (GPT/Claude/Gemini/Grok/DeepSeek/Llama routed via Adapta's 'ONE' auto-select). Log into agent.adapta.one, then copy the __client cookie value from DevTools → Application → Cookies → clerk.agent.adapta.one. Paste it here (bare JWT or __client=<jwt>). The executor auto-refreshes the short-lived session JWT via Clerk. Streaming is translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your clerk.agent.adapta.one __client cookie value (bare JWT or __client=<jwt>).",transport:{baseUrl:"https://agent.adapta.one/api/chat/stream/v1",format:"adapta-web",authType:"cookie"},models:[{id:"adapta-one",name:"Adapta ONE (Auto)"},{id:"adapta-gpt",name:"GPT-5 (via Adapta)"},{id:"adapta-claude",name:"Claude Sonnet 4.6 (via Adapta)"},{id:"adapta-gemini",name:"Gemini 2.5 Pro (via Adapta)"},{id:"adapta-grok",name:"Grok 4 (via Adapta)"},{id:"adapta-deepseek",name:"DeepSeek R2 (via Adapta)"},{id:"adapta-llama",name:"Llama 4 (via Adapta)"}],passthroughModels:!0},{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:{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},models:[{id:"claude-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"]},j,{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",headers:{}}},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox-web",priority:60,alias:"blackbox-web",aliases:["bb-web"],uiAlias:"bb-web",display:{name:"Blackbox AI (Web)",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://app.blackbox.ai",notice:{signupUrl:"https://app.blackbox.ai",apiKeyUrl:"https://app.blackbox.ai",text:"Blackbox AI free/paid web chat. Open app.blackbox.ai, log in, then copy your next-auth.session-token cookie (DevTools → Application → Cookies). Paste the full cookie string here. Premium models require a paid subscription; the executor probes your subscription status automatically."}},category:"webCookie",authType:"cookie",authHint:"Paste your app.blackbox.ai cookie (full Cookie header or just the next-auth.session-token value).",transport:{baseUrl:"https://app.blackbox.ai/api/chat",format:"blackbox-web",authType:"cookie"},models:[{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"claude-3-opus",name:"Claude 3 Opus"},{id:"claude-3-sonnet",name:"Claude 3 Sonnet"},{id:"gemini-pro",name:"Gemini Pro"}],passthroughModels:!0},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"zai-web",priority:60,alias:"zai-web",uiAlias:"zai-web",display:{name:"Z.ai Web",icon:"auto_awesome",color:"#2563EB",textIcon:"ZW",website:"https://chat.z.ai",notice:{signupUrl:"https://chat.z.ai",apiKeyUrl:"https://chat.z.ai",text:'Z.ai free web chat (GLM-5.2, GLM-5.1, GLM-5-Turbo, GLM-5V-Turbo). Open chat.z.ai, log in, then copy the "token" value from DevTools → Application → Local Storage → chat.z.ai and paste it here — do NOT copy cookies; the token is what the executor authenticates with. A JSON credential including captcha_verify_param is accepted when a CAPTCHA challenge is active.'}},category:"webCookie",authType:"cookie",authHint:'Copy the "token" value from chat.z.ai → DevTools → Application → Local Storage → chat.z.ai and paste it (raw value, or a JSON credential with captcha_verify_param when challenged). Do not copy cookies.',transport:{baseUrl:"https://chat.z.ai",format:"zai-web",authType:"cookie"},models:[{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-5v-turbo",name:"GLM-5V Turbo"}],passthroughModels:!0,thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"chatgpt-web",priority:150,alias:"chatgpt-web",aliases:["cgpt-web"],uiAlias:"cgpt-web",display:{name:"ChatGPT Web (chatgpt.com)",icon:"smart_toy",color:"#10A37F",textIcon:"CW",website:"https://chatgpt.com",notice:{signupUrl:"https://chatgpt.com",apiKeyUrl:"https://chatgpt.com",text:"ChatGPT Web (chatgpt.com) cookie provider (Plus/Pro session). Open chatgpt.com, log in, then copy your __Secure-next-auth.session-token cookie value (or the full 'Cookie:' line from DevTools → Network). ⚠️ chatgpt.com uses Sentinel anti-bot (proof-of-work + Turnstile + TLS fingerprint). OmniRoute bypasses it with native TLS impersonation; ExtremeRouter does NOT have that, so even though we solve the PoW and send exact headers, requests usually get blocked (403 / 'needs a browser'). Your cookie is probably valid when that happens — the TLS fingerprint is rejected, not your login. For reliable access use the official 'openai' provider instead."}},category:"webCookie",authType:"cookie",authHint:"Paste your chatgpt.com __Secure-next-auth.session-token value (or full Cookie line).",transport:{baseUrl:"https://chatgpt.com/backend-api/f/conversation",format:"chatgpt-web",authType:"cookie"},models:[{id:"gpt-5.5-pro",name:"GPT-5.5 Pro"},{id:"gpt-5.5-pro-extended",name:"GPT-5.5 Pro Extended"},{id:"gpt-5.5-thinking",name:"GPT-5.5 Thinking"},{id:"gpt-5.5",name:"GPT-5.5 Instant"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro"},{id:"gpt-5.4-thinking",name:"GPT-5.4 Thinking"},{id:"gpt-5.4-thinking-mini",name:"GPT-5.4 Thinking Mini"},{id:"gpt-5.3",name:"GPT-5.3 Instant"},{id:"gpt-5.3-mini",name:"GPT-5.3 Mini"},{id:"o3",name:"o3"}],passthroughModels:!0},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude-web",priority:150,alias:"claude-web",aliases:["cw"],uiAlias:"cw",display:{name:"Claude Web (claude.ai)",icon:"psychology",color:"#D97757",textIcon:"CW",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai",apiKeyUrl:"https://claude.ai/new",text:"Claude Web (claude.ai) cookie provider. Open claude.ai, log in, then copy your cookies (DevTools → Application → Cookies) — you need sessionKey= (and ideally a cf_clearance= scraped from a residential-IP browser). ⚠️ claude.ai is behind Cloudflare bot management: OmniRoute bypasses it with native TLS impersonation + Turnstile solving, which ExtremeRouter does NOT have. Requests will usually be blocked (403 'Just a moment' / cf-mitigated). When this happens your cookie is probably still valid — the TLS fingerprint is rejected, not your login. For reliable access use the official 'claude' provider instead."}},category:"webCookie",authType:"cookie",authHint:"Paste your claude.ai cookies (need sessionKey=, and ideally cf_clearance=).",transport:{baseUrl:"https://claude.ai/api",format:"claude-web",authType:"cookie"},models:[{id:"claude-sonnet-4-6",name:"Claude 4.6 Sonnet (web)"},{id:"claude-haiku-4-5",name:"Claude 4.5 Haiku (web)"}],passthroughModels:!0},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.258 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"600"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"},hooks:["claudeOverlay"]},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"}},models:[{id:"claude-fable-5-1",name:"Claude Fable 5.1"},{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-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot",apiKeyUrl:"https://app.cline.bot/settings#api-keys"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",forceStream:!0,headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline","x-client-type":"cline-cli"},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"]},usage:{url:"https://api.cline.bot/api/v1/users/me/plan/usage-limits"}},models:[{id:"anthropic/claude-opus-5",name:"Claude Opus 5",upstreamModelId:"anthropic/claude-opus-5"},{id:"claude-opus-5",name:"Claude Opus 5",upstreamModelId:"anthropic/claude-opus-5"},{id:"zai/glm-5.2",name:"GLM 5.2",upstreamModelId:"zai/glm-5.2"},{id:"glm-5.2",name:"GLM 5.2",upstreamModelId:"zai/glm-5.2"},{id:"x-ai/grok-4.5",name:"Grok 4.5",upstreamModelId:"x-ai/grok-4.5"},{id:"grok-4.5",name:"Grok 4.5",upstreamModelId:"x-ai/grok-4.5"},{id:"openai/gpt-5.6-sol",name:"GPT-5.6 Sol",upstreamModelId:"openai/gpt-5.6-sol"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",upstreamModelId:"openai/gpt-5.6-sol"},{id:"moonshotai/kimi-k3",name:"Kimi K3",upstreamModelId:"moonshotai/kimi-k3"},{id:"kimi-k3",name:"Kimi K3",upstreamModelId:"moonshotai/kimi-k3"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"deepseek/deepseek-v4-flash"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"deepseek/deepseek-v4-flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",upstreamModelId:"deepseek/deepseek-v4-pro"},{id:"poolside/laguna-s-2.1:free",name:"Laguna S 2.1 (Free)",upstreamModelId:"poolside/laguna-s-2.1:free"},{id:"laguna-s-2.1:free",name:"Laguna S 2.1 (Free)",upstreamModelId:"poolside/laguna-s-2.1:free"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash",upstreamModelId:"stepfun/step-3.7-flash"},{id:"step-3.7-flash",name:"Step 3.7 Flash",upstreamModelId:"stepfun/step-3.7-flash"},{id:"anthropic/claude-opus-4-7",name:"Claude Opus 4.7",upstreamModelId:"anthropic/claude-opus-4-7"},{id:"anthropic/claude-opus-4-6",name:"Claude Opus 4.6",upstreamModelId:"anthropic/claude-opus-4-6"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6",upstreamModelId:"anthropic/claude-sonnet-4-6"},{id:"anthropic/claude-3-7-sonnet",name:"Claude 3.7 Sonnet",upstreamModelId:"anthropic/claude-3-7-sonnet"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"openai/gpt-5.3-codex"},{id:"openai/gpt-5.4",name:"GPT-5.4",upstreamModelId:"openai/gpt-5.4"},{id:"openai/gpt-4o",name:"GPT-4o",upstreamModelId:"openai/gpt-4o"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",upstreamModelId:"google/gemini-3.1-pro-preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",upstreamModelId:"google/gemini-3.1-flash-lite-preview"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",upstreamModelId:"google/gemini-2.5-pro"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat",upstreamModelId:"deepseek/deepseek-chat"},{id:"minimax/minimax-m2.5",name:"MiniMax M2.5 (Free)",upstreamModelId:"minimax/minimax-m2.5"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro",upstreamModelId:"kwaipilot/kat-coder-pro"},{id:"stealth/ox-alpha",name:"0x-Alpha",upstreamModelId:"stealth/ox-alpha"}],passthroughModels:!0,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"},features:{usage:!0,usageApikey:!0}},{id:"clinepass",priority:85,alias:"clinepass",uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot",apiKeyUrl:"https://app.cline.bot/settings#api-keys",text:"ClinePass is a paid Cline subscription ($4.99–$9.99/mo) for curated open-weight coding models. Create an API key in your Cline account settings, then add it here."}},category:"oauth",authModes:["apikey","oauth"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]},usage:{url:"https://api.cline.bot/api/v1/users/me/plan/usage-limits"}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)",upstreamModelId:"cline-pass/glm-5.2"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)",upstreamModelId:"cline-pass/kimi-k2.7-code"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)",upstreamModelId:"cline-pass/kimi-k2.6"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)",upstreamModelId:"cline-pass/deepseek-v4-pro"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)",upstreamModelId:"cline-pass/deepseek-v4-flash"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)",upstreamModelId:"cline-pass/mimo-v2.5"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)",upstreamModelId:"cline-pass/mimo-v2.5-pro"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)",upstreamModelId:"cline-pass/minimax-m3"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)",upstreamModelId:"cline-pass/qwen3.7-max"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)",upstreamModelId:"cline-pass/qwen3.7-plus"},{id:"stealth/ox-alpha",name:"0x-Alpha (ClinePass)",upstreamModelId:"stealth/ox-alpha"}],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"},features:{usage:!0,usageApikey:!0}},{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:{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{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"},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:"glm-5.0",name:"GLM-5.0"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"hy3",name:"Hy3"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],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:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,headers:{originator:"codex_cli_rs","User-Agent":"codex_cli_rs/0.136.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-astra",name:"GPT 6.0 Astra"},{id:"gpt-5.6-sol",name:"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-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-review",name:"GPT 5.6 Luna Review",upstreamModelId:"gpt-5.6-luna",quotaFamily:"review"},{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.5-review",name:"GPT 5.5 Review",upstreamModelId:"gpt-5.5",quotaFamily:"review"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.4-review",name:"GPT 5.4 Review",upstreamModelId:"gpt-5.4",quotaFamily:"review"},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini"},{id:"gpt-5.4-mini-review",name:"GPT 5.4 Mini Review",upstreamModelId:"gpt-5.4-mini",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-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.3-codex-spark-review",name:"GPT 5.3 Codex Spark Review",upstreamModelId:"gpt-5.3-codex-spark",quotaFamily:"review"},{id:"gpt-5.5-image",name:"GPT 5.5 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.3-image",name:"GPT 5.3 Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:432e6,refresh:{encoding:"form",scope:"openid profile email offline_access"},maxRefreshAgeMs:6912e5,trackRefreshAt:!0},features:{usage:!0}},{id:"cody",priority:50,alias:"cody",uiAlias:"cody",display:{name:"Cody (Sourcegraph)",icon:"code_blocks",color:"#FF6B35",textIcon:"CO",website:"https://sourcegraph.com/cody",notice:{signupUrl:"https://sourcegraph.com/cody",apiKeyUrl:"https://sourcegraph.com/user/settings/tokens",text:"Sourcegraph Cody — coding assistant with a free plan (~200 messages/month). Create a personal access token (sgp_...) at sourcegraph.com/user/settings/tokens, then paste it here. Models include Claude Sonnet 4, GPT-4o, and Gemini Pro."}},category:"oauth",authModes:["apikey"],hasOAuth:!1,transport:{baseUrl:"https://sourcegraph.com/.api/llm/completions/Stream",format:"openai",headers:{"X-Requested-With":"Sourcegraph-Editor"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"anthropic::new::claude-sonnet-4",name:"Claude Sonnet 4 (Cody)"},{id:"anthropic::new::claude-haiku-4",name:"Claude Haiku 4 (Cody)"},{id:"anthropic::new::claude-3.7-sonnet",name:"Claude 3.7 Sonnet (Cody)"},{id:"openai::new::gpt-4o",name:"GPT-4o (Cody)"},{id:"openai::new::o3-mini",name:"o3-mini (Cody)"},{id:"google::new::gemini-2.5-pro",name:"Gemini 2.5 Pro (Cody)"},{id:"google::new::gemini-2.0-flash",name:"Gemini 2.0 Flash (Cody)"},{id:"mixtral-8x22B",name:"Mixtral 8x22B (Cody)"}],passthroughModels:!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:{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:{baseUrl:"http://localhost:8188"}},k,{id:"copilot-web",priority:150,alias:"copilot-web",aliases:["copilot"],uiAlias:"copilot",display:{name:"Microsoft Copilot Web (Cookie)",icon:"smart_toy",color:"#0A7BBA",textIcon:"CP",website:"https://copilot.microsoft.com"},category:"webCookie",authType:"cookie",authHint:"Paste your access_token from copilot.microsoft.com (anonymous works with limited models)",transport:{baseUrl:"wss://copilot.microsoft.com/c/api/chat?api-version=2",format:"copilot-web",authType:"cookie"},models:[{id:"copilot",name:"Copilot Chat"},{id:"copilot-chat",name:"Copilot Chat"},{id:"copilot-think",name:"Copilot Think (reasoning)"},{id:"copilot-think-deeper",name:"Copilot Think Deeper (reasoning)"},{id:"copilot-smart",name:"Copilot Smart"},{id:"copilot-gpt5",name:"Copilot GPT-5"},{id:"copilot-study",name:"Copilot Study"},{id:"gpt-4o",name:"GPT-4o (via Copilot)"},{id:"gpt-4-turbo",name:"GPT-4 Turbo (via Copilot)"},{id:"gpt-4",name:"GPT-4 (via Copilot)"},{id:"gpt-5",name:"GPT-5 (via Copilot)"},{id:"o1",name:"o1 (reasoning)"},{id:"o3",name:"o3 (reasoning)"}],passthroughModels:!0},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",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"}}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.deepgram.com/v1/listen"},models:[{id:"nova-3",name:"Nova 3",params:["language"],kind:"stt"},{id:"nova-2",name:"Nova 2",params:["language"],kind:"stt"},{id:"whisper-large",name:"Whisper Large",params:["language"],kind:"stt"},{id:"nova",name:"Nova",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram"}},{id:"deepseek-web",priority:130,alias:"ds-web",uiAlias:"ds-web",display:{name:"DeepSeek Web (Subscription)",icon:"psychology",color:"#4D6BFE",textIcon:"DS",website:"https://chat.deepseek.com",notice:{signupUrl:"https://chat.deepseek.com",apiKeyUrl:"https://chat.deepseek.com",text:"DeepSeek free web chat. Open chat.deepseek.com, log in, then copy your userToken from DevTools (Application → Local Storage → chat.deepseek.com → userToken). Paste it here. The token is exchanged for a short-lived access token automatically, and a proof-of-work challenge is solved per request. Responses are streamed from the web backend and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your userToken value from chat.deepseek.com (DevTools → Application → Local Storage → userToken).",transport:{baseUrl:"https://chat.deepseek.com",format:"deepseek-web",authType:"cookie"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-think",name:"DeepSeek V4 Pro Think",supportsReasoning:!0},{id:"deepseek-v4-pro-search",name:"DeepSeek V4 Pro Search"},{id:"deepseek-v4-pro-think-search",name:"DeepSeek V4 Pro Think+Search",supportsReasoning:!0},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-think",name:"DeepSeek V4 Flash Think",supportsReasoning:!0},{id:"deepseek-v4-flash-search",name:"DeepSeek V4 Flash Search"},{id:"deepseek-v4-flash-think-search",name:"DeepSeek V4 Flash Think+Search",supportsReasoning:!0},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-reasoner",name:"DeepSeek Reasoner",supportsReasoning:!0},{id:"DeepSeek-R1",name:"DeepSeek R1",supportsReasoning:!0},{id:"DeepSeek-R1-Search",name:"DeepSeek R1 Search",supportsReasoning:!0},{id:"DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"DeepSeek-Search",name:"DeepSeek Search"}],passthroughModels:!0},l,{id:"devin",priority:70,alias:"devin",uiAlias:"devin",display:{name:"Devin CLI",icon:"smart_toy",color:"#7C5CFF",textIcon:"DV",website:"https://devin.ai",notice:{signupUrl:"https://app.devin.ai",apiKeyUrl:"https://app.devin.ai/settings",text:"Devin (by Cognition) is a session-based AI software engineer. Create an API key (cog_...) in your Devin account settings. Each model below maps to a Devin agent mode. Responses are aggregated from Devin sessions and streamed back — they may take longer than a typical chat model."}},category:"apikey",authModes:["apikey"],hasOAuth:!1,transport:{baseUrl:"https://api.devin.ai",headers:{"Content-Type":"application/json",Accept:"application/json"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"devin-normal",name:"Devin (Normal)",upstreamModelId:"normal"},{id:"devin-fast",name:"Devin (Fast)",upstreamModelId:"fast"},{id:"devin-lite",name:"Devin Lite",upstreamModelId:"lite"},{id:"devin-ultra",name:"Devin Ultra",upstreamModelId:"ultra"}]},{id:"doubao-web",priority:150,alias:"doubao-web",aliases:["db"],uiAlias:"db",display:{name:"Doubao Web (Cookie)",icon:"smart_toy",color:"#3B5BFF",textIcon:"豆",website:"https://www.doubao.com"},category:"webCookie",authType:"cookie",authHint:"Paste your full Cookie header from doubao.com",transport:{baseUrl:"https://www.doubao.com/api/chat",format:"openai",authType:"cookie"},models:[{id:"doubao-default",name:"Doubao Default"},{id:"doubao-pro",name:"Doubao Pro"}],passthroughModels:!0},{id:"duckduckgo-web",priority:60,alias:"duckduckgo-web",aliases:["ddgw"],uiAlias:"ddgw",display:{name:"DuckDuckGo AI Chat",icon:"public",color:"#DE5833",textIcon:"DD",website:"https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1",notice:{signupUrl:"https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1",apiKeyUrl:"https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1",text:"DuckDuckGo AI Chat is free and anonymous — no login or cookie required. It exposes GPT-4o Mini, GPT-5 Mini, Claude 3.5 Haiku, Llama 4 Scout, Mistral Small and O3 Mini. No credential is needed; an anonymous VQD token is acquired per request. DuckDuckGo rate-limits anonymous sessions, so it is best for light use."}},category:"webCookie",authType:"none",noAuth:!0,authHint:"No credential needed — DuckDuckGo AI Chat is free and anonymous.",transport:{baseUrl:"https://duckduckgo.com",format:"duckduckgo-web",authType:"none"},models:[{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"claude-3-5-haiku-20241022",name:"Claude 3.5 Haiku"},{id:"llama-4-scout",name:"Llama 4 Scout"},{id:"mistral-small-2501",name:"Mistral Small"},{id:"o3-mini",name:"O3 Mini"}],passthroughModels:!0},{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run"}},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys",text:"Fireworks hosts 200+ open-weight models (DeepSeek, GLM, Kimi, Qwen, Llama) on fast serverless GPUs. Get a key at fireworks.ai/account/api-keys — new accounts include free credits. OpenAI-compatible — works with any standard client."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models",thinkingFormat:"openai"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/glm-5p2",name:"GLM-5.2"},{id:"accounts/fireworks/models/kimi-k2p6",name:"Kimi K2.6"},{id:"accounts/fireworks/models/kimi-k2-instruct-0905",name:"Kimi K2 Instruct 0905"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},m,{id:"gemini-web",priority:150,alias:"gemini-web",aliases:["gweb"],uiAlias:"gweb",display:{name:"Gemini Web (Google)",icon:"auto_awesome",color:"#4285F4",textIcon:"GE",website:"https://gemini.google.com",notice:{signupUrl:"https://gemini.google.com",apiKeyUrl:"https://gemini.google.com/app",text:"Gemini Web (gemini.google.com) cookie provider. Open gemini.google.com, log in, then copy your cookies (DevTools → Application → Cookies) — you need at least __Secure-1PSID and __Secure-1PSIDTS. ⚠️ Google blocks programmatic (non-browser) requests: this provider will often fail with 403/empty responses because ExtremeRouter cannot impersonate a browser TLS fingerprint. The cookies are probably valid when this happens — the request shape is rejected, not your login. Responses are translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your gemini.google.com cookies (need __Secure-1PSID + __Secure-1PSIDTS).",transport:{baseUrl:"https://gemini.google.com/app",format:"gemini-web",authType:"cookie"},models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.0-pro",name:"Gemini 2.0 Pro"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}],passthroughModels:!0},n,{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",messagesUrl:"https://api.githubcopilot.com/v1/messages",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},copilot:{vscodeVersion:"1.110.0",chatVersion:"0.38.0",userAgent:"GitHubCopilotChat/0.38.0",apiVersion:"2025-04-01"},usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"claude-fable-5",name:"Claude Fable 5",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-opus-4.8-fast",name:"Claude Opus 4.8 (fast mode)",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3,unsupportedParams:["temperature","top_p","top_k"]},{id:"claude-opus-4.8",name:"Claude Opus 4.8",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3,unsupportedParams:["temperature","top_p","top_k"]},{id:"claude-opus-4.7",name:"Claude Opus 4.7",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-opus-4.5",name:"Claude Opus 4.5",targetFormat:"claude",contextWindow:2e5,maxOutput:32e3},{id:"claude-sonnet-5",name:"Claude Sonnet 5",targetFormat:"claude",contextWindow:1e6,maxOutput:64e3},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",targetFormat:"claude",contextWindow:2e5,maxOutput:32e3},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",targetFormat:"claude",contextWindow:2e5,maxOutput:32e3},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",contextWindow:1e6,maxOutput:64e3},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindow:1e6,maxOutput:64e3},{id:"gpt-5.5",name:"GPT-5.5",targetFormat:"openai-responses",contextWindow:105e4,maxOutput:128e3},{id:"gpt-5.4",name:"GPT-5.4",targetFormat:"openai-responses",contextWindow:105e4,maxOutput:128e3},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",targetFormat:"openai-responses",contextWindow:4e5,maxOutput:128e3},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",targetFormat:"openai-responses",contextWindow:4e5,maxOutput:128e3},{id:"gpt-5-mini",name:"GPT-5 Mini",targetFormat:"openai-responses",contextWindow:264e3,maxOutput:64e3},{id:"gpt-4o-2024-11-20",name:"GPT-4o",contextWindow:128e3,maxOutput:16384},{id:"gpt-4o-mini",name:"GPT-4o Mini",contextWindow:128e3,maxOutput:4096},{id:"gpt-4-0125-preview",name:"GPT 4 Turbo",contextWindow:128e3,maxOutput:4096},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindow:256e3,maxOutput:32e3},{id:"mai-code-1-flash",name:"MAI-Code-1-Flash",targetFormat:"openai-responses",contextWindow:256e3,maxOutput:128e3},{id:"oswe-vscode-prime",name:"Raptor Mini",targetFormat:"openai-responses",contextWindow:264e3,maxOutput:64e3},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-high",name:"GLM 5.3 High",upstreamModelId:"glm-5.3"},{id:"glm-5.3-low",name:"GLM 5.3 Low",upstreamModelId:"glm-5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],features:{usage:!0,usageApikey:!0}},o,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",transport:{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie",usage:{rateLimitsUrl:"https://grok.com/rest/rate-limits"}},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,features:{usage:!0}},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingchat",priority:60,alias:"huggingchat",aliases:["hc-web"],uiAlias:"huggingchat",display:{name:"HuggingChat (Web)",icon:"smart_toy",color:"#FFD21E",textIcon:"HC",website:"https://huggingface.co/chat",notice:{signupUrl:"https://huggingface.co/chat",apiKeyUrl:"https://huggingface.co/chat",text:"⚠️ ANTI-BOT: HuggingFace is behind AWS WAF which blocks non-browser requests. Even with valid cookies (hf-chat + token + aws-waf-token), server-side requests are rejected. This provider may not work until a headless browser integration is added. Consider using HuggingFace Inference API (API key) as an alternative."}},category:"webCookie",authType:"cookie",comingSoon:!0,authHint:"Paste the FULL cookie string from huggingface.co/chat. Note: AWS WAF may block server-side requests regardless of cookie validity.",transport:{baseUrl:"https://huggingface.co",format:"huggingchat",authType:"cookie"},models:[{id:"omni",name:"Omni (Auto-Router)"},{id:"baidu/ERNIE-4.5-VL-424B-A47B-Base-PT",name:"ERNIE 4.5 VL 424B A47B Base PT"},{id:"CohereLabs/c4ai-command-r7b-12-2024",name:"Command R7B 12-2024"},{id:"CohereLabs/command-a-reasoning-08-2025",name:"Command A Reasoning 08-2025"},{id:"CohereLabs/command-a-vision-07-2025",name:"Command A Vision 07-2025"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B"},{id:"google/gemma-4-26B-A4B-it",name:"Gemma 4 26B A4B"},{id:"inclusionAI/Ling-2.6-1T",name:"Ling 2.6 1T"},{id:"meta-llama/Llama-4-Scout-17B-16E-Instruct",name:"Llama 4 Scout 17B 16E Instruct"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick 17B 128E Instruct FP8"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-NVFP4",name:"NVIDIA Nemotron 3 Ultra 550B A55B NVFP4"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"openai/gpt-oss-20b",name:"GPT-OSS 20B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen3.5 122B A10B"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5 397B A17B"},{id:"Qwen/Qwen3.6-27B",name:"Qwen3.6 27B"},{id:"Qwen/Qwen3.6-35B-A3B",name:"Qwen3.6 35B A3B"},{id:"stepfun-ai/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"XiaomiMiMo/MiMo-V2.5-Pro",name:"MiMo V2.5 Pro"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"}],passthroughModels:!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"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},p,{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",quirks:{dropStreamOptions:!0},headers:{"User-Agent":"kimchi/0.1.76"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"kimi-k2.7",name:"Kimi K2.7"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"}],serviceKinds:["llm","imageToText"],features:{usage:!0},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},q,{id:"kimi-web",priority:130,alias:"kimi-web",uiAlias:"kimi-web",display:{name:"Kimi Web (Subscription)",icon:"auto_fix_high",color:"#1F1F1F",textIcon:"KM",website:"https://www.kimi.com",notice:{signupUrl:"https://www.kimi.com",apiKeyUrl:"https://www.kimi.com",text:"Moonshot Kimi free web chat (international). Open www.kimi.com, log in, then copy your Cookie header (DevTools → Application → Cookies → kimi-auth, or DevTools → Network → any request → Cookie). The kimi-auth JWT is what we actually use — paste the full cookie string or just the JWT value. Responses are streamed over the Connect-RPC protocol and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your Cookie header from www.kimi.com (must contain kimi-auth=<JWT>), or just the kimi-auth JWT value.",transport:{baseUrl:"https://www.kimi.com",format:"kimi-web",authType:"cookie"},models:[{id:"kimi-default",name:"Kimi Default"},{id:"kimi-k2.6",name:"Kimi K2.6 (Thinking)",supportsReasoning:!0},{id:"kimi-128k",name:"Kimi 128K (Long Context)"}],passthroughModels:!0},r,{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","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-sonnet-5",name:"Claude Sonnet 5",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5,maxOutputTokens:128e3},{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)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)",contextLength:2e5,maxOutputTokens:128e3},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)",contextLength:2e5,maxOutputTokens:128e3},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)",contextLength:1e6,maxOutputTokens:128e3},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)",contextLength:2e5,maxOutputTokens:128e3},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-sol-thinking",name:"GPT-5.6 Sol (Thinking)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra-thinking",name:"GPT-5.6 Terra (Thinking)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna-thinking",name:"GPT-5.6 Luna (Thinking)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-sol-agentic",name:"GPT-5.6 Sol (Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra-agentic",name:"GPT-5.6 Terra (Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna-agentic",name:"GPT-5.6 Luna (Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-sol-thinking-agentic",name:"GPT-5.6 Sol (Thinking + Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-terra-thinking-agentic",name:"GPT-5.6 Terra (Thinking + Agentic)",contextLength:272e3,maxOutputTokens:128e3},{id:"gpt-5.6-luna-thinking-agentic",name:"GPT-5.6 Luna (Thinking + Agentic)",contextLength:272e3,maxOutputTokens:128e3}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"lmarena",priority:150,alias:"lmarena",aliases:["lma"],uiAlias:"lmarena",display:{name:"LMArena (Free)",icon:"auto_awesome",color:"#FF6B6B",textIcon:"LMA",website:"https://lmarena.ai",notice:{signupUrl:"https://lmarena.ai",apiKeyUrl:"https://lmarena.ai",text:"LMArena is FREE for testing models — a model comparison platform with 40+ frontier models (GPT, Claude, Gemini, Llama, ...). No subscription required. Log into lmarena.ai, then copy the FULL Cookie header from any request (DevTools → Network → request → Request Headers → Cookie). The session is now split across arena-auth-prod-v1.0, .1, … — copy the whole header. Paste it here; the executor auto-recombines the chunks. Works with the free tier for basic comparisons."}},category:"webCookie",authType:"cookie",authHint:"Paste the full Cookie header from lmarena.ai (DevTools → Network → request → Cookie). Includes arena-auth-prod-v1.0/.1/… chunks.",transport:{baseUrl:"https://arena.ai/nextjs-api/stream",format:"lmarena",authType:"cookie"},models:[{id:"gpt-5",name:"GPT-5 (via LMArena)"},{id:"gpt-5-mini",name:"GPT-5 Mini (via LMArena)"},{id:"gpt-4.1",name:"GPT-4.1 (via LMArena)"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 (via LMArena)"},{id:"claude-opus-4-1",name:"Claude Opus 4.1 (via LMArena)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (via LMArena)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (via LMArena)"},{id:"grok-4",name:"Grok 4 (via LMArena)"},{id:"deepseek-v3-2",name:"DeepSeek V3.2 (via LMArena)"},{id:"qwen3-235b",name:"Qwen3 235B (via LMArena)"},{id:"llama-4-maverick",name:"Llama 4 Maverick (via LMArena)"}],passthroughModels:!0},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"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:{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},s,t,{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"muse-spark-web",priority:150,alias:"muse-spark-web",aliases:["ms-web"],uiAlias:"ms-web",display:{name:"Muse Spark Web (Meta AI)",icon:"auto_awesome",color:"#0866FF",textIcon:"MS",website:"https://www.meta.ai",notice:{signupUrl:"https://www.meta.ai",apiKeyUrl:"https://www.meta.ai",text:"Muse Spark (Meta AI) free web chat. Log into meta.ai, then copy the ecto_1_sess cookie value from DevTools → Application → Cookies → www.meta.ai. Paste it here (bare value or full cookie line). Streaming responses from Meta's GraphQL endpoint are translated to OpenAI format. Thinking/contemplating models expose reasoning_content."}},category:"webCookie",authType:"cookie",authHint:"Paste your meta.ai ecto_1_sess cookie value (or the full cookie line from DevTools).",transport:{baseUrl:"https://www.meta.ai/api/graphql",format:"muse-spark-web",authType:"cookie"},models:[{id:"muse-spark",name:"Muse Spark"},{id:"muse-spark-thinking",name:"Muse Spark Thinking",supportsReasoning:!0},{id:"muse-spark-contemplating",name:"Muse Spark Contemplating",supportsReasoning:!0}],passthroughModels:!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:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",transport:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama",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:{baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.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-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},models:[{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.2-high",name:"GLM 5.2 (High Effort)"},{id:"glm-5.2-max",name:"GLM 5.2 (Max Effort)"},{id:"glm-5.1",name:"GLM 5.1"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-low",name:"DeepSeek V4 Pro (Low Effort)"},{id:"deepseek-v4-pro-medium",name:"DeepSeek V4 Pro (Medium Effort)"},{id:"deepseek-v4-pro-high",name:"DeepSeek V4 Pro (High Effort)"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro (Max Effort)"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2.5-high",name:"MiMo V2.5 (High Effort)"},{id:"mimo-v2.5-max",name:"MiMo V2.5 (Max Effort)"},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"minimax-m3",name:"MiniMax M3",targetFormat:"claude"},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude"},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude"},{id:"qwen3.7-max",name:"Qwen 3.7 Max",targetFormat:"claude"},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",targetFormat:"claude"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",targetFormat:"claude"},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses"},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses"}]},{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:{baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"desktop"},noAuth:!0},models:[{id:"x-preview-f-free",name:"x Preview F Free"},{id:"laguna-s-2.1-free",name:"Laguna S 2.1 Free"},{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"}],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",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"}],serviceKinds:["llm","embedding","tts","imageToText"],ttsConfig:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},imageConfig:{baseUrl:"https://openrouter.ai/api/v1/images/generations",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"poe-web",priority:150,alias:"poe-web",aliases:["poe"],uiAlias:"poe",display:{name:"Poe Web (Subscription)",icon:"forum",color:"#7C3AED",textIcon:"P",website:"https://www.poe.com"},category:"webCookie",authType:"cookie",authHint:"Paste your p-b= cookie value from poe.com",transport:{baseUrl:"https://www.poe.com/api/gql_POST",format:"poe-web",authType:"cookie"},models:[{id:"gpt-4o",name:"GPT-4o (via Poe)"},{id:"gpt-4-turbo",name:"GPT-4 Turbo (via Poe)"},{id:"claude-3.5-sonnet",name:"Claude 3.5 Sonnet (via Poe)"},{id:"claude-3-opus",name:"Claude 3 Opus (via Poe)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash (via Poe)"},{id:"llama-3-70b",name:"Llama 3 70B (via Poe)"},{id:"mixtral-8x22b",name:"Mixtral 8x22B (via Poe)"},{id:"poe-default",name:"Poe Assistant"}],passthroughModels:!0},{id:"pollinations",priority:80,alias:"pollinations",aliases:["pol"],uiAlias:"pollinations",display:{name:"Pollinations",icon:"local_florist",color:"#7C3AED",textIcon:"PL",website:"https://pollinations.ai",notice:{signupUrl:"https://enter.pollinations.ai",apiKeyUrl:"https://enter.pollinations.ai",text:"Pollinations is FREE text + image generation. Keyless models (openai, openai-fast, openai-large, qwen-coder, mistral, deepseek, grok, gemini-flash-lite-3.1, perplexity-fast, perplexity-reasoning) need no auth. Premium models (claude, gemini, midijourney) require a Pollinations API key from enter.pollinations.ai. No credential is required for the free tier; paste an API key only to unlock premium models."}},category:"webCookie",authType:"none",noAuth:!0,authHint:"Optional — leave blank for free keyless models. Paste a Pollinations API key for premium models.",transport:{baseUrl:"https://gen.pollinations.ai/v1/chat/completions",format:"pollinations",authType:"none"},models:[{id:"openai",name:"OpenAI (Pollinations)"},{id:"openai-fast",name:"OpenAI Fast (Pollinations)"},{id:"openai-large",name:"OpenAI Large (Pollinations)"},{id:"qwen-coder",name:"Qwen Coder (Pollinations)"},{id:"mistral",name:"Mistral (Pollinations)"},{id:"gemini",name:"Gemini (Pollinations)"},{id:"gemini-flash-lite-3.1",name:"Gemini Flash Lite 3.1 (Pollinations)"},{id:"gemini-fast",name:"Gemini Fast (Pollinations)"},{id:"deepseek",name:"DeepSeek (Pollinations)"},{id:"grok",name:"Grok (Pollinations)"},{id:"grok-large",name:"Grok Large (Pollinations)"},{id:"gemini-search",name:"Gemini Search (Pollinations)"},{id:"midijourney",name:"Midijourney (Pollinations)"},{id:"midijourney-large",name:"Midijourney Large (Pollinations)"},{id:"claude-fast",name:"Claude Fast (Pollinations)"},{id:"claude",name:"Claude (Pollinations)"},{id:"claude-large",name:"Claude Large (Pollinations)"},{id:"perplexity-fast",name:"Perplexity Fast (Pollinations)"},{id:"perplexity-reasoning",name:"Perplexity Reasoning (Pollinations)"},{id:"kimi",name:"Kimi (Pollinations)"},{id:"gemini-large",name:"Gemini Large (Pollinations)"},{id:"nova-fast",name:"Nova Fast (Pollinations)"},{id:"nova",name:"Nova (Pollinations)"},{id:"glm",name:"GLM (Pollinations)"},{id:"minimax",name:"MiniMax (Pollinations)"},{id:"mistral-large",name:"Mistral Large (Pollinations)"},{id:"polly",name:"Polly (Pollinations)"},{id:"qwen-coder-large",name:"Qwen Coder Large (Pollinations)"},{id:"qwen-large",name:"Qwen Large (Pollinations)"},{id:"qwen-vision",name:"Qwen Vision (Pollinations)"},{id:"qwen-safety",name:"Qwen Safety (Pollinations)"}],passthroughModels:!0},{id:"puter",priority:60,alias:"puter",uiAlias:"puter",display:{name:"Puter AI",icon:"cloud_circle",color:"#6366F1",textIcon:"PU",website:"https://puter.com",notice:{signupUrl:"https://puter.com",apiKeyUrl:"https://puter.com/dashboard",text:'Puter is FREE AI. Log in at puter.com, then open the dashboard and click "Copy Auth Token" (or copy your puter_auth_token cookie). Paste the token here — it works as a Bearer credential. Puter exposes 500+ models (GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Mistral, Llama...) through one OpenAI-compatible endpoint. Model IDs use provider/model-name format for non-OpenAI models. Only chat completions (with streaming) are available via REST.'}},category:"webCookie",authType:"cookie",authHint:"Paste your Puter auth token (from puter.com/dashboard → Copy Auth Token) or your puter_auth_token cookie value.",transport:{baseUrl:"https://api.puter.com/puterai/openai/v1/chat/completions",format:"puter",authType:"cookie"},models:[{id:"gpt-5.5",name:"GPT-5.5 (Puter)"},{id:"gpt-5.4",name:"GPT-5.4 (Puter)"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini (Puter)"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano (Puter)"},{id:"gpt-4o",name:"GPT-4o (Puter)"},{id:"gpt-4o-mini",name:"GPT-4o Mini (Puter)"},{id:"o3",name:"OpenAI o3 (Puter)"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5 (Puter)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Puter)"},{id:"claude-opus-4-7",name:"Claude Opus 4.7 (Puter)"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash (Puter)"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite (Puter)"},{id:"google/gemini-3-flash",name:"Gemini 3 Flash (Puter)"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro (Puter)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro (Puter)",supportsReasoning:!0},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash (Puter)",supportsReasoning:!0},{id:"x-ai/grok-4.3",name:"Grok 4.3 (Puter)"},{id:"x-ai/grok-4.20",name:"Grok 4.20 (Puter)"},{id:"llama-4-scout",name:"Llama 4 Scout (Puter)"},{id:"llama-4-maverick",name:"Llama 4 Maverick (Puter)"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B (Puter)"},{id:"mistral-small-2603",name:"Mistral Small 4 (Puter)"},{id:"mistral-medium-3-5",name:"Mistral Medium 3.5 (Puter)"},{id:"mistral-large-2512",name:"Mistral Large (Puter)"},{id:"devstral-2512",name:"Devstral 2 (Puter)"},{id:"codestral-2508",name:"Codestral (Puter)"},{id:"mistral-nemo",name:"Mistral Nemo (Puter)"},{id:"qwen/qwen3.6-plus",name:"Qwen 3.6 Plus (Puter)"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen 3.5 397B (Puter)"},{id:"perplexity/sonar-deep-research",name:"Perplexity Sonar Deep Research (Puter)"},{id:"perplexity/sonar-pro-search",name:"Perplexity Sonar Pro Search (Puter)"},{id:"perplexity/sonar-pro",name:"Perplexity Sonar Pro (Puter)"},{id:"perplexity/sonar-reasoning-pro",name:"Perplexity Sonar Reasoning Pro (Puter)"},{id:"perplexity/sonar",name:"Perplexity Sonar (Puter)"}],passthroughModels:!0},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) from https://qoder.com/account/integrations",transport:{baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"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"}],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-web",priority:130,alias:"qwen-web",uiAlias:"qwen-web",display:{name:"Qwen Web (Subscription)",icon:"hub",color:"#615CED",textIcon:"QW",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai",apiKeyUrl:"https://chat.qwen.ai",text:"Alibaba Tongyi Qwen Chat free web access. Open chat.qwen.ai, log in, then copy your FULL Cookie header (DevTools → Network → any request → Request Headers → Cookie, or DevTools → Application → Cookies). Paste ALL cookies here — the WAF (baxia) requires the complete cookie jar (cna, ssxmod_itna, token, ...), not just the bearer token. The auth token is read from the `token` cookie automatically. Optionally append `bx-umidtoken=<value>` (captured from DevTools → Network → request headers) to bypass the anti-bot check if you get 'unauthorized' errors. Responses are streamed from the v2 API and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your FULL Cookie header from chat.qwen.ai (must include cna, ssxmod_itna and token cookies). Optionally append bx-umidtoken=<value> (from request headers) if you get 'unauthorized' errors.",transport:{baseUrl:"https://chat.qwen.ai",format:"qwen-web",authType:"cookie"},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-max",name:"Qwen3.7 Max",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-plus",name:"Qwen3.7 Plus",contextWindow:1e6,maxOutput:65536},{id:"qwen3.6-plus",name:"Qwen3.6 Plus",contextWindow:1e6,maxOutput:65536}],passthroughModels:!0},{id:"qwen",hidden:!0,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:{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:{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:"image"},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",params:[],kind:"image"},{id:"gen4.5",name:"Gen-4.5",params:["ratio","duration"],kind:"video"}],serviceKinds:["image","video"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1"},videoConfig:{baseUrl:"https://api.dev.runwayml.com/v1",bodyFields:["model","promptText","ratio","duration","seed"]}},{id:"sdwebui",priority:110,alias:"sdwebui",display:{name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"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:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"t3-web",priority:60,alias:"t3-web",aliases:["t3chat"],uiAlias:"t3chat",display:{name:"T3 Chat (Web)",icon:"chat",color:"#6D28D9",textIcon:"T3",website:"https://t3.chat",notice:{signupUrl:"https://t3.chat",apiKeyUrl:"https://t3.chat",text:"T3 Chat aggregates Claude, GPT, Gemini, DeepSeek, Grok, Llama, Mistral, Qwen and Kimi behind one subscription. Open t3.chat, log in, then copy your full Cookie header (DevTools → Network → request → Cookie), including convex-session-id. Paste the full cookie string here. Responses are translated from TanStack Start TSS/NDJSON into OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your t3.chat full Cookie header (must include convex-session-id).",transport:{baseUrl:"https://t3.chat",format:"t3-web",authType:"cookie"},models:[{id:"claude-opus-4",name:"Claude Opus 4 (via t3.chat)"},{id:"claude-sonnet-4",name:"Claude Sonnet 4 (via t3.chat)"},{id:"claude-haiku-4",name:"Claude Haiku 4 (via t3.chat)"},{id:"claude-3.7",name:"Claude 3.7 Sonnet (via t3.chat)"},{id:"gpt-5",name:"GPT-5 (via t3.chat)"},{id:"gpt-4o",name:"GPT-4o (via t3.chat)"},{id:"gpt-4.1",name:"GPT-4.1 (via t3.chat)"},{id:"o3",name:"o3 (via t3.chat)"},{id:"o4-mini",name:"o4-mini (via t3.chat)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (via t3.chat)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (via t3.chat)"},{id:"deepseek-r1",name:"DeepSeek R1 (via t3.chat)"},{id:"deepseek-v3",name:"DeepSeek V3 (via t3.chat)"},{id:"grok-3",name:"Grok 3 (via t3.chat)"},{id:"grok-3-mini",name:"Grok 3 Mini (via t3.chat)"},{id:"llama-4-maverick",name:"Llama 4 Maverick (via t3.chat)"},{id:"llama-4-scout",name:"Llama 4 Scout (via t3.chat)"},{id:"llama-3.3-70b",name:"Llama 3.3 70B (via t3.chat)"},{id:"devstral",name:"Devstral (via t3.chat)"},{id:"mistral-large",name:"Mistral Large (via t3.chat)"},{id:"qwen3-235b",name:"Qwen3 235B (via t3.chat)"},{id:"qwen3-32b",name:"Qwen3 32B (via t3.chat)"},{id:"kimi-k2",name:"Kimi K2 (via t3.chat)"}],passthroughModels:!0},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"trae",priority:55,alias:"tr",uiAlias:"tr",display:{name:"Trae (ByteDance)",icon:"code",color:"#8B5CF6",textIcon:"TR",website:"https://trae.ai",notice:{signupUrl:"https://trae.ai",apiKeyUrl:"https://solo.trae.ai",text:"ByteDance Trae coding IDE — sign in at solo.trae.ai, then copy the Cloud-IDE-JWT token from the Authorization header (DevTools → Network). Lifetime ~14 days. Models include Gemini 3.1 Pro, MiniMax M3 (1M ctx), Kimi K2.5, GPT-5.4/5.2, and an 'auto' router."}},category:"oauth",authModes:["apikey"],hasOAuth:!1,transport:{baseUrl:"https://core-normal.trae.ai/api/remote/v1",format:"trae",auth:{combined:!0,header:"Authorization",scheme:"raw"}},models:[{id:"auto",name:"Auto (Code \xb7 Server Picks)"},{id:"work",name:"Work (Auto \xb7 fast)"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",upstreamModelId:"gemini-3.1-pro"},{id:"gemini-3-flash-solo",name:"Gemini 3 Flash"},{id:"minimax-m3",name:"MiniMax M3",upstreamModelId:"minimax-m3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.2",name:"GPT 5.2"}],passthroughModels:!0},{id:"v0-vercel-web",priority:150,alias:"v0-vercel-web",aliases:["v0"],uiAlias:"v0",display:{name:"v0 (Vercel)",icon:"code",color:"#000000",textIcon:"v0",website:"https://v0.app",notice:{signupUrl:"https://v0.app",apiKeyUrl:"https://v0.app",text:"v0 is Vercel's AI code generation tool. Log in at v0.app, then open DevTools → Application → Cookies → copy the FULL cookie string (must include user_session + v0-last-scope). Default model: v0-mini. Free tier: 5 credits/month."}},category:"webCookie",authType:"cookie",authHint:"Paste your full Cookie header from v0.app (must include user_session and v0-last-scope cookies).",transport:{baseUrl:"https://v0.app/chat/api/chat",format:"v0-vercel-web",authType:"cookie"},models:[{id:"v0-mini",name:"v0 Mini"},{id:"v0-default",name:"v0 Default"}],passthroughModels:!0},{id:"venice-web",priority:60,alias:"venice-web",aliases:["ven-web"],uiAlias:"ven-web",display:{name:"Venice (Web)",icon:"lock",color:"#9333EA",textIcon:"VE",website:"https://venice.ai",notice:{signupUrl:"https://venice.ai",apiKeyUrl:"https://venice.ai",text:"Venice is a privacy-focused AI chat. Open venice.ai, log in, then copy your full Cookie header (DevTools → Application → Cookies). Paste the full cookie string here. Responses are streamed from the web /api/chat endpoint and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your venice.ai full Cookie header.",transport:{baseUrl:"https://venice.ai",format:"venice-web",authType:"cookie"},models:[{id:"venice-latest",name:"Venice Latest"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"qwen-2.5-coder",name:"Qwen 2.5 Coder"}],passthroughModels:!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:{baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"veoaifree-web",priority:150,alias:"veoaifree-web",aliases:["veo-free"],uiAlias:"veo-free",display:{name:"Veo AI Free",icon:"movie",color:"#10B981",textIcon:"VF",website:"https://veoaifree.com",notice:{signupUrl:"https://veoaifree.com",apiKeyUrl:"https://veoaifree.com",text:"Veo AI Free (veoaifree.com) — free multi-tool via WordPress AJAX: text-to-video, image generation, TTS, and prompt enhancement. No auth required. Intent is detected from the model id / prompt (e.g. models containing 'image'/'tts'/'enhance'). Limited to ~6 requests/hour per IP. Send the prompt as the last user message; optional system message can set aspect_ratio:/voice:/lang: hints. No connection key needed — paste any placeholder."}},category:"webCookie",authType:"cookie",authHint:"No auth required — veoaifree.com is free. Paste any placeholder value (the key is ignored).",transport:{baseUrl:"https://veoaifree.com",format:"veoaifree-web",authType:"cookie"},models:[{id:"veo",name:"VEO 3.1"},{id:"seedance",name:"Seedance"}],passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"windsurf",priority:45,alias:"ws",uiAlias:"ws",display:{name:"Windsurf",icon:"surfing",color:"#1FB6FF",textIcon:"WS",website:"https://windsurf.com",notice:{signupUrl:"https://windsurf.com",apiKeyUrl:"https://windsurf.com/show-auth-token",text:"Windsurf coding IDE — Claude Opus 4.7 (full effort tiers), Sonnet 4.6 1M context, GPT-5.5/5.4, Gemini 3.1 Pro, SWE models. ⚠️ COMING SOON: Windsurf speaks gRPC-web+protobuf, not REST — a native adapter is pending. The brand icon & catalog are shown now; chat requests will return a clear 'gRPC adapter pending' error until the adapter lands."}},category:"oauth",authModes:["apikey"],hasOAuth:!1,comingSoon:!0,transport:{baseUrl:"https://server.self-serve.windsurf.com",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max",contextLength:2e5},{id:"claude-opus-4.7-xhigh",name:"Claude Opus 4.7 XHigh",contextLength:2e5},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High",contextLength:2e5},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium",contextLength:2e5},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low",contextLength:2e5},{id:"claude-opus-4.7-review",name:"Claude Opus 4.7 Review",contextLength:2e5},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M",contextLength:1e6},{id:"claude-sonnet-4.6-1m",name:"Claude Sonnet 4.6 1M",contextLength:1e6},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking",contextLength:2e5},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:2e5},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking",contextLength:2e5},{id:"claude-opus-4.6",name:"Claude Opus 4.6",contextLength:2e5},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh",contextLength:2e5},{id:"gpt-5.5-high",name:"GPT-5.5 High",contextLength:2e5},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium",contextLength:2e5},{id:"gpt-5.5-low",name:"GPT-5.5 Low",contextLength:2e5},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",contextLength:1e6},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",contextLength:1e6},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High",contextLength:1e6}],passthroughModels:!0},{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,thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",usage:{billingUrl:"https://api.x.ai/v1/billing?format=credits",subscriptionUrl:"https://api.x.ai/v1/user?include=subscription"}},features:{usage:!0,usageApikey:!0},models:[{id:"grok-4.6",name:"Grok 4.6",contextWindow:5e5},{id:"grok-4.5",name:"Grok 4.5",contextWindow:5e5},{id:"grok-4.20-multi-agent",name:"Grok 4.20 Multi-Agent"},{id:"grok-4.20-reasoning",name:"Grok 4.20 Reasoning"},{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-imagine-image-quality",name:"Grok Imagine (Image Quality)",params:["n","response_format"],kind:"image"},{id:"grok-imagine-image-2.0",name:"Grok Imagine Image 2.0",params:["n","response_format"],kind:"image"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video-1.5",name:"Grok Imagine Video 1.5",params:["duration","aspect_ratio","resolution"],kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{baseUrl:"https://api.x.ai/v1/videos",bodyFields:["model","prompt","duration","seconds","aspect_ratio","resolution"]},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},u,v,{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"zenmux-free",priority:65,alias:"zmf",uiAlias:"zmf",display:{name:"ZenMux Free",icon:"hub",color:"#6366F1",textIcon:"ZM",website:"https://zenmux.ai",notice:{signupUrl:"https://zenmux.ai",apiKeyUrl:"https://zenmux.ai",text:"ZenMux Free tier — log in at zenmux.ai, export all cookies (EditThisCookie / Cookie-Editor / DevTools), and paste the full Cookie string. Must include `ctoken`. Free models: DeepSeek V3.2, GLM 4.7 Flash, MiMo V2 Flash, KAT Coder Pro, and more."}},category:"webCookie",authType:"cookie",authHint:"Paste the FULL cookie string from zenmux.ai (must include ctoken). Use EditThisCookie or DevTools → Application → Cookies → copy all.",transport:{baseUrl:"https://zenmux.ai/api/anthropic/v1/messages",format:"zenmux-free",authType:"cookie"},models:[{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"z-ai/glm-4.7-flash-free",name:"GLM 4.7 Flash Free"},{id:"z-ai/glm-4.6v-flash-free",name:"GLM 4.6V Flash Free"},{id:"z-ai/glm-4.7",name:"GLM 4.7"},{id:"z-ai/glm-4.6v-flash",name:"GLM 4.6V Flash"},{id:"qwen/qwen3.7-plus",name:"Qwen 3.7 Plus"},{id:"minimax/minimax-m3",name:"MiniMax M3"},{id:"minimax/minimax-m2.1",name:"MiniMax M2.1"},{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash"},{id:"stepfun/step-3.7-flash-free",name:"Step 3.7 Flash Free"},{id:"stepfun/step-3",name:"Step 3"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-image",name:"Gemini 3.1 Flash Lite Image"},{id:"anthropic/claude-fable-5",name:"Claude Fable 5"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5"},{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"inclusionai/ling-2.6-1t",name:"Ling 2.6 1T"},{id:"inclusionai/ring-2.6-1t",name:"Ring 2.6 1T"},{id:"meituan/longcat-2.0",name:"Longcat 2.0"},{id:"kuaishou/kat-coder-pro-v2.5",name:"KAT Coder Pro V2.5"},{id:"kuaishou/kat-coder-air-v2.5",name:"KAT Coder Air V2.5"},{id:"sapiens-ai/agnes-image-1.2",name:"Agnes Image 1.2"}],passthroughModels:!0},{id:"api-airforce",priority:70,alias:"airforce",aliases:["airforce","af"],uiAlias:"airforce",display:{name:"Api.Airforce",icon:"flight",color:"#6366F1",textIcon:"AF",website:"https://api.airforce",notice:{signupUrl:"https://api.airforce/playground/",apiKeyUrl:"https://api.airforce/playground/",text:"Api.Airforce is an OpenAI-compatible gateway with 65+ models. Log in at api.airforce/playground/, then open DevTools → Application → Cookies → copy the `airforce_session` cookie value (a JWT starting with eyJ). Paste it here — ExtremeRouter exchanges it for your API key automatically. Free tier: 10 free chat models (gpt-4o-mini, glm-4.7-flash, gpt-oss-120b/20b). Paid models need a positive balance at api.airforce/dashboard."}},category:"webCookie",authType:"cookie",authHint:"Paste your airforce_session cookie value (JWT from api.airforce DevTools → Application → Cookies), or the full `airforce_session=...` cookie string.",transport:{baseUrl:"https://api.airforce/v1/chat/completions",format:"openai",authType:"cookie"},models:[{id:"gpt-4o-mini",name:"GPT-4o mini (Free)"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash (Free)"},{id:"gpt-oss-120b",name:"GPT-OSS 120B (Free)"},{id:"gpt-oss-20b",name:"GPT-OSS 20B (Free)"},{id:"minimax-m2.5",name:"MiniMax M2.5 (Free)"},{id:"seed-rp",name:"Seed RP (Free)"},{id:"unmoderated-gpt",name:"Unmoderated GPT (Free)"},{id:"gemma3-270m:free",name:"Gemma 3 270M (Free)"},{id:"rnj-1",name:"RNJ-1 (Free)"},{id:"plutotext-r3-emotional",name:"PlutoText R3 Emotional (Free)"},{id:"claude-sonnet-4.6-rp",name:"Claude Sonnet 4.6 (Paid)"},{id:"claude-opus-4.5-rp",name:"Claude Opus 4.5 (Paid)"},{id:"gpt-5",name:"GPT-5 (Paid)"},{id:"deepseek-v3-0324",name:"DeepSeek V3.2 (Paid)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (Paid)"}],passthroughModels:!0},{id:"openvecta",priority:310,alias:"openvecta",aliases:["ov"],uiAlias:"ov",display:{name:"OpenVecta",icon:"hub",color:"#7C3AED",textIcon:"OV",website:"https://openvecta.com",notice:{signupUrl:"https://openvecta.com",apiKeyUrl:"https://openvecta.com",text:"OpenVecta is a pay-per-use AI inference gateway. Sign up at openvecta.com for free credits, then paste your API key. OpenAI-compatible — works with any OpenAI-format client. ~17 LLMs + embeddings available."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.openvecta.com/v1/chat/completions",format:"openai",validateUrl:"https://api.openvecta.com/v1/models"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"gemma-4-31b",name:"Gemma 4 31B"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"nemotron-3-super-120b",name:"Nemotron 3 Super 120B"}],passthroughModels:!0},{id:"freebuff-web",priority:65,alias:"fb-web",aliases:["freebuff-web","freebuff-cookie"],uiAlias:"fbw",display:{name:"FreeBuff",icon:"bolt",color:"#F97316",textIcon:"FB",website:"https://freebuff.com",notice:{signupUrl:"https://freebuff.com",apiKeyUrl:"https://freebuff.com",text:"FreeBuff is a FREE AI assistant with coding help, web research, and deep reasoning. Log in at freebuff.com/chat, then open DevTools → Application → Cookies → copy the __Secure-next-auth.session-token cookie value (or the full cookie string). Default model: deepseek-v4-flash."}},category:"webCookie",authType:"cookie",authHint:"Paste your freebuff.com session cookie (__Secure-next-auth.session-token value or full cookie string).",transport:{baseUrl:"https://freebuff.com/api/chat/stream",format:"freebuff-web",authType:"cookie"},models:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (FreeBuff)"}],passthroughModels:!0},{id:"perplexity-agent",priority:175,alias:"pplx-agent",aliases:["pplxa","perplexity-agent"],uiAlias:"pplxa",display:{name:"Perplexity Agent",icon:"smart_toy",color:"#20A39E",textIcon:"PA",website:"https://www.perplexity.ai",notice:{signupUrl:"https://www.perplexity.ai",apiKeyUrl:"https://www.perplexity.ai/settings/api",text:"Perplexity Agent API routes to 30+ third-party models (GPT, Claude, Gemini, Grok, GLM, Kimi, Sonar) through one Perplexity API key. Get a key at perplexity.ai/settings/api. Uses the Responses API format."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/v1/agent",format:"openai-responses",validateUrl:"https://api.perplexity.ai/v1/models"},models:[{id:"openai/gpt-5-mini",name:"GPT-5 Mini"},{id:"openai/gpt-5",name:"GPT-5"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4-7",name:"Claude Opus 4.7"},{id:"anthropic/claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"xai/grok-4.20-multi-agent",name:"Grok 4.20 Multi-Agent"},{id:"perplexity/glm-5.2",name:"GLM 5.2"},{id:"perplexity/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"perplexity/sonar",name:"Sonar"}],passthroughModels:!0},{id:"featherless",priority:290,alias:"featherless",aliases:["fl"],uiAlias:"fl",display:{name:"Featherless",icon:"flutter_dash",color:"#FF6B35",textIcon:"FL",website:"https://featherless.ai",notice:{signupUrl:"https://featherless.ai",apiKeyUrl:"https://featherless.ai/account/api-keys",text:"Featherless hosts 46,000+ open-source models from HuggingFace. Get a key at featherless.ai/account/api-keys. OpenAI-compatible — works with any standard client. Models are auto-discovered at runtime."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.featherless.ai/v1/chat/completions",format:"openai",validateUrl:"https://api.featherless.ai/v1/models"},modelsFetcher:{url:"https://api.featherless.ai/v1/models?available_on_current_plan=true&per_page=100",type:"openai"},models:[{id:"meta-llama/Meta-Llama-3.1-8B-Instruct",name:"Llama 3.1 8B"},{id:"meta-llama/Meta-Llama-3.1-70B-Instruct",name:"Llama 3.1 70B"},{id:"Qwen/Qwen2.5-7B-Instruct",name:"Qwen 2.5 7B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"google/gemma-2-9b-it",name:"Gemma 2 9B"},{id:"mistralai/Mistral-7B-Instruct-v0.3",name:"Mistral 7B v0.3"},{id:"mistralai/Mixtral-8x7B-Instruct-v0.1",name:"Mixtral 8x7B"},{id:"deepseek-ai/deepseek-llm-7b-chat",name:"DeepSeek LLM 7B Chat"},{id:"microsoft/Phi-3.5-mini-instruct",name:"Phi 3.5 Mini"}],passthroughModels:!0},{id:"moonshot",priority:165,alias:"moonshot",aliases:["ms"],uiAlias:"ms",display:{name:"Moonshot AI",icon:"dark_mode",color:"#6D28D9",textIcon:"MS",website:"https://platform.moonshot.ai",notice:{signupUrl:"https://platform.moonshot.ai/console/api-keys",apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",text:"Moonshot AI is the official platform for Kimi models (kimi-k3, kimi-k2.6, kimi-k2.5). Get an API key at platform.moonshot.ai. OpenAI-compatible. kimi-k3 supports reasoning_effort: max."}},category:"apikey",authType:"apikey",thinkingConfig:{options:["auto","none","max"],defaultMode:"auto"},transport:{baseUrl:"https://api.moonshot.ai/v1/chat/completions",format:"openai",validateUrl:"https://api.moonshot.ai/v1/models"},models:[{id:"kimi-k3",name:"Kimi K3"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"moonshot-v1-8k-vision-preview",name:"Moonshot v1 8K Vision"},{id:"moonshot-v1-32k-vision-preview",name:"Moonshot v1 32K Vision"},{id:"moonshot-v1-128k-vision-preview",name:"Moonshot v1 128K Vision"}],passthroughModels:!0},{id:"qwencloud",priority:65,alias:"qc",aliases:["qwencloud"],uiAlias:"qc",display:{name:"QwenCloud",icon:"cloud",color:"#615CED",textIcon:"QC",website:"https://www.qwencloud.com",notice:{signupUrl:"https://www.qwencloud.com",apiKeyUrl:"https://www.qwencloud.com",text:"QwenCloud provides access to Qwen 3.7 models via web chat. Log in at qwencloud.com, open the chat at qwencloud.com/try-ai/chat?models=qwen3.7-max, then copy the FULL Cookie string + bx-ua + bx-umidtoken from DevTools. The executor handles the multi-step auth flow automatically."}},category:"webCookie",authType:"cookie",authHint:"Paste your cookie string from qwencloud.com (must include login_qwencloud_ticket). Optionally append: ; bx-ua=<value>; bx-umidtoken=<value> for accessToken generation.",transport:{baseUrl:"https://cs-stream.qwencloud.com/sse/console4Json",format:"qwencloud",authType:"cookie"},models:[{id:"qwen3.7-max",name:"Qwen 3.7 Max"},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus"}],passthroughModels:!0},{id:"forge",priority:310,alias:"forge",aliases:["fg","forgeai"],uiAlias:"fg",display:{name:"Forge Workspace",icon:"local_fire_department",color:"#FF6B35",textIcon:"FG",website:"https://www.forge-ai.space/",notice:{signupUrl:"https://www.forge-ai.space/?ref=ref-a556c7a8",apiKeyUrl:"https://www.forge-ai.space/?ref=ref-a556c7a8",text:"Forge Workspace is an AI model gateway with 33+ models across FREE and PRO tiers. Sign up for free credits at forge-ai.space, then paste your API key. OpenAI-compatible — works with any OpenAI-format client."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://forge-gateway-api.fly.dev/v1/chat/completions",format:"openai",validateUrl:"https://forge-gateway-api.fly.dev/v1/models"},models:[{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",contextWindow:105e4,tier:"FREE"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",contextWindow:105e4,tier:"FREE"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna",contextWindow:105e4,tier:"FREE"},{id:"gpt-5.5",name:"GPT-5.5",contextWindow:128e3,tier:"FREE"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindow:4e5,tier:"FREE"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,tier:"FREE"},{id:"claude-sonnet-4-6-thinking",name:"Claude Sonnet 4.6 Thinking",contextWindow:1e6,tier:"FREE"},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextWindow:1e6,tier:"FREE"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",contextWindow:2e5,tier:"FREE"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",contextWindow:2e5,tier:"FREE"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",contextWindow:2e5,tier:"FREE"},{id:"claude-fable-5",name:"Claude Fable 5",contextWindow:1e6,tier:"PRO"},{id:"grok-4.5",name:"Grok 4.5",contextWindow:5e5,tier:"FREE"},{id:"grok-4.3",name:"Grok 4.3",contextWindow:1e6,tier:"FREE"},{id:"grok-build-0.1",name:"Grok Build 0.1",contextWindow:256e3,tier:"FREE"},{id:"deepseek-r1",name:"DeepSeek R1",contextWindow:128e3,tier:"FREE"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:1e6,tier:"FREE"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:1e6,tier:"FREE"},{id:"deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:163e3,tier:"FREE"},{id:"deepseek-v3.1",name:"DeepSeek V3.1",contextWindow:128e3,tier:"FREE"},{id:"deepseek-v3",name:"DeepSeek V3",contextWindow:128e3,tier:"FREE"},{id:"kimi-k3",name:"Kimi K3",contextWindow:1e6,tier:"FREE"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",contextWindow:1e6,tier:"FREE"},{id:"kimi-k2.6",name:"Kimi K2.6",contextWindow:1e6,tier:"FREE"},{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:1e6,tier:"FREE"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,tier:"FREE"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",contextWindow:1e6,tier:"FREE"},{id:"tencent/hy3",name:"Tencent HY3",contextWindow:1e6,tier:"FREE"},{id:"mimo-v2.5",name:"MiMo V2.5",contextWindow:1e6,tier:"FREE"},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",contextWindow:1e6,tier:"FREE"},{id:"MiniMax-M3",name:"MiniMax M3",contextWindow:1e6,tier:"FREE"},{id:"MiniMax-M2.5",name:"MiniMax M2.5",contextWindow:1e6,tier:"FREE"},{id:"glm-5.2",name:"GLM 5.2",contextWindow:1e6,tier:"FREE"}],modelsFetcher:{url:"https://forge-gateway-api.fly.dev/v1/models",type:"forge"},thinkingConfig:{options:["auto","none","max"],defaultMode:"auto"},passthroughModels:!0},{id:"tokenrouter",priority:320,alias:"tokenrouter",aliases:[],uiAlias:"tr",display:{name:"TokenRouter",icon:"router",color:"#10B981",textIcon:"TR",website:"https://api.tokenrouter.com",notice:{signupUrl:"https://api.tokenrouter.com",apiKeyUrl:"https://api.tokenrouter.com",text:"TokenRouter is an AI model gateway with Claude, GPT, Gemini, Kimi, DeepSeek, GLM and more. Create an API key at api.tokenrouter.com, then paste it here. OpenAI-compatible — works with any OpenAI-format client. For Quota Tracker, also paste your management key (separate from the chat sk- key)."}},category:"apikey",authType:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://api.tokenrouter.com/v1/chat/completions",format:"openai",thinkingFormat:"openai",validateUrl:"https://api.tokenrouter.com/v1/models",usage:{walletUrl:"https://api.tokenrouter.com/api/management/self/wallet"}},models:[],passthroughModels:!0,modelsFetcher:{url:"https://api.tokenrouter.com/v1/models",type:"tokenrouter"},pricing:"tokenrouter",thinkingConfig:{options:["auto","none","low","medium","high","xhigh","max"],defaultMode:"auto"}},x,{id:"alibaba",priority:160,alias:"alibaba",aliases:["ali"],uiAlias:"ali",display:{name:"Alibaba (Model Studio)",icon:"cloud",color:"#FF6A00",textIcon:"AL",website:"https://dashscope.console.aliyun.com",notice:{signupUrl:"https://dashscope.console.aliyun.com",apiKeyUrl:"https://dashscope.console.aliyun.com/apiKey",text:"Alibaba Cloud Model Studio (DashScope International). Create an API key at dashscope.console.aliyun.com. OpenAI-compatible."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",format:"openai",validateUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen3.6-27b",name:"Qwen3.6 27B"},{id:"qwen3.6-35b-a3b",name:"Qwen3.6 35B A3B"},{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.2-fast-preview",name:"GLM 5.2 Fast Preview"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"}],passthroughModels:!0},{id:"alibaba-cn",priority:161,alias:"alibaba-cn",aliases:["alicn"],uiAlias:"alicn",display:{name:"Alibaba (China)",icon:"cloud",color:"#FF6A00",textIcon:"AC",website:"https://dashscope.console.aliyun.com",notice:{signupUrl:"https://dashscope.console.aliyun.com",apiKeyUrl:"https://dashscope.console.aliyun.com/apiKey",text:"Alibaba Cloud Model Studio (DashScope China region). Create an API key at dashscope.console.aliyun.com. OpenAI-compatible."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",format:"openai",validateUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen3.6-27b",name:"Qwen3.6 27B"},{id:"qwen3.6-35b-a3b",name:"Qwen3.6 35B A3B"},{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.2-fast-preview",name:"GLM 5.2 Fast Preview"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"}],passthroughModels:!0},y,z,{id:"inxorastudio-web",priority:345,alias:"ix-web",aliases:["ixweb"],uiAlias:"ix-web",display:{name:"InxoraStudio Labs (Web)",icon:"science",color:"#A78BFA",textIcon:"IX",website:"https://labs.inxorastudio.com",notice:{signupUrl:"https://labs.inxorastudio.com",text:"InxoraStudio Labs web dashboard chat. Log in at labs.inxorastudio.com, then open DevTools → Network → copy the Authorization Bearer token (eyJ...) from any API request. Paste it here."}},category:"webCookie",authType:"cookie",authHint:"Paste your Bearer JWT token (eyJ...) from labs.inxorastudio.com DevTools",transport:{baseUrl:"https://labs.inxorastudio.com/api/conversations",format:"inxorastudio-web",authType:"cookie"},models:[],passthroughModels:!0,modelsFetcher:{url:"https://labs.inxorastudio.com/api/ai/models",type:"inxora"}},A,B,C,{id:"1min",priority:365,alias:"1min",aliases:["1m"],uiAlias:"1m",display:{name:"1min.ai",icon:"bolt",color:"#8B5CF6",textIcon:"1M",website:"https://1min.ai",notice:{signupUrl:"https://1min.ai?referrer_id=3cf6f69c-2006-4ce2-93d5-de493365e967",text:"1min.ai is an AI platform with 38+ coding models (Claude, GPT, Gemini, DeepSeek, Qwen, GLM, Grok). Log in at app.1min.ai, then open DevTools → Network → copy the x-auth-token Bearer value (eyJ...) from any API request. Paste it here."}},category:"webCookie",authType:"cookie",authHint:"Paste your Bearer JWT token (eyJ...) from app.1min.ai DevTools (x-auth-token header)",transport:{baseUrl:"https://api.1min.ai/teams",format:"1min",authType:"cookie"},models:[{id:"claude-5-sonnet",name:"Claude 5 Sonnet"},{id:"claude-4-6-sonnet",name:"Claude 4.6 Sonnet"},{id:"claude-4-8-opus",name:"Claude 4.8 Opus"},{id:"gpt-5-6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5-6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5-5",name:"GPT-5.5"},{id:"deepseek-v3-2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"gemini-3-5-flash",name:"Gemini 3.5 Flash"},{id:"glm-5-2",name:"GLM-5.2"},{id:"xai-grok-code-fast-1",name:"Grok Code Fast 1"}],passthroughModels:!0,modelsFetcher:{url:"https://api.1min.ai/models?feature=CODE_GENERATOR",type:"1min"}},{id:"1min-api",priority:364,alias:"1min-api",aliases:["1m-api","1minai"],uiAlias:"1m-api",display:{name:"1min.ai (API)",icon:"bolt",color:"#7C3AED",textIcon:"1M",website:"https://1min.ai",notice:{signupUrl:"https://1min.ai?referrer_id=3cf6f69c-2006-4ce2-93d5-de493365e967",apiKeyUrl:"https://1min.ai?referrer_id=3cf6f69c-2006-4ce2-93d5-de493365e967",text:"1min.ai official API. Create an API key in your dashboard (app.1min.ai → API), then paste it here. Uses the chat-with-ai streaming endpoint with 38+ models (Claude, GPT, Gemini, DeepSeek, Qwen, GLM, Grok)."}},category:"freeTier",hasFree:!0,authType:"apikey",authHint:"Paste your 1min.ai API key (from app.1min.ai → API). Starts with letters/numbers — no 'Bearer' prefix.",transport:{baseUrl:"https://api.1min.ai/api/chat-with-ai",format:"1min-api",authType:"apikey",auth:{header:"API-KEY",scheme:"raw"},validateUrl:"https://api.1min.ai/api/profile"},models:[{id:"claude-5-sonnet",name:"Claude 5 Sonnet"},{id:"claude-4-6-sonnet",name:"Claude 4.6 Sonnet"},{id:"claude-4-8-opus",name:"Claude 4.8 Opus"},{id:"gpt-5-6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5-6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5-5",name:"GPT-5.5"},{id:"deepseek-v3-2-reasoner",name:"DeepSeek V3.2 Reasoner"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"gemini-3-5-flash",name:"Gemini 3.5 Flash"},{id:"glm-5-2",name:"GLM-5.2"},{id:"xai-grok-code-fast-1",name:"Grok Code Fast 1"}],passthroughModels:!0,modelsFetcher:{url:"https://api.1min.ai/models?feature=UNIFY_CHAT_WITH_AI",type:"1min"}},{id:"marathon",priority:363,alias:"marathon",aliases:["mara","marathonbuild"],uiAlias:"mara",display:{name:"Marathon",icon:"timer",color:"#0EA5E9",textIcon:"MR",website:"https://marathon.build",notice:{signupUrl:"https://marathon.build",apiKeyUrl:"https://marathon.build",text:"Marathon (by GoKite AI) is adaptive inference infrastructure. Choose a completion window per request: 'now' for real-time streaming, or 'soon'/'later'/'anytime' for up to 65% cost savings (delayed async with automatic polling). Create an API key at marathon.build, then paste it here."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://delayed-inference.prod.gokite.ai/v1/delayed/chat/completions",format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"kimi-k3",name:"Kimi K3"},{id:"glm-5-2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"qwen3-6-35b-a3b",name:"Qwen3.6-35B-A3B"},{id:"nemotron-3-ultra",name:"Nemotron 3 Ultra"}],passthroughModels:!0,modelsFetcher:{url:"https://delayed-inference.prod.gokite.ai/v1/models",type:"openai"}},{id:"zed",priority:56,alias:"zed",uiAlias:"zed",display:{name:"Zed Hosted AI",icon:"code",color:"#1348DC",textIcon:"Z",website:"https://zed.dev",notice:{signupUrl:"https://zed.dev",text:"Zed Hosted AI provides access to Claude, GPT, and Gemini models via the Zed Editor cloud. Import your Zed credentials (user ID + access token from the Zed keychain) to mint an LLM token automatically."}},category:"oauth",authType:"oauth",hasOAuth:!0,transport:{baseUrl:"https://cloud.zed.dev",chatPath:"/completions",format:"openai",forceStream:!0,headers:{"Content-Type":"application/json","x-zed-client-supports-status-messages":"true","x-zed-client-supports-stream-ended-request-completion-status":"true","x-zed-client-supports-x-ai":"true"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://cloud.zed.dev/client/users/me"},modelsUrl:"https://cloud.zed.dev/models"},models:[],passthroughModels:!0,oauth:{apiEndpoint:"https://cloud.zed.dev",completionsPath:"/completions",modelsPath:"/models",llmTokensPath:"/client/llm_tokens",usersMePath:"/client/users/me",refreshLeadMs:3e5},features:{usage:!0,usageApikey:!1}},E,{id:"agnes-web",priority:58,alias:"agnes",aliases:["agnes-web"],uiAlias:"agnes",display:{name:"Agnes (Web)",icon:"auto_awesome",color:"#6C5CE7",textIcon:"AG",website:"https://app.agnes-ai.com",notice:{signupUrl:"https://app.agnes-ai.com",text:"Agnes is an agentic AI assistant. Log in at app.agnes-ai.com, then copy the token cookie value (eyJ...) from DevTools. Paste it here. The JWT is valid for ~28 days."}},category:"webCookie",authType:"cookie",authHint:"Paste your Agnes JWT token (from app.agnes-ai.com cookie 'token' or Authorization Bearer header). Starts with eyJ...",transport:{baseUrl:"https://api.agnes-ai.com/api/v1/agnes/chat/stream",format:"agnes-web",authType:"cookie"},models:[{id:"agnes-super",name:"Agnes Super (Agent)"}],passthroughModels:!0},{id:"agnes-api",priority:59,alias:"agnes-api",aliases:["agnesaapi"],uiAlias:"agnes-api",display:{name:"Agnes AI (API)",icon:"auto_awesome",color:"#6C5CE7",textIcon:"AG",website:"https://app.agnes-ai.com",notice:{signupUrl:"https://app.agnes-ai.com",apiKeyUrl:"https://app.agnes-ai.com",text:"Agnes AI official API. Create an API key in your Agnes dashboard, then paste it here. OpenAI-compatible — supports streaming, vision, and reasoning. Free tier available for Agnes 2.0/2.5 Flash."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://apihub.agnes-ai.com/v1/chat/completions",format:"openai",validateUrl:"https://apihub.agnes-ai.com/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"agnes-2.5-pro-alpha",name:"Agnes 2.5 Pro Alpha",contextWindow:1e6,maxOutput:65536},{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash",contextWindow:524288,maxOutput:65536},{id:"agnes-2.0",name:"Agnes 2.0",contextWindow:524288,maxOutput:65536}],passthroughModels:!0,modelsFetcher:{url:"https://apihub.agnes-ai.com/v1/models",type:"openai"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://apihub.agnes-ai.com/v1/images/generations",bodyFields:["model","prompt","n","size","response_format"]}},G,I,{id:"deepinfra",priority:50,alias:"deepinfra",display:{name:"DeepInfra",icon:"hub",color:"#2563EB",textIcon:"DI",website:"https://deepinfra.com",notice:{apiKeyUrl:"https://deepinfra.com/dash/api_keys",text:"DeepInfra hosts hundreds of open models (Llama, Qwen, DeepSeek, GLM, Kimi, MiniMax). Get an API key from deepinfra.com/dash/api_keys — free signup credits included."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.deepinfra.com/v1/openai/chat/completions",validateUrl:"https://api.deepinfra.com/v1/openai/models"},models:[{id:"anthropic/claude-4-opus",name:"Claude 4 Opus"},{id:"anthropic/claude-4-sonnet",name:"Claude 4 Sonnet"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"openai/gpt-oss-20b",name:"GPT OSS 20B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"meta-llama/Llama-4-Scout-17B-16E-Instruct",name:"Llama 4 Scout"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5 397B"},{id:"Qwen/Qwen3.6-35B-A3B",name:"Qwen3.6 35B"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B"},{id:"XiaomiMiMo/MiMo-V2.5-Pro",name:"MiMo V2.5 Pro"}],passthroughModels:!0,hasFree:!0,freeNote:"Free signup credits for API testing and model exploration"},{id:"codestral",priority:50,alias:"codestral",display:{name:"Codestral",icon:"terminal",color:"#FF7000",textIcon:"CS",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys/",text:"Codestral is Mistral's code-specialist model. Get an API key from console.mistral.ai — free tier available for non-commercial use."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://codestral.mistral.ai/v1/chat/completions",validateUrl:"https://codestral.mistral.ai/v1/models"},models:[{id:"codestral-2508",name:"Codestral 2508"},{id:"codestral-latest",name:"Codestral Latest"}],passthroughModels:!0},{id:"databricks",priority:50,alias:"databricks",display:{name:"Databricks",icon:"table_chart",color:"#F97316",textIcon:"DB",website:"https://www.databricks.com",notice:{apiKeyUrl:"https://accounts.cloud.databricks.com/oidc/token",text:"Databricks Mosaic AI Model Serving. Base URL is your workspace serving-endpoint (https://<workspace>.cloud.databricks.com/serving-endpoints/...). For self-hosted workspaces, add the endpoint URL via a custom baseUrl connection."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://adb-0000000000000000.0.azuredatabricks.net/serving-endpoints",validateUrl:"https://adb-0000000000000000.0.azuredatabricks.net/serving-endpoints"},models:[{id:"databricks-gpt-5",name:"Databricks GPT-5"},{id:"databricks-meta-llama-3-3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"databricks-claude-sonnet-4",name:"Claude Sonnet 4"},{id:"databricks-gemini-2-5-pro",name:"Gemini 2.5 Pro"}]},{id:"unimodel",priority:280,alias:"unimodel",aliases:["um","unimodel-ai"],uiAlias:"um",display:{name:"UniModel",icon:"hub",color:"#7C4DFF",textIcon:"UM",website:"https://unimodel.ai",notice:{signupUrl:"https://unimodel.ai",apiKeyUrl:"https://unimodel.ai",text:"UniModel.ai aggregates LLMs from one key, converting them to OpenAI-compatible endpoints. Get a key from the UniModel dashboard. Models are auto-discovered at runtime."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://sg.unimodel.ai/v1/chat/completions",format:"openai",validateUrl:"https://sg.unimodel.ai/v1/models"},modelsFetcher:{url:"https://sg.unimodel.ai/v1/models",type:"openai"},models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"claude-3-7-sonnet",name:"Claude 3.7 Sonnet"},{id:"claude-3-5-sonnet",name:"Claude 3.5 Sonnet"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-reasoner",name:"DeepSeek Reasoner"}],passthroughModels:!0},{id:"inferx",priority:50,alias:"inferx",aliases:["ix"],uiAlias:"inferx",display:{name:"InferX",icon:"bolt",color:"#6366F1",textIcon:"IX",website:"https://model.inferx.net",notice:{signupUrl:"https://model.inferx.net/login",apiKeyUrl:"https://model.inferx.net/login",text:"InferX provides serverless OpenAI-compatible inference endpoints for open models. Sign up at model.inferx.net/login to get your tenant-scoped API key. Free / 100% discount models available."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://model.inferx.net/endpoints/v1/chat/completions",format:"openai",validateUrl:"https://model.inferx.net/endpoints/v1/models"},modelsFetcher:{url:"https://model.inferx.net/endpoints/v1/models",type:"openai"},models:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash (0731)"},{id:"Qwen3.6-35B-A3B-FP8",name:"Qwen 3.6 35B A3B"},{id:"Qwen3.6-35B-A3B-fp8-no-thinking",name:"Qwen 3.6 35B A3B (No Thinking)"},{id:"Qwen3-Coder-Next-FP8",name:"Qwen 3 Coder Next"},{id:"gemma-4-31B-it-fp8",name:"Gemma 4 31B IT"},{id:"glm-52",name:"GLM 52"},{id:"Agents-A1",name:"Agents A1"},{id:"Devstral-2-123B-Instruct-2512-int4-AutoRound",name:"Devstral 2 123B Instruct"},{id:"Ornith-1.0-35B-FP8",name:"Ornith 1.0 35B"},{id:"Qwen3.6-27B-FP8",name:"Qwen 3.6 27B"},{id:"Qwen3-Embedding-8B",name:"Qwen 3 Embedding 8B"}],passthroughModels:!0,hasFree:!0,freeNote:"100% discount free-tier models available upon login at model.inferx.net"},{id:"novita",priority:50,alias:"novita",aliases:["nv"],uiAlias:"novita",display:{name:"Novita AI",icon:"hub",color:"#8B5CF6",textIcon:"NV",website:"https://novita.ai",notice:{signupUrl:"https://novita.ai",apiKeyUrl:"https://novita.ai/dashboard/key-management",text:"Novita AI offers fast, low-cost API inference for open LLMs (DeepSeek R1/V3, Llama, Qwen, GLM) with OpenAI SDK compatibility. Sign up at novita.ai to get your API key."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.novita.ai/v3/openai/chat/completions",format:"openai",validateUrl:"https://api.novita.ai/v3/openai/models"},modelsFetcher:{url:"https://api.novita.ai/v3/openai/models",type:"openai"},models:[{id:"deepseek/deepseek-r1",name:"DeepSeek R1"},{id:"deepseek/deepseek-v3",name:"DeepSeek V3"},{id:"deepseek/deepseek-r1-distill-llama-70b",name:"DeepSeek R1 Distill Llama 70B"},{id:"deepseek/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"meta-llama/llama-3.1-405b-instruct",name:"Llama 3.1 405B Instruct"},{id:"qwen/qwen-2.5-72b-instruct",name:"Qwen 2.5 72B Instruct"},{id:"qwen/qwen-2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B"},{id:"mistralai/mistral-nemo",name:"Mistral Nemo"}],passthroughModels:!0,hasFree:!0,freeNote:"Free trial credits upon signup at novita.ai"},{id:"kimi-desktop",priority:131,alias:"kimi-desktop",uiAlias:"kimi-desktop",display:{name:"Kimi Desktop (App)",icon:"auto_fix_high",color:"#4338CA",textIcon:"KD",website:"https://www.kimi.com",notice:{signupUrl:"https://www.kimi.com",text:"Kimi Desktop (Windows/macOS app). Log in on the desktop app, then import the session automatically — the gateway reads the token store in the app's AppData folder and uses it against www.kimi.com. No browser cookies needed. If the session has expired, re-open the desktop app and re-login, then import again."}},category:"oauth",authType:"import_token",authHint:"Session imported from the Kimi desktop app. Re-import after re-login to refresh.",transport:{baseUrl:"https://www.kimi.com",format:"kimi-web",authType:"cookie"},models:[{id:"kimi-default",name:"Kimi Default"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 (Thinking)",supportsReasoning:!0},{id:"kimi-k2.5-search",name:"Kimi K2.5 (Search)"},{id:"kimi-k2.5-thinking-search",name:"Kimi K2.5 (Thinking + Search)",supportsReasoning:!0},{id:"kimi-2.6-fast",name:"Kimi 2.6 Fast"},{id:"kimi-2.6-thinking",name:"Kimi 2.6 (Thinking)",supportsReasoning:!0},{id:"kimi-2.6-search",name:"Kimi 2.6 (Search)"},{id:"kimi-2.6-thinking-search",name:"Kimi 2.6 (Thinking + Search)",supportsReasoning:!0},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 (Thinking)",supportsReasoning:!0},{id:"kimi-k2-search",name:"Kimi K2 (Search)"},{id:"kimi-k2-thinking-search",name:"Kimi K2 (Thinking + Search)",supportsReasoning:!0},{id:"kimi-thinking",name:"Kimi (Thinking)",supportsReasoning:!0},{id:"kimi-search",name:"Kimi (Search)"},{id:"kimi-thinking-search",name:"Kimi (Thinking + Search)",supportsReasoning:!0},{id:"kimi-k3",name:"Kimi K3"}],passthroughModels:!0,features:{usage:!0},thinkingConfig:{options:["standard","high","max"],defaultMode:"high"},quotaFamily:"kimi-desktop",oauth:{tokenStoragePath:{win32:"%APPDATA%\\kimi-desktop\\bridge-store\\token-store.json",darwin:"~/Library/Application Support/kimi-desktop/bridge-store/token-store.json"},dbKeys:{accessToken:"tokens.access_token",refreshToken:"tokens.refresh_token",userId:"tokens.msh_user_id"}}},J,{id:"workbuddy",alias:"wb",uiAlias:"wb",hidden:!1,priority:90,display:{name:"WorkBuddy",icon:"smart_toy",color:"#006EFF",website:"https://www.workbuddy.ai",notice:{signupUrl:"https://www.workbuddy.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.workbuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"CLI/2.108.1 WorkBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.workbuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"hy3",name:"Hy3"},{id:"hy4-preview",name:"Hy4 Preview"},{id:"hy4-preview-x",name:"Hy4 Preview X"},{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k3-1",name:"Kimi-K3.1"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],oauth:{baseUrl:"https://www.workbuddy.ai",stateUrl:"https://www.workbuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.workbuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.workbuddy.ai/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 WorkBuddy/2.63.2",platform:"workbuddy",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codebuddy-intl",alias:"cbai",uiAlias:"cbai",hidden:!1,priority:90,display:{name:"CodeBuddy Intl",icon:"smart_toy",color:"#006EFF",website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.codebuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"IDE/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"IDE","X-IDE-Name":"IDE","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.codebuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.1",name:"GLM-5.1"},{id:"glm-5.0-turbo",name:"GLM-5.0-Turbo"},{id:"glm-5v-turbo",name:"GLM-5v-Turbo"},{id:"minimax-m3",name:"MiniMax-M3"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"kimi-k3-1",name:"Kimi-K3.1"},{id:"kimi-k2.7",name:"Kimi-K2.7-Code"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"hy4-preview",name:"Hy4 Preview"},{id:"hy4-preview-x",name:"Hy4 Preview X"},{id:"hy3-preview",name:"Hy3 Preview"},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro"},{id:"deepseek-v4-flash",name:"DeepSeek-V4-Flash"},{id:"deepseek-v3-2-volc",name:"DeepSeek-V3.2"}],oauth:{baseUrl:"https://www.codebuddy.ai",stateUrl:"https://www.codebuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.codebuddy.ai/v2/plugin/auth/token/refresh",userAgent:"IDE/2.63.2 CodeBuddy/2.63.2",platform:"ide",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},K,{id:"helyxai",priority:140,alias:"helyxai",aliases:["hx"],uiAlias:"hx",display:{name:"Helyx AI",icon:"hub",color:"#7C3AED",textIcon:"HX",website:"https://helyxai.space",notice:{signupUrl:"https://helyxai.space",apiKeyUrl:"https://helyxai.space/dashboard",text:"Helyx AI — one OpenAI-compatible API for 50+ models (GPT, Claude, Gemini, Kimi, DeepSeek, Grok) plus image/video generation. Free tier: 100K tokens/day, resets every 24h."}},category:"apikey",authType:"apikey",hasFree:!0,freeNote:"Free plan: 100K tokens daily, resets every 24 hours.",transport:{baseUrl:"https://helyxai.space/v1/chat/completions",format:"openai"},pricing:"helyxai",passthroughModels:!0,models:[{id:"DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna"},{id:"gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite"},{id:"GLM-5.2",name:"GLM 5.2"},{id:"Qwen3-32B",name:"Qwen3 32B"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"Mistral-4",name:"Mistral 4"},{id:"gemma-4-31B-it",name:"Gemma 4 31B"},{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"Kimi-K3",name:"Kimi K3"},{id:"llama-3.1-8b-instruct",name:"Llama 3.1 8B Instruct"},{id:"flux-1",name:"FLUX 1",params:["n","size"],kind:"image"},{id:"kling-video",name:"Kling Video",params:["duration"],kind:"video"}],serviceKinds:["llm","image","video"],imageConfig:{baseUrl:"https://helyxai.space/v1/images/generations",bodyFields:["model","prompt","n","size","response_format"]},videoConfig:{baseUrl:"https://helyxai.space/v1/videos/generations",bodyFields:["model","prompt","duration"]}},{id:"freebuff",priority:66,alias:"fb",aliases:["freebuff-api","freebuff-token"],uiAlias:"fb",display:{name:"Freebuff (Account)",icon:"bolt",color:"#F97316",textIcon:"FB",website:"https://freebuff.com",notice:{signupUrl:"https://freebuff.llm.pm",apiKeyUrl:"https://freebuff.llm.pm",text:"Connect your Freebuff account with a guided browser login (freebuff.com GitHub/Google) — no manual token needed. Already have an authToken? Paste it from https://freebuff.llm.pm or import it from the Freebuff CLI (~/.config/manicode/credentials.json)."}},category:"oauth",authModes:["oauth"],hasOAuth:!0,transport:{baseUrl:"https://codebuff.com",format:"freebuff",authType:"token"},models:[{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash (Freebuff)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro (Freebuff)"},{id:"openai/gpt-5.6-luna",name:"GPT-5.6 Luna (Freebuff)"},{id:"minimax/minimax-m3",name:"MiniMax M3 (Freebuff)"}],passthroughModels:!0},{id:"tencent-aistudio-web",priority:60,alias:"tasw",uiAlias:"tasw",display:{name:"Tencent AI Studio (Free)",icon:"auto_awesome",color:"#0052D9",textIcon:"TAS",website:"https://aistudio.tencent.ai",notice:{signupUrl:"https://aistudio.tencent.ai",apiKeyUrl:"https://aistudio.tencent.ai",text:"Free web session on Tencent AI Studio (aistudio.tencent.ai) — direct chat with Hunyuan models (hy3-g, Hunyuan Default, Hunyuan 3D). Open aistudio.tencent.ai, log in, then copy your full Cookie header (DevTools → Network → any request → Request Headers → Cookie). Paste the full cookie string here. Responses are streamed from the web /api/chat endpoint and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Log in to aistudio.tencent.ai, open DevTools → Network, copy any request Cookie header containing session tokens.",hasFree:!0,transport:{baseUrl:"https://aistudio.tencent.ai",format:"openai",authType:"cookie"},models:[{id:"hy3-g",name:"HY3-G (via Tencent AI Studio)",toolCalling:!1},{id:"hunyuan-default",name:"Hunyuan Default (via Tencent AI Studio)",toolCalling:!1},{id:"hunyuan-3d",name:"Hunyuan 3D (via Tencent AI Studio)",toolCalling:!1}]},{id:"aihorde",priority:60,alias:"aihorde",display:{name:"AI Horde",icon:"groups",color:"#9333EA",textIcon:"AH",website:"https://aihorde.net",notice:{text:"Crowdsourced inference from volunteer GPUs — free anonymous key (or an account key for higher queue priority via kudos). Requests wait in a shared queue, so latency is minutes, not seconds. No tool calling. The catalog changes as workers come and go."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://oai.aihorde.net/v1/chat/completions",format:"openai",noAuth:!0,timeoutMs:12e4},models:[{id:"aphrodite/TheDrummer/Cydonia-24B-v4.3",name:"Cydonia 24B (AI Horde)",contextLength:32768,toolCalling:!1},{id:"aphrodite/TheDrummer/Skyfall-31B-v4.2",name:"Skyfall 31B (AI Horde)",contextLength:32768,toolCalling:!1},{id:"google/gemma-4-31b",name:"Gemma 4 31B (AI Horde)",contextLength:32768,toolCalling:!1}],passthroughModels:!0},{id:"bazaarlink",priority:60,alias:"bzl",uiAlias:"bzl",display:{name:"BazaarLink",icon:"storefront",color:"#10B981",textIcon:"BZ",website:"https://bazaarlink.ai",notice:{apiKeyUrl:"https://bazaarlink.ai",text:"OpenAI-compatible gateway with a free tier: `auto:free` routes to zero-cost inference (4M tokens/day, no credit card). Sign up at bazaarlink.ai for an API key; the paid catalog (Claude, GPT-5.5, Grok, Gemini, GLM, Kimi, MiniMax, Qwen, Mistral, Llama, Nemotron) bills at vendor rates."}},category:"apikey",authType:"apikey",authHint:"Create an API key at bazaarlink.ai. Use model `auto:free` for the zero-cost free tier.",hasFree:!0,transport:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",format:"openai"},models:[{id:"auto:free",name:"Auto Free (Zero Cost)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{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:"grok-4.3",name:"Grok 4.3"},{id:"grok-4.20",name:"Grok 4.20"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B"},{id:"gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B"},{id:"deepseek-v3.2",name:"DeepSeek V3.2"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"mimo-v2.5-pro",name:"MiMo-V2.5-Pro"},{id:"mimo-v2.5",name:"MiMo-V2.5"},{id:"minimax-m3",name:"MiniMax M3",contextLength:1048576,supportsVision:!0},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama-4-scout",name:"Llama 4 Scout"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus"},{id:"mistral-large-2512",name:"Mistral Large 3"},{id:"mistral-medium-3.1",name:"Mistral Medium 3.1"},{id:"mistral-small-2603",name:"Mistral Small 4"},{id:"nemotron-3-super-120b-a12b",name:"Nemotron 3 Super"}]},{id:"dahl",priority:60,alias:"dahl",display:{name:"Dahl",icon:"local_florist",color:"#14B8A6",textIcon:"DH",website:"https://dahl.global",notice:{apiKeyUrl:"https://inference.dahl.global/tokens",text:"Free OpenAI-compatible inference — MiniMax M2.7 and Kimi K2.6. To mint a token: POST to https://inference.dahl.global/tokens, then paste the returned `token` field as the API key."}},category:"apikey",authType:"apikey",authHint:"POST https://inference.dahl.global/tokens (no body needed) → copy the `token` field from the JSON response into the API key field.",hasFree:!0,transport:{baseUrl:"https://inference.dahl.global/v1/chat/completions",format:"openai"},models:[{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"}]},{id:"dgrid",priority:60,alias:"dgrid",display:{name:"DGrid Free",icon:"grid_view",color:"#8B5CF6",textIcon:"DG",website:"https://dgrid.ai",notice:{apiKeyUrl:"https://dgrid.ai",text:"Free models router — `dgridai/free` auto-routes to available free models. Free tier: 10 requests/min and 100 requests/day."}},category:"apikey",authType:"apikey",authHint:"Create an API key at dgrid.ai. Free tier limited to 10 rpm / 100 rpd.",hasFree:!0,transport:{baseUrl:"https://api.dgrid.ai/v1/chat/completions",format:"openai"},models:[{id:"dgridai/free",name:"DGrid Free Models Router"}],passthroughModels:!0},{id:"felo-web",priority:60,alias:"felo",uiAlias:"felo",display:{name:"Felo (Free)",icon:"travel_explore",color:"#0EA5E9",textIcon:"FE",website:"https://felo.ai",notice:{signupUrl:"https://felo.ai",apiKeyUrl:"https://felo.ai",text:"Felo is a chat/search-agent aggregator backed by real frontier models (DeepSeek V4, GPT-5.6, Claude 5, Gemini 3.x…). Open felo.ai in a browser, run one search so the security check completes, then copy DevTools → Application → Session Storage → `turnstile_session_token` and paste it as `cf_token=<token>` (required for chat). For the profile badge, also copy the full Cookie header from any request (DevTools → Network → Request Headers) and append `; cookie=<full Cookie>` — the `felo-user-token` cookie identifies your account. `cf_token` alone is not enough for the badge."}},category:"webCookie",authType:"cookie",authHint:"Easiest: press 'Capture from Felo' above — it reads your logged-in session straight from the running browser (Brave/Chrome/Edge; if none is reachable, 'Launch browser' detects your OS and starts one with remote debugging). Manual: paste your session cookie `cookie=felo-user-token=<6h_...>` (DevTools → Application → Cookies → felo.ai — enough for chat AND the profile badge, no Turnstile needed for logged-in accounts). Anonymous fallback: `cf_token=<turnstile_session_token>` (DevTools → Application → Session Storage → felo.ai — NOT a cookie). Example: cookie=felo-user-token=6h_...",transport:{baseUrl:"https://felo.ai",format:"openai",authType:"cookie"},models:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (Felo)",toolCalling:!1},{id:"gpt-5-6-terra",name:"GPT-5.6 Terra (Felo, Pro)",toolCalling:!1},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna (Felo, Pro)",toolCalling:!1},{id:"claude-5-0-sonnet",name:"Claude 5 Sonnet (Felo, Pro)",toolCalling:!1},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash (Felo, Pro)",toolCalling:!1},{id:"grok-4.6",name:"Grok 4.6 (Felo, Pro)",toolCalling:!1},{id:"kimi-k2-thinking",name:"Kimi K2 (Felo, Pro)",toolCalling:!1}]},{id:"g4f-gemini",priority:60,alias:"g4fgem",uiAlias:"g4fgem",display:{name:"g4f.space — Gemini",icon:"auto_awesome",color:"#4285F4",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to Gemini (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/gemini/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"models/gemini-2.5-flash",name:"Gemini 2.5 Flash (g4f)"},{id:"models/gemini-2.5-pro",name:"Gemini 2.5 Pro (g4f)"}],passthroughModels:!0},{id:"g4f-groq",priority:60,alias:"g4fgroq",uiAlias:"g4fgroq",display:{name:"g4f.space — Groq",icon:"rocket_launch",color:"#F97316",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to Groq (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/groq/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B (g4f/Groq)"},{id:"llama-3.1-8b-instant",name:"Llama 3.1 8B Instant (g4f/Groq)"}],passthroughModels:!0},{id:"g4f-nvidia",priority:60,alias:"g4fnv",uiAlias:"g4fnv",display:{name:"g4f.space — NVIDIA",icon:"memory",color:"#76B900",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to NVIDIA NIM (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/nvidia/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"nvidia/nemotron-3-nano-30b-a3b",name:"Nemotron 3 Nano 30B (g4f/NVIDIA)"},{id:"z-ai/glm-5.2",name:"GLM 5.2 (g4f/NVIDIA)"},{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7 (g4f/NVIDIA)"}],passthroughModels:!0},{id:"g4f-ollama",priority:60,alias:"g4foll",uiAlias:"g4foll",display:{name:"g4f.space — Ollama",icon:"smart_toy",color:"#6366F1",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key hosted Ollama gateway (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/ollama/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"gemma3:4b",name:"Gemma 3 4B (g4f/Ollama)"}],passthroughModels:!0},{id:"g4f-pollinations",priority:60,alias:"g4fpol",uiAlias:"g4fpol",display:{name:"g4f.space — Pollinations",icon:"local_florist",color:"#A855F7",textIcon:"G4",website:"https://g4f.space",notice:{text:"Free no-key reverse proxy to Pollinations (gpt4free project) — rate-limited to ~5 req/min. No API key required."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://g4f.space/api/pollinations/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"openai",name:"OpenAI (g4f/Pollinations)"},{id:"openai-fast",name:"OpenAI Fast (g4f/Pollinations)"}],passthroughModels:!0},{id:"hackclub",priority:60,alias:"hcb",uiAlias:"hcb",display:{name:"Hack Club AI",icon:"construction",color:"#E8374C",textIcon:"HC",website:"https://hackclub.com",notice:{apiKeyUrl:"https://hackclub.com",text:"Free AI for Hack Club members — 30+ models (Llama, Mistral, DeepSeek, Qwen…), no credit card. Model ids are the Hugging Face ids (e.g. `meta-llama/llama-3.3-70b-instruct`). API key is optional."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://ai.hackclub.com/proxy/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"meta-llama/llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"mistralai/mistral-7b-instruct",name:"Mistral 7B"},{id:"deepseek-ai/deepseek-coder-33b",name:"DeepSeek Coder 33B"}],passthroughModels:!0},{id:"llm7",priority:60,alias:"llm7",display:{name:"LLM7",icon:"bolt",color:"#F59E0B",textIcon:"L7",website:"https://llm7.io",notice:{apiKeyUrl:"https://llm7.io",text:"No-signup free tier (2 req/s, 20 RPM, 100 req/hr). GPT-4o mini, GPT-4.1 nano, DeepSeek R1 and Qwen2.5 Coder via api.llm7.io."}},category:"apikey",authType:"apikey",authHint:"Create an API key at llm7.io. Free tier is rate-limited (~2 req/s).",hasFree:!0,transport:{baseUrl:"https://api.llm7.io/v1/chat/completions",format:"openai"},models:[{id:"gpt-4o-mini-2024-07-18",name:"GPT-4o mini (LLM7)"},{id:"gpt-4.1-nano-2025-04-14",name:"GPT-4.1 nano (LLM7)"},{id:"deepseek-r1-0528",name:"DeepSeek R1 (LLM7)"},{id:"qwen2.5-coder-32b-instruct",name:"Qwen2.5 Coder 32B (LLM7)"}]},{id:"mimocode",priority:60,alias:"mcode",uiAlias:"mcode",display:{name:"MiMoCode (Free)",icon:"smart_toy",color:"#FF6900",textIcon:"MC",website:"https://github.com/XiaomiMiMo/MiMo-Code",notice:{text:"Free Xiaomi MiMo models via bootstrap JWT auth — no API key required. Supports the `mimo-auto` model (1M context, 128K output) with streaming."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://api.xiaomimimo.com",format:"openai",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto",contextLength:1e6,maxOutput:131072}],passthroughModels:!0},{id:"theoldllm",priority:60,alias:"tllm",uiAlias:"tllm",display:{name:"The Old LLM (Free)",icon:"history_edu",color:"#F59E0B",textIcon:"TL",website:"https://theoldllm.vercel.app",notice:{text:"Free GPT-5.4, Claude 4.6 Opus/Sonnet/Haiku, Gemini 3 Pro, Grok 4, DeepSeek and more — no API key, tokens are auto-generated. If requests are blocked by Vercel bot protection, configure a residential/global proxy for this provider."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://theoldllm.vercel.app/api/chatgpt",format:"openai",noAuth:!0},models:[{id:"GPT_5_4",name:"GPT-5.4 (The Old LLM)",contextLength:4e5},{id:"GPT_5_3",name:"GPT-5.3 (The Old LLM)",contextLength:4e5},{id:"GPT_5_2",name:"GPT-5.2 (The Old LLM)",contextLength:4e5},{id:"GPT_5_1",name:"GPT-5.1 (The Old LLM)",contextLength:4e5},{id:"GPT_5",name:"GPT-5 (The Old LLM)",contextLength:4e5},{id:"GPT_o4_mini",name:"o4-mini (The Old LLM)"},{id:"GPT_o3_mini",name:"o3-mini (The Old LLM)"},{id:"gemini_3_pro",name:"Gemini 3 Pro (The Old LLM)",contextLength:1e6},{id:"gemini_2_5_pro",name:"Gemini 2.5 Pro (The Old LLM)",contextLength:1e6},{id:"gemini_2_0_flash",name:"Gemini 2.0 Flash (The Old LLM)",contextLength:1e6},{id:"gemini_1_5_flash",name:"Gemini 1.5 Flash (The Old LLM)",contextLength:1e6},{id:"CLAUDE_4_6_OPUS",name:"Claude 4.6 Opus (The Old LLM)",contextLength:2e5},{id:"CLAUDE_4_6_SONNET",name:"Claude 4.6 Sonnet (The Old LLM)",contextLength:2e5},{id:"CLAUDE_4_5_HAIKU",name:"Claude 4.5 Haiku (The Old LLM)",contextLength:2e5},{id:"openrouter_gpt_4_o",name:"GPT-4o (The Old LLM)"},{id:"openrouter_gpt_4_o_mini",name:"GPT-4o mini (The Old LLM)"},{id:"openrouter_grok_4",name:"Grok 4 (The Old LLM)"},{id:"together_deepseek_v3",name:"DeepSeek V3 (The Old LLM)"},{id:"openrouter_deepseek_r1",name:"DeepSeek R1 (The Old LLM)"},{id:"sonar-pro",name:"Sonar Pro (The Old LLM)"}],passthroughModels:!0},{id:"uncloseai",priority:60,alias:"unc",uiAlias:"unc",display:{name:"UncloseAI",icon:"lock_open",color:"#22C55E",textIcon:"UC",website:"https://hermes.ai.unturf.com",notice:{text:"Free forever OpenAI-compatible gateway — no signup, no credit card. Model ids are served verbatim (e.g. `adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic`, `qwen3.6:27b`, `gemma4:31b`). API key is optional."}},category:"free",noAuth:!0,hasFree:!0,transport:{baseUrl:"https://hermes.ai.unturf.com/v1/chat/completions",format:"openai",noAuth:!0},models:[{id:"adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic",name:"Hermes 3 Llama 3.1 8B (Free)"},{id:"qwen3.6:27b",name:"Qwen3 Coder 27B (Free)"},{id:"gemma4:31b",name:"Gemma 4 31B (Free)"}],passthroughModels:!0},{id:"ai21",priority:50,alias:"ai21",display:{name:"AI21 Labs",icon:"psychology_alt",color:"#0284C7",textIcon:"A21",website:"https://www.ai21.com",notice:{apiKeyUrl:"https://studio.ai21.com/account/api-keys",text:"$10 trial credits on signup (valid 3 months), no credit card required."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.ai21.com/studio/v1/chat/completions",validateUrl:"https://api.ai21.com/studio/v1/models"},models:[{id:"jamba-large-1.7",name:"Jamba Large 1.7"},{id:"jamba-mini-2",name:"Jamba Mini 2"}],serviceKinds:["llm"],hasFree:!0,freeNote:"$10 trial credits on signup (valid 3 months), no credit card required"},{id:"aimlapi",priority:50,alias:"aiml",display:{name:"AI/ML API",icon:"hub",color:"#6366F1",textIcon:"AI",website:"https://aimlapi.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.aimlapi.com/v1/chat/completions",validateUrl:"https://api.aimlapi.com/v1/models"},models:[{id:"gpt-4o",name:"GPT-4o (via AI/ML API)"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet (via AI/ML API)"},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro (via AI/ML API)"},{id:"meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",name:"Llama 3.1 70B (via AI/ML API)"},{id:"deepseek-chat",name:"DeepSeek Chat (via AI/ML API)"},{id:"mistral-large-latest",name:"Mistral Large (via AI/ML API)"}],passthroughModels:!0,freeNote:"Free tier paused (2026) — AI/ML API is now pay-as-you-go only (min $20 top-up); no recurring free credits."},{id:"ainative",priority:50,alias:"ainative",display:{name:"AINative Studio",icon:"hub",color:"#7C3AED",textIcon:"AN",website:"https://ainative.studio",notice:{text:"Create a free API key at ainative.studio (no card), then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.ainative.studio/api/v1/chat/completions",validateUrl:"https://api.ainative.studio/api/v1/models"},models:[{id:"qwen3-235b-cerebras",name:"Qwen3 235B (Cerebras)"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"qwen3-14b",name:"Qwen3 14B"},{id:"qwen3-8b",name:"Qwen3 8B"},{id:"llama-4-maverick",name:"Llama 4 Maverick"},{id:"llama3.1-8b-cerebras",name:"Llama 3.1 8B (Cerebras)"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"nous-coder",name:"Nous Coder"},{id:"gemini-flash",name:"Gemini Flash"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier ~10M tokens/month (claimed) across Qwen3, Llama 4, DeepSeek R1 and more."},{id:"aion",priority:50,alias:"aion",display:{name:"Aion Labs",icon:"hub",color:"#0EA5E9",textIcon:"AI",website:"https://www.aionlabs.ai",notice:{text:"Create a free API key at aionlabs.ai (no card), then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.aionlabs.ai/v1/chat/completions",validateUrl:"https://api.aionlabs.ai/v1/models"},models:[{id:"aion-labs/aion-3.0",name:"Aion 3.0"},{id:"aion-labs/aion-3.0-mini",name:"Aion 3.0 Mini"},{id:"aion-labs/aion-2.5",name:"Aion 2.5"},{id:"aion-labs/aion-2.0",name:"Aion 2.0"},{id:"aion-labs/aion-rp-llama-3.1-8b",name:"Aion RP Llama 3.1 8B"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier ~20k tokens/day across the Aion reasoning models."},{id:"anyapi",priority:50,alias:"anyapi",display:{name:"AnyAPI AI",icon:"hub",color:"#0EA5E9",textIcon:"AA",website:"https://anyapi.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.anyapi.ai/v1/chat/completions",validateUrl:"https://api.anyapi.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: 100,000 ANY Tokens/day and 100 RPM for eligible Free/Basic models; no credit card required."},{id:"arcee-ai",priority:50,alias:"arcee-ai",aliases:["arcee"],uiAlias:"arcee",display:{name:"Arcee AI",icon:"auto_awesome",color:"#8B5CF6",textIcon:"AR",website:"https://arcee.ai",notice:{apiKeyUrl:"https://docs.arcee.ai/api-reference/authentication",text:"OpenAI-compatible. Free Trinity Large Thinking model (262K context), no credit card required."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.arcee.ai/api/v1/chat/completions",validateUrl:"https://api.arcee.ai/api/v1/models"},models:[{id:"trinity-mini",name:"Trinity Mini"},{id:"trinity-large-thinking",name:"Trinity Large Thinking"},{id:"trinity-large-preview",name:"Trinity Large Preview"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free Trinity Large Thinking model (262K context). No credit card required."},{id:"auriko",priority:50,alias:"auriko",display:{name:"Auriko",icon:"hub",color:"#0891B2",textIcon:"AU",website:"https://www.auriko.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.auriko.ai/v1/chat/completions",validateUrl:"https://api.auriko.ai/v1/models"},models:[{id:"minimax-m2-7",name:"MiniMax-M2.7"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],passthroughModels:!0,hasFree:!0,freeNote:"Free plan publishes 1,000 Platform RPM and 10,000 BYOK RPM. Platform inference still passes through provider cost; this is not a free-token pool or unlimited free inference."},{id:"azure-ai",priority:40,alias:"azure-ai",display:{name:"Azure AI Foundry",icon:"cloud",color:"#2563EB",textIcon:"AF",website:"https://learn.microsoft.com/azure/ai-foundry",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI",text:"Azure AI Foundry uses the OpenAI v1 surface with deployment names as models. Base URL is per resource — e.g. https://<resource>.services.ai.azure.com/openai/v1. Add the resource endpoint via a custom baseUrl connection."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://example-resource.services.ai.azure.com/openai/v1/chat/completions",validateUrl:"https://example-resource.services.ai.azure.com/openai/v1/models"},passthroughModels:!0},{id:"bai",priority:50,alias:"bai",display:{name:"b.ai",icon:"hub",color:"#6366F1",textIcon:"BA",website:"https://b.ai",notice:{text:"Bearer API key for the b.ai OpenAI-compatible LLM gateway (distinct from TheB.AI). Create a key at https://docs.b.ai, then use https://api.b.ai/v1 OpenAI-compat"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.b.ai/v1/chat/completions",validateUrl:"https://api.b.ai/v1/models"},passthroughModels:!0},{id:"baseten",priority:50,alias:"baseten",display:{name:"Baseten",icon:"deployed_code",color:"#111827",textIcon:"BT",website:"https://baseten.co"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.baseten.co/v1/chat/completions",validateUrl:"https://inference.baseten.co/v1/models"},models:[{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"nvidia/Nemotron-120B-A12B",name:"Nemotron Super"},{id:"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",name:"Nemotron Ultra"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K3",name:"Kimi K3"}],hasFree:!0,freeNote:"$30 free trial credits for GPU inference"},{id:"bluesminds",priority:50,alias:"bm",display:{name:"BluesMinds",icon:"psychology",color:"#3B82F6",textIcon:"BM",website:"https://www.bluesminds.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.bluesminds.com/v1/chat/completions",validateUrl:"https://api.bluesminds.com/v1/models"},models:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{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:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash (Exp)"},{id:"deepseek-reasoner",name:"DeepSeek Reasoner"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"qwen-plus",name:"Qwen Plus"},{id:"qwen-turbo",name:"Qwen Turbo"},{id:"kimi-k2",name:"Kimi K2"},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4-flash",name:"GLM 4 Flash"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (VIP)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (VIP)"},{id:"grok-3",name:"Grok-3 (VIP)"},{id:"qwen-max",name:"Qwen Max (VIP)"}],hasFree:!0,freeNote:"Free daily pi credits — supports 200+ models including GPT-4o, GPT-4.1, Claude Sonnet 4.5, Gemini 2.0 Flash, DeepSeek V4, Qwen, Kimi K2"},{id:"bytez",priority:50,alias:"bytez",display:{name:"Bytez",icon:"api",color:"#6366F1",textIcon:"BZ",website:"https://bytez.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.bytez.com/v1/chat/completions",validateUrl:"https://api.bytez.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$1 free credits, refreshes every 4 weeks"},{id:"charm-hyper",priority:50,alias:"charm-hyper",display:{name:"Charm Hyper",icon:"router",color:"#7C3AED",textIcon:"CH",website:"https://hyper.charm.land"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://hyper.charm.land/v1/chat/completions",validateUrl:"https://hyper.charm.land/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"100 free monthly Hypercredits on signup"},{id:"chat-oripe",priority:50,alias:"chat-oripe",display:{name:"Chat Oripe",icon:"router",color:"#64748B",textIcon:"CO",website:"https://api.oriper.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.oriper.com/v1/chat/completions",validateUrl:"https://api.oriper.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Official metadata advertises 2M tokens/month, but the public site and documentation were blocked during audit; treat the quota and brand mapping."},{id:"chatanywhere",priority:50,alias:"chatanywhere",display:{name:"ChatAnywhere",icon:"router",color:"#2563EB",textIcon:"CA",website:"https://chatanywhere.tech"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.chatanywhere.org/v1/chat/completions",validateUrl:"https://api.chatanywhere.org/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Personal, educational or research use only: public documentation cites 10,000 points/day and 200 requests/day per IP/key; do not use for commercial traffic."},{id:"cheaperinference",priority:50,alias:"cinf",display:{name:"Cheaper Inference",icon:"savings",color:"#31f889",textIcon:"CI",website:"https://cheaperinference.com/?utm_source=omniroute"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.cheaperinference.com/v1/chat/completions",validateUrl:"https://api.cheaperinference.com/v1/models"},passthroughModels:!0},{id:"chenzk",priority:50,alias:"chenzk",display:{name:"Chenzk API",icon:"hub",color:"#10B981",textIcon:"CZ",website:"https://chenzk.top"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://chenzk.top/v1/chat/completions",validateUrl:"https://chenzk.top/v1/models"},passthroughModels:!0},{id:"clarifai",priority:40,alias:"clarifai",display:{name:"Clarifai",icon:"hub",color:"#7C3AED",textIcon:"CF",website:"https://docs.clarifai.com",notice:{apiKeyUrl:"https://clarifai.com/settings/security",text:"OpenAI-compatible at /v2/ext/openai/v1. Use a Personal Access Token (PAT); sends the key as Authorization: Key <token>. App-scoped keys only work for resources inside that app."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.clarifai.com/v2/ext/openai/v1/chat/completions",validateUrl:"https://api.clarifai.com/v2/ext/openai/v1/models",auth:{combined:!0,header:"Authorization",scheme:"key"}},models:[{id:"claude-3-5-sonnet",name:"Claude 3.5 Sonnet"},{id:"gpt-4o",name:"GPT-4o"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"}],serviceKinds:["llm"],passthroughModels:!0},{id:"cloudcode-one",priority:50,alias:"cloudcode-one",display:{name:"CloudCode.ONE",icon:"router",color:"#6366F1",textIcon:"CC",website:"https://cloudcode.one"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.cloudcode.one/v1/chat/completions",validateUrl:"https://api.cloudcode.one/v1/models"},models:[{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"glm-4.6v-flash",name:"GLM 4.6V Flash"}],passthroughModels:!0,hasFree:!0,freeNote:"Published free models include glm-4.7-flash and glm-4.6v-flash; no numeric quota is published, and key creation may require credit or a coupon."},{id:"conol-web",priority:150,alias:"cnl",display:{name:"Conol Web",icon:"auto_awesome",color:"#6D4AFF",textIcon:"CN",website:"https://conol.ai",notice:{signupUrl:"https://conol.ai",apiKeyUrl:"https://conol.ai",text:"Conol browser-session chat. Open conol.ai, log in, then copy the `__Secure-better-auth.session_token` cookie (or the full Cookie header) from DevTools → Application → Cookies → conol.ai and paste it here. Sessions are created and configured automatically (preset → model → effort); the executor reuses one session per logical chat. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "__Secure-better-auth.session_token" cookie value from conol.ai → DevTools → Application → Cookies → conol.ai and paste it here.',transport:{baseUrl:"https://conol.ai",format:"conol-web",authType:"cookie"},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"z-ai/glm-5.2",name:"GLM 5.2"}],passthroughModels:!0},{id:"crof",priority:50,alias:"crof",display:{name:"CrofAI",icon:"auto_awesome",color:"#0EA5E9",textIcon:"CR",website:"https://crof.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://crof.ai/v1/chat/completions",validateUrl:"https://crof.ai/v1/models"},models:[{id:"deepseek-v4-pro-precision",name:"DeepSeek V4 Pro (Precision)"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-lightning",name:"DeepSeek V4 Pro (Lightning)"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731"},{id:"deepseek-v3.2",name:"DeepSeek V3.2"},{id:"kimi-k2.6-precision",name:"Kimi K2.6 (Precision)"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k3",name:"Kimi K3"},{id:"kimi-k3-eco",name:"Kimi K3 Eco"},{id:"kimi-k2.5-lightning",name:"Kimi K2.5 (Lightning)"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1-precision",name:"GLM 5.1 (Precision)"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"mimo-v2.5-pro-precision",name:"Mimo 2.5 Pro (Precision)"},{id:"mimo-v2.5-pro",name:"Mimo 2.5 Pro"},{id:"gemma-4-31b-it",name:"Gemma 4 31B"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"qwen3.6-27b",name:"Qwen3.6 27B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen3.5-9b",name:"Qwen3.5 9B"}]},{id:"datarobot",priority:40,alias:"datarobot",display:{name:"DataRobot",icon:"precision_manufacturing",color:"#6D28D9",textIcon:"DR",website:"https://docs.datarobot.com",notice:{apiKeyUrl:"https://app.datarobot.com/account/api-token",text:"LLM Gateway catalogs active models from /genai/llmgw/catalog/. The gateway endpoint is per-account — add it via a custom baseUrl connection (OpenAI-compatible)."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",validateUrl:""},passthroughModels:!0},{id:"digitalocean",priority:50,alias:"digitalocean",display:{name:"DigitalOcean",icon:"cloud",color:"#0060FF",textIcon:"DO",website:"https://docs.digitalocean.com/products/ai-platform/",notice:{text:"Use a DigitalOcean Personal Access Token (dop_v1_...) or a Model Access Key from the Inference console. OAuth tokens (doo_v1_...) may not have the required scopes.",apiKeyUrl:"https://cloud.digitalocean.com/account/api/tokens"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.do-ai.run/v1/chat/completions",validateUrl:"https://inference.do-ai.run/v1/models"},models:[{id:"openai-gpt-5.2-pro",name:"OpenAI GPT-5.2 Pro"},{id:"openai-gpt-5.6-luna",name:"OpenAI GPT-5.6 Luna"},{id:"gte-large-en-v1.5",name:"GTE Large (v1.5)"},{id:"anthropic-claude-4.6-sonnet",name:"Anthropic Claude Sonnet 4.6"},{id:"openai-o3",name:"OpenAI o3"},{id:"anthropic-claude-opus-5",name:"Anthropic Claude Opus 5"}],passthroughModels:!0},{id:"dit",priority:50,alias:"dai",display:{name:"DIT.ai",icon:"hub",color:"#0EA5E9",textIcon:"DT",website:"https://dit.ai",notice:{text:"Use your dit.ai API key in Authorization: Bearer <key>. Fully OpenAI-compatible — a drop-in replacement, just change the base URL to https://api.dit.ai/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.dit.ai/v1/chat/completions",validateUrl:"https://api.dit.ai/v1/models"},models:[{id:"gpt-5.4",name:"GPT-5.4 (DIT.ai)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (DIT.ai)"}]},{id:"docker-model-runner",priority:50,alias:"dmr",display:{name:"Docker Model Runner",icon:"dns",color:"#2496ED",textIcon:"DM",website:"https://docs.docker.com/ai/model-runner/",notice:{text:"Docker Model Runner — local AI model runner with OpenAI-compatible API (default port 12434). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:12434/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"dxnt",priority:50,alias:"dxnt",display:{name:"DXNT / DX Token",icon:"hub",color:"#111827",textIcon:"DX",website:"https://www.dxnt.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://www.dxnt.com/v1/chat/completions",validateUrl:"https://www.dxnt.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free accounts are documented at 100 calls/day; the quota may increase through invitations and can vary by account."},{id:"electronhub",priority:50,alias:"electronhub",display:{name:"Electron Hub",icon:"hub",color:"#22C55E",textIcon:"EH",website:"https://www.electronhub.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.electronhub.ai/v1/chat/completions",validateUrl:"https://api.electronhub.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: 5 RPM, $0.25 weekly credits and 10 Neutrinos/day for :free models; family budgets also apply."},{id:"empower",priority:50,alias:"empower",display:{name:"Empower",icon:"hub",color:"#14B8A6",textIcon:"EM",website:"https://docs.empower.dev",notice:{text:"Bearer API key for the Empower OpenAI-compatible endpoint."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://app.empower.dev/api/v1/chat/completions",validateUrl:"https://app.empower.dev/api/v1/models"},passthroughModels:!0},{id:"factory",priority:50,alias:"factory",display:{name:"Factory",icon:"smart_toy",color:"#0F172A",textIcon:"FA",website:"https://factory.ai",notice:{text:"Bearer API key for the Factory OpenAI-compatible gateway."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.factory.ai/v1/chat/completions",validateUrl:"https://api.factory.ai/v1/models"},passthroughModels:!0},{id:"fastrouter",priority:50,alias:"fastrouter",display:{name:"FastRouter",icon:"speed",color:"#F97316",textIcon:"FR",website:"https://fastrouter.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fastrouter.ai/api/v1/chat/completions",validateUrl:"https://api.fastrouter.ai/api/v1/models"},models:[{id:"z-ai/glm-5",name:"GLM-5"},{id:"z-ai/glm-5.1",name:"GLM-5.1"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"google/gemini-3-pro-image-preview",name:"Nano Banana Pro"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemma-4-31b-it",name:"Gemma 4 31B IT"}],passthroughModels:!0,hasFree:!0,freeNote:"Models with the :free suffix allow 10 requests/day per organization and model; availability may change."},{id:"fishaudio",priority:30,alias:"fish",display:{name:"Fish Audio",icon:"record_voice_over",color:"#00C2A8",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/account",text:"TTS (Fish Speech S1 / 1.6 / 1.5). API key from fish.audio — model id is sent as an HTTP header."}},category:"apikey",authType:"apikey",serviceKinds:["tts"],models:[{id:"s1",name:"Fish Speech S1",kind:"tts"},{id:"speech-1.6",name:"Fish Speech 1.6",kind:"tts"},{id:"speech-1.5",name:"Fish Speech 1.5",kind:"tts"}],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fishaudio"}},{id:"free-ai",priority:50,alias:"free-ai",display:{name:"Free.ai",icon:"hub",color:"#16A34A",textIcon:"FA",website:"https://free.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.free.ai/v1/chat/",validateUrl:"https://api.free.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"30,000 tokens/day cover self-hosted models after email verification. Usage beyond the pool can bill at raw cost, and premium external models are paid."},{id:"freeaiapikey",priority:50,alias:"faik",display:{name:"FreeAIAPIKey",icon:"vpn_key",color:"#F59E0B",textIcon:"FK",website:"https://freeaiapikey.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.freeaiapikey.com/v1/chat/completions",validateUrl:"https://api.freeaiapikey.com/v1/models"},models:[{id:"openai/gpt-4o",name:"GPT-4o (via FreeAIAPIKey)"},{id:"openai/gpt-5.4",name:"GPT-5.4 (via FreeAIAPIKey)"},{id:"openai/gpt-5.5",name:"GPT-5.5 (via FreeAIAPIKey)"},{id:"openai/gpt-5.6-sol",name:"GPT-5.6 Sol (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6 (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7 (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8 (via FreeAIAPIKey)"},{id:"anthropic/claude-opus-5",name:"Claude Opus 5 (via FreeAIAPIKey)"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6 (via FreeAIAPIKey)"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5 (via FreeAIAPIKey)"}]},{id:"freeinference",priority:50,alias:"freeinference",display:{name:"FreeInference",icon:"science",color:"#8B5CF6",textIcon:"FI",website:"https://freeinference.org"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://freeinference.org/v1/chat/completions",validateUrl:"https://freeinference.org/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free research access without a card; non-Harvard applicants require manual approval and no numeric quota is publicly guaranteed."},{id:"freemodel-dev",priority:50,alias:"fmd",display:{name:"FreeModel.dev",icon:"auto_awesome",color:"#8B5CF6",textIcon:"FM",website:"https://freemodel.dev"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.freemodel.dev/v1/chat/completions",validateUrl:"https://api.freemodel.dev/v1/models"},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.3-codex",name:"GPT-5.3 Codex"}],hasFree:!0,freeNote:"$300 free credits on signup — no credit card required. Access GPT-5.4 and GPT-5.5 (OpenAI's latest flagship models) through an OpenAI-compatible API."},{id:"freetheai",priority:50,alias:"fta",display:{name:"FreeTheAi",icon:"hub",color:"#22C55E",textIcon:"FTA",website:"https://freetheai.xyz",notice:{text:"Join the FreeTheAi Discord to get your free API key."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.freetheai.xyz/v1/chat/completions",validateUrl:"https://api.freetheai.xyz/v1/models"},models:[{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"deepseek-chat",name:"DeepSeek Chat"}],passthroughModels:!0,hasFree:!0,freeNote:"Free OpenAI-compatible gateway — sign up via Discord for an API key."},{id:"friendliai",priority:50,alias:"friendli",display:{name:"FriendliAI",icon:"handshake",color:"#EC4899",textIcon:"FR",website:"https://friendli.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.friendli.ai/serverless/v1/chat/completions",validateUrl:"https://api.friendli.ai/serverless/v1/models"},models:[{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B IT"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek-V3.2"},{id:"zai-org/GLM-5.1",name:"GLM-5.1"},{id:"zai-org/GLM-5.2",name:"GLM-5.2"}],hasFree:!0,freeNote:"Free tier for serverless inference — no credit card required"},{id:"gemini-business",priority:150,alias:"gembiz",uiAlias:"gembiz",display:{name:"Gemini Business (Enterprise)",icon:"auto_awesome",color:"#4285F4",textIcon:"GB",website:"https://business.gemini.google",notice:{signupUrl:"https://business.gemini.google",apiKeyUrl:"https://business.gemini.google",text:"Gemini Business for Google Workspace enterprise accounts — enterprise Gemini models (Pro, Flash, image, video) via the internal StreamGenerate HTTP API, no subscription required (just enterprise SSO). Paste __Secure-1PSID + __Secure-1PSIDTS from business.gemini.google (DevTools → Application → Cookies). If your entry URL is not the default /home, provide it via connection settings (entryUrl) so the CID prefix is routed correctly. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:"From your enterprise account: open business.gemini.google/home/cid/{your-cid}, then copy __Secure-1PSID and __Secure-1PSIDTS cookies from DevTools → Application → Cookies. Paste as a cookie header (or JSON credential) below.",transport:{baseUrl:"https://business.gemini.google",format:"gemini-business",authType:"cookie"},models:[{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"gemini-3-ultra",name:"Gemini 3 Ultra"},{id:"gemini-3-flash",name:"Gemini 3 Flash"},{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-thinking",name:"Gemini 2.5 Flash Thinking"},{id:"gemini-2.0-pro",name:"Gemini 2.0 Pro"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-thinking",name:"Gemini 2.0 Flash Thinking"}],passthroughModels:!0},{id:"getgoapi",priority:50,alias:"ggo",display:{name:"GoAPI",icon:"rocket_launch",color:"#FF6D00",textIcon:"GO",website:"https://api.getgoapi.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.getgoapi.com/v1/chat/completions",validateUrl:"https://api.getgoapi.com/v1/models"},passthroughModels:!0},{id:"gitlawb-gmi",priority:50,alias:"glb-gmi",display:{name:"Gitlawb Opengateway (GMI Cloud)",icon:"hub",color:"#10B981",textIcon:"GMI",website:"https://opengateway.gitlawb.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://opengateway.gitlawb.com/v1/chat/completions",validateUrl:"https://opengateway.gitlawb.com/v1/models"},passthroughModels:!0,freeNote:"Free Nemotron promo ended 2026-06 — the GMI Cloud route is now pay-as-you-go credit only."},{id:"gitlawb",priority:50,alias:"glb",display:{name:"Gitlawb Opengateway (MiMo)",icon:"hub",color:"#10B981",textIcon:"GLB",website:"https://opengateway.gitlawb.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://opengateway.gitlawb.com/v1/xiaomi-mimo",validateUrl:"https://opengateway.gitlawb.com/v1/xiaomi-mimo"},passthroughModels:!0,freeNote:"Free MiMo (xiaomi/mimo-v2.5) revoked 2026-05 — Opengateway is now a pay-as-you-go credit gateway; no recurring free model."},{id:"gladia",priority:30,alias:"gladia",display:{name:"Gladia",icon:"record_voice_over",color:"#F97316",textIcon:"GL",website:"https://gladia.io",notice:{apiKeyUrl:"https://app.gladia.io",text:"Async transcription (solaria-1 / solaria-mini). Free tier: 10 hours/month, no credit card. Auth header: x-gladia-key."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"solaria-1",name:"Solaria 1",kind:"stt"},{id:"solaria-mini",name:"Solaria Mini",kind:"stt"}],sttConfig:{baseUrl:"https://api.gladia.io/v2/pre-recorded",authType:"apikey",authHeader:"x-gladia-key",format:"gladia"}},{id:"hailuo-web",priority:150,alias:"hailuo-web",display:{name:"Hailuo Web (MiniMax)",icon:"auto_awesome",color:"#5B21B6",textIcon:"HL",website:"https://hailuo.ai",notice:{signupUrl:"https://hailuo.ai",apiKeyUrl:"https://hailuo.ai",text:"Hailuo AI (MiniMax) free web chat. Open hailuo.ai, log in, then copy the `_token` value from DevTools → Application → Local Storage → hailuo.ai and paste it here. The executor signs each request with a per-request MD5 header; device-fingerprint params are derived stably from the token when not captured. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "_token" value from hailuo.ai → DevTools → Application → Local Storage → hailuo.ai and paste it here.',transport:{baseUrl:"https://www.hailuo.ai",format:"hailuo-web",authType:"cookie"},models:[{id:"hailuo",name:"Hailuo (MiniMax Web)"}],passthroughModels:!0},{id:"helixmind",priority:50,alias:"helixmind",display:{name:"HelixMind",icon:"hub",color:"#4F46E5",textIcon:"HM",website:"https://helixmind.online"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://helixmind.online/v1/chat/completions",validateUrl:"https://helixmind.online/v1/models",auth:{combined:!0,header:"X-API-Key",scheme:"raw"}},passthroughModels:!0,freeNote:"Previously circulated 3 RPM/50 RPD and no-card claims were not confirmed during the 2026-08-02 audit; current quota and billing require account verification."},{id:"heroku",priority:40,alias:"heroku",display:{name:"Heroku AI",icon:"cloud_upload",color:"#7C3AED",textIcon:"HK",website:"https://www.heroku.com",notice:{apiKeyUrl:"https://dashboard.heroku.com/account/applications",text:"Hosted inference gateway over frontier open-weight models."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://us.inference.heroku.com/v1/chat/completions",validateUrl:"https://us.inference.heroku.com/v1/models"},models:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-4-6-sonnet",name:"Claude 4.6 Sonnet"},{id:"claude-4-5-haiku",name:"Claude 4.5 Haiku"},{id:"glm-4-7",name:"GLM 4.7"},{id:"kimi-k2-5",name:"Kimi K2.5"},{id:"minimax-m2-1",name:"MiniMax M2.1"},{id:"deepseek-v3-2",name:"DeepSeek V3.2"},{id:"qwen3-coder-480b",name:"Qwen3 Coder 480B"},{id:"qwen3-235b",name:"Qwen3 235B"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"nova-pro",name:"Nova Pro"},{id:"nova-2-lite",name:"Nova 2 Lite"}],serviceKinds:["llm"]},{id:"inception",priority:50,alias:"inception",display:{name:"Inception",icon:"bolt",color:"#F97316",textIcon:"IN",website:"https://docs.inceptionlabs.ai",notice:{apiKeyUrl:"https://app.inceptionlabs.ai/keys",text:"Mercury is the first diffusion LLM (dLLM) — 5-10x faster generation with tool calling, json_mode, and structured outputs. 10M free tokens on signup."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.inceptionlabs.ai/v1/chat/completions",validateUrl:"https://api.inceptionlabs.ai/v1/models"},models:[{id:"mercury-2",name:"Mercury 2"}],serviceKinds:["llm"],hasFree:!0,freeNote:"10M free tokens on signup, no credit card required"},{id:"inference-net",priority:50,alias:"inet",display:{name:"Inference.net",icon:"dns",color:"#2563EB",textIcon:"IN",website:"https://inference.net"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.inference.net/v1/chat/completions",validateUrl:"https://api.inference.net/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$25 free credits on signup plus research grants available"},{id:"inner-ai",priority:150,alias:"in-ai",display:{name:"Inner.ai",icon:"auto_awesome",color:"#0EA5E9",textIcon:"IA",website:"https://app.innerai.com",notice:{signupUrl:"https://app.innerai.com",apiKeyUrl:"https://app.innerai.com",text:"Inner.ai gateway — GPT, Claude, Gemini, DeepSeek, Grok, Llama, Mistral. Auth: the `token` cookie scoped to .innerai.com (DevTools → Application → Cookies → .innerai.com → token). Paste it directly, or as `token=<value> user@example.com` to include your account email. The executor resolves the live model catalog per account (plan-gated) and caches it for 1 hour. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "token" cookie value from .innerai.com (DevTools → Application → Cookies → .innerai.com → token) and paste it here. Optional: "token=<value> user@example.com".',transport:{baseUrl:"https://chatapi.innerai.com",format:"inner-ai",authType:"cookie"},models:[{id:"gpt-4o",name:"GPT-4o (via Inner.ai)"},{id:"gpt-4.1",name:"GPT-4.1 (via Inner.ai)"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini (via Inner.ai)"},{id:"o3",name:"o3 (via Inner.ai)",supportsReasoning:!0},{id:"o4-mini",name:"o4-mini (via Inner.ai)",supportsReasoning:!0},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (via Inner.ai)"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 (via Inner.ai)"},{id:"claude-3-7-sonnet-20250219",name:"Claude 3.7 Sonnet (via Inner.ai)"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet (via Inner.ai)"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (via Inner.ai)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash (via Inner.ai)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash (via Inner.ai)"},{id:"deepseek-r1",name:"DeepSeek R1 (via Inner.ai)",supportsReasoning:!0},{id:"deepseek-v3",name:"DeepSeek V3 (via Inner.ai)"},{id:"grok-3",name:"Grok 3 (via Inner.ai)"},{id:"grok-3-mini",name:"Grok 3 Mini (via Inner.ai)",supportsReasoning:!0},{id:"llama-4-maverick",name:"Llama 4 Maverick (via Inner.ai)"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B (via Inner.ai)"},{id:"mistral-large-2411",name:"Mistral Large (via Inner.ai)"}],passthroughModels:!0},{id:"kenari",priority:50,alias:"kenari",display:{name:"Kenari",icon:"hub",color:"#B5362A",textIcon:"KN",website:"https://kenari.id",notice:{text:"Use your Kenari API key (kn-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://kenari.id/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://kenari.id/v1/chat/completions",validateUrl:"https://kenari.id/v1/models"},models:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B A12B (Free)"},{id:"glm-4-7-flash:free",name:"GLM-4.7-Flash (Free)"},{id:"nemotron-3-nano-30b-a3b",name:"Nemotron 3 Nano 30B A3B"},{id:"kimi-k3",name:"Kimi K3"},{id:"gpt-5-6-luna",name:"GPT-5.6 Luna"}],passthroughModels:!0},{id:"kilo-gateway",priority:50,alias:"kg",display:{name:"Kilo Gateway",icon:"hub",color:"#617A91",textIcon:"KG",website:"https://kilo.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.kilo.ai/api/gateway/chat/completions",validateUrl:"https://api.kilo.ai/api/gateway/models"},models:[{id:"kilo-auto/frontier",name:"Kilo Auto Frontier"},{id:"kilo-auto/balanced",name:"Kilo Auto Balanced"},{id:"kilo-auto/free",name:"Kilo Auto Free"},{id:"nvidia/nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B (Free)"},{id:"minimax/minimax-m2.5:free",name:"MiniMax M2.5 (Free)"},{id:"arcee-ai/trinity-large-preview:free",name:"Trinity Large Preview (Free)"}],passthroughModels:!0},{id:"lambda-ai",priority:50,alias:"lambda",display:{name:"Lambda AI",icon:"bolt",color:"#7C3AED",textIcon:"LA",website:"https://lambda.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.lambda.ai/v1/chat/completions",validateUrl:"https://api.lambda.ai/v1/models"},passthroughModels:!0},{id:"laozhang",priority:50,alias:"lz",display:{name:"LaoZhang AI",icon:"hub",color:"#FF1744",textIcon:"LZ",website:"https://api.laozhang.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.laozhang.ai/v1/chat/completions",validateUrl:"https://api.laozhang.ai/v1/models"},passthroughModels:!0},{id:"lemonade",priority:50,alias:"lemonade",display:{name:"Lemonade Server",icon:"bolt",color:"#F59E0B",textIcon:"LM",website:"https://lemonade-server.ai",notice:{text:"Lemonade Server — local LLM serving (cloud-models compatible). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:13305/api/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"liquid",priority:50,alias:"liquid",display:{name:"Liquid AI",icon:"water_drop",color:"#06B6D4",textIcon:"LQ",website:"https://liquid.ai",notice:{apiKeyUrl:"https://labs.liquid.ai/keys",text:"OpenAI-compatible. Free LFM2.5-1.2B-Thinking and LFM2.5-1.2B-Instruct models. MIT spinoff, hybrid architecture."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.liquid.ai/v1/chat/completions",validateUrl:"https://inference.liquid.ai/v1/models"},models:[{id:"liquid-lfm-40b",name:"Liquid LFM 40B"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free LFM2.5-1.2B-Thinking and LFM2.5-1.2B-Instruct models"},{id:"literouter",priority:50,alias:"literouter",display:{name:"LiteRouter",icon:"router",color:"#2563EB",textIcon:"LR",website:"https://literouter.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.literouter.com/v1/chat/completions",validateUrl:"https://api.literouter.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free model variants use the :free suffix; daily credit limits vary by model and free input is capped at 5,000 tokens."},{id:"llama-cpp",priority:50,alias:"llamacpp",display:{name:"llama.cpp",icon:"description",color:"#795548",textIcon:"LC",website:"https://github.com/ggml-org/llama.cpp",notice:{text:"llama.cpp server — OpenAI-compatible local inference (default port 8080). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://127.0.0.1:8080/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"llamafile",priority:50,alias:"llamafile",display:{name:"Llamafile",icon:"description",color:"#EA580C",textIcon:"LF",website:"https://github.com/Mozilla-Ocho/llamafile",notice:{text:"Llamafile — single-file local LLM runner with OpenAI-compatible API (default port 8080). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://127.0.0.1:8080/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"llamagate",priority:50,alias:"llamagate",display:{name:"LlamaGate",icon:"gate",color:"#16A34A",textIcon:"LG",website:"https://llamagate.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://llamagate.ai/v1/chat/completions",validateUrl:"https://llamagate.ai/v1/models"},passthroughModels:!0},{id:"llm-kiwi",priority:50,alias:"llmkiwi",display:{name:"LLM.Kiwi",icon:"hub",color:"#84CC16",textIcon:"LK",website:"https://llm.kiwi"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.llm.kiwi/v1/chat/completions",validateUrl:"https://api.llm.kiwi/v1/models"},models:[{id:"auto",name:"Auto"},{id:"hrLLM",name:"hrLLM"}],passthroughModels:!0,hasFree:!0,freeNote:"Free plan exposes auto and hrLLM; the published 40 requests/hour limit applies to hrLLM."},{id:"llmgateway",priority:50,alias:"llmgateway",display:{name:"LLM Gateway",icon:"router",color:"#6366F1",textIcon:"LG",website:"https://llmgateway.io"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.llmgateway.io/v1/chat/completions",validateUrl:"https://api.llmgateway.io/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Hosted Free plan: free-priced models are limited to 5 requests per 10 minutes when the account has no credits."},{id:"lm-studio",priority:50,alias:"lmstudio",display:{name:"LM Studio",icon:"server",color:"#4A148C",textIcon:"LM",website:"https://lmstudio.ai",notice:{text:"LM Studio desktop app — OpenAI-compatible local server. Start the Local Server (port 1234) in the app, then use this connection. Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:1234/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"maritalk",priority:50,alias:"maritalk",display:{name:"Maritalk",icon:"translate",color:"#1D4ED8",textIcon:"MT",website:"https://www.maritaca.ai",notice:{apiKeyUrl:"https://chat.maritaca.ai/api-keys",text:"MariTalk by Maritaca AI — Sabi\xe1 models, strong in Portuguese. OpenAI-compatible; sends the key as Authorization: Key <token>."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://chat.maritaca.ai/api/chat/completions",validateUrl:"https://chat.maritaca.ai/api/models",auth:{combined:!0,header:"Authorization",scheme:"key"}},models:[{id:"sabia-4",name:"Sabi\xe1 4"},{id:"sabia-4-thinking",name:"Sabi\xe1 4 Thinking"},{id:"sabiazinho-4",name:"Sabiazinho 4"}],serviceKinds:["llm"]},{id:"meganova-ai",priority:50,alias:"meganova-ai",display:{name:"MegaNova AI",icon:"router",color:"#7C3AED",textIcon:"MN",website:"https://meganova.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.meganova.ai/v1/chat/completions",validateUrl:"https://api.meganova.ai/v1/models"},models:[{id:"XiaomiMiMo/MiMo-V2-Flash",name:"MiMo V2 Flash"},{id:"MiniMaxAI/MiniMax-M2.1",name:"MiniMax M2.1"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2-Thinking",name:"Kimi K2 Thinking"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"}],passthroughModels:!0,hasFree:!0,freeNote:"Free signup without a card. Published Tier 1 per-model quotas total 550 requests/day; they are not a shared global pool, and paid overage can apply if enabled."},{id:"meta-llama",priority:50,alias:"meta-llama",display:{name:"Meta Llama API",icon:"smart_toy",color:"#0F766E",textIcon:"ML",website:"https://ai.developer.meta.com/docs/overview/",notice:{apiKeyUrl:"https://ai.developer.meta.com/get-started/",text:"Meta's official Llama Model API. OpenAI-compatible chat completions endpoint."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.llama.com/compat/v1/chat/completions",validateUrl:"https://api.llama.com/compat/v1/models"},models:[{id:"Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"Llama-4-Scout-17B-16E-Instruct-FP8",name:"Llama 4 Scout"},{id:"Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Llama-3.3-8B-Instruct",name:"Llama 3.3 8B Instruct"}],serviceKinds:["llm"]},{id:"mixlayer",priority:50,alias:"mixlayer",display:{name:"Mixlayer",icon:"router",color:"#0EA5E9",textIcon:"MX",website:"https://www.mixlayer.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://models.mixlayer.ai/v1/chat/completions",validateUrl:"https://models.mixlayer.ai/v1/models"},models:[{id:"qwen/qwen3.5-35b-a3b",name:"Qwen3.5 35B A3B"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen/qwen3.5-9b",name:"Qwen3.5 9B"},{id:"qwen/qwen3.5-27b",name:"Qwen3.5 27B"},{id:"qwen/qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"}],passthroughModels:!0,hasFree:!0,freeNote:"The qwen/qwen3.5-4b-free model is free for prototyping and rate-limited; no fixed public RPM or daily quota is confirmed."},{id:"mnn-ai",priority:50,alias:"mnn-ai",display:{name:"MNN AI",icon:"hub",color:"#0F766E",textIcon:"MNN",website:"https://mnnai.ru"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.mnnai.ru/v1/chat/completions",validateUrl:"https://api.mnnai.ru/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: $1 monthly credits, 10 RPM and access only to models marked Free."},{id:"modal",priority:40,alias:"modal",display:{name:"Modal",icon:"cloud_queue",color:"#7C3AED",textIcon:"MDL",website:"https://modal.com/docs",notice:{apiKeyUrl:"https://modal.com/settings/tokens",text:"OpenAI-compatible. $30/month free credits for new accounts."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.modal.ai/v1/chat/completions",validateUrl:"https://api.modal.ai/v1/models"},models:[{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash"}],serviceKinds:["llm"],hasFree:!0,freeNote:"$30/month free credits for new accounts"},{id:"modelscope",priority:50,alias:"modelscope",display:{name:"ModelScope",icon:"cloud",color:"#FF6A00",textIcon:"MS",website:"https://modelscope.cn"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api-inference.modelscope.cn/v1/chat/completions",validateUrl:"https://api-inference.modelscope.cn/v1/models"},models:[{id:"ZhipuAI/GLM-4.5",name:"GLM-4.5"},{id:"ZhipuAI/GLM-4.6",name:"GLM-4.6"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B A22B Instruct 2507"},{id:"Qwen/Qwen3-Coder-30B-A3B-Instruct",name:"Qwen3 Coder 30B A3B Instruct"},{id:"Qwen/Qwen3-30B-A3B-Thinking-2507",name:"Qwen3 30B A3B Thinking 2507"},{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",name:"Qwen3 30B A3B Instruct 2507"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier via ModelScope API-Inference — Alibaba account required."},{id:"morph",priority:50,alias:"morph",display:{name:"Morph",icon:"auto_fix_high",color:"#2563EB",textIcon:"MP",website:"https://www.morphllm.com",notice:{apiKeyUrl:"https://www.morphllm.com/keys",text:"OpenAI-compatible. Hosts open-weight models (Qwen, MiniMax, DeepSeek, GLM) optimized for coding agents. Free tier: 250K credits/month."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.morphllm.com/v1/chat/completions",validateUrl:"https://api.morphllm.com/v1/models"},models:[{id:"morph-v3-large",name:"Morph V3 Large"},{id:"morph-v3-fast",name:"Morph V3 Fast"},{id:"morph-glm52-744b",name:"GLM-5.2 744B"},{id:"morph-qwen35-397b",name:"Qwen 3.5 397B"},{id:"morph-qwen36-27b",name:"Qwen 3.6 27B"},{id:"morph-minimax3-428b",name:"MiniMax M3"},{id:"morph-dsv4flash",name:"DeepSeek V4 Flash"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free tier: 250K credits/month, $0"},{id:"naga-ac",priority:50,alias:"naga",display:{name:"Naga.ac",icon:"bolt",color:"#7C3AED",textIcon:"NA",website:"https://naga.ac",notice:{text:"Get API key at naga.ac — Google/GitHub/Discord signup available."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.naga.ac/v1/chat/completions",validateUrl:"https://api.naga.ac/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free models include Nemotron 3 Ultra (free) and Llama 3.3 70B Instruct (Free). Paid models require credits. Google/GitHub/Discord signup."},{id:"naga-ai",priority:50,alias:"naga-ai",display:{name:"Naga AI",icon:"router",color:"#059669",textIcon:"NA",website:"https://naga.ac"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.naga.ac/v1/chat/completions",validateUrl:"https://api.naga.ac/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Models marked :free are publicly listed, but no numeric quota is confirmed. Naga's policy warns that free-tier prompts and outputs may be collected or used for training."},{id:"nanogpt",priority:50,alias:"nanogpt",display:{name:"NanoGPT",icon:"chat",color:"#4F46E5",textIcon:"NG",website:"https://nano-gpt.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://nano-gpt.com/api/v1/chat/completions",validateUrl:"https://nano-gpt.com/api/v1/models"},passthroughModels:!0},{id:"nara",priority:50,alias:"nara",display:{name:"NaraRouter",icon:"hub",color:"#EC4899",textIcon:"NA",website:"https://bynara.id",notice:{text:"Get a free API key via NaraRouter's Telegram channel, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://router.bynara.id/v1/chat/completions",validateUrl:"https://router.bynara.id/v1/models"},models:[{id:"tencent-hy3",name:"Tencent Hy3"},{id:"mistral-large",name:"Mistral Large"},{id:"mistral-medium-3-5",name:"Mistral Medium 3.5"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier is a shared 5M tokens/day pool; some models are gated behind credit/plan."},{id:"navy",priority:50,alias:"navy",display:{name:"NavyAI",icon:"hub",color:"#1E3A8A",textIcon:"NV",website:"https://api.navy",notice:{text:"Create a free API key from the NavyAI dashboard, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.navy/v1/chat/completions",validateUrl:"https://api.navy/v1/models"},models:[{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"mistral-small-latest",name:"Mistral Small"},{id:"llama-4-scout",name:"Llama 4 Scout"}],passthroughModels:!0,hasFree:!0,freeNote:"Free plan is one shared 150K tokens/day pool at 20 RPM. Each model carries a token multiplier, so heavier models drain the pool faster (grok-4 at 10x is ~15K real tokens/day)."},{id:"nous-research",priority:50,alias:"nous-research",aliases:["nous"],uiAlias:"nous",display:{name:"Nous Research",icon:"hub",color:"#2563EB",textIcon:"NO",website:"https://portal.nousresearch.com/help",notice:{apiKeyUrl:"https://portal.nousresearch.com/keys",text:"Official OpenAI-compatible inference endpoint. Free tier: 50 RPM / 500,000 TPM — no credit card."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference-api.nousresearch.com/v1/chat/completions",validateUrl:"https://inference-api.nousresearch.com/v1/models"},models:[{id:"Hermes-4-405B",name:"Hermes 4 405B"},{id:"Hermes-4-70B",name:"Hermes 4 70B"}],serviceKinds:["llm"],hasFree:!0,freeNote:"Free tier: 50 RPM, 500,000 TPM — no credit card"},{id:"nscale",priority:50,alias:"nscale",display:{name:"nScale",icon:"token",color:"#0891B2",textIcon:"NS",website:"https://nscale.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.api.nscale.com/v1/chat/completions",validateUrl:"https://inference.api.nscale.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$5 free credits on signup for inference testing"},{id:"nube",priority:50,alias:"nube",display:{name:"Nube.sh",icon:"cloud",color:"#2563EB",textIcon:"NB",website:"https://nube.sh",notice:{text:"OpenAI-compatible gateway (LiteLLM). Bring your own API key — models are resolved live from the account (passthrough).",apiKeyUrl:"https://nube.sh/dashboard/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://ai.nube.sh/api/v1/chat/completions",validateUrl:"https://ai.nube.sh/api/v1/models"},passthroughModels:!0},{id:"oci",priority:40,alias:"oci",display:{name:"OCI Generative AI",icon:"cloud",color:"#C74634",textIcon:"OCI",website:"https://www.oracle.com/artificial-intelligence/generative-ai",notice:{apiKeyUrl:"https://cloud.oracle.com/identity/domains/my-profile/api-keys",text:"OpenAI-compatible at https://inference.generativeai.<region>.oci.oraclecloud.com/openai/v1/. Override with your region via a custom baseUrl connection if needed."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1/chat/completions",validateUrl:"https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1/models"},models:[{id:"meta.llama-3.3-70b-instruct",name:"Llama 3.3 70B Instruct"},{id:"cohere.command-r-plus",name:"Command R+ (Cohere)"}],serviceKinds:["llm"],passthroughModels:!0},{id:"ofoxai",priority:50,alias:"ofoxai",display:{name:"OfoxAI",icon:"router",color:"#0F766E",textIcon:"OF",website:"https://ofox.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.ofox.ai/v1/chat/completions",validateUrl:"https://api.ofox.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"The current catalog advertises 10+ free models without a public numeric quota; review upstream provenance, retention and training terms before production use."},{id:"ollama-cloud",priority:50,alias:"ollamacloud",display:{name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/keys"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://ollama.com/v1/chat/completions",validateUrl:"https://ollama.com/api/tags"},models:[{id:"gpt-oss:20b",name:"GPT-OSS 20B"},{id:"gpt-oss:120b",name:"GPT-OSS 120B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5.2",name:"GLM 5.2"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"gemma4:31b",name:"Gemma 4 31B"},{id:"nemotron-3-super",name:"NVIDIA Nemotron 3 Super"},{id:"qwen3.5:397b",name:"Qwen 3.5 397B"}],passthroughModels:!0,hasFree:!0},{id:"oobabooga",priority:50,alias:"ooba",display:{name:"oobabooga",icon:"smart_toy",color:"#8B5CF6",textIcon:"OO",website:"https://github.com/oobabooga/text-generation-webui",notice:{text:"oobabooga Text Generation WebUI — OpenAI-compatible local endpoint (default port 5000). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:5000/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"openadapter",priority:50,alias:"oad",display:{name:"OpenAdapter",icon:"hub",color:"#10B981",textIcon:"OD",website:"https://openadapter.dev",notice:{text:"Use your OpenAdapter API key in Authorization: Bearer sk-cv-<key>. Fully OpenAI-compatible. API base URL: https://api.openadapter.in/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.openadapter.in/v1/chat/completions",validateUrl:"https://api.openadapter.in/v1/models"},models:[{id:"glm-4.7",name:"GLM 4.7 (OpenAdapter)"}],hasFree:!0,freeNote:"Free tier with a generous quota and no credit card — 15+ open-source models with daily quota. Get your API key at https://dashboard.openadapter.in."},{id:"opencode-zen",priority:50,alias:"opencode-zen",display:{name:"OpenCode Zen",icon:"opencode",color:"#6366f1",textIcon:"OP",website:"https://opencode.ai/zen"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://opencode.ai/zen/v1/chat/completions",validateUrl:"https://opencode.ai/zen/v1/models"},models:[{id:"gemini-3-pro",name:"Gemini 3 Pro"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"ling-3.0-flash-free",name:"Ling-3.0-flash Free"},{id:"laguna-s-2.1-free",name:"Laguna S 2.1 Free"},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free"},{id:"x-preview-f-free",name:"x Preview F Free"}]},{id:"openference-api",priority:50,alias:"ofa",display:{name:"Openference API",icon:"openference",color:"#6366F1",textIcon:"OF",website:"https://openference.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.openference.com/v1/chat/completions",validateUrl:"https://api.openference.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: 3-day trial with open-source models — no credit card required"},{id:"orcarouter",priority:50,alias:"orcarouter",display:{name:"OrcaRouter",icon:"router",color:"#0891B2",textIcon:"ORC",website:"https://www.orcarouter.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.orcarouter.ai/v1/chat/completions",validateUrl:"https://api.orcarouter.ai/v1/models",thinkingFormat:"openai"},models:[{id:"orcarouter/auto",name:"Auto (smart routing)"},{id:"orcarouter/free",name:"Free (auto route)"},{id:"orcarouter/fusion",name:"Fusion (frontier)"},{id:"orcarouter/fusion-flash",name:"Fusion Flash"},{id:"orcarouter/fusion-mini",name:"Fusion Mini"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8"},{id:"anthropic/claude-opus-5",name:"Claude Opus 5"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5"},{id:"grok/grok-4.3",name:"Grok 4.3"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-pro-free",name:"DeepSeek V4 Pro (free)"},{id:"deepseek/deepseek-v4-flash-free",name:"DeepSeek V4 Flash (free)"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"},{id:"minimax/minimax-m2.7",name:"MiniMax M2.7"},{id:"qwen/qwen3.8-27b-free",name:"Qwen3.8 27B (free)"},{id:"qwen/qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen/qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen/qwen3.7-flash",name:"Qwen3.7 Flash"},{id:"qwen/qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"qwen/qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen/qwen3.5-flash",name:"Qwen3.5 Flash"},{id:"qwen/qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"qwen/qwen3.5-27b",name:"Qwen3.5 27B"},{id:"tencent/hy3-free",name:"Hunyuan 3 (free)"}],passthroughModels:!0},{id:"ovhcloud",priority:40,alias:"ovhcloud",aliases:["ovh"],uiAlias:"ovh",display:{name:"OVHcloud",icon:"cloud",color:"#2563EB",textIcon:"OVH",website:"https://www.ovhcloud.com",notice:{apiKeyUrl:"https://endpoints.ai.cloud.ovh.net/keys",text:"EU-hosted AI Endpoints. Anonymous tier works without a key (rate-limited); an OVHcloud key raises the rate limit."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/chat/completions",validateUrl:"https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/models"},models:[{id:"Meta-Llama-3_3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen2.5-Coder-32B-Instruct",name:"Qwen2.5 Coder 32B Instruct"},{id:"Mistral-Small-3.2-24B-Instruct-2506",name:"Mistral Small 3.2 24B"}],serviceKinds:["llm"]},{id:"piapi",priority:50,alias:"pi",display:{name:"PiAPI",icon:"api",color:"#7C4DFF",textIcon:"PI",website:"https://piapi.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.piapi.ai/v1/chat/completions",validateUrl:"https://api.piapi.ai/v1/models"},passthroughModels:!0},{id:"pioneer",priority:50,alias:"pioneer",display:{name:"Pioneer AI",icon:"rocket_launch",color:"#7C5CFF",textIcon:"PN",website:"https://pioneer.ai",notice:{apiKeyUrl:"https://agent.pioneer.ai/api-keys",text:"$75 free usage credits, no credit card required. Use an API key starting with pio_sk_. Only open-tier models (Qwen3, Llama, Gemma, SmolLM) work directly — gated models (Claude/GPT/Gemini) require prior fine-tuning via the Pioneer platform."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.pioneer.ai/v1/chat/completions",validateUrl:"https://api.pioneer.ai/v1/models",auth:{combined:!0,header:"X-API-Key",scheme:"raw"}},models:[{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"Qwen/Qwen3.6-27B",name:"Qwen3.6 27B"},{id:"Qwen/Qwen3.5-9B",name:"Qwen3.5 9B"},{id:"Qwen/Qwen3-8B",name:"Qwen3 8B"},{id:"Qwen/Qwen3-4B-Base",name:"Qwen3 4B Base"},{id:"Qwen/Qwen3-1.7B-Base",name:"Qwen3 1.7B Base"},{id:"meta-llama/Llama-3.1-8B-Instruct",name:"Llama 3.1 8B Instruct"},{id:"meta-llama/Llama-3.2-1B-Instruct",name:"Llama 3.2 1B Instruct"},{id:"google/gemma-3-4b-pt",name:"Gemma 3 4B (Pretrained)"},{id:"HuggingFaceTB/SmolLM3-3B-Base",name:"SmolLM3 3B Base"}],serviceKinds:["llm"],hasFree:!0,freeNote:"$75 free usage credits — no credit card required"},{id:"poixe-ai",priority:50,alias:"poixe-ai",display:{name:"Poixe AI",icon:"router",color:"#EA580C",textIcon:"PX",website:"https://poixe.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.poixe.com/v1/chat/completions",validateUrl:"https://api.poixe.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Current public free limits are small and model-group specific: 2 RPM/5 RPD for large-cup models and 20 RPM/50 RPD for small-cup models."},{id:"poolside",priority:50,alias:"poolside",display:{name:"Poolside",icon:"memory",color:"#111827",textIcon:"PS",website:"https://poolside.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://inference.poolside.ai/v1/chat/completions",validateUrl:"https://inference.poolside.ai/v1/models"},models:[{id:"poolside/laguna-xs-2.1",name:"Laguna XS 2.1"},{id:"poolside/laguna-s-2.1",name:"Laguna S 2.1"}],passthroughModels:!0,thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},hasFree:!0,freeNote:"Laguna S 2.1 and XS 2.1 are free during Preview; no public numeric quota is published."},{id:"predibase",priority:50,alias:"predibase",display:{name:"Predibase",icon:"deployed_code_history",color:"#0F766E",textIcon:"PB",website:"https://predibase.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://serving.app.predibase.com/v1/chat/completions",validateUrl:"https://serving.app.predibase.com/v1/models"},passthroughModels:!0,freeNote:"$25 free trial credits (30-day validity)"},{id:"publicai",priority:50,alias:"publicai",display:{name:"PublicAI",icon:"public",color:"#059669",textIcon:"PA",website:"https://publicai.co"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.publicai.co/v1/chat/completions",validateUrl:"https://api.publicai.co/v1/models"},passthroughModels:!0,freeNote:"Requires an API key — one-time signup credit, then paid"},{id:"qiniu",priority:50,alias:"qiniu",display:{name:"Qiniu",icon:"cloud",color:"#1E88E5",textIcon:"QN",website:"https://www.qiniu.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.qnaigc.com/v1/chat/completions",validateUrl:"https://api.qnaigc.com/v1/models"},models:[{id:"mimo-v2-flash",name:"Mimo-V2-Flash"},{id:"xiaomi/mimo-v2-flash",name:"Xiaomi/Mimo-V2-Flash"}],passthroughModels:!0},{id:"regolo",priority:50,alias:"regolo",display:{name:"Regolo AI",icon:"hub",color:"#6366F1",textIcon:"RG",website:"https://regolo.ai",notice:{text:"Get your Regolo API key from regolo.ai, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.regolo.ai",validateUrl:"https://api.regolo.ai/v1/models"},models:[{id:"regolo-chat",name:"Regolo Chat"},{id:"regolo-fast",name:"Regolo Fast"}],passthroughModels:!0},{id:"reka",priority:50,alias:"reka",display:{name:"Reka",icon:"auto_awesome",color:"#111827",textIcon:"RK",website:"https://docs.reka.ai/chat/overview",notice:{apiKeyUrl:"https://platform.reka.ai/keys",text:"Fully OpenAI-compatible. $10/month recurring free API credits."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.reka.ai/v1/chat/completions",validateUrl:"https://api.reka.ai/v1/models"},models:[{id:"reka-flash-3",name:"Reka Flash 3"},{id:"reka-flash",name:"Reka Flash"},{id:"reka-edge-2603",name:"Reka Edge 2603"}],serviceKinds:["llm","imageToText"],hasFree:!0,freeNote:"$10/month recurring free API credits"},{id:"requesty",priority:50,alias:"requesty",display:{name:"Requesty",icon:"router",color:"#6366F1",textIcon:"RQ",website:"https://requesty.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://router.requesty.ai/v1/chat/completions",validateUrl:"https://router.requesty.ai/v1/models"},models:[{id:"claude-sonnet-4-5@eu",name:"Claude Sonnet 4.5 (latest) (EU)"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"gpt-5.1@eu",name:"GPT-5.1 (EU)"},{id:"gpt-4.1-nano@eu",name:"GPT-4.1 nano (EU)"},{id:"gemini-2.5-flash@eu",name:"Gemini 2.5 Flash (EU)"},{id:"kimi-k3",name:"Kimi K3"}],passthroughModels:!0,hasFree:!0,freeNote:"Free tier ~200 requests/day - multi-model routing gateway (300+ models)"},{id:"rev-ai",priority:30,alias:"revai",display:{name:"Rev AI",icon:"record_voice_over",color:"#E5484D",textIcon:"RV",website:"https://rev.ai",notice:{apiKeyUrl:"https://www.rev.ai/access-token",text:"Async STT (machine / low_cost / fusion). API key from rev.ai."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"machine",name:"Reverb ASR",kind:"stt"},{id:"low_cost",name:"Low-Cost ASR",kind:"stt"},{id:"fusion",name:"Fusion ASR",kind:"stt"}],sttConfig:{baseUrl:"https://api.rev.ai/speechtotext/v1",authType:"apikey",authHeader:"bearer",format:"rev-ai"}},{id:"routeway",priority:50,alias:"routeway",display:{name:"Routeway",icon:"hub",color:"#F59E0B",textIcon:"RW",website:"https://routeway.ai",notice:{text:"Create a free API key at routeway.ai, then paste it here Bearer token."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.routeway.ai/v1/chat/completions",validateUrl:"https://api.routeway.ai/v1/models"},models:[{id:"llama-3.3-70b-instruct:free",name:"Llama 3.3 70B Instruct (free)"},{id:"nemotron-3-nano-30b-a3b:free",name:"Nemotron 3 Nano 30B (free)"},{id:"nemotron-nano-9b-v2:free",name:"Nemotron Nano 9B v2 (free)"},{id:"step-3.7-flash:free",name:"Step 3.7 Flash (free)"},{id:"step-3.5-flash:free",name:"Step 3.5 Flash (free)"},{id:"laguna-m.1:free",name:"Laguna M.1 (free)"},{id:"laguna-xs.2:free",name:"Laguna XS.2 (free)"},{id:"llama-3.2-3b-instruct:free",name:"Llama 3.2 3B Instruct (free)"}],passthroughModels:!0,hasFree:!0,freeNote:"Free models (:free suffix) at ~5 RPM / 200 RPD across Llama, Nemotron, Step and Laguna."},{id:"sambanova",priority:50,alias:"samba",display:{name:"SambaNova",icon:"memory",color:"#DC2626",textIcon:"SN",website:"https://sambanova.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",validateUrl:"https://api.sambanova.ai/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"$5 free credits on signup (30-day validity), no credit card required"},{id:"sap",priority:40,alias:"sap",display:{name:"SAP Generative AI Hub",icon:"business",color:"#0FAAFF",textIcon:"SAP",website:"https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/generative-ai-hub-in-sap-ai-core",notice:{apiKeyUrl:"https://help.sap.com/docs/sap-ai-core/sap-ai-core-service-guide/create-api-credentials-for-ai-core",text:"Chat requests use the deploymentUrl from Generative AI Hub and require an AI-Resource-Group header. Add the deployment endpoint via a custom baseUrl connection (OpenAI-compatible)."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",validateUrl:""},passthroughModels:!0},{id:"scaleway",priority:40,alias:"scaleway",aliases:["scw"],uiAlias:"scw",display:{name:"Scaleway",icon:"cloud",color:"#4F0599",textIcon:"SCW",website:"https://www.scaleway.com/en/docs/ai-data/generative-apis/",notice:{apiKeyUrl:"https://console.scaleway.com/project/credentials",text:"EU/GDPR-compliant (Paris). 1M free tokens for new accounts."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.scaleway.ai/v1/chat/completions",validateUrl:"https://api.scaleway.ai/v1/models"},models:[{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"llama-3.3-70b-instruct",name:"Llama 3.3 70B"},{id:"mistral-small-3.2-24b-instruct-2506",name:"Mistral Small 3.2"},{id:"gpt-oss-120b",name:"GPT-OSS 120B"},{id:"glm-5.2",name:"GLM 5.2"}],serviceKinds:["llm"],hasFree:!0,freeNote:"1M free tokens for new accounts — EU/GDPR compliant (Paris)"},{id:"snowflake",priority:40,alias:"snowflake",display:{name:"Snowflake Cortex",icon:"ac_unit",color:"#29B5E8",textIcon:"SF",website:"https://www.snowflake.com",notice:{apiKeyUrl:"https://app.snowflake.com",text:"Cortex inference is OpenAI-compatible at https://<org>-<account>.snowflakecomputing.com/api/v2/cortex/inference:complete. Add your account endpoint via a custom baseUrl connection."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://example-org-example-account.snowflakecomputing.com/api/v2/cortex/inference:complete",validateUrl:"https://example-org-example-account.snowflakecomputing.com/api/v2/cortex/inference:complete"},models:[{id:"llama3.1-70b",name:"Llama 3.1 70B"},{id:"llama3.3-70b",name:"Llama 3.3 70B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"claude-3-5-sonnet",name:"Claude 3.5 Sonnet"}],serviceKinds:["llm"],passthroughModels:!0},{id:"soniox",priority:30,alias:"soniox",display:{name:"Soniox",icon:"record_voice_over",color:"#0EA5E9",textIcon:"SX",website:"https://soniox.com",notice:{apiKeyUrl:"https://platform.soniox.com",text:"Async batch STT (stt-async-v5/v4). API key from platform.soniox.com."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"stt-async-v5",name:"Soniox STT Async v5",kind:"stt"},{id:"stt-async-v4",name:"Soniox STT Async v4",kind:"stt"}],sttConfig:{baseUrl:"https://api.soniox.com/v1/transcriptions",authType:"apikey",authHeader:"bearer",format:"soniox"}},{id:"speechmatics",priority:30,alias:"speechmatics",display:{name:"Speechmatics",icon:"record_voice_over",color:"#6366F1",textIcon:"SM",website:"https://speechmatics.com",notice:{apiKeyUrl:"https://portal.speechmatics.com",text:"Async batch STT (enhanced). Free tier: 8 hours/month, no credit card."}},category:"apikey",authType:"apikey",serviceKinds:["stt"],models:[{id:"enhanced",name:"Enhanced",kind:"stt"}],sttConfig:{baseUrl:"https://asr.api.speechmatics.com/v2/jobs",authType:"apikey",authHeader:"bearer",format:"speechmatics"}},{id:"speka",priority:50,alias:"speka",display:{name:"Speka AI",icon:"router",color:"#DB2777",textIcon:"SP",website:"https://speka.me"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://speka.me/v1/chat/completions",validateUrl:"https://speka.me/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free plan: $1 monthly usage, 10 RPM, one API key and access to open models and the playground; no card required."},{id:"sumopod",priority:50,alias:"sumopod",display:{name:"SumoPod",icon:"router",color:"#2563EB",textIcon:"SP",website:"https://ai.sumopod.com",notice:{text:"Use your SumoPod API key (sk-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://ai.sumopod.com/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://ai.sumopod.com/v1/chat/completions",validateUrl:"https://ai.sumopod.com/v1/models"},passthroughModels:!0},{id:"synthetic",priority:50,alias:"synthetic",display:{name:"Synthetic",icon:"verified_user",color:"#6366F1",textIcon:"SY",website:"https://synthetic.new"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.synthetic.new/openai/v1/chat/completions",validateUrl:"https://api.synthetic.new/openai/v1/models"},models:[{id:"hf:openai/gpt-oss-120b",name:"openai/gpt-oss-120b"},{id:"hf:zai-org/GLM-5.2",name:"zai-org/GLM-5.2"},{id:"hf:moonshotai/Kimi-K2.7-Code",name:"moonshotai/Kimi-K2.7-Code"},{id:"hf:Qwen/Qwen3.6-27B",name:"Qwen/Qwen3.6-27B"},{id:"hf:MiniMaxAI/MiniMax-M3",name:"MiniMaxAI/MiniMax-M3"},{id:"hf:zai-org/GLM-4.7-Flash",name:"zai-org/GLM-4.7-Flash"},{id:"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4",name:"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4"}],passthroughModels:!0},{id:"thebai",priority:50,alias:"thebai",display:{name:"TheB.AI",icon:"hub",color:"#3B82F6",textIcon:"TB",website:"https://theb.ai",notice:{text:"Bearer API key for the TheB.AI OpenAI-compatible gateway."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.theb.ai/v1/chat/completions",validateUrl:"https://api.theb.ai/v1/models"},passthroughModels:!0},{id:"tokenreply",priority:50,alias:"tokenreply",display:{name:"TokenReply",icon:"router",color:"#3B82F6",textIcon:"TR",website:"https://www.tokenreply.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.tokenreply.com/v1/chat/completions",validateUrl:"https://api.tokenreply.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free-tagged models have model- and campaign-specific daily limits; no fixed global free quota is published."},{id:"triton",priority:50,alias:"triton",display:{name:"NVIDIA Triton",icon:"memory",color:"#76B900",textIcon:"TR",website:"https://developer.nvidia.com/triton-inference-server",notice:{text:"NVIDIA Triton Inference Server — OpenAI-compatible endpoint. Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:8000/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"unorouter",priority:50,alias:"unorouter",display:{name:"UnoRouter",icon:"unorouter",color:"#8B5CF6",textIcon:"UR",website:"https://unorouter.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.unorouter.com/v1/chat/completions",validateUrl:"https://api.unorouter.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Models with the :free suffix do not debit balance; limit is 1 request/minute per free model per user."},{id:"upstage",priority:50,alias:"upstage",display:{name:"Upstage",icon:"trending_up",color:"#0F766E",textIcon:"UP",website:"https://www.upstage.ai",notice:{apiKeyUrl:"https://console.upstage.ai/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.upstage.ai/v1/chat/completions",validateUrl:"https://api.upstage.ai/v1/models"},models:[{id:"solar-pro3",name:"Solar Pro 3"},{id:"solar-mini",name:"Solar Mini"}],serviceKinds:["llm"]},{id:"vllm",priority:50,alias:"vllm",display:{name:"vLLM",icon:"memory",color:"#0F766E",textIcon:"VL",website:"https://github.com/vllm-project/vllm",notice:{text:"vLLM inference server — OpenAI-compatible endpoint. Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:8000/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"void-ai",priority:50,alias:"void-ai",display:{name:"Void AI",icon:"science",color:"#111827",textIcon:"VA",website:"https://voidai.app"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.voidai.app/v1/chat/completions",validateUrl:"https://api.voidai.app/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"The public model catalog marks some models with a free plan requirement, but access is conditional and no numeric quota is confirmed."},{id:"wafer",priority:50,alias:"wafer",display:{name:"Wafer AI",icon:"layers",color:"#6366F1",textIcon:"WF",website:"https://wafer.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://pass.wafer.ai/v1/messages",validateUrl:"https://pass.wafer.ai/v1/models"},models:[{id:"DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"Qwen3.5-397B-A17B",name:"Qwen3.5 397B A17B"},{id:"GLM-5.1",name:"GLM 5.1"}]},{id:"wandb",priority:50,alias:"wandb",display:{name:"Weights & Biases Inference",icon:"monitoring",color:"#FFBE0B",textIcon:"WB",website:"https://wandb.ai"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.inference.wandb.ai/v1/chat/completions",validateUrl:"https://api.inference.wandb.ai/v1/models"},models:[{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",name:"Nemotron 3 Ultra"},{id:"nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-FP8",name:"Nemotron 3 Super"},{id:"nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B",name:"Nemotron 3.5 Lightning"},{id:"google/gemma-4-31B-it",name:"Gemma 4 31B"}]},{id:"watsonx",priority:40,alias:"watsonx",display:{name:"IBM watsonx.ai",icon:"hub",color:"#0F62FE",textIcon:"WX",website:"https://www.ibm.com/products/watsonx-ai",notice:{apiKeyUrl:"https://dataplatform.cloud.ibm.com/iam/apikeys",text:"watsonx model gateway is OpenAI-compatible under /ml/gateway/v1. Base URL is regional — override with your region's gateway (e.g. https://us-south.ml.cloud.ibm.com/ml/gateway/v1) via a custom baseUrl connection."}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"https://us-south.ml.cloud.ibm.com/ml/gateway/v1/chat/completions",validateUrl:"https://us-south.ml.cloud.ibm.com/ml/gateway/v1/models"},models:[{id:"ibm/granite-3-8b-instruct",name:"Granite 3 8B Instruct"},{id:"meta-llama/llama-3-3-70b-instruct",name:"Llama 3.3 70B Instruct"}],serviceKinds:["llm"],passthroughModels:!0},{id:"writer",priority:50,alias:"writer",display:{name:"Writer",icon:"edit",color:"#111827",textIcon:"WR",website:"https://dev.writer.com",notice:{apiKeyUrl:"https://app.writer.com/settings/api-keys",text:"Palmyra X5 offers a 1M-token context window. OpenAI-compatible."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.writer.com/v1/chat/completions",validateUrl:"https://api.writer.com/v1/models"},models:[{id:"palmyra-x5",name:"Palmyra X5"},{id:"palmyra-x4",name:"Palmyra X4"}],serviceKinds:["llm"]},{id:"x5lab",priority:50,alias:"x5lab",display:{name:"X5Lab",icon:"router",color:"#7C3AED",textIcon:"X5",website:"https://x5lab.dev",notice:{text:"Use your X5Lab API key (x5-...) in Authorization: Bearer <key>. Fully OpenAI-compatible. API base URL: https://api.x5lab.dev/v1."}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.x5lab.dev/v1/chat/completions",validateUrl:"https://api.x5lab.dev/v1/models"},passthroughModels:!0},{id:"xinference",priority:50,alias:"xinference",display:{name:"XInference",icon:"hub",color:"#DC2626",textIcon:"XI",website:"https://inference.readthedocs.io",notice:{text:"XInference — local model serving platform, OpenAI-compatible endpoint (default port 9997). Base URL overridable per connection."}},category:"apikey",hasFree:!0,freeNote:"Runs on your own hardware — no per-token cost.",transport:{baseUrl:"http://localhost:9997/v1/chat/completions",format:"openai"},passthroughModels:!0,serviceKinds:["llm"]},{id:"yolo-auto",priority:50,alias:"yolo-auto",display:{name:"Yolo-Auto",icon:"auto_awesome",color:"#F59E0B",textIcon:"YA",website:"https://yolo-auto.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://yolo-auto.com/v1/chat/completions",validateUrl:"https://yolo-auto.com/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Free API access is request-limited and intended for testing; no numeric daily quota is published and free access is not promised indefinitely."},{id:"zerolimitai",priority:50,alias:"zerolimitai",display:{name:"ZeroLimitAI",icon:"router",color:"#475569",textIcon:"ZL",website:"https://www.zerolimitai.com"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://www.zerolimitai.com/api/v1/chat/completions",validateUrl:"https://www.zerolimitai.com/api/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Temporary free trial is advertised, but official pages conflict between 3 and 7 days; a 100-calls/day claim is not treated."},{id:"zylo-api",priority:50,alias:"zylo",display:{name:"Zylo API",icon:"hub",color:"#2563EB",textIcon:"ZY",website:"https://zyloai.net"},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.zyloai.net/v1/chat/completions",validateUrl:"https://api.zyloai.net/v1/models"},passthroughModels:!0,hasFree:!0,freeNote:"Basic plan: 10 RPM, 7,200 requests/day and 200,000 tokens/day; limited to Basic text models."},{id:"notion-web",priority:150,alias:"nw",display:{name:"Notion AI Web",icon:"auto_awesome",color:"#1A1919",textIcon:"NW",website:"https://www.notion.so",notice:{signupUrl:"https://www.notion.so",apiKeyUrl:"https://www.notion.so",text:"Notion AI browser-session chat. Open notion.so, log in, then copy the `token_v2` cookie (plus `space_id` / `notion_user_id` / `notion_browser_id` if present) from DevTools → Application → Cookies → notion.so and paste it here. Requests go through Chrome-TLS impersonation because Notion's edge rejects plain Node fetch. Multi-turn chats reuse one Notion thread. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:'Copy the "token_v2" cookie value from notion.so → DevTools → Application → Cookies → notion.so and paste it here. Optional: "space_id=...; notion_user_id=..." pairs.',transport:{baseUrl:"https://app.notion.com",format:"notion-web",authType:"cookie"},models:[{id:"fable-5",name:"Fable 5"},{id:"sonnet-5",name:"Sonnet 5"},{id:"opus-4.8",name:"Opus 4.8"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"glm-5.2",name:"GLM 5.2"},{id:"grok-4.5",name:"Grok 4.5"},{id:"notion-ai",name:"Notion AI (default)"}],passthroughModels:!0},{id:"hyperagent",priority:150,alias:"ha",display:{name:"HyperAgent",icon:"auto_awesome",color:"#7C3AED",textIcon:"HA",website:"https://hyperagent.com",notice:{signupUrl:"https://hyperagent.com",apiKeyUrl:"https://hyperagent.com",text:"HyperAgent agent chat via browser session. Open hyperagent.com, log in, then paste the full Cookie header from DevTools → Network → any document request → Request Headers → Cookie. Claude-family agent models with 1M context; multi-turn chats reuse one thread + session. ⚠️ Reverse-engineered protocol — upstream may change without notice."}},category:"webCookie",authType:"cookie",authHint:"Paste the full Cookie header from hyperagent.com (DevTools → Network → any document request → Request Headers → Cookie).",transport:{baseUrl:"https://hyperagent.com",format:"hyperagent",authType:"cookie"},defaultContextLength:1e6,models:[{id:"fable-latest",name:"Fable 5",contextLength:1e6},{id:"claude-fable-5",name:"Claude Fable 5",contextLength:1e6},{id:"opus-latest",name:"Claude Opus Latest",contextLength:1e6},{id:"claude-opus-4-8",name:"Claude Opus 4.8",contextLength:1e6},{id:"sonnet-latest",name:"Claude Sonnet Latest",contextLength:1e6},{id:"claude-sonnet-5",name:"Claude Sonnet 5",contextLength:1e6}],passthroughModels:!0},{id:"alitp-intl",priority:165,alias:"atp",aliases:["token-plan","qwen-cloud-token-plan"],uiAlias:"atp",display:{name:"Alibaba Token Plan",icon:"cloud",color:"#FF6A00",textIcon:"ATP",website:"https://www.alibabacloud.com/campaign/ai-landing-page-token",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions",format:"openai",validateUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer"},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-max",name:"Qwen3.7 Max",contextWindow:1e6,maxOutput:65536},{id:"qwen3.7-plus",name:"Qwen3.7 Plus",contextWindow:1e6,maxOutput:65536},{id:"qwen3.6-flash",name:"Qwen3.6 Flash",contextWindow:1e6,maxOutput:32768},{id:"glm-5.2",name:"GLM 5.2",contextWindow:1e6,maxOutput:16384},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:163840,maxOutput:32768}],passthroughModels:!0,modelsFetcher:{url:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/models",type:"openai"}},{id:"zcode",priority:150,alias:"zcode",aliases:["zc"],uiAlias:"zc",display:{name:"ZCode",icon:"terminal",color:"#4F46E5",textIcon:"ZC",website:"https://zcode.z.ai",notice:{signupUrl:"https://zcode.z.ai",text:"ZCode is Zhipu's coding agent powered by Z.ai. OAuth logs in with your Z.ai account. NOTE: Start Plan quota is exclusive to the ZCode desktop app — its endpoint requires Aliyun captcha attestation the app solves in-app, so routed requests fall back to the Coding Plan legs. For reliable gateway access use a GLM Coding Plan key (id.secret from api.z.ai or open.bigmodel.cn), or paste one via API Key."}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:L[0],baseUrls:L,format:"claude",thinkingFormat:"openai",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-high",name:"GLM 5.3 High",upstreamModelId:"glm-5.3"},{id:"glm-5.3-low",name:"GLM 5.3 Low",upstreamModelId:"glm-5.3"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5.1-highspeed",name:"GLM 5.1 Highspeed"},{id:"glm-5",name:"GLM 5"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5v-turbo",name:"GLM 5V Turbo (Vision)"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.7-flashx",name:"GLM 4.7 FlashX"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"glm-4.6",name:"GLM 4.6"}],oauth:{baseUrl:"https://zcode.z.ai/api/v1",provider:"zai",apiKeyHost:"https://api.z.ai",apiKeyName:"zcode-api-key"},features:{usage:!0,usageApikey:!0}},{id:"xkiro",priority:322,alias:"xkiro",aliases:[],uiAlias:"xk",display:{name:"xKiro",icon:"key",color:"#6366F1",textIcon:"XK",website:"https://xkiro.com",notice:{signupUrl:"https://xkiro.com",apiKeyUrl:"https://xkiro.com",text:"xKiro is an AI gateway hosting 100+ models (GPT, Claude, Gemini, GLM, Kimi, DeepSeek, Qwen, MiniMax, Mistral) behind one sk-xt- API key. Reasoning intent is translated per model; models without reasoning control ignore it at no cost. GET /v1/usage reports spend windows and wallet with the same key."}},category:"apikey",authType:"apikey",authModes:["apikey"],features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://api.xkiro.com/v1/chat/completions",format:"openai",thinkingFormat:"openai",validateUrl:"https://api.xkiro.com/v1/models",usage:{url:"https://api.xkiro.com/v1/usage"}},thinkingConfig:{options:["auto","none","minimal","low","medium","high","xhigh","max"],defaultMode:"auto"},models:[{id:"anthropic/claude-fable-5",name:"Fable 5"},{id:"anthropic/claude-fable-5-1",name:"Fable 5.1"},{id:"anthropic/claude-haiku-4.5",name:"Haiku 4.5"},{id:"anthropic/claude-opus-4.6",name:"Opus 4.6"},{id:"anthropic/claude-opus-4.7",name:"Opus 4.7"},{id:"anthropic/claude-opus-4.8",name:"Opus 4.8"},{id:"anthropic/claude-opus-5",name:"Opus 5"},{id:"anthropic/claude-sonnet-4.6",name:"Sonnet 4.6"},{id:"anthropic/claude-sonnet-5",name:"Sonnet 5"},{id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek V3.1"},{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731"},{id:"deepseek/deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-3-flash",name:"Gemini 3 Flash"},{id:"google/gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"google/gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"meta/muse-spark-1.2-contributor",name:"Muse Spark 1.2"},{id:"minimax/minimax-m2:free",name:"MiniMax M2 (Free)"},{id:"minimax/minimax-m2.1-highspeed:free",name:"MiniMax M2.1 Highspeed (Free)"},{id:"minimax/minimax-m2.1:free",name:"MiniMax M2.1 (Free)"},{id:"minimax/minimax-m2.5",name:"MiniMax M2.5"},{id:"minimax/minimax-m2.5-highspeed:free",name:"MiniMax M2.5 Highspeed (Free)"},{id:"minimax/minimax-m2.5:free",name:"MiniMax M2.5 (Free)"},{id:"minimax/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimax/minimax-m2.7-highspeed:free",name:"MiniMax M2.7 Highspeed (Free)"},{id:"minimax/minimax-m2.7:free",name:"MiniMax M2.7 (Free)"},{id:"minimax/minimax-m3",name:"MiniMax M3"},{id:"minimax/minimax-m3:free",name:"MiniMax M3 (Free)"},{id:"mistralai/codestral-2508",name:"Codestral"},{id:"mistralai/devstral-medium",name:"Devstral 2"},{id:"mistralai/ministral-14b",name:"Ministral 3 14B"},{id:"mistralai/ministral-3b",name:"Ministral 3 3B"},{id:"mistralai/ministral-8b",name:"Ministral 3 8B"},{id:"mistralai/mistral-large-2512",name:"Mistral Large 3"},{id:"mistralai/mistral-medium-3.5",name:"Mistral Medium 3.5"},{id:"mistralai/mistral-small-2603",name:"Mistral Small 4"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"moonshotai/kimi-k3",name:"Kimi K3"},{id:"nvidia/llama-3.3-nemotron-super-49b",name:"Llama 3.3 Nemotron Super 49B"},{id:"nvidia/nemotron-3-nano",name:"Nemotron 3 Nano"},{id:"nvidia/nemotron-3-nano-omni",name:"Nemotron 3 Nano Omni"},{id:"nvidia/nemotron-3-super",name:"Nemotron 3 Super"},{id:"nvidia/nemotron-3-ultra",name:"Nemotron 3 Ultra"},{id:"openai/gpt-5.3-codex-spark",name:"Codex 5.3 Spark"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"openai/gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"openai/gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"openai/gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"openai/gpt-6-astra",name:"GPT-6 Astra"},{id:"qwen/qwen-plus-2025-07-28:free",name:"Qwen Plus 0728 (Free)"},{id:"qwen/qwen3-coder-plus:free",name:"Qwen3 Coder Plus (Free)"},{id:"qwen/qwen3-max:free",name:"Qwen3 Max (Free)"},{id:"qwen/qwen3-omni-flash:free",name:"Qwen3 Omni Flash (Free)"},{id:"qwen/qwen3-vl-plus:free",name:"Qwen3 VL Plus (Free)"},{id:"qwen/qwen3.5-397b-a17b:free",name:"Qwen3.5 397B A17B (Free)"},{id:"qwen/qwen3.5-flash:free",name:"Qwen3.5 Flash (Free)"},{id:"qwen/qwen3.5-omni-flash:free",name:"Qwen3.5 Omni Flash (Free)"},{id:"qwen/qwen3.5-omni-plus:free",name:"Qwen3.5 Omni Plus (Free)"},{id:"qwen/qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"qwen/qwen3.5-plus:free",name:"Qwen3.5 Plus (Free)"},{id:"qwen/qwen3.6-27b:free",name:"Qwen3.6 27B (Free)"},{id:"qwen/qwen3.6-35b-a3b:free",name:"Qwen3.6 35B A3B (Free)"},{id:"qwen/qwen3.6-max-preview:free",name:"Qwen3.6 Max Preview (Free)"},{id:"qwen/qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen/qwen3.6-plus:free",name:"Qwen3.6 Plus (Free)"},{id:"qwen/qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen/qwen3.7-max:free",name:"Qwen3.7 Max (Free)"},{id:"qwen/qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen/qwen3.7-plus:free",name:"Qwen3.7 Plus (Free)"},{id:"qwen/qwen3.8-max",name:"Qwen3.8 Max"},{id:"qwen/qwen3.8-max:free",name:"Qwen3.8 Max (Free)"},{id:"sensenova/sensenova-6.7-flash-lite",name:"SenseNova 6.7 Flash-Lite"},{id:"sensenova/sensenova-6.8-flash-lite",name:"SenseNova 6.8 Flash-Lite"},{id:"tencent/hy3",name:"Hy3"},{id:"tencent/hy4-preview",name:"Hy4 Preview"},{id:"x-ai/grok-4.5",name:"Grok 4.5"},{id:"x-ai/grok-4.6",name:"Grok 4.6"},{id:"x-ai/grok-build-0.1",name:"Grok Build 0.1"},{id:"xiaomi/mimo-v2.5",name:"MiMo v2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo v2.5 Pro"},{id:"z-ai/glm-4.5",name:"GLM-4.5"},{id:"z-ai/glm-4.5-air",name:"GLM-4.5 Air"},{id:"z-ai/glm-4.5-airx",name:"GLM-4.5 AirX"},{id:"z-ai/glm-4.5-flash",name:"GLM-4.5 Flash"},{id:"z-ai/glm-4.5-x",name:"GLM-4.5-X"},{id:"z-ai/glm-4.5v",name:"GLM-4.5V"},{id:"z-ai/glm-4.6",name:"GLM-4.6"},{id:"z-ai/glm-4.6v",name:"GLM-4.6V"},{id:"z-ai/glm-4.6v-flash",name:"GLM-4.6V Flash"},{id:"z-ai/glm-4.6v-flashx",name:"GLM-4.6V FlashX"},{id:"z-ai/glm-4.7",name:"GLM-4.7"},{id:"z-ai/glm-4.7-flash",name:"GLM-4.7 Flash"},{id:"z-ai/glm-4.7-flashx",name:"GLM-4.7 FlashX"},{id:"z-ai/glm-5",name:"GLM-5"},{id:"z-ai/glm-5-turbo",name:"GLM-5 Turbo"},{id:"z-ai/glm-5.1",name:"GLM-5.1"},{id:"z-ai/glm-5.2",name:"GLM-5.2"},{id:"z-ai/glm-5.3",name:"GLM-5.3"},{id:"z-ai/glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"z-ai/glm-5v-turbo",name:"GLM-5V Turbo"}]}]},40468:(a,b,c)=>{"use strict";var d=c(89718),e=c(25334);let f=!1;async function g(){if(f)return!0;try{let a=await (0,d.mt)();(0,e.k)(a),f=!0}catch(a){console.error("[ServerInit] Error initializing outbound proxy:",a)}return f}setImmediate(()=>{g().catch(console.log)})},49573:(a,b,c)=>{"use strict";c.r(b),c.d(b,{dispatchAlert:()=>j,initAlertService:()=>i});var d=c(89718),e=c(24467);let f={provider_down:0xef4444,rate_limited:0xf59e0b,health_degraded:0xf59e0b,budget_exceeded:0xef4444,test:3900150},g={provider_down:"\uD83D\uDD34 Provider Down",rate_limited:"⚠️ Rate Limited",health_degraded:"⚠️ Health Degraded",budget_exceeded:"\uD83D\uDD34 Budget Exceeded",test:"\uD83D\uDD14 Test Alert"};global._alertService||(global._alertService={initialized:!1,lastAlert:new Map});let h=global._alertService;function i(){h.initialized||(h.initialized=!0,e.X6.on("breaker:update",a=>{"open"===a.state&&j("provider_down",{provider:a.provider,failures:a.failures,message:`Circuit Breaker OPEN for "${a.provider}" — ${a.failures} failures in window. Provider is now bypassed.`}).catch(()=>{})}),console.log("[AlertService] initialized — subscribed to breaker events"))}async function j(a,b={}){try{let c=await (0,d.mt)();if(!c.webhookEnabled)return;let e=c.webhookAlertEvents||{},i=a.replace(/_([a-z])/g,(a,b)=>b.toUpperCase());if("test"!==a&&!e[i]&&!e[a])return;let j=`${a}:${b.provider||"global"}`,n=Date.now(),o=h.lastAlert.get(j);if(o&&n-o<3e5)return;h.lastAlert.set(j,n);let p=g[a]||`🔔 ${a}`,q=b.message||JSON.stringify(b),r=f[a]||7041664,s=b.provider?`[${b.provider}]`:"",t=`${p} ${s}
|
|
2
|
+
${q}`,u=[];c.webhookDiscordUrl&&u.push(k(c.webhookDiscordUrl,{title:p,description:q,color:r})),c.webhookTelegramToken&&c.webhookTelegramChatId&&u.push(l(c.webhookTelegramToken,c.webhookTelegramChatId,t)),c.webhookGenericUrl&&u.push(m(c.webhookGenericUrl,{eventType:a,title:p,description:q,...b,timestamp:new Date().toISOString()})),await Promise.allSettled(u)}catch(a){console.warn("[AlertService] dispatch error:",a?.message||String(a))}}async function k(a,{title:b,description:d,color:e}){try{let{proxyAwareFetch:f}=await c.e(9609).then(c.bind(c,39609));await f(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:"ExtremeRouter",embeds:[{title:b,description:d,color:e,timestamp:new Date().toISOString(),footer:{text:"ExtremeRouter Gateway"}}]})},null)}catch(a){console.warn("[AlertService] Discord delivery failed:",a?.message)}}async function l(a,b,d){try{let{proxyAwareFetch:e}=await c.e(9609).then(c.bind(c,39609));await e(`https://api.telegram.org/bot${a}/sendMessage`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:b,text:d,parse_mode:"HTML",disable_web_page_preview:!0})},null)}catch(a){console.warn("[AlertService] Telegram delivery failed:",a?.message)}}async function m(a,b){try{let{proxyAwareFetch:d}=await c.e(9609).then(c.bind(c,39609));await d(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)},null)}catch(a){console.warn("[AlertService] Generic webhook delivery failed:",a?.message)}}},50385:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{default:()=>o,metadata:()=>p,viewport:()=>q});var e=c(5735),f=c(75329),g=c.n(f),h=c(93968),i=c(59537);c(36497),c(61135);var j=c(89886);c(40468);var k=c(14596),l=c(26892),m=c(85117),n=a([k]);k=(n.then?(await n)():n)[0],(0,l.wJ)();let p={title:"ExtremeRouter - AI Infrastructure Management",description:"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.",icons:{icon:"/favicon.svg"}},q={themeColor:"#0a0a0a"};function o({children:a}){return(0,e.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,e.jsx)("head",{children:(0,e.jsx)(h.default,{id:"font-loading",strategy:"beforeInteractive",children:"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"})}),(0,e.jsxs)("body",{className:`${g().variable} font-sans antialiased`,children:[(0,e.jsx)(j.ThemeProvider,{children:(0,e.jsx)(m.RuntimeI18nProvider,{children:a})}),(0,e.jsx)(i.GoogleAnalytics,{gaId:"G-LC959F603F"})]})]})}d()}catch(a){d(a)}})},51126:(a,b,c)=>{"use strict";c.d(b,{CL:()=>f,QC:()=>g,Xn:()=>e,YZ:()=>d});let d=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],e="en",f="locale";function g(a){return"zh"===a||"zh-CN"===a?"zh-CN":"en"===a?"en":"vi"===a?"vi":"zh-TW"===a?"zh-TW":"ja"===a?"ja":"pt-BR"===a?"pt-BR":"pt-PT"===a?"pt-PT":"ko"===a?"ko":"es"===a?"es":"de"===a?"de":"fr"===a?"fr":"he"===a?"he":"ar"===a?"ar":"ru"===a?"ru":"pl"===a?"pl":"cs"===a?"cs":"nl"===a?"nl":"tr"===a?"tr":"uk"===a?"uk":"tl"===a?"tl":"id"===a?"id":"th"===a?"th":"hi"===a?"hi":"bn"===a?"bn":"ur"===a?"ur":"ro"===a?"ro":"sv"===a?"sv":"it"===a?"it":"el"===a?"el":"hu"===a?"hu":"fi"===a?"fi":"da"===a?"da":"no"===a?"no":e}},61135:()=>{},68019:(a,b,c)=>{"use strict";c.d(b,{jY:()=>k,pp:()=>l});var d=c(34973);let e={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},f=(...a)=>a.map(a=>({...e[a],type:"tts"})),g=f("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),h=f("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),i=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),j={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":h,"tts-1":g,"tts-1-hd":g},allVoices:h},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":h,"openai/tts-1":g,"openai/tts-1-hd":g},allVoices:h},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:d.I},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":i,"gemini-2.5-flash-preview-tts":i,"gemini-2.5-pro-preview-tts":i},allVoices:i}};function k(a,b){let c=j[a];return c?.voices&&(c.voices[b]||c.allVoices)||null}function l(){let a={};for(let[b,c]of Object.entries(j))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=j.openai.allVoices,a["openrouter-tts-voices"]=j.openrouter.allVoices,a}},70440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(88868);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico",!0)+"?603d046c9a6fdfbb"}]},75975:(a,b,c)=>{Promise.resolve().then(c.bind(c,82275)),Promise.resolve().then(c.bind(c,74281)),Promise.resolve().then(c.bind(c,78962)),Promise.resolve().then(c.t.bind(c,90929,23)),Promise.resolve().then(c.bind(c,5211)),Promise.resolve().then(c.bind(c,19308))},76476:(a,b,c)=>{"use strict";c.d(b,{N:()=>n,v:()=>m});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"@rsalmn/extremerouter"):g().join(i().homedir(),".extremerouter")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},80033:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>r,vq:()=>m,u0:()=>p,KC:()=>s});var d=c(36633);function e(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}e("STREAM_STALL_TIMEOUT_MS",36e4),e("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5),e("FETCH_CONNECT_TIMEOUT_MS",6e4),e("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3),(()=>{let a=process.env.ROUTER_MAX_OUTPUT_TOKENS;if(null!=a&&""!==a)return Number.isFinite(parseInt(a,10))})(),/^(off|false|0)$/i.test(process.env.MODEL_CATALOG||""),process.env.MODEL_CATALOG_URL,e("MODEL_CATALOG_STARTUP_DELAY",6e4),e("MODEL_CATALOG_REFRESH_INTERVAL",864e5),e("MODEL_CATALOG_RETRY_BACKOFF",18e5),e("MODEL_CATALOG_REQUEST_TIMEOUT",6e4),e("MODEL_CATALOG_WORKER_TIMEOUT",12e4),e("MODEL_CATALOG_MAX_STALENESS",6048e5);function f(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}let g=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,a=>`Kimi K${a[1]}${a[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,a=>`GLM ${a[1]}${a[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,a=>`MiniMax M${a[1]}`],[/^gpt-(.+)$/i,a=>`GPT ${f(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${f(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${f(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${f(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${f(a[1])}`]];function h(a){let b="string"==typeof a?{id:a}:a;return void 0!==b.name?b:{...b,name:function(a){if("string"!=typeof a)return a;for(let[b,c]of g){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}var i=c(68019);let j=["clientId","clientSecret","tokenUrl"],k=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),l={},m={},n={},o={};for(let a of d.A){a.transport&&(l[a.id]=function(a,b){let c={...a};if(c.format||(c.format="openai"),b)for(let a of j)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(l[a.id].transports=a.transports)),void 0!==a.models&&(m[a.alias||a.id]=a.models.map(h)),a.oauth&&(n[a.id]=a.oauth);let b={};for(let c of k)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(o[a.id]=b)}function p(a,b){let c=m[a];if(!c)return b;let d=c.find(a=>a.id===b);return d?.name||b}Object.assign(m,(0,i.pp)()),l["xiaomi-tokenplan"]?.regions,l["xiaomi-tokenplan"]?.defaultRegion;let q=Object.fromEntries(d.A.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),r=Object.fromEntries(Object.keys(l).map(a=>[a,q[a]||a]));function s(a){return m[r[a]||a]||[]}},81329:(a,b,c)=>{"use strict";c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(57247);Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=(()=>{let a=new Set,b=[];for(let[c,e]of Object.entries(d.PROVIDER_MODELS))for(let d of e){let e=`${c}/${d.id}`;a.has(e)||(a.add(e),b.push({provider:c,model:d.id,name:d.name}))}return b})(),f=(a,b=null)=>a?.kind||a?.type||b},83700:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},85117:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call RuntimeI18nProvider() from the server but RuntimeI18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/i18n/RuntimeI18nProvider.js","RuntimeI18nProvider")},87618:(a,b,c)=>{"use strict";c.d(b,{r:()=>f});var d=c(7803),e=c(12557);async function f(){let a,{getProviderConnections:b,updateProviderConnection:f}=await Promise.resolve().then(c.bind(c,89718));try{a=await b({provider:"kimchi",isActive:!1})}catch(a){return d.warn("AUTH",`Kimchi quota reactivation: failed to query connections: ${a.message}`),0}if(!a||0===a.length)return 0;let g=Date.now(),h=0;for(let b of a){if("quota_exhausted"!==b.testStatus||!b.rateLimitedUntil)continue;let a=new Date(b.rateLimitedUntil).getTime();if(!Number.isNaN(a)&&!(a>g))try{await f(b.id,(0,e.zZ)()),h++,d.info("AUTH",`Kimchi quota reactivated: ${b.name||b.id} (cooldown expired ${b.rateLimitedUntil})`)}catch(a){d.warn("AUTH",`Kimchi quota reactivation failed for ${b.name||b.id}: ${a.message}`)}}return h>0&&d.info("AUTH",`Kimchi quota reactivation: ${h} account(s) reactivated`),h}},89886:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ThemeProvider.js","ThemeProvider")},91431:(a,b,c)=>{"use strict";c.d(b,{CP:()=>e,KC:()=>d.KC,Xg:()=>d.Xg,bs:()=>f,u0:()=>d.u0});var d=c(80033);Object.entries(c(92592).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),(()=>{let a=new Set,b=[];for(let[c,e]of Object.entries(d.vq))for(let d of e){let e=`${c}/${d.id}`;a.has(e)||(a.add(e),b.push({provider:c,model:d.id,name:d.name}))}})();let e=(a,b=null)=>a?.kind||a?.type||b,f={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-blue-500"},pdf:{icon:"description",label:"PDF",desc:"Supports PDF input",color:"text-red-500"},audioInput:{icon:"graphic_eq",label:"Audio",desc:"Supports audio input",color:"text-green-500"},videoInput:{icon:"videocam",label:"Video",desc:"Supports video input",color:"text-purple-500"},search:{icon:"travel_explore",label:"Web Search",desc:"Supports web search",color:"text-cyan-500"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-amber-500"}}},92592:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>x,DI:()=>r,fg:()=>n,MA:()=>y,IS:()=>j,nJ:()=>k,rj:()=>p,zN:()=>m,JH:()=>q,s9:()=>l,wb:()=>D,br:()=>o,wG:()=>B,zt:()=>z,o5:()=>C,gb:()=>t,gC:()=>u,Ox:()=>v,U_:()=>w,mq:()=>s,rs:()=>A});var d=c(36633);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","modelsFetcher","mediaPriority","hiddenKinds"],g={toolUse:!0,fileAccess:!0,streaming:!0,multiTurn:!0},h={webCookie:{toolUse:!1,fileAccess:!1,streaming:!0,multiTurn:!0}},i=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.alias||a.id,...a.uiAlias?{uiAlias:a.uiAlias}:{},...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}:"freeTier"===a.category||"apikey"===a.category?{authModes:["apikey"]}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.comingSoon?{comingSoon:!0}:{},capabilities:function(a){if(a.capabilities&&"object"==typeof a.capabilities)return{...g,...a.capabilities};let b=h[a.category];return b?{...b}:{...g}}(a)}}(a)])),j=i("free"),k=i("freeTier"),l={extended:{options:["auto","on","off"],defaultMode:"auto",defaultBudgetTokens:1e4},effort:{options:["auto","none","low","medium","high"],defaultMode:"auto"}},m=i("oauth"),n=i("apikey"),o=i("webCookie"),p=[{id:"embedding",label:"Embedding",icon:"data_array",endpoint:{method:"POST",path:"/v1/embeddings"}},{id:"image",label:"Text to Image",icon:"brush",endpoint:{method:"POST",path:"/v1/images/generations"}},{id:"imageToText",label:"Image to Text",icon:"image_search",endpoint:{method:"POST",path:"/v1/images/understanding"}},{id:"tts",label:"Text To Speech",icon:"record_voice_over",endpoint:{method:"POST",path:"/v1/audio/speech"}},{id:"stt",label:"Speech To Text",icon:"mic",endpoint:{method:"POST",path:"/v1/audio/transcriptions"}},{id:"webSearch",label:"Web Search",icon:"travel_explore",endpoint:{method:"POST",path:"/v1/search"}},{id:"webFetch",label:"Web Fetch",icon:"language",endpoint:{method:"POST",path:"/v1/web/fetch"}},{id:"video",label:"Video",icon:"movie",endpoint:{method:"POST",path:"/v1/video/generations"}},{id:"music",label:"Music",icon:"music_note",endpoint:{method:"POST",path:"/v1/audio/music"}}],q="openai-compatible-",r="anthropic-compatible-";function s(a){return"string"==typeof a&&a.startsWith(q)}function t(a){return"string"==typeof a&&a.startsWith(r)}function u(a){return"string"==typeof a&&a.startsWith("custom-embedding-")}function v(a){return"string"==typeof a&&a.startsWith("custom-stt-")}function w(a){return"string"==typeof a&&a.startsWith("custom-tts-")}let x={...j,...k,...m,...n,...o},y={oauth:{id:"oauth"},apikey:{id:"apikey"},cookie:{id:"cookie"}};function z(a){for(let b of Object.values(x))if(b.alias===a||b.id===a)return b;return null}function A(a){let b=z(a);return b?.id||a}function B(a){let b=x[a];return b?.alias||a}function C(a){return Object.values(x).filter(b=>!(!(b.serviceKinds??["llm"]).includes(a)||b.hidden||b.hiddenKinds?.includes(a))).sort((a,b)=>(a.priority??a.mediaPriority??999)-(b.priority??b.mediaPriority??999))}Object.values(x).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(x).reduce((a,b)=>(a[b.id]=b.alias,a),{});let D=d.A.filter(a=>a.features?.usage).map(a=>a.id);d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},92847:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,20349,23)),Promise.resolve().then(c.t.bind(c,31935,23)),Promise.resolve().then(c.t.bind(c,16764,23)),Promise.resolve().then(c.t.bind(c,33071,23)),Promise.resolve().then(c.bind(c,85117)),Promise.resolve().then(c.bind(c,89886))},94123:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>z});var e=c(21820),f=c.n(e),g=c(1932),h=c(33873),i=c(29021),j=c(89718),k=c(66457),l=c(96182),m=c(1133),n=c(49573),o=c(76476),p=c(87618),q=c(3256),r=a([m]);if(m=(r.then?(await r)():r)[0],!process.env.MITM_SERVER_PATH)try{let a=(0,g.fileURLToPath)("file:///home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/services/initializeApp.js"),b=(0,h.dirname)((0,h.dirname)(a)),c=(0,h.join)(b,"mitm","server.js");(0,i.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,l.initDbHooks)(j.mt,j.Xx)}catch{}process.setMaxListeners(40),global.__erGlobalHandlersRegistered||(global.__erGlobalHandlersRegistered=!0,process.on("unhandledRejection",a=>{console.error("[FATAL] Unhandled promise rejection:",a)}),process.on("uncaughtException",a=>{console.error("[FATAL] Uncaught exception:",a?.stack||a)}));let x=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),lastOnline:null,mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1,kimchiReactivationStarted:!1};async function s(){try{await (0,j.bI)();let a=await (0,j.mt)();if(a.tunnelEnabled&&!x.tunnelAutoResumed&&(x.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),u("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),a.tailscaleEnabled&&!x.tailscaleAutoResumed&&(x.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),v("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),!x.signalHandlersRegistered){let a=()=>{try{(0,l.removeAllDNSEntriesSync)()}catch{}(0,k.ss)(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),process.on("exit",()=>{try{(0,l.removeAllDNSEntriesSync)()}catch{}}),x.signalHandlersRegistered=!0}(0,k.Al)().catch(()=>{}),(0,o.v)().catch(()=>{}),(0,k.X$)(()=>{u("unexpected-exit").catch(()=>{})}),!x.watchdogInterval&&(x.watchdogInterval=setInterval(()=>{u("watchdog").catch(()=>{}),v("watchdog").catch(()=>{})},k.DA),x.watchdogInterval.unref&&x.watchdogInterval.unref()),!x.networkMonitorInterval&&(x.lastNetworkFingerprint=w(),x.lastWatchdogTick=Date.now(),x.lastOnline=null,x.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-x.lastWatchdogTick;x.lastWatchdogTick=a;let c=w(),d=c!==x.lastNetworkFingerprint,e=b>6*k.rI;d&&(x.lastNetworkFingerprint=c);let f=await (0,k.u7)(),g=!1===x.lastOnline;if(x.lastOnline=f,!f||!d&&!e&&!g)return;await new Promise(a=>setTimeout(a,k.cw));let h=g?"online":e&&d?"sleep+netchange":e?"sleep":"netchange";u(h).catch(()=>{}),v(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},k.rI),x.networkMonitorInterval.unref&&x.networkMonitorInterval.unref()),t(),(0,m.O)(),(0,n.initAlertService)(),function(){if(x.kimchiReactivationStarted)return;x.kimchiReactivationStarted=!0;let a=()=>{(0,p.r)().catch(a=>{console.log("[InitApp] Kimchi quota reactivation sweep failed:",a?.message||a)})};a();let b=setInterval(a,18e5);b.unref&&b.unref()}(),(0,q.R)(),c.e(6488).then(c.bind(c,86488)).then(a=>a.startModelCatalogSync()).catch(a=>console.error("[model-catalog] startup failed:",a?.message||a))}catch(a){console.error("[InitApp] Error:",a)}}async function t(){if(!x.mitmStartInProgress){x.mitmStartInProgress=!0;try{if(!(await (0,j.mt)()).mitmEnabled||(await (0,l.getMitmStatus)()).running)return;let a=await (0,l.loadEncryptedPassword)();if(!a&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let b=(await (0,j.PX)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,l.startMitm)(b?.key||"sk_extremerouter",a),console.log("[InitApp] MITM auto-started");try{await (0,l.restoreToolDNS)(a),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{x.mitmStartInProgress=!1}}}let y=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function u(a){let b=(0,k.Qn)();if(!(await (0,j.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=y.test(a);if(!(0,k.nN)()){if(!c&&Date.now()-b.lastRestartAt<k.Lh)return void console.log(`[Tunnel] degraded but cooldown active, skip (${a})`);if(await (0,k.u7)()){console.log(`[Tunnel] safeRestart (${a}) — tunnel unreachable${c?" [force]":""}`);try{await (0,k.cb)(),b.lastRestartAt=Date.now(),console.log("[Tunnel] restart success")}catch(a){/cloudflared killed|tunnel cancelled/.test(a.message)||console.log("[Tunnel] restart failed:",a.message)}}}}async function v(a){let b=(0,k.oN)();if(!(await (0,j.mt)()).tailscaleEnabled||b.cancelToken.cancelled||b.spawnInProgress||("startup"===a?await (0,k.hp)():(0,k.Kp)()))return;if((0,k.si)()&&b.activeLocalPort){try{await (0,k.LC)(b.activeLocalPort),b.lastRestartAt=Date.now(),console.log("[Tailscale] funnel re-established (daemon alive)")}catch(a){console.log("[Tailscale] funnel recovery failed:",a.message)}return}let c=y.test(a);if(!c&&Date.now()-b.lastRestartAt<k.Lh)return void console.log(`[Tailscale] degraded but cooldown active, skip (${a})`);if(await (0,k.u7)()){console.log(`[Tailscale] safeRestart (${a}) — daemon not running${c?" [force]":""}`);try{await (0,k.mh)(),b.lastRestartAt=Date.now(),console.log("[Tailscale] restart success")}catch(a){console.log("[Tailscale] restart failed:",a.message)}}}function w(){let a=f().networkInterfaces(),b=[];for(let[c,d]of Object.entries(a))if(d&&!k.Lx.test(c))for(let a of d)a.internal||"IPv4"!==a.family||b.push(`${c}:${a.address}`);return b.sort().join("|")}let z=s;d()}catch(a){d(a)}})},99258:(a,b,c)=>{"use strict";c.d(b,{FE:()=>m,Tl:()=>i,kk:()=>j,oQ:()=>k,wn:()=>n});var d=c(51126);let e={},f=d.Xn,g=[];async function h(a){if("en"===a){e={};return}try{let b=await fetch(`/i18n/literals/${a}.json`);e=await b.json()}catch(a){console.error("Failed to load translations:",a),e={}}}function i(a){if(!a||"string"!=typeof a)return a;let b=a.trim();return b&&"en"!==f&&e[b]||a}function j(){return f}function k(a){return g.push(a),()=>{g=g.filter(b=>b!==a)}}function l(a){if(!a.nodeValue||!a.nodeValue.trim())return;let b=a.parentElement;if(!b)return;let c=b;for(;c;){if(c.hasAttribute&&c.hasAttribute("data-i18n-skip"))return;c=c.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(b.tagName?.toLowerCase()))return;a._originalText||(a._originalText=a.nodeValue);let d=i(a._originalText);d!==a.nodeValue&&(a.nodeValue=d)}async function m(){}async function n(){f=function(){if("u"<typeof document)return d.Xn;let a=document.cookie.split(";").find(a=>a.trim().startsWith(`${d.CL}=`)),b=a?decodeURIComponent(a.split("=")[1]):d.Xn;return(0,d.QC)(b)}(),await h(f),g.forEach(a=>a()),function(a){let b;if(!a)return;let c=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1),d=[];for(;b=c.nextNode();)d.push(b);d.forEach(l)}(document.body)}}};
|