@techysy/10router 1.6.0 → 1.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +11 -11
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +21 -21
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/experimental/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/experimental/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +4 -4
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/page.js +1 -1
- 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/profile/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- 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 +1 -1
- 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/token-saver/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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.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/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- 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 +2 -2
- package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +2 -2
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/verify-password/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/verify-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +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/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- 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/grok-build-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/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/external-quota/[source]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/external-quota/[source]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/gateway-probe/route.js +1 -1
- package/app/.next-cli-build/server/app/api/gateway-probe/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +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/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/rotate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/rotate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/caps/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/caps/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js.nft.json +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/disabled/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/network/egress-region/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/claim-compensation/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/qoder-cn/checkin/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-kill/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/desktop-status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/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]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/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/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- 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/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +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/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/security/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/security/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/dashboard/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/dashboard/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/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/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/quotas/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/quotas/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
- 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/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/rerank/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/rerank/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +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/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +2 -2
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shell-update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- 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 +2 -2
- package/app/.next-cli-build/server/app/callback.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/experimental.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/experimental.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/experimental.segments/!KGRhc2hib2FyZCk/dashboard/experimental/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/experimental.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/experimental.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- 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 +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/skills.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +2 -2
- package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- 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 +2 -2
- package/app/.next-cli-build/server/app/landing.rsc +7 -7
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- 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 +2 -2
- package/app/.next-cli-build/server/app/login.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +1 -1
- 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 +11 -11
- package/app/.next-cli-build/server/chunks/1329.js +1 -1
- package/app/.next-cli-build/server/chunks/1351.js +1 -0
- package/app/.next-cli-build/server/chunks/1622.js +1 -0
- package/app/.next-cli-build/server/chunks/1806.js +1 -1
- package/app/.next-cli-build/server/chunks/1819.js +1 -1
- package/app/.next-cli-build/server/chunks/1884.js +1 -1
- package/app/.next-cli-build/server/chunks/2132.js +1 -1
- package/app/.next-cli-build/server/chunks/2380.js +21 -0
- package/app/.next-cli-build/server/chunks/2557.js +1 -1
- package/app/.next-cli-build/server/chunks/318.js +7 -8
- package/app/.next-cli-build/server/chunks/{5625.js → 3389.js} +1 -1
- package/app/.next-cli-build/server/chunks/3500.js +2 -2
- package/app/.next-cli-build/server/chunks/3662.js +1 -1
- package/app/.next-cli-build/server/chunks/3792.js +1 -1
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/3962.js +1 -1
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4575.js +1 -1
- package/app/.next-cli-build/server/chunks/4692.js +1 -1
- package/app/.next-cli-build/server/chunks/4775.js +1 -1
- package/app/.next-cli-build/server/chunks/4906.js +1 -1
- package/app/.next-cli-build/server/chunks/4927.js +3 -3
- package/app/.next-cli-build/server/chunks/5210.js +27 -28
- package/app/.next-cli-build/server/chunks/539.js +1 -1
- package/app/.next-cli-build/server/chunks/5527.js +1 -1
- package/app/.next-cli-build/server/chunks/5598.js +1 -1
- package/app/.next-cli-build/server/chunks/5615.js +1 -1
- package/app/.next-cli-build/server/chunks/5663.js +1 -1
- package/app/.next-cli-build/server/chunks/5757.js +1 -1
- package/app/.next-cli-build/server/chunks/5781.js +2 -2
- package/app/.next-cli-build/server/chunks/5837.js +1 -0
- package/app/.next-cli-build/server/chunks/6070.js +1 -1
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6212.js +1 -0
- package/app/.next-cli-build/server/chunks/6306.js +1 -1
- package/app/.next-cli-build/server/chunks/6326.js +1 -1
- package/app/.next-cli-build/server/chunks/6763.js +1 -1
- package/app/.next-cli-build/server/chunks/6790.js +1 -1
- package/app/.next-cli-build/server/chunks/6956.js +1 -1
- package/app/.next-cli-build/server/chunks/6960.js +1 -1
- package/app/.next-cli-build/server/chunks/7067.js +1 -1
- package/app/.next-cli-build/server/chunks/7122.js +1 -1
- package/app/.next-cli-build/server/chunks/7209.js +1 -0
- package/app/.next-cli-build/server/chunks/7247.js +1 -1
- package/app/.next-cli-build/server/chunks/7274.js +1 -1
- package/app/.next-cli-build/server/chunks/7729.js +1 -1
- package/app/.next-cli-build/server/chunks/8145.js +1 -1
- package/app/.next-cli-build/server/chunks/8172.js +2 -2
- package/app/.next-cli-build/server/chunks/8318.js +1 -1
- package/app/.next-cli-build/server/chunks/8439.js +1 -1
- package/app/.next-cli-build/server/chunks/8595.js +1 -1
- package/app/.next-cli-build/server/chunks/8775.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +6 -6
- package/app/.next-cli-build/server/chunks/8920.js +1 -1
- package/app/.next-cli-build/server/chunks/8936.js +1 -0
- package/app/.next-cli-build/server/chunks/9154.js +1 -1
- package/app/.next-cli-build/server/chunks/9489.js +3 -3
- package/app/.next-cli-build/server/chunks/9536.js +1 -0
- package/app/.next-cli-build/server/chunks/9609.js +1 -1
- package/app/.next-cli-build/server/chunks/9628.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +5 -5
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +2 -2
- 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-3d22643da5d0f152.js +1 -0
- package/app/.next-cli-build/static/chunks/5497-ce4781ece1a27ac0.js +7 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a2f5c1fa12df475b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-6db03f8140121a40.js → page-6393f6dfae0de3e6.js} +13 -13
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9c29e4e5c17e55ea.js +14 -0
- package/app/.next-cli-build/static/chunks/app/landing/page-626d89125b768dcf.js +1 -0
- package/app/.next-cli-build/static/css/5922b1ff9e56869d.css +1 -0
- package/app/package.json +1 -1
- package/app/public/i18n/changelog/en.md +548 -513
- package/app/public/i18n/changelog/zh-CN.md +546 -511
- package/app/public/i18n/changelog/zh-TW.md +548 -513
- package/app/public/i18n/literals/zh-CN.json +2129 -2107
- package/app/public/i18n/literals/zh-TW.json +1 -0
- package/app/public/providers/oxion.png +0 -0
- package/app/public/providers/uc-web.png +0 -0
- package/app/public/providers/veoaifree-web.png +0 -0
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/2154.js +0 -1
- package/app/.next-cli-build/server/chunks/3267.js +0 -1
- package/app/.next-cli-build/server/chunks/4386.js +0 -1
- package/app/.next-cli-build/server/chunks/6756.js +0 -1
- package/app/.next-cli-build/server/chunks/75.js +0 -1
- package/app/.next-cli-build/server/chunks/8499.js +0 -21
- package/app/.next-cli-build/static/chunks/1321-77ba328dd4d69fdb.js +0 -1
- package/app/.next-cli-build/static/chunks/5497-ec8a6308121a2b70.js +0 -7
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-8f6aadfc8bf2eb7b.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-a6b07fa9d0712cee.js +0 -14
- package/app/.next-cli-build/static/chunks/app/landing/page-c6c3a32dd06bc907.js +0 -1
- package/app/.next-cli-build/static/css/17275fac82e1641e.css +0 -1
- /package/app/.next-cli-build/static/{1q0xTGDYtD52dGw4uiY4- → KyW2U59Ruq5vPQZjvyylc}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{1q0xTGDYtD52dGw4uiY4- → KyW2U59Ruq5vPQZjvyylc}/_ssgManifest.js +0 -0
|
@@ -125,19 +125,19 @@ Ways to fix this:
|
|
|
125
125
|
|
|
126
126
|
Learn more: https://nextjs.org/docs/messages/blocking-prerender-metadata-runtime`),"__NEXT_ERROR_CODE",{value:"E1426",enumerable:!1,configurable:!0})}function s(a){console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
|
127
127
|
- Start the app in development mode by running \`next dev\`, then open "${a}" in your browser to investigate the error.
|
|
128
|
-
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}},38955:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(90810)},40694:(a,b,c)=>{"use strict";a.exports=c(33873)},41534:(a,b,c)=>{"use strict";c.d(b,{cI:()=>g,pH:()=>f,Ps:()=>e});function d(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}d("DIRECT_FALLBACK_TIMEOUT_MS",6e4);let e=process.env.SEARXNG_URL?.trim()||"http://localhost:8888/search";d("STREAM_STALL_TIMEOUT_MS",12e4),d("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5);let f=d("FETCH_CONNECT_TIMEOUT_MS",6e4);d("PENDING_COMPLETION_FLUSH_MS",3e3),d("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3);let g={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}}},42097:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={isNodeNextRequest:function(){return g},isNodeNextResponse:function(){return h},isWebNextRequest:function(){return e},isWebNextResponse:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=a=>!1,f=a=>!1,g=a=>!0,h=a=>!0},42501:(a,b)=>{"use strict";function c(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ImageResponse",{enumerable:!0,get:function(){return c}})},42776:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"InvariantError",{enumerable:!0,get:function(){return c}});class c extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},43892:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(k)}},44001:(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}function e(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}c.r(b),c.d(b,{_:()=>e})},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},49540:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={StaticGenBailoutError:function(){return f},isStaticGenBailoutError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="NEXT_STATIC_GEN_BAILOUT";class f extends Error{constructor(...a){super(...a),this.code=e}}function g(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},49731:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compileNonPath:function(){return m},matchHas:function(){return l},parseDestination:function(){return n},prepareDestination:function(){return o}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(73896),g=c(21804),h=c(11042),i=c(8007),j=c(20742);function k(a){return a.replace(/__ESC_COLON_/gi,":")}function l(a,b,c=[],d=[]){let e={},f=c=>{let d,f=c.key;switch(c.type){case"header":f=f.toLowerCase(),d=a.headers[f];break;case"cookie":d="cookies"in a?a.cookies[c.key]:(0,i.getCookieParser)(a.headers)()[c.key];break;case"query":d=b[f];break;case"host":{let{host:b}=a?.headers||{};d=b?.split(":",1)[0].toLowerCase()}}if(!c.value&&d)return e[function(a){let b="";for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);(d>64&&d<91||d>96&&d<123)&&(b+=a[c])}return b}(f)]=d,!0;if(d){let a=RegExp(`^${c.value}$`),b=Array.isArray(d)?d.slice(-1)[0].match(a):d.match(a);if(b)return Array.isArray(b)&&(b.groups?Object.keys(b.groups).forEach(a=>{e[a]=b.groups[a]}):"host"===c.type&&b[0]&&(e.host=b[0])),!0}return!1};return!(!c.every(a=>f(a))||d.some(a=>f(a)))&&e}function m(a,b){if(!a.includes(":"))return a;for(let c of Object.keys(b))a.includes(`:${c}`)&&(a=a.replace(RegExp(`:${c}\\*`,"g"),`:${c}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${c}\\?`,"g"),`:${c}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${c}\\+`,"g"),`:${c}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${c}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${c}`));return a=a.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),(0,j.safeCompile)(`/${a}`,{validate:!1})(b).slice(1)}function n(a){let b=a.destination;for(let c of Object.keys({...a.params,...a.query}))c&&(b=b.replace(RegExp(`:${(0,f.escapeStringRegexp)(c)}`,"g"),`__ESC_COLON_${c}`));let c=(0,g.parseUrl)(b),d=c.pathname;d&&(d=k(d));let e=c.href;e&&(e=k(e));let h=c.hostname;h&&(h=k(h));let i=c.hash;i&&(i=k(i));let j=c.search;j&&(j=k(j));let l=c.origin;return l&&(l=k(l)),{...c,pathname:d,hostname:h,href:e,hash:i,search:j,origin:l}}function o(a){let b,c,d=n(a),{hostname:e,query:f,search:g}=d,i=d.pathname;d.hash&&(i=`${i}${d.hash}`);let l=[],o=[];for(let a of((0,j.safePathToRegexp)(i,o),o))l.push(a.name);if(e){let a=[];for(let b of((0,j.safePathToRegexp)(e,a),a))l.push(b.name)}let p=(0,j.safeCompile)(i,{validate:!1});for(let[c,d]of(e&&(b=(0,j.safeCompile)(e,{validate:!1,encode:encodeURIComponent})),Object.entries(f)))Array.isArray(d)?f[c]=d.map(b=>m(k(b),a.params)):"string"==typeof d&&(f[c]=m(k(d),a.params));let q=Object.keys(a.params).filter(a=>"nextInternalLocale"!==a);if(a.appendParamsToQuery&&!q.some(a=>l.includes(a)))for(let b of q)b in f||(f[b]=a.params[b]);if((0,h.isInterceptionRouteAppPath)(i))for(let b of i.split("/")){let c=h.INTERCEPTION_ROUTE_MARKERS.find(a=>b.startsWith(a));if(c){"(..)(..)"===c?(a.params["0"]="(..)",a.params["1"]="(..)"):a.params["0"]=c;break}}try{let[e,f]=(c=p(a.params)).split("#",2);b&&(d.hostname=b(a.params)),d.pathname=e,d.hash=`${f?"#":""}${f||""}`,d.search=g?m(g,a.params):""}catch(a){if(a.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw a}return d.query={...a.query,...d.query},{newUrl:c,destQuery:f,parsedDestination:d}}},50158:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={METADATA_BOUNDARY_NAME:function(){return e},OUTLET_BOUNDARY_NAME:function(){return g},ROOT_LAYOUT_BOUNDARY_NAME:function(){return h},VIEWPORT_BOUNDARY_NAME:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="__next_metadata_boundary__",f="__next_viewport_boundary__",g="__next_outlet_boundary__",h="__next_root_layout_boundary__"},50809:(a,b,c)=>{"use strict";c.d(b,{jw:()=>k,tm:()=>l});var d=c(59339),e=c(33323);let f="disabledModels",g=null;async function h(){if(g)return g;let a=new Map,b=new Map;try{let d=await Promise.resolve().then(c.bind(c,60651));for(let c of d.default||d.REGISTRY||[]){let d=c.uiAlias||c.alias||c.id;if(!d)continue;let e=new Set([c.id,c.alias,c.uiAlias,...Array.isArray(c.aliases)?c.aliases:[]].filter(Boolean)),f=b.get(d)||new Set;for(let b of e)a.set(b,d),f.add(b);b.set(d,f)}}catch(a){console.log("Disabled-model key map unavailable:",a?.message||a)}return g={toCanonical:a,byCanonical:b}}async function i(a){let{toCanonical:b,byCanonical:c}=await h(),d=b.get(a)||a,e=c.get(d),f=new Set(e?[...e]:[]);return f.add(a),f.add(d),{canonical:d,keys:[...f]}}async function j(){let a=(await (0,d.cK)()).all("SELECT key, value FROM kv WHERE scope = ?",[f]),{toCanonical:b,byCanonical:c}=await h(),g=new Map;for(let c of a){let a=b.get(c.key)||c.key,d=g.get(a);d||(d={own:null,union:new Set},g.set(a,d));let f=(0,e.q)(c.value,[])||[];for(let b of(c.key===a&&(d.own=new Set(f)),f))d.union.add(b)}let i={};for(let[a,b]of g){let d=[...b.own||b.union];i[a]=d;let e=c.get(a);if(e)for(let a of e)i[a]=d}return i}async function k(a){return a&&(await j())[a]||[]}async function l(a,b){if(!a||!Array.isArray(b))return;let c=await (0,d.cK)(),{canonical:g,keys:h}=await i(a);c.transaction(()=>{let a=[...new Set([...function(a,b,c){let d=null,g=new Set;for(let h of b){let b=a.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[f,h]);if(!b)continue;let i=(0,e.q)(b.value,[])||[];for(let a of(h===c&&(d=i),i))g.add(a)}return null!==d?d:[...g]}(c,h,g),...b])];for(let b of(c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[f,g,(0,e.s)(a)]),h))b!==g&&c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[f,b])})}},51597:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getParamProperties:function(){return i},getSegmentParam:function(){return g},isCatchAll:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(11042);function g(a){let b=f.INTERCEPTION_ROUTE_MARKERS.find(b=>a.startsWith(b));return(b&&(a=a.slice(b.length)),a.startsWith("[[...")&&a.endsWith("]]"))?{paramType:"optional-catchall",paramName:a.slice(5,-2)}:a.startsWith("[...")&&a.endsWith("]")?{paramType:b?`catchall-intercepted-${b}`:"catchall",paramName:a.slice(4,-1)}:a.startsWith("[")&&a.endsWith("]")?{paramType:b?`dynamic-intercepted-${b}`:"dynamic",paramName:a.slice(1,-1)}:null}function h(a){return"catchall"===a||"catchall-intercepted-(..)(..)"===a||"catchall-intercepted-(.)"===a||"catchall-intercepted-(..)"===a||"catchall-intercepted-(...)"===a||"optional-catchall"===a}function i(a){let b=!1,c=!1;switch(a){case"catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":b=!0;break;case"optional-catchall":b=!0,c=!0}return{repeat:b,optional:c}}},52201:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return c}});let c="NEXT_MISSING_ROOT_TAGS";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},53180:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getPathMatch",{enumerable:!0,get:function(){return e}});let d=c(7039);function e(a,b){let c=[],e=(0,d.pathToRegexp)(a,c,{delimiter:"/",sensitive:"boolean"==typeof b?.sensitive&&b.sensitive,strict:b?.strict}),f=(0,d.regexpToFunction)(b?.regexModifier?new RegExp(b.regexModifier(e.source),e.flags):e,c);return(a,d)=>{if("string"!=typeof a)return!1;let e=f(a);if(!e)return!1;if(b?.removeUnnamedParams)for(let a of c)"number"==typeof a.name&&delete e.params[a.name];return{...d,...e.params}}}},53610:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DEFAULT_SEGMENT_KEY:function(){return k},NOT_FOUND_SEGMENT_KEY:function(){return l},PAGE_SEGMENT_KEY:function(){return j},addSearchParamsIfPageSegment:function(){return h},computeSelectedLayoutSegment:function(){return i},getSegmentValue:function(){return e},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,f=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return f;let h=e(g[0]);return!h||h.startsWith(j)?f:(f.push(h),a(g,c,!1,f))}},isGroupSegment:function(){return f},isParallelRouteSegment:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){return Array.isArray(a)?a[1]:a}function f(a){return"("===a[0]&&a.endsWith(")")}function g(a){return a.startsWith("@")&&"@children"!==a}function h(a,b){if(a.includes(j)){let a=JSON.stringify(b);return"{}"!==a?j+"?"+a:j}return a}function i(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===k?null:c}let j="__PAGE__",k="__DEFAULT__",l="/_not-found"},54795:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e,f={RENDER_STAGE_ADVANCE_ORDER:function(){return k},RenderStage:function(){return j},StagedRenderingController:function(){return o},SyncIOMode:function(){return n},getNextStage:function(){return l},isAdvanceableRenderStage:function(){return m}};for(var g in f)Object.defineProperty(b,g,{enumerable:!0,get:f[g]});let h=c(42776),i=c(29299);var j=((d={})[d.Before=1]="Before",d[d.ShellStatic=11]="ShellStatic",d[d.Static=13]="Static",d[d.ShellRuntime=21]="ShellRuntime",d[d.Runtime=23]="Runtime",d[d.Dynamic=30]="Dynamic",d[d.Abandoned=40]="Abandoned",d);let k=[11,13,21,23,30];function l(a){return k[k.indexOf(a)+1]}function m(a){return 1<a&&a<=30}var n=((e={})[e.Untracked=1]="Untracked",e[e.AllowedInRuntimeOrDynamic=2]="AllowedInRuntimeOrDynamic",e[e.AllowedInDynamic=3]="AllowedInDynamic",e);class o{constructor({abortSignal:a,abandonController:b,syncIO:c,finalStage:d}){this.currentStage=1,this.syncInterruptReason=null,this.triggers={11:q(),13:q(),21:q(),23:q(),30:q()},this.abortSignal=a,this.abandonController=b,this.syncIOMode=c,this.finalStage=d,a&&a.addEventListener("abort",()=>{let{reason:b}=a;for(let a of Object.values(this.triggers)){var c,d;c=a,d=b,"pending"===c.state&&(c.state="cancelled",c._listeners.length=0,c.promise.catch(p),c._rejectPromise(d))}},{once:!0}),b&&b.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(a,b){var c,d;c=this.triggers[a],d=b,"pending"===c.state?c._listeners.push(d):d()}shouldTrackSyncInterrupt(){if(1===this.syncIOMode)return!1;switch(this.currentStage){case 1:return!1;case 11:case 13:return!0;case 21:case 23:switch(this.syncIOMode){case 2:return!1;case 3:return!0}case 30:case 40:return!1;default:return this.currentStage,!1}}syncInterruptCurrentStageWithReason(a){let{currentStage:b}=this;if(1!==b&&30!==b&&40!==b){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=a,this.currentStage=40;return}this.syncInterruptReason=a,this.advanceStage(30)}}getSyncInterruptReason(){return this.syncInterruptReason}getStageEndTime(a){return this.triggers[l(a)].triggeredAt??1/0}abandonRender(){let{currentStage:a}=this;if(1===a)throw Object.defineProperty(new h.InvariantError("A render that hasn't started yet cannot be abandoned"),"__NEXT_ERROR_CODE",{value:"E1300",enumerable:!1,configurable:!0});if(30===a||40===a)return;let b=k.indexOf(a)+1,c=k.indexOf(30);for(let a=b;a<c;a++)this.resolveStage(k[a]);this.currentStage=40}advanceStage(a){if(null!==this.finalStage&&a>this.finalStage)throw Object.defineProperty(new h.InvariantError(`Attempted to advance to stage ${j[a]} but the render is limited to ${j[this.finalStage]}`),"__NEXT_ERROR_CODE",{value:"E1302",enumerable:!1,configurable:!0});let{currentStage:b}=this;if(30===b||40===b||a<=b)return;this.currentStage=a;let c=1===b?0:k.indexOf(b)+1,d=k.indexOf(a);for(let a=c;a<=d;a++)this.resolveStage(k[a])}resolveStage(a){var b=this.triggers[a];if("pending"===b.state){b.state="triggered",b.triggeredAt=performance.now()+performance.timeOrigin;try{let{_listeners:a}=b;for(let b=0;b<a.length;b++)a[b]();a.length=0}finally{b._resolvePromise()}}}getStagePromise(a){return this.triggers[a].promise}waitForStage(a){return this.getStagePromise(a)}delayUntilStage(a,b,c){let d=this.getStagePromise(a).then(()=>c);return this.abortSignal&&d.catch(p),d}}function p(){}function q(){let{promise:a,resolve:b,reject:c}=(0,i.createPromiseWithResolvers)();return{state:"pending",triggeredAt:null,promise:a,_listeners:[],_resolvePromise:b,_rejectPromise:c}}},55122:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getPreviouslyRevalidatedTags:function(){return w},getServerUtils:function(){return v},interpolateDynamicPath:function(){return t},normalizeCdnUrl:function(){return s},normalizeDynamicRouteParams:function(){return u}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(28516),g=c(53180),h=c(70580),i=c(62447),j=c(49731),k=c(19524),l=c(92539),m=c(96100),n=c(99751),o=c(4522),p=c(86948),q=c(28344);function r(a,b){for(let c in delete a.nextInternalLocale,a){let d=c!==m.NEXT_QUERY_PARAM_PREFIX&&c.startsWith(m.NEXT_QUERY_PARAM_PREFIX),e=c!==m.NEXT_INTERCEPTION_MARKER_PREFIX&&c.startsWith(m.NEXT_INTERCEPTION_MARKER_PREFIX);(d||e||b.includes(c))&&delete a[c]}}function s(a,b){let c=(0,p.parseReqUrl)(a.url);if(!c)return a.url;delete c.search,r(c.query,b),a.url=(0,q.formatUrl)(c)}function t(a,b,c){if(!c)return a;for(let d of Object.keys(c.groups)){let e,{optional:f,repeat:g}=c.groups[d],h=`[${g?"...":""}${d}]`;f&&(h=`[${h}]`);let i=b[d];((e=Array.isArray(i)?i.map(a=>a&&encodeURIComponent(a)).join("/"):i?encodeURIComponent(i):"")||f)&&(a=a.replaceAll(h,e))}return a}function u(a,b,c,d){let e=(a,b)=>{if(!a)return!1;let c=(0,l.normalizeRscURL)(a);for(let a=0;a<3;a++){if(c===b)return!0;let a=(0,o.decodeQueryPathParameter)(c);if(a===c)break;c=a}return!1},f={};for(let g of Object.keys(b.groups)){let h=a[g];"string"==typeof h?h=(0,l.normalizeRscURL)(h):Array.isArray(h)&&(h=h.map(l.normalizeRscURL));let i=c[g],j=b.groups[g].optional;if((Array.isArray(i)?i.some(a=>Array.isArray(h)?h.some(b=>e(b,a)):e(h,a)):Array.isArray(h)?h.some(a=>e(a,i)):e(h,i))||void 0===h&&!(j&&d))return{params:{},hasValidParams:!1};j&&(!h||Array.isArray(h)&&1===h.length&&("index"===h[0]||h[0]===`[[...${g}]]`)||"index"===h||h===`[[...${g}]]`)&&(h=void 0,delete a[g]),h&&"string"==typeof h&&b.groups[g].repeat&&(h=h.split("/")),h&&(f[g]=h)}return{params:f,hasValidParams:!0}}function v({page:a,i18n:b,basePath:c,rewrites:d,pageIsDynamic:e,trailingSlash:l,caseSensitive:m}){let p,q,w;return e&&(p=(0,h.getNamedRouteRegex)(a,{prefixRouteKeys:!1}),w=(q=(0,i.getRouteMatcher)(p))(a)),{handleRewrites:function(h,i){let n=structuredClone(i),o={},p=n.pathname,r=d=>{let i=(0,g.getPathMatch)(d.source+(l?"(/)?":""),{removeUnnamedParams:!0,strict:!0,sensitive:!!m});if(!n.pathname)return!1;let k=i(n.pathname);if((d.has||d.missing)&&k){let a=(0,j.matchHas)(h,n.query,d.has,d.missing);a?Object.assign(k,a):k=!1}if(k){let{parsedDestination:g,destQuery:h}=(0,j.prepareDestination)({appendParamsToQuery:!0,destination:d.destination,params:k,query:n.query});if(g.protocol)return!0;if(Object.assign(o,h,k),Object.assign(n.query,g.query),delete g.query,Object.assign(n,g),!(p=n.pathname))return!1;if(c&&(p=p.replace(RegExp(`^${c}`),"")||"/"),b){let a=(0,f.normalizeLocalePath)(p,b.locales);p=a.pathname,n.query.nextInternalLocale=a.detectedLocale||k.nextInternalLocale}if(p===a)return!0;if(e&&q){let a=q(p);if(a)return n.query={...n.query,...a},!0}}return!1};for(let a of d.beforeFiles||[])r(a);if(p!==a){let b,c=!1;for(let a of d.afterFiles||[])if(c=r(a))break;if(!c&&!((b=(0,k.removeTrailingSlash)(p||""))===(0,k.removeTrailingSlash)(a)||(null==q?void 0:q(b)))){for(let a of d.fallback||[])if(c=r(a))break}}return{rewriteParams:o,rewrittenParsedUrl:n}},defaultRouteRegex:p,dynamicRouteMatcher:q,defaultRouteMatches:w,normalizeQueryParams:function(a,b){for(let[c,d]of(delete a.nextInternalLocale,Object.entries(a))){let e=(0,n.normalizeNextQueryParam)(c);e&&(delete a[c],b.add(e),void 0!==d&&(a[e]=Array.isArray(d)?d.map(a=>(0,o.decodeQueryPathParameter)(a)):(0,o.decodeQueryPathParameter)(d)))}},getParamsFromRouteMatches:function(a){if(!p)return null;let{groups:b,routeKeys:c}=p,d=(0,i.getRouteMatcher)({re:{exec:a=>{let d=Object.fromEntries(new URLSearchParams(a));for(let[a,b]of Object.entries(d)){let c=(0,n.normalizeNextQueryParam)(a);c&&(d[c]=b,delete d[a])}let e={};for(let a of Object.keys(c)){let f=c[a];if(!f)continue;let g=b[f],h=d[a];if(!g.optional&&!h)return null;e[g.pos]=h}return e}},groups:b})(a);return d||null},normalizeDynamicRouteParams:(a,b)=>p&&w?u(a,p,w,b):{params:{},hasValidParams:!1},normalizeCdnUrl:(a,b)=>s(a,b),interpolateDynamicPath:(a,b)=>t(a,b,p),filterInternalQuery:(a,b)=>r(a,b)}}function w(a,b){return"string"==typeof a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER]&&a[m.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER]===b?a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(","):[]}},55511:a=>{"use strict";a.exports=require("crypto")},56840:(a,b,c)=>{"use strict";c.r(b),c.d(b,{cleanupProviderConnections:()=>t,createProviderConnection:()=>o,deleteProviderConnection:()=>q,deleteProviderConnectionsByProvider:()=>r,getProviderConnectionById:()=>m,getProviderConnections:()=>l,reorderProviderConnections:()=>s,updateProviderConnection:()=>p});var d=c(43892),e=c(59339),f=c(33323),g=c(50809),h=c(34393);let i=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","idToken","lastRefreshAt","earliestPackageExpiry","earliestPackageName","earliestPackageRemaining","quotaCheckedAt"];function j(a){if(!a)return null;let b=(0,f.q)(a.data,{}),{data:c,error:d,unreadable:e}=(0,h.Q)(b);if(d){let a={testStatus:"unavailable",lastError:`Credentials unreadable: ${d}`};Object.assign(c,a),c[h.FF]={...e,synthesized:a}}return{...c,id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt}}function k(a,b){let c=function(a){let{id:b,provider:c,authType:d,name:e,email:g,priority:i,isActive:j,createdAt:k,updatedAt:l,...m}=a,n=(0,h._u)(m);return{id:b,provider:c,authType:d,name:e??null,email:g??null,priority:i??null,isActive:+(!1!==j),data:(0,f.s)((0,h.Wl)(n)),createdAt:k,updatedAt:l}}(b);a.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt)
|
|
128
|
+
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}},38955:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(90810)},40694:(a,b,c)=>{"use strict";a.exports=c(33873)},41534:(a,b,c)=>{"use strict";c.d(b,{cI:()=>g,pH:()=>f,Ps:()=>e});function d(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}d("DIRECT_FALLBACK_TIMEOUT_MS",6e4);let e=process.env.SEARXNG_URL?.trim()||"http://localhost:8888/search";d("STREAM_STALL_TIMEOUT_MS",12e4),d("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5);let f=d("FETCH_CONNECT_TIMEOUT_MS",6e4);d("PENDING_COMPLETION_FLUSH_MS",3e3),d("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3);let g={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}}},42097:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={isNodeNextRequest:function(){return g},isNodeNextResponse:function(){return h},isWebNextRequest:function(){return e},isWebNextResponse:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=a=>!1,f=a=>!1,g=a=>!0,h=a=>!0},42501:(a,b)=>{"use strict";function c(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ImageResponse",{enumerable:!0,get:function(){return c}})},42776:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"InvariantError",{enumerable:!0,get:function(){return c}});class c extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},43892:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(k)}},44001:(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}function e(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}c.r(b),c.d(b,{_:()=>e})},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},49540:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={StaticGenBailoutError:function(){return f},isStaticGenBailoutError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="NEXT_STATIC_GEN_BAILOUT";class f extends Error{constructor(...a){super(...a),this.code=e}}function g(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},49731:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compileNonPath:function(){return m},matchHas:function(){return l},parseDestination:function(){return n},prepareDestination:function(){return o}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(73896),g=c(21804),h=c(11042),i=c(8007),j=c(20742);function k(a){return a.replace(/__ESC_COLON_/gi,":")}function l(a,b,c=[],d=[]){let e={},f=c=>{let d,f=c.key;switch(c.type){case"header":f=f.toLowerCase(),d=a.headers[f];break;case"cookie":d="cookies"in a?a.cookies[c.key]:(0,i.getCookieParser)(a.headers)()[c.key];break;case"query":d=b[f];break;case"host":{let{host:b}=a?.headers||{};d=b?.split(":",1)[0].toLowerCase()}}if(!c.value&&d)return e[function(a){let b="";for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);(d>64&&d<91||d>96&&d<123)&&(b+=a[c])}return b}(f)]=d,!0;if(d){let a=RegExp(`^${c.value}$`),b=Array.isArray(d)?d.slice(-1)[0].match(a):d.match(a);if(b)return Array.isArray(b)&&(b.groups?Object.keys(b.groups).forEach(a=>{e[a]=b.groups[a]}):"host"===c.type&&b[0]&&(e.host=b[0])),!0}return!1};return!(!c.every(a=>f(a))||d.some(a=>f(a)))&&e}function m(a,b){if(!a.includes(":"))return a;for(let c of Object.keys(b))a.includes(`:${c}`)&&(a=a.replace(RegExp(`:${c}\\*`,"g"),`:${c}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${c}\\?`,"g"),`:${c}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${c}\\+`,"g"),`:${c}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${c}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${c}`));return a=a.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),(0,j.safeCompile)(`/${a}`,{validate:!1})(b).slice(1)}function n(a){let b=a.destination;for(let c of Object.keys({...a.params,...a.query}))c&&(b=b.replace(RegExp(`:${(0,f.escapeStringRegexp)(c)}`,"g"),`__ESC_COLON_${c}`));let c=(0,g.parseUrl)(b),d=c.pathname;d&&(d=k(d));let e=c.href;e&&(e=k(e));let h=c.hostname;h&&(h=k(h));let i=c.hash;i&&(i=k(i));let j=c.search;j&&(j=k(j));let l=c.origin;return l&&(l=k(l)),{...c,pathname:d,hostname:h,href:e,hash:i,search:j,origin:l}}function o(a){let b,c,d=n(a),{hostname:e,query:f,search:g}=d,i=d.pathname;d.hash&&(i=`${i}${d.hash}`);let l=[],o=[];for(let a of((0,j.safePathToRegexp)(i,o),o))l.push(a.name);if(e){let a=[];for(let b of((0,j.safePathToRegexp)(e,a),a))l.push(b.name)}let p=(0,j.safeCompile)(i,{validate:!1});for(let[c,d]of(e&&(b=(0,j.safeCompile)(e,{validate:!1,encode:encodeURIComponent})),Object.entries(f)))Array.isArray(d)?f[c]=d.map(b=>m(k(b),a.params)):"string"==typeof d&&(f[c]=m(k(d),a.params));let q=Object.keys(a.params).filter(a=>"nextInternalLocale"!==a);if(a.appendParamsToQuery&&!q.some(a=>l.includes(a)))for(let b of q)b in f||(f[b]=a.params[b]);if((0,h.isInterceptionRouteAppPath)(i))for(let b of i.split("/")){let c=h.INTERCEPTION_ROUTE_MARKERS.find(a=>b.startsWith(a));if(c){"(..)(..)"===c?(a.params["0"]="(..)",a.params["1"]="(..)"):a.params["0"]=c;break}}try{let[e,f]=(c=p(a.params)).split("#",2);b&&(d.hostname=b(a.params)),d.pathname=e,d.hash=`${f?"#":""}${f||""}`,d.search=g?m(g,a.params):""}catch(a){if(a.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw a}return d.query={...a.query,...d.query},{newUrl:c,destQuery:f,parsedDestination:d}}},50158:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={METADATA_BOUNDARY_NAME:function(){return e},OUTLET_BOUNDARY_NAME:function(){return g},ROOT_LAYOUT_BOUNDARY_NAME:function(){return h},VIEWPORT_BOUNDARY_NAME:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="__next_metadata_boundary__",f="__next_viewport_boundary__",g="__next_outlet_boundary__",h="__next_root_layout_boundary__"},50809:(a,b,c)=>{"use strict";c.d(b,{jw:()=>k,tm:()=>l});var d=c(59339),e=c(33323);let f="disabledModels",g=null;async function h(){if(g)return g;let a=new Map,b=new Map;try{let d=await Promise.resolve().then(c.bind(c,96359));for(let c of d.default||d.REGISTRY||[]){let d=c.uiAlias||c.alias||c.id;if(!d)continue;let e=new Set([c.id,c.alias,c.uiAlias,...Array.isArray(c.aliases)?c.aliases:[]].filter(Boolean)),f=b.get(d)||new Set;for(let b of e)a.set(b,d),f.add(b);b.set(d,f)}}catch(a){console.log("Disabled-model key map unavailable:",a?.message||a)}return g={toCanonical:a,byCanonical:b}}async function i(a){let{toCanonical:b,byCanonical:c}=await h(),d=b.get(a)||a,e=c.get(d),f=new Set(e?[...e]:[]);return f.add(a),f.add(d),{canonical:d,keys:[...f]}}async function j(){let a=(await (0,d.cK)()).all("SELECT key, value FROM kv WHERE scope = ?",[f]),{toCanonical:b,byCanonical:c}=await h(),g=new Map;for(let c of a){let a=b.get(c.key)||c.key,d=g.get(a);d||(d={own:null,union:new Set},g.set(a,d));let f=(0,e.q)(c.value,[])||[];for(let b of(c.key===a&&(d.own=new Set(f)),f))d.union.add(b)}let i={};for(let[a,b]of g){let d=[...b.own||b.union];i[a]=d;let e=c.get(a);if(e)for(let a of e)i[a]=d}return i}async function k(a){return a&&(await j())[a]||[]}async function l(a,b){if(!a||!Array.isArray(b))return;let c=await (0,d.cK)(),{canonical:g,keys:h}=await i(a);c.transaction(()=>{let a=[...new Set([...function(a,b,c){let d=null,g=new Set;for(let h of b){let b=a.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[f,h]);if(!b)continue;let i=(0,e.q)(b.value,[])||[];for(let a of(h===c&&(d=i),i))g.add(a)}return null!==d?d:[...g]}(c,h,g),...b])];for(let b of(c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[f,g,(0,e.s)(a)]),h))b!==g&&c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[f,b])})}},51597:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getParamProperties:function(){return i},getSegmentParam:function(){return g},isCatchAll:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(11042);function g(a){let b=f.INTERCEPTION_ROUTE_MARKERS.find(b=>a.startsWith(b));return(b&&(a=a.slice(b.length)),a.startsWith("[[...")&&a.endsWith("]]"))?{paramType:"optional-catchall",paramName:a.slice(5,-2)}:a.startsWith("[...")&&a.endsWith("]")?{paramType:b?`catchall-intercepted-${b}`:"catchall",paramName:a.slice(4,-1)}:a.startsWith("[")&&a.endsWith("]")?{paramType:b?`dynamic-intercepted-${b}`:"dynamic",paramName:a.slice(1,-1)}:null}function h(a){return"catchall"===a||"catchall-intercepted-(..)(..)"===a||"catchall-intercepted-(.)"===a||"catchall-intercepted-(..)"===a||"catchall-intercepted-(...)"===a||"optional-catchall"===a}function i(a){let b=!1,c=!1;switch(a){case"catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":b=!0;break;case"optional-catchall":b=!0,c=!0}return{repeat:b,optional:c}}},52201:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return c}});let c="NEXT_MISSING_ROOT_TAGS";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},53180:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getPathMatch",{enumerable:!0,get:function(){return e}});let d=c(7039);function e(a,b){let c=[],e=(0,d.pathToRegexp)(a,c,{delimiter:"/",sensitive:"boolean"==typeof b?.sensitive&&b.sensitive,strict:b?.strict}),f=(0,d.regexpToFunction)(b?.regexModifier?new RegExp(b.regexModifier(e.source),e.flags):e,c);return(a,d)=>{if("string"!=typeof a)return!1;let e=f(a);if(!e)return!1;if(b?.removeUnnamedParams)for(let a of c)"number"==typeof a.name&&delete e.params[a.name];return{...d,...e.params}}}},53610:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DEFAULT_SEGMENT_KEY:function(){return k},NOT_FOUND_SEGMENT_KEY:function(){return l},PAGE_SEGMENT_KEY:function(){return j},addSearchParamsIfPageSegment:function(){return h},computeSelectedLayoutSegment:function(){return i},getSegmentValue:function(){return e},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,f=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return f;let h=e(g[0]);return!h||h.startsWith(j)?f:(f.push(h),a(g,c,!1,f))}},isGroupSegment:function(){return f},isParallelRouteSegment:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){return Array.isArray(a)?a[1]:a}function f(a){return"("===a[0]&&a.endsWith(")")}function g(a){return a.startsWith("@")&&"@children"!==a}function h(a,b){if(a.includes(j)){let a=JSON.stringify(b);return"{}"!==a?j+"?"+a:j}return a}function i(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===k?null:c}let j="__PAGE__",k="__DEFAULT__",l="/_not-found"},54795:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e,f={RENDER_STAGE_ADVANCE_ORDER:function(){return k},RenderStage:function(){return j},StagedRenderingController:function(){return o},SyncIOMode:function(){return n},getNextStage:function(){return l},isAdvanceableRenderStage:function(){return m}};for(var g in f)Object.defineProperty(b,g,{enumerable:!0,get:f[g]});let h=c(42776),i=c(29299);var j=((d={})[d.Before=1]="Before",d[d.ShellStatic=11]="ShellStatic",d[d.Static=13]="Static",d[d.ShellRuntime=21]="ShellRuntime",d[d.Runtime=23]="Runtime",d[d.Dynamic=30]="Dynamic",d[d.Abandoned=40]="Abandoned",d);let k=[11,13,21,23,30];function l(a){return k[k.indexOf(a)+1]}function m(a){return 1<a&&a<=30}var n=((e={})[e.Untracked=1]="Untracked",e[e.AllowedInRuntimeOrDynamic=2]="AllowedInRuntimeOrDynamic",e[e.AllowedInDynamic=3]="AllowedInDynamic",e);class o{constructor({abortSignal:a,abandonController:b,syncIO:c,finalStage:d}){this.currentStage=1,this.syncInterruptReason=null,this.triggers={11:q(),13:q(),21:q(),23:q(),30:q()},this.abortSignal=a,this.abandonController=b,this.syncIOMode=c,this.finalStage=d,a&&a.addEventListener("abort",()=>{let{reason:b}=a;for(let a of Object.values(this.triggers)){var c,d;c=a,d=b,"pending"===c.state&&(c.state="cancelled",c._listeners.length=0,c.promise.catch(p),c._rejectPromise(d))}},{once:!0}),b&&b.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(a,b){var c,d;c=this.triggers[a],d=b,"pending"===c.state?c._listeners.push(d):d()}shouldTrackSyncInterrupt(){if(1===this.syncIOMode)return!1;switch(this.currentStage){case 1:return!1;case 11:case 13:return!0;case 21:case 23:switch(this.syncIOMode){case 2:return!1;case 3:return!0}case 30:case 40:return!1;default:return this.currentStage,!1}}syncInterruptCurrentStageWithReason(a){let{currentStage:b}=this;if(1!==b&&30!==b&&40!==b){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=a,this.currentStage=40;return}this.syncInterruptReason=a,this.advanceStage(30)}}getSyncInterruptReason(){return this.syncInterruptReason}getStageEndTime(a){return this.triggers[l(a)].triggeredAt??1/0}abandonRender(){let{currentStage:a}=this;if(1===a)throw Object.defineProperty(new h.InvariantError("A render that hasn't started yet cannot be abandoned"),"__NEXT_ERROR_CODE",{value:"E1300",enumerable:!1,configurable:!0});if(30===a||40===a)return;let b=k.indexOf(a)+1,c=k.indexOf(30);for(let a=b;a<c;a++)this.resolveStage(k[a]);this.currentStage=40}advanceStage(a){if(null!==this.finalStage&&a>this.finalStage)throw Object.defineProperty(new h.InvariantError(`Attempted to advance to stage ${j[a]} but the render is limited to ${j[this.finalStage]}`),"__NEXT_ERROR_CODE",{value:"E1302",enumerable:!1,configurable:!0});let{currentStage:b}=this;if(30===b||40===b||a<=b)return;this.currentStage=a;let c=1===b?0:k.indexOf(b)+1,d=k.indexOf(a);for(let a=c;a<=d;a++)this.resolveStage(k[a])}resolveStage(a){var b=this.triggers[a];if("pending"===b.state){b.state="triggered",b.triggeredAt=performance.now()+performance.timeOrigin;try{let{_listeners:a}=b;for(let b=0;b<a.length;b++)a[b]();a.length=0}finally{b._resolvePromise()}}}getStagePromise(a){return this.triggers[a].promise}waitForStage(a){return this.getStagePromise(a)}delayUntilStage(a,b,c){let d=this.getStagePromise(a).then(()=>c);return this.abortSignal&&d.catch(p),d}}function p(){}function q(){let{promise:a,resolve:b,reject:c}=(0,i.createPromiseWithResolvers)();return{state:"pending",triggeredAt:null,promise:a,_listeners:[],_resolvePromise:b,_rejectPromise:c}}},55122:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getPreviouslyRevalidatedTags:function(){return w},getServerUtils:function(){return v},interpolateDynamicPath:function(){return t},normalizeCdnUrl:function(){return s},normalizeDynamicRouteParams:function(){return u}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(28516),g=c(53180),h=c(70580),i=c(62447),j=c(49731),k=c(19524),l=c(92539),m=c(96100),n=c(99751),o=c(4522),p=c(86948),q=c(28344);function r(a,b){for(let c in delete a.nextInternalLocale,a){let d=c!==m.NEXT_QUERY_PARAM_PREFIX&&c.startsWith(m.NEXT_QUERY_PARAM_PREFIX),e=c!==m.NEXT_INTERCEPTION_MARKER_PREFIX&&c.startsWith(m.NEXT_INTERCEPTION_MARKER_PREFIX);(d||e||b.includes(c))&&delete a[c]}}function s(a,b){let c=(0,p.parseReqUrl)(a.url);if(!c)return a.url;delete c.search,r(c.query,b),a.url=(0,q.formatUrl)(c)}function t(a,b,c){if(!c)return a;for(let d of Object.keys(c.groups)){let e,{optional:f,repeat:g}=c.groups[d],h=`[${g?"...":""}${d}]`;f&&(h=`[${h}]`);let i=b[d];((e=Array.isArray(i)?i.map(a=>a&&encodeURIComponent(a)).join("/"):i?encodeURIComponent(i):"")||f)&&(a=a.replaceAll(h,e))}return a}function u(a,b,c,d){let e=(a,b)=>{if(!a)return!1;let c=(0,l.normalizeRscURL)(a);for(let a=0;a<3;a++){if(c===b)return!0;let a=(0,o.decodeQueryPathParameter)(c);if(a===c)break;c=a}return!1},f={};for(let g of Object.keys(b.groups)){let h=a[g];"string"==typeof h?h=(0,l.normalizeRscURL)(h):Array.isArray(h)&&(h=h.map(l.normalizeRscURL));let i=c[g],j=b.groups[g].optional;if((Array.isArray(i)?i.some(a=>Array.isArray(h)?h.some(b=>e(b,a)):e(h,a)):Array.isArray(h)?h.some(a=>e(a,i)):e(h,i))||void 0===h&&!(j&&d))return{params:{},hasValidParams:!1};j&&(!h||Array.isArray(h)&&1===h.length&&("index"===h[0]||h[0]===`[[...${g}]]`)||"index"===h||h===`[[...${g}]]`)&&(h=void 0,delete a[g]),h&&"string"==typeof h&&b.groups[g].repeat&&(h=h.split("/")),h&&(f[g]=h)}return{params:f,hasValidParams:!0}}function v({page:a,i18n:b,basePath:c,rewrites:d,pageIsDynamic:e,trailingSlash:l,caseSensitive:m}){let p,q,w;return e&&(p=(0,h.getNamedRouteRegex)(a,{prefixRouteKeys:!1}),w=(q=(0,i.getRouteMatcher)(p))(a)),{handleRewrites:function(h,i){let n=structuredClone(i),o={},p=n.pathname,r=d=>{let i=(0,g.getPathMatch)(d.source+(l?"(/)?":""),{removeUnnamedParams:!0,strict:!0,sensitive:!!m});if(!n.pathname)return!1;let k=i(n.pathname);if((d.has||d.missing)&&k){let a=(0,j.matchHas)(h,n.query,d.has,d.missing);a?Object.assign(k,a):k=!1}if(k){let{parsedDestination:g,destQuery:h}=(0,j.prepareDestination)({appendParamsToQuery:!0,destination:d.destination,params:k,query:n.query});if(g.protocol)return!0;if(Object.assign(o,h,k),Object.assign(n.query,g.query),delete g.query,Object.assign(n,g),!(p=n.pathname))return!1;if(c&&(p=p.replace(RegExp(`^${c}`),"")||"/"),b){let a=(0,f.normalizeLocalePath)(p,b.locales);p=a.pathname,n.query.nextInternalLocale=a.detectedLocale||k.nextInternalLocale}if(p===a)return!0;if(e&&q){let a=q(p);if(a)return n.query={...n.query,...a},!0}}return!1};for(let a of d.beforeFiles||[])r(a);if(p!==a){let b,c=!1;for(let a of d.afterFiles||[])if(c=r(a))break;if(!c&&!((b=(0,k.removeTrailingSlash)(p||""))===(0,k.removeTrailingSlash)(a)||(null==q?void 0:q(b)))){for(let a of d.fallback||[])if(c=r(a))break}}return{rewriteParams:o,rewrittenParsedUrl:n}},defaultRouteRegex:p,dynamicRouteMatcher:q,defaultRouteMatches:w,normalizeQueryParams:function(a,b){for(let[c,d]of(delete a.nextInternalLocale,Object.entries(a))){let e=(0,n.normalizeNextQueryParam)(c);e&&(delete a[c],b.add(e),void 0!==d&&(a[e]=Array.isArray(d)?d.map(a=>(0,o.decodeQueryPathParameter)(a)):(0,o.decodeQueryPathParameter)(d)))}},getParamsFromRouteMatches:function(a){if(!p)return null;let{groups:b,routeKeys:c}=p,d=(0,i.getRouteMatcher)({re:{exec:a=>{let d=Object.fromEntries(new URLSearchParams(a));for(let[a,b]of Object.entries(d)){let c=(0,n.normalizeNextQueryParam)(a);c&&(d[c]=b,delete d[a])}let e={};for(let a of Object.keys(c)){let f=c[a];if(!f)continue;let g=b[f],h=d[a];if(!g.optional&&!h)return null;e[g.pos]=h}return e}},groups:b})(a);return d||null},normalizeDynamicRouteParams:(a,b)=>p&&w?u(a,p,w,b):{params:{},hasValidParams:!1},normalizeCdnUrl:(a,b)=>s(a,b),interpolateDynamicPath:(a,b)=>t(a,b,p),filterInternalQuery:(a,b)=>r(a,b)}}function w(a,b){return"string"==typeof a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER]&&a[m.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER]===b?a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(","):[]}},55511:a=>{"use strict";a.exports=require("crypto")},56840:(a,b,c)=>{"use strict";c.r(b),c.d(b,{cleanupProviderConnections:()=>t,createProviderConnection:()=>o,deleteProviderConnection:()=>q,deleteProviderConnectionsByProvider:()=>r,getProviderConnectionById:()=>m,getProviderConnections:()=>l,reorderProviderConnections:()=>s,updateProviderConnection:()=>p});var d=c(43892),e=c(59339),f=c(33323),g=c(50809),h=c(34393);let i=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","idToken","lastRefreshAt","earliestPackageExpiry","earliestPackageName","earliestPackageRemaining","quotaCheckedAt","quotaBalance","shortWindowRemaining","longWindowRemaining","quotaZone","shortZone","longZone","quotaWindowSource","GeminiShortWindowRemaining","GeminiLongWindowRemaining","GeminiZone","GeminiPackageExpiry","GeminiPackageName","ClaudeGptShortWindowRemaining","ClaudeGptLongWindowRemaining","ClaudeGptZone","ClaudeGptPackageExpiry","ClaudeGptPackageName"];function j(a){if(!a)return null;let b=(0,f.q)(a.data,{}),{data:c,error:d,unreadable:e}=(0,h.Q)(b);if(d){let a={testStatus:"unavailable",lastError:`Credentials unreadable: ${d}`};Object.assign(c,a),c[h.FF]={...e,synthesized:a}}return{...c,id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt}}function k(a,b){let c=function(a){let{id:b,provider:c,authType:d,name:e,email:g,priority:i,isActive:j,createdAt:k,updatedAt:l,...m}=a,n=(0,h._u)(m);return{id:b,provider:c,authType:d,name:e??null,email:g??null,priority:i??null,isActive:+(!1!==j),data:(0,f.s)((0,h.Wl)(n)),createdAt:k,updatedAt:l}}(b);a.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt)
|
|
129
129
|
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
130
130
|
ON CONFLICT(id) DO UPDATE SET
|
|
131
131
|
provider=excluded.provider, authType=excluded.authType, name=excluded.name,
|
|
132
132
|
email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
|
|
133
|
-
data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function l(a={}){let b=await (0,e.cK)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(j);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function m(a){return j((await (0,e.cK)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function n(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(j);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{let d=c+1;(b.priority||0)!==d&&a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[d,b.id])})}async function o(a){let b,f=await (0,e.cK)(),h=new Date().toISOString(),l=!1;if(f.transaction(()=>{var c;let e="apikey"===a.authType&&!!a.name,g=e?f.all("SELECT * FROM providerConnections WHERE provider = ? AND authType = ? AND name = ?",[a.provider,"apikey",a.name]).map(j):f.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(j),m=e?f.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a.provider])?.n??g.length:g.length;l=0===m;let n=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;n=g.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(n=g.find(b=>"apikey"===b.authType&&b.name===a.name));if(n){if(!1===a.allowOverwrite){let b=Error(`A connection named "${n.name}" already exists for provider "${a.provider}". Pass allowOverwrite: true to replace it.`);throw b.code="PROVIDER_NAME_CONFLICT",b.existingId=n.id,b.existingName=n.name,b}let c={...n,...a,updatedAt:h};for(let b of["lastError","lastErrorAt","errorCode"])void 0===a[b]&&(c[b]=null);void 0===a.testStatus&&"unavailable"===c.testStatus&&(c.testStatus="active"),void 0===a.testStatus&&"needs-reauth"===c.testStatus&&(c.testStatus="active",c.needsReauthUntil=null),k(f,c),b=c;return}let o=a.name||null;o||"oauth"!==a.authType&&"access_token"!==a.authType||(c=a.email||`Account ${m+1}`,o="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||c);let p=a.priority;if(!p){let b=f.get("SELECT MAX(priority) AS m FROM providerConnections WHERE provider = ?",[a.provider]);p=(b?.m||0)+1}let q={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:o,priority:p,isActive:void 0===a.isActive||a.isActive,createdAt:h,updatedAt:h};for(let b of i)void 0!==a[b]&&null!==a[b]&&(q[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(q.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(q.email=a.email),k(f,q),b=q}),l&&b)try{let{PROVIDER_MODELS:b,PROVIDER_ID_TO_ALIAS:d}=await Promise.resolve().then(c.bind(c,76871)),e=d[a.provider]||a.provider,f=(b[e]||[]).filter(a=>!a.kind||"llm"===a.kind).map(a=>a.id);if(f.length>0){let a=await (0,g.jw)(e);0===a.length&&await (0,g.tm)(e,f)}}catch(a){console.log("Default-disable init skipped:",a?.message||a)}return b}async function p(a,b){let c,d=await (0,e.cK)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=j(e),g={...f,...b,updatedAt:new Date().toISOString()};if("resetErrorState"in g){let a=!0===g.resetErrorState;if(delete g.resetErrorState,a){let a={lastError:null,lastErrorAt:null,errorCode:null,testStatus:null,needsReauthUntil:null};for(let c of Object.keys(a))void 0!==b[c]&&delete a[c];Object.assign(g,a)}}k(d,g),void 0!==b.priority&&n(d,f.provider),c=g}),c}async function q(a){let b=await (0,e.cK)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),n(b,d.provider),c=!0)}),c}async function r(a){let b=await (0,e.cK)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function s(a){let b=await (0,e.cK)();b.transaction(()=>n(b,a))}async function t(){let a=await (0,e.cK)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=j(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&k(a,e)}}),c}},56872:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d={bgBlack:function(){return C},bgBlue:function(){return G},bgCyan:function(){return I},bgGreen:function(){return E},bgMagenta:function(){return H},bgRed:function(){return D},bgWhite:function(){return J},bgYellow:function(){return F},black:function(){return s},blue:function(){return w},bold:function(){return l},cyan:function(){return z},dim:function(){return m},gray:function(){return B},green:function(){return u},hidden:function(){return q},inverse:function(){return p},italic:function(){return n},magenta:function(){return x},purple:function(){return y},red:function(){return t},reset:function(){return k},strikethrough:function(){return r},underline:function(){return o},white:function(){return A},yellow:function(){return v}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let{env:f,stdout:g}=(null==(c=globalThis)?void 0:c.process)??{},h=f&&!f.NO_COLOR&&(f.FORCE_COLOR||(null==g?void 0:g.isTTY)&&!f.CI&&"dumb"!==f.TERM),i=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),g=f.indexOf(b);return~g?e+i(f,b,c,g):e+f},j=(a,b,c=a)=>h?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+i(e,b,c,f)+b:a+e+b}:String,k=h?a=>`\x1b[0m${a}\x1b[0m`:String,l=j("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),m=j("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),n=j("\x1b[3m","\x1b[23m"),o=j("\x1b[4m","\x1b[24m"),p=j("\x1b[7m","\x1b[27m"),q=j("\x1b[8m","\x1b[28m"),r=j("\x1b[9m","\x1b[29m"),s=j("\x1b[30m","\x1b[39m"),t=j("\x1b[31m","\x1b[39m"),u=j("\x1b[32m","\x1b[39m"),v=j("\x1b[33m","\x1b[39m"),w=j("\x1b[34m","\x1b[39m"),x=j("\x1b[35m","\x1b[39m"),y=j("\x1b[38;2;173;127;168m","\x1b[39m"),z=j("\x1b[36m","\x1b[39m"),A=j("\x1b[37m","\x1b[39m"),B=j("\x1b[90m","\x1b[39m"),C=j("\x1b[40m","\x1b[49m"),D=j("\x1b[41m","\x1b[49m"),E=j("\x1b[42m","\x1b[49m"),F=j("\x1b[43m","\x1b[49m"),G=j("\x1b[44m","\x1b[49m"),H=j("\x1b[45m","\x1b[49m"),I=j("\x1b[46m","\x1b[49m"),J=j("\x1b[47m","\x1b[49m")},57155:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getCacheHandler:function(){return p},getCacheHandlerEntries:function(){return w},getCacheHandlers:function(){return v},getDevTieredCacheHandler:function(){return u},getPrivateCacheHandler:function(){return q},initializeCacheHandlers:function(){return o},isBuiltInCacheHandler:function(){return t},isCustomCacheHandler:function(){return s},isMemoryCacheDisabled:function(){return r},setCacheHandler:function(){return x}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(32457);c(7597);let g=process.env.NEXT_PRIVATE_DEBUG_CACHE?(a,...b)=>{console.log(`use-cache: ${a}`,...b)}:void 0,h=Symbol.for("@next/cache-handlers"),i=Symbol.for("@next/cache-handlers-map"),j=Symbol.for("@next/cache-handlers-set"),k=Symbol.for("@next/cache-handlers-private"),l=Symbol.for("@next/cache-handlers-built-in");Symbol.for("@next/cache-handlers-dev-fronts"),Symbol.for("@next/cache-handlers-dev-tiered");let m=Symbol.for("@next/cache-handlers-memory-disabled"),n=globalThis;function o(a){if(n[i])return null==g||g("cache handlers already initialized"),!1;null==g||g("initializing cache handlers");let b=new Map;n[i]=b;let c=new Set;if(n[l]=c,n[h]){let d;n[h].DefaultCache?(null==g||g('setting "default" cache handler from symbol'),d=n[h].DefaultCache):(null==g||g('setting "default" cache handler from default'),d=(0,f.createDefaultCacheHandler)(a),c.add(d)),b.set("default",d),n[h].RemoteCache?(null==g||g('setting "remote" cache handler from symbol'),b.set("remote",n[h].RemoteCache)):(null==g||g('setting "remote" cache handler from default'),b.set("remote",d))}else{let d=(0,f.createDefaultCacheHandler)(a);c.add(d),null==g||g('setting "default" cache handler from default'),b.set("default",d),null==g||g('setting "remote" cache handler from default'),b.set("remote",d)}return n[j]=new Set(b.values()),!0}function p(a){if(!n[i])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});return n[i].get(a)}function q(){if(!n[i])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});return n[k]}function r(){return n[m]??!1}function s(a){return!1}function t(a){var b,c;let d=null==(b=n[i])?void 0:b.get(a);return void 0!==d&&!!(null==(c=n[l])?void 0:c.has(d))}function u(a){}function v(){let a=n[j];if(a)return a.values()}function w(){let a=n[i];if(a)return a.entries()}function x(a,b){if(!n[i]||!n[j])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});null==g||g('setting cache handler for "%s"',a),n[i].set(a,b),n[j].add(b)}},57202:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={handleFetch:function(){return i},interceptFetch:function(){return j},reader:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(18975),g={url:a=>a.url,header:(a,b)=>a.headers.get(b)};async function h(a,b){let{url:c,method:d,headers:e,body:f,cache:g,credentials:h,integrity:i,mode:j,redirect:k,referrer:l,referrerPolicy:m}=b;return{testData:a,api:"fetch",request:{url:c,method:d,headers:[...Array.from(e),["next-test-stack",function(){let a=(Error().stack??"").split("\n");for(let b=1;b<a.length;b++)if(a[b].length>0){a=a.slice(b);break}return(a=(a=(a=a.filter(a=>!a.includes("/next/dist/"))).slice(0,5)).map(a=>a.replace("webpack-internal:///(rsc)/","").trim())).join(" ")}()]],body:f?Buffer.from(await b.arrayBuffer()).toString("base64"):null,cache:g,credentials:h,integrity:i,mode:j,redirect:k,referrer:l,referrerPolicy:m}}}async function i(a,b){let c=(0,f.getTestReqInfo)(b,g);if(!c)return a(b);let{testData:d,proxyPort:e}=c,i=await h(d,b),j=await a(`http://localhost:${e}`,{method:"POST",body:JSON.stringify(i),headers:{"next-test-internal":"1"},next:{internal:!0}});if(!j.ok)throw Object.defineProperty(Error(`Proxy request failed: ${j.status}`),"__NEXT_ERROR_CODE",{value:"E146",enumerable:!1,configurable:!0});let k=await j.json(),{api:l}=k;switch(l){case"continue":return a(b);case"abort":case"unhandled":throw Object.defineProperty(Error(`Proxy request aborted [${b.method} ${b.url}]`),"__NEXT_ERROR_CODE",{value:"E145",enumerable:!1,configurable:!0});case"fetch":return function(a){let{status:b,headers:c,body:d}=a.response;return new Response(d?Buffer.from(d,"base64"):null,{status:b,headers:new Headers(c)})}(k);default:return l}}function j(a){return global.fetch=function(b,c){var d;return(null==c||null==(d=c.next)?void 0:d.internal)?a(b,c):i(a,new Request(b,c))},()=>{global.fetch=a}}},58486:(a,b)=>{"use strict";function c(a){switch(a){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"interceptionPrefixFromParamType",{enumerable:!0,get:function(){return c}})},58930:a=>{(()=>{"use strict";let b,c,d,e,f;var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w={912:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(108),e=c(221),f=c(44),g="context",h=new d.NoopContextManager;class i{static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},44:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(757),e=c(412),f=c(711),g=c(221);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}const b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"<failed to generate stacktrace>";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},262:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(586),e=c(221),f=c(44),g="metrics";class h{static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},25:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(221),e=c(19),f=c(92),g=c(398),h=c(504),i=c(44),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},397:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(221),e=c(498),f=c(477),g=c(793),h=c(44),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},398:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(912),e=(0,c(23).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},152:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},647:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},504:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(44),e=c(152),f=c(647),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},778:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(912).ContextAPI.getInstance()},108:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(23);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},23:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){const b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},304:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(44).DiagAPI.instance()},757:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(221);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},83:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a<c.length;a++)this[c[a].n]=function(a){return function(...b){if(console){let c=console[a];if("function"!=typeof c&&(c=console.log),"function"==typeof c)return c.apply(console,b)}}}(c[a].c)}}b.DiagConsoleLogger=d},412:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(711);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return a<d.DiagLogLevel.NONE?a=d.DiagLogLevel.NONE:a>d.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},711:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,(c=b.DiagLogLevel||(b.DiagLogLevel={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL"},221:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(678),e=c(652),f=c(662),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},662:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(652),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},120:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(262).MetricsAPI.getInstance()},532:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,(c=b.ValueType||(b.ValueType={}))[c.INT=0]="INT",c[c.DOUBLE=1]="DOUBLE"},440:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},586:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(440);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},678:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(59),b)},460:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},59:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(460),b)},27:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(25).PropagationAPI.getInstance()},19:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},92:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},816:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(397).TraceAPI.getInstance()},374:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(546);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},637:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(912),e=c(793),f=c(374),g=c(477),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},76:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(637);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},779:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(637)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},498:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(779),e=new(c(76)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},312:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,(c=b.SamplingDecision||(b.SamplingDecision={}))[c.NOT_RECORD=0]="NOT_RECORD",c[c.RECORD=1]="RECORD",c[c.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},793:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(23),e=c(374),f=c(912),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},285:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(240);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},240:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},87:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(285);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},546:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(731);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},613:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,(c=b.SpanKind||(b.SpanKind={}))[c.INTERNAL=0]="INTERNAL",c[c.SERVER=1]="SERVER",c[c.CLIENT=2]="CLIENT",c[c.PRODUCER=3]="PRODUCER",c[c.CONSUMER=4]="CONSUMER"},477:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(546),e=c(374),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},854:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,(c=b.SpanStatusCode||(b.SpanStatusCode={}))[c.UNSET=0]="UNSET",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR"},731:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,(c=b.TraceFlags||(b.TraceFlags={}))[c.NONE=0]="NONE",c[c.SAMPLED=1]="SAMPLED"},652:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},x={};function y(a){var b=x[a];if(void 0!==b)return b.exports;var c=x[a]={exports:{}},d=!0;try{w[a].call(c.exports,c,c.exports,y),d=!1}finally{d&&delete x[a]}return c.exports}y.ab=__dirname+"/";var z={};Object.defineProperty(z,"__esModule",{value:!0}),z.trace=z.propagation=z.metrics=z.diag=z.context=z.INVALID_SPAN_CONTEXT=z.INVALID_TRACEID=z.INVALID_SPANID=z.isValidSpanId=z.isValidTraceId=z.isSpanContextValid=z.createTraceState=z.TraceFlags=z.SpanStatusCode=z.SpanKind=z.SamplingDecision=z.ProxyTracerProvider=z.ProxyTracer=z.defaultTextMapSetter=z.defaultTextMapGetter=z.ValueType=z.createNoopMeter=z.DiagLogLevel=z.DiagConsoleLogger=z.ROOT_CONTEXT=z.createContextKey=z.baggageEntryMetadataFromString=void 0,g=y(504),Object.defineProperty(z,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return g.baggageEntryMetadataFromString}}),h=y(23),Object.defineProperty(z,"createContextKey",{enumerable:!0,get:function(){return h.createContextKey}}),Object.defineProperty(z,"ROOT_CONTEXT",{enumerable:!0,get:function(){return h.ROOT_CONTEXT}}),i=y(83),Object.defineProperty(z,"DiagConsoleLogger",{enumerable:!0,get:function(){return i.DiagConsoleLogger}}),j=y(711),Object.defineProperty(z,"DiagLogLevel",{enumerable:!0,get:function(){return j.DiagLogLevel}}),k=y(440),Object.defineProperty(z,"createNoopMeter",{enumerable:!0,get:function(){return k.createNoopMeter}}),l=y(532),Object.defineProperty(z,"ValueType",{enumerable:!0,get:function(){return l.ValueType}}),m=y(92),Object.defineProperty(z,"defaultTextMapGetter",{enumerable:!0,get:function(){return m.defaultTextMapGetter}}),Object.defineProperty(z,"defaultTextMapSetter",{enumerable:!0,get:function(){return m.defaultTextMapSetter}}),n=y(779),Object.defineProperty(z,"ProxyTracer",{enumerable:!0,get:function(){return n.ProxyTracer}}),o=y(498),Object.defineProperty(z,"ProxyTracerProvider",{enumerable:!0,get:function(){return o.ProxyTracerProvider}}),p=y(312),Object.defineProperty(z,"SamplingDecision",{enumerable:!0,get:function(){return p.SamplingDecision}}),q=y(613),Object.defineProperty(z,"SpanKind",{enumerable:!0,get:function(){return q.SpanKind}}),r=y(854),Object.defineProperty(z,"SpanStatusCode",{enumerable:!0,get:function(){return r.SpanStatusCode}}),s=y(731),Object.defineProperty(z,"TraceFlags",{enumerable:!0,get:function(){return s.TraceFlags}}),t=y(87),Object.defineProperty(z,"createTraceState",{enumerable:!0,get:function(){return t.createTraceState}}),u=y(477),Object.defineProperty(z,"isSpanContextValid",{enumerable:!0,get:function(){return u.isSpanContextValid}}),Object.defineProperty(z,"isValidTraceId",{enumerable:!0,get:function(){return u.isValidTraceId}}),Object.defineProperty(z,"isValidSpanId",{enumerable:!0,get:function(){return u.isValidSpanId}}),v=y(546),Object.defineProperty(z,"INVALID_SPANID",{enumerable:!0,get:function(){return v.INVALID_SPANID}}),Object.defineProperty(z,"INVALID_TRACEID",{enumerable:!0,get:function(){return v.INVALID_TRACEID}}),Object.defineProperty(z,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return v.INVALID_SPAN_CONTEXT}}),b=y(778),Object.defineProperty(z,"context",{enumerable:!0,get:function(){return b.context}}),c=y(304),Object.defineProperty(z,"diag",{enumerable:!0,get:function(){return c.diag}}),d=y(120),Object.defineProperty(z,"metrics",{enumerable:!0,get:function(){return d.metrics}}),e=y(27),Object.defineProperty(z,"propagation",{enumerable:!0,get:function(){return e.propagation}}),f=y(816),Object.defineProperty(z,"trace",{enumerable:!0,get:function(){return f.trace}}),z.default={context:b.context,diag:c.diag,metrics:d.metrics,propagation:e.propagation,trace:f.trace},a.exports=z})()},59339:(a,b,c)=>{"use strict";c.d(b,{cK:()=>n});var d=c(76760),e=c.n(d),f=c(7841);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1,lastDriverError:null});let g=global._dbAdapter;async function h(){try{let{createRequire:a}=await Promise.resolve().then(c.t.bind(c,98995,23)),b=a(e().join(f.Rf,"_noop.js"))("better-sqlite3");return b?.default??b}catch{}try{let a=await Promise.resolve().then(c.t.bind(c,87550,23));return a?.default??a}catch{return null}}async function i(){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(698).then(c.bind(c,90698));return await a(f.AL)}catch(a){return g.lastDriverError=`bun:sqlite: ${a.message}`,console.warn(`[DB] bun:sqlite unavailable: ${a.message}`),null}}async function j(){if(process.versions.bun)return null;let[a]=process.versions.node.split(".").map(Number);if(a>=24)return null;try{let a=await h();if(!a)throw Error("not installed (runtime copy and bare specifier both missing)");let{createBetterSqliteAdapter:b}=await c.e(507).then(c.bind(c,90507));return b(f.AL,a)}catch(a){return g.lastDriverError=`better-sqlite3: ${a.message}`,console.warn(`[DB] better-sqlite3 unavailable: ${a.message}`),null}}async function k(){if(process.versions.bun)return null;let[a,b]=process.versions.node.split(".").map(Number);if(a<22||22===a&&b<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(7965).then(c.bind(c,57965));return await a(f.AL)}catch(a){return g.lastDriverError=`node:sqlite: ${a.message}`,console.warn(`[DB] node:sqlite unavailable: ${a.message}`),null}}async function l(){try{let{createSqlJsAdapter:a}=await c.e(4780).then(c.bind(c,34780));return await a(f.AL)}catch(a){return g.lastDriverError=`sql.js: ${a.message}`,console.warn(`[DB] sql.js unavailable: ${a.message}`),null}}async function m(){(0,f.Jh)();let a=await i();if(a||(a=await j()),a||(a=await k()),a||(a=await l()),!a)throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)");g.logged||(console.log(`[DB] Driver: ${a.driver} | file: ${f.AL}`),g.logged=!0);let{runMigrationOnce:b}=await c.e(9451).then(c.bind(c,39451));return await b(a),a}async function n(){return g.instance?g.instance:(g.initPromise||(g.initPromise=m().then(a=>(g.instance=a,a))),g.initPromise)}},59841:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},60651:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>r});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"};(function(){switch((0,d.arch)()){case"x64":case"arm64":case"ia32":return;default:return(0,d.arch)()}})(),function(){switch((0,d.platform)()){case"darwin":case"win32":case"linux":case"freebsd":return;default:return(0,d.platform)()}}();let f="https://daily-cloudcode-pa.googleapis.com",g="antigravity/ide/2.22.0 darwin/arm64",h={id:"antigravity",priority:30,alias:"ag",uiAlias:"ag",display:{name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",serviceKinds:["llm","image"],transport:{baseUrls:[f],format:"antigravity",strictProxy:!0,headers:{"User-Agent":g},retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:`${f}/v1internal:fetchAvailableModels`,quotaSummaryApiUrls:["https://daily-cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary","https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:retrieveUserQuotaSummary","https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary"],loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-4-argon-high",name:"Gemini 4 Argon (High)",upstreamModelId:"gemini-4-argon-high(high)"},{id:"gemini-4-argon-medium",name:"Gemini 4 Argon (Medium)",upstreamModelId:"gemini-4-argon-medium(medium)"},{id:"gemini-4-argon-low",name:"Gemini 4 Argon (Low)",upstreamModelId:"gemini-4-argon-low(low)"},{id:"gemini-3.8-flash-high",name:"Gemini 3.8 Flash (High)",upstreamModelId:"gemini-3.8-flash-high(high)"},{id:"gemini-3.8-flash-medium",name:"Gemini 3.8 Flash (Medium)",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.8-flash-low",name:"Gemini 3.8 Flash (Low)",upstreamModelId:"gemini-3.8-flash-low(low)"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.7-flash-high",name:"Gemini 3.7 Flash (High)",upstreamModelId:"gemini-3.7-flash-tiered(high)"},{id:"gemini-3.7-flash-medium",name:"Gemini 3.7 Flash (Medium)",upstreamModelId:"gemini-3.7-flash-tiered(medium)"},{id:"gemini-3.7-flash-low",name:"Gemini 3.7 Flash (Low)",upstreamModelId:"gemini-3.7-flash-tiered(low)"},{id:"gemini-3.6-flash-high",name:"Gemini 3.6 Flash (High)",upstreamModelId:"gemini-3.6-flash-tiered(high)"},{id:"gemini-3.6-flash-medium",name:"Gemini 3.6 Flash (Medium)",upstreamModelId:"gemini-3.6-flash-tiered(medium)"},{id:"gemini-3.6-flash-low",name:"Gemini 3.6 Flash (Low)",upstreamModelId:"gemini-3.6-flash-tiered(low)"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)",upstreamModelId:"gemini-3.1-pro-low(low)"},{id:"claude-sonnet-5-5-high",name:"Claude Sonnet 5.5 (High)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5 (Medium)",upstreamModelId:"claude-sonnet-5-5-medium(medium)"},{id:"claude-sonnet-5-5-low",name:"Claude Sonnet 5.5 (Low)",upstreamModelId:"claude-sonnet-5-5-low(low)"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5 (Thinking)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-opus-5-5-high",name:"Claude Opus 5.5 (High)",upstreamModelId:"claude-opus-5-5-high(high)"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5 (Medium)",upstreamModelId:"claude-opus-5-5-medium(medium)"},{id:"claude-opus-5-5-low",name:"Claude Opus 5.5 (Low)",upstreamModelId:"claude-opus-5-5-low(low)"},{id:"claude-opus-5-5",name:"Claude Opus 5.5 (Thinking)",upstreamModelId:"claude-opus-5-5-high(high)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-3-pro-image",name:"Gemini 3 Pro (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"imagen-3.0-generate-002",name:"Imagen 3",kind:"image",imageGen:!0,capabilities:["textToImage"]}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://daily-cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:g,refreshLeadMs:3e5},features:{usage:!0}},i="0.159.0",j=["low","medium","high","xhigh","max"],k={id:"codex",priority:20,alias:"cx",uiAlias:"cx",display:{name:"OpenAI Codex",icon:"code",color:"#3B82F6",website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"},deprecated:!0,deprecationNotice:"RISK_NOTICE",kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,cliVersion:i,headers:{originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${i}`},usage:{url:"https://chatgpt.com/backend-api/wham/usage",resetCreditsUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits",resetCreditsConsumeUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume"}},models:[{id:"gpt-6-astra",name:"GPT 6.0 Astra"},{id:"gpt-6-astra[1m]",name:"GPT 6.0 Astra (extended context)",upstreamModelId:"gpt-6-astra"},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-sol",name:"GPT 6.0 Sol",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-sol[1m]",name:"GPT 6.0 Sol (extended context)",upstreamModelId:"gpt-6-sol",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-luna",name:"GPT 6.0 Luna",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-luna[1m]",name:"GPT 6.0 Luna (extended context)",upstreamModelId:"gpt-6-luna",responsesLite:!0,thinkingLevels:j},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol"},{id:"gpt-5.6-sol[1m]",name:"GPT 5.6 Sol (extended context)",upstreamModelId:"gpt-5.6-sol"},{id:"gpt-5.6-sol-review",name:"GPT 5.6 Sol Review",upstreamModelId:"gpt-5.6-sol",quotaFamily:"review"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra"},{id:"gpt-5.6-terra[1m]",name:"GPT 5.6 Terra (extended context)",upstreamModelId:"gpt-5.6-terra"},{id:"gpt-5.6-terra-review",name:"GPT 5.6 Terra Review",upstreamModelId:"gpt-5.6-terra",quotaFamily:"review"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna"},{id:"gpt-5.6-luna[1m]",name:"GPT 5.6 Luna (extended context)",upstreamModelId:"gpt-5.6-luna"},{id:"gpt-5.6-luna-review",name:"GPT 5.6 Luna Review",upstreamModelId:"gpt-5.6-luna",quotaFamily:"review"},{id:"gpt-daybreak-blue-latest",name:"GPT Daybreak Blue"},{id:"gpt-reserve",name:"GPT Reserve"},{id:"gpt-image-2.5",name:"GPT Image 2.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-1.5",name:"GPT Image 1.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-sol-image",name:"GPT 5.6 Sol Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-terra-image",name:"GPT 5.6 Terra Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-5.6-luna-image",name:"GPT 5.6 Luna Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:6e5,refresh:{encoding:"form",scope:"openid profile email offline_access"},maxRefreshAgeMs:6912e5,trackRefreshAt:!0},features:{usage:!0}},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-flash",name:"DeepSeek V4.1 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],features:{usage:!0,usageApikey:!0}},m={id:"glm",priority:140,alias:"glm",display:{name:"Zai GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys",signupUrl:"https://chat.z.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,oauth:{providerId:"zai",cliInitUrl:"https://zcode.z.ai/api/v1/oauth/cli/init",cliPollUrl:"https://zcode.z.ai/api/v1/oauth/cli/poll",businessLoginUrl:"https://api.z.ai/api/auth/z/login",apiBaseUrl:"https://api.z.ai",planApiKeyName:"zcode-api-key"},transport:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},n="1.0.44",o="https://cli-chat-proxy.grok.com/v1",p="grok-shell",q=`grok-shell/${n} (linux; x86_64)`,r=[{id:"agnes-ai-cn",alias:"agnes-ai-cn",display:{name:"Agnes AI (CN)",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.cn/",notice:{apiKeyUrl:"https://www.agnes-ai.cn/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.agnes-ai.cn/v1/chat/completions",validateUrl:"https://api.agnes-ai.cn/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.agnes-ai.cn/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"agnes-ai",alias:"agnes-ai",display:{name:"Agnes AI",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.com/",notice:{apiKeyUrl:"https://www.agnes-ai.com/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://apihub.agnes-ai.com/v1/chat/completions",validateUrl:"https://apihub.agnes-ai.com/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://apihub.agnes-ai.com/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-2.5-pro-beta",name:"Agnes 2.5 Pro Beta"},{id:"agnes-3.0-flash",name:"Agnes 3.0 Flash"},{id:"agnes-image-2.0-flash",name:"Agnes Image 2.0 Flash",params:["size"],kind:"image"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Coding (Intl)",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://www.alibabacloud.com/product/coding",notice:{apiKeyUrl:"https://www.alibabacloud.com/product/coding"}},category:"apikey",transport:{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba Coding (CN)",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alims-intl",priority:11,alias:"alims-intl",display:{name:"Alibaba Studio (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://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alitp-intl",priority:11,alias:"alitp-intl",display:{name:"Alibaba Token Plan (Intl)",icon:"cloud",color:"#FF6A00",textIcon:"ATP",website:"https://docs.modelstudio.console.alibabacloud.com/zh/model-studio/what-is-model-studio",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview"},{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"}]},{id:"alitp-cn",priority:11,alias:"alitp-cn",display:{name:"Alibaba Token Plan (CN)",icon:"cloud",color:"#FF6A00",textIcon:"ATP",website:"https://bailian.console.aliyun.com/cn-beijing/subscription/overview",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview"},{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"}]},{id:"amd",priority:20,hasFree:!0,alias:"amd",display:{name:"AMD Token Factory",icon:"developer_board",color:"#ED1C24",textIcon:"AMD",website:"https://developer.amd.com.cn/radeon/tokenfactory",notice:{text:"Free shared endpoints (experimental) — 30 RPM per key, 8 concurrent.",apiKeyUrl:"https://developer.amd.com.cn/radeon/modelapis"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://developer.amd.com.cn/radeon/api/v1/chat/completions",validateUrl:"https://developer.amd.com.cn/radeon/api/v1/models"},models:[{id:"DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"DeepSeek-V4-Flash-Vision-Exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"Qwen3.8-Flash-Next",name:"Qwen3.8 Flash Next"},{id:"MiniCPM5-2B",name:"MiniCPM5 2B"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"anthropic-version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],serviceKinds:["llm","imageToText"]},h,{id:"api-airforce",alias:"af",aliases:["airforce"],uiAlias:"af",display:{name:"API.airforce",icon:"flight",color:"#0EA5E9",textIcon:"AF",website:"https://api.airforce",notice:{apiKeyUrl:"https://api.airforce"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.airforce/v1/chat/completions",validateUrl:"https://api.airforce/v1/models",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"anthropic/claude-3.7-sonnet",name:"Claude 3.7 Sonnet (Free)",contextLength:2e5},{id:"moonshot/kimi-k2.6",name:"Kimi K2.6 (Free)",contextLength:262144},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash (Free)",contextLength:1048576}]},{id:"apinex",alias:"apinex",display:{name:"APInex",icon:"bolt",color:"#C9A227",textIcon:"AX",website:"https://apinex.bond/",notice:{text:"Prepaid USD-credit gateway with gamified rewards (XP/airdrop). free/* models require a DAILY check-in at the airdrop page; paid models bill a prepaid balance (402 otherwise). Third-party reseller — treat as untrusted for sensitive traffic.",apiKeyUrl:"https://apinex.bond/register",inviteCode:"SLEWP68C"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.apinex.bond/v1/chat/completions",validateUrl:"https://api.apinex.bond/v1/models"},serviceKinds:["llm"],hasFree:!0,models:[{id:"claude-fable-5.1",name:"Claude Fable 5.1"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5.5",name:"Claude Sonnet 5.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-luna",name:"GPT-6 Luna"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol"},{id:"grok-4.7",name:"Grok 4.7"},{id:"kimi-k3",name:"Kimi K3"},{id:"free/claude-opus-4.6",name:"Claude Opus 4.6 (Free)"},{id:"free/claude-sonnet-4.6",name:"Claude Sonnet 4.6 (Free)"},{id:"free/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731 (Free)"},{id:"free/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813 (Free)"},{id:"free/deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash (Free)"},{id:"free/gemini-3.1-pro",name:"Gemini 3.1 Pro (Free)"},{id:"free/gemini-3.8-flash",name:"Gemini 3.8 Flash (Free)"},{id:"free/glm-5.3-flash",name:"GLM-5.3 Flash (Free)"},{id:"free/gpt-6-luna",name:"GPT-6 Luna (Free)"},{id:"free/hy4",name:"HY4 (Free)"},{id:"free/kimi-k2.8",name:"Kimi K2.8 (Free)"},{id:"free/kimi-k3",name:"Kimi K3 (Free)"},{id:"free/mimo-v2.6-flash",name:"MiMo V2.6 Flash (Free)"},{id:"free/mimo-v2.6-pro",name:"MiMo V2.6 Pro (Free)"},{id:"free/minimax-m3",name:"MiniMax M3 (Free)"},{id:"free/minimax-m3.1",name:"MiniMax M3.1 (Free)"},{id:"free/muse-spark-1.3",name:"Muse Spark 1.3 (Free)"},{id:"free/qwen-3.8-max",name:"Qwen 3.8 Max (Free)"}]},{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"atria",alias:"atria",aliases:["atria-asi"],uiAlias:"atria",display:{name:"Atria Dawn",icon:"flare",color:"#C2410C",textIcon:"AD",website:"https://atria-asi.ai",notice:{apiKeyUrl:"https://api.atria-asi.ai/console"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.atria-asi.ai/v1/chat/completions",validateUrl:"https://api.atria-asi.ai/v1/models"},models:[{id:"Atria-Dawn-Preview",name:"Atria Dawn Preview"}],passthroughModels:!0},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",headers:{}}},{id:"bai",alias:"bai",aliases:["b.ai","b-ai","bai-llm"],display:{name:"B.AI",icon:"auto_awesome",color:"#3B82F6",textIcon:"B.AI",website:"https://b.ai",notice:{apiKeyUrl:"https://chat.b.ai"}},category:"apikey",transport:{baseUrl:"https://api.b.ai/v1/chat/completions",validateUrl:"https://api.b.ai/v1/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",vision:!0,contextWindow:1e6,maxOutput:384e3},{id:"deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:131072,maxOutput:65536},{id:"deepseek-r1-0528",name:"DeepSeek R1 0528",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-flash",name:"Qwen3.8-Flash",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.8-27b",name:"Qwen3.8-27B",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-max",name:"Qwen3.8-Max",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.7-max",name:"Qwen3.7-Max",contextWindow:1e6,maxOutput:65536,reasoning:!0},{id:"qwen3.6-27b",name:"Qwen3.6-27B",contextWindow:131072,maxOutput:65536},{id:"gpt-5.5",name:"GPT-5.5",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4",name:"GPT-5.4",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5",name:"GPT-5",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5-mini",name:"GPT-5 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5-nano",name:"GPT-5 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.2",name:"GPT-5.2",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"grok-4.6",name:"Grok 4.6",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"grok-4.5",name:"Grok 4.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3-flash",name:"Gemini 3 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"mimo-v2.5",name:"MiMo V2.5",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",contextWindow:131072,maxOutput:16384},{id:"glm-5.3",name:"GLM-5.3",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.2",name:"GLM-5.2",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.1",name:"GLM-5.1",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"minimax-m3",name:"MiniMax M3",contextWindow:1048576,maxOutput:65536},{id:"minimax-m2.7",name:"MiniMax M2.7",contextWindow:1048576,maxOutput:65536},{id:"hy3",name:"Hy3",contextWindow:131072,maxOutput:65536}]},{id:"baidu",alias:"qianfan",aliases:["qianfan","ernie","baidu-qianfan"],uiAlias:"qianfan",category:"apikey",authType:"apikey",authModes:["apikey"],display:{name:"Baidu Qianfan",icon:"search",color:"#2932E1",textIcon:"BD",website:"https://cloud.baidu.com/product/qianfan.html",notice:{apiKeyUrl:"https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application"}},transport:{baseUrl:"https://qianfan.baidubce.com/v2/chat/completions",validateUrl:"https://qianfan.baidubce.com/v2/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextLength:1048576},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextLength:1048576},{id:"glm-5.2",name:"GLM 5.2",contextLength:512e3},{id:"glm-5.1",name:"GLM 5.1",contextLength:198e3},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"qwen3.5-397b-a17b",name:"Qwen 3.5 397B A17B",contextLength:262144},{id:"qwen3.5-27b",name:"Qwen 3.5 27B",contextLength:262144}]},{id:"bazaarlink",alias:"bzl",aliases:["bazaar-link"],uiAlias:"bzl",category:"freeTier",authType:"apikey",authModes:["apikey"],display:{name:"Bazaarlink",icon:"storefront",color:"#DC2626",textIcon:"BZ",website:"https://bazaarlink.ai",notice:{apiKeyUrl:"https://bazaarlink.ai"}},transport:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",validateUrl:"https://bazaarlink.ai/api/v1/models"},models:[{id:"auto:free",name:"Auto Free (Zero Cost)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",contextLength:1e6},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:1e6},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5",name:"GPT-5.5",contextLength:105e4},{id:"gpt-5.4",name:"GPT-5.4",contextLength:105e4},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextLength:4e5},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",contextLength:4e5},{id:"grok-4.3",name:"Grok 4.3",contextLength:1e6},{id:"grok-4.20",name:"Grok 4.20",contextLength:2e6},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",contextLength:1048576},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",contextLength:1048576},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"kimi-k2.5",name:"Kimi K2.5",contextLength:262144},{id:"glm-5.1",name:"GLM 5.1",contextLength:204800},{id:"glm-5",name:"GLM 5",contextLength:204800},{id:"mimo-v2.5-pro",name:"MiMo-V2.5-Pro",contextLength:105e4},{id:"mimo-v2.5",name:"MiMo-V2.5",contextLength:105e4},{id:"minimax-m3",name:"MiniMax M3",contextLength:1048576},{id:"minimax-m2.7",name:"MiniMax M2.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",contextLength:1e6},{id:"nemotron-3-super-120b-a12b",name:"Nemotron 3 Super",contextLength:1e6}]},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"bluesminds",alias:"bm",aliases:["blue-sminds"],uiAlias:"bm",hidden:!0,display:{name:"BluesMinds",icon:"psychology",color:"#2563EB",textIcon:"BM",website:"https://bluesminds.com",notice:{apiKeyUrl:"https://bluesminds.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.bluesminds.com/v1/chat/completions",validateUrl:"https://api.bluesminds.com/v1/models"},models:[{id:"gpt-4.1",name:"GPT-4.1",contextLength:1048576},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",contextLength:1048576},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",contextLength:1048576},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",contextLength:1048576},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash (Exp)",contextLength:1048576},{id:"qwen-turbo",name:"Qwen Turbo",contextLength:1e6},{id:"kimi-k2",name:"Kimi K2",contextLength:262144},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",contextLength:262144},{id:"glm-4.7",name:"GLM 4.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (VIP)",contextLength:2e5},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (VIP)",contextLength:1048576}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.280 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"600"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}},usage:{oauthUrl:"https://api.anthropic.com/api/oauth/usage",orgUrl:"https://api.anthropic.com/v1/organizations/{org_id}/usage",settingsUrl:"https://api.anthropic.com/v1/settings",profileUrl:"https://api.anthropic.com/api/oauth/profile",resetUrl:"https://api.anthropic.com/api/organizations/{org_id}/reset_rate_limits"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5-1",name:"Claude Fable 5.1"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},category:"oauth",transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",forceStream:!0,headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"}},{id:"clinepass",priority:85,alias:"clinepass",uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"cloudflare-ai",priority:60,hasFree:!0,alias:"cloudflare-ai",aliases:["cf"],uiAlias:"cf",display:{name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"}},category:"freeTier",authType:"apikey",authModes:["apikey"],hasProviderSpecificData:!0,transport:{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com",webUrl:"https://www.workbuddy.cn/app"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",quirks:{sanitizeToolSchema:!0},headers:{"User-Agent":"CLI/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:.29,nightFree:{from:23,to:8}},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.3-flashx",name:"GLM-5.3-FlashX",rateMultiplier:.14},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"step-5-preview",name:"Step-5-Preview",rateMultiplier:.43,subPriority:!0},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro",rateMultiplier:.51}],oauth:{baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codebuddy-intl",alias:"cbai",uiAlias:"cbai",hidden:!1,priority:90,display:{name:"CodeBuddy",icon:"smart_toy",color:"#006EFF",website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai",webUrl:"https://www.codebuddy.ai/agents"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.codebuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"IDE/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"IDE","X-IDE-Name":"IDE","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.codebuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:0},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"gpt-6-astra",name:"GPT 6.0 Astra",rateMultiplier:6.67},{id:"gpt-6-luna",name:"GPT-6-Luna"},{id:"gpt-6-sol",name:"GPT-6-Sol"},{id:"gpt-5.6-sol",name:"GPT-5.6-Sol",rateMultiplier:3.47},{id:"gpt-5.6-terra",name:"GPT-5.6-Terra",rateMultiplier:1.39},{id:"gpt-5.6-luna",name:"GPT-5.6-Luna",rateMultiplier:.14},{id:"gpt-5.5",name:"GPT-5.5",rateMultiplier:3.31},{id:"gpt-5.4",name:"GPT-5.4",rateMultiplier:1.65},{id:"gpt-5.3-codex",name:"GPT-5.3-Codex",rateMultiplier:1.25},{id:"gpt-6.1-sol",name:"GPT-6.1-Sol"},{id:"claude-opus-5.5",name:"Claude-Opus-5.5",rateMultiplier:2.17,paidTier:!0},{id:"claude-sonnet-5.5",name:"Claude-Sonnet-5.5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-5",name:"Claude-Opus-5",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-5",name:"Claude-Sonnet-5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-4.8",name:"Claude-Opus-4.8",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.7",name:"Claude-Opus-4.7",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.6",name:"Claude-Opus-4.6",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-4.6",name:"Claude-Sonnet-4.6",rateMultiplier:1.33,paidTier:!0},{id:"gemini-3.8-flash",name:"Gemini-3.8-Flash"},{id:"grok-4.7",name:"Grok-4.7",rateMultiplier:1.9},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"gemini-3.5-flash",name:"Gemini-3.5-Flash",rateMultiplier:.99},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11,promoFreeUntil:"2026-11-01"}],oauth:{baseUrl:"https://www.codebuddy.ai",stateUrl:"https://www.codebuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.codebuddy.ai/v2/plugin/auth/token/refresh",userAgent:"IDE/2.63.2 CodeBuddy/2.63.2",platform:"ide",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},k,{id:"cohere",priority:90,alias:"cohere",display:{name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},category:"apikey",serviceKinds:["llm","rerank"],rerankConfig:{baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v4.0-pro",name:"Rerank v4.0 Pro"},{id:"rerank-v3.5",name:"Rerank v3.5"}]},transport:{baseUrl:"https://api.cohere.ai/v1/chat/completions",validateUrl:"https://api.cohere.ai/v1/models"},models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},{id:"comfyui",priority:120,alias:"comfyui",display:{name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:8188"}},{id:"commandcode",priority:100,alias:"commandcode",aliases:["cmc"],uiAlias:"cmc",display:{name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",features:{usage:!0,usageApikey:!0},usage:{creditsUrl:"https://api.commandcode.ai/alpha/billing/credits",subscriptionsUrl:"https://api.commandcode.ai/alpha/billing/subscriptions"},transport:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek/deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (exp)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"google/gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"meta/muse-spark-1.1",name:"Muse Spark 1.1"},{id:"meta/muse-spark-1.2",name:"Muse Spark 1.2"},{id:"meta/muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor"},{id:"minimax/minimax-m2.7-free",name:"MiniMax M2.7 (Free)"},{id:"minimax/minimax-m3-free",name:"MiniMax M3 (Free)"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.7-Code-Highspeed",name:"Kimi K2.7 Code HighSpeed"},{id:"moonshotai/Kimi-K3",name:"Kimi K3"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"poolside/laguna-s-2.1-free",name:"Laguna S 2.1"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"Qwen/Qwen3.7-Flash",name:"Qwen 3.7 Flash"},{id:"Qwen/Qwen3.7-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B"},{id:"Qwen/Qwen3.8-Flash",name:"Qwen 3.8 Flash"},{id:"Qwen/Qwen3.8-Max",name:"Qwen 3.8 Max"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-paid",name:"Tencent Hy3"},{id:"tencent/hy4-preview",name:"Tencent Hy4 Preview"},{id:"thinkingmachines/inkling",name:"Inkling"},{id:"thinkingmachines/inkling-small",name:"Inkling Small"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xai/grok-4.5",name:"Grok 4.5"},{id:"xai/grok-4.6",name:"Grok 4.6"},{id:"z-ai/glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"zai-org/GLM-5",name:"GLM-5"},{id:"zai-org/GLM-5.1",name:"GLM-5.1"},{id:"zai-org/GLM-5.2",name:"GLM-5.2"},{id:"zai-org/GLM-5.2-Fast",name:"GLM-5.2 Fast"},{id:"zai-org/GLM-5.3",name:"GLM-5.3"}]},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.12.17",usage:{url:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetCurrentPeriodUsage",planInfoUrl:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetPlanInfo",authUsageUrl:"https://api2.cursor.sh/auth/usage"}},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/agent.v1.AgentService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.12.17",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},features:{usage:!0}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{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"}},l,{id:"devin-cli",alias:"dv",aliases:["devin"],uiAlias:"dv",hidden:!0,display:{name:"Devin CLI",icon:"smart_toy",color:"#6366F1",textIcon:"DV",website:"https://devin.ai",notice:{signupUrl:"https://cli.devin.ai",text:"Install: `curl -fsSL https://cli.devin.ai/install.sh | bash` (macOS: `brew install --cask devin-cli`, Windows PowerShell: `irm https://static.devin.ai/cli/setup.ps1 | iex`). Then run `devin auth login`. No API key needed."}},category:"free",authType:"none",noAuth:!0,authModes:["none"],transport:{baseUrl:"devin://acp/stdio",format:"openai"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max",contextLength:2e5},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High",contextLength:2e5},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium",contextLength:2e5},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low",contextLength:2e5},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M",contextLength:1e6},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking",contextLength:2e5},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:2e5},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking",contextLength:2e5},{id:"claude-opus-4.6",name:"Claude Opus 4.6",contextLength:2e5},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh",contextLength:2e5},{id:"gpt-5.5-high",name:"GPT-5.5 High",contextLength:2e5},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium",contextLength:2e5},{id:"gpt-5.5-low",name:"GPT-5.5 Low",contextLength:2e5},{id:"gpt-5.4-high",name:"GPT-5.4 High",contextLength:2e5},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium",contextLength:2e5},{id:"gpt-5.4-low",name:"GPT-5.4 Low",contextLength:2e5},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High",contextLength:2e5},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium",contextLength:2e5},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low",contextLength:2e5},{id:"gpt-5.2-high",name:"GPT-5.2 High",contextLength:2e5},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium",contextLength:2e5},{id:"gpt-5.2-low",name:"GPT-5.2 Low",contextLength:2e5},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",contextLength:1e6},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",contextLength:1e6},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High",contextLength:1e6},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextLength:1e6},{id:"deepseek-v4",name:"DeepSeek V4",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"glm-5.1",name:"GLM-5.1",contextLength:204800}]},{id:"dots",alias:"dots",display:{name:"Dots",icon:"hub",color:"#FF2442",textIcon:"DT",website:"https://dots.ai",notice:{apiKeyUrl:"https://dots.ai/platform/apikeys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://note3-prev-api.askdiandian.com/v1/chat/completions",auth:{combined:!0,header:"api-key",scheme:"raw"}},models:[{id:"dots3-note-prev",name:"Dots3 Note Prev"}]},{id:"drex",alias:"drex",category:"apikey",display:{name:"Drex",icon:"psychology",color:"#131313",textIcon:"DX",website:"https://drex.nace.ai",notice:{apiKeyUrl:"https://drex.nace.ai/invite/tnzgt5vr"}},models:[{id:"drex-v1.0",name:"Drex v1.0",kind:"systemone"},{id:"drex-v1.1",name:"Drex v1.1",kind:"systemone"},{id:"drex-v1.5",name:"Drex v1.5",kind:"systemone"},{id:"drex-latest",name:"Drex Latest",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://drex.nace.ai/v1/systemone"}},{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts","stt"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},sttConfig:{baseUrl:"https://api.elevenlabs.io/v1/speech-to-text",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"scribe_v1",name:"Scribe v1"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run"}},{id:"featherless",priority:65,alias:"featherless",aliases:["fl"],uiAlias:"fl",display:{name:"Featherless",icon:"flutter_dash",color:"#111827",textIcon:"FL",website:"https://featherless.ai",notice:{apiKeyUrl:"https://featherless.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.featherless.ai/v1/chat/completions",validateUrl:"https://api.featherless.ai/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"}]},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{id:"fish-audio",alias:"fish",display:{name:"Fish Audio",icon:"record_voice_over",color:"#1E9BF0",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/app/api-keys/"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fish-audio",models:[{id:"s2.1-pro-free",name:"S2.1 Pro Free"},{id:"s2.1-pro",name:"S2.1 Pro"},{id:"s2-pro",name:"S2 Pro"},{id:"s1",name:"S1"}]}},{id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",strictProxy:!0,cliVersion:"0.34.0",apiClient:"google-genai-sdk/1.41.0 gl-node/v22.19.0",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"],refresh:{encoding:"form"}},features:{usage:!0}},{id:"gemini",priority:50,hasFree:!0,alias:"gemini",display:{name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"}},category:"freeTier",authType:"apikey",authModes:["apikey"],mediaPriority:1,transport:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{id:"gemini-4-argon",name:"Gemini 4 Argon"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",kind:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",kind:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",kind:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",kind:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",params:[],kind:"image"},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",params:[],kind:"image"},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",params:[],kind:"image"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-native-audio-preview-09-17",name:"Gemini Live Transcription (Realtime)",params:["language","prompt","system_instruction","setup_timeout_ms","turn_timeout_ms"],kind:"stt",transport:"gemini-live"},{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",messagesUrl:"https://api.githubcopilot.com/v1/messages",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},copilot:{vscodeVersion:"1.110.0",chatVersion:"0.38.0",userAgent:"GitHubCopilotChat/0.38.0",apiVersion:"2025-04-01"},usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.githubcopilot.com/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},m,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},{id:"grok-cli",priority:275,alias:"gcli",aliases:["grok-build","gb"],uiAlias:"gcli",display:{name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",website:"https://x.ai",notice:{text:"Sign in with your xAI / Grok account via device code. Uses Grok Build subscription credits (cli-chat-proxy.grok.com).",signupUrl:"https://grok.com/supergrok"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,thinkingConfig:{options:["low","medium","high","xhigh"],defaultMode:"high"},transport:{baseUrl:`${o}/responses`,format:"openai-responses",forceStream:!0,modelsUrl:`${o}/models`,userUrl:`${o}/user`,billingUrl:`${o}/billing`,clientVersion:n,clientIdentifier:p,tokenAuth:"xai-grok-cli",headers:{"User-Agent":q,"x-grok-client-identifier":p,"x-grok-client-version":n},usage:{url:`${o}/billing?format=credits`,userUrl:`${o}/user?include=subscription`},retry:{429:{attempts:2,delayMs:2e3},502:{attempts:2,delayMs:1500},503:{attempts:2,delayMs:1500}}},models:[{id:"grok-build",name:"Grok Build",contextLength:5e5,maxOutputTokens:64e3},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.5-high",name:"Grok 4.5 (High)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-medium",name:"Grok 4.5 (Medium)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-low",name:"Grok 4.5 (Low)",upstreamModelId:"grok-4.5"}],features:{usage:!0},oauth:{clientId:"b1a00492-073a-47ea-816f-4c329264a828",deviceCodeUrl:"https://auth.x.ai/oauth2/device/code",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",scope:"openid profile email offline_access grok-cli:access api:access conversations:read conversations:write",referrer:"grok-build",refreshLeadMs:3e5}},{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",transport:{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},models:[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],passthroughModels:!0},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingface",priority:70,hasFree:!0,alias:"huggingface",aliases:["hf"],uiAlias:"hf",display:{name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},{id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"},refreshLeadMs:864e5}},{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding","rerank"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]},rerankConfig:{baseUrl:"https://api.jina.ai/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"jina-reranker-v3.5",name:"Jina Reranker v3.5"},{id:"jina-reranker-v2-base-multilingual",name:"Jina Reranker v2 Multilingual"}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"keenable",alias:"keenable",display:{name:"Keenable",icon:"travel_explore",color:"#FF7E38",textIcon:"KE",website:"https://www.keenable.ai",notice:{apiKeyUrl:"https://app.keenable.ai/console"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.keenable.ai/v1/search",method:"POST",authType:"apikey",authHeader:"x-api-key",searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.keenable.ai/v1/fetch",method:"GET",authType:"apikey",authHeader:"x-api-key",formats:["markdown","text"],maxCharacters:5e4,timeoutMs:15e3}},{id:"kilo-gateway",alias:"kgw",aliases:["kilo-gateway","kilogateway"],uiAlias:"kgw",category:"freeTier",display:{name:"Kilo Gateway",icon:"login",color:"#8B5CF6",textIcon:"KG",website:"https://kilo.ai",notice:{apiKeyUrl:"https://kilo.ai/dashboard?tab=apiKeys"}},authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.kilo.ai/api/gateway/chat/completions",validateUrl:"https://api.kilo.ai/api/gateway/models"},models:[{id:"kilo-auto/free",name:"Kilo Auto Free",contextLength:256e3},{id:"nvidia/nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B (Free)",contextLength:262144},{id:"nvidia/nemotron-3-ultra-550b-a55b:free",name:"Nemotron 3 Ultra 550B (Free)",contextLength:1e6},{id:"kwaipilot/kat-coder-pro-v2.5:free",name:"Kat Coder Pro v2.5 (Free)",contextLength:256e3},{id:"kilo-auto/frontier",name:"Kilo Auto Frontier",contextLength:1e6},{id:"kilo-auto/balanced",name:"Kilo Auto Balanced",contextLength:1e6}]},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"freeTier",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",headers:{"User-Agent":"kimchi/0.1.50"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"minimax-m3",name:"MiniMax-M3"},{id:"kimi-k2.7",name:"Kimi-K2.7"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],serviceKinds:["llm","imageToText"],oauth:{webAppUrl:"https://app.kimchi.dev",validationUrl:"https://api.cast.ai/v1/llm/openai/supported-providers",userInfoUrl:"https://app.kimchi.dev/api/v1/me",modelsUrl:"https://llm.kimchi.dev/v1/models/metadata?include_in_cli=true"},passthroughModels:!0},{id:"kimi",priority:170,alias:"kimi",aliases:["kimi-coding","kmc"],display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",signupUrl:"https://www.kimi.com/code"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k3",name:"Kimi K3"},{id:"k3",name:"Kimi K3 (Code)"},{id:"kimi-for-coding",name:"Kimi for Coding"},{id:"kimi-for-coding-highspeed",name:"Kimi for Coding Highspeed"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k2.7-code-highspeed",name:"Kimi K2.7 Code Highspeed"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k3",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.kimi.ai/docs/pricing/chat"},oauth:{clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5,authorizeDeviceUrl:"https://www.kimi.com/code/authorize_device"},features:{usage:!0,usageApikey:!0}},{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev",usage:{cwHost:"https://codewhisperer.us-east-1.amazonaws.com",qHost:"https://q.us-east-1.amazonaws.com",limitsPath:"/getUsageLimits"}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-opus-5.5-thinking",name:"Claude Opus 5.5 (Thinking)"},{id:"claude-opus-5.5-agentic",name:"Claude Opus 5.5 (Agentic)"},{id:"claude-opus-5.5-thinking-agentic",name:"Claude Opus 5.5 (Thinking + Agentic)"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5-thinking",name:"Claude Opus 5 (Thinking)"},{id:"claude-opus-5-agentic",name:"Claude Opus 5 (Agentic)"},{id:"claude-opus-5-thinking-agentic",name:"Claude Opus 5 (Thinking + Agentic)"},{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-thinking",name:"Claude Opus 4.8 (Thinking)"},{id:"claude-opus-4.8-agentic",name:"Claude Opus 4.8 (Agentic)"},{id:"claude-opus-4.8-thinking-agentic",name:"Claude Opus 4.8 (Thinking + Agentic)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-opus-4.7-thinking",name:"Claude Opus 4.7 (Thinking)"},{id:"claude-opus-4.7-agentic",name:"Claude Opus 4.7 (Agentic)"},{id:"claude-opus-4.7-thinking-agentic",name:"Claude Opus 4.7 (Thinking + Agentic)"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 (Thinking)"},{id:"claude-opus-4.5-agentic",name:"Claude Opus 4.5 (Agentic)"},{id:"claude-opus-4.5-thinking-agentic",name:"Claude Opus 4.5 (Thinking + Agentic)"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking",name:"Claude Sonnet 5 (Thinking)"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)"},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)"},{id:"gpt-5.6-sol-thinking",name:"GPT 5.6 Sol (Thinking)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking",name:"GPT 5.6 Terra (Thinking)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking",name:"GPT 5.6 Luna (Thinking)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)"},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)"},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)"},{id:"gpt-5.6-sol-agentic",name:"GPT 5.6 Sol (Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-agentic",name:"GPT 5.6 Terra (Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-agentic",name:"GPT 5.6 Luna (Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)"},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)"},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)"},{id:"gpt-5.6-sol-thinking-agentic",name:"GPT 5.6 Sol (Thinking + Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking-agentic",name:"GPT 5.6 Terra (Thinking + Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking-agentic",name:"GPT 5.6 Luna (Thinking + Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"llm7",alias:"llm7",aliases:["llm-7"],uiAlias:"llm7",display:{name:"LLM7",icon:"pool",color:"#7C3AED",textIcon:"L7",website:"https://llm7.io",notice:{apiKeyUrl:"https://llm7.io"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.llm7.io/v1/chat/completions",validateUrl:"https://api.llm7.io/v1/models"},models:[{id:"gpt-5.5",name:"GPT-5.5 (LLM7)",contextLength:105e4},{id:"claude-opus-5",name:"Claude Opus 5 (LLM7)",contextLength:1e6},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (LLM7)",contextLength:1e6},{id:"grok-4.5",name:"Grok 4.5 (LLM7)",contextLength:5e5},{id:"kimi-k3",name:"Kimi K3 (LLM7)",contextLength:1e6}],passthroughModels:!0},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"longcat-intl",alias:"longcat-intl",uiAlias:"longcat-intl",display:{name:"LongCat Intl",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.ai",notice:{apiKeyUrl:"https://longcat.ai/platform/product"}},category:"apikey",transport:{baseUrl:"https://api.longcat.ai/openai/v1/chat/completions",validateUrl:"https://api.longcat.ai/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"longcat",alias:"longcat",display:{name:"LongCat",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.chat",notice:{apiKeyUrl:"https://longcat.chat/platform/product?inviteCode=ULW84AMZ"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://api.longcat.chat/openai/v1/chat/completions",validateUrl:"https://api.longcat.chat/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"mimo-desktop",priority:22,alias:"mimo-desktop",aliases:["xmd"],uiAlias:"xmd",display:{name:"MiMo Desktop",icon:"smart_toy",color:"#FF6900",textIcon:"XMD",website:"https://mimo.xiaomimimo.com",notice:{text:"Account-session models. Requires MiMo Desktop to be installed and signed in on this machine — the session cookie is read from it locally and never stored here. No API key is needed for these models.",signupUrl:"https://mimo.xiaomimimo.com/desktop/invite/"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,serviceKinds:["llm"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",rateMultiplier:1,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",rateMultiplier:.4,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed",supportedFormats:["openai"],requiresSession:!0}],features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"mimo-free",hidden:!1,priority:50,hasFree:!0,alias:"mimo-free",uiAlias:"mimo-free",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF",deprecationNotice:"MiMo free API service has ended. This provider is no longer free. It is hidden from the usage topology by default — enable it via the toggle if you still want it shown."},topologyHiddenByDefault:!0,category:"free",noAuth:!0,community:!0,transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}],modelsFetcher:{url:"https://models.dev/api.json",type:"mimo-free"},passthroughModels:!0},{id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash",targetFormat:"claude"},{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},{id:"minimax-code-global",priority:84,alias:"minimax-code-global",aliases:["mmg","mmcode"],uiAlias:"mmg",display:{name:"MiniMax Code (Global)",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.io"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.io/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.io/oauth2/device/code",tokenUrl:"https://account.minimax.io/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash"},{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash (Preview)"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax-code",priority:82,alias:"mcode",aliases:["mm","mcode"],uiAlias:"mcode",display:{name:"MiniMax Code",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.cn"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.cn/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.cn/oauth2/device/code",tokenUrl:"https://account.minimax.cn/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash"},{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash (Preview)"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax-free",priority:57,alias:"minimax-free",aliases:["mmcf"],uiAlias:"minimax-free",display:{name:"MiniMax Code Free",icon:"bolt",color:"#FF4D00",textIcon:"MM",website:"https://agent.minimax.cn"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/minimax/v1/messages",format:"claude",noAuth:!0},models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash"},{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash (Preview)"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"}]},{id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash",targetFormat:"claude"},{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"mmf",hidden:!0,priority:200,display:{name:"MMF",icon:"hub",color:"#6366F1",textIcon:"MF"},category:"apikey",transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"morph",alias:"morph",aliases:["morphllm"],uiAlias:"morph",display:{name:"Morph",icon:"change_history",color:"#14B8A6",textIcon:"MP",website:"https://morphllm.com",notice:{apiKeyUrl:"https://morphllm.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.morphllm.com/v1/chat/completions",validateUrl:"https://api.morphllm.com/v1/models"},models:[{id:"morph-v3-large",name:"Morph v3 Large"},{id:"morph-v3-fast",name:"Morph v3 Fast"},{id:"morph-qwen35-397b",name:"Qwen 3.5 397B (Morph)",contextLength:262144},{id:"morph-minimax27-230b",name:"MiniMax M2.7 (Morph)",contextLength:200704},{id:"morph-qwen36-27b",name:"Qwen 3.6 27B (Morph)",contextLength:262144},{id:"morph-dsv4flash",name:"DeepSeek V4 Flash (Morph)",contextLength:1048576}]},{id:"muse",priority:120,alias:"muse",aliases:["muse-ai","meta-model-api","muse-code","muse-subscription"],uiAlias:"muse",display:{name:"Muse (Meta Model API)",icon:"auto_awesome",color:"#0866FF",textIcon:"MU",website:"https://muse.ai",notice:{text:"Sign in with your Meta account (Muse Code subscription) or paste a Model API key from dev.meta.ai. Subscription keys are minted per account; Meta may train on contributor-tier data.",apiKeyUrl:"https://dev.meta.ai",signupUrl:"https://muse.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.meta.ai/v1/chat/completions",validateUrl:"https://api.meta.ai/v1/models",modelsUrl:"https://api.meta.ai/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.meta.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},{format:"openai-responses",baseUrl:"https://api.meta.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}}],models:[{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.1",name:"Muse Spark 1.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],passthroughModels:!0,oauth:{clientId:"1031625952748946",deviceCodeUrl:"https://auth.meta.com/oidc/device/authorization/",tokenUrl:"https://auth.meta.com/oidc/device/token/"}},{id:"nanobanana",priority:80,hasFree:!0,alias:"nanobanana",aliases:["nb"],uiAlias:"nb",display:{name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"}},category:"apikey",transport:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama-search",alias:"ollama-search",display:{name:"Ollama Search",icon:"cloud",color:"#ffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Web search via Ollama Cloud subscription. Reuses the API key from the Ollama (chat) provider.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch"],credentialFallback:"ollama",searchConfig:{baseUrl:"https://ollama.com/api/web_search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"ollama",priority:30,hasFree:!0,alias:"ollama",display:{name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.5-pro",name:"GPT-5.5 Pro"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",kind:"embedding"},{id:"tts-1",name:"TTS-1",kind:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"whisper-1",name:"Whisper 1",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-image-2.5",name:"GPT Image 2.5",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax, DeepSeek, Grok, GPT and more.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-luna",name:"GPT 6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"longcat-2.0",name:"LongCat 2.0",supportedFormats:["openai"]},{id:"longcat-2.5-preview-free",name:"LongCat 2.5 Preview (Free)",supportedFormats:["openai"]},{id:"space-bunny-free",name:"Space Bunny (Free)",supportedFormats:["openai","claude"]},{id:"space-bunny",name:"Space Bunny",supportedFormats:["openai","claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-flash",name:"DeepSeek V4.1 Flash (alias id)",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",supportedFormats:["openai","claude","openai-responses"]},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",supportedFormats:["openai"]},{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",supportedFormats:["openai"]},{id:"mimo-v2.5",name:"MiMo V2.5",supportedFormats:["openai"]},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",supportedFormats:["openai"]},{id:"mimo-v2-pro",name:"MiMo V2 Pro",supportedFormats:["openai"]},{id:"mimo-v2-omni",name:"MiMo V2 Omni",supportedFormats:["openai"]},{id:"hy4-preview",name:"Hy4 Preview",supportedFormats:["openai"]},{id:"hy3",name:"Hy3",supportedFormats:["openai"]},{id:"hy3-preview",name:"Hy3 Preview",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai","claude"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["openai","claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["openai","claude"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"omen-alpha",name:"Omen Alpha"}]},{id:"opencode-zen",priority:205,alias:"ocz",aliases:["opencode-zen"],uiAlias:"ocz",display:{name:"OpenCode Zen",icon:"terminal",color:"#E87040",textIcon:"OZ",website:"https://opencode.ai/auth",notice:{text:"OpenCode Zen PAYG: pay-as-you-go, key from https://opencode.ai/auth. Same models as Zen: paid + free tiers on the fast lane.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{baseUrl:"https://opencode.ai/zen/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/v1/usage"}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"claude-fable-5",name:"Claude Fable 5",supportedFormats:["claude"]},{id:"claude-fable-5-1",name:"Claude Fable 5.1",supportedFormats:["claude"]},{id:"claude-opus-5-5",name:"Claude Opus 5.5",supportedFormats:["claude"]},{id:"claude-opus-5",name:"Claude Opus 5",supportedFormats:["claude"]},{id:"claude-opus-4-8",name:"Claude Opus 4.8",supportedFormats:["claude"]},{id:"claude-opus-4-7",name:"Claude Opus 4.7",supportedFormats:["claude"]},{id:"claude-opus-4-6",name:"Claude Opus 4.6",supportedFormats:["claude"]},{id:"claude-opus-4-5",name:"Claude Opus 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",supportedFormats:["claude"]},{id:"claude-sonnet-5",name:"Claude Sonnet 5",supportedFormats:["claude"]},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",supportedFormats:["claude"]},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-4",name:"Claude Sonnet 4",supportedFormats:["claude"]},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",supportedFormats:["claude"]},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",supportedFormats:["claude"]},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",supportedFormats:["openai"]},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",supportedFormats:["openai"]},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",supportedFormats:["openai"]},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",supportedFormats:["openai"]},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",supportedFormats:["openai"]},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",supportedFormats:["openai"]},{id:"gemini-3-flash",name:"Gemini 3 Flash",supportedFormats:["openai"]},{id:"gpt-6-astra",name:"GPT 6 Astra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-sol",name:"GPT 6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5",name:"GPT 5.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5-pro",name:"GPT 5.5 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4",name:"GPT 5.4",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-pro",name:"GPT 5.4 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-nano",name:"GPT 5.4 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2",name:"GPT 5.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1",name:"GPT 5.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5",name:"GPT 5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-codex",name:"GPT 5 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-nano",name:"GPT 5 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-build-0.1",name:"Grok Build 0.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision Exp",supportedFormats:["openai"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"big-pickle",name:"Big Pickle",supportedFormats:["openai"]},{id:"mistral-large-4",name:"Mistral Large 4",supportedFormats:["openai"]},{id:"union-alpha",name:"Union Alpha",supportedFormats:["claude"]},{id:"deepseek-v4-flash-free",name:"DeepSeek V4 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.5-free",name:"MiMo V2.5 Free",supportedFormats:["openai"]},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free",supportedFormats:["openai"]},{id:"ling-3.1-flash-free",name:"Ling 3.1 Flash Free",supportedFormats:["openai"]},{id:"fledge-alpha-free",name:"Fledge Alpha Free",supportedFormats:["openai"]},{id:"exo-free",name:"Exo Free",supportedFormats:["openai"]},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free",supportedFormats:["openai"]},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free",supportedFormats:["openai"]},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"opencode",priority:40,hasFree:!0,alias:"oc",uiAlias:"oc",display:{name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC"},category:"free",noAuth:!0,community:!0,topologyHiddenByDefault:!1,transport:{baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"cli"},noAuth:!0,forceStream:!0,reasoningInject:{scope:"all"},quirks:{forceAutoToolChoiceModels:["muse-spark-1.3-contributor-free"]}},models:[{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses"},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses"},{id:"big-pickle",name:"Big Pickle"},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free"},{id:"mimo-v2.5-free",name:"MiMo-V2.5 Free"},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free"},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free"},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free"},{id:"jev-1.13-free",name:"Jev 1.13 Free",kind:"systemone"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://opencode.ai/zen/v1/systemone",headers:{"x-opencode-client":"cli","User-Agent":"opencode/1.18.35"}},modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0},{id:"openrouter",priority:10,hasFree:!0,alias:"openrouter",display:{name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After 0 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"},{id:"typesafe/jev-1.13",name:"Jev 1.13 (via OpenRouter)",kind:"systemone"}],serviceKinds:["llm","embedding","tts","imageToText","systemone"],systemoneConfig:{baseUrl:"https://openrouter.ai/api/v1/systemone",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},ttsConfig:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},imageConfig:{baseUrl:"https://openrouter.ai/api/v1/images/generations",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-agent",priority:181,alias:"perplexity-agent",aliases:["pplx-agent","pplx-responses","pa"],uiAlias:"pa",display:{name:"Perplexity Agent",icon:"travel_explore",color:"#20808D",textIcon:"PA",website:"https://www.perplexity.ai",notice:{text:"Perplexity Agent API exposes GPT, Claude, Gemini, Grok, GLM, Kimi, and Sonar models through one OpenAI-compatible Responses API.",apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/v1/responses",validateUrl:"https://api.perplexity.ai/v1/models",format:"openai-responses"},models:[{id:"perplexity/sonar",name:"Perplexity Sonar"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4-8",name:"Claude Opus 4.8"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"xai/grok-4.20-reasoning",name:"Grok 4.20 Reasoning"},{id:"perplexity/glm-5.2",name:"GLM 5.2"},{id:"perplexity/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"perplexity/sonar",endpoint:"https://api.perplexity.ai/v1/responses",pricingUrl:"https://docs.perplexity.ai/docs/agent-api/models"},modelsFetcher:{url:"https://api.perplexity.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"poolside",priority:60,alias:"poolside",aliases:["ps"],uiAlias:"ps",display:{name:"Poolside",icon:"water_drop",color:"#0EA5E9",textIcon:"PS",website:"https://poolside.ai",notice:{apiKeyUrl:"https://platform.poolside.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://inference.poolside.ai/v1/chat/completions",validateUrl:"https://inference.poolside.ai/v1/models"},models:[{id:"poolside/laguna-s-2.1",name:"Laguna S 2.1"},{id:"poolside/laguna-xs-2.1",name:"Laguna XS 2.1"}]},{id:"qoder-cn",priority:31,alias:"qdc",uiAlias:"qdc",display:{name:"Qoder CN",icon:"water_drop",color:"#F43F5E",website:"https://qoder.cn",notice:{signupUrl:"https://qoder.cn"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) 来自 https://qoder.cn/account/integrations",modelsJsonUrl:"https://api.github.com/repos/techysy/10router/contents/providers/qoder-cn.json",fallbackModelsJsonUrl:"https://gitee.com/techysy/10router/raw/main/providers/qoder-cn.json",transport:{baseUrl:"https://gateway.qoder.com.cn/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.com.cn/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"q37fmodel",name:"Qwen3.7-Flash"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"gm51model",name:"GLM-5.2"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4.1-Flash 1017",promoFreeUntil:"2026-10-25T00:00:00+08:00"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.com.cn",centerBaseUrl:"https://gateway.qoder.com.cn",chatBaseUrl:"https://gateway.qoder.com.cn",deviceTokenUrl:"https://openapi.qoder.com.cn/api/v1/deviceToken/poll",refreshUrl:"https://gateway.qoder.com.cn/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.com.cn/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.com.cn/api/v2/quota/usage",loginUrl:"https://qoder.cn/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) từ https://qoder.com/account/integrations",transport:{baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"ultimate",name:"Ultimate"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4.1-Flash 1017",promoFreeUntil:"2026-10-25T00:00:00+08:00"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.sh",centerBaseUrl:"https://center.qoder.sh",chatBaseUrl:"https://api3.qoder.sh",deviceTokenUrl:"https://openapi.qoder.sh/api/v1/deviceToken/poll",refreshUrl:"https://center.qoder.sh/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.sh/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.sh/api/v2/quota/usage",loginUrl:"https://qoder.com/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"recraft",priority:70,alias:"recraft",display:{name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"recraftv3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"recraftv2",name:"Recraft V2",params:["n","size","style"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{id:"river",priority:68,alias:"river",aliases:["rv"],display:{name:"River AI",icon:"bolt",color:"#2563EB",textIcon:"RV",website:"https://river.ai",notice:{apiKeyUrl:"https://console.river.ai/keys"}},category:"apikey",transport:{baseUrl:"https://api.river.ai/v1/chat/completions",validateUrl:"https://api.river.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://api.river.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"responses",baseUrl:"https://api.river.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1048576,maxOutput:384e3},{id:"zai-org/GLM-5.3-Flash",name:"GLM 5.3 Flash",contextWindow:1048576,maxOutput:131072}],features:{usage:!0,usageApikey:!0}},{id:"runwayml",priority:80,alias:"runwayml",aliases:["runway"],uiAlias:"runway",display:{name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"gen4_image",name:"Gen-4 Image",params:["size"],kind:"image"},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",params:["size"],kind:"image"},{id:"gen4_turbo",name:"Gen-4 Turbo",params:[],kind:"video"},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",params:[],kind:"video"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1"}},{id:"sambanova",alias:"samba",aliases:["sambanova-ai"],uiAlias:"samba",hidden:!0,display:{name:"SambaNova",icon:"memory",color:"#F97316",textIcon:"SN",website:"https://sambanova.ai",notice:{apiKeyUrl:"https://cloud.sambanova.ai/apis"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",validateUrl:"https://api.sambanova.ai/v1/models"},models:[{id:"MiniMax-M2.7",name:"MiniMax M2.7",contextLength:196608}]},{id:"sdwebui",priority:110,alias:"sdwebui",display:{name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:c(41534).Ps,method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},{id:"selfhosted-embedding",priority:50,hasFree:!0,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"cloud",color:"#ffffffff",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the OpenAI base URL, e.g. http://host:8080/v1 — /embeddings is appended. The API key is not checked by local servers; any value works."}},models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"http://localhost:8080/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"selfhosted-stt",priority:50,hasFree:!0,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"cloud",color:"#ffffffff",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the full transcriptions URL, e.g. http://host:8080/v1/audio/transcriptions. The API key is not checked by local servers; any value works."}},models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"http://localhost:8080/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,hasFree:!0,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"cloud",color:"#ffffffff",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the server root, e.g. http://host:8080 — /v1/audio/speech is appended. The API key is not checked by local servers; any value works."}},models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{baseUrl:"http://localhost:8880",defaultModel:"kokoro",authType:"apikey",format:"openai-speech"}},{id:"sensenova",alias:"sensenova",display:{name:"SenseNova",icon:"blur_on",color:"#1177E4",textIcon:"SN",website:"https://www.sensenova.cn",notice:{apiKeyUrl:"https://platform.sensenova.cn/console/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://token.sensenova.cn/v1/chat/completions",validateUrl:"https://token.sensenova.cn/v1/models"},models:[{id:"sensenova-6.8-flash-lite",name:"SenseNova 6.8 Flash Lite"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"sensenova-u1.5-lite",name:"SenseNova U1.5 Lite",kind:"image",capabilities:["text2img"]},{id:"sensenova-u1-fast",name:"SenseNova U1 Fast",kind:"image",capabilities:["text2img"]}]},{id:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow-cn",priority:115,alias:"siliconflow-cn",aliases:["sfcn"],uiAlias:"sfcn",display:{name:"SiliconFlow CN",icon:"bolt",color:"#1FA34A",textIcon:"SF",website:"https://siliconflow.cn",notice:{apiKeyUrl:"https://cloud.siliconflow.cn/i/OzcMUfeM"}},category:"apikey",authType:"apikey",serviceKinds:["llm","image","video","embedding","rerank"],imageConfig:{baseUrl:"https://api.siliconflow.cn/v1/images/generations"},videoConfig:{baseUrl:"https://api.siliconflow.cn/v1/videos/generations"},embeddingConfig:{baseUrl:"https://api.siliconflow.cn/v1/embeddings"},rerankConfig:{baseUrl:"https://api.siliconflow.cn/v1/rerank"},transport:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",validateUrl:"https://api.siliconflow.cn/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"Kwai-Kolors/Kolors",name:"Kolors",params:["size"],kind:"image"},{id:"zai-org/Z-Image-Turbo",name:"Z-Image Turbo",params:["size"],kind:"image"},{id:"Qwen/Qwen-Image",name:"Qwen Image",params:["size"],kind:"image"},{id:"Wan-AI/Wan2.2-T2V-A14B",name:"Wan2.2 T2V",params:["size"],kind:"video"},{id:"Wan-AI/Wan2.2-I2V-A14B",name:"Wan2.2 I2V",params:["size"],kind:"video"},{id:"BAAI/bge-reranker-v2-m3",name:"BGE Reranker v2 M3",kind:"rerank"},{id:"BAAI/bge-reranker-v2-gemma",name:"BGE Reranker v2 Gemma",kind:"rerank"}],features:{usage:!0,usageApikey:!0}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"stepfun-cn",priority:65,alias:"step-cn",aliases:["stepfun-cn","sf-cn"],display:{name:"StepFun CN",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/v1/chat/completions",validateUrl:"https://api.stepfun.com/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"stepfun-plan-cn",priority:64,alias:"stepp-cn",aliases:["step-plan-cn","sfp-cn","sfpcn","stepfun-plan-cn"],display:{name:"StepFun CN Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.com/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.com/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun-plan",priority:66,alias:"stepp",aliases:["step-plan","sfp","stepfun-plan"],display:{name:"StepFun Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.ai/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.ai/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun",priority:67,alias:"step",aliases:["stepfun","sf"],display:{name:"StepFun",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/v1/chat/completions",validateUrl:"https://api.stepfun.ai/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"tencent",alias:"hunyuan",aliases:["hunyuan","tencent-hunyuan"],uiAlias:"hunyuan",display:{name:"Tencent Hunyuan",icon:"cloud",color:"#0052D9",textIcon:"HY",website:"https://cloud.tencent.com/product/hunyuan",notice:{apiKeyUrl:"https://console.cloud.tencent.com/hunyuan/api-key"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.hunyuan.cloud.tencent.com/v1/chat/completions",validateUrl:"https://api.hunyuan.cloud.tencent.com/v1/models"},models:[{id:"hunyuan-turbos-latest",name:"Hunyuan TurboS Latest",contextLength:2e5},{id:"hunyuan-t1-latest",name:"Hunyuan T1 Latest",contextLength:256e3}]},{id:"tinyfish",alias:"tinyfish",display:{name:"TinyFish",icon:"travel_explore",color:"#D74B28",textIcon:"TF",website:"https://tinyfish.ai",notice:{apiKeyUrl:"https://agent.tinyfish.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.search.tinyfish.ai",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.fetch.tinyfish.ai",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,formats:["markdown","text","html"],maxCharacters:1e5,timeoutMs:3e4}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"tokenbom",alias:"tokenbom",display:{name:"TokenBom",icon:"bolt",color:"#6366F1",textIcon:"TB",website:"https://tokenbom.com",notice:{apiKeyUrl:"https://tokenbom.com/login?mode=register&invite=SS-CB5D0A43"}},category:"apikey",transport:{baseUrl:"https://tokenbom.com/v1/chat/completions",validateUrl:"https://tokenbom.com/v1/models"},models:[{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-4.8-opus",name:"Claude Opus 4.8"},{id:"claude-4.7-opus",name:"Claude Opus 4.7"},{id:"claude-4.6-opus",name:"Claude Opus 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"kimi-k3",name:"Kimi K3"},{id:"qwen3.8-flash",name:"Qwen3.8-Flash"}]},{id:"tokenharbor",alias:"tokenharbor",aliases:["th","thh"],uiAlias:"tokenharbor",display:{name:"Token Harbor",icon:"anchor",color:"#0F766E",textIcon:"TH",website:"https://tokenharbor.ai",notice:{apiKeyUrl:"https://tokenharbor.ai/dashboard"}},category:"apikey",authType:"apikey",priority:45,transport:{baseUrl:"https://tokenharbor.ai/v1/chat/completions",validateUrl:"https://tokenharbor.ai/v1/models",retry:{429:2}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-5.5:free",name:"Claude Haiku 5.5 (Free)"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-sol",name:"GPT-6 Sol"},{id:"deepseek-v4.1-flash:free",name:"DeepSeek V4.1 Flash (Free)"},{id:"qwen3.8-flash:free",name:"Qwen3.8 Flash (Free)"},{id:"mimo-v2.6-flash:free",name:"MiMo V2.6 Flash (Free)"},{id:"grok-4.7",name:"Grok 4.7"}],modelsFetcher:{url:"https://tokenharbor.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"tokenrouter",alias:"tokenrouter",aliases:[],uiAlias:"tokenrouter",display:{name:"TokenRouter",icon:"hub",color:"#0EA5E9",textIcon:"TR",website:"https://www.tokenrouter.com",notice:{text:"OpenAI-compatible gateway. 300+ models (OpenAI, Claude, Gemini, Qwen, DeepSeek, Kimi, GLM, dsb).",apiKeyUrl:"https://www.tokenrouter.com"}},category:"apikey",thinkingConfig:{options:["low","medium","high","xhigh","max"],defaultMode:"high"},transport:{baseUrl:"https://api.tokenrouter.com/v1/chat/completions",validateUrl:"https://api.tokenrouter.com/v1/models",thinkingFormat:"tokenrouter"},models:[{id:"MiniMax-Hailuo-2.3",name:"Minimax Hailuo 2.3",kind:"video"},{id:"MiniMax-M3",name:"Minimax M3"},{id:"anthropic/claude-fable-5",name:"Claude Fable 5"},{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-opus-4.7-fast",name:"Claude Opus 4.7 Fast"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8"},{id:"anthropic/claude-opus-4.8-fast",name:"Claude Opus 4.8 Fast"},{id:"anthropic/claude-opus-5",name:"Claude Opus 5"},{id:"anthropic/claude-opus-5-fast",name:"Claude Opus 5 Fast"},{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4"},{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5"},{id:"bytedance-seed/seedream-4.5",name:"Seedream 4.5",kind:"image"},{id:"bytedance-seed/seedream-5.0-lite",name:"Seedream 5.0 Lite",kind:"image"},{id:"bytedance-seed/seedream-5.0-pro",name:"Seedream 5.0 Pro",kind:"image"},{id:"claude-haiku-4-5",name:"Claude Haiku 4 5"},{id:"claude-opus-4-8-m-aws",name:"Claude Opus 4 8 M Aws"},{id:"deepseek/deepseek-v3.2",name:"Deepseek V3.2"},{id:"deepseek/deepseek-v4-flash",name:"Deepseek V4 Flash"},{id:"deepseek/deepseek-v4-flash-0731",name:"Deepseek V4 Flash 0731"},{id:"deepseek/deepseek-v4-pro",name:"Deepseek V4 Pro"},{id:"ex/gpt-5.4",name:"Gpt 5.4"},{id:"google/gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image"},{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"google/gemini-3-pro-image-preview",name:"Gemini 3 Pro Image Preview"},{id:"google/gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"},{id:"google/gemini-3.1-flash-lite-image",name:"Gemini 3.1 Flash Lite Image"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-embedding-2",name:"Gemini Embedding 2"},{id:"google/gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B It"},{id:"happyhorse-1.0-t2v",name:"Happyhorse 1.0 T2V",kind:"video"},{id:"kling-3.0-turbo",name:"Kling 3.0 Turbo",kind:"video"},{id:"kling-v2-6",name:"Kling V2 6",kind:"video"},{id:"kling-v3",name:"Kling V3",kind:"video"},{id:"kling-v3-omni",name:"Kling V3 Omni",kind:"video"},{id:"microsoft/mai-image-2.5",name:"Mai Image 2.5"},{id:"minimax/minimax-m2-her",name:"Minimax M2 Her"},{id:"minimax/minimax-m2.1",name:"Minimax M2.1"},{id:"minimax/minimax-m2.1-highspeed",name:"Minimax M2.1 Highspeed"},{id:"minimax/minimax-m2.5",name:"Minimax M2.5"},{id:"minimax/minimax-m2.7",name:"Minimax M2.7"},{id:"minimax/minimax-m2.7-highspeed",name:"Minimax M2.7 Highspeed"},{id:"minimax/minimax-m3.1-flash",name:"Minimax M3.1 Flash"},{id:"minimax/minimax-m3.1-flash:free",name:"Minimax M3.1 Flash (Free)"},{id:"miromind/mirothinker-1-7-deepresearch",name:"Mirothinker 1 7 Deepresearch"},{id:"miromind/mirothinker-1-7-deepresearch-mini",name:"Mirothinker 1 7 Deepresearch Mini"},{id:"mistralai/devstral-2512",name:"Devstral 2512"},{id:"mistralai/mistral-medium-3-5",name:"Mistral Medium 3 5"},{id:"mistralai/mistral-small-2603",name:"Mistral Small 2603"},{id:"mistralai/voxtral-small-24b-2507",name:"Voxtral Small 24B 2507"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"moonshotai/kimi-k3",name:"Kimi K3"},{id:"moonshotai/kimi-k3-free",name:"Kimi K3 Free"},{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",name:"Nemotron 3 Nano Omni 30B A3B Reasoning:Free"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B A12B"},{id:"openai/gpt-4o-mini",name:"Gpt 4O Mini"},{id:"openai/gpt-5",name:"Gpt 5"},{id:"openai/gpt-5-image",name:"Gpt 5 Image"},{id:"openai/gpt-5-image-mini",name:"Gpt 5 Image Mini"},{id:"openai/gpt-5-mini",name:"Gpt 5 Mini"},{id:"openai/gpt-5.2",name:"Gpt 5.2"},{id:"openai/gpt-5.4",name:"Gpt 5.4"},{id:"openai/gpt-5.4-image-2",name:"Gpt 5.4 Image 2",kind:"image"},{id:"openai/gpt-5.4-mini",name:"Gpt 5.4 Mini"},{id:"openai/gpt-5.4-nano",name:"Gpt 5.4 Nano"},{id:"openai/gpt-5.4-pro",name:"Gpt 5.4 Pro"},{id:"openai/gpt-5.5",name:"Gpt 5.5"},{id:"openai/gpt-5.5-pro",name:"Gpt 5.5 Pro"},{id:"openai/gpt-5.6-luna",name:"Gpt 5.6 Luna"},{id:"openai/gpt-5.6-sol",name:"Gpt 5.6 Sol"},{id:"openai/gpt-5.6-terra",name:"Gpt 5.6 Terra"},{id:"openai/gpt-audio",name:"Gpt Audio",kind:"audio"},{id:"openai/gpt-audio-mini",name:"Gpt Audio Mini",kind:"audio"},{id:"openai/gpt-oss-120b",name:"Gpt Oss 120B"},{id:"qwen/qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen/qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen/qwen3.5-35b-a3b",name:"Qwen3.5 35B A3B"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen/qwen3.5-9b",name:"Qwen3.5 9B"},{id:"qwen/qwen3.5-flash",name:"Qwen3.5 Flash"},{id:"qwen/qwen3.5-plus-02-15",name:"Qwen3.5 Plus 02 15"},{id:"qwen/qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen/qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen/qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen/qwen3.8-max",name:"Qwen3.8 Max"},{id:"qwen3.5-omni-plus",name:"Qwen3.5 Omni Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"seed-2-0-code-preview-260328",name:"Seed 2 0 Code Preview 260328"},{id:"seed-2-0-lite-260428",name:"Seed 2 0 Lite 260428"},{id:"seed-2-0-mini-260428",name:"Seed 2 0 Mini 260428"},{id:"seed-2-0-pro-260328",name:"Seed 2 0 Pro 260328"},{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-preview",name:"Hy3 Preview"},{id:"x-ai/grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"x-ai/grok-4.20-beta",name:"Grok 4.20 Beta"},{id:"x-ai/grok-4.3",name:"Grok 4.3"},{id:"x-ai/grok-4.5",name:"Grok 4.5"},{id:"x-ai/grok-build-0.1",name:"Grok Build 0.1"},{id:"xiaomi/mimo-v2-flash",name:"Mimo V2 Flash"},{id:"xiaomi/mimo-v2-omni",name:"Mimo V2 Omni"},{id:"xiaomi/mimo-v2-pro",name:"Mimo V2 Pro"},{id:"xiaomi/mimo-v2.5",name:"Mimo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"Mimo V2.5 Pro"},{id:"z-ai/glm-4.5-air",name:"Glm 4.5 Air"},{id:"z-ai/glm-4.6",name:"Glm 4.6"},{id:"z-ai/glm-4.6v",name:"Glm 4.6V"},{id:"z-ai/glm-4.7",name:"Glm 4.7"},{id:"z-ai/glm-5",name:"Glm 5"},{id:"z-ai/glm-5-turbo",name:"Glm 5 Turbo"},{id:"z-ai/glm-5.1",name:"Glm 5.1"},{id:"z-ai/glm-5.2",name:"Glm 5.2"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.tokenrouter.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.tokenrouter.com/v1/images/generations"},modelsFetcher:{url:"https://api.tokenrouter.com/v1/models",type:"openai"},passthroughModels:!0},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"trae-free",priority:58,alias:"trae-free",uiAlias:"trae-free",display:{name:"Trae Free",icon:"bolt",color:"#FF6A00",textIcon:"TF",website:"https://www.trae.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/trae/v1/messages",format:"claude",noAuth:!0},models:[{id:"Doubao-Seed-Code",name:"Doubao Seed Code"},{id:"Doubao-Seed-2.1-Pro",name:"Doubao Seed 2.1-Pro"},{id:"Doubao-Seed-2.1-Turbo",name:"Doubao Seed 2.1-Turbo"},{id:"Doubao-Seed-Evolving",name:"Doubao Seed Evolving"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1-Flash"},{id:"DeepSeek-V4-Flash-Official",name:"DeepSeek V4-Flash Official"},{id:"DeepSeek-V4-Pro-Official",name:"DeepSeek V4-Pro Official"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3-Flash"},{id:"glm-5.3-flashx",name:"GLM 5.3-FlashX"},{id:"mimo-v2.6-flash",name:"MiMo V2.6-Flash"},{id:"mimo-v2.6-pro",name:"MiMo V2.6-Pro"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.7-code",name:"Kimi K2.7-Code"},{id:"kimi-k3",name:"Kimi K3"},{id:"minimax-m3",name:"MiniMax M3"},{id:"qwen-3.7-plus",name:"Qwen 3.7-Plus"},{id:"qwen3.8-max",name:"Qwen 3.8-Max"},{id:"step-5-preview",name:"Step 5-Preview"}]},{id:"trae",alias:"tr",uiAlias:"tr",aliases:["marscode"],category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth"],display:{name:"Trae",icon:"bolt",color:"#FF6A00",textIcon:"TR",website:"https://www.trae.ai",notice:{signupUrl:"https://www.trae.ai"},loginSites:{param:"region",default:"intl",options:[{value:"intl",label:"国际站",hint:"www.trae.ai \xb7 海外账号"},{value:"cn",label:"国内站",hint:"www.trae.cn \xb7 国内手机号 / 抖音账号"}]}},transport:{baseUrl:"https://core-normal.trae.ai/api/remote/v1",format:"openai",headers:{"X-Trae-Client-Type":"web","X-Preferenced-Language":"en",Referer:"https://solo.trae.ai/"},auth:{combined:!0,header:"Authorization",scheme:"Cloud-IDE-JWT"},usage:{url:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo"},regions:{cn:"https://api.marscode.com",sg:"https://api.trae.ai",us:"https://www.trae.ai"},defaultRegion:"cn"},oauth:{clientId:"ono9krqynydwx5",clientSecret:"-",platform:"trae",pollInterval:1500,loginGuidanceUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance",tokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",exchangeTokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",refreshUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",userInfoUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo",refresh:{encoding:"json"}},models:[{id:"auto",name:"Auto (Server Picks)"},{id:"work",name:"Work (Fast)"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3-flash-solo",name:"Gemini 3 Flash"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.2",name:"GPT 5.2"}],features:{usage:!0}},{id:"v1m",priority:45,alias:"v1m",aliases:["systemone","jev"],uiAlias:"v1m",display:{name:"v1m (System One)",icon:"psychology",color:"#6366F1",textIcon:"V1",website:"https://v1m.ir",notice:{text:"v1m System One calibrated decision engine. Fast probabilistic evaluations over state and questions.",apiKeyUrl:"https://v1m.ir"}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,models:[{id:"rev-latest",name:"v1m Rev Latest (Calibrated)",kind:"systemone"},{id:"v1m-decision-engine",name:"v1m Decision Engine",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://v1m.ir/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"venice",priority:115,alias:"venice",aliases:["vn"],uiAlias:"venice",display:{name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"}},category:"apikey",transport:{baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-4-argon",name:"Gemini 4 Argon",defaultLocation:"global"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",aliases:["voyage"],uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"windsurf",alias:"ws",uiAlias:"ws",display:{name:"Windsurf",icon:"surfing",color:"#14B8A6",website:"https://windsurf.com",notice:{signupUrl:"https://windsurf.com"}},category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth","apikey"],transport:{baseUrl:"https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",format:"openai",headers:{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto","X-Grpc-Web":"1"},auth:{combined:!0,header:"Authorization",scheme:"Bearer"}},oauth:{clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",firebaseSignInUrl:"https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword",registerUrl:"https://register.windsurf.com/exa.seat_management_pb.SeatManagementService/RegisterUser",apiServerUrl:"https://server.codeium.com",auth1ApiServerUrl:"https://server.self-serve.windsurf.com",platform:"windsurf",quotaUrl:"https://windsurf.com/_backend/exa.seat_management_pb.SeatManagementService/GetPlanStatus"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max"},{id:"claude-opus-4.7-xhigh",name:"Claude Opus 4.7 XHigh"},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High"},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium"},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low"},{id:"claude-opus-4.7-review",name:"Claude Opus 4.7 Review"},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M"},{id:"claude-sonnet-4.6-1m",name:"Claude Sonnet 4.6 1M"},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 Thinking"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"gpt-5.5-xhigh-fast",name:"GPT-5.5 XHigh Fast"},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh"},{id:"gpt-5.5-high-fast",name:"GPT-5.5 High Fast"},{id:"gpt-5.5-high",name:"GPT-5.5 High"},{id:"gpt-5.5-medium-fast",name:"GPT-5.5 Medium Fast"},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium"},{id:"gpt-5.5-low-fast",name:"GPT-5.5 Low Fast"},{id:"gpt-5.5-low",name:"GPT-5.5 Low"},{id:"gpt-5.5-none-fast",name:"GPT-5.5 None Fast"},{id:"gpt-5.5-none",name:"GPT-5.5 None"},{id:"gpt-5.4-xhigh-fast",name:"GPT-5.4 XHigh Fast"},{id:"gpt-5.4-xhigh",name:"GPT-5.4 XHigh"},{id:"gpt-5.4-high-fast",name:"GPT-5.4 High Fast"},{id:"gpt-5.4-high",name:"GPT-5.4 High"},{id:"gpt-5.4-medium-fast",name:"GPT-5.4 Medium Fast"},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium"},{id:"gpt-5.4-low-fast",name:"GPT-5.4 Low Fast"},{id:"gpt-5.4-low",name:"GPT-5.4 Low"},{id:"gpt-5.4-none-fast",name:"GPT-5.4 None Fast"},{id:"gpt-5.4-none",name:"GPT-5.4 None"},{id:"gpt-5.4-mini-xhigh",name:"GPT-5.4 Mini XHigh"},{id:"gpt-5.4-mini-high",name:"GPT-5.4 Mini High"},{id:"gpt-5.4-mini-medium",name:"GPT-5.4 Mini Medium"},{id:"gpt-5.4-mini-low",name:"GPT-5.4 Mini Low"},{id:"gpt-5.3-codex-xhigh-fast",name:"GPT-5.3 Codex XHigh Fast"},{id:"gpt-5.3-codex-xhigh",name:"GPT-5.3 Codex XHigh"},{id:"gpt-5.3-codex-high-fast",name:"GPT-5.3 Codex High Fast"},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High"},{id:"gpt-5.3-codex-medium-fast",name:"GPT-5.3 Codex Medium Fast"},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium"},{id:"gpt-5.3-codex-low-fast",name:"GPT-5.3 Codex Low Fast"},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low"},{id:"gpt-5.2-xhigh",name:"GPT-5.2 XHigh"},{id:"gpt-5.2-high",name:"GPT-5.2 High"},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium"},{id:"gpt-5.2-low",name:"GPT-5.2 Low"},{id:"gpt-5.2-none",name:"GPT-5.2 None"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High"},{id:"gemini-3.0-flash-medium",name:"Gemini 3 Flash Medium"},{id:"gemini-3.0-flash-low",name:"Gemini 3 Flash Low"},{id:"gemini-3.0-flash-minimal",name:"Gemini 3 Flash Minimal"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"deepseek-v4",name:"DeepSeek V4"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM-5.1"}]},{id:"xai",priority:280,alias:"xai",display:{name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},models:[{id:"grok-4.6",name:"Grok 4.6"},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.3",name:"Grok 4.3"},{id:"grok-4.2",name:"Grok 4.2"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video",name:"Grok Imagine Video",params:["duration","aspect_ratio","resolution"],kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{baseUrl:"https://api.x.ai/v1/videos"},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},{id:"xiaomi-mimo",priority:20,alias:"xiaomi-mimo",aliases:["mimo"],uiAlias:"mimo",display:{name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys",signupUrl:"https://platform.xiaomimimo.com/"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,serviceKinds:["llm","tts"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"}],ttsConfig:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"},features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"xiaomi-tokenplan",priority:21,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"MiMo Token Plan",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://platform.xiaomimimo.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys"}},category:"apikey",hasProviderSpecificData:!0,serviceKinds:["llm","tts"],regions:[{id:"cn",label:"China (中国大陆)"},{id:"sgp",label:"Singapore (新加坡)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"cn",transport:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",regions:{cn:"https://token-plan-cn.xiaomimimo.com/v1",sgp:"https://token-plan-sgp.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"cn"},transports:[{format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-pro-claude",name:"MiMo V2.6 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.6-pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone",kind:"tts"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design",kind:"tts"}],ttsConfig:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"}},{id:"xquik",alias:"xquik",display:{name:"Xquik",icon:"tag",color:"#5C3327",textIcon:"XQ",website:"https://docs.xquik.com/api-reference/x/search-tweets",notice:{apiKeyUrl:"https://xquik.com",text:"Searches public X posts. Billing uses 1 Xquik credit per returned post."}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://xquik.com/api/v1/x/tweets/search",validateUrl:"https://xquik.com/api/v1/credits",method:"GET",authType:"apikey",authHeader:"x-api-key",searchTypes:["x"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:6e4,creditsPerResult:1}},{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"zcode-free",priority:56,alias:"zcode-free",uiAlias:"zcode-free",display:{name:"ZCode Free",icon:"rocket_launch",color:"#7C3AED",textIcon:"ZC",website:"https://zcode.z.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/zcode/v1/messages",format:"claude",noAuth:!0},models:[{id:"glm-5.3-flash",name:"GLM 5.3 Flash"}]},{id:"zed",priority:10,alias:"zd",uiAlias:"zd",hidden:!0,display:{name:"Zed",icon:"code",color:"#A855F7",website:"https://zed.dev",notice:{signupUrl:"https://zed.dev/native_app_signin"}},category:"oauth",authType:"oauth",hasOAuth:!0,transport:{baseUrl:"https://cloud.zed.dev/completions",format:"openai",forceStream:!0,headers:{"content-type":"application/json"},auth:{combined:!0,header:"Authorization",scheme:"<user_id> <access_token>"},usage:{url:"https://cloud.zed.dev/client/users/me"},modelsUrl:"https://cloud.zed.dev/models"},models:[],passthroughModels:!0,oauth:{authorizeUrl:"https://zed.dev/native_app_signin",platform:"zed",rsaKeyExchange:!0},features:{usage:!0}},{id:"modelscope",priority:69,alias:"modelscope",aliases:["ms"],display:{name:"ModelScope",icon:"layers",color:"#624AFF",textIcon:"MS",website:"https://modelscope.cn",notice:{apiKeyUrl:"https://modelscope.cn/my/myaccesstoken"}},category:"apikey",transport:{baseUrl:"https://api-inference.modelscope.cn/v1/chat/completions",validateUrl:"https://api-inference.modelscope.cn/v1/chat/completions"},models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Pro-0813",name:"DeepSeek V4 Pro (0813)",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1",contextWindow:128e3,maxOutput:64e3},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3",contextWindow:128e3,maxOutput:64e3},{id:"Qwen/Qwen3.8-Flash-Next",name:"Qwen 3.8 Flash Next",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.5-397B",name:"Qwen 3.5 397B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen3.5-122B",name:"Qwen 3.5 122B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B Instruct",contextWindow:1e6,maxOutput:64e3},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B Instruct",contextWindow:262144,maxOutput:64e3},{id:"Qwen/QwQ-32B",name:"QwQ 32B (Reasoning)",contextWindow:131072,maxOutput:64e3},{id:"ZhipuAI/glm-5.2",name:"GLM 5.2",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3",name:"GLM 5.3",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3-flash",name:"GLM 5.3 Flash",contextWindow:1e6,maxOutput:131072},{id:"MiniMax/MiniMax-M3",name:"MiniMax M3",contextWindow:1e6,maxOutput:131072},{id:"Moonshot/Kimi-K3",name:"Kimi K3",contextWindow:1048576,maxOutput:131072},{id:"stepfun-ai/Step-3.7-Flash",name:"Step 3.7 Flash",contextWindow:128e3,maxOutput:64e3},{id:"baidu/ERNIE-4.5-300B",name:"ERNIE 4.5 300B",contextWindow:2e5,maxOutput:64e3}],passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"codiv",priority:44,alias:"codiv",aliases:["cdv"],display:{name:"Codiv",icon:"psychology",color:"#101D30",textIcon:"CD",website:"https://codiv.ai",notice:{text:"Codiv serves open System One decision models that answer typed questions with calibrated probabilities, plus DiffusionGemma text generation.",apiKeyUrl:"https://codiv.ai/dashboard"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.codiv.ai/v1/chat/completions",validateUrl:"https://api.codiv.ai/v1/models"},models:[{id:"openjev-latest",name:"OpenJev Latest (Calibrated)",kind:"systemone"},{id:"openjev-0.1",name:"OpenJev 0.1",kind:"systemone"},{id:"laya-1.0",name:"Laya 1.0 (ModernBERT)",kind:"systemone"},{id:"verdict-1.4",name:"Verdict 1.4 (ModernBERT)",kind:"systemone"},{id:"clm-v0.1",name:"CLM v0.1 (Qwen3-8B)",kind:"systemone"},{id:"jevk5-0.3",name:"JevK5 v0.3 (Qwen3.5-4B)",kind:"systemone"},{id:"clef-flash-1.0",name:"Clef Flash 1.0 (Cloudflare)",kind:"systemone"},{id:"diffusiongemma-26b",name:"DiffusionGemma 26B"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://api.codiv.ai/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"thx",alias:"thx",aliases:["hal-x","halx"],category:"apikey",display:{name:"THX-01 (HAL-X)",icon:"psychology",color:"#0EA5E9",textIcon:"TX",website:"https://api.hal-x.ai",notice:{text:"THX-01 decision model: calibrated answers to typed questions in ~10 ms per request.",apiKeyUrl:"https://api.hal-x.ai"}},models:[{id:"thx-01",name:"THX-01",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://api.hal-x.ai/v1/systemone"}},{id:"inception",priority:85,alias:"inception",aliases:["inceptionlabs","mercury"],uiAlias:"inception",display:{name:"Inception Labs",icon:"cyclone",color:"#0EA5E9",textIcon:"IN",website:"https://www.inceptionlabs.ai",notice:{text:"Diffusion LLMs at 1000+ tok/s. New API keys include 100M free tokens. mercury-voice requires enterprise access.",apiKeyUrl:"https://platform.inceptionlabs.ai/api-keys"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.inceptionlabs.ai/v1/chat/completions",validateUrl:"https://api.inceptionlabs.ai/v1/models",thinkingFormat:"openai"},models:[{id:"mercury-3",name:"Mercury 3",contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"mercury-2.5",name:"Mercury 2.5 (legacy)",contextWindow:26e4,maxOutput:65536,reasoning:!0}],serviceKinds:["llm"]}]},61544:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={NEXT_REQUEST_META:function(){return e},addRequestMeta:function(){return h},getRequestMeta:function(){return f},removeRequestMeta:function(){return i},setRequestMeta:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Symbol.for("NextInternalRequestMeta");function f(a,b){let c=a[e]||{};return"string"==typeof b?c[b]:c}function g(a,b){return a[e]=b,b}function h(a,b,c){let d=f(a);return d[b]=c,g(a,d)}function i(a,b){let c=f(a);return delete c[b],g(a,c)}},61595:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createWorkStore",{enumerable:!0,get:function(){return i}});let d=c(85292),e=c(92539),f=c(31147),g=c(57155),h=c(89218);function i({page:a,renderOpts:b,isPrefetchRequest:c,buildId:j,deploymentId:k,previouslyRevalidatedTags:l,nonce:m}){let n=!b.supportsDynamicResponse&&!b.isDraftMode&&!b.isPossibleServerAction,o=n&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),p={isStaticGeneration:n,page:a,route:(0,e.normalizeAppPath)(a),incrementalCache:b.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:b.cacheLifeProfiles,useCacheTimeout:b.experimental.useCacheTimeout,staticPageGenerationTimeout:b.staticPageGenerationTimeout,isBuildTimePrerendering:b.isBuildTimePrerendering,fetchCache:b.fetchCache,isOnDemandRevalidate:b.isOnDemandRevalidate,requestId:void 0,htmlRequestId:void 0,isDraftMode:b.isDraftMode,isPrefetchRequest:c,buildId:j,deploymentId:k,reactLoadableManifest:(null==b?void 0:b.reactLoadableManifest)||{},assetPrefix:(null==b?void 0:b.assetPrefix)||"",nonce:m,afterContext:function(a){let{waitUntil:b,onClose:c,onAfterTaskError:e}=a;return new d.AfterContext({waitUntil:b,onClose:c,onTaskError:e})}(b),cacheComponentsEnabled:b.cacheComponents,validationLevel:b.validationLevel,previouslyRevalidatedTags:l,requestStartTime:performance.timeOrigin+performance.now(),refreshTagsByCacheKind:function(){let a=new Map,b=(0,g.getCacheHandlerEntries)();if(b)for(let[c,d]of b)"refreshTags"in d&&a.set(c,(0,f.createLazyResult)(async()=>d.refreshTags()));return a}(),runInCleanSnapshot:(0,h.createSnapshot)(),shouldTrackFetchMetrics:o,reactServerErrorsByDigest:new Map};return b.store=p,p}},61873:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PARAM_SEPARATOR:function(){return e},hasAdjacentParameterIssues:function(){return f},normalizeAdjacentParameters:function(){return g},normalizeTokensForRegexp:function(){return h},stripNormalizedSeparators:function(){return i},stripParameterSeparators:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="_NEXTSEP_";function f(a){return"string"==typeof a&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(a)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(a))}function g(a){let b=a;return(b=b.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${e}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${e}`)}function h(a){return a.map(a=>"object"==typeof a&&null!==a&&"modifier"in a&&("*"===a.modifier||"+"===a.modifier)&&"prefix"in a&&"suffix"in a&&""===a.prefix&&""===a.suffix?{...a,prefix:"/"}:a)}function i(a){return a.replace(RegExp(`\\)${e}`,"g"),")")}function j(a){let b={};for(let[c,d]of Object.entries(a))"string"==typeof d?b[c]=d.replace(RegExp(`^${e}`),""):Array.isArray(d)?b[c]=d.map(a=>"string"==typeof a?a.replace(RegExp(`^${e}`),""):a):b[c]=d;return b}},62192:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_HEADER:function(){return f},FLIGHT_HEADERS:function(){return n},NEXT_ACTION_NOT_FOUND_HEADER:function(){return u},NEXT_ACTION_REVALIDATED_HEADER:function(){return x},NEXT_DID_POSTPONE_HEADER:function(){return q},NEXT_HMR_REFRESH_HEADER:function(){return j},NEXT_HTML_REQUEST_ID_HEADER:function(){return w},NEXT_INSTANT_TEST_COOKIE:function(){return m},NEXT_IS_PRERENDER_HEADER:function(){return t},NEXT_REQUEST_ID_HEADER:function(){return v},NEXT_REWRITTEN_PATH_HEADER:function(){return r},NEXT_REWRITTEN_QUERY_HEADER:function(){return s},NEXT_ROUTER_PREFETCH_HEADER:function(){return h},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return i},NEXT_ROUTER_STALE_TIME_HEADER:function(){return p},NEXT_ROUTER_STATE_TREE_HEADER:function(){return g},NEXT_RSC_UNION_QUERY:function(){return o},NEXT_URL:function(){return k},RSC_CONTENT_TYPE_HEADER:function(){return l},RSC_HEADER:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="rsc",f="next-action",g="next-router-state-tree",h="next-router-prefetch",i="next-router-segment-prefetch",j="next-hmr-refresh",k="next-url",l="text/x-component",m="next-instant-navigation-testing",n=[e,g,h,j,i],o="_rsc",p="x-nextjs-stale-time",q="x-nextjs-postponed",r="x-nextjs-rewritten-path",s="x-nextjs-rewritten-query",t="x-nextjs-prerender",u="x-nextjs-action-not-found",v="x-nextjs-request-id",w="x-nextjs-html-request-id",x="x-action-revalidated";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},62447:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRouteMatcher",{enumerable:!0,get:function(){return f}});let d=c(80670),e=c(20742);function f({re:a,groups:b}){return(0,e.safeRouteMatcher)(c=>{let e=a.exec(c);if(!e)return!1;let f=a=>{try{return decodeURIComponent(a)}catch{throw Object.defineProperty(new d.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},g={};for(let[a,c]of Object.entries(b)){let b=e[c.pos];void 0!==b&&(c.repeat?g[a]=b.split("/").map(a=>f(a)):g[a]=f(b))}return g})}},62929:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return d}});var c,d=((c={}).PAGES="PAGES",c.PAGES_API="PAGES_API",c.APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.IMAGE="IMAGE",c)},62940:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ImageResponse:function(){return f.ImageResponse},NextRequest:function(){return g.NextRequest},NextResponse:function(){return h.NextResponse},URLPattern:function(){return j.URLPattern},after:function(){return k.after},connection:function(){return l.connection},userAgent:function(){return i.userAgent},userAgentFromString:function(){return i.userAgentFromString}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(42501),g=c(84573),h=c(17385),i=c(97645),j=c(34196),k=c(3144),l=c(19293)},62965:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MIN_PREFETCHABLE_STALE:function(){return g},MIN_PRERENDERABLE_EXPIRE:function(){return f},MIN_SHELL_STALE:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});c(42776);let f=300,g=30,h=300},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63891:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={createLocalRequestContext:function(){return i},getBuiltinRequestContext:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(89218);function g(){let a=globalThis[h];return null==a?void 0:a.get()}let h=Symbol.for("@next/request-context");function i(){let a=(0,f.createAsyncLocalStorage)();return{get:()=>a.getStore(),run:(b,c)=>a.run(b,c)}}},64718:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getRelativeURL:function(){return f},parseRelativeURL:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){let c="string"==typeof b?new URL(b):b,d=new URL(a,b),e=d.origin===c.origin;return{url:e?d.toString().slice(c.origin.length):d.toString(),isRelative:e}}function f(a,b){return e(a,b).url}},67205:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={executeRevalidates:function(){return j},withExecuteRevalidates:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(57155);async function g(a,b){if(!a)return b();let c=h(a);try{return await b()}finally{var d,e;let b,f,g=(d=c,e=h(a),b=new Set(d.pendingRevalidatedTags.map(a=>{let b="object"==typeof a.profile?JSON.stringify(a.profile):a.profile||"";return`${a.tag}:${b}`})),f=new Set(d.pendingRevalidateWrites),{pendingRevalidatedTags:e.pendingRevalidatedTags.filter(a=>{let c="object"==typeof a.profile?JSON.stringify(a.profile):a.profile||"";return!b.has(`${a.tag}:${c}`)}),pendingRevalidates:Object.fromEntries(Object.entries(e.pendingRevalidates).filter(([a])=>!(a in d.pendingRevalidates))),pendingRevalidateWrites:e.pendingRevalidateWrites.filter(a=>!f.has(a))});await j(a,g)}}function h(a){return{pendingRevalidatedTags:a.pendingRevalidatedTags?[...a.pendingRevalidatedTags]:[],pendingRevalidates:{...a.pendingRevalidates},pendingRevalidateWrites:a.pendingRevalidateWrites?[...a.pendingRevalidateWrites]:[]}}async function i(a,b,c){if(0===a.length)return;let d=(0,f.getCacheHandlers)(),e=[],g=new Map;for(let b of a){let a,c=b.profile;for(let[b]of g)if("string"==typeof b&&"string"==typeof c&&b===c||"object"==typeof b&&"object"==typeof c&&JSON.stringify(b)===JSON.stringify(c)||b===c){a=b;break}let d=a||c;g.has(d)||g.set(d,[]),g.get(d).push(b.tag)}for(let[a,f]of g){let g;if(a){let b;if("object"==typeof a)b=a;else if("string"==typeof a&&!(b=null==c?void 0:c.cacheLifeProfiles[a]))throw Object.defineProperty(Error(`Invalid profile provided "${a}" must be configured under cacheLife in next.config or be "max"`),"__NEXT_ERROR_CODE",{value:"E873",enumerable:!1,configurable:!0});b&&(g={expire:b.expire})}for(let b of d||[])a?e.push(null==b.updateTags?void 0:b.updateTags.call(b,f,g)):e.push(null==b.updateTags?void 0:b.updateTags.call(b,f));b&&e.push(b.revalidateTag(f,g))}await Promise.all(e)}function j(a,b){let c=[],d=(null==b?void 0:b.pendingRevalidatedTags)??a.pendingRevalidatedTags??[];return d.length>0&&c.push(i(d,a.incrementalCache,a)),c.push(...Object.values((null==b?void 0:b.pendingRevalidates)??a.pendingRevalidates??{})),c.push(...(null==b?void 0:b.pendingRevalidateWrites)??a.pendingRevalidateWrites??[]),0!==c.length&&Promise.all(c).then(()=>void 0)}},67301:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(77890);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return`${b}${c}${e}${f}`}},68047:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseRelativeUrl",{enumerable:!0,get:function(){return e}}),c(80670);let d=c(68202);function e(a,b,c=!0){let f=new URL("http://n"),g=b?new URL(b,f):a.startsWith(".")?new URL("http://n"):f,{pathname:h,searchParams:i,search:j,hash:k,href:l,origin:m}=a.startsWith("/")?new URL(`${g.protocol}//${g.host}${a}`):new URL(a,g);if(m!==f.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${a}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:h,port:null,protocol:null,query:c?(0,d.searchParamsToUrlQuery)(i):void 0,search:j,hash:k,href:l.slice(m.length),slashes:null}}},68202:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={assign:function(){return h},searchParamsToUrlQuery:function(){return e},urlQueryToSearchParams:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){let b={};for(let[c,d]of a.entries()){let a=b[c];void 0===a?b[c]=d:Array.isArray(a)?a.push(d):b[c]=[a,d]}return b}function f(a){return"string"==typeof a?a:("number"!=typeof a||isNaN(a))&&"boolean"!=typeof a?"":String(a)}function g(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a))if(Array.isArray(d))for(let a of d)b.append(c,f(a));else b.set(c,f(d));return b}function h(a,...b){for(let c of b){for(let b of c.keys())a.delete(b);for(let[b,d]of c.entries())a.append(b,d)}return a}},68802:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PageSignatureError:function(){return e},RemovedPageError:function(){return f},RemovedUAError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form:
|
|
133
|
+
data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function l(a={}){let b=await (0,e.cK)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(j);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function m(a){return j((await (0,e.cK)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function n(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(j);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{let d=c+1;(b.priority||0)!==d&&a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[d,b.id])})}async function o(a){let b,f=await (0,e.cK)(),h=new Date().toISOString(),l=!1;if(f.transaction(()=>{var c;let e="apikey"===a.authType&&!!a.name,g=e?f.all("SELECT * FROM providerConnections WHERE provider = ? AND authType = ? AND name = ?",[a.provider,"apikey",a.name]).map(j):f.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(j),m=e?f.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a.provider])?.n??g.length:g.length;l=0===m;let n=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;n=g.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;if("codex"===a.provider){let a=d.providerSpecificData?.chatgptAccountId;return!!c&&!!a&&c===a}let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(n=g.find(b=>"apikey"===b.authType&&b.name===a.name));if(n){if(!1===a.allowOverwrite){let b=Error(`A connection named "${n.name}" already exists for provider "${a.provider}". Pass allowOverwrite: true to replace it.`);throw b.code="PROVIDER_NAME_CONFLICT",b.existingId=n.id,b.existingName=n.name,b}let c={...n,...a,updatedAt:h};for(let b of["lastError","lastErrorAt","errorCode"])void 0===a[b]&&(c[b]=null);void 0===a.testStatus&&"unavailable"===c.testStatus&&(c.testStatus="active"),void 0===a.testStatus&&"needs-reauth"===c.testStatus&&(c.testStatus="active",c.needsReauthUntil=null),k(f,c),b=c;return}let o=a.name||null;o||"oauth"!==a.authType&&"access_token"!==a.authType||(c=a.email||`Account ${m+1}`,o="github"===a.provider&&(a.providerSpecificData?.githubLogin||a.providerSpecificData?.githubEmail||a.email||a.providerSpecificData?.githubName)||c);let p=a.priority;if(!p){let b=f.get("SELECT MAX(priority) AS m FROM providerConnections WHERE provider = ?",[a.provider]);p=(b?.m||0)+1}let q={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:o,priority:p,isActive:void 0===a.isActive||a.isActive,createdAt:h,updatedAt:h};for(let b of i)void 0!==a[b]&&null!==a[b]&&(q[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(q.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(q.email=a.email),k(f,q),b=q}),l&&b)try{let{PROVIDER_MODELS:b,PROVIDER_ID_TO_ALIAS:d}=await Promise.resolve().then(c.bind(c,76871)),e=d[a.provider]||a.provider,f=(b[e]||[]).filter(a=>!a.kind||"llm"===a.kind).map(a=>a.id);if(f.length>0){let a=await (0,g.jw)(e);0===a.length&&await (0,g.tm)(e,f)}}catch(a){console.log("Default-disable init skipped:",a?.message||a)}return b}async function p(a,b){let c,d=await (0,e.cK)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=j(e),g={...f,...b,updatedAt:new Date().toISOString()};if("resetErrorState"in g){let a=!0===g.resetErrorState;if(delete g.resetErrorState,a){let a={lastError:null,lastErrorAt:null,errorCode:null,testStatus:null,needsReauthUntil:null};for(let c of Object.keys(a))void 0!==b[c]&&delete a[c];Object.assign(g,a)}}k(d,g),void 0!==b.priority&&n(d,f.provider),c=g}),c}async function q(a){let b=await (0,e.cK)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),n(b,d.provider),c=!0)}),c}async function r(a){let b=await (0,e.cK)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function s(a){let b=await (0,e.cK)();b.transaction(()=>n(b,a))}async function t(){let a=await (0,e.cK)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=j(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&k(a,e)}}),c}},56872:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d={bgBlack:function(){return C},bgBlue:function(){return G},bgCyan:function(){return I},bgGreen:function(){return E},bgMagenta:function(){return H},bgRed:function(){return D},bgWhite:function(){return J},bgYellow:function(){return F},black:function(){return s},blue:function(){return w},bold:function(){return l},cyan:function(){return z},dim:function(){return m},gray:function(){return B},green:function(){return u},hidden:function(){return q},inverse:function(){return p},italic:function(){return n},magenta:function(){return x},purple:function(){return y},red:function(){return t},reset:function(){return k},strikethrough:function(){return r},underline:function(){return o},white:function(){return A},yellow:function(){return v}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let{env:f,stdout:g}=(null==(c=globalThis)?void 0:c.process)??{},h=f&&!f.NO_COLOR&&(f.FORCE_COLOR||(null==g?void 0:g.isTTY)&&!f.CI&&"dumb"!==f.TERM),i=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),g=f.indexOf(b);return~g?e+i(f,b,c,g):e+f},j=(a,b,c=a)=>h?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+i(e,b,c,f)+b:a+e+b}:String,k=h?a=>`\x1b[0m${a}\x1b[0m`:String,l=j("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),m=j("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),n=j("\x1b[3m","\x1b[23m"),o=j("\x1b[4m","\x1b[24m"),p=j("\x1b[7m","\x1b[27m"),q=j("\x1b[8m","\x1b[28m"),r=j("\x1b[9m","\x1b[29m"),s=j("\x1b[30m","\x1b[39m"),t=j("\x1b[31m","\x1b[39m"),u=j("\x1b[32m","\x1b[39m"),v=j("\x1b[33m","\x1b[39m"),w=j("\x1b[34m","\x1b[39m"),x=j("\x1b[35m","\x1b[39m"),y=j("\x1b[38;2;173;127;168m","\x1b[39m"),z=j("\x1b[36m","\x1b[39m"),A=j("\x1b[37m","\x1b[39m"),B=j("\x1b[90m","\x1b[39m"),C=j("\x1b[40m","\x1b[49m"),D=j("\x1b[41m","\x1b[49m"),E=j("\x1b[42m","\x1b[49m"),F=j("\x1b[43m","\x1b[49m"),G=j("\x1b[44m","\x1b[49m"),H=j("\x1b[45m","\x1b[49m"),I=j("\x1b[46m","\x1b[49m"),J=j("\x1b[47m","\x1b[49m")},57155:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getCacheHandler:function(){return p},getCacheHandlerEntries:function(){return w},getCacheHandlers:function(){return v},getDevTieredCacheHandler:function(){return u},getPrivateCacheHandler:function(){return q},initializeCacheHandlers:function(){return o},isBuiltInCacheHandler:function(){return t},isCustomCacheHandler:function(){return s},isMemoryCacheDisabled:function(){return r},setCacheHandler:function(){return x}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(32457);c(7597);let g=process.env.NEXT_PRIVATE_DEBUG_CACHE?(a,...b)=>{console.log(`use-cache: ${a}`,...b)}:void 0,h=Symbol.for("@next/cache-handlers"),i=Symbol.for("@next/cache-handlers-map"),j=Symbol.for("@next/cache-handlers-set"),k=Symbol.for("@next/cache-handlers-private"),l=Symbol.for("@next/cache-handlers-built-in");Symbol.for("@next/cache-handlers-dev-fronts"),Symbol.for("@next/cache-handlers-dev-tiered");let m=Symbol.for("@next/cache-handlers-memory-disabled"),n=globalThis;function o(a){if(n[i])return null==g||g("cache handlers already initialized"),!1;null==g||g("initializing cache handlers");let b=new Map;n[i]=b;let c=new Set;if(n[l]=c,n[h]){let d;n[h].DefaultCache?(null==g||g('setting "default" cache handler from symbol'),d=n[h].DefaultCache):(null==g||g('setting "default" cache handler from default'),d=(0,f.createDefaultCacheHandler)(a),c.add(d)),b.set("default",d),n[h].RemoteCache?(null==g||g('setting "remote" cache handler from symbol'),b.set("remote",n[h].RemoteCache)):(null==g||g('setting "remote" cache handler from default'),b.set("remote",d))}else{let d=(0,f.createDefaultCacheHandler)(a);c.add(d),null==g||g('setting "default" cache handler from default'),b.set("default",d),null==g||g('setting "remote" cache handler from default'),b.set("remote",d)}return n[j]=new Set(b.values()),!0}function p(a){if(!n[i])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});return n[i].get(a)}function q(){if(!n[i])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});return n[k]}function r(){return n[m]??!1}function s(a){return!1}function t(a){var b,c;let d=null==(b=n[i])?void 0:b.get(a);return void 0!==d&&!!(null==(c=n[l])?void 0:c.has(d))}function u(a){}function v(){let a=n[j];if(a)return a.values()}function w(){let a=n[i];if(a)return a.entries()}function x(a,b){if(!n[i]||!n[j])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});null==g||g('setting cache handler for "%s"',a),n[i].set(a,b),n[j].add(b)}},57202:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={handleFetch:function(){return i},interceptFetch:function(){return j},reader:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(18975),g={url:a=>a.url,header:(a,b)=>a.headers.get(b)};async function h(a,b){let{url:c,method:d,headers:e,body:f,cache:g,credentials:h,integrity:i,mode:j,redirect:k,referrer:l,referrerPolicy:m}=b;return{testData:a,api:"fetch",request:{url:c,method:d,headers:[...Array.from(e),["next-test-stack",function(){let a=(Error().stack??"").split("\n");for(let b=1;b<a.length;b++)if(a[b].length>0){a=a.slice(b);break}return(a=(a=(a=a.filter(a=>!a.includes("/next/dist/"))).slice(0,5)).map(a=>a.replace("webpack-internal:///(rsc)/","").trim())).join(" ")}()]],body:f?Buffer.from(await b.arrayBuffer()).toString("base64"):null,cache:g,credentials:h,integrity:i,mode:j,redirect:k,referrer:l,referrerPolicy:m}}}async function i(a,b){let c=(0,f.getTestReqInfo)(b,g);if(!c)return a(b);let{testData:d,proxyPort:e}=c,i=await h(d,b),j=await a(`http://localhost:${e}`,{method:"POST",body:JSON.stringify(i),headers:{"next-test-internal":"1"},next:{internal:!0}});if(!j.ok)throw Object.defineProperty(Error(`Proxy request failed: ${j.status}`),"__NEXT_ERROR_CODE",{value:"E146",enumerable:!1,configurable:!0});let k=await j.json(),{api:l}=k;switch(l){case"continue":return a(b);case"abort":case"unhandled":throw Object.defineProperty(Error(`Proxy request aborted [${b.method} ${b.url}]`),"__NEXT_ERROR_CODE",{value:"E145",enumerable:!1,configurable:!0});case"fetch":return function(a){let{status:b,headers:c,body:d}=a.response;return new Response(d?Buffer.from(d,"base64"):null,{status:b,headers:new Headers(c)})}(k);default:return l}}function j(a){return global.fetch=function(b,c){var d;return(null==c||null==(d=c.next)?void 0:d.internal)?a(b,c):i(a,new Request(b,c))},()=>{global.fetch=a}}},58486:(a,b)=>{"use strict";function c(a){switch(a){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"interceptionPrefixFromParamType",{enumerable:!0,get:function(){return c}})},58930:a=>{(()=>{"use strict";let b,c,d,e,f;var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w={912:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(108),e=c(221),f=c(44),g="context",h=new d.NoopContextManager;class i{static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},44:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(757),e=c(412),f=c(711),g=c(221);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}const b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"<failed to generate stacktrace>";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},262:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(586),e=c(221),f=c(44),g="metrics";class h{static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},25:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(221),e=c(19),f=c(92),g=c(398),h=c(504),i=c(44),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},397:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(221),e=c(498),f=c(477),g=c(793),h=c(44),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},398:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(912),e=(0,c(23).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},152:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},647:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},504:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(44),e=c(152),f=c(647),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},778:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(912).ContextAPI.getInstance()},108:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(23);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},23:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){const b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},304:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(44).DiagAPI.instance()},757:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(221);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},83:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a<c.length;a++)this[c[a].n]=function(a){return function(...b){if(console){let c=console[a];if("function"!=typeof c&&(c=console.log),"function"==typeof c)return c.apply(console,b)}}}(c[a].c)}}b.DiagConsoleLogger=d},412:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(711);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return a<d.DiagLogLevel.NONE?a=d.DiagLogLevel.NONE:a>d.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},711:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,(c=b.DiagLogLevel||(b.DiagLogLevel={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL"},221:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(678),e=c(652),f=c(662),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},662:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(652),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},120:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(262).MetricsAPI.getInstance()},532:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,(c=b.ValueType||(b.ValueType={}))[c.INT=0]="INT",c[c.DOUBLE=1]="DOUBLE"},440:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},586:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(440);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},678:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(59),b)},460:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},59:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(460),b)},27:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(25).PropagationAPI.getInstance()},19:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},92:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},816:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(397).TraceAPI.getInstance()},374:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(546);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},637:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(912),e=c(793),f=c(374),g=c(477),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},76:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(637);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},779:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(637)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},498:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(779),e=new(c(76)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},312:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,(c=b.SamplingDecision||(b.SamplingDecision={}))[c.NOT_RECORD=0]="NOT_RECORD",c[c.RECORD=1]="RECORD",c[c.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},793:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(23),e=c(374),f=c(912),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},285:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(240);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},240:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},87:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(285);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},546:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(731);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},613:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,(c=b.SpanKind||(b.SpanKind={}))[c.INTERNAL=0]="INTERNAL",c[c.SERVER=1]="SERVER",c[c.CLIENT=2]="CLIENT",c[c.PRODUCER=3]="PRODUCER",c[c.CONSUMER=4]="CONSUMER"},477:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(546),e=c(374),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},854:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,(c=b.SpanStatusCode||(b.SpanStatusCode={}))[c.UNSET=0]="UNSET",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR"},731:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,(c=b.TraceFlags||(b.TraceFlags={}))[c.NONE=0]="NONE",c[c.SAMPLED=1]="SAMPLED"},652:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},x={};function y(a){var b=x[a];if(void 0!==b)return b.exports;var c=x[a]={exports:{}},d=!0;try{w[a].call(c.exports,c,c.exports,y),d=!1}finally{d&&delete x[a]}return c.exports}y.ab=__dirname+"/";var z={};Object.defineProperty(z,"__esModule",{value:!0}),z.trace=z.propagation=z.metrics=z.diag=z.context=z.INVALID_SPAN_CONTEXT=z.INVALID_TRACEID=z.INVALID_SPANID=z.isValidSpanId=z.isValidTraceId=z.isSpanContextValid=z.createTraceState=z.TraceFlags=z.SpanStatusCode=z.SpanKind=z.SamplingDecision=z.ProxyTracerProvider=z.ProxyTracer=z.defaultTextMapSetter=z.defaultTextMapGetter=z.ValueType=z.createNoopMeter=z.DiagLogLevel=z.DiagConsoleLogger=z.ROOT_CONTEXT=z.createContextKey=z.baggageEntryMetadataFromString=void 0,g=y(504),Object.defineProperty(z,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return g.baggageEntryMetadataFromString}}),h=y(23),Object.defineProperty(z,"createContextKey",{enumerable:!0,get:function(){return h.createContextKey}}),Object.defineProperty(z,"ROOT_CONTEXT",{enumerable:!0,get:function(){return h.ROOT_CONTEXT}}),i=y(83),Object.defineProperty(z,"DiagConsoleLogger",{enumerable:!0,get:function(){return i.DiagConsoleLogger}}),j=y(711),Object.defineProperty(z,"DiagLogLevel",{enumerable:!0,get:function(){return j.DiagLogLevel}}),k=y(440),Object.defineProperty(z,"createNoopMeter",{enumerable:!0,get:function(){return k.createNoopMeter}}),l=y(532),Object.defineProperty(z,"ValueType",{enumerable:!0,get:function(){return l.ValueType}}),m=y(92),Object.defineProperty(z,"defaultTextMapGetter",{enumerable:!0,get:function(){return m.defaultTextMapGetter}}),Object.defineProperty(z,"defaultTextMapSetter",{enumerable:!0,get:function(){return m.defaultTextMapSetter}}),n=y(779),Object.defineProperty(z,"ProxyTracer",{enumerable:!0,get:function(){return n.ProxyTracer}}),o=y(498),Object.defineProperty(z,"ProxyTracerProvider",{enumerable:!0,get:function(){return o.ProxyTracerProvider}}),p=y(312),Object.defineProperty(z,"SamplingDecision",{enumerable:!0,get:function(){return p.SamplingDecision}}),q=y(613),Object.defineProperty(z,"SpanKind",{enumerable:!0,get:function(){return q.SpanKind}}),r=y(854),Object.defineProperty(z,"SpanStatusCode",{enumerable:!0,get:function(){return r.SpanStatusCode}}),s=y(731),Object.defineProperty(z,"TraceFlags",{enumerable:!0,get:function(){return s.TraceFlags}}),t=y(87),Object.defineProperty(z,"createTraceState",{enumerable:!0,get:function(){return t.createTraceState}}),u=y(477),Object.defineProperty(z,"isSpanContextValid",{enumerable:!0,get:function(){return u.isSpanContextValid}}),Object.defineProperty(z,"isValidTraceId",{enumerable:!0,get:function(){return u.isValidTraceId}}),Object.defineProperty(z,"isValidSpanId",{enumerable:!0,get:function(){return u.isValidSpanId}}),v=y(546),Object.defineProperty(z,"INVALID_SPANID",{enumerable:!0,get:function(){return v.INVALID_SPANID}}),Object.defineProperty(z,"INVALID_TRACEID",{enumerable:!0,get:function(){return v.INVALID_TRACEID}}),Object.defineProperty(z,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return v.INVALID_SPAN_CONTEXT}}),b=y(778),Object.defineProperty(z,"context",{enumerable:!0,get:function(){return b.context}}),c=y(304),Object.defineProperty(z,"diag",{enumerable:!0,get:function(){return c.diag}}),d=y(120),Object.defineProperty(z,"metrics",{enumerable:!0,get:function(){return d.metrics}}),e=y(27),Object.defineProperty(z,"propagation",{enumerable:!0,get:function(){return e.propagation}}),f=y(816),Object.defineProperty(z,"trace",{enumerable:!0,get:function(){return f.trace}}),z.default={context:b.context,diag:c.diag,metrics:d.metrics,propagation:e.propagation,trace:f.trace},a.exports=z})()},59339:(a,b,c)=>{"use strict";c.d(b,{cK:()=>n});var d=c(76760),e=c.n(d),f=c(7841);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1,lastDriverError:null});let g=global._dbAdapter;async function h(){try{let{createRequire:a}=await Promise.resolve().then(c.t.bind(c,98995,23)),b=a(e().join(f.Rf,"_noop.js"))("better-sqlite3");return b?.default??b}catch{}try{let a=await Promise.resolve().then(c.t.bind(c,87550,23));return a?.default??a}catch{return null}}async function i(){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(698).then(c.bind(c,90698));return await a(f.AL)}catch(a){return g.lastDriverError=`bun:sqlite: ${a.message}`,console.warn(`[DB] bun:sqlite unavailable: ${a.message}`),null}}async function j(){if(process.versions.bun)return null;let[a]=process.versions.node.split(".").map(Number);if(a>=24)return null;try{let a=await h();if(!a)throw Error("not installed (runtime copy and bare specifier both missing)");let{createBetterSqliteAdapter:b}=await c.e(507).then(c.bind(c,90507));return b(f.AL,a)}catch(a){return g.lastDriverError=`better-sqlite3: ${a.message}`,console.warn(`[DB] better-sqlite3 unavailable: ${a.message}`),null}}async function k(){if(process.versions.bun)return null;let[a,b]=process.versions.node.split(".").map(Number);if(a<22||22===a&&b<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(7965).then(c.bind(c,57965));return await a(f.AL)}catch(a){return g.lastDriverError=`node:sqlite: ${a.message}`,console.warn(`[DB] node:sqlite unavailable: ${a.message}`),null}}async function l(){try{let{createSqlJsAdapter:a}=await c.e(4780).then(c.bind(c,34780));return await a(f.AL)}catch(a){return g.lastDriverError=`sql.js: ${a.message}`,console.warn(`[DB] sql.js unavailable: ${a.message}`),null}}async function m(){(0,f.Jh)();let a=await i();if(a||(a=await j()),a||(a=await k()),a||(a=await l()),!a)throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)");g.logged||(console.log(`[DB] Driver: ${a.driver} | file: ${f.AL}`),g.logged=!0);let{runMigrationOnce:b}=await c.e(9451).then(c.bind(c,39451));return await b(a),a}async function n(){return g.instance?g.instance:(g.initPromise||(g.initPromise=m().then(a=>(g.instance=a,a))),g.initPromise)}},59841:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},61544:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={NEXT_REQUEST_META:function(){return e},addRequestMeta:function(){return h},getRequestMeta:function(){return f},removeRequestMeta:function(){return i},setRequestMeta:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Symbol.for("NextInternalRequestMeta");function f(a,b){let c=a[e]||{};return"string"==typeof b?c[b]:c}function g(a,b){return a[e]=b,b}function h(a,b,c){let d=f(a);return d[b]=c,g(a,d)}function i(a,b){let c=f(a);return delete c[b],g(a,c)}},61595:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createWorkStore",{enumerable:!0,get:function(){return i}});let d=c(85292),e=c(92539),f=c(31147),g=c(57155),h=c(89218);function i({page:a,renderOpts:b,isPrefetchRequest:c,buildId:j,deploymentId:k,previouslyRevalidatedTags:l,nonce:m}){let n=!b.supportsDynamicResponse&&!b.isDraftMode&&!b.isPossibleServerAction,o=n&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),p={isStaticGeneration:n,page:a,route:(0,e.normalizeAppPath)(a),incrementalCache:b.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:b.cacheLifeProfiles,useCacheTimeout:b.experimental.useCacheTimeout,staticPageGenerationTimeout:b.staticPageGenerationTimeout,isBuildTimePrerendering:b.isBuildTimePrerendering,fetchCache:b.fetchCache,isOnDemandRevalidate:b.isOnDemandRevalidate,requestId:void 0,htmlRequestId:void 0,isDraftMode:b.isDraftMode,isPrefetchRequest:c,buildId:j,deploymentId:k,reactLoadableManifest:(null==b?void 0:b.reactLoadableManifest)||{},assetPrefix:(null==b?void 0:b.assetPrefix)||"",nonce:m,afterContext:function(a){let{waitUntil:b,onClose:c,onAfterTaskError:e}=a;return new d.AfterContext({waitUntil:b,onClose:c,onTaskError:e})}(b),cacheComponentsEnabled:b.cacheComponents,validationLevel:b.validationLevel,previouslyRevalidatedTags:l,requestStartTime:performance.timeOrigin+performance.now(),refreshTagsByCacheKind:function(){let a=new Map,b=(0,g.getCacheHandlerEntries)();if(b)for(let[c,d]of b)"refreshTags"in d&&a.set(c,(0,f.createLazyResult)(async()=>d.refreshTags()));return a}(),runInCleanSnapshot:(0,h.createSnapshot)(),shouldTrackFetchMetrics:o,reactServerErrorsByDigest:new Map};return b.store=p,p}},61873:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PARAM_SEPARATOR:function(){return e},hasAdjacentParameterIssues:function(){return f},normalizeAdjacentParameters:function(){return g},normalizeTokensForRegexp:function(){return h},stripNormalizedSeparators:function(){return i},stripParameterSeparators:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="_NEXTSEP_";function f(a){return"string"==typeof a&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(a)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(a))}function g(a){let b=a;return(b=b.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${e}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${e}`)}function h(a){return a.map(a=>"object"==typeof a&&null!==a&&"modifier"in a&&("*"===a.modifier||"+"===a.modifier)&&"prefix"in a&&"suffix"in a&&""===a.prefix&&""===a.suffix?{...a,prefix:"/"}:a)}function i(a){return a.replace(RegExp(`\\)${e}`,"g"),")")}function j(a){let b={};for(let[c,d]of Object.entries(a))"string"==typeof d?b[c]=d.replace(RegExp(`^${e}`),""):Array.isArray(d)?b[c]=d.map(a=>"string"==typeof a?a.replace(RegExp(`^${e}`),""):a):b[c]=d;return b}},62192:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_HEADER:function(){return f},FLIGHT_HEADERS:function(){return n},NEXT_ACTION_NOT_FOUND_HEADER:function(){return u},NEXT_ACTION_REVALIDATED_HEADER:function(){return x},NEXT_DID_POSTPONE_HEADER:function(){return q},NEXT_HMR_REFRESH_HEADER:function(){return j},NEXT_HTML_REQUEST_ID_HEADER:function(){return w},NEXT_INSTANT_TEST_COOKIE:function(){return m},NEXT_IS_PRERENDER_HEADER:function(){return t},NEXT_REQUEST_ID_HEADER:function(){return v},NEXT_REWRITTEN_PATH_HEADER:function(){return r},NEXT_REWRITTEN_QUERY_HEADER:function(){return s},NEXT_ROUTER_PREFETCH_HEADER:function(){return h},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return i},NEXT_ROUTER_STALE_TIME_HEADER:function(){return p},NEXT_ROUTER_STATE_TREE_HEADER:function(){return g},NEXT_RSC_UNION_QUERY:function(){return o},NEXT_URL:function(){return k},RSC_CONTENT_TYPE_HEADER:function(){return l},RSC_HEADER:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="rsc",f="next-action",g="next-router-state-tree",h="next-router-prefetch",i="next-router-segment-prefetch",j="next-hmr-refresh",k="next-url",l="text/x-component",m="next-instant-navigation-testing",n=[e,g,h,j,i],o="_rsc",p="x-nextjs-stale-time",q="x-nextjs-postponed",r="x-nextjs-rewritten-path",s="x-nextjs-rewritten-query",t="x-nextjs-prerender",u="x-nextjs-action-not-found",v="x-nextjs-request-id",w="x-nextjs-html-request-id",x="x-action-revalidated";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},62447:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRouteMatcher",{enumerable:!0,get:function(){return f}});let d=c(80670),e=c(20742);function f({re:a,groups:b}){return(0,e.safeRouteMatcher)(c=>{let e=a.exec(c);if(!e)return!1;let f=a=>{try{return decodeURIComponent(a)}catch{throw Object.defineProperty(new d.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},g={};for(let[a,c]of Object.entries(b)){let b=e[c.pos];void 0!==b&&(c.repeat?g[a]=b.split("/").map(a=>f(a)):g[a]=f(b))}return g})}},62929:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return d}});var c,d=((c={}).PAGES="PAGES",c.PAGES_API="PAGES_API",c.APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.IMAGE="IMAGE",c)},62940:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ImageResponse:function(){return f.ImageResponse},NextRequest:function(){return g.NextRequest},NextResponse:function(){return h.NextResponse},URLPattern:function(){return j.URLPattern},after:function(){return k.after},connection:function(){return l.connection},userAgent:function(){return i.userAgent},userAgentFromString:function(){return i.userAgentFromString}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(42501),g=c(84573),h=c(17385),i=c(97645),j=c(34196),k=c(3144),l=c(19293)},62965:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MIN_PREFETCHABLE_STALE:function(){return g},MIN_PRERENDERABLE_EXPIRE:function(){return f},MIN_SHELL_STALE:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});c(42776);let f=300,g=30,h=300},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63891:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={createLocalRequestContext:function(){return i},getBuiltinRequestContext:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(89218);function g(){let a=globalThis[h];return null==a?void 0:a.get()}let h=Symbol.for("@next/request-context");function i(){let a=(0,f.createAsyncLocalStorage)();return{get:()=>a.getStore(),run:(b,c)=>a.run(b,c)}}},64718:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getRelativeURL:function(){return f},parseRelativeURL:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){let c="string"==typeof b?new URL(b):b,d=new URL(a,b),e=d.origin===c.origin;return{url:e?d.toString().slice(c.origin.length):d.toString(),isRelative:e}}function f(a,b){return e(a,b).url}},67205:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={executeRevalidates:function(){return j},withExecuteRevalidates:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(57155);async function g(a,b){if(!a)return b();let c=h(a);try{return await b()}finally{var d,e;let b,f,g=(d=c,e=h(a),b=new Set(d.pendingRevalidatedTags.map(a=>{let b="object"==typeof a.profile?JSON.stringify(a.profile):a.profile||"";return`${a.tag}:${b}`})),f=new Set(d.pendingRevalidateWrites),{pendingRevalidatedTags:e.pendingRevalidatedTags.filter(a=>{let c="object"==typeof a.profile?JSON.stringify(a.profile):a.profile||"";return!b.has(`${a.tag}:${c}`)}),pendingRevalidates:Object.fromEntries(Object.entries(e.pendingRevalidates).filter(([a])=>!(a in d.pendingRevalidates))),pendingRevalidateWrites:e.pendingRevalidateWrites.filter(a=>!f.has(a))});await j(a,g)}}function h(a){return{pendingRevalidatedTags:a.pendingRevalidatedTags?[...a.pendingRevalidatedTags]:[],pendingRevalidates:{...a.pendingRevalidates},pendingRevalidateWrites:a.pendingRevalidateWrites?[...a.pendingRevalidateWrites]:[]}}async function i(a,b,c){if(0===a.length)return;let d=(0,f.getCacheHandlers)(),e=[],g=new Map;for(let b of a){let a,c=b.profile;for(let[b]of g)if("string"==typeof b&&"string"==typeof c&&b===c||"object"==typeof b&&"object"==typeof c&&JSON.stringify(b)===JSON.stringify(c)||b===c){a=b;break}let d=a||c;g.has(d)||g.set(d,[]),g.get(d).push(b.tag)}for(let[a,f]of g){let g;if(a){let b;if("object"==typeof a)b=a;else if("string"==typeof a&&!(b=null==c?void 0:c.cacheLifeProfiles[a]))throw Object.defineProperty(Error(`Invalid profile provided "${a}" must be configured under cacheLife in next.config or be "max"`),"__NEXT_ERROR_CODE",{value:"E873",enumerable:!1,configurable:!0});b&&(g={expire:b.expire})}for(let b of d||[])a?e.push(null==b.updateTags?void 0:b.updateTags.call(b,f,g)):e.push(null==b.updateTags?void 0:b.updateTags.call(b,f));b&&e.push(b.revalidateTag(f,g))}await Promise.all(e)}function j(a,b){let c=[],d=(null==b?void 0:b.pendingRevalidatedTags)??a.pendingRevalidatedTags??[];return d.length>0&&c.push(i(d,a.incrementalCache,a)),c.push(...Object.values((null==b?void 0:b.pendingRevalidates)??a.pendingRevalidates??{})),c.push(...(null==b?void 0:b.pendingRevalidateWrites)??a.pendingRevalidateWrites??[]),0!==c.length&&Promise.all(c).then(()=>void 0)}},67301:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(77890);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return`${b}${c}${e}${f}`}},68047:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseRelativeUrl",{enumerable:!0,get:function(){return e}}),c(80670);let d=c(68202);function e(a,b,c=!0){let f=new URL("http://n"),g=b?new URL(b,f):a.startsWith(".")?new URL("http://n"):f,{pathname:h,searchParams:i,search:j,hash:k,href:l,origin:m}=a.startsWith("/")?new URL(`${g.protocol}//${g.host}${a}`):new URL(a,g);if(m!==f.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${a}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:h,port:null,protocol:null,query:c?(0,d.searchParamsToUrlQuery)(i):void 0,search:j,hash:k,href:l.slice(m.length),slashes:null}}},68202:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={assign:function(){return h},searchParamsToUrlQuery:function(){return e},urlQueryToSearchParams:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){let b={};for(let[c,d]of a.entries()){let a=b[c];void 0===a?b[c]=d:Array.isArray(a)?a.push(d):b[c]=[a,d]}return b}function f(a){return"string"==typeof a?a:("number"!=typeof a||isNaN(a))&&"boolean"!=typeof a?"":String(a)}function g(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a))if(Array.isArray(d))for(let a of d)b.append(c,f(a));else b.set(c,f(d));return b}function h(a,...b){for(let c of b){for(let b of c.keys())a.delete(b);for(let[b,d]of c.entries())a.append(b,d)}return a}},68802:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PageSignatureError:function(){return e},RemovedPageError:function(){return f},RemovedUAError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form:
|
|
134
134
|
|
|
135
135
|
export function middleware(request, event) {
|
|
136
136
|
return NextResponse.redirect('/new-location')
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
Read more: https://nextjs.org/docs/messages/middleware-new-signature
|
|
140
|
-
`),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1177",enumerable:!1,configurable:!0})}}class f extends Error{constructor(){super("The request.page has been deprecated in favour of `URLPattern`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n "),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1178",enumerable:!1,configurable:!0})}}class g extends Error{constructor(){super("The request.ua has been removed in favour of `userAgent` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n "),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1172",enumerable:!1,configurable:!0})}}},69128:(a,b,c)=>{"use strict";c.d(b,{f0:()=>h,kk:()=>g,oO:()=>f});var d=c(77598),e=c.n(d);function f(a){if(!a||"string"!=typeof a)return null;let b=a.trim();return b.length<=12?b.charAt(0)+"***":b.slice(0,8)+"***"+b.slice(-4)}function g(a){return a&&"string"==typeof a?e().createHash("sha256").update(a.trim()).digest("hex"):null}function h(a){return"string"==typeof a&&a.includes("***")}},69545:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={BailoutToCSRError:function(){return f},isBailoutToCSRError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="BAILOUT_TO_CLIENT_SIDE_RENDERING";class f extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===e}},69687:(a,b)=>{"use strict";function c(a,b){let c;if(b?.host&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},70580:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getNamedMiddlewareRegex:function(){return p},getNamedRouteRegex:function(){return o},getRouteRegex:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(96100),g=c(11042),h=c(73896),i=c(19524),j=c(31385);function k(a,b,c){let d={},e=1,f=[];for(let k of(0,i.removeTrailingSlash)(a).slice(1).split("/")){let a=g.INTERCEPTION_ROUTE_MARKERS.find(a=>k.startsWith(a)),i=k.match(j.PARAMETER_PATTERN);if(a&&i&&i[2]){let{key:b,optional:c,repeat:g}=(0,j.parseMatchedParameter)(i[2]);d[b]={pos:e++,repeat:g,optional:c},f.push(`/${(0,h.escapeStringRegexp)(a)}([^/]+?)`)}else if(i&&i[2]){let{key:a,repeat:b,optional:g}=(0,j.parseMatchedParameter)(i[2]);d[a]={pos:e++,repeat:b,optional:g},c&&i[1]&&f.push(`/${(0,h.escapeStringRegexp)(i[1])}`);let k=b?g?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";c&&i[1]&&(k=k.substring(1)),f.push(k)}else f.push(`/${(0,h.escapeStringRegexp)(k)}`);b&&i&&i[3]&&f.push((0,h.escapeStringRegexp)(i[3]))}return{parameterizedRoute:f.join(""),groups:d}}function l(a,{includeSuffix:b=!1,includePrefix:c=!1,excludeOptionalTrailingSlash:d=!1}={}){let{parameterizedRoute:e,groups:f}=k(a,b,c),g=e;return d||(g+="(?:/)?"),{re:RegExp(`^${g}$`),groups:f}}function m({interceptionMarker:a,getSafeRouteKey:b,segment:c,routeKeys:d,keyPrefix:e,backreferenceDuplicateKeys:f}){let g,{key:i,optional:k,repeat:l}=(0,j.parseMatchedParameter)(c),n=i.replace(/\W/g,"");e&&(n=`${e}${n}`);let o=!1;(0===n.length||n.length>30)&&(o=!0),isNaN(parseInt(n.slice(0,1)))||(o=!0),o&&(n=b());let p=n in d;e?d[n]=`${e}${i}`:d[n]=i;let q=a?(0,h.escapeStringRegexp)(a):"";return g=p&&f?`\\k<${n}>`:l?`(?<${n}>.+?)`:`(?<${n}>[^/]+?)`,{key:i,pattern:k?`(?:/${q}${g})?`:`/${q}${g}`,cleanedKey:n,optional:k,repeat:l}}function n(a,b,c,d,e,k={names:{},intercepted:{}}){let l,o=(l=0,()=>{let a="",b=++l;for(;b>0;)a+=String.fromCharCode(97+(b-1)%26),b=Math.floor((b-1)/26);return a}),p={},q=[],r=[];for(let l of(k=structuredClone(k),(0,i.removeTrailingSlash)(a).slice(1).split("/"))){let a,i=g.INTERCEPTION_ROUTE_MARKERS.some(a=>l.startsWith(a)),n=l.match(j.PARAMETER_PATTERN),s=i?n?.[1]:void 0;if(s&&n?.[2]?(a=b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,k.intercepted[n[2]]=s):a=n?.[2]&&k.intercepted[n[2]]?b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0:b?f.NEXT_QUERY_PARAM_PREFIX:void 0,s&&n&&n[2]){let{key:b,pattern:c,cleanedKey:d,repeat:f,optional:g}=m({getSafeRouteKey:o,interceptionMarker:s,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e});q.push(c),r.push(`/${n[1]}:${k.names[b]??d}${f?g?"*":"+":""}`),k.names[b]??=d}else if(n&&n[2]){d&&n[1]&&(q.push(`/${(0,h.escapeStringRegexp)(n[1])}`),r.push(`/${n[1]}`));let{key:b,pattern:c,cleanedKey:f,repeat:g,optional:i}=m({getSafeRouteKey:o,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e}),j=c;d&&n[1]&&(j=j.substring(1)),q.push(j),r.push(`/:${k.names[b]??f}${g?i?"*":"+":""}`),k.names[b]??=f}else q.push(`/${(0,h.escapeStringRegexp)(l)}`),r.push(`/${l}`);c&&n&&n[3]&&(q.push((0,h.escapeStringRegexp)(n[3])),r.push(n[3]))}return{namedParameterizedRoute:q.join(""),routeKeys:p,pathToRegexpPattern:r.join(""),reference:k}}function o(a,b){let c=n(a,b.prefixRouteKeys,b.includeSuffix??!1,b.includePrefix??!1,b.backreferenceDuplicateKeys??!1,b.reference),d=c.namedParameterizedRoute;return b.excludeOptionalTrailingSlash||(d+="(?:/)?"),{...l(a,b),namedRegex:`^${d}$`,routeKeys:c.routeKeys,pathToRegexpPattern:c.pathToRegexpPattern,reference:c.reference}}function p(a,b){let{parameterizedRoute:c}=k(a,!1,!1),{catchAll:d=!0}=b;if("/"===c)return{namedRegex:`^/${d?".*":""}$`};let{namedParameterizedRoute:e}=n(a,!1,!1,!1,!1,void 0);return{namedRegex:`^${e}${d?"(?:(/.*)?)":""}$`}}},71185:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseLoaderTree",{enumerable:!0,get:function(){return e}});let d=c(53610);function e(a){let[b,c,e,f]=a,{layout:g,template:h}=e,{page:i}=e;i=b===d.DEFAULT_SEGMENT_KEY?e.defaultPage:i;let j=g?.[1]||h?.[1]||i?.[1];return{page:i,segment:b,modules:e,conventionPath:j,parallelRoutes:c,staticSiblings:f}}},71509:(a,b,c)=>{"use strict";c.d(b,{U:()=>f});var d=c(59339),e=c(33323);function f(a){return{async get(b,c=null){let f=(await (0,d.cK)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.cK)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.cK)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.cK)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.cK)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.cK)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},72029:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={CloseController:function(){return g},trackBodyConsumed:function(){return e},trackStreamConsumed:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){return"string"==typeof a?async function*(){let c=new TextEncoder;yield c.encode(a),b()}():f(a,b)}function f(a,b){let c=new TransformStream,d=()=>b();return a.pipeTo(c.writable).then(d,d),c.readable}class g{onClose(a){if(this.isClosed)throw Object.defineProperty(Error("Cannot subscribe to a closed CloseController"),"__NEXT_ERROR_CODE",{value:"E365",enumerable:!1,configurable:!0});this.target.addEventListener("close",a),this.listeners++}dispatchClose(){if(this.isClosed)throw Object.defineProperty(Error("Cannot close a CloseController multiple times"),"__NEXT_ERROR_CODE",{value:"E229",enumerable:!1,configurable:!0});this.listeners>0&&this.target.dispatchEvent(new Event("close")),this.isClosed=!0}constructor(){this.target=new EventTarget,this.listeners=0,this.isClosed=!1}}},72045:(a,b,c)=>{"use strict";c.d(b,{jL:()=>l,nJ:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="10router",k="9router",l={main:"db.json",usage:"usage.json",disabled:"disabledModels.json",details:"request-details.json"};function m(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),k):g().join(i().homedir(),`.${k}`)}function n(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}let o=function(){let a=process.env.DATA_DIR;if(!a)return!function(){try{let a=m(),b=n();if(!e().existsSync(a)||e().existsSync(g().join(b,"db","data.sqlite"))||Object.values(l).some(a=>e().existsSync(g().join(b,a))))return;e().cpSync(a,b,{recursive:!0,force:!1}),console.log(`[migration] copied legacy data dir ${a} → ${b}`)}catch(a){console.warn(`[migration] failed to migrate ${m()} → ${n()}: ${a?.message}`)}}(),n();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),n();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),n();throw b}}()},72106:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(49540),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},72394:(a,b,c)=>{"use strict";var d,e;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return p}});let f=c(77714),g=c(9913),h=c(15e3),i=c(28704),j=c(72949);function k(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}d=c(98345),e=b,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})});let l=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),m=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),n="__ttl_sentinel__";function o(a,b){return`${a}\0${b??n}`}class p{constructor(a,b=m,c=l){this.getBatcher=f.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:i.scheduleOnNextTick}),this.revalidateBatcher=f.Batcher.create({schedulerFn:i.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new g.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===n?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=o(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,j.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,j.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,h.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:f=!1,isRoutePPREnabled:g=!1,isPrefetch:i=!1,waitUntil:k,routeKind:l,invocationID:m}=c,n=await this.getBatcher.batch({key:a,isOnDemandRevalidate:e},({resolve:c})=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:f,isRoutePPREnabled:g,isPrefetch:i,routeKind:l,invocationID:m},c);return k&&k(h),h});if(this.minimal_mode&&(null==n?void 0:n.cacheControl)){let b=o(a,m);this.cache.set(b,{entry:n,expiresAt:Date.now()+this.ttl})}return(0,j.toResponseCacheEntry)(n)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,j.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&-1!==e.isStale&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=c.isPrefetch&&null===e?await this.handleRevalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,f):await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,f);if(!g){if(this.minimal_mode){let b=o(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h){return this.revalidateBatcher.batch(a,()=>{let i=this.handleRevalidate(a,b,c,d,e,f,g);return h&&h(i),i})}async handleRevalidate(a,b,c,d,e,f,g){try{let h=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!h)return null;let i=await (0,j.fromResponseCacheEntry)({...h,isMiss:!f});return i.cacheControl&&!this.minimal_mode&&await b.set(a,i.value,{cacheControl:i.cacheControl,isRoutePPREnabled:c,isFallback:d}),i}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},72949:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={fromResponseCacheEntry:function(){return k},routeKindToIncrementalCacheKind:function(){return m},toResponseCacheEntry:function(){return l}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(98345),h=(d=c(7125))&&d.__esModule?d:{default:d},i=c(62929),j=c(96100);async function k(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function l(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,isFallback:a.isFallback,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function m(a){switch(a){case i.RouteKind.PAGES:return g.IncrementalCacheKind.PAGES;case i.RouteKind.APP_PAGE:return g.IncrementalCacheKind.APP_PAGE;case i.RouteKind.IMAGE:return g.IncrementalCacheKind.IMAGE;case i.RouteKind.APP_ROUTE:return g.IncrementalCacheKind.APP_ROUTE;case i.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},73024:a=>{"use strict";a.exports=require("node:fs")},73346:(a,b,c)=>{var d,e={943:function(e,f){!function(g){"use strict";var h="function",i="undefined",j="object",k="string",l="major",m="model",n="name",o="type",p="vendor",q="version",r="architecture",s="console",t="mobile",u="tablet",v="smarttv",w="wearable",x="embedded",y="Amazon",z="Apple",A="ASUS",B="BlackBerry",C="Browser",D="Chrome",E="Firefox",F="Google",G="Huawei",H="Microsoft",I="Motorola",J="Opera",K="Samsung",L="Sharp",M="Sony",N="Xiaomi",O="Zebra",P="Facebook",Q="Chromium OS",R="Mac OS",S=function(a,b){var c={};for(var d in a)b[d]&&b[d].length%2==0?c[d]=b[d].concat(a[d]):c[d]=a[d];return c},T=function(a){for(var b={},c=0;c<a.length;c++)b[a[c].toUpperCase()]=a[c];return b},U=function(a,b){return typeof a===k&&-1!==V(b).indexOf(V(a))},V=function(a){return a.toLowerCase()},W=function(a,b){if(typeof a===k)return a=a.replace(/^\s\s*/,""),typeof b===i?a:a.substring(0,350)},X=function(a,b){for(var c,d,e,f,g,i,k=0;k<b.length&&!g;){var l=b[k],m=b[k+1];for(c=d=0;c<l.length&&!g&&l[c];)if(g=l[c++].exec(a))for(e=0;e<m.length;e++)i=g[++d],typeof(f=m[e])===j&&f.length>0?2===f.length?typeof f[1]==h?this[f[0]]=f[1].call(this,i):this[f[0]]=f[1]:3===f.length?typeof f[1]!==h||f[1].exec&&f[1].test?this[f[0]]=i?i.replace(f[1],f[2]):void 0:this[f[0]]=i?f[1].call(this,i,f[2]):void 0:4===f.length&&(this[f[0]]=i?f[3].call(this,i.replace(f[1],f[2])):void 0):this[f]=i||void 0;k+=2}},Y=function(a,b){for(var c in b)if(typeof b[c]===j&&b[c].length>0){for(var d=0;d<b[c].length;d++)if(U(b[c][d],a))return"?"===c?void 0:c}else if(U(b[c],a))return"?"===c?void 0:c;return a},Z={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},$={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[q,[n,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[q,[n,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[n,q],[/opios[\/ ]+([\w\.]+)/i],[q,[n,J+" Mini"]],[/\bopr\/([\w\.]+)/i],[q,[n,J]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[n,q],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[q,[n,"UC"+C]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[q,[n,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[q,[n,"WeChat"]],[/konqueror\/([\w\.]+)/i],[q,[n,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[q,[n,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[q,[n,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[n,/(.+)/,"$1 Secure "+C],q],[/\bfocus\/([\w\.]+)/i],[q,[n,E+" Focus"]],[/\bopt\/([\w\.]+)/i],[q,[n,J+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[q,[n,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[q,[n,"Dolphin"]],[/coast\/([\w\.]+)/i],[q,[n,J+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[q,[n,"MIUI "+C]],[/fxios\/([-\w\.]+)/i],[q,[n,E]],[/\bqihu|(qi?ho?o?|360)browser/i],[[n,"360 "+C]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[n,/(.+)/,"$1 "+C],q],[/(comodo_dragon)\/([\w\.]+)/i],[[n,/_/g," "],q],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[n,q],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[n],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[n,P],q],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[n,q],[/\bgsa\/([\w\.]+) .*safari\//i],[q,[n,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[q,[n,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[q,[n,D+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[n,D+" WebView"],q],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[q,[n,"Android "+C]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[n,q],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[q,[n,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[q,n],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[n,[q,Y,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[n,q],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[n,"Netscape"],q],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[q,[n,E+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[n,q],[/(cobalt)\/([\w\.]+)/i],[n,[q,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[r,"amd64"]],[/(ia32(?=;))/i],[[r,V]],[/((?:i[346]|x)86)[;\)]/i],[[r,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[r,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[r,"armhf"]],[/windows (ce|mobile); ppc;/i],[[r,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[r,/ower/,"",V]],[/(sun4\w)[;\)]/i],[[r,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[r,V]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[p,K],[o,u]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[m,[p,K],[o,t]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[m,[p,z],[o,t]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[m,[p,z],[o,u]],[/(macintosh);/i],[m,[p,z]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[p,L],[o,t]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[m,[p,G],[o,u]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[m,[p,G],[o,t]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,t]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,u]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[p,"OPPO"],[o,t]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[p,"Vivo"],[o,t]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[m,[p,"Realme"],[o,t]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[m,[p,I],[o,t]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[p,I],[o,u]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[p,"LG"],[o,u]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[p,"LG"],[o,t]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[m,[p,"Lenovo"],[o,u]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[m,/_/g," "],[p,"Nokia"],[o,t]],[/(pixel c)\b/i],[m,[p,F],[o,u]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[m,[p,F],[o,t]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[m,[p,M],[o,t]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[p,M],[o,u]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[m,[p,"OnePlus"],[o,t]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[p,y],[o,u]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[p,y],[o,t]],[/(playbook);[-\w\),; ]+(rim)/i],[m,p,[o,u]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[m,[p,B],[o,t]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[p,A],[o,u]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[p,A],[o,t]],[/(nexus 9)/i],[m,[p,"HTC"],[o,u]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[p,[m,/_/g," "],[o,t]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[p,"Acer"],[o,u]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[p,"Meizu"],[o,t]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[p,m,[o,t]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[p,m,[o,u]],[/(surface duo)/i],[m,[p,H],[o,u]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[p,"Fairphone"],[o,t]],[/(u304aa)/i],[m,[p,"AT&T"],[o,t]],[/\bsie-(\w*)/i],[m,[p,"Siemens"],[o,t]],[/\b(rct\w+) b/i],[m,[p,"RCA"],[o,u]],[/\b(venue[\d ]{2,7}) b/i],[m,[p,"Dell"],[o,u]],[/\b(q(?:mv|ta)\w+) b/i],[m,[p,"Verizon"],[o,u]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[m,[p,"Barnes & Noble"],[o,u]],[/\b(tm\d{3}\w+) b/i],[m,[p,"NuVision"],[o,u]],[/\b(k88) b/i],[m,[p,"ZTE"],[o,u]],[/\b(nx\d{3}j) b/i],[m,[p,"ZTE"],[o,t]],[/\b(gen\d{3}) b.+49h/i],[m,[p,"Swiss"],[o,t]],[/\b(zur\d{3}) b/i],[m,[p,"Swiss"],[o,u]],[/\b((zeki)?tb.*\b) b/i],[m,[p,"Zeki"],[o,u]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[p,"Dragon Touch"],m,[o,u]],[/\b(ns-?\w{0,9}) b/i],[m,[p,"Insignia"],[o,u]],[/\b((nxa|next)-?\w{0,9}) b/i],[m,[p,"NextBook"],[o,u]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[p,"Voice"],m,[o,t]],[/\b(lvtel\-)?(v1[12]) b/i],[[p,"LvTel"],m,[o,t]],[/\b(ph-1) /i],[m,[p,"Essential"],[o,t]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[m,[p,"Envizen"],[o,u]],[/\b(trio[-\w\. ]+) b/i],[m,[p,"MachSpeed"],[o,u]],[/\btu_(1491) b/i],[m,[p,"Rotor"],[o,u]],[/(shield[\w ]+) b/i],[m,[p,"Nvidia"],[o,u]],[/(sprint) (\w+)/i],[p,m,[o,t]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[p,H],[o,t]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[p,O],[o,u]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[p,O],[o,t]],[/smart-tv.+(samsung)/i],[p,[o,v]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[p,K],[o,v]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[p,"LG"],[o,v]],[/(apple) ?tv/i],[p,[m,z+" TV"],[o,v]],[/crkey/i],[[m,D+"cast"],[p,F],[o,v]],[/droid.+aft(\w)( bui|\))/i],[m,[p,y],[o,v]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[p,L],[o,v]],[/(bravia[\w ]+)( bui|\))/i],[m,[p,M],[o,v]],[/(mitv-\w{5}) bui/i],[m,[p,N],[o,v]],[/Hbbtv.*(technisat) (.*);/i],[p,m,[o,v]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[p,W],[m,W],[o,v]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[o,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[p,m,[o,s]],[/droid.+; (shield) bui/i],[m,[p,"Nvidia"],[o,s]],[/(playstation [345portablevi]+)/i],[m,[p,M],[o,s]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[p,H],[o,s]],[/((pebble))app/i],[p,m,[o,w]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[p,z],[o,w]],[/droid.+; (glass) \d/i],[m,[p,F],[o,w]],[/droid.+; (wt63?0{2,3})\)/i],[m,[p,O],[o,w]],[/(quest( 2| pro)?)/i],[m,[p,P],[o,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[p,[o,x]],[/(aeobc)\b/i],[m,[p,y],[o,x]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[m,[o,t]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[m,[o,u]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[o,u]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[o,t]],[/(android[-\w\. ]{0,9});.+buil/i],[m,[p,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[q,[n,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[q,[n,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[n,q],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[q,n]],os:[[/microsoft (windows) (vista|xp)/i],[n,q],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[n,[q,Y,Z]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[n,"Windows"],[q,Y,Z]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[q,/_/g,"."],[n,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[n,R],[q,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[q,n],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[n,q],[/\(bb(10);/i],[q,[n,B]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[q,[n,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[q,[n,E+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[q,[n,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[q,[n,"watchOS"]],[/crkey\/([\d\.]+)/i],[q,[n,D+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[n,Q],q],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[n,q],[/(sunos) ?([\w\.\d]*)/i],[[n,"Solaris"],q],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[n,q]]},_=function(a,b){if(typeof a===j&&(b=a,a=void 0),!(this instanceof _))return new _(a,b).getResult();var c=typeof g!==i&&g.navigator?g.navigator:void 0,d=a||(c&&c.userAgent?c.userAgent:""),e=c&&c.userAgentData?c.userAgentData:void 0,f=b?S($,b):$,s=c&&c.userAgent==d;return this.getBrowser=function(){var a,b={};return b[n]=void 0,b[q]=void 0,X.call(b,d,f.browser),b[l]=typeof(a=b[q])===k?a.replace(/[^\d\.]/g,"").split(".")[0]:void 0,s&&c&&c.brave&&typeof c.brave.isBrave==h&&(b[n]="Brave"),b},this.getCPU=function(){var a={};return a[r]=void 0,X.call(a,d,f.cpu),a},this.getDevice=function(){var a={};return a[p]=void 0,a[m]=void 0,a[o]=void 0,X.call(a,d,f.device),s&&!a[o]&&e&&e.mobile&&(a[o]=t),s&&"Macintosh"==a[m]&&c&&typeof c.standalone!==i&&c.maxTouchPoints&&c.maxTouchPoints>2&&(a[m]="iPad",a[o]=u),a},this.getEngine=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.engine),a},this.getOS=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.os),s&&!a[n]&&e&&"Unknown"!=e.platform&&(a[n]=e.platform.replace(/chrome os/i,Q).replace(/macos/i,R)),a},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return d},this.setUA=function(a){return d=typeof a===k&&a.length>350?W(a,350):a,this},this.setUA(d),this};_.VERSION="1.0.35",_.BROWSER=T([n,q,l]),_.CPU=T([r]),_.DEVICE=T([m,p,o,s,t,v,u,w,x]),_.ENGINE=_.OS=T([n,q]),typeof f!==i?(e.exports&&(f=e.exports=_),f.UAParser=_):c.amdO?void 0===(d=(function(){return _}).call(b,c,b,a))||(a.exports=d):typeof g!==i&&(g.UAParser=_);var aa=typeof g!==i&&(g.jQuery||g.Zepto);if(aa&&!aa.ua){var ab=new _;aa.ua=ab.getResult(),aa.ua.get=function(){return ab.getUA()},aa.ua.set=function(a){ab.setUA(a);var b=ab.getResult();for(var c in b)aa.ua[c]=b[c]}}}("object"==typeof window?window:this)}},f={};function g(a){var b=f[a];if(void 0!==b)return b.exports;var c=f[a]={exports:{}},d=!0;try{e[a].call(c.exports,c,c.exports,g),d=!1}finally{d&&delete f[a]}return c.exports}g.ab=__dirname+"/",a.exports=g(943)},73896:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"escapeStringRegexp",{enumerable:!0,get:function(){return e}});let c=/[|\\{}()[\]^$+*?.-]/,d=/[|\\{}()[\]^$+*?.-]/g;function e(a){return c.test(a)?a.replace(d,"\\$&"):a}},75991:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={interceptTestApis:function(){return h},wrapRequestHandler:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(18975),g=c(57202);function h(){return(0,g.interceptFetch)(global.fetch)}function i(a){return(b,c)=>(0,f.withRequest)(b,g.reader,()=>a(b,c))}},76309:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestHint:function(){return E},adapter:function(){return I}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(68802),g=c(99751),h=c(16129),i=c(84573),j=c(17385),k=c(64718),l=c(92729),m=c(76496),n=c(92539),o=c(62192),p=c(32648),q=c(24453),r=c(63033),s=c(61595),t=c(29294),u=c(42776),v=c(12726),w=c(88026),x=c(72029),y=c(7370),z=c(63891),A=c(31574),B=c(6872),C=c(61544),D={get default(){throw Object.defineProperty(new u.InvariantError("Proxy does not support `use cache`, so reading its `default` cacheLife profile is unexpected."),"__NEXT_ERROR_CODE",{value:"E1406",enumerable:!1,configurable:!0})}};class E extends i.NextRequest{constructor(a){super(a.input,a.init),this.sourcePage=a.page}get request(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}respondWith(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}waitUntil(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}}let F={keys:a=>Array.from(a.keys()),get:(a,b)=>a.get(b)??void 0},G=(a,b)=>(0,v.getTracer)().withPropagatedContext(a.headers,b,F),H=!1;async function I(a){var b,d,e,f;let i,u;!function(){if(!H&&(H=!0,"true"===process.env.NEXT_PRIVATE_TEST_PROXY)){let{interceptTestApis:a,wrapRequestHandler:b}=c(75991);a(),G=b(G)}}(),await (0,p.ensureInstrumentationRegistered)();let F=void 0!==globalThis.__BUILD_MANIFEST;a.request.url=(0,n.normalizeRscURL)(a.request.url);let I=a.bypassNextUrl?new URL(a.request.url):new l.NextURL(a.request.url,{headers:a.request.headers,nextConfig:a.request.nextConfig});for(let a of[...I.searchParams.keys()]){let b=I.searchParams.getAll(a),c=(0,g.normalizeNextQueryParam)(a);if(c){for(let a of(I.searchParams.delete(c),b))I.searchParams.append(c,a);I.searchParams.delete(a)}}let J=process.env.__NEXT_BUILD_ID||"";"buildId"in I&&(J=I.buildId||"",I.buildId="");let K=(0,g.fromNodeOutgoingHttpHeaders)(a.request.headers),L=K.has("x-nextjs-data"),M=(0,B.isRSCRequestHeader)(K.get(o.RSC_HEADER));L&&"/index"===I.pathname&&(I.pathname="/");let N=new Map;if(!F)for(let a of o.FLIGHT_HEADERS){let b=K.get(a);null!==b&&(N.set(a,b),K.delete(a))}let O=I.searchParams.get(o.NEXT_RSC_UNION_QUERY),P=new E({page:a.page,input:(0,m.stripInternalSearchParams)(I).toString(),init:{body:a.request.body,headers:K,method:a.request.method,nextConfig:a.request.nextConfig,signal:a.request.signal}});a.request.requestMeta&&(0,C.setRequestMeta)(P,a.request.requestMeta),L&&Object.defineProperty(P,"__isData",{enumerable:!1,value:!0}),!globalThis.__incrementalCacheShared&&a.IncrementalCache&&(globalThis.__incrementalCache=new a.IncrementalCache({CurCacheHandler:a.incrementalCacheHandler,minimalMode:!0,fetchCacheKeyPrefix:"",dev:!1,requestHeaders:a.request.headers,getPrerenderManifest:()=>({version:-1,routes:{},dynamicRoutes:{},notFoundRoutes:[],preview:(0,y.getEdgePreviewProps)()})}));let Q=a.request.waitUntil??(null==(b=(0,z.getBuiltinRequestContext)())?void 0:b.waitUntil),R=new h.NextFetchEvent({request:P,page:a.page,context:Q?{waitUntil:Q}:void 0});if((i=await G(P,()=>{if("/middleware"===a.page||"/src/middleware"===a.page||"/proxy"===a.page||"/src/proxy"===a.page){let b=R.waitUntil.bind(R),c=new x.CloseController;return(0,v.getTracer)().trace(w.MiddlewareSpan.execute,{spanName:`middleware ${P.method}`,attributes:{"http.target":P.nextUrl.pathname,"http.method":P.method}},async()=>{try{var d,e;let f=(0,y.getEdgePreviewProps)(),g=await (0,A.getImplicitTags)("/",P.nextUrl.pathname,null),h=(0,q.createRequestStoreForAPI)(P,P.nextUrl,g,a=>{u=a},f,void 0),i=(0,s.createWorkStore)({page:"/",renderOpts:{cacheLifeProfiles:D,staticPageGenerationTimeout:0,cacheComponents:!1,validationLevel:"warning",experimental:{isRoutePPREnabled:!1,authInterrupts:!!(null==(e=a.request.nextConfig)||null==(d=e.experimental)?void 0:d.authInterrupts),useCacheTimeout:0},supportsDynamicResponse:!0,waitUntil:b,onClose:c.onClose.bind(c),onAfterTaskError:void 0},isPrefetchRequest:"1"===P.headers.get(o.NEXT_ROUTER_PREFETCH_HEADER),buildId:J??"",deploymentId:!1,previouslyRevalidatedTags:[]});return await t.workAsyncStorage.run(i,()=>r.workUnitAsyncStorage.run(h,a.handler,P,R))}finally{setTimeout(()=>{c.dispatchClose()},0)}})}return a.handler(P,R)}))&&!(i instanceof Response))throw Object.defineProperty(TypeError("Expected an instance of Response to be returned"),"__NEXT_ERROR_CODE",{value:"E567",enumerable:!1,configurable:!0});i&&u&&i.headers.set("set-cookie",u);let S=null==i?void 0:i.headers.get("x-middleware-rewrite");if(i&&S&&(M||!F)){let b=new l.NextURL(S,{forceLocale:!0,headers:a.request.headers,nextConfig:a.request.nextConfig});F||b.host!==P.nextUrl.host||(b.buildId=J||b.buildId,i.headers.set("x-middleware-rewrite",String(b)));let{url:c,isRelative:g}=(0,k.parseRelativeURL)(b.toString(),I.toString());!F&&L&&i.headers.set("x-nextjs-rewrite",c);let h=!g&&(null==(f=a.request.nextConfig)||null==(e=f.experimental)||null==(d=e.clientParamParsingOrigins)?void 0:d.some(a=>new RegExp(a).test(b.origin)));M&&(g||h)&&(I.pathname!==b.pathname&&i.headers.set(o.NEXT_REWRITTEN_PATH_HEADER,b.pathname),I.search!==b.search&&i.headers.set(o.NEXT_REWRITTEN_QUERY_HEADER,b.search.slice(1)))}if(i&&S&&M&&O){let a=new URL(S);a.searchParams.has(o.NEXT_RSC_UNION_QUERY)||(a.searchParams.set(o.NEXT_RSC_UNION_QUERY,O),i.headers.set("x-middleware-rewrite",a.toString()))}let T=null==i?void 0:i.headers.get("Location");if(i&&T&&!F){let b=new l.NextURL(T,{forceLocale:!1,headers:a.request.headers,nextConfig:a.request.nextConfig});i=new Response(i.body,i),b.host===I.host&&(b.buildId=J||b.buildId,i.headers.set("Location",(0,k.getRelativeURL)(b,I))),L&&(i.headers.delete("Location"),i.headers.set("x-nextjs-redirect",(0,k.getRelativeURL)(b.toString(),I.toString())))}let U=i||j.NextResponse.next(),V=U.headers.get("x-middleware-override-headers"),W=[];if(V){for(let[a,b]of N)U.headers.set(`x-middleware-request-${a}`,b),W.push(a);W.length>0&&U.headers.set("x-middleware-override-headers",V+","+W.join(","))}return{response:U,waitUntil:(0,h.getWaitUntilPromiseFromEvent)(R)??Promise.resolve(),fetchMetrics:P.fetchMetrics}}},76496:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={stripInternalQueries:function(){return h},stripInternalSearchParams:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g=[f.NEXT_RSC_UNION_QUERY];function h(a){for(let b of g)delete a[b]}function i(a){let b="string"==typeof a,c=b?new URL(a):a;return c.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b?c.toString():c}},76760:a=>{"use strict";a.exports=require("node:path")},76871:(a,b,c)=>{"use strict";c.d(b,{PROVIDER_ID_TO_ALIAS:()=>w,PROVIDER_MODELS:()=>s});var d=c(60651),e=c(41534);let f={baseUrl:"",format:"openai",headers:{},auth:{header:"Authorization",scheme:"bearer",source:["accessToken","apiKey"]},forceStream:!1,urlSuffix:"",quirks:{},passthroughModels:!1,retry:e.cI,timeoutMs:e.pH,executor:"default"};function g(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}let h=[[/^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 ${g(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${g(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${g(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${g(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${g(a[1])}`]];function i(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 h){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}let j={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"}},k=(...a)=>a.map(a=>({...j[a],type:"tts"})),l=k("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),m=k("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),n=["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"})),o={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":m,"tts-1":l,"tts-1-hd":l},allVoices:m},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":m,"openai/tts-1":l,"openai/tts-1-hd":l},allVoices:m},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:[{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"}]},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":n,"gemini-2.5-flash-preview-tts":n,"gemini-2.5-pro-preview-tts":n},allVoices:n},"xiaomi-mimo":{models:[{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",type:"tts"}],voices:{"mimo-v2.5-tts":[{id:"mimo_default",name:"mimo_default"},{id:"冰糖",name:"冰糖"},{id:"茉莉",name:"茉莉"},{id:"苏打",name:"苏打"},{id:"白桦",name:"白桦"},{id:"Mia",name:"Mia"},{id:"Chloe",name:"Chloe"},{id:"Milo",name:"Milo"},{id:"Dean",name:"Dean"}].map(a=>({type:"tts",...a}))}}},p=["clientId","clientSecret","tokenUrl"],q=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","systemoneConfig","rerankConfig","modelsFetcher","mediaPriority","hiddenKinds"]),r={},s={},t={},u={};for(let a of d.default){a.transport&&(r[a.id]=function(a,b){let c={...a};if(c.format||(c.format=f.format),b)for(let a of p)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(r[a.id].transports=a.transports)),void 0!==a.models&&(s[a.alias||a.id]=a.models.map(i)),a.oauth&&(t[a.id]=a.oauth);let b={};for(let c of q)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(u[a.id]=b)}Object.assign(s,function(){let a={};for(let[b,c]of Object.entries(o))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"]=o.openai.allVoices,a["openrouter-tts-voices"]=o.openrouter.allVoices,a}()),r["xiaomi-tokenplan"]?.regions,r["xiaomi-tokenplan"]?.defaultRegion;let v=Object.fromEntries(d.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),w=Object.fromEntries(Object.keys(r).map(a=>[a,v[a]||a]))},77150:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={allRequiredBoundariesRendered:function(){return f},createValidationBoundaryTracking:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(){return{requiredIds:new Map,renderedIds:new Set}}function f(a){for(let b of a.requiredIds.keys())if(!a.renderedIds.has(b))return!1;return!0}},77598:a=>{"use strict";a.exports=require("node:crypto")},77714:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(59841);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b({resolve:a=>Promise.resolve(a),key:a});let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let c=await b({resolve:g,key:a});g(c)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},77890:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c<b);return d||b>-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},79285:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},79646:a=>{"use strict";a.exports=require("child_process")},80099:a=>{"use strict";a.exports=require("node:sqlite")},80311:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ClientHookDynamicError:function(){return k},RENDER_STAGES_BY_DATA_KIND:function(){return A},applyOwnerStack:function(){return B},isClientHookDynamicError:function(){return l},isHangingPromiseRejectionError:function(){return g},makeClientHookHangingPromise:function(){return v},makeDevtoolsIOAwarePromise:function(){return z},makeDynamicHangingPromise:function(){return n},makeFallbackParamsHangingPromise:function(){return q},makePromiseFromTrigger:function(){return y},makeRuntimeHangingPromise:function(){return p},makeStageHangingPromise:function(){return r},makeUntrackedHangingPromise:function(){return o},trackFallbackParamsAccessed:function(){return t},trackRuntimeDataAccessed:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(54795);function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===h}c(63033),c(8128);let h="HANGING_PROMISE_REJECTION";class i extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=h}}let j="CLIENT_HOOK_DYNAMIC";class k extends Error{constructor(a,b){super(`Route "${a}": Next.js encountered URL data \`${b}\` in a Client Component outside of \`<Suspense>\`.
|
|
140
|
+
`),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1177",enumerable:!1,configurable:!0})}}class f extends Error{constructor(){super("The request.page has been deprecated in favour of `URLPattern`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n "),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1178",enumerable:!1,configurable:!0})}}class g extends Error{constructor(){super("The request.ua has been removed in favour of `userAgent` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n "),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1172",enumerable:!1,configurable:!0})}}},69128:(a,b,c)=>{"use strict";c.d(b,{f0:()=>h,kk:()=>g,oO:()=>f});var d=c(77598),e=c.n(d);function f(a){if(!a||"string"!=typeof a)return null;let b=a.trim();return b.length<=12?b.charAt(0)+"***":b.slice(0,8)+"***"+b.slice(-4)}function g(a){return a&&"string"==typeof a?e().createHash("sha256").update(a.trim()).digest("hex"):null}function h(a){return"string"==typeof a&&a.includes("***")}},69545:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={BailoutToCSRError:function(){return f},isBailoutToCSRError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="BAILOUT_TO_CLIENT_SIDE_RENDERING";class f extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===e}},69687:(a,b)=>{"use strict";function c(a,b){let c;if(b?.host&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},70580:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getNamedMiddlewareRegex:function(){return p},getNamedRouteRegex:function(){return o},getRouteRegex:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(96100),g=c(11042),h=c(73896),i=c(19524),j=c(31385);function k(a,b,c){let d={},e=1,f=[];for(let k of(0,i.removeTrailingSlash)(a).slice(1).split("/")){let a=g.INTERCEPTION_ROUTE_MARKERS.find(a=>k.startsWith(a)),i=k.match(j.PARAMETER_PATTERN);if(a&&i&&i[2]){let{key:b,optional:c,repeat:g}=(0,j.parseMatchedParameter)(i[2]);d[b]={pos:e++,repeat:g,optional:c},f.push(`/${(0,h.escapeStringRegexp)(a)}([^/]+?)`)}else if(i&&i[2]){let{key:a,repeat:b,optional:g}=(0,j.parseMatchedParameter)(i[2]);d[a]={pos:e++,repeat:b,optional:g},c&&i[1]&&f.push(`/${(0,h.escapeStringRegexp)(i[1])}`);let k=b?g?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";c&&i[1]&&(k=k.substring(1)),f.push(k)}else f.push(`/${(0,h.escapeStringRegexp)(k)}`);b&&i&&i[3]&&f.push((0,h.escapeStringRegexp)(i[3]))}return{parameterizedRoute:f.join(""),groups:d}}function l(a,{includeSuffix:b=!1,includePrefix:c=!1,excludeOptionalTrailingSlash:d=!1}={}){let{parameterizedRoute:e,groups:f}=k(a,b,c),g=e;return d||(g+="(?:/)?"),{re:RegExp(`^${g}$`),groups:f}}function m({interceptionMarker:a,getSafeRouteKey:b,segment:c,routeKeys:d,keyPrefix:e,backreferenceDuplicateKeys:f}){let g,{key:i,optional:k,repeat:l}=(0,j.parseMatchedParameter)(c),n=i.replace(/\W/g,"");e&&(n=`${e}${n}`);let o=!1;(0===n.length||n.length>30)&&(o=!0),isNaN(parseInt(n.slice(0,1)))||(o=!0),o&&(n=b());let p=n in d;e?d[n]=`${e}${i}`:d[n]=i;let q=a?(0,h.escapeStringRegexp)(a):"";return g=p&&f?`\\k<${n}>`:l?`(?<${n}>.+?)`:`(?<${n}>[^/]+?)`,{key:i,pattern:k?`(?:/${q}${g})?`:`/${q}${g}`,cleanedKey:n,optional:k,repeat:l}}function n(a,b,c,d,e,k={names:{},intercepted:{}}){let l,o=(l=0,()=>{let a="",b=++l;for(;b>0;)a+=String.fromCharCode(97+(b-1)%26),b=Math.floor((b-1)/26);return a}),p={},q=[],r=[];for(let l of(k=structuredClone(k),(0,i.removeTrailingSlash)(a).slice(1).split("/"))){let a,i=g.INTERCEPTION_ROUTE_MARKERS.some(a=>l.startsWith(a)),n=l.match(j.PARAMETER_PATTERN),s=i?n?.[1]:void 0;if(s&&n?.[2]?(a=b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,k.intercepted[n[2]]=s):a=n?.[2]&&k.intercepted[n[2]]?b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0:b?f.NEXT_QUERY_PARAM_PREFIX:void 0,s&&n&&n[2]){let{key:b,pattern:c,cleanedKey:d,repeat:f,optional:g}=m({getSafeRouteKey:o,interceptionMarker:s,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e});q.push(c),r.push(`/${n[1]}:${k.names[b]??d}${f?g?"*":"+":""}`),k.names[b]??=d}else if(n&&n[2]){d&&n[1]&&(q.push(`/${(0,h.escapeStringRegexp)(n[1])}`),r.push(`/${n[1]}`));let{key:b,pattern:c,cleanedKey:f,repeat:g,optional:i}=m({getSafeRouteKey:o,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e}),j=c;d&&n[1]&&(j=j.substring(1)),q.push(j),r.push(`/:${k.names[b]??f}${g?i?"*":"+":""}`),k.names[b]??=f}else q.push(`/${(0,h.escapeStringRegexp)(l)}`),r.push(`/${l}`);c&&n&&n[3]&&(q.push((0,h.escapeStringRegexp)(n[3])),r.push(n[3]))}return{namedParameterizedRoute:q.join(""),routeKeys:p,pathToRegexpPattern:r.join(""),reference:k}}function o(a,b){let c=n(a,b.prefixRouteKeys,b.includeSuffix??!1,b.includePrefix??!1,b.backreferenceDuplicateKeys??!1,b.reference),d=c.namedParameterizedRoute;return b.excludeOptionalTrailingSlash||(d+="(?:/)?"),{...l(a,b),namedRegex:`^${d}$`,routeKeys:c.routeKeys,pathToRegexpPattern:c.pathToRegexpPattern,reference:c.reference}}function p(a,b){let{parameterizedRoute:c}=k(a,!1,!1),{catchAll:d=!0}=b;if("/"===c)return{namedRegex:`^/${d?".*":""}$`};let{namedParameterizedRoute:e}=n(a,!1,!1,!1,!1,void 0);return{namedRegex:`^${e}${d?"(?:(/.*)?)":""}$`}}},71185:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseLoaderTree",{enumerable:!0,get:function(){return e}});let d=c(53610);function e(a){let[b,c,e,f]=a,{layout:g,template:h}=e,{page:i}=e;i=b===d.DEFAULT_SEGMENT_KEY?e.defaultPage:i;let j=g?.[1]||h?.[1]||i?.[1];return{page:i,segment:b,modules:e,conventionPath:j,parallelRoutes:c,staticSiblings:f}}},71509:(a,b,c)=>{"use strict";c.d(b,{U:()=>f});var d=c(59339),e=c(33323);function f(a){return{async get(b,c=null){let f=(await (0,d.cK)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.cK)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.cK)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.cK)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.cK)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.cK)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},72029:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={CloseController:function(){return g},trackBodyConsumed:function(){return e},trackStreamConsumed:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){return"string"==typeof a?async function*(){let c=new TextEncoder;yield c.encode(a),b()}():f(a,b)}function f(a,b){let c=new TransformStream,d=()=>b();return a.pipeTo(c.writable).then(d,d),c.readable}class g{onClose(a){if(this.isClosed)throw Object.defineProperty(Error("Cannot subscribe to a closed CloseController"),"__NEXT_ERROR_CODE",{value:"E365",enumerable:!1,configurable:!0});this.target.addEventListener("close",a),this.listeners++}dispatchClose(){if(this.isClosed)throw Object.defineProperty(Error("Cannot close a CloseController multiple times"),"__NEXT_ERROR_CODE",{value:"E229",enumerable:!1,configurable:!0});this.listeners>0&&this.target.dispatchEvent(new Event("close")),this.isClosed=!0}constructor(){this.target=new EventTarget,this.listeners=0,this.isClosed=!1}}},72045:(a,b,c)=>{"use strict";c.d(b,{jL:()=>l,nJ:()=>o});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="10router",k="9router",l={main:"db.json",usage:"usage.json",disabled:"disabledModels.json",details:"request-details.json"};function m(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),k):g().join(i().homedir(),`.${k}`)}function n(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}let o=function(){let a=process.env.DATA_DIR;if(!a)return!function(){try{let a=m(),b=n();if(!e().existsSync(a)||e().existsSync(g().join(b,"db","data.sqlite"))||Object.values(l).some(a=>e().existsSync(g().join(b,a))))return;e().cpSync(a,b,{recursive:!0,force:!1}),console.log(`[migration] copied legacy data dir ${a} → ${b}`)}catch(a){console.warn(`[migration] failed to migrate ${m()} → ${n()}: ${a?.message}`)}}(),n();if("win32"===process.platform&&/^\//.test(a))return console.warn(`[DATA_DIR] '${a}' is a Unix path on Windows → fallback to default`),n();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),n();throw b}}()},72106:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(49540),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},72394:(a,b,c)=>{"use strict";var d,e;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return p}});let f=c(77714),g=c(9913),h=c(15e3),i=c(28704),j=c(72949);function k(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}d=c(98345),e=b,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})});let l=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),m=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),n="__ttl_sentinel__";function o(a,b){return`${a}\0${b??n}`}class p{constructor(a,b=m,c=l){this.getBatcher=f.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:i.scheduleOnNextTick}),this.revalidateBatcher=f.Batcher.create({schedulerFn:i.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new g.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===n?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=o(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,j.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,j.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,h.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:f=!1,isRoutePPREnabled:g=!1,isPrefetch:i=!1,waitUntil:k,routeKind:l,invocationID:m}=c,n=await this.getBatcher.batch({key:a,isOnDemandRevalidate:e},({resolve:c})=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:f,isRoutePPREnabled:g,isPrefetch:i,routeKind:l,invocationID:m},c);return k&&k(h),h});if(this.minimal_mode&&(null==n?void 0:n.cacheControl)){let b=o(a,m);this.cache.set(b,{entry:n,expiresAt:Date.now()+this.ttl})}return(0,j.toResponseCacheEntry)(n)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,j.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&-1!==e.isStale&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=c.isPrefetch&&null===e?await this.handleRevalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,f):await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,f);if(!g){if(this.minimal_mode){let b=o(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h){return this.revalidateBatcher.batch(a,()=>{let i=this.handleRevalidate(a,b,c,d,e,f,g);return h&&h(i),i})}async handleRevalidate(a,b,c,d,e,f,g){try{let h=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!h)return null;let i=await (0,j.fromResponseCacheEntry)({...h,isMiss:!f});return i.cacheControl&&!this.minimal_mode&&await b.set(a,i.value,{cacheControl:i.cacheControl,isRoutePPREnabled:c,isFallback:d}),i}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},72949:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={fromResponseCacheEntry:function(){return k},routeKindToIncrementalCacheKind:function(){return m},toResponseCacheEntry:function(){return l}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(98345),h=(d=c(7125))&&d.__esModule?d:{default:d},i=c(62929),j=c(96100);async function k(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function l(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,isFallback:a.isFallback,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function m(a){switch(a){case i.RouteKind.PAGES:return g.IncrementalCacheKind.PAGES;case i.RouteKind.APP_PAGE:return g.IncrementalCacheKind.APP_PAGE;case i.RouteKind.IMAGE:return g.IncrementalCacheKind.IMAGE;case i.RouteKind.APP_ROUTE:return g.IncrementalCacheKind.APP_ROUTE;case i.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},73024:a=>{"use strict";a.exports=require("node:fs")},73346:(a,b,c)=>{var d,e={943:function(e,f){!function(g){"use strict";var h="function",i="undefined",j="object",k="string",l="major",m="model",n="name",o="type",p="vendor",q="version",r="architecture",s="console",t="mobile",u="tablet",v="smarttv",w="wearable",x="embedded",y="Amazon",z="Apple",A="ASUS",B="BlackBerry",C="Browser",D="Chrome",E="Firefox",F="Google",G="Huawei",H="Microsoft",I="Motorola",J="Opera",K="Samsung",L="Sharp",M="Sony",N="Xiaomi",O="Zebra",P="Facebook",Q="Chromium OS",R="Mac OS",S=function(a,b){var c={};for(var d in a)b[d]&&b[d].length%2==0?c[d]=b[d].concat(a[d]):c[d]=a[d];return c},T=function(a){for(var b={},c=0;c<a.length;c++)b[a[c].toUpperCase()]=a[c];return b},U=function(a,b){return typeof a===k&&-1!==V(b).indexOf(V(a))},V=function(a){return a.toLowerCase()},W=function(a,b){if(typeof a===k)return a=a.replace(/^\s\s*/,""),typeof b===i?a:a.substring(0,350)},X=function(a,b){for(var c,d,e,f,g,i,k=0;k<b.length&&!g;){var l=b[k],m=b[k+1];for(c=d=0;c<l.length&&!g&&l[c];)if(g=l[c++].exec(a))for(e=0;e<m.length;e++)i=g[++d],typeof(f=m[e])===j&&f.length>0?2===f.length?typeof f[1]==h?this[f[0]]=f[1].call(this,i):this[f[0]]=f[1]:3===f.length?typeof f[1]!==h||f[1].exec&&f[1].test?this[f[0]]=i?i.replace(f[1],f[2]):void 0:this[f[0]]=i?f[1].call(this,i,f[2]):void 0:4===f.length&&(this[f[0]]=i?f[3].call(this,i.replace(f[1],f[2])):void 0):this[f]=i||void 0;k+=2}},Y=function(a,b){for(var c in b)if(typeof b[c]===j&&b[c].length>0){for(var d=0;d<b[c].length;d++)if(U(b[c][d],a))return"?"===c?void 0:c}else if(U(b[c],a))return"?"===c?void 0:c;return a},Z={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},$={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[q,[n,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[q,[n,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[n,q],[/opios[\/ ]+([\w\.]+)/i],[q,[n,J+" Mini"]],[/\bopr\/([\w\.]+)/i],[q,[n,J]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[n,q],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[q,[n,"UC"+C]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i],[q,[n,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[q,[n,"WeChat"]],[/konqueror\/([\w\.]+)/i],[q,[n,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[q,[n,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[q,[n,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[n,/(.+)/,"$1 Secure "+C],q],[/\bfocus\/([\w\.]+)/i],[q,[n,E+" Focus"]],[/\bopt\/([\w\.]+)/i],[q,[n,J+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[q,[n,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[q,[n,"Dolphin"]],[/coast\/([\w\.]+)/i],[q,[n,J+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[q,[n,"MIUI "+C]],[/fxios\/([-\w\.]+)/i],[q,[n,E]],[/\bqihu|(qi?ho?o?|360)browser/i],[[n,"360 "+C]],[/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i],[[n,/(.+)/,"$1 "+C],q],[/(comodo_dragon)\/([\w\.]+)/i],[[n,/_/g," "],q],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[n,q],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i,/\[(linkedin)app\]/i],[n],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[n,P],q],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[n,q],[/\bgsa\/([\w\.]+) .*safari\//i],[q,[n,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[q,[n,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[q,[n,D+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[n,D+" WebView"],q],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[q,[n,"Android "+C]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[n,q],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[q,[n,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[q,n],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[n,[q,Y,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[n,q],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[n,"Netscape"],q],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[q,[n,E+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i,/panasonic;(viera)/i],[n,q],[/(cobalt)\/([\w\.]+)/i],[n,[q,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[r,"amd64"]],[/(ia32(?=;))/i],[[r,V]],[/((?:i[346]|x)86)[;\)]/i],[[r,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[r,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[r,"armhf"]],[/windows (ce|mobile); ppc;/i],[[r,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[r,/ower/,"",V]],[/(sun4\w)[;\)]/i],[[r,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[r,V]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[m,[p,K],[o,u]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[m,[p,K],[o,t]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[m,[p,z],[o,t]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[m,[p,z],[o,u]],[/(macintosh);/i],[m,[p,z]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[m,[p,L],[o,t]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[m,[p,G],[o,u]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[m,[p,G],[o,t]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,t]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[m,/_/g," "],[p,N],[o,u]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[m,[p,"OPPO"],[o,t]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[m,[p,"Vivo"],[o,t]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[m,[p,"Realme"],[o,t]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[m,[p,I],[o,t]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[m,[p,I],[o,u]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[m,[p,"LG"],[o,u]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[m,[p,"LG"],[o,t]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[m,[p,"Lenovo"],[o,u]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[m,/_/g," "],[p,"Nokia"],[o,t]],[/(pixel c)\b/i],[m,[p,F],[o,u]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[m,[p,F],[o,t]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[m,[p,M],[o,t]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[m,"Xperia Tablet"],[p,M],[o,u]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[m,[p,"OnePlus"],[o,t]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[m,[p,y],[o,u]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[m,/(.+)/g,"Fire Phone $1"],[p,y],[o,t]],[/(playbook);[-\w\),; ]+(rim)/i],[m,p,[o,u]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[m,[p,B],[o,t]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[m,[p,A],[o,u]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[m,[p,A],[o,t]],[/(nexus 9)/i],[m,[p,"HTC"],[o,u]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[p,[m,/_/g," "],[o,t]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[m,[p,"Acer"],[o,u]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[m,[p,"Meizu"],[o,t]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[p,m,[o,t]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[p,m,[o,u]],[/(surface duo)/i],[m,[p,H],[o,u]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[m,[p,"Fairphone"],[o,t]],[/(u304aa)/i],[m,[p,"AT&T"],[o,t]],[/\bsie-(\w*)/i],[m,[p,"Siemens"],[o,t]],[/\b(rct\w+) b/i],[m,[p,"RCA"],[o,u]],[/\b(venue[\d ]{2,7}) b/i],[m,[p,"Dell"],[o,u]],[/\b(q(?:mv|ta)\w+) b/i],[m,[p,"Verizon"],[o,u]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[m,[p,"Barnes & Noble"],[o,u]],[/\b(tm\d{3}\w+) b/i],[m,[p,"NuVision"],[o,u]],[/\b(k88) b/i],[m,[p,"ZTE"],[o,u]],[/\b(nx\d{3}j) b/i],[m,[p,"ZTE"],[o,t]],[/\b(gen\d{3}) b.+49h/i],[m,[p,"Swiss"],[o,t]],[/\b(zur\d{3}) b/i],[m,[p,"Swiss"],[o,u]],[/\b((zeki)?tb.*\b) b/i],[m,[p,"Zeki"],[o,u]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[p,"Dragon Touch"],m,[o,u]],[/\b(ns-?\w{0,9}) b/i],[m,[p,"Insignia"],[o,u]],[/\b((nxa|next)-?\w{0,9}) b/i],[m,[p,"NextBook"],[o,u]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[p,"Voice"],m,[o,t]],[/\b(lvtel\-)?(v1[12]) b/i],[[p,"LvTel"],m,[o,t]],[/\b(ph-1) /i],[m,[p,"Essential"],[o,t]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[m,[p,"Envizen"],[o,u]],[/\b(trio[-\w\. ]+) b/i],[m,[p,"MachSpeed"],[o,u]],[/\btu_(1491) b/i],[m,[p,"Rotor"],[o,u]],[/(shield[\w ]+) b/i],[m,[p,"Nvidia"],[o,u]],[/(sprint) (\w+)/i],[p,m,[o,t]],[/(kin\.[onetw]{3})/i],[[m,/\./g," "],[p,H],[o,t]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[m,[p,O],[o,u]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[m,[p,O],[o,t]],[/smart-tv.+(samsung)/i],[p,[o,v]],[/hbbtv.+maple;(\d+)/i],[[m,/^/,"SmartTV"],[p,K],[o,v]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[p,"LG"],[o,v]],[/(apple) ?tv/i],[p,[m,z+" TV"],[o,v]],[/crkey/i],[[m,D+"cast"],[p,F],[o,v]],[/droid.+aft(\w)( bui|\))/i],[m,[p,y],[o,v]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[m,[p,L],[o,v]],[/(bravia[\w ]+)( bui|\))/i],[m,[p,M],[o,v]],[/(mitv-\w{5}) bui/i],[m,[p,N],[o,v]],[/Hbbtv.*(technisat) (.*);/i],[p,m,[o,v]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[p,W],[m,W],[o,v]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[o,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[p,m,[o,s]],[/droid.+; (shield) bui/i],[m,[p,"Nvidia"],[o,s]],[/(playstation [345portablevi]+)/i],[m,[p,M],[o,s]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[m,[p,H],[o,s]],[/((pebble))app/i],[p,m,[o,w]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[m,[p,z],[o,w]],[/droid.+; (glass) \d/i],[m,[p,F],[o,w]],[/droid.+; (wt63?0{2,3})\)/i],[m,[p,O],[o,w]],[/(quest( 2| pro)?)/i],[m,[p,P],[o,w]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[p,[o,x]],[/(aeobc)\b/i],[m,[p,y],[o,x]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[m,[o,t]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[m,[o,u]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[o,u]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[o,t]],[/(android[-\w\. ]{0,9});.+buil/i],[m,[p,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[q,[n,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[q,[n,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[n,q],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[q,n]],os:[[/microsoft (windows) (vista|xp)/i],[n,q],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[n,[q,Y,Z]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[n,"Windows"],[q,Y,Z]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/ios;fbsv\/([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[q,/_/g,"."],[n,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[n,R],[q,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[q,n],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[n,q],[/\(bb(10);/i],[q,[n,B]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[q,[n,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[q,[n,E+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[q,[n,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[q,[n,"watchOS"]],[/crkey\/([\d\.]+)/i],[q,[n,D+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[n,Q],q],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[n,q],[/(sunos) ?([\w\.\d]*)/i],[[n,"Solaris"],q],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[n,q]]},_=function(a,b){if(typeof a===j&&(b=a,a=void 0),!(this instanceof _))return new _(a,b).getResult();var c=typeof g!==i&&g.navigator?g.navigator:void 0,d=a||(c&&c.userAgent?c.userAgent:""),e=c&&c.userAgentData?c.userAgentData:void 0,f=b?S($,b):$,s=c&&c.userAgent==d;return this.getBrowser=function(){var a,b={};return b[n]=void 0,b[q]=void 0,X.call(b,d,f.browser),b[l]=typeof(a=b[q])===k?a.replace(/[^\d\.]/g,"").split(".")[0]:void 0,s&&c&&c.brave&&typeof c.brave.isBrave==h&&(b[n]="Brave"),b},this.getCPU=function(){var a={};return a[r]=void 0,X.call(a,d,f.cpu),a},this.getDevice=function(){var a={};return a[p]=void 0,a[m]=void 0,a[o]=void 0,X.call(a,d,f.device),s&&!a[o]&&e&&e.mobile&&(a[o]=t),s&&"Macintosh"==a[m]&&c&&typeof c.standalone!==i&&c.maxTouchPoints&&c.maxTouchPoints>2&&(a[m]="iPad",a[o]=u),a},this.getEngine=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.engine),a},this.getOS=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.os),s&&!a[n]&&e&&"Unknown"!=e.platform&&(a[n]=e.platform.replace(/chrome os/i,Q).replace(/macos/i,R)),a},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return d},this.setUA=function(a){return d=typeof a===k&&a.length>350?W(a,350):a,this},this.setUA(d),this};_.VERSION="1.0.35",_.BROWSER=T([n,q,l]),_.CPU=T([r]),_.DEVICE=T([m,p,o,s,t,v,u,w,x]),_.ENGINE=_.OS=T([n,q]),typeof f!==i?(e.exports&&(f=e.exports=_),f.UAParser=_):c.amdO?void 0===(d=(function(){return _}).call(b,c,b,a))||(a.exports=d):typeof g!==i&&(g.UAParser=_);var aa=typeof g!==i&&(g.jQuery||g.Zepto);if(aa&&!aa.ua){var ab=new _;aa.ua=ab.getResult(),aa.ua.get=function(){return ab.getUA()},aa.ua.set=function(a){ab.setUA(a);var b=ab.getResult();for(var c in b)aa.ua[c]=b[c]}}}("object"==typeof window?window:this)}},f={};function g(a){var b=f[a];if(void 0!==b)return b.exports;var c=f[a]={exports:{}},d=!0;try{e[a].call(c.exports,c,c.exports,g),d=!1}finally{d&&delete f[a]}return c.exports}g.ab=__dirname+"/",a.exports=g(943)},73896:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"escapeStringRegexp",{enumerable:!0,get:function(){return e}});let c=/[|\\{}()[\]^$+*?.-]/,d=/[|\\{}()[\]^$+*?.-]/g;function e(a){return c.test(a)?a.replace(d,"\\$&"):a}},75991:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={interceptTestApis:function(){return h},wrapRequestHandler:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(18975),g=c(57202);function h(){return(0,g.interceptFetch)(global.fetch)}function i(a){return(b,c)=>(0,f.withRequest)(b,g.reader,()=>a(b,c))}},76309:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestHint:function(){return E},adapter:function(){return I}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(68802),g=c(99751),h=c(16129),i=c(84573),j=c(17385),k=c(64718),l=c(92729),m=c(76496),n=c(92539),o=c(62192),p=c(32648),q=c(24453),r=c(63033),s=c(61595),t=c(29294),u=c(42776),v=c(12726),w=c(88026),x=c(72029),y=c(7370),z=c(63891),A=c(31574),B=c(6872),C=c(61544),D={get default(){throw Object.defineProperty(new u.InvariantError("Proxy does not support `use cache`, so reading its `default` cacheLife profile is unexpected."),"__NEXT_ERROR_CODE",{value:"E1406",enumerable:!1,configurable:!0})}};class E extends i.NextRequest{constructor(a){super(a.input,a.init),this.sourcePage=a.page}get request(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}respondWith(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}waitUntil(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}}let F={keys:a=>Array.from(a.keys()),get:(a,b)=>a.get(b)??void 0},G=(a,b)=>(0,v.getTracer)().withPropagatedContext(a.headers,b,F),H=!1;async function I(a){var b,d,e,f;let i,u;!function(){if(!H&&(H=!0,"true"===process.env.NEXT_PRIVATE_TEST_PROXY)){let{interceptTestApis:a,wrapRequestHandler:b}=c(75991);a(),G=b(G)}}(),await (0,p.ensureInstrumentationRegistered)();let F=void 0!==globalThis.__BUILD_MANIFEST;a.request.url=(0,n.normalizeRscURL)(a.request.url);let I=a.bypassNextUrl?new URL(a.request.url):new l.NextURL(a.request.url,{headers:a.request.headers,nextConfig:a.request.nextConfig});for(let a of[...I.searchParams.keys()]){let b=I.searchParams.getAll(a),c=(0,g.normalizeNextQueryParam)(a);if(c){for(let a of(I.searchParams.delete(c),b))I.searchParams.append(c,a);I.searchParams.delete(a)}}let J=process.env.__NEXT_BUILD_ID||"";"buildId"in I&&(J=I.buildId||"",I.buildId="");let K=(0,g.fromNodeOutgoingHttpHeaders)(a.request.headers),L=K.has("x-nextjs-data"),M=(0,B.isRSCRequestHeader)(K.get(o.RSC_HEADER));L&&"/index"===I.pathname&&(I.pathname="/");let N=new Map;if(!F)for(let a of o.FLIGHT_HEADERS){let b=K.get(a);null!==b&&(N.set(a,b),K.delete(a))}let O=I.searchParams.get(o.NEXT_RSC_UNION_QUERY),P=new E({page:a.page,input:(0,m.stripInternalSearchParams)(I).toString(),init:{body:a.request.body,headers:K,method:a.request.method,nextConfig:a.request.nextConfig,signal:a.request.signal}});a.request.requestMeta&&(0,C.setRequestMeta)(P,a.request.requestMeta),L&&Object.defineProperty(P,"__isData",{enumerable:!1,value:!0}),!globalThis.__incrementalCacheShared&&a.IncrementalCache&&(globalThis.__incrementalCache=new a.IncrementalCache({CurCacheHandler:a.incrementalCacheHandler,minimalMode:!0,fetchCacheKeyPrefix:"",dev:!1,requestHeaders:a.request.headers,getPrerenderManifest:()=>({version:-1,routes:{},dynamicRoutes:{},notFoundRoutes:[],preview:(0,y.getEdgePreviewProps)()})}));let Q=a.request.waitUntil??(null==(b=(0,z.getBuiltinRequestContext)())?void 0:b.waitUntil),R=new h.NextFetchEvent({request:P,page:a.page,context:Q?{waitUntil:Q}:void 0});if((i=await G(P,()=>{if("/middleware"===a.page||"/src/middleware"===a.page||"/proxy"===a.page||"/src/proxy"===a.page){let b=R.waitUntil.bind(R),c=new x.CloseController;return(0,v.getTracer)().trace(w.MiddlewareSpan.execute,{spanName:`middleware ${P.method}`,attributes:{"http.target":P.nextUrl.pathname,"http.method":P.method}},async()=>{try{var d,e;let f=(0,y.getEdgePreviewProps)(),g=await (0,A.getImplicitTags)("/",P.nextUrl.pathname,null),h=(0,q.createRequestStoreForAPI)(P,P.nextUrl,g,a=>{u=a},f,void 0),i=(0,s.createWorkStore)({page:"/",renderOpts:{cacheLifeProfiles:D,staticPageGenerationTimeout:0,cacheComponents:!1,validationLevel:"warning",experimental:{isRoutePPREnabled:!1,authInterrupts:!!(null==(e=a.request.nextConfig)||null==(d=e.experimental)?void 0:d.authInterrupts),useCacheTimeout:0},supportsDynamicResponse:!0,waitUntil:b,onClose:c.onClose.bind(c),onAfterTaskError:void 0},isPrefetchRequest:"1"===P.headers.get(o.NEXT_ROUTER_PREFETCH_HEADER),buildId:J??"",deploymentId:!1,previouslyRevalidatedTags:[]});return await t.workAsyncStorage.run(i,()=>r.workUnitAsyncStorage.run(h,a.handler,P,R))}finally{setTimeout(()=>{c.dispatchClose()},0)}})}return a.handler(P,R)}))&&!(i instanceof Response))throw Object.defineProperty(TypeError("Expected an instance of Response to be returned"),"__NEXT_ERROR_CODE",{value:"E567",enumerable:!1,configurable:!0});i&&u&&i.headers.set("set-cookie",u);let S=null==i?void 0:i.headers.get("x-middleware-rewrite");if(i&&S&&(M||!F)){let b=new l.NextURL(S,{forceLocale:!0,headers:a.request.headers,nextConfig:a.request.nextConfig});F||b.host!==P.nextUrl.host||(b.buildId=J||b.buildId,i.headers.set("x-middleware-rewrite",String(b)));let{url:c,isRelative:g}=(0,k.parseRelativeURL)(b.toString(),I.toString());!F&&L&&i.headers.set("x-nextjs-rewrite",c);let h=!g&&(null==(f=a.request.nextConfig)||null==(e=f.experimental)||null==(d=e.clientParamParsingOrigins)?void 0:d.some(a=>new RegExp(a).test(b.origin)));M&&(g||h)&&(I.pathname!==b.pathname&&i.headers.set(o.NEXT_REWRITTEN_PATH_HEADER,b.pathname),I.search!==b.search&&i.headers.set(o.NEXT_REWRITTEN_QUERY_HEADER,b.search.slice(1)))}if(i&&S&&M&&O){let a=new URL(S);a.searchParams.has(o.NEXT_RSC_UNION_QUERY)||(a.searchParams.set(o.NEXT_RSC_UNION_QUERY,O),i.headers.set("x-middleware-rewrite",a.toString()))}let T=null==i?void 0:i.headers.get("Location");if(i&&T&&!F){let b=new l.NextURL(T,{forceLocale:!1,headers:a.request.headers,nextConfig:a.request.nextConfig});i=new Response(i.body,i),b.host===I.host&&(b.buildId=J||b.buildId,i.headers.set("Location",(0,k.getRelativeURL)(b,I))),L&&(i.headers.delete("Location"),i.headers.set("x-nextjs-redirect",(0,k.getRelativeURL)(b.toString(),I.toString())))}let U=i||j.NextResponse.next(),V=U.headers.get("x-middleware-override-headers"),W=[];if(V){for(let[a,b]of N)U.headers.set(`x-middleware-request-${a}`,b),W.push(a);W.length>0&&U.headers.set("x-middleware-override-headers",V+","+W.join(","))}return{response:U,waitUntil:(0,h.getWaitUntilPromiseFromEvent)(R)??Promise.resolve(),fetchMetrics:P.fetchMetrics}}},76496:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={stripInternalQueries:function(){return h},stripInternalSearchParams:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g=[f.NEXT_RSC_UNION_QUERY];function h(a){for(let b of g)delete a[b]}function i(a){let b="string"==typeof a,c=b?new URL(a):a;return c.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b?c.toString():c}},76760:a=>{"use strict";a.exports=require("node:path")},76871:(a,b,c)=>{"use strict";c.d(b,{PROVIDER_ID_TO_ALIAS:()=>w,PROVIDER_MODELS:()=>s});var d=c(96359),e=c(41534);let f={baseUrl:"",format:"openai",headers:{},auth:{header:"Authorization",scheme:"bearer",source:["accessToken","apiKey"]},forceStream:!1,urlSuffix:"",quirks:{},passthroughModels:!1,retry:e.cI,timeoutMs:e.pH,executor:"default"};function g(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}let h=[[/^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 ${g(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${g(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${g(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${g(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${g(a[1])}`]];function i(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 h){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}let j={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"}},k=(...a)=>a.map(a=>({...j[a],type:"tts"})),l=k("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),m=k("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),n=["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"})),o={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":m,"tts-1":l,"tts-1-hd":l},allVoices:m},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":m,"openai/tts-1":l,"openai/tts-1-hd":l},allVoices:m},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:[{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"}]},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":n,"gemini-2.5-flash-preview-tts":n,"gemini-2.5-pro-preview-tts":n},allVoices:n},"xiaomi-mimo":{models:[{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",type:"tts"}],voices:{"mimo-v2.5-tts":[{id:"mimo_default",name:"mimo_default"},{id:"冰糖",name:"冰糖"},{id:"茉莉",name:"茉莉"},{id:"苏打",name:"苏打"},{id:"白桦",name:"白桦"},{id:"Mia",name:"Mia"},{id:"Chloe",name:"Chloe"},{id:"Milo",name:"Milo"},{id:"Dean",name:"Dean"}].map(a=>({type:"tts",...a}))}}},p=["clientId","clientSecret","tokenUrl"],q=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","systemoneConfig","rerankConfig","modelsFetcher","mediaPriority","hiddenKinds"]),r={},s={},t={},u={};for(let a of d.default){a.transport&&(r[a.id]=function(a,b){let c={...a};if(c.format||(c.format=f.format),b)for(let a of p)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(r[a.id].transports=a.transports)),void 0!==a.models&&(s[a.alias||a.id]=a.models.map(i)),a.oauth&&(t[a.id]=a.oauth);let b={};for(let c of q)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(u[a.id]=b)}Object.assign(s,function(){let a={};for(let[b,c]of Object.entries(o))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"]=o.openai.allVoices,a["openrouter-tts-voices"]=o.openrouter.allVoices,a}()),r["xiaomi-tokenplan"]?.regions,r["xiaomi-tokenplan"]?.defaultRegion;let v=Object.fromEntries(d.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),w=Object.fromEntries(Object.keys(r).map(a=>[a,v[a]||a]))},77150:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={allRequiredBoundariesRendered:function(){return f},createValidationBoundaryTracking:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(){return{requiredIds:new Map,renderedIds:new Set}}function f(a){for(let b of a.requiredIds.keys())if(!a.renderedIds.has(b))return!1;return!0}},77598:a=>{"use strict";a.exports=require("node:crypto")},77714:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(59841);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b({resolve:a=>Promise.resolve(a),key:a});let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let c=await b({resolve:g,key:a});g(c)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},77890:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c<b);return d||b>-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},79285:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},79646:a=>{"use strict";a.exports=require("child_process")},80099:a=>{"use strict";a.exports=require("node:sqlite")},80311:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ClientHookDynamicError:function(){return k},RENDER_STAGES_BY_DATA_KIND:function(){return A},applyOwnerStack:function(){return B},isClientHookDynamicError:function(){return l},isHangingPromiseRejectionError:function(){return g},makeClientHookHangingPromise:function(){return v},makeDevtoolsIOAwarePromise:function(){return z},makeDynamicHangingPromise:function(){return n},makeFallbackParamsHangingPromise:function(){return q},makePromiseFromTrigger:function(){return y},makeRuntimeHangingPromise:function(){return p},makeStageHangingPromise:function(){return r},makeUntrackedHangingPromise:function(){return o},trackFallbackParamsAccessed:function(){return t},trackRuntimeDataAccessed:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(54795);function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===h}c(63033),c(8128);let h="HANGING_PROMISE_REJECTION";class i extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=h}}let j="CLIENT_HOOK_DYNAMIC";class k extends Error{constructor(a,b){super(`Route "${a}": Next.js encountered URL data \`${b}\` in a Client Component outside of \`<Suspense>\`.
|
|
141
141
|
|
|
142
142
|
This blocks prerendering because the value is only available at runtime.
|
|
143
143
|
|
|
@@ -165,7 +165,7 @@ Ways to fix this:
|
|
|
165
165
|
- [disable] Remove \`prefetch={true}\` from the <Link> to use the default prefetch
|
|
166
166
|
- [ignore] Set \`export const instant = false\` to opt the route out of instant-navigation validation
|
|
167
167
|
|
|
168
|
-
Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},84573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(92729),g=c(99751),h=c(68802),i=c(38955),j=Symbol("internal request");class k extends Request{constructor(a,b={}){const c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);const d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},85292:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AfterContext",{enumerable:!0,get:function(){return m}});let e=(d=c(90132))&&d.__esModule?d:{default:d},f=c(42776),g=c(32053),h=c(29294),i=c(67205),j=c(89218),k=c(3295),l=c(28704);class m{constructor({waitUntil:a,onClose:b,onTaskError:c}){this.isRequestClosed=!1,this.initialOnCloseError=null,this.workUnitStores=new Set,this.waitUntil=a,this.onClose=b,this.onTaskError=c,this.callbackQueue=new e.default,this.callbackQueue.pause();try{b(()=>{for(let a of(this.isRequestClosed=!0,this.workUnitStores))a.phase="after"})}catch(a){this.initialOnCloseError={error:a}}}after(a,b){if(this.initialOnCloseError)throw Object.defineProperty(new f.InvariantError("An onClose call failed, which means after() can't work correctly.",{cause:this.initialOnCloseError.error}),"__NEXT_ERROR_CODE",{value:"E1376",enumerable:!1,configurable:!0});if(this.workUnitStores.add(b),(0,g.isThenable)(a))this.addThenable(a);else if("function"==typeof a)this.addCallback(a,b);else throw Object.defineProperty(Error("`after()`: Argument must be a promise or a function"),"__NEXT_ERROR_CODE",{value:"E50",enumerable:!1,configurable:!0})}addThenable(a){this.waitUntil||n(),this.waitUntil(new Promise(b=>{a.then(()=>{b()},a=>{b(),this.reportTaskError("promise",a)})}))}addCallback(a,b){this.waitUntil||n();let c=k.afterTaskAsyncStorage.getStore(),d=c?c.rootTaskSpawnPhase:b.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let e=(0,j.bindSnapshot)(async()=>{try{await k.afterTaskAsyncStorage.run({rootTaskSpawnPhase:d},()=>a())}catch(a){this.reportTaskError("function",a)}});this.callbackQueue.add(e)}async runCallbacksOnClose(){return this.isRequestClosed?await new Promise(a=>(0,l.scheduleImmediate)(a)):await new Promise(a=>this.onClose(a)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;let a=h.workAsyncStorage.getStore();if(!a)throw Object.defineProperty(new f.InvariantError("Missing workStore in AfterContext.runCallbacks"),"__NEXT_ERROR_CODE",{value:"E547",enumerable:!1,configurable:!0});return(0,i.withExecuteRevalidates)(a,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(a,b){if(console.error("promise"===a?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",b),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,b)}catch(a){console.error(Object.defineProperty(new f.InvariantError("`onTaskError` threw while handling an error thrown from an `after` task",{cause:a}),"__NEXT_ERROR_CODE",{value:"E569",enumerable:!1,configurable:!0}))}}}function n(){throw Object.defineProperty(Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment."),"__NEXT_ERROR_CODE",{value:"E91",enumerable:!1,configurable:!0})}},85304:(a,b,c)=>{"use strict";c.d(b,{exportSettings:()=>i,getSettings:()=>h});var d=c(59339),e=c(33323);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},topologyVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},comboRetryOnEmpty:!1,comboRetryOnEmptyLimit:2,capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,hideLoginOffBanner:!1,autoUpdateCheck:!0,requireApiKey:!0,dailyTokenLimitEnabled:!0,autoCompactEnabled:!0,autoCompactRatio:.95,autoCompactKeepMessages:8,apiKeyRotation:!1,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:10router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,codeBuddyCheckin:!1,codeBuddyCompensation:!1,codeBuddyDailyDone:{},codeBuddyCompensationDone:{},qoderCheckin:!1,qoderDailyDone:{},minimaxCheckin:!1,minimaxDailyDone:{},channelBlocks:{}};async function g(){let a=(await (0,d.cK)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}async function h(){var a=await g();let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function i(){return await g()}},85503:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getSortedRouteObjects:function(){return g},getSortedRoutes:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let e=d.slice(1,-1),g=!1;if(e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1),g=!0),e.startsWith("…"))throw Object.defineProperty(Error(`Detected a three-dot character ('…') at ('${e}'). Did you mean ('...')?`),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(e.startsWith("...")&&(e=e.substring(3),c=!0),e.startsWith("[")||e.endsWith("]"))throw Object.defineProperty(Error(`Segment names may not start or end with extra brackets ('${e}').`),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(e.startsWith("."))throw Object.defineProperty(Error(`Segment names may not start with erroneous periods ('${e}').`),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Object.defineProperty(Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,e),this.optionalRestSlugName=e,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,e),this.restSlugName=e,d="[...]"}else{if(g)throw Object.defineProperty(Error(`Optional route parameters are not yet supported ("${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,e),this.slugName=e,d="[]"}}this.children.has(d)||this.children.set(d,new e),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function f(a){let b=new e;return a.forEach(a=>b.insert(a)),b.smoosh()}function g(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return f(d).map(b=>a[c[b]])}},86013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15971),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},86231:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>aY,handler:()=>aX});var e={};c.r(e),c.d(e,{config:()=>aQ,default:()=>aP}),require("next/dist/build/adapter/setup-node-env.external");var f=c(32648),g=c(76309),h=c(88771),i=c(62940),j=c(95226),k=c(2886),l=c(73024),m=c.n(l),n=c(76760),o=c.n(n),p=c(77598),q=c.n(p),r=c(72045);let s=o().join(r.nJ,"machine-id"),t=o().join(r.nJ,"auth"),u=o().join(t,"cli-secret"),v=null,w=null;async function x(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(v)return v;try{if(v=m().readFileSync(s,"utf8").trim())return v}catch{}try{v=(0,k.machineIdSync)()}catch{v=q().randomUUID()}try{m().mkdirSync(r.nJ,{recursive:!0}),m().writeFileSync(s,v,{mode:384})}catch{}return v}(),d="9r-cli-auth"===b?function(){if(w)return w;try{if(w=m().readFileSync(u,"utf8").trim())return w}catch{}w=q().randomBytes(32).toString("hex");try{m().mkdirSync(t,{recursive:!0}),m().writeFileSync(u,w,{mode:384})}catch{}return w}():"";return q().createHash("sha256").update(c+b+d).digest("hex").substring(0,16)}let y=(a,b="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${b} must be ${a}`);async function z(a,b,c){return b instanceof Uint8Array?crypto.subtle.importKey("raw",b,a.subtle,!1,[c]):(!function(a,b,c){let d=a.algorithm;if(d.name!==b.name)throw y(b.name);if(b.hash&&d.hash?.name!==b.hash)throw y(b.hash,"algorithm.hash");if(b.namedCurve&&d.namedCurve!==b.namedCurve)throw y(b.namedCurve,"algorithm.namedCurve");if(void 0!==b.length&&d.length!==b.length)throw y(b.length,"algorithm.length");if(c&&!a.usages.includes(c))throw TypeError(`CryptoKey does not support this operation, its usages must include ${c}.`)}(b,a.subtle,c),a.minRsaBits&&function(a,b){let{modulusLength:c}=b.algorithm;if("number"!=typeof c||c<2048)throw TypeError(`${a} requires key modulusLength to be 2048 bits or larger`)}(a.alg,b),b)}async function A(a,b,c,d){let e=await z(a,b,"verify");try{return await crypto.subtle.verify(a.signing,e,c,d)}catch{return!1}}class B extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(a,b){super(a,b),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class C extends B{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class D extends B{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class E extends B{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class F extends B{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class G extends B{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class H extends B{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class I extends B{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(a="signature verification failed",b){super(a,b)}}let J=[["verify"],["sign"]];function K(a){let b={name:"HMAC",hash:`SHA-${a}`};return{kty:["oct"],secret:!0,subtle:b,signing:b,usages:J}}function L(a,b){let c={name:b?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${a}`};return{kty:["RSA"],subtle:c,signing:b?{...c,saltLength:b}:c,usages:J,minRsaBits:2048}}function M(a,b){return{kty:["EC"],crv:a,subtle:{name:"ECDSA",namedCurve:a},signing:{name:"ECDSA",hash:`SHA-${b}`},usages:J}}function N(){let a={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:a,signing:a,usages:J}}function O(a){let b={name:`ML-DSA-${a}`};return{kty:["AKP"],subtle:b,signing:b,usages:J}}let P=function(a){let b={__proto__:null};for(let c in a)b[c]={...a[c],alg:c};return b}({HS256:K(256),HS384:K(384),HS512:K(512),RS256:L(256),RS384:L(384),RS512:L(512),PS256:L(256,32),PS384:L(384,48),PS512:L(512,64),ES256:M("P-256",256),ES384:M("P-384",384),ES512:M("P-521",512),EdDSA:N(),Ed25519:N(),"ML-DSA-44":O(44),"ML-DSA-65":O(65),"ML-DSA-87":O(87)});new TextEncoder;let Q=new TextDecoder,R=new TextDecoder("utf-8",{fatal:!0});function S(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);if(d>127)throw TypeError("non-ASCII string encountered in encode()");b[c]=d}return b}let T="The input to be decoded is not correctly encoded.";function U(a){if(Uint8Array.fromBase64)try{return Uint8Array.fromBase64("string"==typeof a?a:Q.decode(a),{alphabet:"base64url"})}catch(a){throw TypeError(T,{cause:a})}let b=a;if(b instanceof Uint8Array&&(b=Q.decode(b)),b.includes("+")||b.includes("/"))throw TypeError(T);b=b.replace(/-/g,"+").replace(/_/g,"/");try{var c=b;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(c);let a=atob(c),d=new Uint8Array(a.length);for(let b=0;b<a.length;b++)d[b]=a.charCodeAt(b);return d}catch{throw TypeError(T)}}function V(a){if("object"!=typeof a||null===a||"[object Object]"!==Object.prototype.toString.call(a))return!1;let b=Object.getPrototypeOf(a);return null===b||null===Object.getPrototypeOf(b)}function W(a,b,c){try{return U(a)}catch{throw new c(`Failed to base64url decode the ${b}`)}}Symbol();let X={__proto__:null,b64:!0},Y=(a,b,...c)=>(function(a,b,...c){if(c.length>2){let b=c.pop();a+=`one of type ${c.join(", ")}, or ${b}.`}else 2===c.length?a+=`one of type ${c[0]} or ${c[1]}.`:a+=`of type ${c[0]}.`;return null==b?a+=` Received ${b}`:"function"==typeof b&&b.name?a+=` Received function ${b.name}`:"object"==typeof b&&null!=b&&b.constructor?.name&&(a+=` Received an instance of ${b.constructor.name}`),a})(`Key for the ${a} algorithm must be `,b,...c),Z=a=>{if(a?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return a instanceof CryptoKey}catch{return!1}};async function $(a,b){if("RSA"===b.kty&&"oth"in b&&void 0!==b.oth)throw new F('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');if(!a.kty.includes(b.kty))throw new F('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let c=a.resolve?.({kty:b.kty,crv:b.crv})??a.subtle,d=!!(b.d||b.priv),e={...b};return"AKP"!==e.kty&&delete e.alg,delete e.use,crypto.subtle.importKey("jwk",e,c,b.ext??!d,b.key_ops??a.usages[+!!d])}let _=a=>a[Symbol.toStringTag],aa={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};function ab(a,b,c){let e=(d||=new WeakMap).get(a);return c&&(e?e[b]=c:d.set(a,{[b]:c})),c??e?.[b]}let ac=async(a,b,c)=>ab(a,c.alg)??ab(a,c.alg,await $(c,{...b,alg:c.alg}));async function ad(a,b,c){let d=function(a,b,c){let{alg:d,secret:e}=a,f="decrypt"===c||"sign"===c;if(e&&b instanceof Uint8Array)return[0,b];if(V(b)){let g=function(a){let b={__proto__:null,...a};if(void 0!==b.ext&&"boolean"!=typeof b.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==b.key_ops){let a=b.key_ops,c=Array.isArray(a)?[...a]:void 0;if(!c||c.some(a=>"string"!=typeof a)||new Set(c).size!==c.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');b.key_ops=c}return b}(b);if("string"!=typeof g.kty)throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(!(e?"oct"===g.kty&&"string"==typeof g.k:"oct"!==g.kty&&(f?"AKP"===g.kty&&"string"==typeof g.priv||"string"==typeof g.d:void 0===g.d&&void 0===g.priv)))throw TypeError(e?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${f?"private":"public"} JWK`);return((a,b,c)=>{let{alg:d}=a;if(void 0!==b.use){let a="sign"===c||"verify"===c?"sig":"enc";if(b.use!==a)throw TypeError(`Invalid key for this operation, its "use" must be "${a}" when present`)}if(void 0!==b.alg&&b.alg!==d)throw TypeError(`Invalid key for this operation, its "alg" must be "${d}" when present`);if(Array.isArray(b.key_ops)){let d="encrypt"===c||"decrypt"===c?a.ops?.[+("encrypt"!==c)]:c;if(d&&!b.key_ops.includes(d))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}})(a,g,c),[3,b,g]}if(!(Z(b)||b?.[Symbol.toStringTag]==="KeyObject"))throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(e){if("secret"!==b.type)throw TypeError(`${_(b)} instances for symmetric algorithms must be of type "secret"`)}else{if("secret"===b.type)throw TypeError(`${_(b)} instances for asymmetric algorithms must not be of type "secret"`);let a=f?"private":"public";if(("public"===b.type||"private"===b.type)&&b.type!==a){let d="sign"===c?"signing":"verify"===c?"verifying":`${c.slice(0,-1)}tion`;throw TypeError(`${_(b)} instances for asymmetric algorithm ${d} must be of type "${a}"`)}}return Z(b)?[1,b]:[2,b]}(a,b,c);switch(d[0]){case 0:case 1:return d[1];case 3:{let b=d[1],c=d[2];if("oct"===c.kty)return U(c.k);if(!Object.isFrozen(b)){let{key_ops:a}=b;Array.isArray(a)&&Object.freeze(a),Object.freeze(b)}return ac(b,c,a)}case 2:{let b=d[1];if("secret"===b.type)return b.export();if("toCryptoKey"in b&&"function"==typeof b.toCryptoKey)return((a,b)=>{let c=ab(a,b.alg);if(c)return c;let d="public"===a.type,e=b.usages[+!d],{asymmetricKeyType:f}=a,g=aa[a.asymmetricKeyDetails?.namedCurve],h=b.resolve?.({crv:g,asymmetricKeyType:f})??b.subtle;return ab(a,b.alg,a.toCryptoKey(h,d,e))})(b,a);return ac(b,b.export({format:"jwk"}),a)}}}async function ae(a,b,c,d,e,f,g){let h=!1;"function"==typeof c&&(c=await c(e,a),h=!0);let i="string"==typeof g,j=function(a){let b="string"==typeof a?P[a]:void 0;if(!b)throw new F(`alg ${a} is not supported either by JOSE or your javascript runtime`);return b}(f),k=function(...a){let b=new Uint8Array(a.reduce((a,{length:b})=>a+b,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}(void 0!==d?S(d):new Uint8Array,S("."),i?b[2]??=function(a,b,c){try{return S(a)}catch{throw new c(`The ${b} is not a valid base64url string`)}}(g,"payload",G):g),l=W(a.signature,"signature",G),m=await ad(j,c,"verify");if(!await A(j,m,l,k))throw new I;return[i?W(g,"payload",G):g,e,i,m,h]}async function af(a,b,c){if(a instanceof Uint8Array&&(a=Q.decode(a)),"string"!=typeof a)throw new G("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new G("Invalid Compact JWS");let h=function(a,b=void 0===a?{}:function(a,b,c){let d;try{d=JSON.parse(R.decode(U(a)))}catch{throw new b(c)}if(!V(d))throw new b(c);return d}(a,G,"JWS Protected Header is invalid")){return b}(d),[i,j]=function(a,b,c){let d=function(a,b){if(b.includes("b64")){let b=a.b64;if("boolean"!=typeof b)throw new G('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return b}return!0}(a,function(a,b,c,d,e){if(void 0!==e.crit&&d?.crit===void 0)throw new a('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return[];if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(a=>"string"!=typeof a||0===a.length))throw new a('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let f=void 0===c?b:{__proto__:null,...c,...b};for(let b of d.crit){if(!(b in f))throw new F(`Extension Header Parameter "${b}" is not recognized`);if(!Object.hasOwn(e,b)||void 0===e[b])throw new a(`Extension Header Parameter "${b}" is missing`);if(f[b]&&(!Object.hasOwn(d,b)||void 0===d[b]))throw new a(`Extension Header Parameter "${b}" MUST be integrity protected`)}return d.crit}(G,X,c[1],a,b)),e=b.alg;if("string"!=typeof e||!e)throw new G('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(c[0]&&!c[0].has(e))throw new E('"alg" (Algorithm) Header Parameter value not allowed');return[d,e]}(h,h,b),k=i?e:function(a){try{return S(a)}catch{throw new G("JWS Compact Serialization payload must use only ASCII characters")}}(e);return ae({payload:e,protected:d,signature:f},b,c,d,h,j,k)}let ag={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},ah=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,ai="check_failed";function aj(){throw TypeError("Invalid time period format")}function ak(a){"string"!=typeof a&&aj();let b=ah.exec(a);(!b||b[4]&&b[1])&&aj();let c=Math.round(parseFloat(b[2])*ag[b[3][0].toLowerCase()]);return(Number.isFinite(c)||aj(),"-"===b[1]||"ago"===b[4])?-c:c}function al(a,b){if(!Number.isFinite(b))throw TypeError(`Invalid ${a} input`);return b}let am=a=>{let b=a.toLowerCase();return a.includes("/")?b:`application/${b}`};function an(a,b,c=!1){let d=a[b];if(void 0!==d||c){if("number"!=typeof d)throw new C(`"${b}" claim must be a number`,a,b,"invalid");return d}}function ao(a,b){throw new C(`unexpected "${b}" claim value`,a,b,ai)}async function ap(a,b,c){let d=await af(a,[c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new H("JWTs MUST NOT use unencoded payload");let e={payload:function(a,b,c={}){var d,e;let f;try{f=JSON.parse(R.decode(b))}catch{}if(!V(f))throw new H("JWT Claims Set must be a top-level JSON object");let{typ:g}=c;if(void 0!==g&&("string"!=typeof a.typ||am(a.typ)!==am(g)))throw new C('unexpected "typ" JWT header value',f,"typ",ai);let{requiredClaims:h=[],issuer:i,subject:j,audience:k,maxTokenAge:l}=c,m=[...h];for(let a of(void 0!==l&&m.push("iat"),void 0!==k&&m.push("aud"),void 0!==j&&m.push("sub"),void 0!==i&&m.push("iss"),new Set(m.reverse())))if(!Object.hasOwn(f,a))throw new C(`missing required "${a}" claim`,f,a,"missing");void 0===i||(Array.isArray(i)?i:[i]).includes(f.iss)||ao(f,"iss"),void 0!==j&&f.sub!==j&&ao(f,"sub"),void 0===k||(d=f.aud,e="string"==typeof k?[k]:k,"string"==typeof d?e.includes(d):!!Array.isArray(d)&&e.some(a=>d.includes(a)))||ao(f,"aud");let{clockTolerance:n}=c,o=0;if("string"==typeof n)o=ak(n);else if(void 0!==n){if("number"!=typeof n)throw TypeError("Invalid clockTolerance option type");o=n}al("clockTolerance option",o);let{currentDate:p}=c,q=al("currentDate option",Math.floor((void 0===p?new Date:p).getTime()/1e3)),r=an(f,"iat",void 0!==l),s=an(f,"nbf");if(void 0!==s&&s>q+o)throw new C('"nbf" claim timestamp check failed',f,"nbf",ai);let t=an(f,"exp");if(void 0!==t&&t<=q-o)throw new D('"exp" claim timestamp check failed',f,"exp",ai);if(void 0!==l){let a=q-r;if(a-o>al("maxTokenAge option","number"==typeof l?l:ak(l)))throw new D('"iat" claim timestamp check failed (too far in the past)',f,"iat",ai);if(a<-o)throw new C('"iat" claim timestamp check failed (it should be in the past)',f,"iat",ai)}return f}(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}c(55511);"function"==typeof setImmediate||"object"==typeof scheduler&&"function"==typeof scheduler.postTask&&scheduler.postTask.bind(scheduler);var aq=c(2071);function ar(a){var b;let c;return"string"==typeof(c=process.env.INITIAL_PASSWORD)&&!!c.trim()||(b=a,!!(b?.password||String(b?.oidcIssuerUrl||"").trim()&&String(b?.oidcClientId||"").trim()&&String(b?.oidcClientSecret||"").trim())||!!(b?.samlEntryPoint&&b?.samlCert))}let as=new Set(["change-me-to-a-long-random-secret","10router-default-secret-change-me","change-me-to-a-random-string","change-me"]),at=new TextEncoder().encode(function(){let a=process.env.JWT_SECRET;if(a){if(!as.has(a))return a;console.warn("[auth] JWT_SECRET is a known placeholder value — ignoring it. Leave JWT_SECRET unset (a random secret is generated to "+o().join(r.nJ,"jwt-secret")+") or set a long random value.")}let b=o().join(r.nJ,"jwt-secret");try{return m().readFileSync(b,"utf8").trim()}catch{}m().mkdirSync(r.nJ,{recursive:!0});let c=q().randomBytes(32).toString("hex");return m().writeFileSync(b,c,{mode:384}),(0,aq.E)(b),c}());async function au(a){if(!a)return!1;try{return await ap(a,at),!0}catch{return!1}}let av=null;async function aw(){return av||(av=await x("9r-cli-auth")),av}async function ax(a){let b=a.headers.get("x-10r-cli-token")||a.headers.get("x-9r-cli-token")||null;return!!b&&b===await aw()}let ay=["/api/health","/api/locale","/api/auth/login","/api/auth/logout","/api/auth/status","/api/auth/oidc","/api/auth/saml","/api/auth/verify-password","/api/settings/require-login"],az=["/api/version","/api/init"],aA=["/v1","/v1beta","/api/v1","/api/v1beta","/codex","/responses"],aB=["/api/shutdown","/api/settings/database","/api/version/shutdown","/api/version/update","/api/version/shell-update","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/transfer/"],aC=["/api/cli-tools/cowork-settings","/api/cli-tools/antigravity-mitm","/api/mcp/","/api/tunnel/tailscale-install","/api/tunnel/tailscale-enable","/api/tunnel/tailscale-disable","/api/tunnel/tailscale-check","/api/tunnel/enable","/api/tunnel/disable","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/auth/reset-password","/api/headroom/start","/api/headroom/stop","/api/headroom/proxy"],aD=new Set(["localhost","127.0.0.1","::1"]);function aE(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),aD.has(b)}function aF(a){let b;if(a.headers.get("x-10r-via-proxy")||!((b=process.env.TENROUTER_PEER_TOKEN)&&a.headers.get("x-10r-peer-token")===b&&aE(a.headers.get("x-10r-real-ip"))))return!1;let c=a.headers.get("origin");if(c)try{if(!aE(new URL(c).hostname))return!1}catch{return!1}return!0}function aG(a){return aA.some(b=>a===b||a.startsWith(`${b}/`))}function aH(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");if(c)return c;let d=a.headers.get("x-goog-api-key");return d||a.nextUrl.searchParams?.get("key")||null}async function aI(a){let b=aH(a);return!!b&&await (0,j.ek)(b)}async function aJ(a){return!!(aF(a)||await ax(a))||await aI(a)}async function aK(a){return!!(await ax(a)||aF(a)&&await aN(a))}async function aL(a){let b=a.cookies.get("auth_token")?.value;return await au(b)}async function aM(){try{return await (0,j.mt)()}catch{return null}}async function aN(a){if(await aL(a))return!0;let b=await aM();return!!(b&&!1===b.requireLogin||!ar(b)&&aF(a))}async function aO(a){let{pathname:b}=a.nextUrl;if(!aG(b)){let b=await aM();if(b?.dashboardLocalOnly===!0&&!aF(a))return i.NextResponse.json({error:"The dashboard is set to local-only access (Experimental → Security). Turn it off from the machine running 10Router to manage it remotely."},{status:403})}if(("/api/oauth/xiaomi-mimo/auto-import"===b||"/api/oauth/xiaomi-mimo/desktop-status"===b||"/api/oauth/xiaomi-mimo/desktop-kill"===b&&"POST"===a.method)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aC.some(a=>b.startsWith(a))&&!await aK(a))return i.NextResponse.json({error:"Local only: CLI token required"},{status:403});if("POST"===a.method&&"/api/settings/database/import-usage"===b&&(a.headers.get("x-10r-password")||a.headers.get("x-9r-password")||aH(a))||"POST"===a.method&&("/api/oauth/transfer/import"===b||"/api/oauth/transfer/export"===b)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aB.some(a=>b.startsWith(a)))return await ax(a)||await aL(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(aG(b))return await aJ(a)?i.NextResponse.next():i.NextResponse.json({error:"API key required for remote API access"},{status:401});if(az.some(a=>b===a||b.startsWith(`${a}/`)))return aF(a)||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if("GET"===a.method&&"/api/usage/quotas"===b&&await aI(a)||("POST"===a.method||"DELETE"===a.method)&&b.startsWith("/api/external-quota/")&&(await aI(a)||await ax(a))||"POST"===a.method&&("/api/provider-nodes"===b||"/api/providers"===b)&&await aI(a))return i.NextResponse.next();if(b.startsWith("/api/"))return aG(b)||ay.some(a=>b===a||b.startsWith(`${a}/`))||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(b.startsWith("/dashboard")){let b=!0,c=null;try{let d=await aM();if(c=d,d&&(b=!1!==d.requireLogin,!0!==d.tunnelDashboardAccess)){let b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),c=d.tunnelUrl?new URL(d.tunnelUrl).hostname.toLowerCase():"",e=d.tailscaleUrl?new URL(d.tailscaleUrl).hostname.toLowerCase():"";if(c&&b===c||e&&b===e)return i.NextResponse.redirect(new URL("/login",a.url))}}catch{}if(!b||!ar(c)&&aF(a))return i.NextResponse.next();let d=a.cookies.get("auth_token")?.value;return d&&await au(d)?i.NextResponse.next():i.NextResponse.redirect(new URL("/login",a.url))}return"/"===b?i.NextResponse.redirect(new URL("/dashboard",a.url)):i.NextResponse.next()}async function aP(a){return aO(a)}let aQ={matcher:["/((?!_next/static|_next/image|favicon\\.ico).*)"]};c(6365);var aR=c(99751);let aS={...e},aT="/src/proxy",aU=(0,aS.proxy||aS.default);class aV extends Error{constructor(a){super(a),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.stack=""}}if("function"!=typeof aU)throw new aV(`The Proxy file "${aT}" must export a function named \`proxy\` or a default function.`);let aW=async a=>{var b,d;{let{join:e,relative:f}=c(76760),{ensureInstrumentationRegistered:g}=c(7465),h=e(process.cwd(),(null==(b=a.request.requestMeta)?void 0:b.relativeProjectDir)||""),i=null==(d=a.request.requestMeta)?void 0:d.distDir,j=i?f(h,i):".next";await g(h,j)}return(0,g.adapter)({...a,IncrementalCache:h.IncrementalCache,incrementalCacheHandler:null,page:aT,handler:async(...a)=>{try{return await aU(...a)}catch(e){let b=a[0],c=new URL(b.url),d=c.pathname+c.search;throw await (0,f.edgeInstrumentationOnRequestError)(e,{path:d,method:b.method,headers:Object.fromEntries(b.headers.entries())},{routerKind:"Pages Router",routePath:"/proxy",routeType:"proxy",revalidateReason:void 0}),e}}})};async function aX(a,b){let c=await aW({request:{url:a.url,method:a.method,headers:(0,aR.toNodeOutgoingHttpHeaders)(a.headers),nextConfig:{basePath:"",i18n:"",trailingSlash:!1,experimental:{cacheLife:{default:{stale:300,revalidate:900,expire:0xfffffffe},seconds:{stale:30,revalidate:1,expire:60},minutes:{stale:300,revalidate:60,expire:3600},hours:{stale:300,revalidate:3600,expire:86400},days:{stale:300,revalidate:86400,expire:604800},weeks:{stale:300,revalidate:604800,expire:2592e3},max:{stale:300,revalidate:2592e3,expire:31536e3}},authInterrupts:!1,clientParamParsingOrigins:[]}},page:{name:aT},body:"GET"!==a.method&&"HEAD"!==a.method?a.body??void 0:void 0,waitUntil:b.waitUntil,requestMeta:b.requestMeta,signal:b.signal||new AbortController().signal}});return null==b.waitUntil||b.waitUntil.call(b,c.waitUntil),c.response}let aY=aW},86948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isFullStringUrl:function(){return h},parseReqUrl:function(){return j},parseUrl:function(){return i},stripNextRscUnionQuery:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g="http://n";function h(a){return/https?:\/\//.test(a)}function i(a){let b;try{b=new URL(a,g)}catch{}return b}function j(a){let b=i(a);if(!b)return;let c={};for(let a of b.searchParams.keys()){let d=b.searchParams.getAll(a);c[a]=d.length>1?d:d[0]}return{query:c,hash:b.hash,search:b.search,path:b.pathname,pathname:b.pathname,href:`${b.pathname}${b.search}${b.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}function k(a){let b=new URL(a,g);return b.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b.pathname+b.search}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},88026:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o={AppRenderSpan:function(){return w},AppRouteRouteHandlersSpan:function(){return z},BaseServerSpan:function(){return q},LoadComponentsSpan:function(){return r},LogSpanAllowList:function(){return D},MiddlewareSpan:function(){return B},NextNodeServerSpan:function(){return t},NextServerSpan:function(){return s},NextVanillaSpanAllowlist:function(){return C},NodeSpan:function(){return y},RenderSpan:function(){return v},ResolveMetadataSpan:function(){return A},RouterSpan:function(){return x},StartServerSpan:function(){return u}};for(var p in o)Object.defineProperty(b,p,{enumerable:!0,get:o[p]});var q=((c=q||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),r=((d=r||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d),s=((e=s||{}).getRequestHandler="NextServer.getRequestHandler",e.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer",e),t=((f=t||{}).compression="NextNodeServer.compression",f.getBuildId="NextNodeServer.getBuildId",f.createComponentTree="NextNodeServer.createComponentTree",f.clientComponentLoading="NextNodeServer.clientComponentLoading",f.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",f.generateStaticRoutes="NextNodeServer.generateStaticRoutes",f.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",f.generatePublicRoutes="NextNodeServer.generatePublicRoutes",f.generateImageRoutes="NextNodeServer.generateImageRoutes.route",f.sendRenderResult="NextNodeServer.sendRenderResult",f.proxyRequest="NextNodeServer.proxyRequest",f.runApi="NextNodeServer.runApi",f.render="NextNodeServer.render",f.renderHTML="NextNodeServer.renderHTML",f.imageOptimizer="NextNodeServer.imageOptimizer",f.getPagePath="NextNodeServer.getPagePath",f.getRoutesManifest="NextNodeServer.getRoutesManifest",f.findPageComponents="NextNodeServer.findPageComponents",f.getFontManifest="NextNodeServer.getFontManifest",f.getServerComponentManifest="NextNodeServer.getServerComponentManifest",f.getRequestHandler="NextNodeServer.getRequestHandler",f.renderToHTML="NextNodeServer.renderToHTML",f.renderError="NextNodeServer.renderError",f.renderErrorToHTML="NextNodeServer.renderErrorToHTML",f.render404="NextNodeServer.render404",f.startResponse="NextNodeServer.startResponse",f.route="route",f.onProxyReq="onProxyReq",f.apiResolver="apiResolver",f.internalFetch="internalFetch",f),u=((g=u||{}).startServer="startServer.startServer",g),v=((h=v||{}).getServerSideProps="Render.getServerSideProps",h.getStaticProps="Render.getStaticProps",h.renderToString="Render.renderToString",h.renderDocument="Render.renderDocument",h.createBodyResult="Render.createBodyResult",h),w=((i=w||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i.waitShellReady="AppRender.waitShellReady",i.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",i.instantInsights="AppRender.instantInsights",i.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",i.instantInsightsRunValidation="AppRender.instantInsights.runValidation",i),x=((j=x||{}).executeRoute="Router.executeRoute",j),y=((k=y||{}).runHandler="Node.runHandler",k),z=((l=z||{}).runHandler="AppRouteRouteHandlers.runHandler",l),A=((m=A||{}).generateMetadata="ResolveMetadata.generateMetadata",m.generateViewport="ResolveMetadata.generateViewport",m),B=((n=B||{}).execute="Middleware.execute",n);let C=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),D=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},88266:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return k}});let e=c(72394),f=(d=c(40694))&&d.__esModule?d:{default:d},g=c(96100),h=c(36820),i=c(90925),j=c(94143);class k{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(a){this.fs=a.fs,this.flushToDisk=a.flushToDisk,this.serverDistDir=a.serverDistDir,this.revalidatedTags=a.revalidatedTags,a.maxMemoryCacheSize?k.memoryCache?k.debug&&console.log("FileSystemCache: memory store already initialized"):(k.debug&&console.log("FileSystemCache: using memory store for fetch cache"),k.memoryCache=(0,j.getMemoryCache)(a.maxMemoryCacheSize)):k.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(a,b){if(a="string"==typeof a?[a]:a,k.debug&&console.log("FileSystemCache: revalidateTag",a,b),0===a.length)return;let c=Date.now();for(let d of a){let a=h.tagsManifest.get(d)||{};if(b){let e={...a};e.stale=c,void 0!==b.expire&&(e.expired=c+1e3*b.expire),h.tagsManifest.set(d,e)}else h.tagsManifest.set(d,{...a,expired:c})}}async get(...a){var b,c,d,f,i,j,l,m,n;let[o,p]=a,{kind:q}=p,r=null==(b=k.memoryCache)?void 0:b.get(o);if(k.debug&&(q===e.IncrementalCacheKind.FETCH?console.log("FileSystemCache: get",o,p.tags,q,!!r):console.log("FileSystemCache: get",o,q,!!r)),!r)try{if(q===e.IncrementalCacheKind.APP_ROUTE){let a=this.getFilePath(`${o}.body`,e.IncrementalCacheKind.APP_ROUTE),b=await this.fs.readFile(a),{mtime:c}=await this.fs.stat(a),d=JSON.parse(await this.fs.readFile(a.replace(/\.body$/,g.NEXT_META_SUFFIX),"utf8"));r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_ROUTE,body:b,headers:d.headers,status:d.status}}}else{let a=this.getFilePath(q===e.IncrementalCacheKind.FETCH?o:`${o}.html`,q),b=await this.fs.readFile(a,"utf8"),{mtime:c}=await this.fs.stat(a);if(q===e.IncrementalCacheKind.FETCH){let{tags:a,fetchIdx:d,fetchUrl:f}=p;if(!this.flushToDisk)return null;let g=c.getTime(),h=JSON.parse(b);if(r={lastModified:g,value:h},(null==(j=r.value)?void 0:j.kind)===e.CachedRouteKind.FETCH){let b=null==(l=r.value)?void 0:l.tags;(null==a?void 0:a.every(a=>null==b?void 0:b.includes(a)))||(k.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",a,b),await this.set(o,r.value,{fetchCache:!0,tags:a,fetchIdx:d,fetchUrl:f}))}}else if(q===e.IncrementalCacheKind.APP_PAGE){let d,f,h;try{d=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,g.NEXT_META_SUFFIX),"utf8"))}catch{}if(null==d?void 0:d.segmentPaths){let a=new Map;f=a;let b=o+g.RSC_SEGMENTS_DIR_SUFFIX;await Promise.all(d.segmentPaths.map(async c=>{let d=this.getFilePath(b+c+g.RSC_SEGMENT_SUFFIX,e.IncrementalCacheKind.APP_PAGE);try{a.set(c,await this.fs.readFile(d))}catch{}}))}p.isFallback||p.isRoutePPREnabled&&(null==d?void 0:d.postponed)!=null||(h=await this.fs.readFile(this.getFilePath(`${o}${g.RSC_SUFFIX}`,e.IncrementalCacheKind.APP_PAGE))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_PAGE,html:b,rscData:h,postponed:null==d?void 0:d.postponed,headers:null==d?void 0:d.headers,status:null==d?void 0:d.status,segmentData:f}}}else if(q===e.IncrementalCacheKind.PAGES){let a,d={};p.isFallback||(d=JSON.parse(await this.fs.readFile(this.getFilePath(`${o}${g.NEXT_DATA_SUFFIX}`,e.IncrementalCacheKind.PAGES),"utf8"))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.PAGES,html:b,pageData:d,headers:null==a?void 0:a.headers,status:null==a?void 0:a.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${q} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}r&&(null==(m=k.memoryCache)||m.set(o,r))}catch{return null}if((null==r||null==(c=r.value)?void 0:c.kind)===e.CachedRouteKind.APP_PAGE||(null==r||null==(d=r.value)?void 0:d.kind)===e.CachedRouteKind.APP_ROUTE||(null==r||null==(f=r.value)?void 0:f.kind)===e.CachedRouteKind.PAGES){let a=null==(n=r.value.headers)?void 0:n[g.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");if(b.length>0&&(0,h.areTagsExpired)(b,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",b),null}}else if((null==r||null==(i=r.value)?void 0:i.kind)===e.CachedRouteKind.FETCH){let a=p.kind===e.IncrementalCacheKind.FETCH?[...p.tags||[],...p.softTags||[]]:[];if(a.some(a=>this.revalidatedTags.includes(a)))return k.debug&&console.log("FileSystemCache: was revalidated",a),null;if((0,h.areTagsExpired)(a,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",a),null}return r??null}async set(a,b,c){var d;if(null==(d=k.memoryCache)||d.set(a,{value:b,lastModified:Date.now()}),k.debug&&console.log("FileSystemCache: set",a),!this.flushToDisk||!b)return;let f=new i.MultiFileWriter(this.fs);if(b.kind===e.CachedRouteKind.APP_ROUTE){let c=this.getFilePath(`${a}.body`,e.IncrementalCacheKind.APP_ROUTE);f.append(c,b.body);let d={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};f.append(c.replace(/\.body$/,g.NEXT_META_SUFFIX),JSON.stringify(d,null,2))}else if(b.kind===e.CachedRouteKind.PAGES||b.kind===e.CachedRouteKind.APP_PAGE){let d=b.kind===e.CachedRouteKind.APP_PAGE,h=this.getFilePath(`${a}.html`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES);if(f.append(h,b.html),c.fetchCache||c.isFallback||c.isRoutePPREnabled||f.append(this.getFilePath(`${a}${d?g.RSC_SUFFIX:g.NEXT_DATA_SUFFIX}`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES),d?b.rscData:JSON.stringify(b.pageData)),(null==b?void 0:b.kind)===e.CachedRouteKind.APP_PAGE){let a;if(b.segmentData){a=[];let c=h.replace(/\.html$/,g.RSC_SEGMENTS_DIR_SUFFIX);for(let[d,e]of b.segmentData){a.push(d);let b=c+d+g.RSC_SEGMENT_SUFFIX;f.append(b,e)}}let c={headers:b.headers,status:b.status,postponed:b.postponed,segmentPaths:a,prefetchHints:void 0};f.append(h.replace(/\.html$/,g.NEXT_META_SUFFIX),JSON.stringify(c))}}else if(b.kind===e.CachedRouteKind.FETCH){let d=this.getFilePath(a,e.IncrementalCacheKind.FETCH);f.append(d,JSON.stringify({...b,tags:c.fetchCache?c.tags:[]}))}await f.wait()}getFilePath(a,b){let c;switch(b){case e.IncrementalCacheKind.FETCH:c=f.default.join(this.serverDistDir,"..","cache","fetch-cache");break;case e.IncrementalCacheKind.PAGES:c=f.default.join(this.serverDistDir,"pages");break;case e.IncrementalCacheKind.IMAGE:case e.IncrementalCacheKind.APP_PAGE:case e.IncrementalCacheKind.APP_ROUTE:c=f.default.join(this.serverDistDir,"app");break;default:throw Object.defineProperty(Error(`Unexpected file path kind: ${b}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}let d=f.default.join(c,a);if(!(d.startsWith(c+f.default.sep)||d===c))throw Object.defineProperty(Error(`Invalid file path: ${d}`),"__NEXT_ERROR_CODE",{value:"E1468",enumerable:!1,configurable:!0});return d}}},88450:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(61544),g=c(99751),h=c(84573),i=c(42097),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},88771:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={CacheHandler:function(){return t},IncrementalCache:function(){return v}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(72394),h=(d=c(88266))&&d.__esModule?d:{default:d},i=c(26670),j=c(96100),k=c(6892),l=c(97538),m=c(63033),n=c(42776),o=c(55122),p=c(29294),q=c(59841),r=c(36820);function s(a){let b="buffer"in a?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):new Uint8Array(a),c="";for(let a of b)c+=a.toString(16).padStart(2,"0");return c}class t{constructor(a){}async get(a,b){return{}}async set(a,b,c){}async revalidateTag(a,b){}resetRequestCache(){}}async function u(a){return c(55511).createHash("sha256").update(a).digest("hex")}class v{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:a,dev:b,flushToDisk:c,minimalMode:d,serverDistDir:e,requestHeaders:f,maxMemoryCacheSize:g,getPrerenderManifest:i,fetchCacheKeyPrefix:k,CurCacheHandler:m,allowedRevalidateHeaderKeys:n}){var p,q,r,s;this.locks=new Map,this.hasCustomCacheHandler=!!m;const t=Symbol.for("@next/cache-handlers"),u=globalThis;if(m)v.debug&&console.log("IncrementalCache: using custom cache handler",m.name);else{const b=u[t];(null==b?void 0:b.FetchCache)?(m=b.FetchCache,v.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):a&&e&&(v.debug&&console.log("IncrementalCache: using filesystem cache handler"),m=h.default)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(g=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=b,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=d,this.requestHeaders=f,this.allowedRevalidateHeaderKeys=n,this.prerenderManifest=i(),this.cacheControls=new l.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=k;let w=[];f[j.PRERENDER_REVALIDATE_HEADER]===(null==(q=this.prerenderManifest)||null==(p=q.preview)?void 0:p.previewModeId)&&(this.isOnDemandRevalidate=!0),d&&(w=this.revalidatedTags=(0,o.getPreviouslyRevalidatedTags)(f,null==(s=this.prerenderManifest)||null==(r=s.preview)?void 0:r.previewModeId)),m&&(this.cacheHandler=new m({dev:b,fs:a,flushToDisk:c,serverDistDir:e,revalidatedTags:w,maxMemoryCacheSize:g,_requestHeaders:f,fetchCacheKeyPrefix:k}))}calculateRevalidate(a,b,c,d){if(c)return Math.floor(performance.timeOrigin+performance.now()-1e3);let e=this.cacheControls.get((0,k.toRoute)(a)),f=e?e.revalidate:!d&&1;return"number"==typeof f?1e3*f+b:f}_getPathname(a,b){return b?a:(0,i.normalizePagePath)(a)}resetRequestCache(){var a,b;null==(b=this.cacheHandler)||null==(a=b.resetRequestCache)||a.call(b)}async lock(a){for(;;){let b=this.locks.get(a);if(v.debug&&console.log("IncrementalCache: lock get",a,!!b),!b)break;await b}let{resolve:b,promise:c}=new q.DetachedPromise;return v.debug&&console.log("IncrementalCache: successfully locked",a),this.locks.set(a,c),()=>{b(),this.locks.delete(a)}}async revalidateTag(a,b){var c;return null==(c=this.cacheHandler)?void 0:c.revalidateTag(a,b)}async generateSimpleCacheKey(a){return u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a]))}async generateCacheKey(a,b={}){let c=[],d=new TextEncoder,e=null,f=b.body;if(f)if("object"==typeof f&&"byteLength"in f)c.push(`bytes:${s(f)}`),b._ogBody=f;else if("function"==typeof f.getReader){let a=[];try{await f.pipeTo(new WritableStream({write(b){a.push("string"==typeof b?d.encode(b):b)}}));let e=a.reduce((a,b)=>a+b.length,0),g=new Uint8Array(e),h=0;for(let b of a)g.set(b,h),h+=b.length;c.push(`bytes:${s(g)}`),b._ogBody=g}catch(a){console.error("Problem reading body",a)}}else if("function"==typeof f.keys)for(let[a,d]of(e="[object FormData]"===String(f)?"multipart/form-data; boundary=":"application/x-www-form-urlencoded;charset=UTF-8",b._ogBody=f,f.entries()))c.push(`key:${a}`),"string"==typeof d?c.push(`str:${d}`):c.push("file",d.name,d.type,`bytes:${s(await d.arrayBuffer())}`);else if("function"==typeof f.arrayBuffer){let a=await f.arrayBuffer();c.push("blob",f.type,`bytes:${s(a)}`),b._ogBody=new Blob([a],{type:f.type}),e=f.type}else if("string"==typeof f)c.push(`str:${f}`),b._ogBody=f,e="text/plain;charset=UTF-8";else throw Object.defineProperty(Error(`Unsupported body type: ${typeof f}`),"__NEXT_ERROR_CODE",{value:"E1443",enumerable:!1,configurable:!0});let g="function"==typeof(b.headers||{}).keys?Object.fromEntries(b.headers):Object.assign({},b.headers);return"traceparent"in g&&delete g.traceparent,"tracestate"in g&&delete g.tracestate,u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a,b.method,e,g,b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity,b.cache,c]))}async get(a,b){var c,d,e,f,h,i,l;let o,q;if(b.kind===g.IncrementalCacheKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;if(d){let c=d.fetch.get(a);if((null==c?void 0:c.kind)===g.CachedRouteKind.FETCH){let d=p.workAsyncStorage.getStore();if(![...b.tags||[],...b.softTags||[]].some(a=>{var b,c;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==d||null==(c=d.pendingRevalidatedTags)?void 0:c.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: rdc:hit",a),{isStale:!1,value:c};v.debug&&console.log("IncrementalCache: rdc:revalidated-tag",a)}else v.debug&&console.log("IncrementalCache: rdc:miss",a)}else v.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(b.kind!==g.IncrementalCacheKind.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;a=this._getPathname(a,b.kind===g.IncrementalCacheKind.FETCH);let s=await (null==(c=this.cacheHandler)?void 0:c.get(a,b));if(b.kind===g.IncrementalCacheKind.FETCH){if(!s)return null;if((null==(e=s.value)?void 0:e.kind)!==g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} to be a "FETCH" kind, got ${JSON.stringify(null==(f=s.value)?void 0:f.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let c=p.workAsyncStorage.getStore(),d=[...b.tags||[],...b.softTags||[]];if(d.some(a=>{var b,d;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==c||null==(d=c.pendingRevalidatedTags)?void 0:d.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: expired tag",a),null;let h=m.workUnitAsyncStorage.getStore();if(h){let b=(0,m.getResumeDataCache)(h);(null==b?void 0:b.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),b.fetch.set(a,s.value))}let i=b.revalidate||s.value.revalidate,j=(performance.timeOrigin+performance.now()-(s.lastModified||0))/1e3>i,k=s.value.data;return(0,r.areTagsExpired)(d,s.lastModified)?null:((0,r.areTagsStale)(d,s.lastModified)&&(j=!0),{isStale:j,value:{kind:g.CachedRouteKind.FETCH,data:k,revalidate:i}})}if((null==s||null==(d=s.value)?void 0:d.kind)===g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} not to be a ${JSON.stringify(b.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let t=null,{isFallback:u}=b,w=this.cacheControls.get((0,k.toRoute)(a));if((null==s?void 0:s.lastModified)===-1)o=-1,q=-1*j.CACHE_ONE_YEAR_SECONDS*1e3;else{let c=performance.timeOrigin+performance.now(),d=(null==s?void 0:s.lastModified)||c;q=this.calculateRevalidate(a,d,this.dev??!1,b.isFallback);let e="number"==typeof(null==w?void 0:w.expire)?1e3*w.expire+d:void 0;if(void 0!==e&&e<c)o=-1;else if(void 0===(o=!1!==q&&q<c||void 0)&&((null==s||null==(h=s.value)?void 0:h.kind)===g.CachedRouteKind.APP_PAGE||(null==s||null==(i=s.value)?void 0:i.kind)===g.CachedRouteKind.APP_ROUTE)){let a=null==(l=s.value.headers)?void 0:l[j.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");b.length>0&&((0,r.areTagsExpired)(b,d)?o=-1:(0,r.areTagsStale)(b,d)&&(o=!0))}}}return s&&(t={isStale:o,cacheControl:w,revalidateAfter:q,value:s.value,isFallback:u}),!s&&this.prerenderManifest.notFoundRoutes.includes(a)&&(t={isStale:o,value:null,cacheControl:w,revalidateAfter:q,isFallback:u},this.set(a,t.value,{...b,cacheControl:w})),t}async set(a,b,c){if((null==b?void 0:b.kind)===g.CachedRouteKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;(null==d?void 0:d.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),d.fetch.set(a,b))}if(this.disableForTestmode||this.dev&&!c.fetchCache)return;a=this._getPathname(a,c.fetchCache);let d=JSON.stringify(b).length;if(c.fetchCache&&d>2097152&&!this.hasCustomCacheHandler&&!c.isImplicitBuildTimeCache){let b=`Failed to set Next.js data cache for ${c.fetchUrl||a}, items over 2MB can not be cached (${d} bytes)`;if(this.dev)throw Object.defineProperty(Error(b),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(b);return}try{var e;!c.fetchCache&&c.cacheControl&&this.cacheControls.set((0,k.toRoute)(a),c.cacheControl),await (null==(e=this.cacheHandler)?void 0:e.set(a,b,c))}catch(b){console.warn("Failed to update prerender cache for",a,b)}}}},89198:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DynamicServerError:function(){return f},isDynamicServerError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="DYNAMIC_SERVER_USAGE";class f extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},89218:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return h},createSnapshot:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class f{disable(){throw e}getStore(){}run(){throw e}exit(){throw e}enterWith(){throw e}static bind(a){return a}}let g="u">typeof globalThis&&globalThis.AsyncLocalStorage;function h(){return g?new g:new f}function i(a){return g?g.bind(a):f.bind(a)}function j(){return g?g.snapshot():function(a,...b){return a(...b)}}},90132:a=>{(()=>{"use strict";var b={234:a=>{var b=Object.prototype.hasOwnProperty,c="~";function d(){}function e(a,b,c){this.fn=a,this.context=b,this.once=c||!1}function f(a,b,d,f,g){if("function"!=typeof d)throw TypeError("The listener must be a function");var h=new e(d,f||a,g),i=c?c+b:b;return a._events[i]?a._events[i].fn?a._events[i]=[a._events[i],h]:a._events[i].push(h):(a._events[i]=h,a._eventsCount++),a}function g(a,b){0==--a._eventsCount?a._events=new d:delete a._events[b]}function h(){this._events=new d,this._eventsCount=0}Object.create&&(d.prototype=Object.create(null),(new d).__proto__||(c=!1)),h.prototype.eventNames=function(){var a,d,e=[];if(0===this._eventsCount)return e;for(d in a=this._events)b.call(a,d)&&e.push(c?d.slice(1):d);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(a)):e},h.prototype.listeners=function(a){var b=c?c+a:a,d=this._events[b];if(!d)return[];if(d.fn)return[d.fn];for(var e=0,f=d.length,g=Array(f);e<f;e++)g[e]=d[e].fn;return g},h.prototype.listenerCount=function(a){var b=c?c+a:a,d=this._events[b];return d?d.fn?1:d.length:0},h.prototype.emit=function(a,b,d,e,f,g){var h=c?c+a:a;if(!this._events[h])return!1;var i,j,k=this._events[h],l=arguments.length;if(k.fn){switch(k.once&&this.removeListener(a,k.fn,void 0,!0),l){case 1:return k.fn.call(k.context),!0;case 2:return k.fn.call(k.context,b),!0;case 3:return k.fn.call(k.context,b,d),!0;case 4:return k.fn.call(k.context,b,d,e),!0;case 5:return k.fn.call(k.context,b,d,e,f),!0;case 6:return k.fn.call(k.context,b,d,e,f,g),!0}for(j=1,i=Array(l-1);j<l;j++)i[j-1]=arguments[j];k.fn.apply(k.context,i)}else{var m,n=k.length;for(j=0;j<n;j++)switch(k[j].once&&this.removeListener(a,k[j].fn,void 0,!0),l){case 1:k[j].fn.call(k[j].context);break;case 2:k[j].fn.call(k[j].context,b);break;case 3:k[j].fn.call(k[j].context,b,d);break;case 4:k[j].fn.call(k[j].context,b,d,e);break;default:if(!i)for(m=1,i=Array(l-1);m<l;m++)i[m-1]=arguments[m];k[j].fn.apply(k[j].context,i)}}return!0},h.prototype.on=function(a,b,c){return f(this,a,b,c,!1)},h.prototype.once=function(a,b,c){return f(this,a,b,c,!0)},h.prototype.removeListener=function(a,b,d,e){var f=c?c+a:a;if(!this._events[f])return this;if(!b)return g(this,f),this;var h=this._events[f];if(h.fn)h.fn!==b||e&&!h.once||d&&h.context!==d||g(this,f);else{for(var i=0,j=[],k=h.length;i<k;i++)(h[i].fn!==b||e&&!h[i].once||d&&h[i].context!==d)&&j.push(h[i]);j.length?this._events[f]=1===j.length?j[0]:j:g(this,f)}return this},h.prototype.removeAllListeners=function(a){var b;return a?(b=c?c+a:a,this._events[b]&&g(this,b)):(this._events=new d,this._eventsCount=0),this},h.prototype.off=h.prototype.removeListener,h.prototype.addListener=h.prototype.on,h.prefixed=c,h.EventEmitter=h,a.exports=h},274:a=>{a.exports=(a,b)=>(b=b||(()=>{}),a.then(a=>new Promise(a=>{a(b())}).then(()=>a),a=>new Promise(a=>{a(b())}).then(()=>{throw a})))},294:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b,c){let d=0,e=a.length;for(;e>0;){let f=e/2|0,g=d+f;0>=c(a[g],b)?(d=++g,e-=f+1):e=f}return d}},838:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(294);class e{constructor(){this._queue=[]}enqueue(a,b){let c={priority:(b=Object.assign({priority:0},b)).priority,run:a};if(this.size&&this._queue[this.size-1].priority>=b.priority)return void this._queue.push(c);let e=d.default(this._queue,c,(a,b)=>b.priority-a.priority);this._queue.splice(e,0,c)}dequeue(){let a=this._queue.shift();return null==a?void 0:a.run}filter(a){return this._queue.filter(b=>b.priority===a.priority).map(a=>a.run)}get size(){return this._queue.length}}b.default=e},138:(a,b,c)=>{let d=c(274);class e extends Error{constructor(a){super(a),this.name="TimeoutError"}}let f=(a,b,c)=>new Promise((f,g)=>{if("number"!=typeof b||b<0)throw TypeError("Expected `milliseconds` to be a positive number");if(b===1/0)return void f(a);let h=setTimeout(()=>{if("function"==typeof c){try{f(c())}catch(a){g(a)}return}let d="string"==typeof c?c:`Promise timed out after ${b} milliseconds`,h=c instanceof Error?c:new e(d);"function"==typeof a.cancel&&a.cancel(),g(h)},b);d(a.then(f,g),()=>{clearTimeout(h)})});a.exports=f,a.exports.default=f,a.exports.TimeoutError=e}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a](f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0});let a=d(234),b=d(138),c=d(838),f=()=>{},g=new b.TimeoutError;class h extends a{constructor(a){var b,d,e,g;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=f,this._resolveIdle=f,!("number"==typeof(a=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:c.default},a)).intervalCap&&a.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(d=null==(b=a.intervalCap)?void 0:b.toString())?d:""}\` (${typeof a.intervalCap})`);if(void 0===a.interval||!(Number.isFinite(a.interval)&&a.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(g=null==(e=a.interval)?void 0:e.toString())?g:""}\` (${typeof a.interval})`);this._carryoverConcurrencyCount=a.carryoverConcurrencyCount,this._isIntervalIgnored=a.intervalCap===1/0||0===a.interval,this._intervalCap=a.intervalCap,this._interval=a.interval,this._queue=new a.queueClass,this._queueClass=a.queueClass,this.concurrency=a.concurrency,this._timeout=a.timeout,this._throwOnTimeout=!0===a.throwOnTimeout,this._isPaused=!1===a.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}get _doesConcurrentAllowAnother(){return this._pendingCount<this._concurrency}_next(){this._pendingCount--,this._tryToStartAnother(),this.emit("next")}_resolvePromises(){this._resolveEmpty(),this._resolveEmpty=f,0===this._pendingCount&&(this._resolveIdle(),this._resolveIdle=f,this.emit("idle"))}_onResumeInterval(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}_isIntervalPaused(){let a=Date.now();if(void 0===this._intervalId){let b=this._intervalEnd-a;if(!(b<0))return void 0===this._timeoutId&&(this._timeoutId=setTimeout(()=>{this._onResumeInterval()},b)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let a=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let b=this._queue.dequeue();return!!b&&(this.emit("active"),b(),a&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(a){if(!("number"==typeof a&&a>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${a}\` (${typeof a})`);this._concurrency=a,this._processQueue()}async add(a,c={}){return new Promise((d,e)=>{let f=async()=>{this._pendingCount++,this._intervalCount++;try{let f=void 0===this._timeout&&void 0===c.timeout?a():b.default(Promise.resolve(a()),void 0===c.timeout?this._timeout:c.timeout,()=>{(void 0===c.throwOnTimeout?this._throwOnTimeout:c.throwOnTimeout)&&e(g)});d(await f)}catch(a){e(a)}this._next()};this._queue.enqueue(f,c),this._tryToStartAnother(),this.emit("add")})}async addAll(a,b){return Promise.all(a.map(async a=>this.add(a,b)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(a=>{let b=this._resolveEmpty;this._resolveEmpty=()=>{b(),a()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(a=>{let b=this._resolveIdle;this._resolveIdle=()=>{b(),a()}})}get size(){return this._queue.size}sizeBy(a){return this._queue.filter(a).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(a){this._timeout=a}}e.default=h})(),a.exports=e})()},90810:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={},g={RequestCookies:()=>n,ResponseCookies:()=>o,parseCookie:()=>j,parseSetCookie:()=>k,stringifyCookie:()=>i};for(var h in g)b(f,h,{get:g[h],enumerable:!0});function i(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function j(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function k(a){if(!a)return;let[[b,c],...d]=j(a),{domain:e,expires:f,httponly:g,maxage:h,path:i,samesite:k,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof h&&{maxAge:Number(h)},path:i,...k&&{sameSite:l.includes(q=(q=k).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:m.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}a.exports=((a,f,g)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let h of d(f))e.call(a,h)||void 0===h||b(a,h,{get:()=>f[h],enumerable:!(g=c(f,h))||g.enumerable});return a})(b({},"__esModule",{value:!0}),f);var l=["strict","lax","none"],m=["low","medium","high"],n=class{constructor(a){this._parsed=new Map,this._headers=a;const b=a.get("cookie");if(b)for(const[a,c]of j(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>i(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>i(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},o=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;const e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(const a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){const b=k(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=i(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(i).join("; ")}}},90925:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MultiFileWriter",{enumerable:!0,get:function(){return f}});let e=(d=c(40694))&&d.__esModule?d:{default:d};class f{constructor(a){this.fs=a,this.tasks=[]}findOrCreateTask(a){for(let b of this.tasks)if(b[0]===a)return b;let b=this.fs.mkdir(a);b.catch(()=>{});let c=[a,b,[]];return this.tasks.push(c),c}append(a,b){let c=this.findOrCreateTask(e.default.dirname(a)),d=c[1].then(()=>this.fs.writeFile(a,b));d.catch(()=>{}),c[2].push(d)}wait(){return Promise.all(this.tasks.flatMap(a=>a[2]))}}},91117:(a,b,c)=>{"use strict";function d(a,b,c=null){let e=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return e?e.value:c}function e(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c.d(b,{dy:()=>d,np:()=>e}),c(59339)},92539:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compareAppPaths:function(){return i},normalizeAppPath:function(){return h},normalizeRscURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(17888),g=c(53610);function h(a){return(0,f.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,g.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:`${a}/${b}`,""))}function i(a,b){let c=a.includes("/@"),d=b.includes("/@");return c&&!d?-1:!c&&d?1:a.localeCompare(b)}function j(a){return a.replace(/\.rsc($|\?)/,"$1")}},92729:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(36299),e=c(1390),f=c(69687),g=c(82737),h=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function i(a,b){let c=new URL(String(a),b&&String(b));return h.test(c.hostname)&&(c.hostname="localhost"),c}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},93250:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(77890);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},93384:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(38955),g=c(31050),h=c(29294),i=c(79285);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},94143:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/memory-cache.external.js")},94735:a=>{"use strict";a.exports=require("events")},95160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(43892),e=c(59339),f=c(33323);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
|
|
168
|
+
Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},84573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(92729),g=c(99751),h=c(68802),i=c(38955),j=Symbol("internal request");class k extends Request{constructor(a,b={}){const c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);const d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},85292:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AfterContext",{enumerable:!0,get:function(){return m}});let e=(d=c(90132))&&d.__esModule?d:{default:d},f=c(42776),g=c(32053),h=c(29294),i=c(67205),j=c(89218),k=c(3295),l=c(28704);class m{constructor({waitUntil:a,onClose:b,onTaskError:c}){this.isRequestClosed=!1,this.initialOnCloseError=null,this.workUnitStores=new Set,this.waitUntil=a,this.onClose=b,this.onTaskError=c,this.callbackQueue=new e.default,this.callbackQueue.pause();try{b(()=>{for(let a of(this.isRequestClosed=!0,this.workUnitStores))a.phase="after"})}catch(a){this.initialOnCloseError={error:a}}}after(a,b){if(this.initialOnCloseError)throw Object.defineProperty(new f.InvariantError("An onClose call failed, which means after() can't work correctly.",{cause:this.initialOnCloseError.error}),"__NEXT_ERROR_CODE",{value:"E1376",enumerable:!1,configurable:!0});if(this.workUnitStores.add(b),(0,g.isThenable)(a))this.addThenable(a);else if("function"==typeof a)this.addCallback(a,b);else throw Object.defineProperty(Error("`after()`: Argument must be a promise or a function"),"__NEXT_ERROR_CODE",{value:"E50",enumerable:!1,configurable:!0})}addThenable(a){this.waitUntil||n(),this.waitUntil(new Promise(b=>{a.then(()=>{b()},a=>{b(),this.reportTaskError("promise",a)})}))}addCallback(a,b){this.waitUntil||n();let c=k.afterTaskAsyncStorage.getStore(),d=c?c.rootTaskSpawnPhase:b.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let e=(0,j.bindSnapshot)(async()=>{try{await k.afterTaskAsyncStorage.run({rootTaskSpawnPhase:d},()=>a())}catch(a){this.reportTaskError("function",a)}});this.callbackQueue.add(e)}async runCallbacksOnClose(){return this.isRequestClosed?await new Promise(a=>(0,l.scheduleImmediate)(a)):await new Promise(a=>this.onClose(a)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;let a=h.workAsyncStorage.getStore();if(!a)throw Object.defineProperty(new f.InvariantError("Missing workStore in AfterContext.runCallbacks"),"__NEXT_ERROR_CODE",{value:"E547",enumerable:!1,configurable:!0});return(0,i.withExecuteRevalidates)(a,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(a,b){if(console.error("promise"===a?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",b),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,b)}catch(a){console.error(Object.defineProperty(new f.InvariantError("`onTaskError` threw while handling an error thrown from an `after` task",{cause:a}),"__NEXT_ERROR_CODE",{value:"E569",enumerable:!1,configurable:!0}))}}}function n(){throw Object.defineProperty(Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment."),"__NEXT_ERROR_CODE",{value:"E91",enumerable:!1,configurable:!0})}},85304:(a,b,c)=>{"use strict";c.d(b,{exportSettings:()=>i,getSettings:()=>h});var d=c(59339),e=c(33323);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},topologyVisibility:{},comboCardOrder:[],comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},comboRetryOnEmpty:!1,comboRetryOnEmptyLimit:2,capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,hideLoginOffBanner:!1,autoUpdateCheck:!0,requireApiKey:!0,dailyTokenLimitEnabled:!0,autoCompactEnabled:!0,autoCompactRatio:.95,autoCompactKeepMessages:8,apiKeyRotation:!1,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:10router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,codeBuddyCheckin:!1,codeBuddyCompensation:!1,codeBuddyDailyDone:{},codeBuddyCompensationDone:{},qoderCheckin:!1,qoderDailyDone:{},minimaxCheckin:!1,minimaxDailyDone:{},channelBlocks:{}};async function g(){let a=(await (0,d.cK)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}async function h(){var a=await g();let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function i(){return await g()}},85503:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getSortedRouteObjects:function(){return g},getSortedRoutes:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let e=d.slice(1,-1),g=!1;if(e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1),g=!0),e.startsWith("…"))throw Object.defineProperty(Error(`Detected a three-dot character ('…') at ('${e}'). Did you mean ('...')?`),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(e.startsWith("...")&&(e=e.substring(3),c=!0),e.startsWith("[")||e.endsWith("]"))throw Object.defineProperty(Error(`Segment names may not start or end with extra brackets ('${e}').`),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(e.startsWith("."))throw Object.defineProperty(Error(`Segment names may not start with erroneous periods ('${e}').`),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Object.defineProperty(Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,e),this.optionalRestSlugName=e,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,e),this.restSlugName=e,d="[...]"}else{if(g)throw Object.defineProperty(Error(`Optional route parameters are not yet supported ("${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,e),this.slugName=e,d="[]"}}this.children.has(d)||this.children.set(d,new e),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function f(a){let b=new e;return a.forEach(a=>b.insert(a)),b.smoosh()}function g(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return f(d).map(b=>a[c[b]])}},86013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15971),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},86231:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>aY,handler:()=>aX});var e={};c.r(e),c.d(e,{config:()=>aQ,default:()=>aP}),require("next/dist/build/adapter/setup-node-env.external");var f=c(32648),g=c(76309),h=c(88771),i=c(62940),j=c(95226),k=c(2886),l=c(73024),m=c.n(l),n=c(76760),o=c.n(n),p=c(77598),q=c.n(p),r=c(72045);let s=o().join(r.nJ,"machine-id"),t=o().join(r.nJ,"auth"),u=o().join(t,"cli-secret"),v=null,w=null;async function x(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(v)return v;try{if(v=m().readFileSync(s,"utf8").trim())return v}catch{}try{v=(0,k.machineIdSync)()}catch{v=q().randomUUID()}try{m().mkdirSync(r.nJ,{recursive:!0}),m().writeFileSync(s,v,{mode:384})}catch{}return v}(),d="9r-cli-auth"===b?function(){if(w)return w;try{if(w=m().readFileSync(u,"utf8").trim())return w}catch{}w=q().randomBytes(32).toString("hex");try{m().mkdirSync(t,{recursive:!0}),m().writeFileSync(u,w,{mode:384})}catch{}return w}():"";return q().createHash("sha256").update(c+b+d).digest("hex").substring(0,16)}let y=(a,b="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${b} must be ${a}`);async function z(a,b,c){return b instanceof Uint8Array?crypto.subtle.importKey("raw",b,a.subtle,!1,[c]):(!function(a,b,c){let d=a.algorithm;if(d.name!==b.name)throw y(b.name);if(b.hash&&d.hash?.name!==b.hash)throw y(b.hash,"algorithm.hash");if(b.namedCurve&&d.namedCurve!==b.namedCurve)throw y(b.namedCurve,"algorithm.namedCurve");if(void 0!==b.length&&d.length!==b.length)throw y(b.length,"algorithm.length");if(c&&!a.usages.includes(c))throw TypeError(`CryptoKey does not support this operation, its usages must include ${c}.`)}(b,a.subtle,c),a.minRsaBits&&function(a,b){let{modulusLength:c}=b.algorithm;if("number"!=typeof c||c<2048)throw TypeError(`${a} requires key modulusLength to be 2048 bits or larger`)}(a.alg,b),b)}async function A(a,b,c,d){let e=await z(a,b,"verify");try{return await crypto.subtle.verify(a.signing,e,c,d)}catch{return!1}}class B extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(a,b){super(a,b),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class C extends B{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class D extends B{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class E extends B{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class F extends B{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class G extends B{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class H extends B{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class I extends B{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(a="signature verification failed",b){super(a,b)}}let J=[["verify"],["sign"]];function K(a){let b={name:"HMAC",hash:`SHA-${a}`};return{kty:["oct"],secret:!0,subtle:b,signing:b,usages:J}}function L(a,b){let c={name:b?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${a}`};return{kty:["RSA"],subtle:c,signing:b?{...c,saltLength:b}:c,usages:J,minRsaBits:2048}}function M(a,b){return{kty:["EC"],crv:a,subtle:{name:"ECDSA",namedCurve:a},signing:{name:"ECDSA",hash:`SHA-${b}`},usages:J}}function N(){let a={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:a,signing:a,usages:J}}function O(a){let b={name:`ML-DSA-${a}`};return{kty:["AKP"],subtle:b,signing:b,usages:J}}let P=function(a){let b={__proto__:null};for(let c in a)b[c]={...a[c],alg:c};return b}({HS256:K(256),HS384:K(384),HS512:K(512),RS256:L(256),RS384:L(384),RS512:L(512),PS256:L(256,32),PS384:L(384,48),PS512:L(512,64),ES256:M("P-256",256),ES384:M("P-384",384),ES512:M("P-521",512),EdDSA:N(),Ed25519:N(),"ML-DSA-44":O(44),"ML-DSA-65":O(65),"ML-DSA-87":O(87)});new TextEncoder;let Q=new TextDecoder,R=new TextDecoder("utf-8",{fatal:!0});function S(a){let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);if(d>127)throw TypeError("non-ASCII string encountered in encode()");b[c]=d}return b}let T="The input to be decoded is not correctly encoded.";function U(a){if(Uint8Array.fromBase64)try{return Uint8Array.fromBase64("string"==typeof a?a:Q.decode(a),{alphabet:"base64url"})}catch(a){throw TypeError(T,{cause:a})}let b=a;if(b instanceof Uint8Array&&(b=Q.decode(b)),b.includes("+")||b.includes("/"))throw TypeError(T);b=b.replace(/-/g,"+").replace(/_/g,"/");try{var c=b;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(c);let a=atob(c),d=new Uint8Array(a.length);for(let b=0;b<a.length;b++)d[b]=a.charCodeAt(b);return d}catch{throw TypeError(T)}}function V(a){if("object"!=typeof a||null===a||"[object Object]"!==Object.prototype.toString.call(a))return!1;let b=Object.getPrototypeOf(a);return null===b||null===Object.getPrototypeOf(b)}function W(a,b,c){try{return U(a)}catch{throw new c(`Failed to base64url decode the ${b}`)}}Symbol();let X={__proto__:null,b64:!0},Y=(a,b,...c)=>(function(a,b,...c){if(c.length>2){let b=c.pop();a+=`one of type ${c.join(", ")}, or ${b}.`}else 2===c.length?a+=`one of type ${c[0]} or ${c[1]}.`:a+=`of type ${c[0]}.`;return null==b?a+=` Received ${b}`:"function"==typeof b&&b.name?a+=` Received function ${b.name}`:"object"==typeof b&&null!=b&&b.constructor?.name&&(a+=` Received an instance of ${b.constructor.name}`),a})(`Key for the ${a} algorithm must be `,b,...c),Z=a=>{if(a?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return a instanceof CryptoKey}catch{return!1}};async function $(a,b){if("RSA"===b.kty&&"oth"in b&&void 0!==b.oth)throw new F('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');if(!a.kty.includes(b.kty))throw new F('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let c=a.resolve?.({kty:b.kty,crv:b.crv})??a.subtle,d=!!(b.d||b.priv),e={...b};return"AKP"!==e.kty&&delete e.alg,delete e.use,crypto.subtle.importKey("jwk",e,c,b.ext??!d,b.key_ops??a.usages[+!!d])}let _=a=>a[Symbol.toStringTag],aa={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"};function ab(a,b,c){let e=(d||=new WeakMap).get(a);return c&&(e?e[b]=c:d.set(a,{[b]:c})),c??e?.[b]}let ac=async(a,b,c)=>ab(a,c.alg)??ab(a,c.alg,await $(c,{...b,alg:c.alg}));async function ad(a,b,c){let d=function(a,b,c){let{alg:d,secret:e}=a,f="decrypt"===c||"sign"===c;if(e&&b instanceof Uint8Array)return[0,b];if(V(b)){let g=function(a){let b={__proto__:null,...a};if(void 0!==b.ext&&"boolean"!=typeof b.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==b.key_ops){let a=b.key_ops,c=Array.isArray(a)?[...a]:void 0;if(!c||c.some(a=>"string"!=typeof a)||new Set(c).size!==c.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');b.key_ops=c}return b}(b);if("string"!=typeof g.kty)throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(!(e?"oct"===g.kty&&"string"==typeof g.k:"oct"!==g.kty&&(f?"AKP"===g.kty&&"string"==typeof g.priv||"string"==typeof g.d:void 0===g.d&&void 0===g.priv)))throw TypeError(e?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${f?"private":"public"} JWK`);return((a,b,c)=>{let{alg:d}=a;if(void 0!==b.use){let a="sign"===c||"verify"===c?"sig":"enc";if(b.use!==a)throw TypeError(`Invalid key for this operation, its "use" must be "${a}" when present`)}if(void 0!==b.alg&&b.alg!==d)throw TypeError(`Invalid key for this operation, its "alg" must be "${d}" when present`);if(Array.isArray(b.key_ops)){let d="encrypt"===c||"decrypt"===c?a.ops?.[+("encrypt"!==c)]:c;if(d&&!b.key_ops.includes(d))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}})(a,g,c),[3,b,g]}if(!(Z(b)||b?.[Symbol.toStringTag]==="KeyObject"))throw TypeError(e?Y(d,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"):Y(d,b,"CryptoKey","KeyObject","JSON Web Key"));if(e){if("secret"!==b.type)throw TypeError(`${_(b)} instances for symmetric algorithms must be of type "secret"`)}else{if("secret"===b.type)throw TypeError(`${_(b)} instances for asymmetric algorithms must not be of type "secret"`);let a=f?"private":"public";if(("public"===b.type||"private"===b.type)&&b.type!==a){let d="sign"===c?"signing":"verify"===c?"verifying":`${c.slice(0,-1)}tion`;throw TypeError(`${_(b)} instances for asymmetric algorithm ${d} must be of type "${a}"`)}}return Z(b)?[1,b]:[2,b]}(a,b,c);switch(d[0]){case 0:case 1:return d[1];case 3:{let b=d[1],c=d[2];if("oct"===c.kty)return U(c.k);if(!Object.isFrozen(b)){let{key_ops:a}=b;Array.isArray(a)&&Object.freeze(a),Object.freeze(b)}return ac(b,c,a)}case 2:{let b=d[1];if("secret"===b.type)return b.export();if("toCryptoKey"in b&&"function"==typeof b.toCryptoKey)return((a,b)=>{let c=ab(a,b.alg);if(c)return c;let d="public"===a.type,e=b.usages[+!d],{asymmetricKeyType:f}=a,g=aa[a.asymmetricKeyDetails?.namedCurve],h=b.resolve?.({crv:g,asymmetricKeyType:f})??b.subtle;return ab(a,b.alg,a.toCryptoKey(h,d,e))})(b,a);return ac(b,b.export({format:"jwk"}),a)}}}async function ae(a,b,c,d,e,f,g){let h=!1;"function"==typeof c&&(c=await c(e,a),h=!0);let i="string"==typeof g,j=function(a){let b="string"==typeof a?P[a]:void 0;if(!b)throw new F(`alg ${a} is not supported either by JOSE or your javascript runtime`);return b}(f),k=function(...a){let b=new Uint8Array(a.reduce((a,{length:b})=>a+b,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}(void 0!==d?S(d):new Uint8Array,S("."),i?b[2]??=function(a,b,c){try{return S(a)}catch{throw new c(`The ${b} is not a valid base64url string`)}}(g,"payload",G):g),l=W(a.signature,"signature",G),m=await ad(j,c,"verify");if(!await A(j,m,l,k))throw new I;return[i?W(g,"payload",G):g,e,i,m,h]}async function af(a,b,c){if(a instanceof Uint8Array&&(a=Q.decode(a)),"string"!=typeof a)throw new G("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new G("Invalid Compact JWS");let h=function(a,b=void 0===a?{}:function(a,b,c){let d;try{d=JSON.parse(R.decode(U(a)))}catch{throw new b(c)}if(!V(d))throw new b(c);return d}(a,G,"JWS Protected Header is invalid")){return b}(d),[i,j]=function(a,b,c){let d=function(a,b){if(b.includes("b64")){let b=a.b64;if("boolean"!=typeof b)throw new G('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return b}return!0}(a,function(a,b,c,d,e){if(void 0!==e.crit&&d?.crit===void 0)throw new a('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return[];if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(a=>"string"!=typeof a||0===a.length))throw new a('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let f=void 0===c?b:{__proto__:null,...c,...b};for(let b of d.crit){if(!(b in f))throw new F(`Extension Header Parameter "${b}" is not recognized`);if(!Object.hasOwn(e,b)||void 0===e[b])throw new a(`Extension Header Parameter "${b}" is missing`);if(f[b]&&(!Object.hasOwn(d,b)||void 0===d[b]))throw new a(`Extension Header Parameter "${b}" MUST be integrity protected`)}return d.crit}(G,X,c[1],a,b)),e=b.alg;if("string"!=typeof e||!e)throw new G('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(c[0]&&!c[0].has(e))throw new E('"alg" (Algorithm) Header Parameter value not allowed');return[d,e]}(h,h,b),k=i?e:function(a){try{return S(a)}catch{throw new G("JWS Compact Serialization payload must use only ASCII characters")}}(e);return ae({payload:e,protected:d,signature:f},b,c,d,h,j,k)}let ag={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},ah=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,ai="check_failed";function aj(){throw TypeError("Invalid time period format")}function ak(a){"string"!=typeof a&&aj();let b=ah.exec(a);(!b||b[4]&&b[1])&&aj();let c=Math.round(parseFloat(b[2])*ag[b[3][0].toLowerCase()]);return(Number.isFinite(c)||aj(),"-"===b[1]||"ago"===b[4])?-c:c}function al(a,b){if(!Number.isFinite(b))throw TypeError(`Invalid ${a} input`);return b}let am=a=>{let b=a.toLowerCase();return a.includes("/")?b:`application/${b}`};function an(a,b,c=!1){let d=a[b];if(void 0!==d||c){if("number"!=typeof d)throw new C(`"${b}" claim must be a number`,a,b,"invalid");return d}}function ao(a,b){throw new C(`unexpected "${b}" claim value`,a,b,ai)}async function ap(a,b,c){let d=await af(a,[c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new H("JWTs MUST NOT use unencoded payload");let e={payload:function(a,b,c={}){var d,e;let f;try{f=JSON.parse(R.decode(b))}catch{}if(!V(f))throw new H("JWT Claims Set must be a top-level JSON object");let{typ:g}=c;if(void 0!==g&&("string"!=typeof a.typ||am(a.typ)!==am(g)))throw new C('unexpected "typ" JWT header value',f,"typ",ai);let{requiredClaims:h=[],issuer:i,subject:j,audience:k,maxTokenAge:l}=c,m=[...h];for(let a of(void 0!==l&&m.push("iat"),void 0!==k&&m.push("aud"),void 0!==j&&m.push("sub"),void 0!==i&&m.push("iss"),new Set(m.reverse())))if(!Object.hasOwn(f,a))throw new C(`missing required "${a}" claim`,f,a,"missing");void 0===i||(Array.isArray(i)?i:[i]).includes(f.iss)||ao(f,"iss"),void 0!==j&&f.sub!==j&&ao(f,"sub"),void 0===k||(d=f.aud,e="string"==typeof k?[k]:k,"string"==typeof d?e.includes(d):!!Array.isArray(d)&&e.some(a=>d.includes(a)))||ao(f,"aud");let{clockTolerance:n}=c,o=0;if("string"==typeof n)o=ak(n);else if(void 0!==n){if("number"!=typeof n)throw TypeError("Invalid clockTolerance option type");o=n}al("clockTolerance option",o);let{currentDate:p}=c,q=al("currentDate option",Math.floor((void 0===p?new Date:p).getTime()/1e3)),r=an(f,"iat",void 0!==l),s=an(f,"nbf");if(void 0!==s&&s>q+o)throw new C('"nbf" claim timestamp check failed',f,"nbf",ai);let t=an(f,"exp");if(void 0!==t&&t<=q-o)throw new D('"exp" claim timestamp check failed',f,"exp",ai);if(void 0!==l){let a=q-r;if(a-o>al("maxTokenAge option","number"==typeof l?l:ak(l)))throw new D('"iat" claim timestamp check failed (too far in the past)',f,"iat",ai);if(a<-o)throw new C('"iat" claim timestamp check failed (it should be in the past)',f,"iat",ai)}return f}(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}c(55511);"function"==typeof setImmediate||"object"==typeof scheduler&&"function"==typeof scheduler.postTask&&scheduler.postTask.bind(scheduler);var aq=c(2071);function ar(a){var b;let c;return"string"==typeof(c=process.env.INITIAL_PASSWORD)&&!!c.trim()||(b=a,!!(b?.password||String(b?.oidcIssuerUrl||"").trim()&&String(b?.oidcClientId||"").trim()&&String(b?.oidcClientSecret||"").trim())||!!(b?.samlEntryPoint&&b?.samlCert))}let as=new Set(["change-me-to-a-long-random-secret","10router-default-secret-change-me","change-me-to-a-random-string","change-me"]),at=new TextEncoder().encode(function(){let a=process.env.JWT_SECRET;if(a){if(!as.has(a))return a;console.warn("[auth] JWT_SECRET is a known placeholder value — ignoring it. Leave JWT_SECRET unset (a random secret is generated to "+o().join(r.nJ,"jwt-secret")+") or set a long random value.")}let b=o().join(r.nJ,"jwt-secret");try{return m().readFileSync(b,"utf8").trim()}catch{}m().mkdirSync(r.nJ,{recursive:!0});let c=q().randomBytes(32).toString("hex");return m().writeFileSync(b,c,{mode:384}),(0,aq.E)(b),c}());async function au(a){if(!a)return!1;try{return await ap(a,at),!0}catch{return!1}}let av=null;async function aw(){return av||(av=await x("9r-cli-auth")),av}async function ax(a){let b=a.headers.get("x-10r-cli-token")||a.headers.get("x-9r-cli-token")||null;return!!b&&b===await aw()}let ay=["/api/health","/api/locale","/api/auth/login","/api/auth/logout","/api/auth/status","/api/auth/oidc","/api/auth/saml","/api/auth/verify-password","/api/settings/require-login"],az=["/api/version","/api/init"],aA=["/v1","/v1beta","/api/v1","/api/v1beta","/codex","/responses"],aB=["/api/shutdown","/api/settings/database","/api/version/shutdown","/api/version/update","/api/version/shell-update","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/transfer/"],aC=["/api/cli-tools/cowork-settings","/api/cli-tools/antigravity-mitm","/api/mcp/","/api/tunnel/tailscale-install","/api/tunnel/tailscale-enable","/api/tunnel/tailscale-disable","/api/tunnel/tailscale-check","/api/tunnel/enable","/api/tunnel/disable","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/xiaomi-mimo/auto-import","/api/oauth/xiaomi-mimo/desktop-status","/api/oauth/xiaomi-mimo/desktop-kill","/api/auth/reset-password","/api/headroom/start","/api/headroom/stop","/api/headroom/proxy"],aD=new Set(["localhost","127.0.0.1","::1"]);function aE(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),aD.has(b)}function aF(a){let b;if(a.headers.get("x-10r-via-proxy")||!((b=process.env.TENROUTER_PEER_TOKEN)&&a.headers.get("x-10r-peer-token")===b&&aE(a.headers.get("x-10r-real-ip"))))return!1;let c=a.headers.get("origin");if(c)try{if(!aE(new URL(c).hostname))return!1}catch{return!1}return!0}function aG(a){return aA.some(b=>a===b||a.startsWith(`${b}/`))}function aH(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");if(c)return c;let d=a.headers.get("x-goog-api-key");return d||a.nextUrl.searchParams?.get("key")||null}async function aI(a){let b=aH(a);return!!b&&await (0,j.ek)(b)}async function aJ(a){return!!(aF(a)||await ax(a))||await aI(a)}async function aK(a){return!!(await ax(a)||aF(a)&&await aN(a))}async function aL(a){let b=a.cookies.get("auth_token")?.value;return await au(b)}async function aM(){try{return await (0,j.mt)()}catch{return null}}async function aN(a){if(await aL(a))return!0;let b=await aM();return!!(b&&!1===b.requireLogin||!ar(b)&&aF(a))}async function aO(a){let{pathname:b}=a.nextUrl;if(!aG(b)){let b=await aM();if(b?.dashboardLocalOnly===!0&&!aF(a))return i.NextResponse.json({error:"The dashboard is set to local-only access (Experimental → Security). Turn it off from the machine running 10Router to manage it remotely."},{status:403})}if(("/api/oauth/xiaomi-mimo/auto-import"===b||"/api/oauth/xiaomi-mimo/desktop-status"===b||"/api/oauth/xiaomi-mimo/desktop-kill"===b&&"POST"===a.method)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aC.some(a=>b.startsWith(a))&&!await aK(a))return i.NextResponse.json({error:"Local only: CLI token required"},{status:403});if("POST"===a.method&&"/api/settings/database/import-usage"===b&&(a.headers.get("x-10r-password")||a.headers.get("x-9r-password")||aH(a))||"POST"===a.method&&("/api/oauth/transfer/import"===b||"/api/oauth/transfer/export"===b)&&aF(a)&&await aN(a))return i.NextResponse.next();if(aB.some(a=>b.startsWith(a)))return await ax(a)||await aL(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(aG(b))return await aJ(a)?i.NextResponse.next():i.NextResponse.json({error:"API key required for remote API access"},{status:401});if(az.some(a=>b===a||b.startsWith(`${a}/`)))return aF(a)||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if("GET"===a.method&&"/api/usage/quotas"===b&&await aI(a)||("POST"===a.method||"DELETE"===a.method)&&b.startsWith("/api/external-quota/")&&(await aI(a)||await ax(a))||"POST"===a.method&&("/api/provider-nodes"===b||"/api/providers"===b)&&await aI(a))return i.NextResponse.next();if(b.startsWith("/api/"))return aG(b)||ay.some(a=>b===a||b.startsWith(`${a}/`))||await ax(a)||await aN(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(b.startsWith("/dashboard")){let b=!0,c=null;try{let d=await aM();if(c=d,d&&(b=!1!==d.requireLogin,!0!==d.tunnelDashboardAccess)){let b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),c=d.tunnelUrl?new URL(d.tunnelUrl).hostname.toLowerCase():"",e=d.tailscaleUrl?new URL(d.tailscaleUrl).hostname.toLowerCase():"";if(c&&b===c||e&&b===e)return i.NextResponse.redirect(new URL("/login",a.url))}}catch{}if(!b||!ar(c)&&aF(a))return i.NextResponse.next();let d=a.cookies.get("auth_token")?.value;return d&&await au(d)?i.NextResponse.next():i.NextResponse.redirect(new URL("/login",a.url))}return"/"===b?i.NextResponse.redirect(new URL("/dashboard",a.url)):i.NextResponse.next()}async function aP(a){return aO(a)}let aQ={matcher:["/((?!_next/static|_next/image|favicon\\.ico).*)"]};c(6365);var aR=c(99751);let aS={...e},aT="/src/proxy",aU=(0,aS.proxy||aS.default);class aV extends Error{constructor(a){super(a),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.stack=""}}if("function"!=typeof aU)throw new aV(`The Proxy file "${aT}" must export a function named \`proxy\` or a default function.`);let aW=async a=>{var b,d;{let{join:e,relative:f}=c(76760),{ensureInstrumentationRegistered:g}=c(7465),h=e(process.cwd(),(null==(b=a.request.requestMeta)?void 0:b.relativeProjectDir)||""),i=null==(d=a.request.requestMeta)?void 0:d.distDir,j=i?f(h,i):".next";await g(h,j)}return(0,g.adapter)({...a,IncrementalCache:h.IncrementalCache,incrementalCacheHandler:null,page:aT,handler:async(...a)=>{try{return await aU(...a)}catch(e){let b=a[0],c=new URL(b.url),d=c.pathname+c.search;throw await (0,f.edgeInstrumentationOnRequestError)(e,{path:d,method:b.method,headers:Object.fromEntries(b.headers.entries())},{routerKind:"Pages Router",routePath:"/proxy",routeType:"proxy",revalidateReason:void 0}),e}}})};async function aX(a,b){let c=await aW({request:{url:a.url,method:a.method,headers:(0,aR.toNodeOutgoingHttpHeaders)(a.headers),nextConfig:{basePath:"",i18n:"",trailingSlash:!1,experimental:{cacheLife:{default:{stale:300,revalidate:900,expire:0xfffffffe},seconds:{stale:30,revalidate:1,expire:60},minutes:{stale:300,revalidate:60,expire:3600},hours:{stale:300,revalidate:3600,expire:86400},days:{stale:300,revalidate:86400,expire:604800},weeks:{stale:300,revalidate:604800,expire:2592e3},max:{stale:300,revalidate:2592e3,expire:31536e3}},authInterrupts:!1,clientParamParsingOrigins:[]}},page:{name:aT},body:"GET"!==a.method&&"HEAD"!==a.method?a.body??void 0:void 0,waitUntil:b.waitUntil,requestMeta:b.requestMeta,signal:b.signal||new AbortController().signal}});return null==b.waitUntil||b.waitUntil.call(b,c.waitUntil),c.response}let aY=aW},86948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isFullStringUrl:function(){return h},parseReqUrl:function(){return j},parseUrl:function(){return i},stripNextRscUnionQuery:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g="http://n";function h(a){return/https?:\/\//.test(a)}function i(a){let b;try{b=new URL(a,g)}catch{}return b}function j(a){let b=i(a);if(!b)return;let c={};for(let a of b.searchParams.keys()){let d=b.searchParams.getAll(a);c[a]=d.length>1?d:d[0]}return{query:c,hash:b.hash,search:b.search,path:b.pathname,pathname:b.pathname,href:`${b.pathname}${b.search}${b.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}function k(a){let b=new URL(a,g);return b.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b.pathname+b.search}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},88026:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o={AppRenderSpan:function(){return w},AppRouteRouteHandlersSpan:function(){return z},BaseServerSpan:function(){return q},LoadComponentsSpan:function(){return r},LogSpanAllowList:function(){return D},MiddlewareSpan:function(){return B},NextNodeServerSpan:function(){return t},NextServerSpan:function(){return s},NextVanillaSpanAllowlist:function(){return C},NodeSpan:function(){return y},RenderSpan:function(){return v},ResolveMetadataSpan:function(){return A},RouterSpan:function(){return x},StartServerSpan:function(){return u}};for(var p in o)Object.defineProperty(b,p,{enumerable:!0,get:o[p]});var q=((c=q||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),r=((d=r||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d),s=((e=s||{}).getRequestHandler="NextServer.getRequestHandler",e.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer",e),t=((f=t||{}).compression="NextNodeServer.compression",f.getBuildId="NextNodeServer.getBuildId",f.createComponentTree="NextNodeServer.createComponentTree",f.clientComponentLoading="NextNodeServer.clientComponentLoading",f.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",f.generateStaticRoutes="NextNodeServer.generateStaticRoutes",f.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",f.generatePublicRoutes="NextNodeServer.generatePublicRoutes",f.generateImageRoutes="NextNodeServer.generateImageRoutes.route",f.sendRenderResult="NextNodeServer.sendRenderResult",f.proxyRequest="NextNodeServer.proxyRequest",f.runApi="NextNodeServer.runApi",f.render="NextNodeServer.render",f.renderHTML="NextNodeServer.renderHTML",f.imageOptimizer="NextNodeServer.imageOptimizer",f.getPagePath="NextNodeServer.getPagePath",f.getRoutesManifest="NextNodeServer.getRoutesManifest",f.findPageComponents="NextNodeServer.findPageComponents",f.getFontManifest="NextNodeServer.getFontManifest",f.getServerComponentManifest="NextNodeServer.getServerComponentManifest",f.getRequestHandler="NextNodeServer.getRequestHandler",f.renderToHTML="NextNodeServer.renderToHTML",f.renderError="NextNodeServer.renderError",f.renderErrorToHTML="NextNodeServer.renderErrorToHTML",f.render404="NextNodeServer.render404",f.startResponse="NextNodeServer.startResponse",f.route="route",f.onProxyReq="onProxyReq",f.apiResolver="apiResolver",f.internalFetch="internalFetch",f),u=((g=u||{}).startServer="startServer.startServer",g),v=((h=v||{}).getServerSideProps="Render.getServerSideProps",h.getStaticProps="Render.getStaticProps",h.renderToString="Render.renderToString",h.renderDocument="Render.renderDocument",h.createBodyResult="Render.createBodyResult",h),w=((i=w||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i.waitShellReady="AppRender.waitShellReady",i.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",i.instantInsights="AppRender.instantInsights",i.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",i.instantInsightsRunValidation="AppRender.instantInsights.runValidation",i),x=((j=x||{}).executeRoute="Router.executeRoute",j),y=((k=y||{}).runHandler="Node.runHandler",k),z=((l=z||{}).runHandler="AppRouteRouteHandlers.runHandler",l),A=((m=A||{}).generateMetadata="ResolveMetadata.generateMetadata",m.generateViewport="ResolveMetadata.generateViewport",m),B=((n=B||{}).execute="Middleware.execute",n);let C=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),D=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},88266:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return k}});let e=c(72394),f=(d=c(40694))&&d.__esModule?d:{default:d},g=c(96100),h=c(36820),i=c(90925),j=c(94143);class k{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(a){this.fs=a.fs,this.flushToDisk=a.flushToDisk,this.serverDistDir=a.serverDistDir,this.revalidatedTags=a.revalidatedTags,a.maxMemoryCacheSize?k.memoryCache?k.debug&&console.log("FileSystemCache: memory store already initialized"):(k.debug&&console.log("FileSystemCache: using memory store for fetch cache"),k.memoryCache=(0,j.getMemoryCache)(a.maxMemoryCacheSize)):k.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(a,b){if(a="string"==typeof a?[a]:a,k.debug&&console.log("FileSystemCache: revalidateTag",a,b),0===a.length)return;let c=Date.now();for(let d of a){let a=h.tagsManifest.get(d)||{};if(b){let e={...a};e.stale=c,void 0!==b.expire&&(e.expired=c+1e3*b.expire),h.tagsManifest.set(d,e)}else h.tagsManifest.set(d,{...a,expired:c})}}async get(...a){var b,c,d,f,i,j,l,m,n;let[o,p]=a,{kind:q}=p,r=null==(b=k.memoryCache)?void 0:b.get(o);if(k.debug&&(q===e.IncrementalCacheKind.FETCH?console.log("FileSystemCache: get",o,p.tags,q,!!r):console.log("FileSystemCache: get",o,q,!!r)),!r)try{if(q===e.IncrementalCacheKind.APP_ROUTE){let a=this.getFilePath(`${o}.body`,e.IncrementalCacheKind.APP_ROUTE),b=await this.fs.readFile(a),{mtime:c}=await this.fs.stat(a),d=JSON.parse(await this.fs.readFile(a.replace(/\.body$/,g.NEXT_META_SUFFIX),"utf8"));r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_ROUTE,body:b,headers:d.headers,status:d.status}}}else{let a=this.getFilePath(q===e.IncrementalCacheKind.FETCH?o:`${o}.html`,q),b=await this.fs.readFile(a,"utf8"),{mtime:c}=await this.fs.stat(a);if(q===e.IncrementalCacheKind.FETCH){let{tags:a,fetchIdx:d,fetchUrl:f}=p;if(!this.flushToDisk)return null;let g=c.getTime(),h=JSON.parse(b);if(r={lastModified:g,value:h},(null==(j=r.value)?void 0:j.kind)===e.CachedRouteKind.FETCH){let b=null==(l=r.value)?void 0:l.tags;(null==a?void 0:a.every(a=>null==b?void 0:b.includes(a)))||(k.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",a,b),await this.set(o,r.value,{fetchCache:!0,tags:a,fetchIdx:d,fetchUrl:f}))}}else if(q===e.IncrementalCacheKind.APP_PAGE){let d,f,h;try{d=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,g.NEXT_META_SUFFIX),"utf8"))}catch{}if(null==d?void 0:d.segmentPaths){let a=new Map;f=a;let b=o+g.RSC_SEGMENTS_DIR_SUFFIX;await Promise.all(d.segmentPaths.map(async c=>{let d=this.getFilePath(b+c+g.RSC_SEGMENT_SUFFIX,e.IncrementalCacheKind.APP_PAGE);try{a.set(c,await this.fs.readFile(d))}catch{}}))}p.isFallback||p.isRoutePPREnabled&&(null==d?void 0:d.postponed)!=null||(h=await this.fs.readFile(this.getFilePath(`${o}${g.RSC_SUFFIX}`,e.IncrementalCacheKind.APP_PAGE))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_PAGE,html:b,rscData:h,postponed:null==d?void 0:d.postponed,headers:null==d?void 0:d.headers,status:null==d?void 0:d.status,segmentData:f}}}else if(q===e.IncrementalCacheKind.PAGES){let a,d={};p.isFallback||(d=JSON.parse(await this.fs.readFile(this.getFilePath(`${o}${g.NEXT_DATA_SUFFIX}`,e.IncrementalCacheKind.PAGES),"utf8"))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.PAGES,html:b,pageData:d,headers:null==a?void 0:a.headers,status:null==a?void 0:a.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${q} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}r&&(null==(m=k.memoryCache)||m.set(o,r))}catch{return null}if((null==r||null==(c=r.value)?void 0:c.kind)===e.CachedRouteKind.APP_PAGE||(null==r||null==(d=r.value)?void 0:d.kind)===e.CachedRouteKind.APP_ROUTE||(null==r||null==(f=r.value)?void 0:f.kind)===e.CachedRouteKind.PAGES){let a=null==(n=r.value.headers)?void 0:n[g.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");if(b.length>0&&(0,h.areTagsExpired)(b,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",b),null}}else if((null==r||null==(i=r.value)?void 0:i.kind)===e.CachedRouteKind.FETCH){let a=p.kind===e.IncrementalCacheKind.FETCH?[...p.tags||[],...p.softTags||[]]:[];if(a.some(a=>this.revalidatedTags.includes(a)))return k.debug&&console.log("FileSystemCache: was revalidated",a),null;if((0,h.areTagsExpired)(a,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",a),null}return r??null}async set(a,b,c){var d;if(null==(d=k.memoryCache)||d.set(a,{value:b,lastModified:Date.now()}),k.debug&&console.log("FileSystemCache: set",a),!this.flushToDisk||!b)return;let f=new i.MultiFileWriter(this.fs);if(b.kind===e.CachedRouteKind.APP_ROUTE){let c=this.getFilePath(`${a}.body`,e.IncrementalCacheKind.APP_ROUTE);f.append(c,b.body);let d={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};f.append(c.replace(/\.body$/,g.NEXT_META_SUFFIX),JSON.stringify(d,null,2))}else if(b.kind===e.CachedRouteKind.PAGES||b.kind===e.CachedRouteKind.APP_PAGE){let d=b.kind===e.CachedRouteKind.APP_PAGE,h=this.getFilePath(`${a}.html`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES);if(f.append(h,b.html),c.fetchCache||c.isFallback||c.isRoutePPREnabled||f.append(this.getFilePath(`${a}${d?g.RSC_SUFFIX:g.NEXT_DATA_SUFFIX}`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES),d?b.rscData:JSON.stringify(b.pageData)),(null==b?void 0:b.kind)===e.CachedRouteKind.APP_PAGE){let a;if(b.segmentData){a=[];let c=h.replace(/\.html$/,g.RSC_SEGMENTS_DIR_SUFFIX);for(let[d,e]of b.segmentData){a.push(d);let b=c+d+g.RSC_SEGMENT_SUFFIX;f.append(b,e)}}let c={headers:b.headers,status:b.status,postponed:b.postponed,segmentPaths:a,prefetchHints:void 0};f.append(h.replace(/\.html$/,g.NEXT_META_SUFFIX),JSON.stringify(c))}}else if(b.kind===e.CachedRouteKind.FETCH){let d=this.getFilePath(a,e.IncrementalCacheKind.FETCH);f.append(d,JSON.stringify({...b,tags:c.fetchCache?c.tags:[]}))}await f.wait()}getFilePath(a,b){let c;switch(b){case e.IncrementalCacheKind.FETCH:c=f.default.join(this.serverDistDir,"..","cache","fetch-cache");break;case e.IncrementalCacheKind.PAGES:c=f.default.join(this.serverDistDir,"pages");break;case e.IncrementalCacheKind.IMAGE:case e.IncrementalCacheKind.APP_PAGE:case e.IncrementalCacheKind.APP_ROUTE:c=f.default.join(this.serverDistDir,"app");break;default:throw Object.defineProperty(Error(`Unexpected file path kind: ${b}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}let d=f.default.join(c,a);if(!(d.startsWith(c+f.default.sep)||d===c))throw Object.defineProperty(Error(`Invalid file path: ${d}`),"__NEXT_ERROR_CODE",{value:"E1468",enumerable:!1,configurable:!0});return d}}},88450:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(61544),g=c(99751),h=c(84573),i=c(42097),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},88771:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={CacheHandler:function(){return t},IncrementalCache:function(){return v}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(72394),h=(d=c(88266))&&d.__esModule?d:{default:d},i=c(26670),j=c(96100),k=c(6892),l=c(97538),m=c(63033),n=c(42776),o=c(55122),p=c(29294),q=c(59841),r=c(36820);function s(a){let b="buffer"in a?new Uint8Array(a.buffer,a.byteOffset,a.byteLength):new Uint8Array(a),c="";for(let a of b)c+=a.toString(16).padStart(2,"0");return c}class t{constructor(a){}async get(a,b){return{}}async set(a,b,c){}async revalidateTag(a,b){}resetRequestCache(){}}async function u(a){return c(55511).createHash("sha256").update(a).digest("hex")}class v{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:a,dev:b,flushToDisk:c,minimalMode:d,serverDistDir:e,requestHeaders:f,maxMemoryCacheSize:g,getPrerenderManifest:i,fetchCacheKeyPrefix:k,CurCacheHandler:m,allowedRevalidateHeaderKeys:n}){var p,q,r,s;this.locks=new Map,this.hasCustomCacheHandler=!!m;const t=Symbol.for("@next/cache-handlers"),u=globalThis;if(m)v.debug&&console.log("IncrementalCache: using custom cache handler",m.name);else{const b=u[t];(null==b?void 0:b.FetchCache)?(m=b.FetchCache,v.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):a&&e&&(v.debug&&console.log("IncrementalCache: using filesystem cache handler"),m=h.default)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(g=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=b,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=d,this.requestHeaders=f,this.allowedRevalidateHeaderKeys=n,this.prerenderManifest=i(),this.cacheControls=new l.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=k;let w=[];f[j.PRERENDER_REVALIDATE_HEADER]===(null==(q=this.prerenderManifest)||null==(p=q.preview)?void 0:p.previewModeId)&&(this.isOnDemandRevalidate=!0),d&&(w=this.revalidatedTags=(0,o.getPreviouslyRevalidatedTags)(f,null==(s=this.prerenderManifest)||null==(r=s.preview)?void 0:r.previewModeId)),m&&(this.cacheHandler=new m({dev:b,fs:a,flushToDisk:c,serverDistDir:e,revalidatedTags:w,maxMemoryCacheSize:g,_requestHeaders:f,fetchCacheKeyPrefix:k}))}calculateRevalidate(a,b,c,d){if(c)return Math.floor(performance.timeOrigin+performance.now()-1e3);let e=this.cacheControls.get((0,k.toRoute)(a)),f=e?e.revalidate:!d&&1;return"number"==typeof f?1e3*f+b:f}_getPathname(a,b){return b?a:(0,i.normalizePagePath)(a)}resetRequestCache(){var a,b;null==(b=this.cacheHandler)||null==(a=b.resetRequestCache)||a.call(b)}async lock(a){for(;;){let b=this.locks.get(a);if(v.debug&&console.log("IncrementalCache: lock get",a,!!b),!b)break;await b}let{resolve:b,promise:c}=new q.DetachedPromise;return v.debug&&console.log("IncrementalCache: successfully locked",a),this.locks.set(a,c),()=>{b(),this.locks.delete(a)}}async revalidateTag(a,b){var c;return null==(c=this.cacheHandler)?void 0:c.revalidateTag(a,b)}async generateSimpleCacheKey(a){return u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a]))}async generateCacheKey(a,b={}){let c=[],d=new TextEncoder,e=null,f=b.body;if(f)if("object"==typeof f&&"byteLength"in f)c.push(`bytes:${s(f)}`),b._ogBody=f;else if("function"==typeof f.getReader){let a=[];try{await f.pipeTo(new WritableStream({write(b){a.push("string"==typeof b?d.encode(b):b)}}));let e=a.reduce((a,b)=>a+b.length,0),g=new Uint8Array(e),h=0;for(let b of a)g.set(b,h),h+=b.length;c.push(`bytes:${s(g)}`),b._ogBody=g}catch(a){console.error("Problem reading body",a)}}else if("function"==typeof f.keys)for(let[a,d]of(e="[object FormData]"===String(f)?"multipart/form-data; boundary=":"application/x-www-form-urlencoded;charset=UTF-8",b._ogBody=f,f.entries()))c.push(`key:${a}`),"string"==typeof d?c.push(`str:${d}`):c.push("file",d.name,d.type,`bytes:${s(await d.arrayBuffer())}`);else if("function"==typeof f.arrayBuffer){let a=await f.arrayBuffer();c.push("blob",f.type,`bytes:${s(a)}`),b._ogBody=new Blob([a],{type:f.type}),e=f.type}else if("string"==typeof f)c.push(`str:${f}`),b._ogBody=f,e="text/plain;charset=UTF-8";else throw Object.defineProperty(Error(`Unsupported body type: ${typeof f}`),"__NEXT_ERROR_CODE",{value:"E1443",enumerable:!1,configurable:!0});let g="function"==typeof(b.headers||{}).keys?Object.fromEntries(b.headers):Object.assign({},b.headers);return"traceparent"in g&&delete g.traceparent,"tracestate"in g&&delete g.tracestate,u(JSON.stringify(["v4",this.fetchCacheKeyPrefix||"",a,b.method,e,g,b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity,b.cache,c]))}async get(a,b){var c,d,e,f,h,i,l;let o,q;if(b.kind===g.IncrementalCacheKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;if(d){let c=d.fetch.get(a);if((null==c?void 0:c.kind)===g.CachedRouteKind.FETCH){let d=p.workAsyncStorage.getStore();if(![...b.tags||[],...b.softTags||[]].some(a=>{var b,c;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==d||null==(c=d.pendingRevalidatedTags)?void 0:c.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: rdc:hit",a),{isStale:!1,value:c};v.debug&&console.log("IncrementalCache: rdc:revalidated-tag",a)}else v.debug&&console.log("IncrementalCache: rdc:miss",a)}else v.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(b.kind!==g.IncrementalCacheKind.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;a=this._getPathname(a,b.kind===g.IncrementalCacheKind.FETCH);let s=await (null==(c=this.cacheHandler)?void 0:c.get(a,b));if(b.kind===g.IncrementalCacheKind.FETCH){if(!s)return null;if((null==(e=s.value)?void 0:e.kind)!==g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} to be a "FETCH" kind, got ${JSON.stringify(null==(f=s.value)?void 0:f.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let c=p.workAsyncStorage.getStore(),d=[...b.tags||[],...b.softTags||[]];if(d.some(a=>{var b,d;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==c||null==(d=c.pendingRevalidatedTags)?void 0:d.some(b=>b.tag===a))}))return v.debug&&console.log("IncrementalCache: expired tag",a),null;let h=m.workUnitAsyncStorage.getStore();if(h){let b=(0,m.getResumeDataCache)(h);(null==b?void 0:b.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),b.fetch.set(a,s.value))}let i=b.revalidate||s.value.revalidate,j=(performance.timeOrigin+performance.now()-(s.lastModified||0))/1e3>i,k=s.value.data;return(0,r.areTagsExpired)(d,s.lastModified)?null:((0,r.areTagsStale)(d,s.lastModified)&&(j=!0),{isStale:j,value:{kind:g.CachedRouteKind.FETCH,data:k,revalidate:i}})}if((null==s||null==(d=s.value)?void 0:d.kind)===g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} not to be a ${JSON.stringify(b.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let t=null,{isFallback:u}=b,w=this.cacheControls.get((0,k.toRoute)(a));if((null==s?void 0:s.lastModified)===-1)o=-1,q=-1*j.CACHE_ONE_YEAR_SECONDS*1e3;else{let c=performance.timeOrigin+performance.now(),d=(null==s?void 0:s.lastModified)||c;q=this.calculateRevalidate(a,d,this.dev??!1,b.isFallback);let e="number"==typeof(null==w?void 0:w.expire)?1e3*w.expire+d:void 0;if(void 0!==e&&e<c)o=-1;else if(void 0===(o=!1!==q&&q<c||void 0)&&((null==s||null==(h=s.value)?void 0:h.kind)===g.CachedRouteKind.APP_PAGE||(null==s||null==(i=s.value)?void 0:i.kind)===g.CachedRouteKind.APP_ROUTE)){let a=null==(l=s.value.headers)?void 0:l[j.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");b.length>0&&((0,r.areTagsExpired)(b,d)?o=-1:(0,r.areTagsStale)(b,d)&&(o=!0))}}}return s&&(t={isStale:o,cacheControl:w,revalidateAfter:q,value:s.value,isFallback:u}),!s&&this.prerenderManifest.notFoundRoutes.includes(a)&&(t={isStale:o,value:null,cacheControl:w,revalidateAfter:q,isFallback:u},this.set(a,t.value,{...b,cacheControl:w})),t}async set(a,b,c){if((null==b?void 0:b.kind)===g.CachedRouteKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getResumeDataCache)(c):null;(null==d?void 0:d.mutable)&&(v.debug&&console.log("IncrementalCache: rdc:set",a),d.fetch.set(a,b))}if(this.disableForTestmode||this.dev&&!c.fetchCache)return;a=this._getPathname(a,c.fetchCache);let d=JSON.stringify(b).length;if(c.fetchCache&&d>2097152&&!this.hasCustomCacheHandler&&!c.isImplicitBuildTimeCache){let b=`Failed to set Next.js data cache for ${c.fetchUrl||a}, items over 2MB can not be cached (${d} bytes)`;if(this.dev)throw Object.defineProperty(Error(b),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(b);return}try{var e;!c.fetchCache&&c.cacheControl&&this.cacheControls.set((0,k.toRoute)(a),c.cacheControl),await (null==(e=this.cacheHandler)?void 0:e.set(a,b,c))}catch(b){console.warn("Failed to update prerender cache for",a,b)}}}},89198:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DynamicServerError:function(){return f},isDynamicServerError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="DYNAMIC_SERVER_USAGE";class f extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},89218:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return h},createSnapshot:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class f{disable(){throw e}getStore(){}run(){throw e}exit(){throw e}enterWith(){throw e}static bind(a){return a}}let g="u">typeof globalThis&&globalThis.AsyncLocalStorage;function h(){return g?new g:new f}function i(a){return g?g.bind(a):f.bind(a)}function j(){return g?g.snapshot():function(a,...b){return a(...b)}}},90132:a=>{(()=>{"use strict";var b={234:a=>{var b=Object.prototype.hasOwnProperty,c="~";function d(){}function e(a,b,c){this.fn=a,this.context=b,this.once=c||!1}function f(a,b,d,f,g){if("function"!=typeof d)throw TypeError("The listener must be a function");var h=new e(d,f||a,g),i=c?c+b:b;return a._events[i]?a._events[i].fn?a._events[i]=[a._events[i],h]:a._events[i].push(h):(a._events[i]=h,a._eventsCount++),a}function g(a,b){0==--a._eventsCount?a._events=new d:delete a._events[b]}function h(){this._events=new d,this._eventsCount=0}Object.create&&(d.prototype=Object.create(null),(new d).__proto__||(c=!1)),h.prototype.eventNames=function(){var a,d,e=[];if(0===this._eventsCount)return e;for(d in a=this._events)b.call(a,d)&&e.push(c?d.slice(1):d);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(a)):e},h.prototype.listeners=function(a){var b=c?c+a:a,d=this._events[b];if(!d)return[];if(d.fn)return[d.fn];for(var e=0,f=d.length,g=Array(f);e<f;e++)g[e]=d[e].fn;return g},h.prototype.listenerCount=function(a){var b=c?c+a:a,d=this._events[b];return d?d.fn?1:d.length:0},h.prototype.emit=function(a,b,d,e,f,g){var h=c?c+a:a;if(!this._events[h])return!1;var i,j,k=this._events[h],l=arguments.length;if(k.fn){switch(k.once&&this.removeListener(a,k.fn,void 0,!0),l){case 1:return k.fn.call(k.context),!0;case 2:return k.fn.call(k.context,b),!0;case 3:return k.fn.call(k.context,b,d),!0;case 4:return k.fn.call(k.context,b,d,e),!0;case 5:return k.fn.call(k.context,b,d,e,f),!0;case 6:return k.fn.call(k.context,b,d,e,f,g),!0}for(j=1,i=Array(l-1);j<l;j++)i[j-1]=arguments[j];k.fn.apply(k.context,i)}else{var m,n=k.length;for(j=0;j<n;j++)switch(k[j].once&&this.removeListener(a,k[j].fn,void 0,!0),l){case 1:k[j].fn.call(k[j].context);break;case 2:k[j].fn.call(k[j].context,b);break;case 3:k[j].fn.call(k[j].context,b,d);break;case 4:k[j].fn.call(k[j].context,b,d,e);break;default:if(!i)for(m=1,i=Array(l-1);m<l;m++)i[m-1]=arguments[m];k[j].fn.apply(k[j].context,i)}}return!0},h.prototype.on=function(a,b,c){return f(this,a,b,c,!1)},h.prototype.once=function(a,b,c){return f(this,a,b,c,!0)},h.prototype.removeListener=function(a,b,d,e){var f=c?c+a:a;if(!this._events[f])return this;if(!b)return g(this,f),this;var h=this._events[f];if(h.fn)h.fn!==b||e&&!h.once||d&&h.context!==d||g(this,f);else{for(var i=0,j=[],k=h.length;i<k;i++)(h[i].fn!==b||e&&!h[i].once||d&&h[i].context!==d)&&j.push(h[i]);j.length?this._events[f]=1===j.length?j[0]:j:g(this,f)}return this},h.prototype.removeAllListeners=function(a){var b;return a?(b=c?c+a:a,this._events[b]&&g(this,b)):(this._events=new d,this._eventsCount=0),this},h.prototype.off=h.prototype.removeListener,h.prototype.addListener=h.prototype.on,h.prefixed=c,h.EventEmitter=h,a.exports=h},274:a=>{a.exports=(a,b)=>(b=b||(()=>{}),a.then(a=>new Promise(a=>{a(b())}).then(()=>a),a=>new Promise(a=>{a(b())}).then(()=>{throw a})))},294:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b,c){let d=0,e=a.length;for(;e>0;){let f=e/2|0,g=d+f;0>=c(a[g],b)?(d=++g,e-=f+1):e=f}return d}},838:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(294);class e{constructor(){this._queue=[]}enqueue(a,b){let c={priority:(b=Object.assign({priority:0},b)).priority,run:a};if(this.size&&this._queue[this.size-1].priority>=b.priority)return void this._queue.push(c);let e=d.default(this._queue,c,(a,b)=>b.priority-a.priority);this._queue.splice(e,0,c)}dequeue(){let a=this._queue.shift();return null==a?void 0:a.run}filter(a){return this._queue.filter(b=>b.priority===a.priority).map(a=>a.run)}get size(){return this._queue.length}}b.default=e},138:(a,b,c)=>{let d=c(274);class e extends Error{constructor(a){super(a),this.name="TimeoutError"}}let f=(a,b,c)=>new Promise((f,g)=>{if("number"!=typeof b||b<0)throw TypeError("Expected `milliseconds` to be a positive number");if(b===1/0)return void f(a);let h=setTimeout(()=>{if("function"==typeof c){try{f(c())}catch(a){g(a)}return}let d="string"==typeof c?c:`Promise timed out after ${b} milliseconds`,h=c instanceof Error?c:new e(d);"function"==typeof a.cancel&&a.cancel(),g(h)},b);d(a.then(f,g),()=>{clearTimeout(h)})});a.exports=f,a.exports.default=f,a.exports.TimeoutError=e}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a](f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0});let a=d(234),b=d(138),c=d(838),f=()=>{},g=new b.TimeoutError;class h extends a{constructor(a){var b,d,e,g;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=f,this._resolveIdle=f,!("number"==typeof(a=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:c.default},a)).intervalCap&&a.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(d=null==(b=a.intervalCap)?void 0:b.toString())?d:""}\` (${typeof a.intervalCap})`);if(void 0===a.interval||!(Number.isFinite(a.interval)&&a.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(g=null==(e=a.interval)?void 0:e.toString())?g:""}\` (${typeof a.interval})`);this._carryoverConcurrencyCount=a.carryoverConcurrencyCount,this._isIntervalIgnored=a.intervalCap===1/0||0===a.interval,this._intervalCap=a.intervalCap,this._interval=a.interval,this._queue=new a.queueClass,this._queueClass=a.queueClass,this.concurrency=a.concurrency,this._timeout=a.timeout,this._throwOnTimeout=!0===a.throwOnTimeout,this._isPaused=!1===a.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}get _doesConcurrentAllowAnother(){return this._pendingCount<this._concurrency}_next(){this._pendingCount--,this._tryToStartAnother(),this.emit("next")}_resolvePromises(){this._resolveEmpty(),this._resolveEmpty=f,0===this._pendingCount&&(this._resolveIdle(),this._resolveIdle=f,this.emit("idle"))}_onResumeInterval(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}_isIntervalPaused(){let a=Date.now();if(void 0===this._intervalId){let b=this._intervalEnd-a;if(!(b<0))return void 0===this._timeoutId&&(this._timeoutId=setTimeout(()=>{this._onResumeInterval()},b)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let a=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let b=this._queue.dequeue();return!!b&&(this.emit("active"),b(),a&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(a){if(!("number"==typeof a&&a>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${a}\` (${typeof a})`);this._concurrency=a,this._processQueue()}async add(a,c={}){return new Promise((d,e)=>{let f=async()=>{this._pendingCount++,this._intervalCount++;try{let f=void 0===this._timeout&&void 0===c.timeout?a():b.default(Promise.resolve(a()),void 0===c.timeout?this._timeout:c.timeout,()=>{(void 0===c.throwOnTimeout?this._throwOnTimeout:c.throwOnTimeout)&&e(g)});d(await f)}catch(a){e(a)}this._next()};this._queue.enqueue(f,c),this._tryToStartAnother(),this.emit("add")})}async addAll(a,b){return Promise.all(a.map(async a=>this.add(a,b)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(a=>{let b=this._resolveEmpty;this._resolveEmpty=()=>{b(),a()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(a=>{let b=this._resolveIdle;this._resolveIdle=()=>{b(),a()}})}get size(){return this._queue.size}sizeBy(a){return this._queue.filter(a).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(a){this._timeout=a}}e.default=h})(),a.exports=e})()},90810:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={},g={RequestCookies:()=>n,ResponseCookies:()=>o,parseCookie:()=>j,parseSetCookie:()=>k,stringifyCookie:()=>i};for(var h in g)b(f,h,{get:g[h],enumerable:!0});function i(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function j(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function k(a){if(!a)return;let[[b,c],...d]=j(a),{domain:e,expires:f,httponly:g,maxage:h,path:i,samesite:k,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof h&&{maxAge:Number(h)},path:i,...k&&{sameSite:l.includes(q=(q=k).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:m.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}a.exports=((a,f,g)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let h of d(f))e.call(a,h)||void 0===h||b(a,h,{get:()=>f[h],enumerable:!(g=c(f,h))||g.enumerable});return a})(b({},"__esModule",{value:!0}),f);var l=["strict","lax","none"],m=["low","medium","high"],n=class{constructor(a){this._parsed=new Map,this._headers=a;const b=a.get("cookie");if(b)for(const[a,c]of j(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>i(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>i(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},o=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;const e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(const a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){const b=k(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=i(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(i).join("; ")}}},90925:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MultiFileWriter",{enumerable:!0,get:function(){return f}});let e=(d=c(40694))&&d.__esModule?d:{default:d};class f{constructor(a){this.fs=a,this.tasks=[]}findOrCreateTask(a){for(let b of this.tasks)if(b[0]===a)return b;let b=this.fs.mkdir(a);b.catch(()=>{});let c=[a,b,[]];return this.tasks.push(c),c}append(a,b){let c=this.findOrCreateTask(e.default.dirname(a)),d=c[1].then(()=>this.fs.writeFile(a,b));d.catch(()=>{}),c[2].push(d)}wait(){return Promise.all(this.tasks.flatMap(a=>a[2]))}}},91117:(a,b,c)=>{"use strict";function d(a,b,c=null){let e=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return e?e.value:c}function e(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c.d(b,{dy:()=>d,np:()=>e}),c(59339)},92539:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compareAppPaths:function(){return i},normalizeAppPath:function(){return h},normalizeRscURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(17888),g=c(53610);function h(a){return(0,f.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,g.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:`${a}/${b}`,""))}function i(a,b){let c=a.includes("/@"),d=b.includes("/@");return c&&!d?-1:!c&&d?1:a.localeCompare(b)}function j(a){return a.replace(/\.rsc($|\?)/,"$1")}},92729:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(36299),e=c(1390),f=c(69687),g=c(82737),h=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function i(a,b){let c=new URL(String(a),b&&String(b));return h.test(c.hostname)&&(c.hostname="localhost"),c}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},93250:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(77890);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},93384:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(38955),g=c(31050),h=c(29294),i=c(79285);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},94143:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/memory-cache.external.js")},94735:a=>{"use strict";a.exports=require("events")},95160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(43892),e=c(59339),f=c(33323);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
|
|
169
169
|
VALUES(?, ?, ?, ?, ?, ?)
|
|
170
170
|
ON CONFLICT(id) DO UPDATE SET
|
|
171
|
-
type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.cK)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.cK)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.cK)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.cK)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.cK)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]),b.run("DELETE FROM kv WHERE scope = 'customModels' AND key LIKE ?",[`${a}|%`]))}),c}},95226:(a,b,c)=>{"use strict";c.d(b,{mt:()=>e.getSettings,ek:()=>f.validateApiKey});var d=c(59339);c(34393);var e=c(85304);c(56840),c(95160);var f=c(17343),g=c(71509);(0,g.U)("modelAliases"),(0,g.U)("customModels"),(0,g.U)("mitmAlias"),c(36241),c(50809);var h=c(94735);c(91117),c(69128);var i=c(60651);let j="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(i.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:j}:b]}));let k=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","systemoneConfig","rerankConfig","modelsFetcher","mediaPriority","hiddenKinds"],l=a=>Object.fromEntries(i.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),k))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=j),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...a.topologyHiddenByDefault?{topologyHiddenByDefault:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.exposeStaticModels?{exposeStaticModels:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.community?{community:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),m=l("free"),n=l("freeTier"),o=l("oauth"),p=l("apikey"),q=l("webCookie"),r={...m,...n,...o,...p,...q};Object.values(r).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(r).reduce((a,b)=>(a[b.id]=b.alias,a),{}),i.default.filter(a=>a.features?.usage).map(a=>a.id),i.default.filter(a=>a.features?.usageApikey).map(a=>a.id),i.default.filter(a=>a.features?.usageCookie).map(a=>a.id);var s=c(76871);Object.entries(r).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(s.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),Object.freeze(["gemini-live"]),global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new h.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null}),global._pendingRequests,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitTimers,global._statsEmitter;var t=c(33323);let u=null,v=0;async function w(){if(u&&Date.now()-v<5e3)return u;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,85304)),b=await a(),d=process.env.ENABLE_REQUEST_LOGS;if(void 0!==d)return u={enabled:"true"===d.toLowerCase(),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},v=Date.now(),u;let e="false"!==process.env.OBSERVABILITY_ENABLED;u={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:e,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{u={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return v=Date.now(),u}let x=[],y=null,z=!1;function A(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function B(){if(!z&&0!==x.length){z=!0;try{for(;x.length>0;){let a=x.splice(0,x.length),b=await (0,d.cK)(),c=await w();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:A(d.request,c.maxJsonSize),providerRequest:A(d.providerRequest,c.maxJsonSize),providerResponse:A(d.providerResponse,c.maxJsonSize),response:A(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,t.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{z=!1}}}let C=async()=>{y&&(clearTimeout(y),y=null),x.length>0&&await B()};process.off("beforeExit",C),process.off("SIGINT",C),process.off("SIGTERM",C),process.off("exit",C),process.on("beforeExit",C),process.on("SIGINT",C),process.on("SIGTERM",C),process.on("exit",C)},96100:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_SUFFIX:function(){return p},APP_DIR_ALIAS:function(){return O},CACHE_ONE_YEAR_SECONDS:function(){return E},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ag},GSP_NO_RETURNED_VALUE:function(){return aa},GSSP_COMPONENT_MEMBER_ERROR:function(){return ad},GSSP_NO_RETURNED_VALUE:function(){return ab},HTML_CONTENT_TYPE_HEADER:function(){return f},INFINITE_CACHE:function(){return F},INSTRUMENTATION_HOOK_FILENAME:function(){return K},JSON_CONTENT_TYPE_HEADER:function(){return g},MATCHED_PATH_HEADER:function(){return j},MIDDLEWARE_FILENAME:function(){return G},MIDDLEWARE_LOCATION_REGEXP:function(){return H},NEXT_BODY_SUFFIX:function(){return s},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return v},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return w},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return D},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return B},NEXT_CACHE_TAGS_HEADER:function(){return u},NEXT_CACHE_TAG_MAX_ITEMS:function(){return z},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return q},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return i},NEXT_META_SUFFIX:function(){return r},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return t},NEXT_QUERY_PARAM_PREFIX:function(){return h},NEXT_RESUME_HEADER:function(){return x},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return y},NON_STANDARD_NODE_ENV:function(){return ae},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return k},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return I},PROXY_LOCATION_REGEXP:function(){return J},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return N},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return U},RSC_ACTION_PROXY_ALIAS:function(){return R},RSC_ACTION_VALIDATE_ALIAS:function(){return Q},RSC_CACHE_WRAPPER_ALIAS:function(){return S},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return T},RSC_MOD_REF_PROXY_ALIAS:function(){return P},RSC_SEGMENTS_DIR_SUFFIX:function(){return m},RSC_SEGMENT_SUFFIX:function(){return n},RSC_SUFFIX:function(){return o},SERVER_PROPS_EXPORT_ERROR:function(){return _},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Y},SERVER_PROPS_SSG_CONFLICT:function(){return Z},SERVER_RUNTIME:function(){return ah},SSG_FALLBACK_EXPORT_ERROR:function(){return af},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return X},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return $},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return e},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ac},WEBPACK_LAYERS:function(){return ak},WEBPACK_RESOURCE_QUERIES:function(){return al},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ai}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="text/plain",f="text/html; charset=utf-8",g="application/json; charset=utf-8",h="nxtP",i="nxtI",j="x-matched-path",k="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",m=".segments",n=".segment.rsc",o=".rsc",p=".action",q=".json",r=".meta",s=".body",t="x-nextjs-deployment-id",u="x-next-cache-tags",v="x-next-revalidated-tags",w="x-next-revalidate-tag-token",x="next-resume",y="x-next-resume-state-length",z=128,A=256,B=1024,C="_N_T_",D="_N_RP_",E=31536e3,F=0xfffffffe,G="middleware",H=`(?:src/)?${G}`,I="proxy",J=`(?:src/)?${I}`,K="instrumentation",L="private-next-pages",M="private-dot-next",N="private-next-root-dir",O="private-next-app-dir",P="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",Q="private-next-rsc-action-validate",R="private-next-rsc-server-reference",S="private-next-rsc-cache-wrapper",T="private-next-rsc-track-dynamic-import",U="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",X="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Y="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",$="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",_="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",aa="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",ab="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ac="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ad="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ae='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',af="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ag=["app","pages","components","lib","src"],ah={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ai=12,aj={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ak={...aj,GROUP:{builtinReact:[aj.reactServerComponents,aj.actionBrowser],serverOnly:[aj.reactServerComponents,aj.actionBrowser,aj.instrument,aj.middleware],neutralTarget:[aj.apiNode,aj.apiEdge],clientOnly:[aj.serverSideRendering,aj.appPagesBrowser],bundled:[aj.reactServerComponents,aj.actionBrowser,aj.serverSideRendering,aj.appPagesBrowser,aj.shared,aj.instrument,aj.middleware],appPages:[aj.reactServerComponents,aj.serverSideRendering,aj.appPagesBrowser,aj.actionBrowser]}},al={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},96664:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(93250);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:`/${c}`}},97010:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ApiError:function(){return t},COOKIE_NAME_PRERENDER_BYPASS:function(){return n},COOKIE_NAME_PRERENDER_DATA:function(){return o},RESPONSE_LIMIT_DEFAULT:function(){return p},SYMBOL_CLEARED_COOKIES:function(){return r},SYMBOL_PREVIEW_DATA:function(){return q},checkIsOnDemandRevalidate:function(){return m},clearPreviewData:function(){return s},redirect:function(){return l},sendError:function(){return u},sendStatusCode:function(){return k},setLazyProp:function(){return v},wrapApiHandler:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(36023),g=c(96100),h=c(12726),i=c(88026);function j(a,b){return(...c)=>((0,h.getTracer)().setRootSpanAttribute("next.route",a),(0,h.getTracer)().trace(i.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function k(a,b){return a.statusCode=b,a}function l(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function m(a,b){if("function"==typeof a.get){let c=f.HeadersAdapter.from(a);return{isOnDemandRevalidate:c.get(g.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}return{isOnDemandRevalidate:a[g.PRERENDER_REVALIDATE_HEADER]===b.previewModeId,revalidateOnlyGenerated:a.hasOwnProperty(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let n="__prerender_bypass",o="__next_preview_data",p=4194304,q=Symbol(o),r=Symbol(n);function s(a,b={}){if(r in a)return a;let{serialize:d}=c(19560),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(n,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,r,{value:!0,enumerable:!1}),a}class t extends Error{constructor(a,b){super(b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.statusCode=a}}function u(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function v({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}},97538:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js")},97645:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(73346))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},97757:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getClientComponentLoaderMetrics:function(){return i},wrapClientComponentLoader:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=0,g=0;function h(a,b){return"performance"in globalThis&&(process.env.NEXT_OTEL_PERFORMANCE_PREFIX||b)?{require:(...b)=>{let c=performance.now();0===e&&(e=c);try{return g+=1,a.__next_app__.require(...b)}finally{f+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{f+=performance.now()-c}),d}}:a.__next_app__}function i(a={}){let b=0===e?void 0:{clientComponentLoadStart:e,clientComponentLoadTimes:f,clientComponentLoadCount:g};return a.reset&&(e=0,f=0,g=0),b}},98345:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e={CachedRouteKind:function(){return g},IncrementalCacheKind:function(){return h}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});var g=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.REDIRECT="REDIRECT",c.IMAGE="IMAGE",c),h=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.IMAGE="IMAGE",d)},98617:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(67301),e=c(93250);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,`/${b.toLowerCase()}`))?a:(0,d.addPathPrefix)(a,`/${b}`)}},98995:a=>{"use strict";a.exports=require("node:module")},99751:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={fromNodeOutgoingHttpHeaders:function(){return g},normalizeNextQueryParam:function(){return k},splitCookiesString:function(){return h},toNodeOutgoingHttpHeaders:function(){return i},validateURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(96100);function g(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function h(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function i(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...h(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function j(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function k(a){for(let b of[f.NEXT_QUERY_PARAM_PREFIX,f.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=86231);module.exports=c})();
|
|
171
|
+
type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.cK)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.cK)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.cK)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.cK)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.cK)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]),b.run("DELETE FROM kv WHERE scope = 'customModels' AND key LIKE ?",[`${a}|%`]))}),c}},95226:(a,b,c)=>{"use strict";c.d(b,{mt:()=>e.getSettings,ek:()=>f.validateApiKey});var d=c(59339);c(34393);var e=c(85304);c(56840),c(95160);var f=c(17343),g=c(71509);(0,g.U)("modelAliases"),(0,g.U)("customModels"),(0,g.U)("mitmAlias"),c(36241),c(50809);var h=c(94735);c(91117),c(69128);var i=c(96359);let j="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(i.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:j}:b]}));let k=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","systemoneConfig","rerankConfig","modelsFetcher","mediaPriority","hiddenKinds"],l=a=>Object.fromEntries(i.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),k))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=j),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...a.topologyHiddenByDefault?{topologyHiddenByDefault:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.exposeStaticModels?{exposeStaticModels:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.community?{community:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{}}}(a)])),m=l("free"),n=l("freeTier"),o=l("oauth"),p=l("apikey"),q=l("webCookie"),r={...m,...n,...o,...p,...q};Object.values(r).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(r).reduce((a,b)=>(a[b.id]=b.alias,a),{}),i.default.filter(a=>a.features?.usage).map(a=>a.id),i.default.filter(a=>a.features?.usageApikey).map(a=>a.id),i.default.filter(a=>a.features?.usageCookie).map(a=>a.id);var s=c(76871);Object.entries(r).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(s.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),Object.freeze(["gemini-live"]),global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new h.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null}),global._pendingRequests,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitTimers,global._statsEmitter;var t=c(33323);let u=null,v=0;async function w(){if(u&&Date.now()-v<5e3)return u;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,85304)),b=await a(),d=process.env.ENABLE_REQUEST_LOGS;if(void 0!==d)return u={enabled:"true"===d.toLowerCase(),maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},v=Date.now(),u;let e="false"!==process.env.OBSERVABILITY_ENABLED;u={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:e,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{u={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return v=Date.now(),u}let x=[],y=null,z=!1;function A(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function B(){if(!z&&0!==x.length){z=!0;try{for(;x.length>0;){let a=x.splice(0,x.length),b=await (0,d.cK)(),c=await w();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:A(d.request,c.maxJsonSize),providerRequest:A(d.providerRequest,c.maxJsonSize),providerResponse:A(d.providerResponse,c.maxJsonSize),response:A(d.response,c.maxJsonSize),pxpipe:d.pxpipe||void 0};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,t.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{z=!1}}}let C=async()=>{y&&(clearTimeout(y),y=null),x.length>0&&await B()};process.off("beforeExit",C),process.off("SIGINT",C),process.off("SIGTERM",C),process.off("exit",C),process.on("beforeExit",C),process.on("SIGINT",C),process.on("SIGTERM",C),process.on("exit",C)},96100:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_SUFFIX:function(){return p},APP_DIR_ALIAS:function(){return O},CACHE_ONE_YEAR_SECONDS:function(){return E},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ag},GSP_NO_RETURNED_VALUE:function(){return aa},GSSP_COMPONENT_MEMBER_ERROR:function(){return ad},GSSP_NO_RETURNED_VALUE:function(){return ab},HTML_CONTENT_TYPE_HEADER:function(){return f},INFINITE_CACHE:function(){return F},INSTRUMENTATION_HOOK_FILENAME:function(){return K},JSON_CONTENT_TYPE_HEADER:function(){return g},MATCHED_PATH_HEADER:function(){return j},MIDDLEWARE_FILENAME:function(){return G},MIDDLEWARE_LOCATION_REGEXP:function(){return H},NEXT_BODY_SUFFIX:function(){return s},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return v},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return w},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return D},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return B},NEXT_CACHE_TAGS_HEADER:function(){return u},NEXT_CACHE_TAG_MAX_ITEMS:function(){return z},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return q},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return i},NEXT_META_SUFFIX:function(){return r},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return t},NEXT_QUERY_PARAM_PREFIX:function(){return h},NEXT_RESUME_HEADER:function(){return x},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return y},NON_STANDARD_NODE_ENV:function(){return ae},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return k},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return I},PROXY_LOCATION_REGEXP:function(){return J},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return N},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return U},RSC_ACTION_PROXY_ALIAS:function(){return R},RSC_ACTION_VALIDATE_ALIAS:function(){return Q},RSC_CACHE_WRAPPER_ALIAS:function(){return S},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return T},RSC_MOD_REF_PROXY_ALIAS:function(){return P},RSC_SEGMENTS_DIR_SUFFIX:function(){return m},RSC_SEGMENT_SUFFIX:function(){return n},RSC_SUFFIX:function(){return o},SERVER_PROPS_EXPORT_ERROR:function(){return _},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Y},SERVER_PROPS_SSG_CONFLICT:function(){return Z},SERVER_RUNTIME:function(){return ah},SSG_FALLBACK_EXPORT_ERROR:function(){return af},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return X},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return $},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return e},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ac},WEBPACK_LAYERS:function(){return ak},WEBPACK_RESOURCE_QUERIES:function(){return al},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ai}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="text/plain",f="text/html; charset=utf-8",g="application/json; charset=utf-8",h="nxtP",i="nxtI",j="x-matched-path",k="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",m=".segments",n=".segment.rsc",o=".rsc",p=".action",q=".json",r=".meta",s=".body",t="x-nextjs-deployment-id",u="x-next-cache-tags",v="x-next-revalidated-tags",w="x-next-revalidate-tag-token",x="next-resume",y="x-next-resume-state-length",z=128,A=256,B=1024,C="_N_T_",D="_N_RP_",E=31536e3,F=0xfffffffe,G="middleware",H=`(?:src/)?${G}`,I="proxy",J=`(?:src/)?${I}`,K="instrumentation",L="private-next-pages",M="private-dot-next",N="private-next-root-dir",O="private-next-app-dir",P="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",Q="private-next-rsc-action-validate",R="private-next-rsc-server-reference",S="private-next-rsc-cache-wrapper",T="private-next-rsc-track-dynamic-import",U="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",X="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Y="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",$="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",_="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",aa="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",ab="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ac="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ad="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ae='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',af="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ag=["app","pages","components","lib","src"],ah={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ai=12,aj={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ak={...aj,GROUP:{builtinReact:[aj.reactServerComponents,aj.actionBrowser],serverOnly:[aj.reactServerComponents,aj.actionBrowser,aj.instrument,aj.middleware],neutralTarget:[aj.apiNode,aj.apiEdge],clientOnly:[aj.serverSideRendering,aj.appPagesBrowser],bundled:[aj.reactServerComponents,aj.actionBrowser,aj.serverSideRendering,aj.appPagesBrowser,aj.shared,aj.instrument,aj.middleware],appPages:[aj.reactServerComponents,aj.serverSideRendering,aj.appPagesBrowser,aj.actionBrowser]}},al={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},96359:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>r});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"};(function(){switch((0,d.arch)()){case"x64":case"arm64":case"ia32":return;default:return(0,d.arch)()}})(),function(){switch((0,d.platform)()){case"darwin":case"win32":case"linux":case"freebsd":return;default:return(0,d.platform)()}}();let f="https://daily-cloudcode-pa.googleapis.com",g="antigravity/ide/2.22.0 darwin/arm64",h={id:"antigravity",priority:30,alias:"ag",uiAlias:"ag",display:{name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",serviceKinds:["llm","image"],transport:{baseUrls:[f],format:"antigravity",strictProxy:!0,headers:{"User-Agent":g},retry:{429:{attempts:3},500:{attempts:3},503:{attempts:3}},usage:{quotaApiUrl:`${f}/v1internal:fetchAvailableModels`,quotaSummaryApiUrls:["https://daily-cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary","https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:retrieveUserQuotaSummary","https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuotaSummary"],loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token"},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-4-argon-high",name:"Gemini 4 Argon (High)",upstreamModelId:"gemini-4-argon-high(high)"},{id:"gemini-4-argon-medium",name:"Gemini 4 Argon (Medium)",upstreamModelId:"gemini-4-argon-medium(medium)"},{id:"gemini-4-argon-low",name:"Gemini 4 Argon (Low)",upstreamModelId:"gemini-4-argon-low(low)"},{id:"gemini-3.8-flash-high",name:"Gemini 3.8 Flash (High)",upstreamModelId:"gemini-3.8-flash-high(high)"},{id:"gemini-3.8-flash-medium",name:"Gemini 3.8 Flash (Medium)",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.8-flash-low",name:"Gemini 3.8 Flash (Low)",upstreamModelId:"gemini-3.8-flash-low(low)"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",upstreamModelId:"gemini-3.8-flash-medium(medium)"},{id:"gemini-3.7-flash-high",name:"Gemini 3.7 Flash (High)",upstreamModelId:"gemini-3.7-flash-tiered(high)"},{id:"gemini-3.7-flash-medium",name:"Gemini 3.7 Flash (Medium)",upstreamModelId:"gemini-3.7-flash-tiered(medium)"},{id:"gemini-3.7-flash-low",name:"Gemini 3.7 Flash (Low)",upstreamModelId:"gemini-3.7-flash-tiered(low)"},{id:"gemini-3.6-flash-high",name:"Gemini 3.6 Flash (High)",upstreamModelId:"gemini-3.6-flash-tiered(high)"},{id:"gemini-3.6-flash-medium",name:"Gemini 3.6 Flash (Medium)",upstreamModelId:"gemini-3.6-flash-tiered(medium)"},{id:"gemini-3.6-flash-low",name:"Gemini 3.6 Flash (Low)",upstreamModelId:"gemini-3.6-flash-tiered(low)"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-pro-agent",name:"Gemini 3.1 Pro (High)",upstreamModelId:"gemini-pro-agent"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro (Low)",upstreamModelId:"gemini-3.1-pro-low(low)"},{id:"claude-sonnet-5-5-high",name:"Claude Sonnet 5.5 (High)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-sonnet-5-5-medium",name:"Claude Sonnet 5.5 (Medium)",upstreamModelId:"claude-sonnet-5-5-medium(medium)"},{id:"claude-sonnet-5-5-low",name:"Claude Sonnet 5.5 (Low)",upstreamModelId:"claude-sonnet-5-5-low(low)"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5 (Thinking)",upstreamModelId:"claude-sonnet-5-5-high(high)"},{id:"claude-opus-5-5-high",name:"Claude Opus 5.5 (High)",upstreamModelId:"claude-opus-5-5-high(high)"},{id:"claude-opus-5-5-medium",name:"Claude Opus 5.5 (Medium)",upstreamModelId:"claude-opus-5-5-medium(medium)"},{id:"claude-opus-5-5-low",name:"Claude Opus 5.5 (Low)",upstreamModelId:"claude-opus-5-5-low(low)"},{id:"claude-opus-5-5",name:"Claude Opus 5.5 (Thinking)",upstreamModelId:"claude-opus-5-5-high(high)"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Thinking)"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 (Thinking)"},{id:"gpt-oss-120b-medium",name:"GPT-OSS 120B (Medium)"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"gemini-3.1-flash-image",name:"Gemini 3.1 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-3-pro-image",name:"Gemini 3 Pro (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash (Image)",kind:"image",imageGen:!0,capabilities:["textToImage"]},{id:"imagen-3.0-generate-002",name:"Imagen 3",kind:"image",imageGen:!0,capabilities:["textToImage"]}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://daily-cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:g,refreshLeadMs:3e5},features:{usage:!0}},i="0.159.0",j=["low","medium","high","xhigh","max"],k={id:"codex",priority:20,alias:"cx",uiAlias:"cx",display:{name:"OpenAI Codex",icon:"code",color:"#3B82F6",website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"},deprecated:!0,deprecationNotice:"RISK_NOTICE",kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."}},category:"oauth",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",forceStream:!0,cliVersion:i,headers:{originator:"codex_cli_rs","User-Agent":`codex_cli_rs/${i}`},usage:{url:"https://chatgpt.com/backend-api/wham/usage",resetCreditsUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits",resetCreditsConsumeUrl:"https://chatgpt.com/backend-api/wham/rate-limit-reset-credits/consume"}},models:[{id:"gpt-6-astra",name:"GPT 6.0 Astra"},{id:"gpt-6-astra[1m]",name:"GPT 6.0 Astra (extended context)",upstreamModelId:"gpt-6-astra"},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-sol",name:"GPT 6.0 Sol",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-sol[1m]",name:"GPT 6.0 Sol (extended context)",upstreamModelId:"gpt-6-sol",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-luna",name:"GPT 6.0 Luna",responsesLite:!0,thinkingLevels:j},{id:"gpt-6-luna[1m]",name:"GPT 6.0 Luna (extended context)",upstreamModelId:"gpt-6-luna",responsesLite:!0,thinkingLevels:j},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol"},{id:"gpt-5.6-sol[1m]",name:"GPT 5.6 Sol (extended context)",upstreamModelId:"gpt-5.6-sol"},{id:"gpt-5.6-sol-review",name:"GPT 5.6 Sol Review",upstreamModelId:"gpt-5.6-sol",quotaFamily:"review"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra"},{id:"gpt-5.6-terra[1m]",name:"GPT 5.6 Terra (extended context)",upstreamModelId:"gpt-5.6-terra"},{id:"gpt-5.6-terra-review",name:"GPT 5.6 Terra Review",upstreamModelId:"gpt-5.6-terra",quotaFamily:"review"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna"},{id:"gpt-5.6-luna[1m]",name:"GPT 5.6 Luna (extended context)",upstreamModelId:"gpt-5.6-luna"},{id:"gpt-5.6-luna-review",name:"GPT 5.6 Luna Review",upstreamModelId:"gpt-5.6-luna",quotaFamily:"review"},{id:"gpt-daybreak-blue-latest",name:"GPT Daybreak Blue"},{id:"gpt-reserve",name:"GPT Reserve"},{id:"gpt-image-2.5",name:"GPT Image 2.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-image-1.5",name:"GPT Image 1.5",capabilities:["text2img","edit","multiImage"],params:["size","quality","background","image_detail","output_format"],kind:"image"},{id:"gpt-6-sol-image",name:"GPT 6.0 Sol Image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"],kind:"image"}],serviceKinds:["llm","image"],oauth:{clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",fixedPort:1455,callbackPath:"/auth/callback",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"},refreshLeadMs:6e5,refresh:{encoding:"form",scope:"openid profile email offline_access"},maxRefreshAgeMs:6912e5,trackRefreshAt:!0},features:{usage:!0}},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-flash",name:"DeepSeek V4.1 Flash"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",upstreamModelId:"deepseek-flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-pro-none",name:"DeepSeek V4 Pro No Thinking",upstreamModelId:"deepseek-v4-pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],features:{usage:!0,usageApikey:!0}},m={id:"glm",priority:140,alias:"glm",display:{name:"Zai GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys",signupUrl:"https://chat.z.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,oauth:{providerId:"zai",cliInitUrl:"https://zcode.z.ai/api/v1/oauth/cli/init",cliPollUrl:"https://zcode.z.ai/api/v1/oauth/cli/poll",businessLoginUrl:"https://api.z.ai/api/auth/z/login",apiBaseUrl:"https://api.z.ai",planApiKeyName:"zcode-api-key"},transport:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{url:"https://api.z.ai/api/monitor/usage/quota/limit"}},transports:[{format:"openai",baseUrl:"https://api.z.ai/api/coding/paas/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.z.ai/api/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},n="1.0.44",o="https://cli-chat-proxy.grok.com/v1",p="grok-shell",q=`grok-shell/${n} (linux; x86_64)`,r=[{id:"agnes-ai-cn",alias:"agnes-ai-cn",display:{name:"Agnes AI (CN)",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.cn/",notice:{apiKeyUrl:"https://www.agnes-ai.cn/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.agnes-ai.cn/v1/chat/completions",validateUrl:"https://api.agnes-ai.cn/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.agnes-ai.cn/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"agnes-ai",alias:"agnes-ai",display:{name:"Agnes AI",icon:"auto_awesome",color:"#111827",textIcon:"AG",website:"https://www.agnes-ai.com/",notice:{apiKeyUrl:"https://www.agnes-ai.com/"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://apihub.agnes-ai.com/v1/chat/completions",validateUrl:"https://apihub.agnes-ai.com/v1/models"},serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://apihub.agnes-ai.com/v1/images/generations"},models:[{id:"agnes-2.5-flash",name:"Agnes 2.5 Flash"},{id:"agnes-2.5-pro",name:"Agnes 2.5 Pro"},{id:"agnes-2.5-pro-beta",name:"Agnes 2.5 Pro Beta"},{id:"agnes-3.0-flash",name:"Agnes 3.0 Flash"},{id:"agnes-image-2.0-flash",name:"Agnes Image 2.0 Flash",params:["size"],kind:"image"},{id:"agnes-image-2.1-flash",name:"Agnes Image 2.1 Flash",params:["size"],kind:"image",capabilities:["edit"]},{id:"agnes-image-2.5-flash",name:"Agnes Image 2.5 Flash",params:["size"],kind:"image",capabilities:["edit"]}]},{id:"alicode-intl",priority:10,alias:"alicode-intl",display:{name:"Alibaba Coding (Intl)",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://www.alibabacloud.com/product/coding",notice:{apiKeyUrl:"https://www.alibabacloud.com/product/coding"}},category:"apikey",transport:{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alicode",priority:20,alias:"alicode",display:{name:"Alibaba Coding (CN)",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alims-intl",priority:11,alias:"alims-intl",display:{name:"Alibaba Studio (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://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}]},{id:"alitp-intl",priority:11,alias:"alitp-intl",display:{name:"Alibaba Token Plan (Intl)",icon:"cloud",color:"#FF6A00",textIcon:"ATP",website:"https://docs.modelstudio.console.alibabacloud.com/zh/model-studio/what-is-model-studio",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview"},{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"}]},{id:"alitp-cn",priority:11,alias:"alitp-cn",display:{name:"Alibaba Token Plan (CN)",icon:"cloud",color:"#FF6A00",textIcon:"ATP",website:"https://bailian.console.aliyun.com/cn-beijing/subscription/overview",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},category:"apikey",transport:{baseUrl:"https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions",headers:{},quirks:{preserveCacheControl:!0}},models:[{id:"qwen3.8-max-preview",name:"Qwen3.8 Max Preview"},{id:"qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"}]},{id:"amd",priority:20,hasFree:!0,alias:"amd",display:{name:"AMD Token Factory",icon:"developer_board",color:"#ED1C24",textIcon:"AMD",website:"https://developer.amd.com.cn/radeon/tokenfactory",notice:{text:"Free shared endpoints (experimental) — 30 RPM per key, 8 concurrent.",apiKeyUrl:"https://developer.amd.com.cn/radeon/modelapis"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://developer.amd.com.cn/radeon/api/v1/chat/completions",validateUrl:"https://developer.amd.com.cn/radeon/api/v1/models"},models:[{id:"DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"DeepSeek-V4-Flash-Vision-Exp",name:"DeepSeek V4 Flash Vision (Exp)"},{id:"Qwen3.8-Flash-Next",name:"Qwen3.8 Flash Next"},{id:"MiniCPM5-2B",name:"MiniCPM5 2B"}]},{id:"anthropic",priority:30,alias:"anthropic",display:{name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"}},category:"apikey",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"anthropic-version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"},{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],serviceKinds:["llm","imageToText"]},h,{id:"api-airforce",alias:"af",aliases:["airforce"],uiAlias:"af",display:{name:"API.airforce",icon:"flight",color:"#0EA5E9",textIcon:"AF",website:"https://api.airforce",notice:{apiKeyUrl:"https://api.airforce"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.airforce/v1/chat/completions",validateUrl:"https://api.airforce/v1/models",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"anthropic/claude-3.7-sonnet",name:"Claude 3.7 Sonnet (Free)",contextLength:2e5},{id:"moonshot/kimi-k2.6",name:"Kimi K2.6 (Free)",contextLength:262144},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash (Free)",contextLength:1048576}]},{id:"apinex",alias:"apinex",display:{name:"APInex",icon:"bolt",color:"#C9A227",textIcon:"AX",website:"https://apinex.bond/",notice:{text:"Prepaid USD-credit gateway with gamified rewards (XP/airdrop). free/* models require a DAILY check-in at the airdrop page; paid models bill a prepaid balance (402 otherwise). Third-party reseller — treat as untrusted for sensitive traffic.",apiKeyUrl:"https://apinex.bond/register",inviteCode:"SLEWP68C"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.apinex.bond/v1/chat/completions",validateUrl:"https://api.apinex.bond/v1/models"},serviceKinds:["llm"],hasFree:!0,models:[{id:"claude-fable-5.1",name:"Claude Fable 5.1"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5.5",name:"Claude Sonnet 5.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-luna",name:"GPT-6 Luna"},{id:"gpt-6.1-sol",name:"GPT-6.1 Sol"},{id:"grok-4.7",name:"Grok 4.7"},{id:"kimi-k3",name:"Kimi K3"},{id:"free/claude-opus-4.6",name:"Claude Opus 4.6 (Free)"},{id:"free/claude-sonnet-4.6",name:"Claude Sonnet 4.6 (Free)"},{id:"free/deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731 (Free)"},{id:"free/deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813 (Free)"},{id:"free/deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash (Free)"},{id:"free/gemini-3.1-pro",name:"Gemini 3.1 Pro (Free)"},{id:"free/gemini-3.8-flash",name:"Gemini 3.8 Flash (Free)"},{id:"free/glm-5.3-flash",name:"GLM-5.3 Flash (Free)"},{id:"free/gpt-6-luna",name:"GPT-6 Luna (Free)"},{id:"free/hy4",name:"HY4 (Free)"},{id:"free/kimi-k2.8",name:"Kimi K2.8 (Free)"},{id:"free/kimi-k3",name:"Kimi K3 (Free)"},{id:"free/mimo-v2.6-flash",name:"MiMo V2.6 Flash (Free)"},{id:"free/mimo-v2.6-pro",name:"MiMo V2.6 Pro (Free)"},{id:"free/minimax-m3",name:"MiniMax M3 (Free)"},{id:"free/minimax-m3.1",name:"MiniMax M3.1 (Free)"},{id:"free/muse-spark-1.3",name:"Muse Spark 1.3 (Free)"},{id:"free/qwen-3.8-max",name:"Qwen 3.8 Max (Free)"}]},{id:"assemblyai",priority:30,alias:"assemblyai",aliases:["aai"],uiAlias:"aai",display:{name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",validateUrl:"https://api.assemblyai.com/v1/account"},models:[{id:"universal-3-pro",name:"Universal 3 Pro",params:["language"],kind:"stt"},{id:"universal-2",name:"Universal 2",params:["language"],kind:"stt"},{id:"best",name:"Best (Nano + Universal)",kind:"stt"},{id:"nano",name:"Nano (Fast)",kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"authorization",format:"assemblyai"}},{id:"atria",alias:"atria",aliases:["atria-asi"],uiAlias:"atria",display:{name:"Atria Dawn",icon:"flare",color:"#C2410C",textIcon:"AD",website:"https://atria-asi.ai",notice:{apiKeyUrl:"https://api.atria-asi.ai/console"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.atria-asi.ai/v1/chat/completions",validateUrl:"https://api.atria-asi.ai/v1/models"},models:[{id:"Atria-Dawn-Preview",name:"Atria Dawn Preview"}],passthroughModels:!0},{id:"aws-polly",alias:"polly",display:{name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]},hasProviderSpecificData:!0},{id:"azure",priority:40,alias:"azure",display:{name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"}},category:"apikey",hasProviderSpecificData:!0,transport:{baseUrl:"",headers:{}}},{id:"bai",alias:"bai",aliases:["b.ai","b-ai","bai-llm"],display:{name:"B.AI",icon:"auto_awesome",color:"#3B82F6",textIcon:"B.AI",website:"https://b.ai",notice:{apiKeyUrl:"https://chat.b.ai"}},category:"apikey",transport:{baseUrl:"https://api.b.ai/v1/chat/completions",validateUrl:"https://api.b.ai/v1/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3,reasoning:!0},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",vision:!0,contextWindow:1e6,maxOutput:384e3},{id:"deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:131072,maxOutput:65536},{id:"deepseek-r1-0528",name:"DeepSeek R1 0528",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-flash",name:"Qwen3.8-Flash",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.8-27b",name:"Qwen3.8-27B",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"qwen3.8-max",name:"Qwen3.8-Max",vision:!0,contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"qwen3.7-max",name:"Qwen3.7-Max",contextWindow:1e6,maxOutput:65536,reasoning:!0},{id:"qwen3.6-27b",name:"Qwen3.6-27B",contextWindow:131072,maxOutput:65536},{id:"gpt-5.5",name:"GPT-5.5",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4",name:"GPT-5.4",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5",name:"GPT-5",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5-mini",name:"GPT-5 Mini",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5-nano",name:"GPT-5 Nano",vision:!0,contextWindow:128e3,maxOutput:16384},{id:"gpt-5.2",name:"GPT-5.2",vision:!0,contextWindow:272e3,maxOutput:16384},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra",vision:!0,contextWindow:105e4,maxOutput:128e3,reasoning:!0},{id:"grok-4.6",name:"Grok 4.6",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"grok-4.5",name:"Grok 4.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"gemini-3-flash",name:"Gemini 3 Flash",vision:!0,contextWindow:1048576,maxOutput:65536},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"mimo-v2.5",name:"MiMo V2.5",contextWindow:131072,maxOutput:32768,reasoning:!0},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",contextWindow:131072,maxOutput:16384},{id:"glm-5.3",name:"GLM-5.3",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.2",name:"GLM-5.2",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"glm-5.1",name:"GLM-5.1",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:131072,maxOutput:65536,reasoning:!0},{id:"minimax-m3",name:"MiniMax M3",contextWindow:1048576,maxOutput:65536},{id:"minimax-m2.7",name:"MiniMax M2.7",contextWindow:1048576,maxOutput:65536},{id:"hy3",name:"Hy3",contextWindow:131072,maxOutput:65536}]},{id:"baidu",alias:"qianfan",aliases:["qianfan","ernie","baidu-qianfan"],uiAlias:"qianfan",category:"apikey",authType:"apikey",authModes:["apikey"],display:{name:"Baidu Qianfan",icon:"search",color:"#2932E1",textIcon:"BD",website:"https://cloud.baidu.com/product/qianfan.html",notice:{apiKeyUrl:"https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application"}},transport:{baseUrl:"https://qianfan.baidubce.com/v2/chat/completions",validateUrl:"https://qianfan.baidubce.com/v2/models"},models:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",contextLength:1048576},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",contextLength:1048576},{id:"glm-5.2",name:"GLM 5.2",contextLength:512e3},{id:"glm-5.1",name:"GLM 5.1",contextLength:198e3},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"qwen3.5-397b-a17b",name:"Qwen 3.5 397B A17B",contextLength:262144},{id:"qwen3.5-27b",name:"Qwen 3.5 27B",contextLength:262144}]},{id:"bazaarlink",alias:"bzl",aliases:["bazaar-link"],uiAlias:"bzl",category:"freeTier",authType:"apikey",authModes:["apikey"],display:{name:"Bazaarlink",icon:"storefront",color:"#DC2626",textIcon:"BZ",website:"https://bazaarlink.ai",notice:{apiKeyUrl:"https://bazaarlink.ai"}},transport:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",validateUrl:"https://bazaarlink.ai/api/v1/models"},models:[{id:"auto:free",name:"Auto Free (Zero Cost)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7",contextLength:1e6},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:1e6},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5",name:"GPT-5.5",contextLength:105e4},{id:"gpt-5.4",name:"GPT-5.4",contextLength:105e4},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini",contextLength:4e5},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",contextLength:4e5},{id:"grok-4.3",name:"Grok 4.3",contextLength:1e6},{id:"grok-4.20",name:"Grok 4.20",contextLength:2e6},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro",contextLength:1048576},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash",contextLength:1048576},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"kimi-k2.5",name:"Kimi K2.5",contextLength:262144},{id:"glm-5.1",name:"GLM 5.1",contextLength:204800},{id:"glm-5",name:"GLM 5",contextLength:204800},{id:"mimo-v2.5-pro",name:"MiMo-V2.5-Pro",contextLength:105e4},{id:"mimo-v2.5",name:"MiMo-V2.5",contextLength:105e4},{id:"minimax-m3",name:"MiniMax M3",contextLength:1048576},{id:"minimax-m2.7",name:"MiniMax M2.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",contextLength:1e6},{id:"nemotron-3-super-120b-a12b",name:"Nemotron 3 Super",contextLength:1e6}]},{id:"black-forest-labs",priority:50,alias:"black-forest-labs",aliases:["bfl"],uiAlias:"bfl",display:{name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",params:["n","size"],kind:"image"},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",params:["size"],kind:"image"},{id:"flux-pro",name:"FLUX Pro",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",params:["size"],capabilities:["edit"],kind:"image"},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",params:["size"],capabilities:["edit"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1"}},{id:"blackbox",priority:50,alias:"blackbox",aliases:["bb"],uiAlias:"bb",display:{name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"}},category:"apikey",serviceKinds:["llm"],thinkingConfig:{options:["auto","none","low","medium","high","xhigh"],defaultMode:"auto"},transport:{baseUrl:"https://api.blackbox.ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"claude-fable-5",name:"Claude Fable 5",upstreamModelId:"blackboxai/anthropic/claude-fable-5"},{id:"claude-opus-4.8",name:"Claude Opus 4.8",upstreamModelId:"blackboxai/anthropic/claude-opus-4.8"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",upstreamModelId:"blackboxai/anthropic/claude-sonnet-4.6"},{id:"gpt-5.5",name:"GPT-5.5",upstreamModelId:"blackboxai/openai/gpt-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",upstreamModelId:"blackboxai/openai/gpt-5.4-pro"},{id:"gpt-5.4",name:"GPT-5.4",upstreamModelId:"blackboxai/openai/gpt-5.4"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",upstreamModelId:"blackboxai/openai/gpt-5.3-codex"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano",upstreamModelId:"blackboxai/openai/gpt-5.4-nano"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",upstreamModelId:"blackboxai/deepseek/deepseek-v4-flash"},{id:"grok-4.3",name:"Grok 4.3",upstreamModelId:"blackboxai/x-ai/grok-4.3"}]},{id:"bluesminds",alias:"bm",aliases:["blue-sminds"],uiAlias:"bm",hidden:!0,display:{name:"BluesMinds",icon:"psychology",color:"#2563EB",textIcon:"BM",website:"https://bluesminds.com",notice:{apiKeyUrl:"https://bluesminds.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.bluesminds.com/v1/chat/completions",validateUrl:"https://api.bluesminds.com/v1/models"},models:[{id:"gpt-4.1",name:"GPT-4.1",contextLength:1048576},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini",contextLength:1048576},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano",contextLength:1048576},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",contextLength:1048576},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash (Exp)",contextLength:1048576},{id:"qwen-turbo",name:"Qwen Turbo",contextLength:1e6},{id:"kimi-k2",name:"Kimi K2",contextLength:262144},{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",contextLength:262144},{id:"glm-4.7",name:"GLM 4.7",contextLength:204800},{id:"minimax-m2.5",name:"MiniMax M2.5",contextLength:204800},{id:"claude-opus-4-5",name:"Claude Opus 4.5 (VIP)",contextLength:2e5},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (VIP)",contextLength:1048576}]},{id:"brave-search",alias:"brave",display:{name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"byteplus",priority:70,alias:"byteplus",aliases:["bpm"],uiAlias:"bpm",display:{name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"}},category:"freeTier",transport:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],serviceKinds:["llm"]},{id:"cartesia",alias:"cartesia",display:{name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]},hidden:!0},{id:"cerebras",priority:60,alias:"cerebras",display:{name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},category:"apikey",transport:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",validateUrl:"https://api.cerebras.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}]},{id:"chutes",priority:70,alias:"chutes",aliases:["ch"],uiAlias:"ch",display:{name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},category:"apikey",transport:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",validateUrl:"https://llm.chutes.ai/v1/models"}},{id:"claude",priority:10,alias:"cc",uiAlias:"cc",display:{name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.280 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":"arm64","X-Stainless-Os":"MacOS","X-Stainless-Timeout":"600"},quirks:{cloakToolsOnOAuth:!0},auth:{apiKey:{header:"x-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}},usage:{oauthUrl:"https://api.anthropic.com/api/oauth/usage",orgUrl:"https://api.anthropic.com/v1/organizations/{org_id}/usage",settingsUrl:"https://api.anthropic.com/v1/settings",profileUrl:"https://api.anthropic.com/api/oauth/profile",resetUrl:"https://api.anthropic.com/api/organizations/{org_id}/reset_rate_limits"}},models:[{id:"claude-opus-5-5",name:"Claude Opus 5.5"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5-1",name:"Claude Fable 5.1"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],oauth:{clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256",refreshLeadMs:144e5,refresh:{encoding:"json"}},features:{usage:!0}},{id:"cline",priority:80,alias:"cl",uiAlias:"cl",display:{name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},category:"oauth",transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",forceStream:!0,headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"}},{id:"clinepass",priority:85,alias:"clinepass",uiAlias:"clinepass",display:{name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["clineHeaders"]}},models:[{id:"cline-pass/glm-5.2",name:"GLM-5.2 (ClinePass)"},{id:"cline-pass/kimi-k2.7-code",name:"Kimi K2.7 Code (ClinePass)"},{id:"cline-pass/kimi-k2.6",name:"Kimi K2.6 (ClinePass)"},{id:"cline-pass/deepseek-v4-pro",name:"DeepSeek V4 Pro (ClinePass)"},{id:"cline-pass/deepseek-v4-flash",name:"DeepSeek V4 Flash (ClinePass)"},{id:"cline-pass/mimo-v2.5",name:"MiMo-V2.5 (ClinePass)"},{id:"cline-pass/mimo-v2.5-pro",name:"MiMo-V2.5-Pro (ClinePass)"},{id:"cline-pass/minimax-m3",name:"MiniMax M3 (ClinePass)"},{id:"cline-pass/qwen3.7-max",name:"Qwen3.7 Max (ClinePass)"},{id:"cline-pass/qwen3.7-plus",name:"Qwen3.7 Plus (ClinePass)"}],oauth:{appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},thinkingConfig:{options:["auto","on","off"],defaultMode:"auto"}},{id:"cloudflare-ai",priority:60,hasFree:!0,alias:"cloudflare-ai",aliases:["cf"],uiAlias:"cf",display:{name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"}},category:"freeTier",authType:"apikey",authModes:["apikey"],hasProviderSpecificData:!0,transport:{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",thinkingFormat:"openai"},models:[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",params:["size"],kind:"image"},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",params:["size"],kind:"image"},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",params:["size"],kind:"image"},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",params:["size"],kind:"image"},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",params:["size"],kind:"image"},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",params:["size"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",params:["size"],capabilities:["edit"],kind:"image"},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",params:["size"],capabilities:["edit","mask"],kind:"image"},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:["size"],kind:"image"}],serviceKinds:["llm","image"],imageConfig:{baseUrl:"https://api.cloudflare.com/client/v4/accounts"}},{id:"codebuddy-cn",alias:"cbcn",uiAlias:"cbcn",hidden:!1,priority:90,display:{name:"CodeBuddy CN",icon:"smart_toy",color:"#006EFF",website:"https://copilot.tencent.com",notice:{signupUrl:"https://copilot.tencent.com",webUrl:"https://www.workbuddy.cn/app"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://copilot.tencent.com/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",quirks:{sanitizeToolSchema:!0},headers:{"User-Agent":"CLI/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"CLI","X-IDE-Name":"CLI","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://copilot.tencent.com/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:.29,nightFree:{from:23,to:8}},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.3-flashx",name:"GLM-5.3-FlashX",rateMultiplier:.14},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"step-5-preview",name:"Step-5-Preview",rateMultiplier:.43,subPriority:!0},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11},{id:"deepseek-v4-pro",name:"DeepSeek-V4-Pro",rateMultiplier:.51}],oauth:{baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},{id:"codebuddy-intl",alias:"cbai",uiAlias:"cbai",hidden:!1,priority:90,display:{name:"CodeBuddy",icon:"smart_toy",color:"#006EFF",website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai",webUrl:"https://www.codebuddy.ai/agents"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://www.codebuddy.ai/v2/chat/completions",forceStream:!0,thinkingFormat:"openai",headers:{"User-Agent":"IDE/2.108.1 CodeBuddy/2.108.1","X-Product":"SaaS","X-IDE-Type":"IDE","X-IDE-Name":"IDE","x-requested-with":"XMLHttpRequest","x-codebuddy-request":"1"},auth:{combined:!0,header:"Authorization",scheme:"bearer"},usage:{url:"https://www.codebuddy.ai/v2/billing/meter/get-user-resource"}},models:[{id:"hy4-preview",name:"Hy4-Preview",rateMultiplier:0},{id:"hy3",name:"Hy3",rateMultiplier:0},{id:"gpt-6-astra",name:"GPT 6.0 Astra",rateMultiplier:6.67},{id:"gpt-6-luna",name:"GPT-6-Luna"},{id:"gpt-6-sol",name:"GPT-6-Sol"},{id:"gpt-5.6-sol",name:"GPT-5.6-Sol",rateMultiplier:3.47},{id:"gpt-5.6-terra",name:"GPT-5.6-Terra",rateMultiplier:1.39},{id:"gpt-5.6-luna",name:"GPT-5.6-Luna",rateMultiplier:.14},{id:"gpt-5.5",name:"GPT-5.5",rateMultiplier:3.31},{id:"gpt-5.4",name:"GPT-5.4",rateMultiplier:1.65},{id:"gpt-5.3-codex",name:"GPT-5.3-Codex",rateMultiplier:1.25},{id:"gpt-6.1-sol",name:"GPT-6.1-Sol"},{id:"claude-opus-5.5",name:"Claude-Opus-5.5",rateMultiplier:2.17,paidTier:!0},{id:"claude-sonnet-5.5",name:"Claude-Sonnet-5.5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-5",name:"Claude-Opus-5",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-5",name:"Claude-Sonnet-5",rateMultiplier:1.33,paidTier:!0},{id:"claude-opus-4.8",name:"Claude-Opus-4.8",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.7",name:"Claude-Opus-4.7",rateMultiplier:3.33,paidTier:!0},{id:"claude-opus-4.6",name:"Claude-Opus-4.6",rateMultiplier:3.33,paidTier:!0},{id:"claude-sonnet-4.6",name:"Claude-Sonnet-4.6",rateMultiplier:1.33,paidTier:!0},{id:"gemini-3.8-flash",name:"Gemini-3.8-Flash"},{id:"grok-4.7",name:"Grok-4.7",rateMultiplier:1.9},{id:"space-bunny",name:"Space-Bunny",rateMultiplier:.08},{id:"gemini-3.5-flash",name:"Gemini-3.5-Flash",rateMultiplier:.99},{id:"glm-5v-turbo",name:"GLM-5v-Turbo",rateMultiplier:.71},{id:"glm-5.3",name:"GLM-5.3",rateMultiplier:.79},{id:"glm-5.3-flash",name:"GLM-5.3-Flash",rateMultiplier:.06},{id:"glm-5.2",name:"GLM-5.2",rateMultiplier:.79},{id:"glm-5.1",name:"GLM-5.1",rateMultiplier:.79},{id:"minimax-m3",name:"MiniMax-M3",rateMultiplier:.25},{id:"kimi-k3",name:"Kimi-K3",rateMultiplier:1.62},{id:"kimi-k2.7",name:"Kimi-K2.7-Code",rateMultiplier:.57},{id:"kimi-k2.8-preview",name:"Kimi-K2.8-Preview",rateMultiplier:.77,subPriority:!0},{id:"kimi-k2.6",name:"Kimi-K2.6",rateMultiplier:.52},{id:"deepseek-v4.1-flash",name:"DeepSeek-V4.1-Flash",rateMultiplier:.11,promoFreeUntil:"2026-11-01"}],oauth:{baseUrl:"https://www.codebuddy.ai",stateUrl:"https://www.codebuddy.ai/v2/plugin/auth/state",tokenUrl:"https://www.codebuddy.ai/v2/plugin/auth/token",refreshUrl:"https://www.codebuddy.ai/v2/plugin/auth/token/refresh",userAgent:"IDE/2.63.2 CodeBuddy/2.63.2",platform:"ide",pollInterval:5e3},features:{usage:!0,usageApikey:!0}},k,{id:"cohere",priority:90,alias:"cohere",display:{name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},category:"apikey",serviceKinds:["llm","rerank"],rerankConfig:{baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v4.0-pro",name:"Rerank v4.0 Pro"},{id:"rerank-v3.5",name:"Rerank v3.5"}]},transport:{baseUrl:"https://api.cohere.ai/v1/chat/completions",validateUrl:"https://api.cohere.ai/v1/models"},models:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}]},{id:"comfyui",priority:120,alias:"comfyui",display:{name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"flux-dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"sdxl",name:"SDXL",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:8188"}},{id:"commandcode",priority:100,alias:"commandcode",aliases:["cmc"],uiAlias:"cmc",display:{name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},category:"apikey",features:{usage:!0,usageApikey:!0},usage:{creditsUrl:"https://api.commandcode.ai/alpha/billing/credits",subscriptionsUrl:"https://api.commandcode.ai/alpha/billing/subscriptions"},transport:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",forceStream:!0,headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-8",name:"Claude Opus 4.8"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek/deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (exp)"},{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"google/gemini-3.1-flash-lite",name:"Gemini 3.1 Flash Lite"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"meta/muse-spark-1.1",name:"Muse Spark 1.1"},{id:"meta/muse-spark-1.2",name:"Muse Spark 1.2"},{id:"meta/muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor"},{id:"minimax/minimax-m2.7-free",name:"MiniMax M2.7 (Free)"},{id:"minimax/minimax-m3-free",name:"MiniMax M3 (Free)"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M3",name:"MiniMax M3"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.7-Code-Highspeed",name:"Kimi K2.7 Code HighSpeed"},{id:"moonshotai/Kimi-K3",name:"Kimi K3"},{id:"moonshotai/Kimi-K3.1-Pro",name:"Kimi K3.1 Pro"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"poolside/laguna-s-2.1-free",name:"Laguna S 2.1"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"Qwen/Qwen3.7-Flash",name:"Qwen 3.7 Flash"},{id:"Qwen/Qwen3.7-Max",name:"Qwen 3.7 Max"},{id:"Qwen/Qwen3.7-Plus",name:"Qwen 3.7 Plus"},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B"},{id:"Qwen/Qwen3.8-Flash",name:"Qwen 3.8 Flash"},{id:"Qwen/Qwen3.8-Max",name:"Qwen 3.8 Max"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"},{id:"stepfun/Step-3.7-Flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-paid",name:"Tencent Hy3"},{id:"tencent/hy4-preview",name:"Tencent Hy4 Preview"},{id:"thinkingmachines/inkling",name:"Inkling"},{id:"thinkingmachines/inkling-small",name:"Inkling Small"},{id:"xiaomi/mimo-v2.5",name:"MiMo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"xai/grok-4.5",name:"Grok 4.5"},{id:"xai/grok-4.6",name:"Grok 4.6"},{id:"z-ai/glm-5.3-flash",name:"GLM-5.3 Flash"},{id:"zai-org/GLM-5",name:"GLM-5"},{id:"zai-org/GLM-5.1",name:"GLM-5.1"},{id:"zai-org/GLM-5.2",name:"GLM-5.2"},{id:"zai-org/GLM-5.2-Fast",name:"GLM-5.2 Fast"},{id:"zai-org/GLM-5.3",name:"GLM-5.3"}]},{id:"coqui",alias:"coqui",display:{name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]},hidden:!0},{id:"cursor",priority:50,alias:"cu",uiAlias:"cu",display:{name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},category:"oauth",transport:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.12.17",usage:{url:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetCurrentPeriodUsage",planInfoUrl:"https://api2.cursor.sh/aiserver.v1.DashboardService/GetPlanInfo",authUsageUrl:"https://api2.cursor.sh/auth/usage"}},models:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],oauth:{apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/agent.v1.AgentService/GetUsableModels",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.12.17",clientType:"ide",dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},features:{usage:!0}},{id:"deepgram",priority:20,alias:"deepgram",aliases:["dg"],uiAlias:"dg",display:{name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"}},category:"apikey",authType:"apikey",transport:{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"}},l,{id:"devin-cli",alias:"dv",aliases:["devin"],uiAlias:"dv",hidden:!0,display:{name:"Devin CLI",icon:"smart_toy",color:"#6366F1",textIcon:"DV",website:"https://devin.ai",notice:{signupUrl:"https://cli.devin.ai",text:"Install: `curl -fsSL https://cli.devin.ai/install.sh | bash` (macOS: `brew install --cask devin-cli`, Windows PowerShell: `irm https://static.devin.ai/cli/setup.ps1 | iex`). Then run `devin auth login`. No API key needed."}},category:"free",authType:"none",noAuth:!0,authModes:["none"],transport:{baseUrl:"devin://acp/stdio",format:"openai"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max",contextLength:2e5},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High",contextLength:2e5},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium",contextLength:2e5},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low",contextLength:2e5},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M",contextLength:1e6},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking",contextLength:2e5},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextLength:2e5},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking",contextLength:2e5},{id:"claude-opus-4.6",name:"Claude Opus 4.6",contextLength:2e5},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextLength:2e5},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",contextLength:2e5},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh",contextLength:2e5},{id:"gpt-5.5-high",name:"GPT-5.5 High",contextLength:2e5},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium",contextLength:2e5},{id:"gpt-5.5-low",name:"GPT-5.5 Low",contextLength:2e5},{id:"gpt-5.4-high",name:"GPT-5.4 High",contextLength:2e5},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium",contextLength:2e5},{id:"gpt-5.4-low",name:"GPT-5.4 Low",contextLength:2e5},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High",contextLength:2e5},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium",contextLength:2e5},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low",contextLength:2e5},{id:"gpt-5.2-high",name:"GPT-5.2 High",contextLength:2e5},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium",contextLength:2e5},{id:"gpt-5.2-low",name:"GPT-5.2 Low",contextLength:2e5},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",contextLength:1e6},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",contextLength:1e6},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High",contextLength:1e6},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextLength:1e6},{id:"deepseek-v4",name:"DeepSeek V4",contextLength:1048576},{id:"kimi-k2.6",name:"Kimi K2.6",contextLength:262144},{id:"glm-5.1",name:"GLM-5.1",contextLength:204800}]},{id:"dots",alias:"dots",display:{name:"Dots",icon:"hub",color:"#FF2442",textIcon:"DT",website:"https://dots.ai",notice:{apiKeyUrl:"https://dots.ai/platform/apikeys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://note3-prev-api.askdiandian.com/v1/chat/completions",auth:{combined:!0,header:"api-key",scheme:"raw"}},models:[{id:"dots3-note-prev",name:"Dots3 Note Prev"}]},{id:"drex",alias:"drex",category:"apikey",display:{name:"Drex",icon:"psychology",color:"#131313",textIcon:"DX",website:"https://drex.nace.ai",notice:{apiKeyUrl:"https://drex.nace.ai/invite/tnzgt5vr"}},models:[{id:"drex-v1.0",name:"Drex v1.0",kind:"systemone"},{id:"drex-v1.1",name:"Drex v1.1",kind:"systemone"},{id:"drex-v1.5",name:"Drex v1.5",kind:"systemone"},{id:"drex-latest",name:"Drex Latest",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://drex.nace.ai/v1/systemone"}},{id:"edge-tts",alias:"edge-tts",display:{name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},{id:"elevenlabs",alias:"el",display:{name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts","stt"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},sttConfig:{baseUrl:"https://api.elevenlabs.io/v1/speech-to-text",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"scribe_v1",name:"Scribe v1"}]}},{id:"exa",alias:"exa",display:{name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},{id:"fal-ai",priority:90,hasFree:!0,alias:"fal-ai",aliases:["fal"],uiAlias:"fal",display:{name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",params:["n","size"],kind:"image"},{id:"fal-ai/flux/dev",name:"FLUX Dev",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",params:["n","size"],kind:"image"},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",params:["n","size"],kind:"image"},{id:"fal-ai/recraft-v3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",params:["n","size","style"],kind:"image"},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run"}},{id:"featherless",priority:65,alias:"featherless",aliases:["fl"],uiAlias:"fl",display:{name:"Featherless",icon:"flutter_dash",color:"#111827",textIcon:"FL",website:"https://featherless.ai",notice:{apiKeyUrl:"https://featherless.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.featherless.ai/v1/chat/completions",validateUrl:"https://api.featherless.ai/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"zai-org/GLM-5.2",name:"GLM 5.2"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"moonshotai/Kimi-K2.7-Code",name:"Kimi K2.7 Code"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"}]},{id:"firecrawl",alias:"firecrawl",display:{name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},{id:"fireworks",priority:50,alias:"fireworks",display:{name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",validateUrl:"https://api.fireworks.ai/inference/v1/models"},models:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings"}},{id:"fish-audio",alias:"fish",display:{name:"Fish Audio",icon:"record_voice_over",color:"#1E9BF0",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/app/api-keys/"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fish-audio",models:[{id:"s2.1-pro-free",name:"S2.1 Pro Free"},{id:"s2.1-pro",name:"S2.1 Pro"},{id:"s2-pro",name:"S2 Pro"},{id:"s1",name:"S1"}]}},{id:"gemini-cli",priority:20,hasFree:!0,alias:"gc",uiAlias:"gc",display:{name:"Gemini CLI",icon:"terminal",color:"#4285F4",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",strictProxy:!0,cliVersion:"0.34.0",apiClient:"google-genai-sdk/1.41.0 gl-node/v22.19.0",usage:{quotaUrl:"https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",loadCodeAssistUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist"},clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},models:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"}],oauth:{authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"],refresh:{encoding:"form"}},features:{usage:!0}},{id:"gemini",priority:50,hasFree:!0,alias:"gemini",display:{name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"}},category:"freeTier",authType:"apikey",authModes:["apikey"],mediaPriority:1,transport:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",auth:{apiKey:{header:"x-goog-api-key",scheme:"raw"},oauth:{header:"Authorization",scheme:"bearer"}}},models:[{id:"gemini-4-argon",name:"Gemini 4 Argon"},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",kind:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",kind:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",kind:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",kind:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",params:[],kind:"image"},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",params:[],kind:"image"},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",params:[],kind:"image"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",params:["language","prompt"],kind:"stt"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",params:["language","prompt"],kind:"stt"},{id:"gemini-2.5-flash-native-audio-preview-09-17",name:"Gemini Live Transcription (Realtime)",params:["language","prompt","system_instruction","setup_timeout_ms","turn_timeout_ms"],kind:"stt",transport:"gemini-live"},{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",kind:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",kind:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",kind:"tts"},{id:"embedding-001",name:"Embedding 001",dimensions:768,kind:"embedding"}],serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts"},sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt"},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key"},imageConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models"},searchViaChat:{defaultModel:"gemini-2.5-flash",endpoint:"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."}},{id:"github",priority:40,alias:"gh",uiAlias:"gh",display:{name:"GitHub Copilot",icon:"code",color:"#333333",website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"oauth",transport:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",messagesUrl:"https://api.githubcopilot.com/v1/messages",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},copilot:{vscodeVersion:"1.110.0",chatVersion:"0.38.0",userAgent:"GitHubCopilotChat/0.38.0",apiVersion:"2025-04-01"},usage:{url:"https://api.github.com/copilot_internal/user"}},models:[{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",kind:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.githubcopilot.com/embeddings",authType:"apikey",authHeader:"bearer"},oauth:{clientId:"Iv1.b507a08c87ecfe98",authorizeUrl:"https://github.com/login/oauth/authorize",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},features:{usage:!0}},{id:"gitlab",hidden:!0,priority:100,display:{name:"GitLab Duo",icon:"code",color:"#FC6D26",textIcon:"GL",website:"https://gitlab.com",notice:{signupUrl:"https://gitlab.com"}},category:"oauth",transport:{baseUrl:"https://gitlab.com/api/v4/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},oauth:{defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"}},{id:"glm-cn",priority:130,alias:"glm-cn",display:{name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},category:"apikey",transport:{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",headers:{},usage:{url:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"}},models:[{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5-turbo",name:"GLM 5 Turbo"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],features:{usage:!0,usageApikey:!0}},m,{id:"google-pse",alias:"gpse",display:{name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"google-tts",alias:"google-tts",display:{name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},{id:"grok-cli",priority:275,alias:"gcli",aliases:["grok-build","gb"],uiAlias:"gcli",display:{name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",website:"https://x.ai",notice:{text:"Sign in with your xAI / Grok account via device code. Uses Grok Build subscription credits (cli-chat-proxy.grok.com).",signupUrl:"https://grok.com/supergrok"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,thinkingConfig:{options:["low","medium","high","xhigh"],defaultMode:"high"},transport:{baseUrl:`${o}/responses`,format:"openai-responses",forceStream:!0,modelsUrl:`${o}/models`,userUrl:`${o}/user`,billingUrl:`${o}/billing`,clientVersion:n,clientIdentifier:p,tokenAuth:"xai-grok-cli",headers:{"User-Agent":q,"x-grok-client-identifier":p,"x-grok-client-version":n},usage:{url:`${o}/billing?format=credits`,userUrl:`${o}/user?include=subscription`},retry:{429:{attempts:2,delayMs:2e3},502:{attempts:2,delayMs:1500},503:{attempts:2,delayMs:1500}}},models:[{id:"grok-build",name:"Grok Build",contextLength:5e5,maxOutputTokens:64e3},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.5-high",name:"Grok 4.5 (High)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-medium",name:"Grok 4.5 (Medium)",upstreamModelId:"grok-4.5"},{id:"grok-4.5-low",name:"Grok 4.5 (Low)",upstreamModelId:"grok-4.5"}],features:{usage:!0},oauth:{clientId:"b1a00492-073a-47ea-816f-4c329264a828",deviceCodeUrl:"https://auth.x.ai/oauth2/device/code",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token",scope:"openid profile email offline_access grok-cli:access api:access conversations:read conversations:write",referrer:"grok-build",refreshLeadMs:3e5}},{id:"grok-web",priority:150,alias:"grok-web",aliases:["gw"],uiAlias:"gw",display:{name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com"},category:"webCookie",authType:"cookie",serviceKinds:["llm","image","video"],hiddenKinds:["video"],authHint:"Paste your sso= or full Cookie header from grok.com (with cf_clearance for image/video)",transport:{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},models:[{id:"grok-image",name:"Grok Imagine Image",params:["n","size"],kind:"image"},{id:"grok-video",name:"Grok Imagine Video",params:["seconds","size"],kind:"video"},{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],passthroughModels:!0},{id:"groq",priority:60,hasFree:!0,alias:"groq",display:{name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"}},category:"apikey",transport:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",validateUrl:"https://api.groq.com/openai/v1/models"},models:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"huggingface",priority:70,hasFree:!0,alias:"huggingface",aliases:["hf"],uiAlias:"hf",display:{name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"}},category:"apikey",authType:"apikey",hiddenKinds:["tts"],transport:null,models:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",params:[],kind:"image"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",params:[],kind:"image"},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",params:["language"],kind:"stt"},{id:"openai/whisper-small",name:"Whisper Small (HF)",params:["language"],kind:"stt"}],serviceKinds:["image","stt"],imageConfig:{baseUrl:"https://api-inference.huggingface.co/models"}},{id:"hyperbolic",priority:160,alias:"hyperbolic",aliases:["hyp"],uiAlias:"hyp",display:{name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",validateUrl:"https://api.hyperbolic.xyz/v1/models"},models:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}]},{id:"iflow",hidden:!0,priority:110,alias:"if",display:{name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},category:"oauth",transport:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",thinkingFormat:"openai",headers:{"User-Agent":"iFlow-Cli"}},models:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],oauth:{clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"},refreshLeadMs:864e5}},{id:"inworld",alias:"inworld",display:{name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},{id:"jina-ai",alias:"jina",display:{name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["embedding","rerank"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]},rerankConfig:{baseUrl:"https://api.jina.ai/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"jina-reranker-v3.5",name:"Jina Reranker v3.5"},{id:"jina-reranker-v2-base-multilingual",name:"Jina Reranker v2 Multilingual"}]}},{id:"jina-reader",alias:"jina-reader",display:{name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"}},category:"apikey",authType:"apikey",serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}},{id:"keenable",alias:"keenable",display:{name:"Keenable",icon:"travel_explore",color:"#FF7E38",textIcon:"KE",website:"https://www.keenable.ai",notice:{apiKeyUrl:"https://app.keenable.ai/console"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.keenable.ai/v1/search",method:"POST",authType:"apikey",authHeader:"x-api-key",searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.keenable.ai/v1/fetch",method:"GET",authType:"apikey",authHeader:"x-api-key",formats:["markdown","text"],maxCharacters:5e4,timeoutMs:15e3}},{id:"kilo-gateway",alias:"kgw",aliases:["kilo-gateway","kilogateway"],uiAlias:"kgw",category:"freeTier",display:{name:"Kilo Gateway",icon:"login",color:"#8B5CF6",textIcon:"KG",website:"https://kilo.ai",notice:{apiKeyUrl:"https://kilo.ai/dashboard?tab=apiKeys"}},authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.kilo.ai/api/gateway/chat/completions",validateUrl:"https://api.kilo.ai/api/gateway/models"},models:[{id:"kilo-auto/free",name:"Kilo Auto Free",contextLength:256e3},{id:"nvidia/nemotron-3-super-120b-a12b:free",name:"Nemotron 3 Super 120B (Free)",contextLength:262144},{id:"nvidia/nemotron-3-ultra-550b-a55b:free",name:"Nemotron 3 Ultra 550B (Free)",contextLength:1e6},{id:"kwaipilot/kat-coder-pro-v2.5:free",name:"Kat Coder Pro v2.5 (Free)",contextLength:256e3},{id:"kilo-auto/frontier",name:"Kilo Auto Frontier",contextLength:1e6},{id:"kilo-auto/balanced",name:"Kilo Auto Balanced",contextLength:1e6}]},{id:"kilocode",priority:70,alias:"kc",uiAlias:"kc",display:{name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},category:"oauth",transport:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",headers:{},auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kilocodeOrg"]}},models:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],modelsFetcher:{url:"https://api.kilo.ai/api/gateway/models",type:"openrouter-free"},passthroughModels:!0,oauth:{apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"}},{id:"kimchi",priority:95,alias:"kimchi",uiAlias:"kimchi",display:{name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"}},category:"freeTier",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://llm.kimchi.dev/openai/v1/chat/completions",format:"openai",headers:{"User-Agent":"kimchi/0.1.50"},auth:{combined:!0,header:"Authorization",scheme:"bearer"}},models:[{id:"minimax-m3",name:"MiniMax-M3"},{id:"kimi-k2.7",name:"Kimi-K2.7"},{id:"kimi-k2.6",name:"Kimi-K2.6"},{id:"kimi-k2.5",name:"Kimi-K2.5"},{id:"nemotron-3-ultra-fp4",name:"Nemotron 3 Ultra FP4"},{id:"minimax-m2.7",name:"MiniMax-M2.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"}],serviceKinds:["llm","imageToText"],oauth:{webAppUrl:"https://app.kimchi.dev",validationUrl:"https://api.cast.ai/v1/llm/openai/supported-providers",userInfoUrl:"https://app.kimchi.dev/api/v1/me",modelsUrl:"https://llm.kimchi.dev/v1/models/metadata?include_in_cli=true"},passthroughModels:!0},{id:"kimi",priority:170,alias:"kimi",aliases:["kimi-coding","kmc"],display:{name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",signupUrl:"https://www.kimi.com/code"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.kimi.com/coding/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.kimi.com/coding/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"responses",baseUrl:"https://api.kimi.com/coding/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["kimiHeaders"]}},{format:"claude",baseUrl:"https://api.kimi.com/coding/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw",hooks:["kimiHeaders"]}}],models:[{id:"kimi-k3",name:"Kimi K3"},{id:"k3",name:"Kimi K3 (Code)"},{id:"kimi-for-coding",name:"Kimi for Coding"},{id:"kimi-for-coding-highspeed",name:"Kimi for Coding Highspeed"},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"kimi-k2.7-code-highspeed",name:"Kimi K2.7 Code Highspeed"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-latest",name:"Kimi Latest"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k3",endpoint:"https://api.moonshot.cn/v1/chat/completions",pricingUrl:"https://platform.kimi.ai/docs/pricing/chat"},oauth:{clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token",refreshLeadMs:3e5,authorizeDeviceUrl:"https://www.kimi.com/code/authorize_device"},features:{usage:!0,usageApikey:!0}},{id:"kiro",priority:10,alias:"kr",uiAlias:"kr",display:{name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},deprecated:!0,deprecationNotice:"RISK_NOTICE"},category:"free",transport:{baseUrl:"https://runtime.us-east-1.kiro.dev/generateAssistantResponse",baseUrls:["https://runtime.us-east-1.kiro.dev/generateAssistantResponse","https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse","https://q.us-east-1.amazonaws.com/generateAssistantResponse"],format:"kiro",retry:{429:0},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev",usage:{cwHost:"https://codewhisperer.us-east-1.amazonaws.com",qHost:"https://q.us-east-1.amazonaws.com",limitsPath:"/getUsageLimits"}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-opus-5.5-thinking",name:"Claude Opus 5.5 (Thinking)"},{id:"claude-opus-5.5-agentic",name:"Claude Opus 5.5 (Agentic)"},{id:"claude-opus-5.5-thinking-agentic",name:"Claude Opus 5.5 (Thinking + Agentic)"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5-thinking",name:"Claude Opus 5 (Thinking)"},{id:"claude-opus-5-agentic",name:"Claude Opus 5 (Agentic)"},{id:"claude-opus-5-thinking-agentic",name:"Claude Opus 5 (Thinking + Agentic)"},{id:"claude-opus-4.8",name:"Claude Opus 4.8"},{id:"claude-opus-4.8-thinking",name:"Claude Opus 4.8 (Thinking)"},{id:"claude-opus-4.8-agentic",name:"Claude Opus 4.8 (Agentic)"},{id:"claude-opus-4.8-thinking-agentic",name:"Claude Opus 4.8 (Thinking + Agentic)"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"claude-opus-4.7-thinking",name:"Claude Opus 4.7 (Thinking)"},{id:"claude-opus-4.7-agentic",name:"Claude Opus 4.7 (Agentic)"},{id:"claude-opus-4.7-thinking-agentic",name:"Claude Opus 4.7 (Thinking + Agentic)"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 (Thinking)"},{id:"claude-opus-4.5-agentic",name:"Claude Opus 4.5 (Agentic)"},{id:"claude-opus-4.5-thinking-agentic",name:"Claude Opus 4.5 (Thinking + Agentic)"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking",name:"Claude Sonnet 5 (Thinking)"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 (Thinking)"},{id:"claude-haiku-4.5-thinking",name:"Claude Haiku 4.5 (Thinking)"},{id:"gpt-5.6-sol-thinking",name:"GPT 5.6 Sol (Thinking)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking",name:"GPT 5.6 Terra (Thinking)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking",name:"GPT 5.6 Luna (Thinking)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-agentic",name:"Claude Sonnet 5 (Agentic)"},{id:"claude-sonnet-4.5-agentic",name:"Claude Sonnet 4.5 (Agentic)"},{id:"claude-haiku-4.5-agentic",name:"Claude Haiku 4.5 (Agentic)"},{id:"gpt-5.6-sol-agentic",name:"GPT 5.6 Sol (Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-agentic",name:"GPT 5.6 Terra (Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-agentic",name:"GPT 5.6 Luna (Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"},{id:"claude-sonnet-5-thinking-agentic",name:"Claude Sonnet 5 (Thinking + Agentic)"},{id:"claude-sonnet-4.5-thinking-agentic",name:"Claude Sonnet 4.5 (Thinking + Agentic)"},{id:"claude-haiku-4.5-thinking-agentic",name:"Claude Haiku 4.5 (Thinking + Agentic)"},{id:"gpt-5.6-sol-thinking-agentic",name:"GPT 5.6 Sol (Thinking + Agentic)",contextLength:272e3,rateMultiplier:2.4,upstreamModelId:"gpt-5.6-sol",description:"Experimental preview of OpenAI GPT 5.6 Sol with 272k context window"},{id:"gpt-5.6-terra-thinking-agentic",name:"GPT 5.6 Terra (Thinking + Agentic)",contextLength:272e3,rateMultiplier:1.2,upstreamModelId:"gpt-5.6-terra",description:"Experimental preview of OpenAI GPT 5.6 Terra with 272k context window"},{id:"gpt-5.6-luna-thinking-agentic",name:"GPT 5.6 Luna (Thinking + Agentic)",contextLength:272e3,rateMultiplier:.6,upstreamModelId:"gpt-5.6-luna",description:"Experimental preview of OpenAI GPT 5.6 Luna with 272k context window"}],oauth:{ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},features:{usage:!0,usageApikey:!0}},{id:"linkup",alias:"linkup",display:{name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"llm7",alias:"llm7",aliases:["llm-7"],uiAlias:"llm7",display:{name:"LLM7",icon:"pool",color:"#7C3AED",textIcon:"L7",website:"https://llm7.io",notice:{apiKeyUrl:"https://llm7.io"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.llm7.io/v1/chat/completions",validateUrl:"https://api.llm7.io/v1/models"},models:[{id:"gpt-5.5",name:"GPT-5.5 (LLM7)",contextLength:105e4},{id:"claude-opus-5",name:"Claude Opus 5 (LLM7)",contextLength:1e6},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash (LLM7)",contextLength:1e6},{id:"grok-4.5",name:"Grok 4.5 (LLM7)",contextLength:5e5},{id:"kimi-k3",name:"Kimi K3 (LLM7)",contextLength:1e6}],passthroughModels:!0},{id:"local-device",alias:"local-device",display:{name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD"},category:"freeTier",authType:"none",serviceKinds:["tts"],mediaPriority:5,noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},{id:"longcat-intl",alias:"longcat-intl",uiAlias:"longcat-intl",display:{name:"LongCat Intl",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.ai",notice:{apiKeyUrl:"https://longcat.ai/platform/product"}},category:"apikey",transport:{baseUrl:"https://api.longcat.ai/openai/v1/chat/completions",validateUrl:"https://api.longcat.ai/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"longcat",alias:"longcat",display:{name:"LongCat",icon:"pets",color:"#F59E0B",textIcon:"LC",website:"https://longcat.chat",notice:{apiKeyUrl:"https://longcat.chat/platform/product?inviteCode=ULW84AMZ"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://api.longcat.chat/openai/v1/chat/completions",validateUrl:"https://api.longcat.chat/openai/v1/models"},models:[{id:"LongCat-2.5-Preview",name:"LongCat 2.5 Preview"},{id:"LongCat-2.0",name:"LongCat 2.0"}]},{id:"mimo-desktop",priority:22,alias:"mimo-desktop",aliases:["xmd"],uiAlias:"xmd",display:{name:"MiMo Desktop",icon:"smart_toy",color:"#FF6900",textIcon:"XMD",website:"https://mimo.xiaomimimo.com",notice:{text:"Account-session models. Requires MiMo Desktop to be installed and signed in on this machine — the session cookie is read from it locally and never stored here. No API key is needed for these models.",signupUrl:"https://mimo.xiaomimimo.com/desktop/invite/"}},category:"oauth",authModes:["oauth"],hasOAuth:!0,serviceKinds:["llm"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",rateMultiplier:1,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",rateMultiplier:.4,supportedFormats:["openai"],requiresSession:!0},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed",supportedFormats:["openai"],requiresSession:!0}],features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"mimo-free",hidden:!1,priority:50,hasFree:!0,alias:"mimo-free",uiAlias:"mimo-free",display:{name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF",deprecationNotice:"MiMo free API service has ended. This provider is no longer free. It is hidden from the usage topology by default — enable it via the toggle if you still want it shown."},topologyHiddenByDefault:!0,category:"free",noAuth:!0,community:!0,transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}],modelsFetcher:{url:"https://models.dev/api.json",type:"mimo-free"},passthroughModels:!0},{id:"minimax-cn",priority:190,alias:"minimax-cn",display:{name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimaxi.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash",targetFormat:"claude"},{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},features:{usage:!0,usageApikey:!0}},{id:"minimax-code-global",priority:84,alias:"minimax-code-global",aliases:["mmg","mmcode"],uiAlias:"mmg",display:{name:"MiniMax Code (Global)",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.io"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.io/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.io/oauth2/device/code",tokenUrl:"https://account.minimax.io/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash"},{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash (Preview)"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax-code",priority:82,alias:"mcode",aliases:["mm","mcode"],uiAlias:"mcode",display:{name:"MiniMax Code",icon:"smart_toy",color:"#FF4D4F",textIcon:"MM",website:"https://agent.minimax.cn"},category:"oauth",authModes:["oauth"],hasOAuth:!0,features:{usage:!0},transport:{baseUrl:"https://agent.minimax.cn/mavis/api/v1/llm/v1/messages",format:"claude",thinkingFormat:"claude-adaptive",headers:{"User-Agent":"MiniMaxAgent","X-Mavis-Agent-Id":"main"},auth:{combined:!0,header:"Authorization",scheme:"bearer",anthropicVersion:!0}},oauth:{clientId:"mcode-public",deviceUrl:"https://account.minimax.cn/oauth2/device/code",tokenUrl:"https://account.minimax.cn/oauth2/token",scope:"agent.default",audience:"agent-backend",refreshLeadMs:6e5},models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash"},{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash (Preview)"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"}]},{id:"minimax-free",priority:57,alias:"minimax-free",aliases:["mmcf"],uiAlias:"minimax-free",display:{name:"MiniMax Code Free",icon:"bolt",color:"#FF4D00",textIcon:"MM",website:"https://agent.minimax.cn"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/minimax/v1/messages",format:"claude",noAuth:!0},models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash"},{id:"MiniMax-M3.1-Flash-Preview",name:"MiniMax M3.1 Flash (Preview)"},{id:"MiniMax-M3",name:"MiniMax M3"},{id:"MiniMax-M2.7-highspeed",name:"MiniMax M2.7 Highspeed"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"}]},{id:"minimax",priority:90,alias:"minimax",display:{name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",urlSuffix:"?beta=true",headers:{...e},quirks:{dropOutputConfig:!0,requireClaudeToolType:!0},reasoningInject:{scope:"all"},auth:{combined:!0,header:"x-api-key",scheme:"raw"},usage:{urls:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"]}},transports:[{format:"openai",baseUrl:"https://api.minimax.io/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.minimax.io/anthropic/v1/messages",urlSuffix:"?beta=true",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"MiniMax-M3.1-Flash",name:"MiniMax M3.1 Flash",targetFormat:"claude"},{id:"MiniMax-M3",name:"MiniMax M3",targetFormat:"claude"},{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",params:["n","size","response_format"],kind:"image"},{id:"speech-2.8-hd",name:"Speech 2.8 HD",kind:"tts"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo",kind:"tts"},{id:"speech-2.6-hd",name:"Speech 2.6 HD",kind:"tts"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo",kind:"tts"},{id:"speech-02-hd",name:"Speech 02 HD",kind:"tts"},{id:"speech-02-turbo",name:"Speech 02 Turbo",kind:"tts"},{id:"speech-01-hd",name:"Speech 01 HD",kind:"tts"},{id:"speech-01-turbo",name:"Speech 01 Turbo",kind:"tts"}],serviceKinds:["llm","image","imageToText","webSearch","tts"],ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts"},imageConfig:{baseUrl:"https://api.minimaxi.com/v1/images/generations"},searchViaChat:{defaultModel:"MiniMax-M2.7",endpoint:"https://api.minimaxi.com/v1/text/chatcompletion_v2",pricingUrl:"https://www.minimaxi.com/document/price"},features:{usage:!0,usageApikey:!0}},{id:"mistral",priority:80,alias:"mistral",display:{name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"}},category:"apikey",transport:{baseUrl:"https://api.mistral.ai/v1/chat/completions",validateUrl:"https://api.mistral.ai/v1/models",quirks:{dropClientMetadata:!0}},models:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",kind:"embedding"}],serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"mmf",hidden:!0,priority:200,display:{name:"MMF",icon:"hub",color:"#6366F1",textIcon:"MF"},category:"apikey",transport:{baseUrl:"https://api.xiaomimimo.com/api/free-ai/openai/chat",noAuth:!0},models:[{id:"mimo-auto",name:"MiMo Auto"}]},{id:"morph",alias:"morph",aliases:["morphllm"],uiAlias:"morph",display:{name:"Morph",icon:"change_history",color:"#14B8A6",textIcon:"MP",website:"https://morphllm.com",notice:{apiKeyUrl:"https://morphllm.com"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.morphllm.com/v1/chat/completions",validateUrl:"https://api.morphllm.com/v1/models"},models:[{id:"morph-v3-large",name:"Morph v3 Large"},{id:"morph-v3-fast",name:"Morph v3 Fast"},{id:"morph-qwen35-397b",name:"Qwen 3.5 397B (Morph)",contextLength:262144},{id:"morph-minimax27-230b",name:"MiniMax M2.7 (Morph)",contextLength:200704},{id:"morph-qwen36-27b",name:"Qwen 3.6 27B (Morph)",contextLength:262144},{id:"morph-dsv4flash",name:"DeepSeek V4 Flash (Morph)",contextLength:1048576}]},{id:"muse",priority:120,alias:"muse",aliases:["muse-ai","meta-model-api","muse-code","muse-subscription"],uiAlias:"muse",display:{name:"Muse (Meta Model API)",icon:"auto_awesome",color:"#0866FF",textIcon:"MU",website:"https://muse.ai",notice:{text:"Sign in with your Meta account (Muse Code subscription) or paste a Model API key from dev.meta.ai. Subscription keys are minted per account; Meta may train on contributor-tier data.",apiKeyUrl:"https://dev.meta.ai",signupUrl:"https://muse.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.meta.ai/v1/chat/completions",validateUrl:"https://api.meta.ai/v1/models",modelsUrl:"https://api.meta.ai/v1/models",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},transports:[{format:"openai",baseUrl:"https://api.meta.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}},{format:"openai-responses",baseUrl:"https://api.meta.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer",hooks:["museHeaders"]}}],models:[{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.1",name:"Muse Spark 1.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],passthroughModels:!0,oauth:{clientId:"1031625952748946",deviceCodeUrl:"https://auth.meta.com/oidc/device/authorization/",tokenUrl:"https://auth.meta.com/oidc/device/token/"}},{id:"nanobanana",priority:80,hasFree:!0,alias:"nanobanana",aliases:["nb"],uiAlias:"nb",display:{name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"}},category:"apikey",transport:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",validateUrl:"https://api.nanobananaapi.ai/v1/models"},models:[{id:"nanobanana-flash",name:"NanoBanana Flash",params:["n","size"],kind:"image"},{id:"nanobanana-pro",name:"NanoBanana Pro",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",pollUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info"}},{id:"nebius",priority:70,alias:"nebius",display:{name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",validateUrl:"https://api.studio.nebius.ai/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings"}},{id:"nvidia",priority:20,hasFree:!0,alias:"nvidia",display:{name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",validateUrl:"https://integrate.api.nvidia.com/v1/models"},models:[{id:"minimaxai/minimax-m2.7",name:"MiniMax M2.7"},{id:"minimaxai/minimax-m3",name:"MiniMax M3"},{id:"z-ai/glm-5.2",name:"GLM 5.2"},{id:"deepseek-ai/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"nvidia/nemotron-3-ultra-550b-a55b",name:"Nemotron 3 Ultra"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",kind:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",params:["language"],kind:"stt"},{id:"fastpitch",name:"FastPitch",kind:"tts"},{id:"tacotron2",name:"Tacotron2",kind:"tts"}],serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts"},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"ollama-local",priority:50,hasFree:!0,alias:"ollama-local",display:{name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},category:"apikey",transport:{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},serviceKinds:["llm"]},{id:"ollama-search",alias:"ollama-search",display:{name:"Ollama Search",icon:"cloud",color:"#ffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Web search via Ollama Cloud subscription. Reuses the API key from the Ollama (chat) provider.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"apikey",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch"],credentialFallback:"ollama",searchConfig:{baseUrl:"https://ollama.com/api/web_search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"ollama",priority:30,hasFree:!0,alias:"ollama",display:{name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://ollama.com/api/chat",validateUrl:"https://ollama.com/api/tags",format:"ollama"},models:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"},{id:"minimax-m3",name:"MiniMax M3"}],serviceKinds:["llm"],features:{usage:!0,usageApikey:!0}},{id:"openai",priority:30,alias:"openai",display:{name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"}},category:"apikey",thinkingConfig:{options:["auto","none","low","medium","high"],defaultMode:"auto"},transport:{baseUrl:"https://api.openai.com/v1/chat/completions",forceStream:!0},models:[{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.5-pro",name:"GPT-5.5 Pro"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.4-pro",name:"GPT-5.4 Pro"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",kind:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",kind:"embedding"},{id:"tts-1",name:"TTS-1",kind:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"whisper-1",name:"Whisper 1",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",params:["language","response_format","temperature","prompt"],kind:"stt"},{id:"gpt-image-2.5",name:"GPT Image 2.5",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst",params:["n","size","quality","response_format"],kind:"image"},{id:"gpt-image-1",name:"GPT Image 1",params:["n","size","quality","response_format"],kind:"image"},{id:"dall-e-3",name:"DALL-E 3",params:["size","quality","style","response_format"],kind:"image"},{id:"dall-e-2",name:"DALL-E 2",params:["n","size","response_format"],kind:"image"}],serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultModel:"gpt-4o-mini-tts"},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.openai.com/v1/images/generations"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"}},{id:"opencode-go",priority:210,alias:"opencode-go",aliases:["ocg"],uiAlias:"ocg",display:{name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then 0/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax, DeepSeek, Grok, GPT and more.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",features:{usage:!0,usageApikey:!0},transport:{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",headers:{}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/go/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/go/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-luna",name:"GPT 6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3-contributor",name:"Muse Spark 1.3 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor",name:"Muse Spark 1.2 Contributor",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k3.1-pro",name:"Kimi K3.1 Pro",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"longcat-2.0",name:"LongCat 2.0",supportedFormats:["openai"]},{id:"longcat-2.5-preview-free",name:"LongCat 2.5 Preview (Free)",supportedFormats:["openai"]},{id:"space-bunny-free",name:"Space Bunny (Free)",supportedFormats:["openai","claude"]},{id:"space-bunny",name:"Space Bunny",supportedFormats:["openai","claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-flash",name:"DeepSeek V4.1 Flash (alias id)",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai","claude","openai-responses"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision (Exp)",supportedFormats:["openai","claude","openai-responses"]},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash",supportedFormats:["openai"]},{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro",supportedFormats:["openai"]},{id:"mimo-v2.5",name:"MiMo V2.5",supportedFormats:["openai"]},{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro",supportedFormats:["openai"]},{id:"mimo-v2-pro",name:"MiMo V2 Pro",supportedFormats:["openai"]},{id:"mimo-v2-omni",name:"MiMo V2 Omni",supportedFormats:["openai"]},{id:"hy4-preview",name:"Hy4 Preview",supportedFormats:["openai"]},{id:"hy3",name:"Hy3",supportedFormats:["openai"]},{id:"hy3-preview",name:"Hy3 Preview",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai","claude"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai","claude"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai","claude"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["openai","claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["openai","claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["openai","claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["openai","claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["openai","claude"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"omen-alpha",name:"Omen Alpha"}]},{id:"opencode-zen",priority:205,alias:"ocz",aliases:["opencode-zen"],uiAlias:"ocz",display:{name:"OpenCode Zen",icon:"terminal",color:"#E87040",textIcon:"OZ",website:"https://opencode.ai/auth",notice:{text:"OpenCode Zen PAYG: pay-as-you-go, key from https://opencode.ai/auth. Same models as Zen: paid + free tiers on the fast lane.",apiKeyUrl:"https://opencode.ai/auth"}},category:"apikey",transport:{baseUrl:"https://opencode.ai/zen/v1/chat/completions",headers:{},usage:{url:"https://opencode.ai/zen/v1/usage"}},transports:[{format:"openai",baseUrl:"https://opencode.ai/zen/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://opencode.ai/zen/v1/messages",auth:{combined:!0,header:"x-api-key",scheme:"raw",anthropicVersion:!0}},{format:"openai-responses",baseUrl:"https://opencode.ai/zen/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"claude-fable-5",name:"Claude Fable 5",supportedFormats:["claude"]},{id:"claude-fable-5-1",name:"Claude Fable 5.1",supportedFormats:["claude"]},{id:"claude-opus-5-5",name:"Claude Opus 5.5",supportedFormats:["claude"]},{id:"claude-opus-5",name:"Claude Opus 5",supportedFormats:["claude"]},{id:"claude-opus-4-8",name:"Claude Opus 4.8",supportedFormats:["claude"]},{id:"claude-opus-4-7",name:"Claude Opus 4.7",supportedFormats:["claude"]},{id:"claude-opus-4-6",name:"Claude Opus 4.6",supportedFormats:["claude"]},{id:"claude-opus-4-5",name:"Claude Opus 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-5-5",name:"Claude Sonnet 5.5",supportedFormats:["claude"]},{id:"claude-sonnet-5",name:"Claude Sonnet 5",supportedFormats:["claude"]},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",supportedFormats:["claude"]},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",supportedFormats:["claude"]},{id:"claude-sonnet-4",name:"Claude Sonnet 4",supportedFormats:["claude"]},{id:"claude-haiku-5-5",name:"Claude Haiku 5.5",supportedFormats:["claude"]},{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",supportedFormats:["claude"]},{id:"gemini-3.8-flash",name:"Gemini 3.8 Flash",supportedFormats:["openai"]},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash",supportedFormats:["openai"]},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash",supportedFormats:["openai"]},{id:"gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite",supportedFormats:["openai"]},{id:"gemini-3.5-flash",name:"Gemini 3.5 Flash",supportedFormats:["openai"]},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro",supportedFormats:["openai"]},{id:"gemini-3-flash",name:"Gemini 3 Flash",supportedFormats:["openai"]},{id:"gpt-6-astra",name:"GPT 6 Astra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6.1-sol",name:"GPT 6.1 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-6-sol",name:"GPT 6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-sol",name:"GPT 5.6 Sol",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-terra",name:"GPT 5.6 Terra",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.6-luna",name:"GPT 5.6 Luna",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5",name:"GPT 5.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.5-pro",name:"GPT 5.5 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4",name:"GPT 5.4",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-pro",name:"GPT 5.4 Pro",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-mini",name:"GPT 5.4 Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.4-nano",name:"GPT 5.4 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2",name:"GPT 5.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1",name:"GPT 5.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5",name:"GPT 5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-codex",name:"GPT 5 Codex",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"gpt-5-nano",name:"GPT 5 Nano",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-build-0.1",name:"Grok Build 0.1",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.7",name:"Grok 4.7",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.6",name:"Grok 4.6",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"grok-4.5",name:"Grok 4.5",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.3",name:"Muse Spark 1.3",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2",name:"Muse Spark 1.2",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"qwen3.8-max",name:"Qwen 3.8 Max",supportedFormats:["claude"]},{id:"qwen3.8-flash",name:"Qwen 3.8 Flash",supportedFormats:["claude"]},{id:"qwen3.7-max",name:"Qwen 3.7 Max",supportedFormats:["claude"]},{id:"qwen3.7-plus",name:"Qwen 3.7 Plus",supportedFormats:["claude"]},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus",supportedFormats:["claude"]},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",supportedFormats:["claude"]},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro",supportedFormats:["openai"]},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash",supportedFormats:["openai"]},{id:"deepseek-v4-flash-vision-exp",name:"DeepSeek V4 Flash Vision Exp",supportedFormats:["openai"]},{id:"glm-5.3-flash",name:"GLM 5.3 Flash (Vision)",supportedFormats:["openai"]},{id:"glm-5.3",name:"GLM 5.3",supportedFormats:["openai"]},{id:"glm-5.2",name:"GLM 5.2",supportedFormats:["openai"]},{id:"glm-5.1",name:"GLM 5.1",supportedFormats:["openai"]},{id:"glm-5",name:"GLM 5",supportedFormats:["openai"]},{id:"minimax-m3",name:"MiniMax M3",supportedFormats:["openai"]},{id:"minimax-m2.7",name:"MiniMax M2.7",supportedFormats:["openai"]},{id:"minimax-m2.5",name:"MiniMax M2.5",supportedFormats:["openai"]},{id:"kimi-k3",name:"Kimi K3",supportedFormats:["openai"]},{id:"kimi-k2.7-code",name:"Kimi K2.7 Code",supportedFormats:["openai"]},{id:"kimi-k2.6",name:"Kimi K2.6",supportedFormats:["openai"]},{id:"kimi-k2.5",name:"Kimi K2.5",supportedFormats:["openai"]},{id:"big-pickle",name:"Big Pickle",supportedFormats:["openai"]},{id:"mistral-large-4",name:"Mistral Large 4",supportedFormats:["openai"]},{id:"union-alpha",name:"Union Alpha",supportedFormats:["claude"]},{id:"deepseek-v4-flash-free",name:"DeepSeek V4 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free",supportedFormats:["openai"]},{id:"mimo-v2.5-free",name:"MiMo V2.5 Free",supportedFormats:["openai"]},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free",supportedFormats:["openai"]},{id:"ling-3.1-flash-free",name:"Ling 3.1 Flash Free",supportedFormats:["openai"]},{id:"fledge-alpha-free",name:"Fledge Alpha Free",supportedFormats:["openai"]},{id:"exo-free",name:"Exo Free",supportedFormats:["openai"]},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free",supportedFormats:["openai"]},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free",supportedFormats:["openai"]},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]},{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses",supportedFormats:["openai-responses"]}],modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"opencode",priority:40,hasFree:!0,alias:"oc",uiAlias:"oc",display:{name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC"},category:"free",noAuth:!0,community:!0,topologyHiddenByDefault:!1,transport:{baseUrl:"https://opencode.ai",headers:{"x-opencode-client":"cli"},noAuth:!0,forceStream:!0,reasoningInject:{scope:"all"},quirks:{forceAutoToolChoiceModels:["muse-spark-1.3-contributor-free"]}},models:[{id:"muse-spark-1.2-contributor-free",name:"Muse Spark 1.2 Contributor Free",targetFormat:"openai-responses"},{id:"muse-spark-1.3-contributor-free",name:"Muse Spark 1.3 Contributor Free",targetFormat:"openai-responses"},{id:"big-pickle",name:"Big Pickle"},{id:"deepseek-v4.1-flash-free",name:"DeepSeek V4.1 Flash Free"},{id:"mimo-v2.6-flash-free",name:"MiMo V2.6 Flash Free"},{id:"mimo-v2.5-free",name:"MiMo-V2.5 Free"},{id:"ling-3.0-flash-fin-free",name:"Ling 3.0 Flash Fin Free"},{id:"nemotron-3-ultra-free",name:"Nemotron 3 Ultra Free"},{id:"nemotron-3.5-lightning-free",name:"Nemotron 3.5 Lightning Free"},{id:"jev-1.13-free",name:"Jev 1.13 Free",kind:"systemone"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://opencode.ai/zen/v1/systemone",headers:{"x-opencode-client":"cli","User-Agent":"opencode/1.18.35"}},modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"},passthroughModels:!0},{id:"openrouter",priority:10,hasFree:!0,alias:"openrouter",display:{name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After 0 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",thinkingFormat:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},models:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",kind:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",kind:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",kind:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",kind:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",kind:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",kind:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",kind:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",kind:"tts"},{id:"openai/tts-1",name:"TTS-1",kind:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",params:["size","quality","style","response_format"],kind:"image"},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",params:["n","size","quality","response_format"],kind:"image"},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",params:["n","size"],kind:"image"},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",params:["n","size"],kind:"image"},{id:"typesafe/jev-1.13",name:"Jev 1.13 (via OpenRouter)",kind:"systemone"}],serviceKinds:["llm","embedding","tts","imageToText","systemone"],systemoneConfig:{baseUrl:"https://openrouter.ai/api/v1/systemone",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},ttsConfig:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",defaultModel:"openai/gpt-4o-mini-tts",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},imageConfig:{baseUrl:"https://openrouter.ai/api/v1/images/generations",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0},{id:"perplexity-agent",priority:181,alias:"perplexity-agent",aliases:["pplx-agent","pplx-responses","pa"],uiAlias:"pa",display:{name:"Perplexity Agent",icon:"travel_explore",color:"#20808D",textIcon:"PA",website:"https://www.perplexity.ai",notice:{text:"Perplexity Agent API exposes GPT, Claude, Gemini, Grok, GLM, Kimi, and Sonar models through one OpenAI-compatible Responses API.",apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/v1/responses",validateUrl:"https://api.perplexity.ai/v1/models",format:"openai-responses"},models:[{id:"perplexity/sonar",name:"Perplexity Sonar"},{id:"openai/gpt-5.5",name:"GPT-5.5"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"openai/gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4-8",name:"Claude Opus 4.8"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"xai/grok-4.20-reasoning",name:"Grok 4.20 Reasoning"},{id:"perplexity/glm-5.2",name:"GLM 5.2"},{id:"perplexity/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"perplexity/sonar",endpoint:"https://api.perplexity.ai/v1/responses",pricingUrl:"https://docs.perplexity.ai/docs/agent-api/models"},modelsFetcher:{url:"https://api.perplexity.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"perplexity-web",priority:220,alias:"perplexity-web",aliases:["pw"],uiAlias:"pw",display:{name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai"},category:"webCookie",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",transport:{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},models:[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}]},{id:"perplexity",priority:180,alias:"perplexity",aliases:["pplx"],uiAlias:"pplx",display:{name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.perplexity.ai/chat/completions",validateUrl:"https://api.perplexity.ai/models"},models:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"sonar",endpoint:"https://api.perplexity.ai/chat/completions",pricingUrl:"https://docs.perplexity.ai/guides/pricing"}},{id:"playht",alias:"playht",display:{name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"}},category:"apikey",authType:"apikey",serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]},hidden:!0},{id:"poolside",priority:60,alias:"poolside",aliases:["ps"],uiAlias:"ps",display:{name:"Poolside",icon:"water_drop",color:"#0EA5E9",textIcon:"PS",website:"https://poolside.ai",notice:{apiKeyUrl:"https://platform.poolside.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://inference.poolside.ai/v1/chat/completions",validateUrl:"https://inference.poolside.ai/v1/models"},models:[{id:"poolside/laguna-s-2.1",name:"Laguna S 2.1"},{id:"poolside/laguna-xs-2.1",name:"Laguna XS 2.1"}]},{id:"qoder-cn",priority:31,alias:"qdc",uiAlias:"qdc",display:{name:"Qoder CN",icon:"water_drop",color:"#F43F5E",website:"https://qoder.cn",notice:{signupUrl:"https://qoder.cn"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) 来自 https://qoder.cn/account/integrations",modelsJsonUrl:"https://api.github.com/repos/techysy/10router/contents/providers/qoder-cn.json",fallbackModelsJsonUrl:"https://gitee.com/techysy/10router/raw/main/providers/qoder-cn.json",transport:{baseUrl:"https://gateway.qoder.com.cn/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.com.cn/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"q37fmodel",name:"Qwen3.7-Flash"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"gm51model",name:"GLM-5.2"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4.1-Flash 1017",promoFreeUntil:"2026-10-25T00:00:00+08:00"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.com.cn",centerBaseUrl:"https://gateway.qoder.com.cn",chatBaseUrl:"https://gateway.qoder.com.cn",deviceTokenUrl:"https://openapi.qoder.com.cn/api/v1/deviceToken/poll",refreshUrl:"https://gateway.qoder.com.cn/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.com.cn/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.com.cn/api/v2/quota/usage",loginUrl:"https://qoder.cn/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"qoder",priority:30,alias:"qd",uiAlias:"qd",display:{name:"Qoder",icon:"water_drop",color:"#EC4899",website:"https://qoder.com",notice:{signupUrl:"https://qoder.com"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,authHint:"Personal Access Token (pt-...) từ https://qoder.com/account/integrations",transport:{baseUrl:"https://api3.qoder.sh/algo/api/v2/service/pro/sse/agent_chat_generation",headers:{},timeoutMs:12e4,stallTimeoutMs:12e4,usage:{url:"https://openapi.qoder.sh/api/v2/quota/usage"}},models:[{id:"auto",name:"Auto"},{id:"ultimate",name:"Ultimate"},{id:"performance",name:"Performance"},{id:"efficient",name:"Efficient"},{id:"qmodel_38max",name:"Qwen3.8-Max"},{id:"qmodel_latest",name:"Qwen3.7-Max"},{id:"qmodel",name:"Qwen3.7-Plus"},{id:"qfmodel",name:"Qwen3.8-Flash"},{id:"kmodel_latest",name:"Kimi-K3"},{id:"kmodel",name:"Kimi-K2.7-Code"},{id:"gmodel",name:"GLM-5.3"},{id:"gfmodel",name:"GLM-5.3-Flash"},{id:"dmodel",name:"DeepSeek-V4-Pro"},{id:"dfmodel",name:"DeepSeek-V4.1-Flash 1017",promoFreeUntil:"2026-10-25T00:00:00+08:00"},{id:"mmodel",name:"MiniMax-M3"}],oauth:{openApiBaseUrl:"https://openapi.qoder.sh",centerBaseUrl:"https://center.qoder.sh",chatBaseUrl:"https://api3.qoder.sh",deviceTokenUrl:"https://openapi.qoder.sh/api/v1/deviceToken/poll",refreshUrl:"https://center.qoder.sh/algo/api/v3/user/refresh_token",userInfoUrl:"https://openapi.qoder.sh/api/v1/userinfo",quotaUsageUrl:"https://openapi.qoder.sh/api/v2/quota/usage",loginUrl:"https://qoder.com/device/selectAccounts"},features:{usage:!0,usageApikey:!0}},{id:"recraft",priority:70,alias:"recraft",display:{name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"recraftv3",name:"Recraft V3",params:["n","size","style"],kind:"image"},{id:"recraftv2",name:"Recraft V2",params:["n","size","style"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/images/generations"}},{id:"river",priority:68,alias:"river",aliases:["rv"],display:{name:"River AI",icon:"bolt",color:"#2563EB",textIcon:"RV",website:"https://river.ai",notice:{apiKeyUrl:"https://console.river.ai/keys"}},category:"apikey",transport:{baseUrl:"https://api.river.ai/v1/chat/completions",validateUrl:"https://api.river.ai/v1/models"},transports:[{format:"openai",baseUrl:"https://api.river.ai/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"responses",baseUrl:"https://api.river.ai/v1/responses",auth:{combined:!0,header:"Authorization",scheme:"bearer"}}],models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1048576,maxOutput:384e3},{id:"zai-org/GLM-5.3-Flash",name:"GLM 5.3 Flash",contextWindow:1048576,maxOutput:131072}],features:{usage:!0,usageApikey:!0}},{id:"runwayml",priority:80,alias:"runwayml",aliases:["runway"],uiAlias:"runway",display:{name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"gen4_image",name:"Gen-4 Image",params:["size"],kind:"image"},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",params:["size"],kind:"image"},{id:"gen4_turbo",name:"Gen-4 Turbo",params:[],kind:"video"},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",params:[],kind:"video"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1"}},{id:"sambanova",alias:"samba",aliases:["sambanova-ai"],uiAlias:"samba",hidden:!0,display:{name:"SambaNova",icon:"memory",color:"#F97316",textIcon:"SN",website:"https://sambanova.ai",notice:{apiKeyUrl:"https://cloud.sambanova.ai/apis"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",validateUrl:"https://api.sambanova.ai/v1/models"},models:[{id:"MiniMax-M2.7",name:"MiniMax M2.7",contextLength:196608}]},{id:"sdwebui",priority:110,alias:"sdwebui",display:{name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},category:"apikey",transport:null,models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",params:["n","size"],kind:"image"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",params:["n","size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"http://localhost:7860/sdapi/v1/txt2img"}},{id:"searchapi",alias:"searchapi",display:{name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"searxng",alias:"searxng",display:{name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org"},category:"freeTier",authType:"none",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:c(41534).Ps,method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},{id:"selfhosted-embedding",priority:50,hasFree:!0,alias:"selfhosted-embedding",display:{name:"Self-hosted Embedding",icon:"cloud",color:"#ffffffff",textIcon:"SE",website:"https://github.com/ggml-org/llama.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the OpenAI base URL, e.g. http://host:8080/v1 — /embeddings is appended. The API key is not checked by local servers; any value works."}},models:[{id:"embedding",name:"Self-hosted embedding model",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"http://localhost:8080/v1/embeddings",authType:"apikey",authHeader:"bearer"}},{id:"selfhosted-stt",priority:50,hasFree:!0,alias:"selfhosted-stt",display:{name:"Self-hosted STT",icon:"cloud",color:"#ffffffff",textIcon:"ST",website:"https://github.com/ggml-org/whisper.cpp"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the full transcriptions URL, e.g. http://host:8080/v1/audio/transcriptions. The API key is not checked by local servers; any value works."}},models:[{id:"whisper-1",name:"Whisper (self-hosted)",params:["language","response_format","temperature","prompt"],kind:"stt"}],serviceKinds:["stt"],sttConfig:{baseUrl:"http://localhost:8080/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"selfhosted-tts",priority:50,hasFree:!0,alias:"selfhosted-tts",display:{name:"Self-hosted TTS",icon:"cloud",color:"#ffffffff",textIcon:"TT",website:"https://github.com/remsky/Kokoro-FastAPI"},category:"apikey",auth:{apiKey:{text:"Set providerSpecificData.baseUrl to the server root, e.g. http://host:8080 — /v1/audio/speech is appended. The API key is not checked by local servers; any value works."}},models:[{id:"kokoro",name:"Kokoro (self-hosted)",params:["voice","response_format","speed"],kind:"tts"}],serviceKinds:["tts"],ttsConfig:{baseUrl:"http://localhost:8880",defaultModel:"kokoro",authType:"apikey",format:"openai-speech"}},{id:"sensenova",alias:"sensenova",display:{name:"SenseNova",icon:"blur_on",color:"#1177E4",textIcon:"SN",website:"https://www.sensenova.cn",notice:{apiKeyUrl:"https://platform.sensenova.cn/console/keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://token.sensenova.cn/v1/chat/completions",validateUrl:"https://token.sensenova.cn/v1/models"},models:[{id:"sensenova-6.8-flash-lite",name:"SenseNova 6.8 Flash Lite"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"glm-5.2",name:"GLM 5.2"},{id:"sensenova-u1.5-lite",name:"SenseNova U1.5 Lite",kind:"image",capabilities:["text2img"]},{id:"sensenova-u1-fast",name:"SenseNova U1 Fast",kind:"image",capabilities:["text2img"]}]},{id:"serper",alias:"serper",display:{name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"siliconflow-cn",priority:115,alias:"siliconflow-cn",aliases:["sfcn"],uiAlias:"sfcn",display:{name:"SiliconFlow CN",icon:"bolt",color:"#1FA34A",textIcon:"SF",website:"https://siliconflow.cn",notice:{apiKeyUrl:"https://cloud.siliconflow.cn/i/OzcMUfeM"}},category:"apikey",authType:"apikey",serviceKinds:["llm","image","video","embedding","rerank"],imageConfig:{baseUrl:"https://api.siliconflow.cn/v1/images/generations"},videoConfig:{baseUrl:"https://api.siliconflow.cn/v1/videos/generations"},embeddingConfig:{baseUrl:"https://api.siliconflow.cn/v1/embeddings"},rerankConfig:{baseUrl:"https://api.siliconflow.cn/v1/rerank"},transport:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",validateUrl:"https://api.siliconflow.cn/v1/models"},models:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"Kwai-Kolors/Kolors",name:"Kolors",params:["size"],kind:"image"},{id:"zai-org/Z-Image-Turbo",name:"Z-Image Turbo",params:["size"],kind:"image"},{id:"Qwen/Qwen-Image",name:"Qwen Image",params:["size"],kind:"image"},{id:"Wan-AI/Wan2.2-T2V-A14B",name:"Wan2.2 T2V",params:["size"],kind:"video"},{id:"Wan-AI/Wan2.2-I2V-A14B",name:"Wan2.2 I2V",params:["size"],kind:"video"},{id:"BAAI/bge-reranker-v2-m3",name:"BGE Reranker v2 M3",kind:"rerank"},{id:"BAAI/bge-reranker-v2-gemma",name:"BGE Reranker v2 Gemma",kind:"rerank"}],features:{usage:!0,usageApikey:!0}},{id:"siliconflow",priority:250,alias:"siliconflow",display:{name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},category:"apikey",transport:{baseUrl:"https://api.siliconflow.com/v1/chat/completions",validateUrl:"https://api.siliconflow.com/v1/models",thinkingFormat:"openai"},models:[{id:"deepseek-ai/DeepSeek-V4-Pro",name:"DeepSeek V4 Pro"},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash"},{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.2-Exp",name:"DeepSeek V3.2 Exp"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-V3.1-Terminus",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen 3.5 397B A17B"},{id:"Qwen/Qwen3.5-122B-A10B",name:"Qwen 3.5 122B A10B"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"inclusionAI/Ling-flash-2.0",name:"Ling Flash 2.0"}]},{id:"stability-ai",priority:60,alias:"stability-ai",aliases:["stability"],uiAlias:"stability",display:{name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"stable-image-ultra",name:"Stable Image Ultra",params:["size"],kind:"image"},{id:"stable-image-core",name:"Stable Image Core",params:["size","style"],kind:"image"},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",params:["size"],kind:"image"},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",params:["size"],kind:"image"},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",params:["size"],kind:"image"}],serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v2beta/stable-image/generate"}},{id:"stepfun-cn",priority:65,alias:"step-cn",aliases:["stepfun-cn","sf-cn"],display:{name:"StepFun CN",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/v1/chat/completions",validateUrl:"https://api.stepfun.com/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"stepfun-plan-cn",priority:64,alias:"stepp-cn",aliases:["step-plan-cn","sfp-cn","sfpcn","stepfun-plan-cn"],display:{name:"StepFun CN Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.com/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.com/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.com/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.com/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.com/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun-plan",priority:66,alias:"stepp",aliases:["step-plan","sfp","stepfun-plan"],display:{name:"StepFun Plan",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai/step-plan",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/step_plan/v1/chat/completions",validateUrl:"https://api.stepfun.ai/step_plan/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-router-v1",name:"Step Router V1"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"}],serviceKinds:["llm","imageToText","tts"],features:{},ttsConfig:{baseUrl:"https://api.stepfun.ai/step_plan/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"}},{id:"stepfun",priority:67,alias:"step",aliases:["stepfun","sf"],display:{name:"StepFun",icon:"bolt",color:"#2E5BFF",textIcon:"SF",website:"https://platform.stepfun.ai",notice:{apiKeyUrl:"https://platform.stepfun.ai/interface-key"}},category:"apikey",transport:{baseUrl:"https://api.stepfun.ai/v1/chat/completions",validateUrl:"https://api.stepfun.ai/v1/models"},models:[{id:"step-5-preview",name:"Step 5 Preview"},{id:"step-3.7-flash",name:"Step 3.7 Flash"},{id:"step-3.5-flash",name:"Step 3.5 Flash"},{id:"step-3.5-flash-2603",name:"Step 3.5 Flash 2603"},{id:"step-1o-turbo-vision",name:"Step-1o Turbo Vision"},{id:"stepaudio-3-tts",name:"StepAudio 3 TTS",kind:"tts"},{id:"stepaudio-2.5-tts",name:"StepAudio 2.5 TTS",kind:"tts"},{id:"step-tts-2",name:"Step TTS 2",kind:"tts"},{id:"step-tts-mini",name:"Step TTS Mini",kind:"tts"},{id:"stepaudio-2.5-asr",name:"StepAudio 2.5 ASR",kind:"stt"}],serviceKinds:["llm","imageToText","tts","stt"],features:{usage:!0,usageApikey:!0},ttsConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",defaultVoice:"cixingnansheng"},sttConfig:{baseUrl:"https://api.stepfun.ai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai"}},{id:"tavily",alias:"tavily",display:{name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},{id:"tencent",alias:"hunyuan",aliases:["hunyuan","tencent-hunyuan"],uiAlias:"hunyuan",display:{name:"Tencent Hunyuan",icon:"cloud",color:"#0052D9",textIcon:"HY",website:"https://cloud.tencent.com/product/hunyuan",notice:{apiKeyUrl:"https://console.cloud.tencent.com/hunyuan/api-key"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.hunyuan.cloud.tencent.com/v1/chat/completions",validateUrl:"https://api.hunyuan.cloud.tencent.com/v1/models"},models:[{id:"hunyuan-turbos-latest",name:"Hunyuan TurboS Latest",contextLength:2e5},{id:"hunyuan-t1-latest",name:"Hunyuan T1 Latest",contextLength:256e3}]},{id:"tinyfish",alias:"tinyfish",display:{name:"TinyFish",icon:"travel_explore",color:"#D74B28",textIcon:"TF",website:"https://tinyfish.ai",notice:{apiKeyUrl:"https://agent.tinyfish.ai/api-keys"}},category:"freeTier",authType:"apikey",authModes:["apikey"],serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.search.tinyfish.ai",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.fetch.tinyfish.ai",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:0,freeMonthlyQuota:999999,formats:["markdown","text","html"],maxCharacters:1e5,timeoutMs:3e4}},{id:"together",priority:60,alias:"together",display:{name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.together.xyz/v1/chat/completions",validateUrl:"https://api.together.xyz/v1/models"},models:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",kind:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",kind:"embedding"}],serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings"}},{id:"tokenbom",alias:"tokenbom",display:{name:"TokenBom",icon:"bolt",color:"#6366F1",textIcon:"TB",website:"https://tokenbom.com",notice:{apiKeyUrl:"https://tokenbom.com/login?mode=register&invite=SS-CB5D0A43"}},category:"apikey",transport:{baseUrl:"https://tokenbom.com/v1/chat/completions",validateUrl:"https://tokenbom.com/v1/models"},models:[{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-4.8-opus",name:"Claude Opus 4.8"},{id:"claude-4.7-opus",name:"Claude Opus 4.7"},{id:"claude-4.6-opus",name:"Claude Opus 4.6"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"glm-5.3-flash",name:"GLM-5.3-Flash"},{id:"glm-5.3",name:"GLM-5.3"},{id:"kimi-k3",name:"Kimi K3"},{id:"qwen3.8-flash",name:"Qwen3.8-Flash"}]},{id:"tokenharbor",alias:"tokenharbor",aliases:["th","thh"],uiAlias:"tokenharbor",display:{name:"Token Harbor",icon:"anchor",color:"#0F766E",textIcon:"TH",website:"https://tokenharbor.ai",notice:{apiKeyUrl:"https://tokenharbor.ai/dashboard"}},category:"apikey",authType:"apikey",priority:45,transport:{baseUrl:"https://tokenharbor.ai/v1/chat/completions",validateUrl:"https://tokenharbor.ai/v1/models",retry:{429:2}},models:[{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"claude-haiku-5.5:free",name:"Claude Haiku 5.5 (Free)"},{id:"gpt-6-astra",name:"GPT-6 Astra"},{id:"gpt-6-sol",name:"GPT-6 Sol"},{id:"deepseek-v4.1-flash:free",name:"DeepSeek V4.1 Flash (Free)"},{id:"qwen3.8-flash:free",name:"Qwen3.8 Flash (Free)"},{id:"mimo-v2.6-flash:free",name:"MiMo V2.6 Flash (Free)"},{id:"grok-4.7",name:"Grok 4.7"}],modelsFetcher:{url:"https://tokenharbor.ai/v1/models",type:"openai"},passthroughModels:!0},{id:"tokenrouter",alias:"tokenrouter",aliases:[],uiAlias:"tokenrouter",display:{name:"TokenRouter",icon:"hub",color:"#0EA5E9",textIcon:"TR",website:"https://www.tokenrouter.com",notice:{text:"OpenAI-compatible gateway. 300+ models (OpenAI, Claude, Gemini, Qwen, DeepSeek, Kimi, GLM, dsb).",apiKeyUrl:"https://www.tokenrouter.com"}},category:"apikey",thinkingConfig:{options:["low","medium","high","xhigh","max"],defaultMode:"high"},transport:{baseUrl:"https://api.tokenrouter.com/v1/chat/completions",validateUrl:"https://api.tokenrouter.com/v1/models",thinkingFormat:"tokenrouter"},models:[{id:"MiniMax-Hailuo-2.3",name:"Minimax Hailuo 2.3",kind:"video"},{id:"MiniMax-M3",name:"Minimax M3"},{id:"anthropic/claude-fable-5",name:"Claude Fable 5"},{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-opus-4.7-fast",name:"Claude Opus 4.7 Fast"},{id:"anthropic/claude-opus-4.8",name:"Claude Opus 4.8"},{id:"anthropic/claude-opus-4.8-fast",name:"Claude Opus 4.8 Fast"},{id:"anthropic/claude-opus-5",name:"Claude Opus 5"},{id:"anthropic/claude-opus-5-fast",name:"Claude Opus 5 Fast"},{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4"},{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-sonnet-5",name:"Claude Sonnet 5"},{id:"bytedance-seed/seedream-4.5",name:"Seedream 4.5",kind:"image"},{id:"bytedance-seed/seedream-5.0-lite",name:"Seedream 5.0 Lite",kind:"image"},{id:"bytedance-seed/seedream-5.0-pro",name:"Seedream 5.0 Pro",kind:"image"},{id:"claude-haiku-4-5",name:"Claude Haiku 4 5"},{id:"claude-opus-4-8-m-aws",name:"Claude Opus 4 8 M Aws"},{id:"deepseek/deepseek-v3.2",name:"Deepseek V3.2"},{id:"deepseek/deepseek-v4-flash",name:"Deepseek V4 Flash"},{id:"deepseek/deepseek-v4-flash-0731",name:"Deepseek V4 Flash 0731"},{id:"deepseek/deepseek-v4-pro",name:"Deepseek V4 Pro"},{id:"ex/gpt-5.4",name:"Gpt 5.4"},{id:"google/gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image"},{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"google/gemini-3-pro-image-preview",name:"Gemini 3 Pro Image Preview"},{id:"google/gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"},{id:"google/gemini-3.1-flash-lite-image",name:"Gemini 3.1 Flash Lite Image"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.5-flash",name:"Gemini 3.5 Flash"},{id:"google/gemini-3.5-flash-lite",name:"Gemini 3.5 Flash Lite"},{id:"google/gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"google/gemini-embedding-2",name:"Gemini Embedding 2"},{id:"google/gemma-4-26b-a4b-it",name:"Gemma 4 26B A4B It"},{id:"happyhorse-1.0-t2v",name:"Happyhorse 1.0 T2V",kind:"video"},{id:"kling-3.0-turbo",name:"Kling 3.0 Turbo",kind:"video"},{id:"kling-v2-6",name:"Kling V2 6",kind:"video"},{id:"kling-v3",name:"Kling V3",kind:"video"},{id:"kling-v3-omni",name:"Kling V3 Omni",kind:"video"},{id:"microsoft/mai-image-2.5",name:"Mai Image 2.5"},{id:"minimax/minimax-m2-her",name:"Minimax M2 Her"},{id:"minimax/minimax-m2.1",name:"Minimax M2.1"},{id:"minimax/minimax-m2.1-highspeed",name:"Minimax M2.1 Highspeed"},{id:"minimax/minimax-m2.5",name:"Minimax M2.5"},{id:"minimax/minimax-m2.7",name:"Minimax M2.7"},{id:"minimax/minimax-m2.7-highspeed",name:"Minimax M2.7 Highspeed"},{id:"minimax/minimax-m3.1-flash",name:"Minimax M3.1 Flash"},{id:"minimax/minimax-m3.1-flash:free",name:"Minimax M3.1 Flash (Free)"},{id:"miromind/mirothinker-1-7-deepresearch",name:"Mirothinker 1 7 Deepresearch"},{id:"miromind/mirothinker-1-7-deepresearch-mini",name:"Mirothinker 1 7 Deepresearch Mini"},{id:"mistralai/devstral-2512",name:"Devstral 2512"},{id:"mistralai/mistral-medium-3-5",name:"Mistral Medium 3 5"},{id:"mistralai/mistral-small-2603",name:"Mistral Small 2603"},{id:"mistralai/voxtral-small-24b-2507",name:"Voxtral Small 24B 2507"},{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"moonshotai/kimi-k2.7-code",name:"Kimi K2.7 Code"},{id:"moonshotai/kimi-k3",name:"Kimi K3"},{id:"moonshotai/kimi-k3-free",name:"Kimi K3 Free"},{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",name:"Nemotron 3 Nano Omni 30B A3B Reasoning:Free"},{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super 120B A12B"},{id:"openai/gpt-4o-mini",name:"Gpt 4O Mini"},{id:"openai/gpt-5",name:"Gpt 5"},{id:"openai/gpt-5-image",name:"Gpt 5 Image"},{id:"openai/gpt-5-image-mini",name:"Gpt 5 Image Mini"},{id:"openai/gpt-5-mini",name:"Gpt 5 Mini"},{id:"openai/gpt-5.2",name:"Gpt 5.2"},{id:"openai/gpt-5.4",name:"Gpt 5.4"},{id:"openai/gpt-5.4-image-2",name:"Gpt 5.4 Image 2",kind:"image"},{id:"openai/gpt-5.4-mini",name:"Gpt 5.4 Mini"},{id:"openai/gpt-5.4-nano",name:"Gpt 5.4 Nano"},{id:"openai/gpt-5.4-pro",name:"Gpt 5.4 Pro"},{id:"openai/gpt-5.5",name:"Gpt 5.5"},{id:"openai/gpt-5.5-pro",name:"Gpt 5.5 Pro"},{id:"openai/gpt-5.6-luna",name:"Gpt 5.6 Luna"},{id:"openai/gpt-5.6-sol",name:"Gpt 5.6 Sol"},{id:"openai/gpt-5.6-terra",name:"Gpt 5.6 Terra"},{id:"openai/gpt-audio",name:"Gpt Audio",kind:"audio"},{id:"openai/gpt-audio-mini",name:"Gpt Audio Mini",kind:"audio"},{id:"openai/gpt-oss-120b",name:"Gpt Oss 120B"},{id:"qwen/qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen/qwen3.5-122b-a10b",name:"Qwen3.5 122B A10B"},{id:"qwen/qwen3.5-35b-a3b",name:"Qwen3.5 35B A3B"},{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B"},{id:"qwen/qwen3.5-9b",name:"Qwen3.5 9B"},{id:"qwen/qwen3.5-flash",name:"Qwen3.5 Flash"},{id:"qwen/qwen3.5-plus-02-15",name:"Qwen3.5 Plus 02 15"},{id:"qwen/qwen3.6-plus",name:"Qwen3.6 Plus"},{id:"qwen/qwen3.7-max",name:"Qwen3.7 Max"},{id:"qwen/qwen3.7-plus",name:"Qwen3.7 Plus"},{id:"qwen/qwen3.8-max",name:"Qwen3.8 Max"},{id:"qwen3.5-omni-plus",name:"Qwen3.5 Omni Plus"},{id:"qwen3.6-flash",name:"Qwen3.6 Flash"},{id:"sakana/fugu-ultra",name:"Fugu Ultra"},{id:"seed-2-0-code-preview-260328",name:"Seed 2 0 Code Preview 260328"},{id:"seed-2-0-lite-260428",name:"Seed 2 0 Lite 260428"},{id:"seed-2-0-mini-260428",name:"Seed 2 0 Mini 260428"},{id:"seed-2-0-pro-260328",name:"Seed 2 0 Pro 260328"},{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash"},{id:"stepfun/step-3.7-flash",name:"Step 3.7 Flash"},{id:"tencent/hy3-preview",name:"Hy3 Preview"},{id:"x-ai/grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"x-ai/grok-4.20-beta",name:"Grok 4.20 Beta"},{id:"x-ai/grok-4.3",name:"Grok 4.3"},{id:"x-ai/grok-4.5",name:"Grok 4.5"},{id:"x-ai/grok-build-0.1",name:"Grok Build 0.1"},{id:"xiaomi/mimo-v2-flash",name:"Mimo V2 Flash"},{id:"xiaomi/mimo-v2-omni",name:"Mimo V2 Omni"},{id:"xiaomi/mimo-v2-pro",name:"Mimo V2 Pro"},{id:"xiaomi/mimo-v2.5",name:"Mimo V2.5"},{id:"xiaomi/mimo-v2.5-pro",name:"Mimo V2.5 Pro"},{id:"z-ai/glm-4.5-air",name:"Glm 4.5 Air"},{id:"z-ai/glm-4.6",name:"Glm 4.6"},{id:"z-ai/glm-4.6v",name:"Glm 4.6V"},{id:"z-ai/glm-4.7",name:"Glm 4.7"},{id:"z-ai/glm-5",name:"Glm 5"},{id:"z-ai/glm-5-turbo",name:"Glm 5 Turbo"},{id:"z-ai/glm-5.1",name:"Glm 5.1"},{id:"z-ai/glm-5.2",name:"Glm 5.2"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.tokenrouter.com/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.tokenrouter.com/v1/images/generations"},modelsFetcher:{url:"https://api.tokenrouter.com/v1/models",type:"openai"},passthroughModels:!0},{id:"topaz",alias:"topaz",display:{name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"}},category:"apikey",authType:"apikey",serviceKinds:["image"]},{id:"tortoise",alias:"tortoise",display:{name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts"},category:"freeTier",authType:"none",serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]},hidden:!0},{id:"trae-free",priority:58,alias:"trae-free",uiAlias:"trae-free",display:{name:"Trae Free",icon:"bolt",color:"#FF6A00",textIcon:"TF",website:"https://www.trae.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/trae/v1/messages",format:"claude",noAuth:!0},models:[{id:"Doubao-Seed-Code",name:"Doubao Seed Code"},{id:"Doubao-Seed-2.1-Pro",name:"Doubao Seed 2.1-Pro"},{id:"Doubao-Seed-2.1-Turbo",name:"Doubao Seed 2.1-Turbo"},{id:"Doubao-Seed-Evolving",name:"Doubao Seed Evolving"},{id:"deepseek-v4.1-flash",name:"DeepSeek V4.1-Flash"},{id:"DeepSeek-V4-Flash-Official",name:"DeepSeek V4-Flash Official"},{id:"DeepSeek-V4-Pro-Official",name:"DeepSeek V4-Pro Official"},{id:"glm-5.2",name:"GLM 5.2"},{id:"glm-5.3",name:"GLM 5.3"},{id:"glm-5.3-flash",name:"GLM 5.3-Flash"},{id:"glm-5.3-flashx",name:"GLM 5.3-FlashX"},{id:"mimo-v2.6-flash",name:"MiMo V2.6-Flash"},{id:"mimo-v2.6-pro",name:"MiMo V2.6-Pro"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.7-code",name:"Kimi K2.7-Code"},{id:"kimi-k3",name:"Kimi K3"},{id:"minimax-m3",name:"MiniMax M3"},{id:"qwen-3.7-plus",name:"Qwen 3.7-Plus"},{id:"qwen3.8-max",name:"Qwen 3.8-Max"},{id:"step-5-preview",name:"Step 5-Preview"}]},{id:"trae",alias:"tr",uiAlias:"tr",aliases:["marscode"],category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth"],display:{name:"Trae",icon:"bolt",color:"#FF6A00",textIcon:"TR",website:"https://www.trae.ai",notice:{signupUrl:"https://www.trae.ai"},loginSites:{param:"region",default:"intl",options:[{value:"intl",label:"国际站",hint:"www.trae.ai \xb7 海外账号"},{value:"cn",label:"国内站",hint:"www.trae.cn \xb7 国内手机号 / 抖音账号"}]}},transport:{baseUrl:"https://core-normal.trae.ai/api/remote/v1",format:"openai",headers:{"X-Trae-Client-Type":"web","X-Preferenced-Language":"en",Referer:"https://solo.trae.ai/"},auth:{combined:!0,header:"Authorization",scheme:"Cloud-IDE-JWT"},usage:{url:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo"},regions:{cn:"https://api.marscode.com",sg:"https://api.trae.ai",us:"https://www.trae.ai"},defaultRegion:"cn"},oauth:{clientId:"ono9krqynydwx5",clientSecret:"-",platform:"trae",pollInterval:1500,loginGuidanceUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetLoginGuidance",tokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",exchangeTokenUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",refreshUrl:"https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken",userInfoUrl:"https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo",refresh:{encoding:"json"}},models:[{id:"auto",name:"Auto (Server Picks)"},{id:"work",name:"Work (Fast)"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3-flash-solo",name:"Gemini 3 Flash"},{id:"minimax-m3",name:"MiniMax M3"},{id:"minimax-m2.7",name:"MiniMax M2.7"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.2",name:"GPT 5.2"}],features:{usage:!0}},{id:"v1m",priority:45,alias:"v1m",aliases:["systemone","jev"],uiAlias:"v1m",display:{name:"v1m (System One)",icon:"psychology",color:"#6366F1",textIcon:"V1",website:"https://v1m.ir",notice:{text:"v1m System One calibrated decision engine. Fast probabilistic evaluations over state and questions.",apiKeyUrl:"https://v1m.ir"}},category:"apikey",authType:"apikey",hasProviderSpecificData:!0,models:[{id:"rev-latest",name:"v1m Rev Latest (Calibrated)",kind:"systemone"},{id:"v1m-decision-engine",name:"v1m Decision Engine",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://v1m.ir/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"venice",priority:115,alias:"venice",aliases:["vn"],uiAlias:"venice",display:{name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"}},category:"apikey",transport:{baseUrl:"https://api.venice.ai/api/v1/chat/completions",validateUrl:"https://api.venice.ai/api/v1/models",thinkingFormat:"openai"},models:[{id:"venice-uncensored-1-2",name:"Venice Uncensored 1.2"},{id:"zai-org-glm-5",name:"GLM-5"},{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-coder-480b-a35b-instruct-turbo",name:"Qwen3 Coder 480B A35B Turbo"},{id:"qwen3-vl-235b-a22b",name:"Qwen3 VL 235B A22B"},{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"hermes-3-llama-3.1-405b",name:"Hermes 3 Llama 3.1 405B"},{id:"mistral-small-3-2-24b-instruct",name:"Mistral Small 3.2 24B"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",kind:"embedding"},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",kind:"embedding"},{id:"text-embedding-qwen3-8b",name:"Qwen3 8B Embedding",kind:"embedding"},{id:"venice-sd35",name:"Venice SD3.5",params:["n","size"],kind:"image"},{id:"flux-2-pro",name:"FLUX.2 Pro",params:["n","size"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (via Venice)",params:["n","size","quality"],kind:"image"}],serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer"},imageConfig:{baseUrl:"https://api.venice.ai/api/v1/images/generations"},modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},passthroughModels:!0},{id:"vercel-ai-gateway",priority:160,alias:"vercel-ai-gateway",aliases:["vercel"],uiAlias:"vercel",display:{name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"}},category:"apikey",transport:{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",thinkingFormat:"openai",retry:{429:2},usage:{url:"https://ai-gateway.vercel.sh/v1/credits"}},serviceKinds:["llm","embedding","image","imageToText","webSearch"],embeddingConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/embeddings"},imageConfig:{baseUrl:"https://ai-gateway.vercel.sh/v1/images/generations"},searchViaChat:{defaultModel:"openai/gpt-4o-mini",pricingUrl:"https://vercel.com/docs/ai-gateway/pricing"},modelsFetcher:{url:"https://ai-gateway.vercel.sh/v1/models",type:"openai"},passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"vertex-partner",priority:260,alias:"vertex-partner",aliases:["vxp"],uiAlias:"vxp",display:{name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"apikey",transport:{baseUrl:"https://aiplatform.googleapis.com"},models:[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}]},{id:"vertex",priority:40,alias:"vertex",aliases:["vx"],uiAlias:"vx",display:{name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},category:"freeTier",transport:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},models:[{id:"gemini-4-argon",name:"Gemini 4 Argon",defaultLocation:"global"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],serviceKinds:["llm","imageToText"]},{id:"volcengine-ark",priority:270,alias:"volcengine-ark",aliases:["ark"],uiAlias:"ark",display:{name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},category:"apikey",transport:{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",headers:{}},models:[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"DeepSeek-V4-Flash",name:"DeepSeek-V4-Flash"},{id:"DeepSeek-V4-Pro",name:"DeepSeek-V4-Pro"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"}]},{id:"voyage-ai",priority:40,alias:"voyage-ai",aliases:["voyage"],uiAlias:"voyage",display:{name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"}},category:"apikey",authType:"apikey",transport:null,models:[{id:"voyage-3-large",name:"Voyage 3 Large",kind:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",kind:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",kind:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",kind:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",kind:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",kind:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",kind:"embedding"}],serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings"}},{id:"windsurf",alias:"ws",uiAlias:"ws",display:{name:"Windsurf",icon:"surfing",color:"#14B8A6",website:"https://windsurf.com",notice:{signupUrl:"https://windsurf.com"}},category:"oauth",authType:"oauth",hasOAuth:!0,authModes:["oauth","apikey"],transport:{baseUrl:"https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage",format:"openai",headers:{"Content-Type":"application/grpc-web+proto",Accept:"application/grpc-web+proto","X-Grpc-Web":"1"},auth:{combined:!0,header:"Authorization",scheme:"Bearer"}},oauth:{clientId:"3GUryQ7ldAeKEuD2obYnppsnmj58eP5u",firebaseApiKey:"AIzaSyDsOl-1XpT5err0Tcn0TFFod1H8gVGIycY",firebaseSignInUrl:"https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword",registerUrl:"https://register.windsurf.com/exa.seat_management_pb.SeatManagementService/RegisterUser",apiServerUrl:"https://server.codeium.com",auth1ApiServerUrl:"https://server.self-serve.windsurf.com",platform:"windsurf",quotaUrl:"https://windsurf.com/_backend/exa.seat_management_pb.SeatManagementService/GetPlanStatus"},models:[{id:"swe-1.6-fast",name:"SWE-1.6 Fast"},{id:"swe-1.6",name:"SWE-1.6"},{id:"swe-1.5-fast",name:"SWE-1.5 Fast"},{id:"swe-1.5",name:"SWE-1.5"},{id:"claude-opus-4.7-max",name:"Claude Opus 4.7 Max"},{id:"claude-opus-4.7-xhigh",name:"Claude Opus 4.7 XHigh"},{id:"claude-opus-4.7-high",name:"Claude Opus 4.7 High"},{id:"claude-opus-4.7-medium",name:"Claude Opus 4.7 Medium"},{id:"claude-opus-4.7-low",name:"Claude Opus 4.7 Low"},{id:"claude-opus-4.7-review",name:"Claude Opus 4.7 Review"},{id:"claude-sonnet-4.6-thinking-1m",name:"Claude Sonnet 4.6 Thinking 1M"},{id:"claude-sonnet-4.6-1m",name:"Claude Sonnet 4.6 1M"},{id:"claude-sonnet-4.6-thinking",name:"Claude Sonnet 4.6 Thinking"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.5-thinking",name:"Claude Opus 4.5 Thinking"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4.5-thinking",name:"Claude Sonnet 4.5 Thinking"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"gpt-5.5-xhigh-fast",name:"GPT-5.5 XHigh Fast"},{id:"gpt-5.5-xhigh",name:"GPT-5.5 XHigh"},{id:"gpt-5.5-high-fast",name:"GPT-5.5 High Fast"},{id:"gpt-5.5-high",name:"GPT-5.5 High"},{id:"gpt-5.5-medium-fast",name:"GPT-5.5 Medium Fast"},{id:"gpt-5.5-medium",name:"GPT-5.5 Medium"},{id:"gpt-5.5-low-fast",name:"GPT-5.5 Low Fast"},{id:"gpt-5.5-low",name:"GPT-5.5 Low"},{id:"gpt-5.5-none-fast",name:"GPT-5.5 None Fast"},{id:"gpt-5.5-none",name:"GPT-5.5 None"},{id:"gpt-5.4-xhigh-fast",name:"GPT-5.4 XHigh Fast"},{id:"gpt-5.4-xhigh",name:"GPT-5.4 XHigh"},{id:"gpt-5.4-high-fast",name:"GPT-5.4 High Fast"},{id:"gpt-5.4-high",name:"GPT-5.4 High"},{id:"gpt-5.4-medium-fast",name:"GPT-5.4 Medium Fast"},{id:"gpt-5.4-medium",name:"GPT-5.4 Medium"},{id:"gpt-5.4-low-fast",name:"GPT-5.4 Low Fast"},{id:"gpt-5.4-low",name:"GPT-5.4 Low"},{id:"gpt-5.4-none-fast",name:"GPT-5.4 None Fast"},{id:"gpt-5.4-none",name:"GPT-5.4 None"},{id:"gpt-5.4-mini-xhigh",name:"GPT-5.4 Mini XHigh"},{id:"gpt-5.4-mini-high",name:"GPT-5.4 Mini High"},{id:"gpt-5.4-mini-medium",name:"GPT-5.4 Mini Medium"},{id:"gpt-5.4-mini-low",name:"GPT-5.4 Mini Low"},{id:"gpt-5.3-codex-xhigh-fast",name:"GPT-5.3 Codex XHigh Fast"},{id:"gpt-5.3-codex-xhigh",name:"GPT-5.3 Codex XHigh"},{id:"gpt-5.3-codex-high-fast",name:"GPT-5.3 Codex High Fast"},{id:"gpt-5.3-codex-high",name:"GPT-5.3 Codex High"},{id:"gpt-5.3-codex-medium-fast",name:"GPT-5.3 Codex Medium Fast"},{id:"gpt-5.3-codex-medium",name:"GPT-5.3 Codex Medium"},{id:"gpt-5.3-codex-low-fast",name:"GPT-5.3 Codex Low Fast"},{id:"gpt-5.3-codex-low",name:"GPT-5.3 Codex Low"},{id:"gpt-5.2-xhigh",name:"GPT-5.2 XHigh"},{id:"gpt-5.2-high",name:"GPT-5.2 High"},{id:"gpt-5.2-medium",name:"GPT-5.2 Medium"},{id:"gpt-5.2-low",name:"GPT-5.2 Low"},{id:"gpt-5.2-none",name:"GPT-5.2 None"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low"},{id:"gemini-3.0-flash-high",name:"Gemini 3 Flash High"},{id:"gemini-3.0-flash-medium",name:"Gemini 3 Flash Medium"},{id:"gemini-3.0-flash-low",name:"Gemini 3 Flash Low"},{id:"gemini-3.0-flash-minimal",name:"Gemini 3 Flash Minimal"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"deepseek-v4",name:"DeepSeek V4"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM-5.1"}]},{id:"xai",priority:280,alias:"xai",display:{name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,transport:{baseUrl:"https://api.x.ai/v1/chat/completions",validateUrl:"https://api.x.ai/v1/models",responsesUrl:"https://api.x.ai/v1/responses",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},models:[{id:"grok-4.6",name:"Grok 4.6"},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.3",name:"Grok 4.3"},{id:"grok-4.2",name:"Grok 4.2"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"},{id:"grok-2-image-1212",name:"Grok 2 Image",params:["n","response_format"],kind:"image"},{id:"grok-imagine-video",name:"Grok Imagine Video",params:["duration","aspect_ratio","resolution"],kind:"video"}],serviceKinds:["llm","imageToText","webSearch","image","video"],imageConfig:{baseUrl:"https://api.x.ai/v1/images/generations",bodyFields:["model","prompt","n","response_format"]},videoConfig:{baseUrl:"https://api.x.ai/v1/videos"},searchViaChat:{defaultModel:"grok-4.20-reasoning",endpoint:"https://api.x.ai/v1/responses",pricingUrl:"https://x.ai/api#pricing"}},{id:"xiaomi-mimo",priority:20,alias:"xiaomi-mimo",aliases:["mimo"],uiAlias:"mimo",display:{name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys",signupUrl:"https://platform.xiaomimimo.com/"}},category:"oauth",authModes:["oauth","apikey"],hasOAuth:!0,serviceKinds:["llm","tts"],transport:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",validateUrl:"https://api.xiaomimimo.com/v1/models"},transports:[{format:"openai",baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",baseUrl:"https://api.xiaomimimo.com/anthropic/v1/messages",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"}],ttsConfig:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"},features:{usage:!0,usageApikey:!0},oauth:{custom:!0,authorizeUrl:"https://platform.xiaomimimo.com/authorize",callbackParam:"u",kn:"mimocode"}},{id:"xiaomi-tokenplan",priority:21,alias:"xiaomi-tokenplan",aliases:["xmtp"],uiAlias:"xmtp",display:{name:"MiMo Token Plan",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://platform.xiaomimimo.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys"}},category:"apikey",hasProviderSpecificData:!0,serviceKinds:["llm","tts"],regions:[{id:"cn",label:"China (中国大陆)"},{id:"sgp",label:"Singapore (新加坡)"},{id:"ams",label:"Amsterdam (阿姆斯特丹)"}],defaultRegion:"cn",transport:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",regions:{cn:"https://token-plan-cn.xiaomimimo.com/v1",sgp:"https://token-plan-sgp.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"},defaultRegion:"cn"},transports:[{format:"openai",auth:{combined:!0,header:"Authorization",scheme:"bearer"}},{format:"claude",headers:{...e},auth:{combined:!0,header:"x-api-key",scheme:"raw"}}],models:[{id:"mimo-v2.6-pro",name:"MiMo V2.6 Pro"},{id:"mimo-v2.6-pro-claude",name:"MiMo V2.6 Pro (Claude Native)",targetFormat:"claude",upstreamModelId:"mimo-v2.6-pro"},{id:"mimo-v2.6-flash",name:"MiMo V2.6 Flash"},{id:"mimo-v2.6-pro-ultraspeed",name:"MiMo V2.6 Pro UltraSpeed"},{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",kind:"tts"},{id:"mimo-v2.5-tts-voiceclone",name:"MiMo V2.5 TTS Voice Clone",kind:"tts"},{id:"mimo-v2.5-tts-voicedesign",name:"MiMo V2.5 TTS Voice Design",kind:"tts"}],ttsConfig:{baseUrl:"https://token-plan-cn.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"}},{id:"xquik",alias:"xquik",display:{name:"Xquik",icon:"tag",color:"#5C3327",textIcon:"XQ",website:"https://docs.xquik.com/api-reference/x/search-tweets",notice:{apiKeyUrl:"https://xquik.com",text:"Searches public X posts. Billing uses 1 Xquik credit per returned post."}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://xquik.com/api/v1/x/tweets/search",validateUrl:"https://xquik.com/api/v1/credits",method:"GET",authType:"apikey",authHeader:"x-api-key",searchTypes:["x"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:6e4,creditsPerResult:1}},{id:"youcom",alias:"youcom",display:{name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"}},category:"apikey",authType:"apikey",serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},{id:"zcode-free",priority:56,alias:"zcode-free",uiAlias:"zcode-free",display:{name:"ZCode Free",icon:"rocket_launch",color:"#7C3AED",textIcon:"ZC",website:"https://zcode.z.ai"},category:"free",noAuth:!0,community:!0,exposeStaticModels:!0,transport:{baseUrl:"http://127.0.0.1:47860/gateway/zcode/v1/messages",format:"claude",noAuth:!0},models:[{id:"glm-5.3-flash",name:"GLM 5.3 Flash"},{id:"glm-5.3",name:"GLM 5.3"}]},{id:"zed",priority:10,alias:"zd",uiAlias:"zd",hidden:!0,display:{name:"Zed",icon:"code",color:"#A855F7",website:"https://zed.dev",notice:{signupUrl:"https://zed.dev/native_app_signin"}},category:"oauth",authType:"oauth",hasOAuth:!0,transport:{baseUrl:"https://cloud.zed.dev/completions",format:"openai",forceStream:!0,headers:{"content-type":"application/json"},auth:{combined:!0,header:"Authorization",scheme:"<user_id> <access_token>"},usage:{url:"https://cloud.zed.dev/client/users/me"},modelsUrl:"https://cloud.zed.dev/models"},models:[],passthroughModels:!0,oauth:{authorizeUrl:"https://zed.dev/native_app_signin",platform:"zed",rsaKeyExchange:!0},features:{usage:!0}},{id:"modelscope",priority:69,alias:"modelscope",aliases:["ms"],display:{name:"ModelScope",icon:"layers",color:"#624AFF",textIcon:"MS",website:"https://modelscope.cn",notice:{apiKeyUrl:"https://modelscope.cn/my/myaccesstoken"}},category:"apikey",transport:{baseUrl:"https://api-inference.modelscope.cn/v1/chat/completions",validateUrl:"https://api-inference.modelscope.cn/v1/chat/completions"},models:[{id:"deepseek-ai/DeepSeek-V4.1-Flash",name:"DeepSeek V4.1 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Flash",name:"DeepSeek V4 Flash",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-V4-Pro-0813",name:"DeepSeek V4 Pro (0813)",contextWindow:1e6,maxOutput:384e3},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1",contextWindow:128e3,maxOutput:64e3},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3",contextWindow:128e3,maxOutput:64e3},{id:"Qwen/Qwen3.8-Flash-Next",name:"Qwen 3.8 Flash Next",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.8-27B",name:"Qwen 3.8 27B",contextWindow:262144,maxOutput:64e3},{id:"Qwen/Qwen3.5-397B",name:"Qwen 3.5 397B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen3.5-122B",name:"Qwen 3.5 122B",contextWindow:1e6,maxOutput:65536},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B Instruct",contextWindow:1e6,maxOutput:64e3},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B Instruct",contextWindow:262144,maxOutput:64e3},{id:"Qwen/QwQ-32B",name:"QwQ 32B (Reasoning)",contextWindow:131072,maxOutput:64e3},{id:"ZhipuAI/glm-5.2",name:"GLM 5.2",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3",name:"GLM 5.3",contextWindow:1e6,maxOutput:131072},{id:"ZhipuAI/glm-5.3-flash",name:"GLM 5.3 Flash",contextWindow:1e6,maxOutput:131072},{id:"MiniMax/MiniMax-M3",name:"MiniMax M3",contextWindow:1e6,maxOutput:131072},{id:"Moonshot/Kimi-K3",name:"Kimi K3",contextWindow:1048576,maxOutput:131072},{id:"stepfun-ai/Step-3.7-Flash",name:"Step 3.7 Flash",contextWindow:128e3,maxOutput:64e3},{id:"baidu/ERNIE-4.5-300B",name:"ERNIE 4.5 300B",contextWindow:2e5,maxOutput:64e3}],passthroughModels:!0,features:{usage:!0,usageApikey:!0}},{id:"codiv",priority:44,alias:"codiv",aliases:["cdv"],display:{name:"Codiv",icon:"psychology",color:"#101D30",textIcon:"CD",website:"https://codiv.ai",notice:{text:"Codiv serves open System One decision models that answer typed questions with calibrated probabilities, plus DiffusionGemma text generation.",apiKeyUrl:"https://codiv.ai/dashboard"}},category:"apikey",authType:"apikey",transport:{baseUrl:"https://api.codiv.ai/v1/chat/completions",validateUrl:"https://api.codiv.ai/v1/models"},models:[{id:"openjev-latest",name:"OpenJev Latest (Calibrated)",kind:"systemone"},{id:"openjev-0.1",name:"OpenJev 0.1",kind:"systemone"},{id:"laya-1.0",name:"Laya 1.0 (ModernBERT)",kind:"systemone"},{id:"verdict-1.4",name:"Verdict 1.4 (ModernBERT)",kind:"systemone"},{id:"clm-v0.1",name:"CLM v0.1 (Qwen3-8B)",kind:"systemone"},{id:"jevk5-0.3",name:"JevK5 v0.3 (Qwen3.5-4B)",kind:"systemone"},{id:"clef-flash-1.0",name:"Clef Flash 1.0 (Cloudflare)",kind:"systemone"},{id:"diffusiongemma-26b",name:"DiffusionGemma 26B"}],serviceKinds:["llm","systemone"],systemoneConfig:{baseUrl:"https://api.codiv.ai/v1/systemone",authType:"apikey",authHeader:"bearer"}},{id:"thx",alias:"thx",aliases:["hal-x","halx"],category:"apikey",display:{name:"THX-01 (HAL-X)",icon:"psychology",color:"#0EA5E9",textIcon:"TX",website:"https://api.hal-x.ai",notice:{text:"THX-01 decision model: calibrated answers to typed questions in ~10 ms per request.",apiKeyUrl:"https://api.hal-x.ai"}},models:[{id:"thx-01",name:"THX-01",kind:"systemone"}],serviceKinds:["systemone"],systemoneConfig:{baseUrl:"https://api.hal-x.ai/v1/systemone"}},{id:"inception",priority:85,alias:"inception",aliases:["inceptionlabs","mercury"],uiAlias:"inception",display:{name:"Inception Labs",icon:"cyclone",color:"#0EA5E9",textIcon:"IN",website:"https://www.inceptionlabs.ai",notice:{text:"Diffusion LLMs at 1000+ tok/s. New API keys include 100M free tokens. mercury-voice requires enterprise access.",apiKeyUrl:"https://platform.inceptionlabs.ai/api-keys"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://api.inceptionlabs.ai/v1/chat/completions",validateUrl:"https://api.inceptionlabs.ai/v1/models",thinkingFormat:"openai"},models:[{id:"mercury-3",name:"Mercury 3",contextWindow:1e6,maxOutput:131072,reasoning:!0},{id:"mercury-2.5",name:"Mercury 2.5 (legacy)",contextWindow:26e4,maxOutput:65536,reasoning:!0}],serviceKinds:["llm"]},{id:"oxion",alias:"oxion",aliases:["oxionai"],display:{name:"Oxion AI",icon:"bolt",color:"#3060F0",textIcon:"OX",website:"https://oxionai.com",notice:{text:"Prepaid USD-credit OpenAI-compatible aggregator. Keys and balance live in the web dashboard (no billing API). Third-party reseller — treat as untrusted for sensitive traffic.",apiKeyUrl:"https://oxionai.com/dashboard"}},category:"apikey",authType:"apikey",authModes:["apikey"],transport:{baseUrl:"https://oxionai.com/v1/chat/completions",validateUrl:"https://oxionai.com/v1/models",thinkingFormat:"openai"},serviceKinds:["llm"],models:[{id:"claude-fable-5",name:"Claude Fable 5"},{id:"claude-fable-5.1",name:"Claude Fable 5.1"},{id:"claude-mythos-preview",name:"Claude Mythos Preview"},{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"},{id:"claude-opus-5",name:"Claude Opus 5"},{id:"claude-opus-5.5",name:"Claude Opus 5.5"},{id:"claude-sonnet-5",name:"Claude Sonnet 5"},{id:"deepseek-v4-flash-0731",name:"DeepSeek V4 Flash 0731"},{id:"deepseek-v4-pro-0813",name:"DeepSeek V4 Pro 0813"},{id:"deepseek-v4-pro-max",name:"DeepSeek V4 Pro Max"},{id:"gemma-2-2b",name:"Gemma 2 2B"},{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.6-flash",name:"Gemini 3.6 Flash"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"glm-5.2",name:"GLM-5.2"},{id:"glm-5.3",name:"GLM-5.3"},{id:"gpt-5.5",name:"GPT-5.5"},{id:"gpt-5.5-pro",name:"GPT-5.5 Pro"},{id:"gpt-5.6-luna",name:"GPT-5.6 Luna"},{id:"gpt-5.6-sol",name:"GPT-5.6 Sol"},{id:"gpt-5.6-terra",name:"GPT-5.6 Terra"},{id:"grok-4.5",name:"Grok 4.5"},{id:"grok-4.6",name:"Grok 4.6"},{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k3",name:"Kimi K3"},{id:"muse-spark-1.1",name:"Muse Spark 1.1"},{id:"qwen3.7-max",name:"Qwen 3.7 Max"},{id:"qwen3.8-27b",name:"Qwen 3.8 27B"},{id:"qwen3.8-max",name:"Qwen 3.8 Max"},{id:"seed-2.1-pro",name:"Seed 2.1 Pro"},{id:"seed-2.1-turbo",name:"Seed 2.1 Turbo"}]},{id:"veoaifree-web",priority:160,alias:"veo-free",display:{name:"Veo AI Free Web",icon:"movie",color:"#EA4335",textIcon:"VF",website:"https://veoaifree.com"},category:"apikey",authType:"none",noAuth:!0,authHint:"No credentials needed — veoaifree.com free tier (about 6 requests/hour per IP)",transport:null,serviceKinds:["image","video"],hiddenKinds:["video"],models:[{id:"veo",name:"VEO 3.1 (Free)",params:["seconds","size"],kind:"video"},{id:"seedance",name:"Seedance (Free)",params:["seconds","size"],kind:"video"},{id:"nano-banana",name:"Nano Banana (Free)",params:["n","size"],kind:"image"}]},{id:"uc-web",priority:180,alias:"uc",display:{name:"UC Web",icon:"explicit",color:"#F43F5E",textIcon:"UC",website:"https://uncensored.com"},category:"webCookie",authType:"cookie",serviceKinds:["image","video"],hiddenKinds:["video"],authHint:"Paste your full uncensored.com Cookie header (must include the __client cookie) from a logged-in session — image + video are un-metered on the web plan",transport:{baseUrl:"https://internal.chatuncensored.ai",format:"openai",authType:"cookie"},models:[{id:"seedream-v4.5",name:"Seedream v4.5 (UC)",params:["n","size"],kind:"image"},{id:"seedream-v5",name:"Seedream v5 (UC)",params:["n","size"],kind:"image"},{id:"seedream-v5-flash",name:"Seedream v5 Flash (UC)",params:["n","size","resolution"],kind:"image"},{id:"nano-banana-pro-ultra",name:"Nano Banana Pro Ultra (UC)",params:["n","size","resolution"],kind:"image"},{id:"nano-banana-pro",name:"Nano Banana Pro (UC)",params:["n","size","resolution"],kind:"image"},{id:"nano-banana",name:"Nano Banana (UC)",params:["n","size"],kind:"image"},{id:"nano-banana-2",name:"Nano Banana 2 (UC)",params:["n","size","resolution"],kind:"image"},{id:"gpt-image",name:"GPT Image 1.5 (UC)",params:["n","size","quality"],kind:"image"},{id:"gpt-image-2",name:"GPT Image 2 (UC)",params:["n","size"],kind:"image"},{id:"gpt-image-2.5-flare",name:"GPT Image 2.5 Flare (UC)",params:["n","size"],kind:"image"},{id:"gpt-image-2.5-sunburst",name:"GPT Image 2.5 Sunburst (UC)",params:["n","size"],kind:"image"},{id:"wan-2.6-image",name:"Wan 2.6 Image (UC)",params:["n","size"],kind:"image"},{id:"wan-2.7-text-to-image",name:"Wan 2.7 (UC)",params:["n","size"],kind:"image"},{id:"wan-2.7-text-to-image-pro",name:"Wan 2.7 Pro (UC)",params:["n","size"],kind:"image"},{id:"prefect-pony-xl",name:"Prefect Pony XL (UC)",params:["n","size"],kind:"image"},{id:"1.0",name:"Flux.1 (UC)",params:["n","size"],kind:"image"},{id:"1.1",name:"Flux.1.1 (UC)",params:["n","size"],kind:"image"},{id:"2.0",name:"Flux.2 (UC)",params:["n","size"],kind:"image"},{id:"flux-2-max",name:"Flux 2 Max (UC)",params:["n","size"],kind:"image"},{id:"SDXL",name:"SDXL Uncensored (UC)",params:["n","size"],kind:"image"},{id:"realism",name:"Realism (UC)",params:["n","size"],kind:"image"},{id:"realism-2",name:"Realism 2 (UC)",params:["n","size"],kind:"image"},{id:"z-image-turbo",name:"Z-Image Turbo (UC)",params:["n","size"],kind:"image"},{id:"default",name:"Video Standard (UC)",params:["seconds","size","resolution","image"],kind:"video"},{id:"turbo",name:"Video Turbo (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.2-uncensored",name:"Wan Ultra Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.2-uncensored-v2",name:"Wan Ultra Uncensored v2 (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.6",name:"Wan 2.6 Video (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.6-ultra",name:"Wan 2.6 Ultra Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.7",name:"Wan 2.7 Video (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.7-pro",name:"Wan 2.7 Pro Video (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.7-uncensored",name:"Wan 2.7 Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-2.7-uncensored-v2",name:"Wan 2.7 Uncensored v2 (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-3.0",name:"Wan 3.0 (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-3.0-uncensored",name:"Wan 3.0 Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"wan-3.0-uncensored-pro",name:"Wan 3.0 Uncensored Pro (UC)",params:["seconds","size","image"],kind:"video"},{id:"sora-2",name:"Sora 2 (UC)",params:["seconds","size","image"],kind:"video"},{id:"sora-2-pro",name:"Sora 2 Pro (UC)",params:["seconds","size","image"],kind:"video"},{id:"grok-imagine-video",name:"Grok Imagine Video (UC)",params:["seconds","size","image"],kind:"video"},{id:"bytedance-seedance-2.0",name:"Seedance 2.0 (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-2.0-fast",name:"Seedance 2.0 Fast (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-2.0-uncensored",name:"Seedance 2.0 Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-2.0-fast-uncensored",name:"Seedance 2.0 Fast Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-2.0-mini-uncensored",name:"Seedance 2.0 Mini Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-2.0-mini-turbo",name:"Seedance 2.0 Mini Turbo Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-v1.5-pro-uncensored",name:"Seedance v1.5 Pro Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-2.5-uncensored",name:"Seedance 2.5 Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"seedance-2.5",name:"Seedance 2.5 (UC)",params:["seconds","size","image"],kind:"video"},{id:"vidu-q3-uncensored",name:"Vidu Q3 Uncensored (UC)",params:["seconds","size","image"],kind:"video"},{id:"av-gen-v2",name:"AV-Gen v2 with audio (UC)",params:["seconds","size","image"],kind:"video"},{id:"cosmos-predict",name:"Cosmos Predict 2.5 (UC)",params:["seconds","size","image"],kind:"video"},{id:"minimax-h3",name:"MiniMax H3 (UC)",params:["seconds","size","image"],kind:"video"},{id:"happyhorse-1.0",name:"Happy Horse 1.0 (UC)",params:["seconds","size","image"],kind:"video"}],passthroughModels:!0},{id:"gemini-web",priority:220,alias:"gemini-web",aliases:["gweb"],uiAlias:"gemini-web",hidden:!0,display:{name:"Gemini Web",icon:"auto_awesome",color:"#4285F4",textIcon:"GW",website:"https://gemini.google.com"},category:"webCookie",authType:"cookie",serviceKinds:["image"],authHint:"Paste your __Secure-1PSID (and __Secure-1PSIDTS) cookie value(s) from gemini.google.com",transport:{baseUrl:"https://gemini.google.com/app",format:"openai",authType:"cookie"},models:[{id:"gemini-3.1-pro",name:"Gemini 3.1 Pro"},{id:"gemini-3.7-flash",name:"Gemini 3.7 Flash"},{id:"gemini-3.1-flash-lite",name:"Gemini 3.1 Flash-Lite"},{id:"gemini-image",name:"Gemini Image (web)",params:["n","size"],kind:"image"}]},{id:"muse-web",priority:220,alias:"muse-web",aliases:["mu"],uiAlias:"muse-web",hidden:!0,display:{name:"Muse Web",icon:"auto_awesome",color:"#7C3AED",textIcon:"MU",website:"https://muse.ai"},category:"webCookie",authType:"cookie",serviceKinds:["image","video"],hiddenKinds:["video"],authHint:"Paste your muse.ai cookies (hatch_sess=...; hatch_gw=...; hatch_vml=...; hatch_native_auth_device=...) from a logged-in muse.ai session",transport:{baseUrl:"https://muse.ai",format:"openai",authType:"cookie"},models:[{id:"muse-chat",name:"Muse Chat"},{id:"muse-image",name:"Muse Image",params:["n","size"],kind:"image"},{id:"muse-video",name:"Muse Video",params:["size","seconds","image"],kind:"video"}]},{id:"chatgpt-web",priority:220,alias:"chatgpt-web",aliases:["cg"],uiAlias:"chatgpt-web",hidden:!0,display:{name:"ChatGPT Web",icon:"auto_awesome",color:"#10A37F",textIcon:"CG",website:"https://chatgpt.com"},category:"webCookie",authType:"cookie",serviceKinds:["image"],authHint:"Paste your chatgpt.com cookie header containing __Secure-next-auth.session-token (or a full Playwright storage-state JSON)",transport:{baseUrl:"https://chatgpt.com",format:"openai",authType:"cookie"},models:[{id:"gpt-5-6",name:"GPT-5.6 Sol — Instant"},{id:"gpt-5-6-thinking",name:"GPT-5.6 Sol — Thinking",supportsReasoning:!0},{id:"gpt-5-6-pro",name:"GPT-5.6 Sol — Pro",supportsReasoning:!0},{id:"gpt-5.6-luna-free",name:"GPT-5.6 Luna — Free"},{id:"gpt-5.6-luna-free-thinking",name:"GPT-5.6 Luna — Free Thinking",supportsReasoning:!0},{id:"gpt-5-5-instant",name:"GPT-5.5 — Instant"},{id:"gpt-5-5-thinking",name:"GPT-5.5 — Thinking",supportsReasoning:!0},{id:"gpt-5-5-pro",name:"GPT-5.5 — Pro",supportsReasoning:!0},{id:"gpt-image-2",name:"GPT Image 2 (web)",params:["n","size"],kind:"image"}]}]},96664:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(93250);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:`/${c}`}},97010:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ApiError:function(){return t},COOKIE_NAME_PRERENDER_BYPASS:function(){return n},COOKIE_NAME_PRERENDER_DATA:function(){return o},RESPONSE_LIMIT_DEFAULT:function(){return p},SYMBOL_CLEARED_COOKIES:function(){return r},SYMBOL_PREVIEW_DATA:function(){return q},checkIsOnDemandRevalidate:function(){return m},clearPreviewData:function(){return s},redirect:function(){return l},sendError:function(){return u},sendStatusCode:function(){return k},setLazyProp:function(){return v},wrapApiHandler:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(36023),g=c(96100),h=c(12726),i=c(88026);function j(a,b){return(...c)=>((0,h.getTracer)().setRootSpanAttribute("next.route",a),(0,h.getTracer)().trace(i.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function k(a,b){return a.statusCode=b,a}function l(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function m(a,b){if("function"==typeof a.get){let c=f.HeadersAdapter.from(a);return{isOnDemandRevalidate:c.get(g.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}return{isOnDemandRevalidate:a[g.PRERENDER_REVALIDATE_HEADER]===b.previewModeId,revalidateOnlyGenerated:a.hasOwnProperty(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let n="__prerender_bypass",o="__next_preview_data",p=4194304,q=Symbol(o),r=Symbol(n);function s(a,b={}){if(r in a)return a;let{serialize:d}=c(19560),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(n,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,r,{value:!0,enumerable:!1}),a}class t extends Error{constructor(a,b){super(b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}),this.statusCode=a}}function u(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function v({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}},97538:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js")},97645:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(73346))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},97757:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getClientComponentLoaderMetrics:function(){return i},wrapClientComponentLoader:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=0,g=0;function h(a,b){return"performance"in globalThis&&(process.env.NEXT_OTEL_PERFORMANCE_PREFIX||b)?{require:(...b)=>{let c=performance.now();0===e&&(e=c);try{return g+=1,a.__next_app__.require(...b)}finally{f+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{f+=performance.now()-c}),d}}:a.__next_app__}function i(a={}){let b=0===e?void 0:{clientComponentLoadStart:e,clientComponentLoadTimes:f,clientComponentLoadCount:g};return a.reset&&(e=0,f=0,g=0),b}},98345:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e={CachedRouteKind:function(){return g},IncrementalCacheKind:function(){return h}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});var g=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.REDIRECT="REDIRECT",c.IMAGE="IMAGE",c),h=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.IMAGE="IMAGE",d)},98617:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(67301),e=c(93250);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,`/${b.toLowerCase()}`))?a:(0,d.addPathPrefix)(a,`/${b}`)}},98995:a=>{"use strict";a.exports=require("node:module")},99751:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={fromNodeOutgoingHttpHeaders:function(){return g},normalizeNextQueryParam:function(){return k},splitCookiesString:function(){return h},toNodeOutgoingHttpHeaders:function(){return i},validateURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(96100);function g(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function h(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h<a.length&&/\s/.test(a.charAt(h));)h+=1;return h<a.length}for(;h<a.length;){for(b=h,f=!1;i();)if(","===(c=a.charAt(h))){for(d=h,h+=1,i(),e=h;h<a.length&&"="!==(c=a.charAt(h))&&";"!==c&&","!==c;)h+=1;h<a.length&&"="===a.charAt(h)?(f=!0,h=e,g.push(a.substring(b,d)),b=h):h=d+1}else h+=1;(!f||h>=a.length)&&g.push(a.substring(b,a.length))}return g}function i(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...h(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function j(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function k(a){for(let b of[f.NEXT_QUERY_PARAM_PREFIX,f.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=86231);module.exports=c})();
|