@rsalmn/extremerouter 0.8.2 → 0.8.3
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/README.md +89 -89
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +9 -9
- package/app/.next-cli-build/build-manifest.json +4 -4
- package/app/.next-cli-build/prerender-manifest.json +3 -3
- package/app/.next-cli-build/react-loadable-manifest.json +1 -13
- package/app/.next-cli-build/required-server-files.json +23 -23
- 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 +3 -3
- 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/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 +3 -3
- 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 +3 -3
- 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/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 +7 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +7 -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 +3 -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/alerts/test/route_client-reference-manifest.js +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/login/route_client-reference-manifest.js +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/logout/route_client-reference-manifest.js +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/callback/route_client-reference-manifest.js +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/start/route_client-reference-manifest.js +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/oidc/test/route_client-reference-manifest.js +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/reset-password/route_client-reference-manifest.js +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/auth/status/route_client-reference-manifest.js +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/breaker/route_client-reference-manifest.js +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/cache/route_client-reference-manifest.js +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/all-statuses/route_client-reference-manifest.js +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/alias/route_client-reference-manifest.js +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/antigravity-mitm/route_client-reference-manifest.js +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/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- 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/cline-settings/route_client-reference-manifest.js +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/codex-settings/route_client-reference-manifest.js +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/copilot-settings/route_client-reference-manifest.js +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-registry/route_client-reference-manifest.js +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-mcp-tools/route_client-reference-manifest.js +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/cowork-settings/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
- 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/deepseek-tui-settings/route_client-reference-manifest.js +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/droid-settings/route_client-reference-manifest.js +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/hermes-settings/route_client-reference-manifest.js +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/jcode-settings/route_client-reference-manifest.js +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/kilo-settings/route_client-reference-manifest.js +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/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- 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/cli-tools/opencode-settings/route_client-reference-manifest.js +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/[id]/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/combos/validate-roles/route_client-reference-manifest.js +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/dashboard/stream/route_client-reference-manifest.js +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/start/route_client-reference-manifest.js +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/status/route_client-reference-manifest.js +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/headroom/stop/route_client-reference-manifest.js +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/providers/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/health/stream/route_client-reference-manifest.js +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/init/route_client-reference-manifest.js +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/[id]/route_client-reference-manifest.js +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/keys/route_client-reference-manifest.js +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/locale/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
- 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]/message/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
- 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/mcp/[plugin]/sse/route_client-reference-manifest.js +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/deepgram/voices/route_client-reference-manifest.js +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/elevenlabs/voices/route_client-reference-manifest.js +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/inworld/voices/route_client-reference-manifest.js +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/minimax/voices/route_client-reference-manifest.js +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/media-providers/tts/voices/route_client-reference-manifest.js +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/alias/route_client-reference-manifest.js +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/availability/route_client-reference-manifest.js +1 -1
- 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/custom/route_client-reference-manifest.js +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/disabled/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/models/test/route_client-reference-manifest.js +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/1min/import/route_client-reference-manifest.js +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/[provider]/[action]/route_client-reference-manifest.js +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/bulk-import/route_client-reference-manifest.js +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/codex/import-token/route_client-reference-manifest.js +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/auto-import/route_client-reference-manifest.js +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/cursor/import/route_client-reference-manifest.js +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/gitlab/pat/route_client-reference-manifest.js +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/iflow/cookie/route_client-reference-manifest.js +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/api-key/route_client-reference-manifest.js +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/auto-import/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/import-cli-proxy/route_client-reference-manifest.js +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-authorize/route_client-reference-manifest.js +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/kiro/social-exchange/route_client-reference-manifest.js +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/qwen/import/route_client-reference-manifest.js +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/wp-studio/import/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +38 -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/auto-import/route_client-reference-manifest.js +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/oauth/zed/import/route_client-reference-manifest.js +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/pricing/route_client-reference-manifest.js +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/[id]/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/provider-nodes/validate/route_client-reference-manifest.js +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]/agnes-profile/route_client-reference-manifest.js +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]/freebuff-profile/route_client-reference-manifest.js +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]/health-timeline/route_client-reference-manifest.js +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]/inxora-profile/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- 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]/models/route_client-reference-manifest.js +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-api-profile/route_client-reference-manifest.js +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]/onemin-profile/route_client-reference-manifest.js +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]/qwencloud-profile/route_client-reference-manifest.js +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]/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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]/test-models/route_client-reference-manifest.js +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]/v0-profile/route_client-reference-manifest.js +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]/vault-pool/route_client-reference-manifest.js +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/[id]/zenmux-plans/route_client-reference-manifest.js +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/client/route_client-reference-manifest.js +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/kilo/free-models/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/suggested-models/route_client-reference-manifest.js +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/test-batch/route_client-reference-manifest.js +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/providers/validate/route_client-reference-manifest.js +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]/route_client-reference-manifest.js +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/[id]/test/route_client-reference-manifest.js +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/cloudflare-deploy/route_client-reference-manifest.js +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/deno-deploy/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/proxy-pools/vercel-deploy/route_client-reference-manifest.js +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/install/route_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route_client-reference-manifest.js +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/database/route_client-reference-manifest.js +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/proxy-test/route_client-reference-manifest.js +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/require-login/route_client-reference-manifest.js +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/settings/route_client-reference-manifest.js +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/shutdown/route_client-reference-manifest.js +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/active/route_client-reference-manifest.js +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/swarm/stream/route_client-reference-manifest.js +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/tags/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/console-logs/stream/route_client-reference-manifest.js +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/load/route_client-reference-manifest.js +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/save/route_client-reference-manifest.js +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/send/route_client-reference-manifest.js +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/translator/translate/route_client-reference-manifest.js +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/disable/route_client-reference-manifest.js +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/enable/route_client-reference-manifest.js +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/status/route_client-reference-manifest.js +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-check/route_client-reference-manifest.js +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-disable/route_client-reference-manifest.js +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-enable/route_client-reference-manifest.js +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/tunnel/tailscale-install/route_client-reference-manifest.js +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]/codex-reset-credits/route_client-reference-manifest.js +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/[connectionId]/route_client-reference-manifest.js +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/chart/route_client-reference-manifest.js +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/history/route_client-reference-manifest.js +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/leaderboard/route_client-reference-manifest.js +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/logs/route_client-reference-manifest.js +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/meta/route_client-reference-manifest.js +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/providers/route_client-reference-manifest.js +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-details/route_client-reference-manifest.js +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/request-logs/route_client-reference-manifest.js +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/retry-stats/route_client-reference-manifest.js +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/stats/route_client-reference-manifest.js +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/usage/stream/route_client-reference-manifest.js +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/api/chat/route_client-reference-manifest.js +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/speech/route_client-reference-manifest.js +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/transcriptions/route_client-reference-manifest.js +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/audio/voices/route_client-reference-manifest.js +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/chat/completions/route_client-reference-manifest.js +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/embeddings/route_client-reference-manifest.js +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/images/generations/route_client-reference-manifest.js +1 -1
- 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/count_tokens/route_client-reference-manifest.js +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/messages/route_client-reference-manifest.js +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/[kind]/route_client-reference-manifest.js +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/info/route_client-reference-manifest.js +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/models/route_client-reference-manifest.js +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/compact/route_client-reference-manifest.js +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/responses/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/search/route_client-reference-manifest.js +1 -1
- 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/v1/web/fetch/route_client-reference-manifest.js +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/[...path]/route_client-reference-manifest.js +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/v1beta/models/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/shutdown/route_client-reference-manifest.js +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/api/version/update/route_client-reference-manifest.js +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 +8 -7
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +8 -7
- 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 +3 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
- 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 +8 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +8 -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 +3 -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 +7 -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 +7 -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 +3 -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 +8 -7
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +8 -7
- 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 +3 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
- 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 +8 -7
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +8 -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 +3 -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/manifest.webmanifest/route_client-reference-manifest.js +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 +9 -9
- package/app/.next-cli-build/server/chunks/1212.js +1 -0
- package/app/.next-cli-build/server/chunks/1241.js +1 -1
- package/app/.next-cli-build/server/chunks/1350.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/2231.js +1 -1
- package/app/.next-cli-build/server/chunks/319.js +3 -3
- package/app/.next-cli-build/server/chunks/{2926.js → 3437.js} +9 -9
- package/app/.next-cli-build/server/chunks/3735.js +1 -1
- package/app/.next-cli-build/server/chunks/4046.js +1 -0
- package/app/.next-cli-build/server/chunks/5330.js +66 -66
- 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/5852.js +1 -1
- package/app/.next-cli-build/server/chunks/5961.js +1 -1
- package/app/.next-cli-build/server/chunks/6070.js +1 -1
- package/app/.next-cli-build/server/chunks/{7152.js → 6482.js} +2 -2
- package/app/.next-cli-build/server/chunks/6686.js +1 -1
- package/app/.next-cli-build/server/chunks/6777.js +1 -1
- package/app/.next-cli-build/server/chunks/7187.js +1 -1
- package/app/.next-cli-build/server/chunks/7218.js +1 -0
- package/app/.next-cli-build/server/chunks/7410.js +1 -0
- package/app/.next-cli-build/server/chunks/7566.js +3 -0
- package/app/.next-cli-build/server/chunks/7774.js +18 -18
- package/app/.next-cli-build/server/chunks/7872.js +1 -1
- package/app/.next-cli-build/server/chunks/7965.js +1 -1
- package/app/.next-cli-build/server/chunks/8238.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 -0
- package/app/.next-cli-build/server/chunks/8895.js +6 -6
- package/app/.next-cli-build/server/chunks/{4502.js → 8955.js} +2 -2
- package/app/.next-cli-build/server/chunks/9422.js +1 -1
- package/app/.next-cli-build/server/chunks/9609.js +1 -1
- package/app/.next-cli-build/server/chunks/9703.js +1 -1
- 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-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +5 -5
- package/app/.next-cli-build/server/next-font-manifest.js +1 -1
- package/app/.next-cli-build/server/next-font-manifest.json +1 -1
- 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-aa0d45362a7ebc08.js → 1321-5792bb21361dcd65.js} +1 -1
- package/app/.next-cli-build/static/chunks/705-cfe5cd65ea2dc6f1.js +1 -0
- package/app/.next-cli-build/static/chunks/8105-37d0f6450b27ac6b.js +1 -0
- package/app/.next-cli-build/static/chunks/{8720-bbafc2ad7d186ebd.js → 8982-6d1803817450bcd4.js} +2 -2
- package/app/.next-cli-build/static/chunks/981-777b2911f938c030.js +3 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/alerts/{page-920869c698a8b3cf.js → page-c263cd784e69e6f1.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-75247ad22e97f7cc.js → page-ecd3a85a40e51c66.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-3c3074cf3f61df46.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-8b043b8296199edb.js → page-f7cdc992cb310077.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-648e105b4f37fef0.js +3 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-959b3ee3c662de33.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-5689c88f2746c37a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/health/{page-ec1dc4e44702257d.js → page-133cf1aa2ce53c87.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-b635b8b051acb5a5.js → page-3828106aa4f490c1.js} +2 -2
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-d9958dfec1d2e28e.js → page-e086fed7677d4852.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-a36b3b632d16f4cb.js → page-f36e5ac11783fd1e.js} +2 -2
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-e794909abbc7a09a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-1d972fd3baee7474.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/overview/page-2dae733c8e1582bf.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-7325c65533e4cf60.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/{page-dc8e49b1fe778d9c.js → page-e7ba910803086460.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-0f877a8a2550a1ea.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-2e82495d63f499e9.js → page-201ce34cf7a0a9ed.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-8965749fb7d0fac3.js → page-bcf9d97ab4dc20d9.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-5b11b61863963cad.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-843c810c0818ce1b.js → page-58d8d0fa5523ff95.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-9a44fa1600f3ff42.js → page-0be4cac4f06ef3e2.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-97c920b552343488.js → page-a8b151d5ae9004ea.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/swarm/page-594a59006196a03a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-d57c129c03c9cb36.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-a8af04fbd6293d2f.js → page-61d162d7a7f88a11.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-bd421513fd2dc28a.js → page-483f01fd35d212f5.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-9144cc5f6a208199.js → layout-d62e22634bbd6c94.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/_not-found/{page-732ac0fa56005849.js → page-0161671512f52984.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/callback/{page-4e8ab9d9128acffb.js → page-20e990994d8da6d3.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/{page-d4eb2ba84eef2143.js → page-bb9f307074c5c23a.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/landing/{page-ade86a48ca5749f4.js → page-468c5cb1d127c02a.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/layout-10bff7b57a2a3c2c.js +1 -0
- package/app/.next-cli-build/static/chunks/app/login/page-32ab5d7c75651107.js +1 -0
- package/app/.next-cli-build/static/chunks/main-ab3c4d38db15f747.js +5 -0
- package/app/.next-cli-build/static/chunks/main-app-f661afc91c813cfe.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/global-error-8fecb2690f5e9ae2.js +1 -0
- package/app/.next-cli-build/static/chunks/webpack-c2bac8d80aa27536.js +1 -0
- package/app/.next-cli-build/static/css/27a3eadf22014a5b.css +1 -0
- package/app/custom-server.js +9 -0
- package/app/package.json +5 -4
- package/app/public/i18n/literals/ar.json +195 -195
- package/app/public/i18n/literals/bn.json +195 -195
- package/app/public/i18n/literals/cs.json +195 -195
- package/app/public/i18n/literals/da.json +195 -195
- package/app/public/i18n/literals/de.json +195 -195
- package/app/public/i18n/literals/el.json +195 -195
- package/app/public/i18n/literals/es.json +195 -195
- package/app/public/i18n/literals/fi.json +195 -195
- package/app/public/i18n/literals/fr.json +195 -195
- package/app/public/i18n/literals/he.json +195 -195
- package/app/public/i18n/literals/hi.json +195 -195
- package/app/public/i18n/literals/hu.json +195 -195
- package/app/public/i18n/literals/id.json +195 -195
- package/app/public/i18n/literals/it.json +195 -195
- package/app/public/i18n/literals/ja.json +195 -195
- package/app/public/i18n/literals/ko.json +195 -195
- package/app/public/i18n/literals/nl.json +195 -195
- package/app/public/i18n/literals/no.json +195 -195
- package/app/public/i18n/literals/pl.json +195 -195
- package/app/public/i18n/literals/pt-BR.json +195 -195
- package/app/public/i18n/literals/pt-PT.json +195 -195
- package/app/public/i18n/literals/ro.json +195 -195
- package/app/public/i18n/literals/ru.json +195 -195
- package/app/public/i18n/literals/sv.json +195 -195
- package/app/public/i18n/literals/th.json +195 -195
- package/app/public/i18n/literals/tl.json +195 -195
- package/app/public/i18n/literals/tr.json +195 -195
- package/app/public/i18n/literals/uk.json +195 -195
- package/app/public/i18n/literals/ur.json +195 -195
- package/app/public/i18n/literals/vi.json +195 -195
- package/app/public/i18n/literals/zh-CN.json +773 -773
- package/app/public/i18n/literals/zh-TW.json +195 -195
- package/app/public/providers/agnes-api.svg +6 -6
- package/app/public/providers/agnes-web.svg +6 -6
- package/app/public/providers/alibaba-cn.svg +11 -11
- package/app/public/providers/alibaba.svg +11 -11
- package/app/public/providers/bynara.svg +22 -22
- package/app/public/providers/devin.svg +5 -5
- package/app/public/providers/featherless.svg +8 -8
- package/app/public/providers/forge.svg +9 -9
- package/app/public/providers/freebuff-web.svg +6 -6
- package/app/public/providers/hcnsec.svg +10 -10
- package/app/public/providers/inxorastudio-web.svg +4 -4
- package/app/public/providers/inxorastudio.svg +4 -4
- package/app/public/providers/moonshot.svg +8 -8
- package/app/public/providers/openvecta.svg +7 -7
- package/app/public/providers/perplexity-agent.svg +13 -13
- package/app/public/providers/qwen-cloud.svg +1 -1
- package/app/public/providers/qwencloud.svg +6 -6
- package/app/public/providers/stepfun.svg +53 -53
- package/app/public/providers/tokenrouter.svg +15 -15
- package/app/public/providers/wp-studio.svg +11 -11
- package/app/public/providers/zed.svg +11 -11
- package/app/public/providers/zenmux-free.svg +9 -9
- package/app/server.js +1 -1
- package/app/src/lib/db/adapters/sqljsAdapter.js +115 -115
- package/app/src/lib/db/migrate.js +286 -286
- package/app/src/lib/network/pickProxyPoolId.js +38 -38
- package/app/src/lib/updater/updater.js +235 -235
- package/app/src/mitm/server.js +2 -2
- package/cli.js +830 -830
- package/package.json +66 -66
- package/src/cli/api/client.js +556 -556
- package/src/cli/menus/cliTools.js +618 -618
- package/src/cli/terminalUI.js +121 -121
- package/src/cli/tray/autostart.js +306 -306
- package/src/cli/tray/tray.js +322 -322
- package/src/cli/tray/tray.ps1 +130 -130
- package/app/.next-cli-build/server/chunks/1051.js +0 -1
- package/app/.next-cli-build/server/chunks/1216.js +0 -3
- package/app/.next-cli-build/server/chunks/541.js +0 -1
- package/app/.next-cli-build/server/chunks/6316.js +0 -2
- package/app/.next-cli-build/server/chunks/9140.js +0 -1
- package/app/.next-cli-build/server/chunks/9630.js +0 -1
- package/app/.next-cli-build/static/chunks/1696-bafe4b44a7a0439e.js +0 -3
- package/app/.next-cli-build/static/chunks/1966.b8f83f7ba376c962.js +0 -1
- package/app/.next-cli-build/static/chunks/3899.3f761f7e3a944e8c.js +0 -1
- package/app/.next-cli-build/static/chunks/705-b7d7b61f41806f0d.js +0 -1
- package/app/.next-cli-build/static/chunks/8105-204edc780a329497.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-cd77e53dbcd46b6c.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-dbf52954681b093c.js +0 -3
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-a8c4d8c681e19868.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-408845bd809806a6.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-92a0799a23d869b3.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-a67cd1c5f77da355.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/overview/page-262fa6911888d4f1.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-f644da989b8878c3.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-aa26b25a26b5dac8.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-96d3eb0dfde0711b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/swarm/page-9739651f4f19cec6.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-2f3b8761d7b32ec0.js +0 -1
- package/app/.next-cli-build/static/chunks/app/layout-16b611f4f5717ccd.js +0 -1
- package/app/.next-cli-build/static/chunks/app/login/page-0831b035aa4c0f17.js +0 -1
- package/app/.next-cli-build/static/chunks/main-28015457a328b97c.js +0 -5
- package/app/.next-cli-build/static/chunks/main-app-705d8c306f358a5f.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/global-error-22e44aa316880902.js +0 -1
- package/app/.next-cli-build/static/chunks/webpack-a990cabb6976f421.js +0 -1
- package/app/.next-cli-build/static/css/68d66160ca549ddc.css +0 -1
- package/app/cli/.build-home/AppData/Local/npm-cache/_update-notifier-last-checked +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/.migrated-from +0 -1
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/schema-3-to-4-0.8.0-20260802-152036/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.7.8-to-0.7.9-0.7.9-20260729-181011/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.7.9-to-0.8.0-0.8.0-20260729-213634/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/backups/upgrade-0.8.0-to-0.8.1-0.8.1-20260802-152517/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/db/data.sqlite-wal +0 -0
- package/app/cli/.build-home/AppData/Roaming/extremerouter/jwt-secret +0 -1
- package/app/cli/.build-home/AppData/Roaming/extremerouter/machine-id +0 -1
- package/app/cli/.build-home/AppData/Roaming/nextjs-nodejs/Config/config.json +0 -7
- /package/app/.next-cli-build/static/{S-pbWChrUiCkwFyfx4Su3 → j7bBgtavtSkTBPfbmetr9}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{S-pbWChrUiCkwFyfx4Su3 → j7bBgtavtSkTBPfbmetr9}/_ssgManifest.js +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
exports.id=6316,exports.ids=[6316,9573],exports.modules={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)},5740:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},7803:(a,b,c)=>{"use strict";c.r(b),c.d(b,{debug:()=>h,error:()=>k,info:()=>i,maskKey:()=>o,request:()=>l,response:()=>m,stream:()=>n,warn:()=>j});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function g(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function h(a,b,c){if(e<=d.DEBUG){let d=c?` ${g(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function i(a,b,c){if(e<=d.INFO){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function j(a,b,c){e<=d.WARN&&c&&g(c)}function k(a,b,c){if(e<=d.ERROR){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function l(a,b,c){let d=c?` ${g(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function m(a,b,c){let d=c?` ${g(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function n(a,b){let c=b?` ${g(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function o(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},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.2"},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="dark"===b().theme?"light":"dark";a({theme:c})},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})}},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}},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"}]},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)})},47869:(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))},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(11651),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}},51390:(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))},61135:()=>{},64783:(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",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.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",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.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:"openai"}},z={id:"inxorastudio",priority:340,alias:"inxora",aliases:["ix"],uiAlias:"ix",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:"x-api-key",scheme:"raw"}}],models:[],passthroughModels:!0,modelsFetcher:{url:"https://router.bynara.id/v1/models",type:"openai"},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:"chatglm-cn",priority:60,alias:"chatglm-cn",uiAlias:"chatglm-cn",display:{name:"ChatGLM (Web)",icon:"chat",color:"#3B5FE5",textIcon:"GL",website:"https://chatglm.cn",notice:{signupUrl:"https://chatglm.cn",apiKeyUrl:"https://chatglm.cn/main/",text:"ChatGLM (智谱清言) free web chat. Open chatglm.cn, log in, then copy your cookies (DevTools → Application → Cookies). Paste the full cookie string here — the refresh token is what we actually use (valid ~6 months). Guest accounts work but have tighter rate limits. Responses are streamed from the web backend and translated to OpenAI format."}},category:"webCookie",authType:"cookie",authHint:"Paste your chatglm.cn cookies (full cookie string or just the chatglm_refresh_token value, e.g. eyJhbGc...).",transport:{baseUrl:"https://chatglm.cn/chatglm",format:"chatglm-cn",authType:"cookie"},models:[{id:"glm-5.2",name:"GLM-5.2",upstreamModelId:"glm-5.2"},{id:"glm-5.1",name:"GLM-5.1",upstreamModelId:"glm-5.1"},{id:"glm-5",name:"GLM-5",upstreamModelId:"glm-5"},{id:"glm-5-turbo",name:"GLM-5 Turbo",upstreamModelId:"glm-5-turbo"},{id:"glm-4.7",name:"GLM-4.7",upstreamModelId:"glm-4.7"},{id:"glm-4.7-flash",name:"GLM-4.7 Flash",upstreamModelId:"glm-4.7-flash"},{id:"glm-4.6",name:"GLM-4.6",upstreamModelId:"glm-4.6"},{id:"glm-4.6v-flash",name:"GLM-4.6V Flash",upstreamModelId:"glm-4.6v-flash"},{id:"glm-4.5",name:"GLM-4.5",upstreamModelId:"glm-4.5"},{id:"glm-4",name:"GLM-4",upstreamModelId:"glm-4"},{id:"glm-4-flash",name:"GLM-4 Flash",upstreamModelId:"glm-4-flash"},{id:"glm-4-air",name:"GLM-4 Air",upstreamModelId:"glm-4-air"},{id:"glm-deep-research",name:"GLM Deep Research",upstreamModelId:"glm-deep-research"}],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",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:"anthropic/claude-opus-4-7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4-6",name:"Claude Opus 4.6"},{id:"anthropic/claude-3-7-sonnet",name:"Claude 3.7 Sonnet"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-4o",name:"GPT-4o"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"minimax/minimax-m2.5",name:"MiniMax M2.5 (Free)"},{id:"kwaipilot/kat-coder-pro",name:"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:"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://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.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"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},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.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:"mmf",hidden:!0,priority:200,display:{name:"MMF",icon:"hub",color:"#6366F1",textIcon:"MF"},category:"apikey",transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"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}},{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"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",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}},{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:["venice","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"},{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",aliases:["freebuff","freebuff-web"],uiAlias:"fb",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:"openai"},thinkingConfig:{options:["auto","none","max"],defaultMode:"auto"},passthroughModels:!0},{id:"tokenrouter",priority:320,alias:"tokenrouter",aliases:["tr"],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",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:"openai"}},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",transport:{baseUrl:"https://cloud.zed.dev",chatPath:"/completions",format:"zed",headers:{"Content-Type":"application/json","x-zed-client-supports-status-messages":"true","x-zed-client-supports-x-ai":"true"}},models:[{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5"},{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:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5-mini",name:"GPT-5 mini"},{id:"gpt-5-nano",name:"GPT-5 nano"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"gemini-3-flash",name:"Gemini 3 Flash"}],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"}]},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}},69292:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},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"}]},75485:(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))},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(64783);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]||[]}},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.")},"C:\\Users\\Administrator\\Desktop\\Projects\\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.")},"C:\\Users\\Administrator\\Desktop\\Projects\\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),Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.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"}}},91558:(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))},92592:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>v,DI:()=>r,fg:()=>n,MA:()=>w,IS:()=>j,nJ:()=>k,rj:()=>p,zN:()=>m,JH:()=>q,s9:()=>l,wb:()=>B,br:()=>o,wG:()=>z,zt:()=>x,o5:()=>A,gb:()=>t,gC:()=>u,mq:()=>s,rs:()=>y});var d=c(64783);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}:{},...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-")}let v={...j,...k,...m,...n,...o},w={oauth:{id:"oauth"},apikey:{id:"apikey"},cookie:{id:"cookie"}};function x(a){for(let b of Object.values(v))if(b.alias===a||b.id===a)return b;return null}function y(a){let b=x(a);return b?.id||a}function z(a){let b=v[a];return b?.alias||a}function A(a){return Object.values(v).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(v).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(v).reduce((a,b)=>(a[b.id]=b.alias,a),{});let B=d.A.filter(a=>a.features?.usage).map(a=>a.id);d.A.filter(a=>a.features?.usageApikey).map(a=>a.id)},94123:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A:()=>y});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=a([m]);if(m=(q.then?(await q)():q)[0],!process.env.MITM_SERVER_PATH)try{let a=(0,g.fileURLToPath)("file:///C:/Users/Administrator/Desktop/Projects/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 w=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 r(){try{await (0,j.bI)();let a=await (0,j.mt)();if(a.tunnelEnabled&&!w.tunnelAutoResumed&&(w.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),a.tailscaleEnabled&&!w.tailscaleAutoResumed&&(w.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),u("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),!w.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{}}),w.signalHandlersRegistered=!0}(0,k.Al)().catch(()=>{}),(0,o.v)().catch(()=>{}),(0,k.X$)(()=>{t("unexpected-exit").catch(()=>{})}),!w.watchdogInterval&&(w.watchdogInterval=setInterval(()=>{t("watchdog").catch(()=>{}),u("watchdog").catch(()=>{})},k.DA),w.watchdogInterval.unref&&w.watchdogInterval.unref()),!w.networkMonitorInterval&&(w.lastNetworkFingerprint=v(),w.lastWatchdogTick=Date.now(),w.lastOnline=null,w.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-w.lastWatchdogTick;w.lastWatchdogTick=a;let c=v(),d=c!==w.lastNetworkFingerprint,e=b>6*k.rI;d&&(w.lastNetworkFingerprint=c);let f=await (0,k.u7)(),g=!1===w.lastOnline;if(w.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";t(h).catch(()=>{}),u(h).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},k.rI),w.networkMonitorInterval.unref&&w.networkMonitorInterval.unref()),s(),(0,m.O)(),(0,n.initAlertService)(),function(){if(w.kimchiReactivationStarted)return;w.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()}()}catch(a){console.error("[InitApp] Error:",a)}}async function s(){if(!w.mitmStartInProgress){w.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{w.mitmStartInProgress=!1}}}let x=/^(startup|netchange|sleep|sleep\+netchange|online|unexpected-exit)$/;async function t(a){let b=(0,k.Qn)();if(!(await (0,j.mt)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress)return;let c=x.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 u(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=x.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 v(){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 y=r;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)}}};
|