@techysy/10router 1.6.0 → 1.6.4-test.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +41 -39
- 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/routes-manifest.json +12 -0
- 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 +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/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 +2 -2
- 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 +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 +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +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 +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 +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 +2 -2
- 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 +2 -2
- 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 +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 +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 +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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +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 +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 +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 +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 +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 +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 +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/loomy/sms-login/route.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/loomy/sms-login/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/loomy/sms-login/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/loomy/sms-send/route.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/loomy/sms-send/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/oauth/loomy/sms-send/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/oauth/qoder/checkin/route.js +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 +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 +2 -2
- 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 +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 +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 +2 -2
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/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 +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
- 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 +2 -2
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +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 +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 +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/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 +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 +2 -2
- 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 +1 -1
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +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 +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +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 +41 -39
- package/app/.next-cli-build/server/chunks/1329.js +1 -1
- 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/241.js +1 -1
- package/app/.next-cli-build/server/chunks/2557.js +1 -1
- package/app/.next-cli-build/server/chunks/318.js +8 -9
- package/app/.next-cli-build/server/chunks/{5625.js → 3389.js} +1 -1
- package/app/.next-cli-build/server/chunks/3662.js +1 -1
- package/app/.next-cli-build/server/chunks/3771.js +1 -0
- 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/4689.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/5225.js +1 -0
- package/app/.next-cli-build/server/chunks/532.js +56 -0
- 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/6103.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/6844.js +1 -1
- package/app/.next-cli-build/server/chunks/6922.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/8370.js +7 -7
- package/app/.next-cli-build/server/chunks/8410.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/8658.js +1 -1
- package/app/.next-cli-build/server/chunks/8775.js +1 -1
- package/app/.next-cli-build/server/chunks/8895.js +12 -12
- 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 +6 -6
- 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-25956f9bfbc2e6da.js +1 -0
- package/app/.next-cli-build/static/chunks/5497-100281ed6ce1f83b.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-f88e03168e9e8695.js +70 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-06a1bcff8b1400de.js +14 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-ae18cdfbbd2df1ec.js +1 -0
- package/app/.next-cli-build/static/chunks/app/_global-error/{page-fb1f157de1c4ca66.js → page-532e70b87e3cfbaa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/{route-fb1f157de1c4ca66.js → route-532e70b87e3cfbaa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-fb1f157de1c4ca66.js → route-532e70b87e3cfbaa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-fb1f157de1c4ca66.js → route-532e70b87e3cfbaa.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/external-quota/[source]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/gateway-probe/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/caps/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/claim-compensation/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/loomy/sms-login/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/loomy/sms-send/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/security/status/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/rerank/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shell-update/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/landing/page-ff4bd46662925378.js +1 -0
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-532e70b87e3cfbaa.js +1 -0
- package/app/.next-cli-build/static/css/{17275fac82e1641e.css → 63c4d9ca82aea954.css} +1 -1
- package/app/.next-cli-build/static/ilH6FH_DABFzbJ122SgT6/_buildManifest.js +1 -0
- package/app/package.json +71 -71
- package/app/public/i18n/changelog/en.md +569 -513
- package/app/public/i18n/changelog/zh-CN.md +566 -511
- package/app/public/i18n/changelog/zh-TW.md +568 -513
- package/app/public/i18n/literals/zh-CN.json +2139 -2107
- package/app/public/i18n/literals/zh-TW.json +11 -0
- package/app/public/providers/doubao.svg +14 -0
- package/app/public/providers/loomy.png +0 -0
- package/app/public/providers/nace.png +0 -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/app/src/shared/utils/apiKey.js +17 -1
- package/package.json +61 -61
- 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/3500.js +0 -56
- 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/1q0xTGDYtD52dGw4uiY4-/_buildManifest.js +0 -1
- 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/media-providers/[kind]/[id]/page-6db03f8140121a40.js +0 -70
- 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/(dashboard)/dashboard/providers/page-1e4e3f6f20152da1.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-profiles/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-profiles/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/external-quota/[source]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/gateway-probe/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/caps/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/network/egress-region/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/claim-compensation/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/qoder/checkin/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/qoder-cn/checkin/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-kill/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/desktop-status/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/security/status/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/claude-reset/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/dashboard/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/quotas/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/rerank/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/systemone/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shell-update/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/landing/page-c6c3a32dd06bc907.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-fb1f157de1c4ca66.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-fb1f157de1c4ca66.js +0 -1
- /package/app/.next-cli-build/static/{1q0xTGDYtD52dGw4uiY4- → ilH6FH_DABFzbJ122SgT6}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=6960,exports.ids=[6960],exports.modules={267:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429),g=c(51126),h=c(99258);let i=a=>({en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (Brasil)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (Portugal)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},km:{name:"ខ្មែរ",flag:"\uD83C\uDDF0\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"},fa:{name:"فارسی",flag:"\uD83C\uDDEE\uD83C\uDDF7"}})[a]||{name:a,flag:"\uD83C\uDF10"};function j({className:a="",isOpen:b,onClose:c,hideTrigger:k=!1}){let[l,m]=(0,e.useState)("en"),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=(0,e.useRef)(null),s="boolean"==typeof b,t=s?b:p,u=(a,b=l)=>{s?!a&&c&&c(b):q(a)},v=async a=>{if(a!==l&&!n){o(!0);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:a})}),await (0,h.wn)(),m(a),u(!1,a)}catch(a){console.error("Failed to set locale:",a)}finally{o(!1)}}};return(0,d.jsxs)("div",{className:a,children:[!k&&(0,d.jsxs)("button",{onClick:()=>u(!t),disabled:n,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-text-muted hover:text-text-main hover:bg-surface/60 transition-colors",title:"Language","data-i18n-skip":"true",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:i(l).name}),(0,d.jsx)("span",{className:"text-lg",children:i(l).flag})]}),t&&(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>u(!1)}),(0,d.jsxs)("div",{ref:r,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-2xl flex flex-col max-h-[80vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,d.jsx)("button",{onClick:()=>u(!1),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,d.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:g.YZ.map(a=>{let b=l===a,c=i(a);return(0,d.jsxs)("button",{onClick:()=>v(a),disabled:n,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${b?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${n?"opacity-70 cursor-wait":""}`,title:c.name,children:[(0,d.jsx)("span",{className:"text-2xl",children:c.flag}),(0,d.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:c.name}),b&&(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},a)})})})]})]}),document.body)]})}},818:(a,b,c)=>{c.d(b,{h:()=>d});let d={en:"\uD83C\uDDFA\uD83C\uDDF8",vi:"\uD83C\uDDFB\uD83C\uDDF3","zh-CN":"\uD83C\uDDE8\uD83C\uDDF3","zh-TW":"\uD83C\uDDF9\uD83C\uDDFC",ja:"\uD83C\uDDEF\uD83C\uDDF5","pt-BR":"\uD83C\uDDE7\uD83C\uDDF7","pt-PT":"\uD83C\uDDF5\uD83C\uDDF9",ko:"\uD83C\uDDF0\uD83C\uDDF7",es:"\uD83C\uDDEA\uD83C\uDDF8",de:"\uD83C\uDDE9\uD83C\uDDEA",fr:"\uD83C\uDDEB\uD83C\uDDF7",he:"\uD83C\uDDEE\uD83C\uDDF1",ar:"\uD83C\uDDF8\uD83C\uDDE6",ru:"\uD83C\uDDF7\uD83C\uDDFA",pl:"\uD83C\uDDF5\uD83C\uDDF1",cs:"\uD83C\uDDE8\uD83C\uDDFF",nl:"\uD83C\uDDF3\uD83C\uDDF1",tr:"\uD83C\uDDF9\uD83C\uDDF7",uk:"\uD83C\uDDFA\uD83C\uDDE6",tl:"\uD83C\uDDF5\uD83C\uDDED",id:"\uD83C\uDDEE\uD83C\uDDE9",th:"\uD83C\uDDF9\uD83C\uDDED",km:"\uD83C\uDDF0\uD83C\uDDED",hi:"\uD83C\uDDEE\uD83C\uDDF3",bn:"\uD83C\uDDE7\uD83C\uDDE9",ur:"\uD83C\uDDF5\uD83C\uDDF0",ro:"\uD83C\uDDF7\uD83C\uDDF4",sv:"\uD83C\uDDF8\uD83C\uDDEA",it:"\uD83C\uDDEE\uD83C\uDDF9",el:"\uD83C\uDDEC\uD83C\uDDF7",hu:"\uD83C\uDDED\uD83C\uDDFA",fi:"\uD83C\uDDEB\uD83C\uDDEE",da:"\uD83C\uDDE9\uD83C\uDDF0",no:"\uD83C\uDDF3\uD83C\uDDF4",fa:"\uD83C\uDDEE\uD83C\uDDF7"}},906:(a,b,c)=>{c.d(b,{MenuItem:()=>i,Popover:()=>h});var d=c(48249),e=c(49885),f=c.n(e),g=c(71404);function h({open:a,onClose:b,align:c="left",className:e,children:f}){return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"fixed inset-0 z-30 cursor-default bg-transparent","aria-label":"Close",onClick:b}),(0,d.jsx)("div",{className:(0,g.cn)("absolute z-40 mt-1.5 overflow-hidden rounded-xl border border-black/10 bg-surface/95 p-1 shadow-xl shadow-black/10 backdrop-blur dark:border-white/10","right"===c?"right-0":"left-0",e),children:f})]}):null}function i({selected:a=!1,onClick:b,icon:c,children:e,hint:f,disabled:h=!1}){return(0,d.jsxs)("button",{type:"button",onClick:b,disabled:h,className:(0,g.cn)("flex w-full items-start gap-2.5 rounded-lg px-2.5 py-2 text-left text-xs transition-colors disabled:opacity-50",a?"bg-primary/10 text-primary":"text-text hover:bg-black/[0.04] dark:hover:bg-white/[0.06]"),children:[c,(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block font-medium",children:e}),f?(0,d.jsx)("span",{className:"mt-0.5 block text-[11px] text-text-muted",children:f}):null]}),a?(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none text-[14px]",children:"check"}):null]})}h.propTypes={open:f().bool,onClose:f().func.isRequired,align:f().oneOf(["left","right"]),className:f().string,children:f().node},i.propTypes={selected:f().bool,onClick:f().func,icon:f().node,children:f().node,hint:f().node,disabled:f().bool}},3236:(a,b,c)=>{c.d(b,{default:()=>m});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(42118),i=c(51817),j=c(95145),k=c(99258);function l({icon:a,label:b,onClick:c,href:e,trailing:f,danger:g}){let h=`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${g?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,i=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${g?"":"text-text-muted"}`,children:a}),(0,d.jsx)("span",{className:"flex-1 text-left",children:b}),f&&(0,d.jsx)("span",{className:"text-base",children:f})]});return e?(0,d.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:h,onClick:c,children:i}):(0,d.jsx)("button",{onClick:c,className:h,children:i})}function m({onLogout:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),{theme:r,toggleTheme:s}=(0,h.D)(),t=(0,e.useRef)(null),u=async()=>{q(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch(a){}q(!1),o(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",ref:t,children:[(0,d.jsx)("button",{onClick:()=>c(a=>!a),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:(0,k.Tl)("Menu"),children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),b&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-60 bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl z-50 animate-in fade-in zoom-in-95 duration-150 overflow-hidden py-1",children:[(0,d.jsx)(l,{icon:"history",label:(0,k.Tl)("Change Log"),onClick:()=>{c(!1),g(!0)}}),(0,d.jsx)(l,{icon:"system"===r?"routine":"light"===r?"light_mode":"dark_mode",label:(0,k.Tl)("system"===r?"Theme: system":"light"===r?"Theme: light":"Theme: dark"),onClick:()=>{s(),c(!1)}}),(0,d.jsx)(l,{icon:"power_settings_new",label:(0,k.Tl)("Shutdown"),danger:!0,onClick:()=>{c(!1),o(!0)}}),(0,d.jsx)(l,{icon:"logout",label:(0,k.Tl)("Logout"),danger:!0,onClick:()=>{c(!1),a()}})]})]}),(0,d.jsx)(i.default,{isOpen:f,onClose:()=>g(!1)}),(0,d.jsx)(j.ConfirmModal,{isOpen:n,onClose:()=>o(!1),onConfirm:u,title:(0,k.Tl)("Close Proxy"),message:(0,k.Tl)("Are you sure you want to close the proxy server?"),confirmText:(0,k.Tl)("Close"),cancelText:(0,k.Tl)("Cancel"),variant:"danger",loading:p})]})}l.propTypes={icon:g().string.isRequired,label:g().string.isRequired,onClick:g().func,href:g().string,trailing:g().node,danger:g().bool},m.propTypes={onLogout:g().func.isRequired}},4770:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(71404),f=c(99258);function g({label:a,options:b=[],value:c,onChange:h,placeholder:i="Select an option",error:j,hint:k,disabled:l=!1,required:m=!1,className:n,selectClassName:o,...p}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex flex-col gap-1.5",n),children:[a&&(0,d.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[a,m&&(0,d.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("select",{value:c,onChange:h,disabled:l,className:(0,e.cn)("w-full py-2.5 px-3 pr-10 text-sm text-text-main","bg-surface-2 border border-transparent rounded-[10px] appearance-none","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",j&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",o),...p,children:[(0,d.jsx)("option",{value:"",disabled:!0,children:(0,f.Tl)(i)}),b.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),(0,d.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),j&&(0,d.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),j]}),k&&!j&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:k})]})}},5291:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>m});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(79346),j=c(86209),k=c(56110),l=a([i,j,k]);function m({isOpen:a,providerInfo:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)(null),[l,n]=(0,f.useState)(null),[o,p]=(0,f.useState)(null),q=(0,f.useCallback)((a,b)=>{"builder-id"===a?h("builder-id"):"idc"===a?(h("idc"),p(b)):"social"===a?(h("social"),n(b.provider)):("import"===a||"api-key"===a)&&c?.()},[c]),r=()=>{h(null),n(null),p(null)};return g?"builder-id"===g||"idc"===g?(0,e.jsx)(i.default,{isOpen:a,provider:"kiro",providerInfo:b,onSuccess:()=>{h(null),p(null),c?.(),d?.()},onClose:r,idcConfig:o}):"social"===g&&l?(0,e.jsx)(k.default,{isOpen:a,provider:l,onSuccess:()=>{h(null),n(null),c?.(),d?.()},onClose:r}):null:(0,e.jsx)(j.default,{isOpen:a,onMethodSelect:q,onClose:d})}[i,j,k]=l.then?(await l)():l,m.propTypes={isOpen:h().bool.isRequired,providerInfo:h().shape({name:h().string}),onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},8210:(a,b,c)=>{c.d(b,{default:()=>j,f:()=>i});var d=c(48249),e=c(67484),f=c(2116),g=c.n(f),h=c(99258);let i="10r:security-status-changed";function j(){let[a,b]=(0,e.useState)(null);if(!a)return null;let c=!a.hasPassword&&!a.bootstrapPassword&&!a.ssoConfigured,f=!1===a.requireLogin;if(!c&&!f||f&&a.hideLoginOffBanner)return null;let i=f?(0,h.Tl)("Log-in check is off — anyone who can reach this port can manage every provider, key and credential."):(0,h.Tl)("No dashboard password is set — the dashboard opens on this machine only. Set one on the Settings page.");return(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b bg-red-500/10 border-red-500/20 text-red-600 dark:text-red-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] shrink-0",children:"warning"}),(0,d.jsx)("p",{className:"text-xs flex-1",children:i}),(0,d.jsx)(g(),{href:"/dashboard/profile",className:"text-xs font-medium underline shrink-0 hover:opacity-80",children:(0,h.Tl)("Open Settings")})]})}},9734:(a,b,c)=>{c.d(b,{M:()=>e});var d=c(99258);function e(a){let b=String(a||"").trim();if(!b)return"";let c=(0,d.Tl)(b);if(c!==b)return c;let e=/^(.+?)\s+·\s+(.+)$/.exec(b);if(e)return`${(0,d.Tl)(e[1])} \xb7 ${(0,d.Tl)(e[2])}`;let f=/^Bonus Pack (\d+)$/.exec(b);if(f)return`${(0,d.Tl)("Bonus Pack")} ${f[1]}`;let g=/^weekly\s+(.+)\s+\(7d\)$/i.exec(b);if(g)return`${(0,d.Tl)("Weekly")} ${g[1]} (7d)`;let h=/^Balance(?:\s*\((.+)\))?$/i.exec(b);if(h)return h[1]?`${(0,d.Tl)("Balance")} (${h[1]})`:(0,d.Tl)("Balance");let i=/^Voucher(?:\s*\((.+)\))?$/i.exec(b);if(i)return i[1]?`${(0,d.Tl)("Voucher")} (${i[1]})`:(0,d.Tl)("Voucher");let j=/^Cash(?:\s*\((.+)\))?$/i.exec(b);return j?j[1]?`${(0,d.Tl)("Cash")} (${j[1]})`:(0,d.Tl)("Cash"):b}},11633:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(17660),f=c(74380),g=c(79750),h=c(99258);let i={mode:{label:"Mode",format:a=>a},defaultModel:{label:"Model",format:a=>a,mono:!0},baseUrl:{label:"Endpoint",format:a=>a,isLink:!0,mono:!0},costPerQuery:{label:"Cost / call",format:a=>0===a?"Free":(0,g.F)(a,4)},pricingUrl:{label:"Pricing",format:()=>"View pricing",isLink:!0},freeTier:{label:"Free tier",format:a=>a},freeMonthlyQuota:{label:"Free quota",format:a=>0===a?"—":a>=999999?"Unlimited":`${a.toLocaleString()} / mo`},searchTypes:{label:"Types",format:a=>a.join(", ")},formats:{label:"Formats",format:a=>a.join(", ")},maxMaxResults:{label:"Max results",format:a=>a},maxCharacters:{label:"Max chars",format:a=>a.toLocaleString()}};function j({config:a,provider:b,title:c="Provider Info"}){if(!a)return null;let g=Object.entries(i).filter(([b])=>void 0!==a[b]&&null!==a[b]&&""!==a[b]).map(([b,c])=>({key:b,label:c.label,value:c.format(a[b]),isLink:c.isLink,mono:c.mono,raw:a[b]})),k=b?.notice?.apiKeyUrl||b?.website,l=b?.notice?.webUrl,m=b?.notice?.text;return(0,d.jsxs)(e.default,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:c}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[l?(0,d.jsxs)("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Web console"]}):k&&(0,d.jsxs)("a",{href:k,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]}),(0,d.jsx)(f.default,{code:b?.notice?.inviteCode})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2",children:[g.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0",children:a.label}),a.isLink?(0,d.jsx)("a",{href:a.raw,target:"_blank",rel:"noopener noreferrer",className:`text-sm text-primary hover:underline truncate ${a.mono?"font-mono":""}`,children:a.value}):(0,d.jsx)("span",{className:`text-sm text-text-main truncate ${a.mono?"font-mono":""}`,children:a.value})]},a.key)),m&&(0,d.jsxs)("div",{className:"flex items-start gap-3 min-w-0 sm:col-span-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0 mt-0.5",children:"Notice"}),(0,d.jsx)("span",{className:"text-sm text-text-main leading-relaxed",children:(0,h.Tl)(m)})]})]})]})}},13733:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(48249),e=c(67484);c(51126);var f=c(818),g=c(267);function h(){let[a,b]=(0,e.useState)(!1),[c,h]=(0,e.useState)("en");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>b(!0),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Language","data-i18n-skip":"true",children:(0,d.jsx)("span",{className:"text-lg leading-none",children:f.h[c]||"\uD83C\uDF10"})}),(0,d.jsx)(g.default,{hideTrigger:!0,isOpen:a,onClose:a=>{b(!1),h(a)}})]})}},17660:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({children:a,title:b,subtitle:c,icon:g,action:h,padding:i="md",hover:j=!1,elev:k=!1,className:l,...m}){return(0,d.jsxs)("div",{className:(0,e.cn)("bg-surface border border-border-subtle",k?"rounded-[14px] shadow-[var(--shadow-elev)]":"rounded-[14px] shadow-[var(--shadow-soft)]",j&&"hover:shadow-[var(--shadow-warm)] hover:border-brand-500/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[i],l),...m,children:[(b||h)&&(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[g&&(0,d.jsx)("div",{className:"p-2 rounded-[10px] bg-bg text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:g})}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("h3",{className:"text-text-main font-semibold",children:b}),c&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:c})]})]}),h]}),a]})}f.Section=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-4 rounded-[10px]","bg-bg border border-border-subtle",b),...c,children:a})},f.Row=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50",b),...c,children:a})},f.ListItem=function({children:a,actions:b,className:c,...f}){return(0,d.jsxs)("div",{className:(0,e.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50 transition-colors",c),...f,children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:a}),b&&(0,d.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:b})]})}},18982:(a,b,c)=>{c.d(b,{gH:()=>d});function d(a,b){return RegExp("^"+a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(b)}},20084:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(95145);function g({isOpen:a,onClose:b,onAdd:c,addedNames:h=[]}){let[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({}),[w,x]=(0,e.useState)({}),[y,z]=(0,e.useState)({}),A=(0,e.useMemo)(()=>new Set(h),[h]),B=(0,e.useMemo)(()=>{let a=m.trim().toLowerCase();return i.filter(b=>("authless"!==o||!b.oauth)&&("oauth"!==o||!!b.oauth)&&(!a||(b.title||"").toLowerCase().includes(a)||(b.description||"").toLowerCase().includes(a)||(b.name||"").toLowerCase().includes(a)))},[i,m,o]),C=async a=>{if(!u[a.url]){x(b=>({...b,[a.url]:!0}));try{let b=await fetch("/api/cli-tools/cowork-mcp-tools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url})}),c=await b.json(),d=c.tools||[],e=Array.isArray(a.toolNames)?a.toolNames:[],f=d.length>0?d.map(a=>a.name):e;v(b=>({...b,[a.url]:{tools:d,requiresAuth:!!c.requiresAuth,error:c.error}})),z(b=>({...b,[a.url]:Object.fromEntries(f.map(a=>[a,!0]))}))}catch(b){v(c=>({...c,[a.url]:{tools:[],error:b.message}}))}finally{x(b=>({...b,[a.url]:!1}))}}},D=(a,b)=>{let c=y[a]||{};z(d=>({...d,[a]:Object.fromEntries(Object.keys(c).map(a=>[a,b]))}))};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:"Browse MCP Marketplace",size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"Search by name or description...",className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("select",{value:o,onChange:a=>p(a.target.value),className:"px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"all",children:"All"}),(0,d.jsx)("option",{value:"authless",children:"Authless"}),(0,d.jsx)("option",{value:"oauth",children:"OAuth"})]})]}),q&&(0,d.jsx)("div",{className:"px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:q}),k&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-xs py-4 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Loading registry..."})]}),!k&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 max-h-[60vh] overflow-y-auto",children:[0===B.length&&(0,d.jsx)("div",{className:"text-center text-xs text-text-muted py-6",children:"No servers match filter"}),B.map(a=>{let b=A.has(a.slug||a.name),e=s===a.url,f=u[a.url],g=w[a.url],h=y[a.url]||{},i=Object.keys(h),j=Object.values(h).filter(Boolean).length;return(0,d.jsxs)("div",{className:"rounded border border-transparent hover:border-border",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2 px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5",children:[a.iconUrl?(0,d.jsx)("img",{src:a.iconUrl,alt:"",className:"size-7 rounded shrink-0 object-contain",onError:a=>{a.target.style.display="none"},loading:"lazy",decoding:"async"}):(0,d.jsx)("div",{className:"size-7 rounded bg-surface shrink-0"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,d.jsx)("span",{className:"font-medium text-xs",children:a.title}),a.oauth?(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-amber-500/10 text-amber-600",children:"OAuth"}):(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-green-500/10 text-green-600",children:"Authless"}),a.toolCount>0&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[a.toolCount," tools"]})]}),a.description&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted line-clamp-2 mt-0.5",children:a.description})]}),(0,d.jsx)("button",{onClick:()=>b?null:void(s===a.url?t(null):(t(a.url),C(a))),disabled:b,className:`shrink-0 px-2 py-1 rounded text-[10px] font-medium transition-colors ${b?"bg-green-500/10 text-green-600 cursor-default":e?"bg-surface border border-border text-text-muted hover:bg-black/5":"bg-primary/10 border border-primary/40 text-primary hover:bg-primary/20"}`,children:b?"Added":e?"Cancel":"+ Add"})]}),e&&(0,d.jsxs)("div",{className:"px-3 py-2 bg-surface/40 border-t border-border flex flex-col gap-2",children:[g&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-[10px] py-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[14px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Probing server for tools..."})]}),!g&&f?.requiresAuth&&(0,d.jsx)("p",{className:"text-[10px] text-amber-600 bg-amber-500/10 px-2 py-1 rounded",children:"\uD83D\uDD10 OAuth required. Add now and authenticate after Apply; tool list will be discovered after first connect."}),!g&&f?.error&&!f?.requiresAuth&&(0,d.jsxs)("p",{className:"text-[10px] text-red-600 bg-red-500/10 px-2 py-1 rounded",children:["Probe failed: ",f.error]}),!g&&0===i.length&&!f?.requiresAuth&&!f?.error&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted",children:"No tools advertised by server."}),!g&&i.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[j,"/",i.length," tools enabled"]}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>D(a.url,!0),className:"text-[10px] text-primary hover:underline",children:"All"}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"\xb7"}),(0,d.jsx)("button",{onClick:()=>D(a.url,!1),className:"text-[10px] text-primary hover:underline",children:"None"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1 max-h-40 overflow-y-auto",children:i.map(b=>(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] cursor-pointer hover:bg-black/5 dark:hover:bg-white/5 px-1 rounded",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!h[b],onChange:()=>{var c;return c=a.url,void z(a=>({...a,[c]:{...a[c],[b]:!a[c]?.[b]}}))},className:"size-3"}),(0,d.jsx)("span",{className:"truncate",children:b})]},b))})]}),(0,d.jsx)("button",{onClick:()=>{let b,d;return d=Object.keys(b=y[a.url]||{}).filter(a=>b[a]),void(c?.({name:a.slug||a.name,title:a.title,description:a.description,url:a.url,transport:a.transport,oauth:a.oauth,toolNames:d}),t(null))},className:"self-end px-2 py-1 rounded text-[10px] font-medium bg-primary text-white hover:bg-primary/90",children:"✓ Confirm Add"})]})]},a.url)})]}),(0,d.jsxs)("div",{className:"text-[10px] text-text-muted text-right",children:[B.length," of ",i.length," servers"]})]})})}},21159:(a,b,c)=>{c.d(b,{Ay:()=>m,LL:()=>l});var d=c(48249),e=c(67484),f=c(95145),g=c(99070);c(12020);var h=c(99258),i=c(71404);function j(a,b){try{let c=window.localStorage.getItem(a);return c?JSON.parse(c):b}catch{return b}}function k(){var a;let b,c=(a=j("10r.announcements.cache",null),(Array.isArray(a?.items)?a.items:[]).filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.title).map(a=>({id:a.id,title:a.title,titleEn:"string"==typeof a.titleEn?a.titleEn:"",body:"string"==typeof a.body?a.body:"",bodyEn:"string"==typeof a.bodyEn?a.bodyEn:"",date:"string"==typeof a.date?a.date:"",level:["feature","promo","info","warning","critical"].includes(a.level)?a.level:"info",link:"string"==typeof a.link&&/^https?:\/\//.test(a.link)?a.link:""})).filter(a=>{let b=Date.parse(a.date);return!b||Date.now()-b<=7776e6}).sort((a,b)=>{let c={critical:0,warning:1,promo:2,feature:3,info:4},d=c[a.level]??3,e=c[b.level]??3;return d!==e?d-e:(b.date||"").localeCompare(a.date||"")})),d=new Set(Array.isArray(b=j("10r.announcements.seen",[]))?b:[]);return c.filter(a=>!d.has(a.id)).length}function l(){let[a,b]=(0,e.useState)(k);return a}function m({isOpen:a,onClose:b}){let[c,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(!1),r=(0,e.useMemo)(()=>k&&0===c.length?(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),(0,h.Tl)("Loading...")]}):n&&0===c.length?(0,d.jsxs)("p",{className:"py-6 text-center text-sm text-text-muted",children:[(0,h.Tl)("Could not load announcements"),": ",n]}):0===c.length?(0,d.jsx)("p",{className:"py-6 text-center text-sm text-text-muted",children:(0,h.Tl)("No announcements right now")}):(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 lg:grid-cols-2",children:[p&&(0,d.jsx)("p",{className:"rounded-lg bg-amber-500/10 px-3 py-2 text-xs text-amber-600 dark:text-amber-400",children:(0,h.Tl)("Showing the last cached copy — the live feed is unreachable right now.")}),c.map(a=>(0,d.jsxs)("article",{className:(0,i.cn)("rounded-lg border p-2.5","critical"===a.level?"border-red-500/30 bg-red-500/5":"warning"===a.level?"border-amber-500/30 bg-amber-500/5":"promo"===a.level?"border-green-500/40 bg-green-500/5":"feature"===a.level?"border-blue-500/40 bg-blue-500/5":"border-black/10 dark:border-white/10 bg-surface/50"),children:[(0,d.jsxs)("div",{className:"mb-1 flex items-start justify-between gap-2",children:[(0,d.jsx)("h3",{className:"text-[13px] font-semibold leading-5 text-text-main",children:"en"===(0,h.kk)()&&a.titleEn?a.titleEn:a.title}),a.date&&(0,d.jsx)("time",{className:"shrink-0 text-[10px] text-text-muted",children:a.date})]}),a.body&&(0,d.jsx)("p",{className:"whitespace-pre-line text-xs leading-relaxed text-text-muted",children:"en"===(0,h.kk)()&&a.bodyEn?a.bodyEn:a.body}),a.link&&(0,d.jsxs)("a",{href:a.link,target:"_blank",rel:"noopener noreferrer",className:"mt-1.5 inline-flex items-center gap-1 text-[11px] font-medium text-primary hover:underline",children:[(0,h.Tl)("Learn more"),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"open_in_new"})]})]},a.id))]}),[k,c,n,p]);return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:(0,h.Tl)("Announcements"),size:"full",footer:(0,d.jsx)(g.default,{size:"sm",variant:"secondary",onClick:b,children:(0,h.Tl)("Close")}),children:(0,d.jsx)("div",{className:"pr-1",children:r})})}},24622:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>m});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(99258),k=c(25170),l=a([i]);function m({provider:a,isOpen:b,onSuccess:c,onClose:d}){let g="mimo-desktop"===a?"mimo-desktop":"xiaomi-mimo",[h,l]=(0,f.useState)("detecting"),n="mimo-desktop"===g?h:"cloud",[o,p]=(0,f.useState)(null),[q,r]=(0,f.useState)(!1),[s,t]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(""),[A,B]=(0,f.useState)(null),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useState)(""),[I,J]=(0,f.useState)(!1),K=async()=>{l("detecting"),v(null),x(null),z(""),p(null),B(null),D(null),H(""),r(!1),t(!1);let a=await fetch("/api/oauth/xiaomi-mimo/auto-import"),b=await a.json();b.found?(p(b),l("found")):(l("not-found"),r(!!b.desktopLocked),x(b.code||null),z(b.details||""),v((0,j.Tl)(b.error||"Xiaomi MiMo Desktop credentials not found on this machine.")))},L=async()=>{let a=!!o?.sessionOnly;if(o?.apiKey||a){l("importing"),v(null);try{let b=await fetch("/api/oauth/xiaomi-mimo/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:o.apiKey||void 0,uid:o.uid,baseUrl:o.baseUrl,sessionOnly:a,provider:g})}),e=await b.json();if(!b.ok||!e.success)throw Error((0,j.Tl)(e.error||"Import failed"));c?.(e.connection),d()}catch(a){l("found"),v(a.message)}}},M=async()=>{t(!0);try{await fetch("/api/oauth/xiaomi-mimo/desktop-kill",{method:"POST"})}catch{}setTimeout(()=>{t(!1),K().catch(()=>l("not-found"))},1500)},N=async()=>{v(null),H("");try{let a=(0,k.u)(),b=await fetch(`/api/oauth/${g}/authorize?state=${a}`),c=await b.json();if(c.authorizeUrl)B(c.authorizeUrl),D(c.manualUrl||null),F(c.state),window.open(c.authorizeUrl,"_blank","width=600,height=700");else throw Error((0,j.Tl)(c.error||"Failed to start OAuth"))}catch(a){v(a.message)}},O=async a=>{let b=await fetch(`/api/oauth/${g}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({state:a})}),e=await b.json();if(!e.success)throw Error((0,j.Tl)(e.error||"Exchange failed"));c?.(e.connection),d()},P=async()=>{let a=G.trim();if(!a)return void v((0,j.Tl)("Paste the authorization code first."));J(!0),v(null);try{let b=await fetch(`/api/oauth/${g}/submit-code`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a})}),c=await b.json();if(!b.ok||"done"!==c.status)throw Error((0,j.Tl)(c.error||"Could not read that code."));await O(c.state||E)}catch(a){v(a.message)}finally{J(!1)}},Q=async()=>{if(E){v(null);try{let a=await fetch(`/api/oauth/${g}/poll-status?state=${E}`),b=await a.json();if("done"===b.status&&b.result)await O(E);else if("error"===b.status)throw Error((0,j.Tl)(b.error||"OAuth failed"));else v((0,j.Tl)("Authorization not completed yet. Finish in the browser, then click Check Again."))}catch(a){v(a.message)}}};return(0,e.jsx)(i.aF,{isOpen:b,title:(0,j.Tl)("Connect Xiaomi MiMo"),onClose:d,children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:["cloud"===n&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,e.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,e.jsxs)("div",{className:"text-sm text-blue-800 dark:text-blue-200",children:[(0,e.jsx)("p",{className:"font-medium",children:(0,j.Tl)("Cloud models — sign in with the browser")}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:(0,j.Tl)("This card bills the cloud API, so it uses the browser authorization or an sk- API key. Desktop credits belong to the MiMo Desktop card.")})]})]})}),u&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:u})}),A?(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsxs)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:[(0,e.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:(0,j.Tl)("Browser opened. Complete the Xiaomi sign-in there.")}),(0,e.jsxs)("p",{className:"text-sm text-blue-800 dark:text-blue-200 mt-1 opacity-80",children:[(0,j.Tl)("The page may show an authorization code — paste it below. If it came back automatically instead, click")," ",(0,e.jsx)("strong",{children:(0,j.Tl)("Check Again")}),"."]})]}),u&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:u})}),u&&(0,e.jsx)(i.$n,{onClick:N,variant:"outline",fullWidth:!0,children:(0,j.Tl)("Sign in via Browser")}),(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{className:"block text-sm font-medium mb-2",children:(0,j.Tl)("Authorization Code")}),(0,e.jsx)("textarea",{value:G,onChange:a=>H(a.target.value),placeholder:(0,j.Tl)("Paste the authorization code shown in the browser"),rows:3,className:"w-full px-3 py-2 text-sm font-mono border border-border rounded-lg bg-surface focus:outline-none focus:border-primary resize-none"}),(0,e.jsx)("p",{className:"text-xs text-text-muted mt-1",children:(0,j.Tl)("The code is a long string (100+ characters) — copy it whole, using the Copy button on the sign-in page.")}),C&&(0,e.jsx)("a",{href:C,target:"_blank",rel:"noreferrer",className:"inline-block text-xs text-primary hover:underline mt-2",children:(0,j.Tl)("Open the code page")})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:P,disabled:I||!G.trim(),fullWidth:!0,children:I?(0,j.Tl)("Checking..."):(0,j.Tl)("Submit Code")}),(0,e.jsx)(i.$n,{onClick:Q,variant:"outline",fullWidth:!0,children:(0,j.Tl)("Check Again")})]})]}):(0,e.jsx)(i.$n,{onClick:N,fullWidth:!0,children:(0,j.Tl)("Sign in via Browser")})]}),"detecting"===n&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:(0,j.Tl)("Reading local credentials...")}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:(0,j.Tl)("Checking Xiaomi MiMo Desktop's local profile (auth.json + cookie store)")})]}),"found"===n&&o&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,e.jsxs)("div",{className:"text-sm text-green-800 dark:text-green-200",children:[(0,e.jsx)("p",{className:"font-medium",children:o.sessionOnly?(0,j.Tl)("Xiaomi MiMo Desktop session detected!"):(0,j.Tl)("Xiaomi MiMo Desktop credentials found!")}),(0,e.jsxs)("p",{className:"mt-1 opacity-80",children:[(0,j.Tl)("UID"),": ",o.uid||"—"," \xb7 ",(0,j.Tl)("Source"),":"," ",o.source?.split(/[\\/]/).pop()]}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:o.hasDesktopSession?(0,j.Tl)("Desktop account session detected — the Desktop models will be available."):o.desktopLocked?(0,j.Tl)("Desktop is running and is holding its credential store — quit it to unlock the Desktop models."):(0,j.Tl)("No desktop account session found — sign in to MiMo Desktop, then retry.")})]})]})}),u&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:u})}),o.sessionOnly&&(0,e.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,e.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"lightbulb"}),(0,e.jsxs)("div",{className:"text-sm text-blue-800 dark:text-blue-200",children:[(0,e.jsx)("p",{className:"font-medium",children:(0,j.Tl)("Want the metered models too?")}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:(0,j.Tl)("This card covers the Desktop models. The metered and subscription-plan models are on the MiMo card — open that card there.")})]})]})}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:L,fullWidth:!0,children:o.sessionOnly?(0,j.Tl)("Connect with Desktop Session"):(0,j.Tl)("Connect with Local Credentials")}),(0,e.jsx)(i.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:(0,j.Tl)("Cancel")})]})]}),"importing"===n&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:(0,j.Tl)("Connecting...")})]}),"not-found"===n&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-3 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,e.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,e.jsxs)("div",{className:"text-sm text-amber-800 dark:text-amber-200",children:[(0,e.jsx)("p",{className:"font-medium",children:q?(0,j.Tl)("Quit Xiaomi MiMo Desktop and retry"):(0,j.Tl)("Local credentials not found")}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:"DESKTOP_LOCKED"===w?(0,j.Tl)("The desktop app keeps an exclusive lock on its credential store while it runs."):"AUTH_FILE_MISSING"===w?(0,j.Tl)("Make sure Xiaomi MiMo Desktop is installed and you are signed in, then retry."):u}),y&&(0,e.jsxs)("details",{className:"mt-1 opacity-70",children:[(0,e.jsx)("summary",{className:"cursor-pointer",children:(0,j.Tl)("Checked paths")}),(0,e.jsx)("pre",{className:"mt-1 whitespace-pre-wrap break-all text-[10px]",children:y})]}),(0,e.jsx)("p",{className:"mt-2 opacity-80",children:(0,j.Tl)("Make sure MiMo Desktop is signed in on this machine.")})]})]})}),(0,e.jsx)(i.$n,{onClick:()=>{K().catch(()=>l("not-found"))},variant:"outline",fullWidth:!0,disabled:s,children:(0,j.Tl)("Retry Local Detect")}),q&&(0,e.jsx)(i.$n,{onClick:M,variant:"outline",fullWidth:!0,disabled:s,className:"mt-2",children:s?(0,j.Tl)("Closing MiMo Desktop..."):(0,j.Tl)("Quit MiMo Desktop and re-detect")})]})]})})}i=(l.then?(await l)():l)[0],m.propTypes={provider:h().string,isOpen:h().bool.isRequired,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},24656:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(50377),k=a([i]);function l({isOpen:a,providerInfo:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)("booting"),[k,m]=(0,f.useState)(null),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(""),[r,s]=(0,f.useState)(null),[t,u]=(0,f.useState)(!1),v=(0,f.useRef)(null),w=(0,f.useRef)({proxyStarted:!1,stopSent:!1});(0,f.useRef)(!1);let x=(0,f.useRef)(!1),y=(0,f.useRef)(a),z=(0,f.useRef)(c),A=(0,f.useRef)(d),{copied:B,copy:C}=(0,j.C)(),D=(0,f.useCallback)(()=>{let a=w.current;a.proxyStarted&&!a.stopSent&&(a.stopSent=!0,fetch("/api/oauth/zed/stop-proxy").catch(()=>{}))},[]),E=(0,f.useCallback)(()=>{h("success"),z.current?.(),setTimeout(()=>A.current?.(),600)},[]),F=(0,f.useCallback)(async a=>{if(a?.accessToken&&a?.userId){u(!0),s(null),h("importing");try{let b=await fetch("/api/oauth/zed/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a.accessToken,userId:a.userId,...a.systemId?{systemId:a.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Import failed");D(),E()}catch(a){s(a.message),h("ide-found")}finally{u(!1)}}},[E,D]);(0,f.useCallback)(async()=>{s(null),o(null),q(""),w.current={proxyStarted:!1,stopSent:!1},x.current=!1;try{let a=await fetch("/api/oauth/zed/start-proxy"),b=await a.json();if(!a.ok||!b.success||!b.callbackUrl)throw Error(b.reason||b.error||"Failed to start Zed callback server");if(w.current.proxyStarted=!0,w.current.stopSent=!1,!y.current)return void D();let c=new URL("/api/oauth/zed/authorize",window.location.origin);c.searchParams.set("redirect_uri",b.callbackUrl);let d=await fetch(c),e=await d.json();if(!d.ok)throw D(),Error(e.error||"Failed to start Zed authorization");if(!y.current)return void D();let f={state:e.state};e.codeVerifier&&(f.codeVerifier=e.codeVerifier),e.systemId&&(f.systemId=e.systemId);let g=await fetch("/api/oauth/zed/register-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),i=null;try{i=await g.json()}catch{i=null}if(!g.ok||i?.success===!1)throw D(),Error(i?.error||"Failed to register Zed login session");if(!y.current)return;o(e),h(a=>"ide-found"===a||"importing"===a?a:"browser"),v.current=window.open(e.authUrl,"oauth_popup_zed","width=600,height=700")}catch(a){if(!y.current)return;s(a.message),h(a=>"ide-found"===a?a:"browser")}},[D]);let G=async()=>{let a=p.trim();if(a){u(!0),s(null);try{let b=await fetch("/api/oauth/zed/exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:n?.state,...n?.redirectUri?{redirectUri:n.redirectUri}:{},...n?.codeVerifier?{codeVerifier:n.codeVerifier}:{},...n?.systemId?{systemId:n.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Exchange failed");x.current=!0,D(),E()}catch(a){s(a.message),h("error")}finally{u(!1)}}},H=()=>{x.current=!0,D(),d()},I=`Connect ${b?.name||"Zed"}`;return(0,e.jsx)(i.aF,{isOpen:a,title:I,onClose:H,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[("booting"===g||"importing"===g)&&(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:"importing"===g?"Importing session from Zed IDE…":"Detecting Zed IDE session…"})]}),"ide-found"===g&&k&&(0,e.jsxs)("div",{className:"space-y-3",children:[(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,e.jsxs)("p",{className:"text-sm text-green-800 dark:text-green-200",children:["Zed IDE session detected (user ",k.userId,"). Import failed — retry or use browser sign-in below."]})]})}),(0,e.jsx)(i.$n,{onClick:()=>F(k),fullWidth:!0,disabled:t,children:t?"Importing…":"Import from Zed IDE"})]}),"success"===g&&(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800 text-sm text-green-800 dark:text-green-200",children:"Connected successfully."}),("browser"===g||"error"===g||"ide-found"===g)&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:"Waiting for popup authorization…"})]}),(0,e.jsxs)("div",{className:"flex items-center gap-3 my-1",children:[(0,e.jsx)("div",{className:"flex-1 h-px bg-border"}),(0,e.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wider",children:"Or paste callback URL manually"}),(0,e.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.pd,{value:n?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,e.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===B?"check":"content_copy",onClick:()=>C(n?.authUrl,"auth_url"),disabled:!n?.authUrl,children:"Copy"})]})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,e.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser (or the local callback page)."}),(0,e.jsx)(i.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"http://127.0.0.1:.../?user_id=...&access_token=...",className:"font-mono text-xs"})]})]}),r&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:r})}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:G,fullWidth:!0,disabled:t||!p.trim()||!n,children:t?"Connecting…":"Connect"}),(0,e.jsx)(i.$n,{onClick:H,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}i=(k.then?(await k)():k)[0],l.propTypes={isOpen:h().bool.isRequired,providerInfo:h().object,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},25170:(a,b,c)=>{c.d(b,{u:()=>e});let d=Array.from({length:256},(a,b)=>b.toString(16).padStart(2,"0"));function e(a=""){let b=globalThis.crypto;if("function"==typeof b?.randomUUID)return a+b.randomUUID();if("function"==typeof b?.getRandomValues){let c=b.getRandomValues(new Uint8Array(16));return c[6]=15&c[6]|64,c[8]=63&c[8]|128,a+d[c[0]]+d[c[1]]+d[c[2]]+d[c[3]]+"-"+d[c[4]]+d[c[5]]+"-"+d[c[6]]+d[c[7]]+"-"+d[c[8]]+d[c[9]]+"-"+d[c[10]]+d[c[11]]+d[c[12]]+d[c[13]]+d[c[14]]+d[c[15]]}return a+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,10)+"-"+Math.random().toString(36).slice(2,10)}},25919:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({src:a,alt:b="Avatar",name:c,size:g="md",className:h}){let i={xs:"size-6 text-xs",sm:"size-8 text-sm",md:"size-10 text-base",lg:"size-12 text-lg",xl:"size-16 text-xl"};return a?(0,d.jsx)("div",{className:(0,e.cn)("rounded-full bg-cover bg-center bg-no-repeat","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],h),style:{backgroundImage:`url(${a})`},role:"img","aria-label":b}):(0,d.jsx)("div",{className:(0,e.cn)("rounded-full flex items-center justify-center font-semibold text-white","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],(a=>{if(!a)return"bg-primary";let b=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"],c=a.charCodeAt(0)%b.length;return b[c]})(c),h),role:"img","aria-label":b,children:(a=>{if(!a)return"?";let b=a.split(" ");return b.length>=2?`${b[0][0]}${b[1][0]}`.toUpperCase():a.substring(0,2).toUpperCase()})(c)})}},29225:(a,b,c)=>{c.d(b,{HY:()=>h,Kw:()=>i});let d={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","b.ai":"bai","b-ai":"bai","siliconflow-cn":"siliconflow","longcat-intl":"longcat","stepfun-cn":"stepfun","stepfun-plan":"stepfun","stepfun-plan-cn":"stepfun","step-cn":"stepfun","stepp-cn":"stepfun",stepp:"stepfun",step:"stepfun","sfp-cn":"stepfun",sfp:"stepfun",sfpcn:"stepfun","sf-cn":"stepfun",sfcn:"stepfun",sf:"stepfun","step-plan-cn":"stepfun","step-plan":"stepfun","alitp-intl":"alitp-intl","alims-intl":"alitp-intl","alicode-intl":"alitp-intl","alitp-cn":"alitp",alims:"alitp",alicode:"alitp"},e={bai:".svg"},f=new Set;function g(a){return a&&"string"==typeof a?a.trim().toLowerCase():""}function h(a){let b=function(a){let b=g(a);if(!b||f.has(b))return"";let c=d[b]||b;return f.has(c)?"":c}(a);return b?`/providers/${b}${e[b]||".png"}`:null}function i(a){let b=g(a);b&&f.add(b);let c=d[b];c&&f.add(c)}},29476:(a,b,c)=>{c.d(b,{yU:()=>k});var d=c(67484),e=c(59160);let f=null,g=null,h=null,i=null;function j(a,b,c,d){if(!d)return null;let f=d.includes("/")?d.slice(0,d.indexOf("/")):null,g=d.includes("/")?d.slice(d.indexOf("/")+1):d,h=a=>{let b=f?c[f]?.[g]:null;return b?{...a||{},...b.contextWindow?{contextWindow:b.contextWindow}:{},...b.maxOutput?{maxOutput:b.maxOutput}:{}}:a};if(a[d])return h(a[d]);if(b[g])return h(b[g]);let i=(0,e.nl)(f,g);return h({vision:i.vision,search:i.search,reasoning:i.reasoning,contextWindow:i.contextWindow,maxOutput:i.maxOutput})}function k(){let[a,b]=(0,d.useState)(()=>f?.byFull||{}),[c,e]=(0,d.useState)(()=>f?.byId||{}),[k,l]=(0,d.useState)(()=>h||{}),m=(0,d.useCallback)(()=>{g=null,h=null,i=null,Promise.all([(f=null,g||(g=fetch("/api/models").then(async a=>{if(!a.ok)throw Error(`models ${a.status}`);return f=function(a){let b={},c={};for(let d of a||[])d.caps&&(d.fullModel&&(b[d.fullModel]=d.caps),d.routedModel&&(b[d.routedModel]=d.caps),d.model&&(c[d.model]=d.caps));return{byFull:b,byId:c}}((await a.json()).models)}).catch(()=>({byFull:{},byId:{}})).finally(()=>{g=null}))),h?Promise.resolve(h):i||(i=fetch("/api/models/caps").then(async a=>{if(!a.ok)throw Error(`caps ${a.status}`);let b=await a.json();return h=b.caps&&"object"==typeof b.caps?b.caps:{}}).catch(()=>({})).finally(()=>{i=null}))]).then(([a,c])=>{b(a.byFull),e(a.byId),l(c||{})})},[]);return{getCaps:(0,d.useCallback)(b=>j(a,c,k,b),[a,c,k]),getBaseCaps:(0,d.useCallback)(b=>j(a,c,{},b),[a,c]),overrides:k,refresh:m}}},32971:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(74429);function g({text:a,children:b,position:c="top",color:h}){let i=(0,e.useRef)(null),[j,k]=(0,e.useState)(null);return(0,d.jsxs)("div",{ref:i,className:"relative inline-flex",onMouseEnter:()=>{let a=i.current?.getBoundingClientRect();if(!a)return;let b=a.left+a.width/2,d=a.top+a.height/2;k({position:"fixed",..."bottom"===c?{top:a.bottom+6,left:b,transform:"translateX(-50%)"}:"left"===c?{right:window.innerWidth-a.left+6,top:d,transform:"translateY(-50%)"}:"right"===c?{left:a.right+6,top:d,transform:"translateY(-50%)"}:{bottom:window.innerHeight-a.top+6,left:b,transform:"translateX(-50%)"}})},onMouseLeave:()=>k(null),children:[b,j&&"u">typeof document&&(0,f.createPortal)((0,d.jsx)("div",{className:`pointer-events-none z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug text-white whitespace-normal ${h?"":"bg-gray-900"}`,style:{...j,...h?{backgroundColor:h}:{}},children:a}),document.body)]})}},37365:(a,b,c)=>{c.d(b,{C:()=>d});let d=(0,c(31417).v)(a=>({query:"",placeholder:"",visible:!1,setQuery:b=>a({query:b}),register:(b="Search...")=>a({visible:!0,placeholder:b,query:""}),unregister:()=>a({visible:!1,placeholder:"",query:""})}))},38508:(a,b,c)=>{c.d(b,{default:()=>s});var d=c(48249),e=c(49885),f=c.n(e),g=c(99258),h=c(9734),i=c(71452),j=c(71404),k=c(82563);function l({className:a}){return(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,"aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"}),(0,d.jsx)("path",{d:"M19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z"})]})}function m(a){return Number(a||0).toLocaleString("en-US",{maximumFractionDigits:2})}function n(a,b){return(0,k.h7)(a,b)}function o(a){return void 0!==a.remaining&&null!==a.remaining?Math.max(0,Number(a.remaining)):Math.max(0,Number(a.total||0)-Number(a.used||0))}function p({row:a,label:b=null,inset:c=!1}){let e=Number((a.totalNum??a.total)||0),f=Number.isFinite(a.remainingNum)?Number(a.remainingNum):Number(a.remaining??o(a)),q=(0,i.Rs)(a),r=(0,i.OG)(a);if(q){let b=(0,i.UL)(a.name),c=f>0,e=!0===a.checkinToday;return(0,d.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-baseline justify-between gap-2 tabular-nums",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-baseline gap-1",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0 self-center text-text-muted"}),(0,d.jsx)("b",{className:(0,j.cn)("text-[12px] font-bold",c?"text-text":k.pM.critical),children:m(f)}),b?(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",b,")"]}):null,e&&(0,d.jsxs)("span",{className:"ml-1 inline-flex shrink-0 items-center gap-0.5 rounded bg-green-500/10 px-1 py-px text-[10px] font-medium text-green-600 dark:text-green-400",style:{transform:"translateY(-1px)"},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"check_circle"}),(0,g.Tl)("Checked in today"),Number.isInteger(a.streakDays)&&a.streakDays>1&&(0,d.jsxs)("span",{className:"text-text-muted",children:[" \xb7 ",(0,g.Tl)("{count}-day streak").replace("{count}",String(a.streakDays))]})]})]}),(0,d.jsx)("span",{className:"shrink-0 text-[11px] text-text-muted",children:(0,h.M)((0,i._6)(a.name)||a.name)})]}),(0,d.jsx)(k.Ay,{pct:100*!!c})]})}let s=(0,i.pR)(a),t=(0,i.Cd)(a,s);return(0,d.jsxs)("div",{className:(0,j.cn)("min-w-0 space-y-1",c&&"pl-[17px]"),children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[11px] tabular-nums",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[c?null:(0,d.jsx)(l,{className:"size-[11px] shrink-0 text-text-muted"}),(0,d.jsx)("span",{className:"truncate text-text-muted",children:b??(0,h.M)(a.name)})]}),(0,d.jsxs)("span",{className:(0,j.cn)("shrink-0",k.pM[t]),children:[a.percentScale?`${Math.round(s)}%`:(0,g.Tl)("remaining {remaining} of {total}").replace("{remaining}",m(f)).replace("{total}",m(e)),a.resetAt?` ${n(r,a.resetAt)}`:""]})]}),(0,d.jsx)(k.Ay,{pct:s})]})}let q=[.35,.65,1];function r({ladder:a}){let b=a.length,c=2.5/Math.max(1,b-1),e=a=>2===b?q[2*a]:q[a],f=b=>k.pM[a[b].ownPct>0&&a[b].ownPct<i.MF?"critical":"reset"],o=a[0];return(0,d.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[11px] tabular-nums",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0 text-text-muted"}),(0,d.jsx)("span",{className:"truncate text-text-muted",children:(0,h.M)(o.row.name||"")})]}),(0,d.jsxs)("span",{className:(0,j.cn)("shrink-0",f(0)),children:[(0,g.Tl)("remaining {remaining} of {total}").replace("{remaining}",m(o.ownRemaining)).replace("{total}",m(o.ownTotal)),o.row.resetAt?` ${n(!0,o.row.resetAt)}`:""]})]}),(0,d.jsx)(k.$n,{height:8,role:"img","aria-label":a.map(({row:a,ownRemaining:b,ownTotal:c})=>`${(0,h.M)(a.name)} ${m(b)}/${m(c)}`).join(","),children:a.map(({row:b,widthPct:f,ownRemaining:g,ownTotal:i},l)=>(0,d.jsx)("span",{className:(0,j.cn)("absolute left-0",k.jH),style:{top:`${l*c}px`,bottom:`${l*c}px`,width:`${f}%`,opacity:e(l),...(0,k.jE)(a[l].ownPct)},title:`${(0,h.M)(b.name)} ${m(g)} / ${m(i)}`},`${b.name||"band"}-${l}`))}),a.slice(1).map(({row:b,ownRemaining:c,ownTotal:i},l)=>(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[11px] tabular-nums",style:{paddingLeft:`${(l+1)*10}px`},children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,d.jsx)("span",{className:"size-[8px] shrink-0 rounded-[2px]",style:{opacity:e(l+1),background:(0,k.dI)(a[l+1].ownPct)},"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate text-text-muted",children:(0,h.M)(b.name)})]}),(0,d.jsxs)("span",{className:(0,j.cn)("shrink-0",f(l+1)),children:[(0,g.Tl)("remaining {remaining} of {total}").replace("{remaining}",m(c)).replace("{total}",m(i)),b.resetAt?` ${n(!0,b.resetAt)}`:""]})]},`${b.name||"layer"}-${l}`))]})}function s({packs:a=[],className:b,nestedCycle:c=!1}){let e,f,q=(a||[]).filter(a=>a&&"object"==typeof a&&!0!==a.detailOnly&&!(0,i.eK)(a));if(0===q.length)return null;let t=(a||[]).filter(a=>a&&"object"==typeof a&&!0===a.detailOnly).map(a=>({...a,totalNum:Number(a.total||0),remainingNum:o(a)})),u=q.map(a=>{let b=Number(a.total||0);return{...a,totalNum:b,remainingNum:o(a)}}),v=(0,i.GT)(u),w=(0,i.Ug)(u,{force:!0===c}),x=new Set(w.map(a=>a.row)),y=(0,i.MK)(u).filter(a=>!x.has(a)),z=u.some(a=>"资源包"===String(a.name||"")),A=u.filter(a=>(0,i.Z_)(a)).filter(a=>!(z&&String(a.name||"").startsWith("赠送包"))),B=new Map;for(let a of A){let b=String(a.name||"").replace(/\s*\d+\s*$/,"").trim();b&&(B.has(b)||B.set(b,[]),B.get(b).push(a))}let C=[...B.entries()].map(([a,b])=>{let c=b.reduce((a,b)=>a+b.totalNum,0),d=b.reduce((a,b)=>a+Number(b.used||0),0),e=b.reduce((a,b)=>a+b.remainingNum,0);return{base:a,members:b,totalNum:c,usedNum:d,remainingNum:e,live:b.filter(a=>a.remainingNum>0&&a.totalNum>0)}}).filter(a=>a.members.length>=2&&a.totalNum>0),D=new Set(C.flatMap(a=>a.members)),E=v.monthly.filter(a=>!x.has(a)&&(C.length>0||!0===a.giftPack||!0===a.displayRemaining)),F=new Set,G=A.filter(a=>{if(D.has(a))return!1;let b=`${Number(a.used||0)}|${Number(a.total||0)}|${a.resetAt||""}`;return!F.has(b)&&(F.add(b),!0)}),H=[...C.flatMap(a=>a.members),...E,...G],I=H.reduce((a,b)=>a+b.totalNum,0),J=H.reduce((a,b)=>a+b.remainingNum,0),K=C.length+G.length+E.length,L=K<=1,M=1===K&&H.length>0&&H.every(a=>(0,i.Rs)(a)),N=M?(0,i.UL)(H[0]?.name):"",O=a=>"资源包"===a?"资源包 Credits":a;C.length;let P=L&&t.length>0,Q=P?t:H;return(0,d.jsxs)("div",{className:(0,j.cn)("min-w-0 space-y-2",b),children:[H.length>0&&(0,d.jsxs)("div",{className:"flex items-end justify-between gap-3",children:[(0,d.jsxs)("span",{className:"flex items-end gap-1.5 tabular-nums",children:[(0,d.jsx)(l,{className:"size-[12px] shrink-0 self-center text-primary"}),(0,d.jsx)("b",{className:"text-[14px] font-bold leading-none text-text",children:m(J)}),N?(0,d.jsxs)("span",{className:"text-[10px] leading-none text-text-muted",children:["(",N,")"]}):null,H[0]?.checkinToday&&(0,d.jsxs)("span",{className:"ml-1 inline-flex shrink-0 items-center gap-0.5 rounded bg-green-500/10 px-1 py-px text-[10px] font-medium text-green-600 dark:text-green-400",style:{transform:"translateY(-1px)"},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"check_circle"}),(0,g.Tl)("Checked in today"),Number.isInteger(H[0].streakDays)&&H[0].streakDays>1&&(0,d.jsxs)("span",{className:"text-text-muted",children:[" \xb7 ",(0,g.Tl)("{count}-day streak").replace("{count}",String(H[0].streakDays))]})]})]}),!M&&(0,d.jsxs)("span",{className:"inline-flex shrink-0 items-baseline text-xs leading-none tabular-nums text-text-muted",children:[m(J)," / ",m(I)]})]}),H.length>0&&((a,b)=>{let c=a.filter(a=>a.remainingNum>0&&a.totalNum>0).sort((a,b)=>String(a.resetAt||"").localeCompare(String(b.resetAt||""))),e=0,f=c.map(a=>({...a,alpha:(0,i.OG)(a)?1:Math.max(.45,.85-.05*e++)})),h=f;if(f.length>20){let a=f.slice(0,19),b=f.slice(19);h=[...a,{name:(0,g.Tl)("{count} more packs").replace("{count}",String(b.length)),remainingNum:b.reduce((a,b)=>a+b.remainingNum,0),totalNum:b.reduce((a,b)=>a+b.totalNum,0),resetAt:b[0]?.resetAt||null,recurring:!1,alpha:.6}]}let j=a.reduce((a,b)=>a+b.remainingNum,0),l=b>0?Math.max(0,1-j/b):0,o=b>0?j/b*100:0,p=o>0&&o<i.MF?(0,k.dI)(0):"hsl(142 60% 45%)";return(0,d.jsxs)(k.$n,{className:"flex gap-[2px]",role:"img","aria-label":(0,g.Tl)("{count} packs, remaining {remaining} of {total}").replace("{count}",String(c.length)).replace("{remaining}",m(j)).replace("{total}",m(b)),children:[h.map((a,c)=>{let e=b>0?a.remainingNum/b:0,f=(0,i.OG)(a);return(0,d.jsx)("span",{className:"block h-full min-w-[3px]",style:{flex:`${e.toFixed(4)} 1 0`,opacity:a.alpha,background:p},title:[a.name||(0,g.Tl)("Quota package"),`${(0,g.Tl)("Remaining")} ${m(a.remainingNum)} / ${m(a.totalNum)}`,a.resetAt?n(f,a.resetAt):null].filter(Boolean).join(",")},`${a.name||"pack"}-${c}`)}),l>0&&(0,d.jsx)("span",{"aria-hidden":"true",className:"block h-full",style:{flex:`${l.toFixed(4)} 1 0`}})]})})(Q,I),z&&(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:(0,g.Tl)("includes {names}").replace("{names}",[...G.map(a=>(0,h.M)(O(a.name))),"资源包 Credits"].join("、"))}),H.length>0&&(f=(e=Q.filter(a=>a.remainingNum>0)).filter(a=>a.resetAt).sort((a,b)=>String(a.resetAt).localeCompare(String(b.resetAt)))[0]||null,L&&(!P||M)?(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:(0,h.M)((0,i._6)(O(H[0].name))||H[0].name)}):0===e.length?null:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 text-[11px] tabular-nums",children:[(0,d.jsx)("span",{className:"text-text-muted",children:(0,g.Tl)("{count} resource packs").replace("{count}",String(e.length))}),f?(0,d.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-3 truncate text-text-muted",children:[(0,d.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0"}),m(f.remainingNum)]}),(0,d.jsx)("span",{className:"shrink-0",children:n((0,i.OG)(f),f.resetAt)})]}):null]})),G.length>0&&!L&&(0,d.jsx)(d.Fragment,{children:G.map((a,b)=>(0,d.jsx)(p,{row:a},`${a.name||"pool"}-${b}`))}),w.length>0&&(0,d.jsx)(r,{ladder:w}),(0,i.EJ)(y).map((a,b)=>a.family?(0,d.jsxs)("div",{className:"min-w-0 space-y-1.5",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5 text-[11px]",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0 text-text-muted"}),(0,d.jsx)("span",{className:"truncate text-text",children:(0,g.Tl)(a.family)})]}),a.rows.map((a,b)=>(0,d.jsx)(p,{row:a,inset:!0,label:(0,g.Tl)((0,i.TM)(a.name)?.window||a.name)},`${a.name||"win"}-${b}`))]},`${a.family}-${b}`):a.rows.map((a,c)=>(0,d.jsx)(p,{row:a},`${a.name||"win"}-${b}-${c}`)))]})}r.propTypes={ladder:f().arrayOf(f().object).isRequired},p.propTypes={row:f().shape({name:f().string,used:f().oneOfType([f().number,f().string]),total:f().oneOfType([f().number,f().string]),remaining:f().oneOfType([f().number,f().string]),remainingNum:f().number,totalNum:f().number,resetAt:f().oneOfType([f().string,f().instanceOf(Date)]),recurring:f().bool})},s.propTypes={nestedCycle:f().bool,packs:f().arrayOf(f().shape({name:f().string,used:f().oneOfType([f().number,f().string]),total:f().oneOfType([f().number,f().string]),remaining:f().oneOfType([f().number,f().string]),resetAt:f().oneOfType([f().string,f().instanceOf(Date)]),recurring:f().bool})),className:f().string}},38930:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(91431),f=c(32971);function g({caps:a,className:b="",colorOverride:c,size:h=16}){if(!a)return null;let i=Object.keys(e.bs).filter(b=>a[b]);return 0===i.length?null:(0,d.jsx)("span",{className:`inline-flex items-center gap-0.5 ${b}`,children:i.map(a=>(0,d.jsx)(f.default,{text:`${e.bs[a].label} — ${e.bs[a].desc}`,children:(0,d.jsx)("span",{className:`material-symbols-outlined leading-none cursor-help ${c||e.bs[a].color}`,style:{fontSize:`${h}px`},children:e.bs[a].icon})},a))})}},39645:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(67484),f=c(95145),g=c(99070),h=c(50377);function i({isOpen:a,onClose:b,title:c="Manual Configuration",configs:j=[]}){let{copy:k}=(0,h.C)(),[l,m]=(0,e.useState)(null);return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:c,size:"xl",children:(0,d.jsx)("div",{className:"flex flex-col gap-4",children:j.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.filename}),(0,d.jsxs)(g.default,{variant:"ghost",size:"sm",onClick:()=>{var c;return c=a.content,void(k(c,`manualconfig-${b}`),m(b),setTimeout(()=>m(null),2e3))},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:l===b?"check":"content_copy"}),l===b?"Copied!":"Copy"]})]}),(0,d.jsx)("pre",{className:"px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs overflow-x-auto whitespace-pre-wrap break-all max-h-60 overflow-y-auto border border-border",children:a.content})]},b))})})}},41371:(a,b,c)=>{c.d(b,{i:()=>f});var d=c(31417);let e=0,f=(0,d.v)((a,b)=>({notifications:[],addNotification:c=>{let d=++e,f={id:d,type:c.type||"info",message:c.message,title:c.title||null,duration:c.duration??5e3,dismissible:c.dismissible??!0,createdAt:Date.now()};return a(a=>({notifications:[...a.notifications,f]})),f.duration>0&&setTimeout(()=>b().removeNotification(d),f.duration),d},removeNotification:b=>{a(a=>({notifications:a.notifications.filter(a=>a.id!==b)}))},clearAll:()=>a({notifications:[]}),success:(a,c)=>b().addNotification({type:"success",message:a,title:c}),error:(a,c)=>b().addNotification({type:"error",message:a,title:c,duration:8e3}),warning:(a,c)=>b().addNotification({type:"warning",message:a,title:c}),info:(a,c)=>b().addNotification({type:"info",message:a,title:c})}))},42118:(a,b,c)=>{c.d(b,{D:()=>i});var d=c(67484),e=c(13033);function f(a){return()=>{}}function g(){return!1}function h(){return!1}function i(){let{theme:a,setTheme:b,toggleTheme:c,initTheme:i}=(0,e.A)(),j=(0,d.useSyncExternalStore)(f,g,h);return{theme:a,setTheme:b,toggleTheme:c,isDark:"dark"===a||"system"===a&&j}}},42196:(a,b,c)=>{c.d(b,{default:()=>y});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(2116),i=c.n(h),j=c(19099),k=c(71404),l=c(12020),m=c(92592),n=c(50377),o=c(90351),p=c(99258);c(91937);var q=c(99070),r=c(95145);let s=["embedding","image","video","tts","stt","systemone","rerank"],t="/dashboard/media-providers/web",u=[{href:"/dashboard/endpoint",label:"Endpoint & Key",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combo & Vision Adapter",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/token-saver",label:"Token Saver",icon:"savings"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"}],v=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"},{href:"/dashboard/translator",label:"Translator",icon:"translate"}],w=[{label:"Feishu Group",icon:"groups",href:"https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=629nc6fd-1ce9-4822-8242-239f87f471c3&qr_code=true"},{label:"Discord",icon:"forum",href:"https://discord.gg/zDWT6YKav"},{label:"GitHub",icon:"code",href:"https://github.com/techysy/10router"},{label:"Telegram",icon:"send",href:"https://t.me/techysy"}],x=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/skills",label:"Skills",icon:"extension"}];function y({onClose:a}){let b=(0,j.usePathname)(),[c,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(0),[K,L]=(0,e.useState)(!1),{copied:M,copy:N}=(0,n.C)(2e3),O=l.h0.installCmdLatest,P=a=>"/dashboard/endpoint"===a?"/dashboard"===b||b.startsWith("/dashboard/endpoint"):b.startsWith(a),Q=async()=>{await (0,o.e)(O),N(O);let a=l.h0.shutdownCountdownSec;J(a);let b=setInterval(()=>{J(a-=1),a<=0&&(clearInterval(b),fetch("/api/version/shutdown",{method:"POST"}).catch(()=>{}),h(!0))},1e3)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("aside",{className:"flex w-72 flex-col border-r border-border-subtle bg-vibrancy backdrop-blur-xl transition-colors duration-300 min-h-full",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,d.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,d.jsxs)(i(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-9 rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 shadow-[var(--shadow-warm)]",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:"10Router Proxy"}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["v",l.vQ.version]})]})]}),C&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 rounded p-1.5 -m-1 bg-amber-500/10 border border-amber-500/40",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-amber-700 dark:text-amber-500",children:(0,p.Tl)("Installed version ${disk} differs from the running build ${current}.").replace("${disk}",C.diskVersion).replace("${current}",C.currentVersion)}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted",children:(0,p.Tl)("Quit and reopen 10router, then refresh this page.")})]}),A&&(0,d.jsxs)("div",{className:"flex flex-col gap-1.5 rounded p-1 -m-1",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:[(0,p.Tl)("↑ New version available:")," v",A.latestVersion]}),"fpk"===A.installChannel||"desktop"===A.installChannel?(0,d.jsx)("a",{href:A.releaseUrl,target:"_blank",rel:"noreferrer",className:"px-2 py-1 rounded bg-green-600 hover:bg-green-700 dark:bg-amber-500 dark:hover:bg-amber-600 text-white text-[11px] font-semibold transition-colors text-center",children:"fpk"===A.installChannel?(0,p.Tl)("Get the fpk from Releases"):(0,p.Tl)("Get the installer from Releases")}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>F(!0),className:"px-2 py-1 rounded bg-green-600 hover:bg-green-700 dark:bg-amber-500 dark:hover:bg-amber-600 text-white text-[11px] font-semibold transition-colors cursor-pointer",children:(0,p.Tl)("Update now")}),(0,d.jsx)("button",{onClick:()=>N(O),title:(0,p.Tl)("Copy install command"),className:"flex-1 text-left hover:opacity-80 transition-opacity cursor-pointer min-w-0",children:(0,d.jsx)("code",{className:"block text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono truncate",children:M?"✓ "+(0,p.Tl)("copied!"):O})})]})]})]}),(0,d.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-0.5 overflow-y-auto custom-scrollbar",children:[u.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:b.label})]},b.href)),(0,d.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,d.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),(0,d.jsxs)("button",{onClick:()=>f(a=>!a),className:(0,k.cn)("w-full flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",b.startsWith("/dashboard/media-providers")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"perm_media"}),(0,d.jsx)("span",{className:"text-sm font-medium flex-1 text-left",children:"Media Providers"}),m.rj.some(a=>s.includes(a.id)&&a.isNew)&&(0,d.jsx)("span",{className:"text-[10px] font-semibold px-1.5 py-0.5 rounded-[3px] bg-green-500/15 text-green-400",children:"NEW"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] transition-transform",style:{transform:c?"rotate(180deg)":"rotate(0deg)"},children:"expand_more"})]}),c&&(0,d.jsxs)("div",{className:"pl-4",children:[m.rj.filter(a=>s.includes(a.id)).map(c=>(0,d.jsxs)(i(),{href:`/dashboard/media-providers/${c.id}`,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(`/dashboard/media-providers/${c.id}`)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:c.icon}),(0,d.jsx)("span",{className:"text-sm",children:c.label}),c.isNew&&(0,d.jsx)("span",{className:"ml-auto text-[10px] font-semibold px-1.5 py-0.5 rounded-[3px] bg-green-500/15 text-green-400",children:"NEW"})]},c.id)),(0,d.jsxs)(i(),{href:t,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(t)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"travel_explore"}),(0,d.jsx)("span",{className:"text-sm",children:"Web Fetch & Search"})]},"web")]}),x.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:b.label})]},b.href)),v.map(b=>"/dashboard/translator"!==b.href||K?(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:b.label})]},b.href):null),(0,d.jsxs)(i(),{href:"/dashboard/experimental",onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P("/dashboard/experimental")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P("/dashboard/experimental")?"fill-1":"group-hover:text-primary transition-colors"),children:"science"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Experimental"})]}),(0,d.jsxs)(i(),{href:"/dashboard/profile",onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P("/dashboard/profile")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P("/dashboard/profile")?"fill-1":"group-hover:text-primary transition-colors"),children:"settings"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Settings"})]}),(0,d.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,d.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:(0,p.Tl)("Community")}),w.map(b=>(0,d.jsxs)("a",{href:b.href,target:"_blank",rel:"noopener noreferrer",onClick:a,className:"flex items-center gap-3 px-3 py-1 rounded-lg transition-all group text-text-muted hover:bg-surface-2 hover:text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] group-hover:text-primary transition-colors",children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:(0,p.Tl)(b.label)})]},b.href))]})]})]})]}),(0,d.jsx)(r.ConfirmModal,{isOpen:E,onClose:()=>F(!1),onConfirm:()=>{F(!1),H(!0)},title:(0,p.Tl)("Update 10Router"),message:(0,p.Tl)("Show install command for v${version}? You can copy it and shutdown to install manually.").replace("${version}",A?.latestVersion||""),confirmText:(0,p.Tl)("Show Command"),cancelText:(0,p.Tl)("Cancel"),variant:"primary"}),(g||G)&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-6",children:G?(0,d.jsx)(z,{latestVersion:A?.latestVersion,installCmd:O,copied:M,onCopyAndShutdown:Q,onCancel:()=>{H(!1),J(0)},countdown:I,isDisconnected:g}):(0,d.jsxs)("div",{className:"text-center p-8",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-16 rounded-full bg-red-500/20 text-red-500 mx-auto mb-4",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"power_off"})}),(0,d.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:(0,p.Tl)("Server Disconnected")}),(0,d.jsx)("p",{className:"text-text-muted mb-6",children:(0,p.Tl)("The proxy server has been stopped.")}),(0,d.jsx)(q.default,{variant:"secondary",onClick:()=>globalThis.location.reload(),children:(0,p.Tl)("Reload Page")})]})})]})}function z({latestVersion:a,installCmd:b,copied:c,onCopyAndShutdown:e,onCancel:f,countdown:g,isDisconnected:h}){let i=g>0;return(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-11 rounded-full bg-amber-500/20 text-amber-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"content_copy"})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("h2",{className:"text-lg font-semibold",children:[(0,p.Tl)("Update 10Router"),a?` v${a}`:""]}),(0,d.jsx)("p",{className:"text-xs text-white/60",children:h?(0,p.Tl)("Server stopped. Paste the command into a terminal to install."):i?(0,p.Tl)("Command copied. Server will stop in {s}s...").replace("{s}",String(g)):(0,p.Tl)("Click the button below to copy the install command and shutdown.")})]})]}),(0,d.jsx)("p",{className:"text-sm text-white/80 mb-2",children:(0,p.Tl)("Install command:")}),(0,d.jsx)("div",{className:"w-full px-3 py-2 rounded bg-white/5 mb-4",children:(0,d.jsx)("code",{className:"text-xs font-mono text-amber-400 break-all",children:b})}),(0,d.jsxs)("ol",{className:"text-xs text-white/70 space-y-1 list-decimal list-inside mb-4",children:[(0,d.jsx)("li",{children:(0,p.Tl)("Click Copy & Shutdown below.")}),(0,d.jsx)("li",{children:(0,p.Tl)("Paste the command into your terminal and press Enter.")}),(0,d.jsx)("li",{children:(0,p.Tl)("Run 10router again after install.")})]}),h?(0,d.jsx)(q.default,{variant:"secondary",fullWidth:!0,onClick:()=>globalThis.location.reload(),children:(0,p.Tl)("Reload Page")}):(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(q.default,{variant:"secondary",onClick:f,disabled:i,className:"whitespace-nowrap shrink-0",children:(0,p.Tl)("Cancel")}),(0,d.jsx)(q.default,{variant:"primary",fullWidth:!0,onClick:e,disabled:i,children:c?(0,p.Tl)("✓ Copied — shutting down..."):i?(0,p.Tl)("Shutting down in {s}s").replace("{s}",String(g)):(0,p.Tl)("Copy & Shutdown")})]})]})}y.propTypes={onClose:g().func},z.propTypes={latestVersion:g().string,installCmd:g().string.isRequired,copied:g().bool,onCopyAndShutdown:g().func.isRequired,onCancel:g().func.isRequired,countdown:g().number,isDisconnected:g().bool}},42372:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(85306);c(53838);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},43182:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);i=(j.then?(await j)():j)[0];let l="https://gitlab.com";function k({isOpen:a,providerInfo:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)(null),[j,m]=(0,f.useState)(l),[n,o]=(0,f.useState)(""),[p,q]=(0,f.useState)(""),[r,s]=(0,f.useState)(""),[t,u]=(0,f.useState)(!1),[v,w]=(0,f.useState)(null),[x,y]=(0,f.useState)(!1),[z,A]=(0,f.useState)(null),B=()=>{h(null),m(l),o(""),q(""),s(""),w(null),u(!1),y(!1),A(null),d()},C=async()=>{if(!r.trim())return void w("Personal Access Token is required");u(!0),w(null);try{let a=await fetch("/api/oauth/gitlab/pat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r.trim(),baseUrl:j.trim()||l})}),b=await a.json();if(!a.ok)throw Error(b.error||"Authentication failed");c?.(),B()}catch(a){w(a.message)}finally{u(!1)}};return a?x&&z?(0,e.jsx)(i.LF,{isOpen:!0,provider:"gitlab",providerInfo:b,oauthMeta:z,onSuccess:()=>{c?.(),B()},onClose:()=>{y(!1),A(null)}}):(0,e.jsx)(i.aF,{isOpen:a,title:"Connect GitLab Duo",onClose:B,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[!g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"Choose how to authenticate with GitLab Duo:"}),(0,e.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,e.jsxs)("button",{onClick:()=>h("oauth"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"lock_open"}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium",children:"OAuth App"}),(0,e.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab OAuth application"})]})]}),(0,e.jsxs)("button",{onClick:()=>h("pat"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"key"}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium",children:"Personal Access Token"}),(0,e.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab PAT with api scope"})]})]})]})]}),"oauth"===g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("p",{className:"text-xs text-text-muted",children:["Create an OAuth app at"," ",(0,e.jsx)("a",{href:`${j.trim()||l}/-/profile/applications`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Applications"})," ","with redirect URI"," ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"http://localhost/callback"})]}),(0,e.jsx)(i.pd,{label:"GitLab Base URL",value:j,onChange:a=>m(a.target.value),placeholder:l}),(0,e.jsx)(i.pd,{label:"Client ID",value:n,onChange:a=>o(a.target.value),placeholder:"Your OAuth application client ID"}),(0,e.jsx)(i.pd,{label:"Client Secret (optional for PKCE)",value:p,onChange:a=>q(a.target.value),placeholder:"Leave empty for public PKCE app"}),v&&(0,e.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:()=>{n.trim()?(w(null),A({baseUrl:j.trim()||l,clientId:n.trim(),clientSecret:p.trim()}),y(!0)):w("Client ID is required")},fullWidth:!0,disabled:!n.trim(),children:"Authorize"}),(0,e.jsx)(i.$n,{onClick:()=>{h(null),w(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"pat"===g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("p",{className:"text-xs text-text-muted",children:["Create a PAT at"," ",(0,e.jsx)("a",{href:`${j.trim()||l}/-/user_settings/personal_access_tokens`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Access Tokens"})," ","with scopes: ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"api"}),","," ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"read_user"}),", and"," ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"ai_features"}),"."]}),(0,e.jsx)(i.pd,{label:"GitLab Base URL",value:j,onChange:a=>m(a.target.value),placeholder:l}),(0,e.jsx)(i.pd,{label:"Personal Access Token",value:r,onChange:a=>s(a.target.value),placeholder:"glpat-xxxxxxxxxxxxxxxxxxxx",type:"password"}),v&&(0,e.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:C,fullWidth:!0,disabled:!r.trim()||t,loading:t,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:()=>{h(null),w(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})}):null}k.propTypes={isOpen:h().bool.isRequired,providerInfo:h().shape({name:h().string}),onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},45986:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A:()=>ak,e:()=>al});var e=c(48249),f=c(3390),g=c(48604),h=c(53930),i=c(68695),j=c(98046),k=c(93231),l=c(72525),m=c(55283),n=c(18254),o=c(46845),p=c(64368),q=c(31364),r=c(35142),s=c(45602),t=c(27390),u=c(38310),v=c(65649),w=c(18146),x=c(62733),y=c(11927),z=c(68979),A=c(80018),B=c(68926),C=c(65052),D=c(41741),E=c(28532),F=c(83304),G=c(40407),H=c(48338),I=c(26351),J=c(57697),K=c(18914),L=c(15375),M=c(19026),N=c(57307),O=c(17734),P=c(96563),Q=c(77940),R=c(78592),S=c(17636),T=c(86501),U=c(50170),V=c(36604),W=c(68058),X=c(78276),Y=c(40090),Z=c(37373),$=c(21141),_=c(28447),aa=c(55421),ab=c(93923),ac=c(48212),ad=c(13454),ae=c(69746),af=c(44920),ag=c(57218),ah=c(340),ai=c(88099),aj=a([f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad,ae,af,ag,ah,ai]);[f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad,ae,af,ag,ah,ai]=aj.then?(await aj)():aj;let al={openai:f.A,anthropic:g.A,claude:h.A,gemini:i.A,deepseek:j.A,minimax:k.A,"minimax-cn":k.A,groq:l.A,nvidia:m.A,xai:n.A,openrouter:o.A,mistral:p.A,cohere:q.A,perplexity:r.A,together:s.A,fireworks:t.A,siliconflow:u.A,"siliconflow-cn":u.A,kimi:v.A,glm:w.A,"glm-cn":w.A,"aws-polly":x.A,azure:y.A,"cloudflare-ai":z.A,huggingface:A.A,ollama:B.A,sambanova:C.A,cerebras:D.A,venice:E.A,nebius:F.A,hyperbolic:G.A,featherless:H.A,baidu:I.A,tencent:J.A,"volcengine-ark":K.A,github:L.A,cursor:M.A,cline:N.A,windsurf:O.A,kiro:P.A,trae:Q.A,"jina-ai":R.A,exa:S.A,tavily:T.A,"brave-search":U.A,searchapi:V.A,searxng:W.A,"fish-audio":X.A,assemblyai:Y.A,elevenlabs:Z.A,"voyage-ai":$.A,"fal-ai":_.A,recraft:aa.A,"stability-ai":ab.A,runwayml:ac.A,morph:ad.A,comfyui:ae.A,sensenova:af.A,longcat:ag.A,vertex:ah.A,"vercel-ai-gateway":ai.A};function ak({providerId:a,size:b=32,className:c=""}){let d=al[a];if(!d)return null;let f=d.Color||d;return(0,e.jsx)(f,{size:b,className:c})}d()}catch(a){d(a)}})},48781:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(2116),f=c.n(e),g=c(12020);let h=[{label:"Features",href:"#features"},{label:"Pricing",href:"#pricing"},{label:"Changelog",href:"#"}],i=[{label:"Documentation",href:"#"},{label:"API Reference",href:"#"},{label:"Help Center",href:"#"}],j=[{label:"About",href:"#"},{label:"Blog",href:"#"},{label:"Contact",href:"#"}];function k(){return(0,d.jsx)("footer",{className:"bg-bg border-t border-border pt-16 pb-12",children:(0,d.jsxs)("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-10 mb-12",children:[(0,d.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,d.jsx)("div",{className:"size-6 text-primary",children:(0,d.jsx)("svg",{className:"w-full h-full",fill:"currentColor",viewBox:"0 0 48 48",children:(0,d.jsx)("path",{clipRule:"evenodd",d:"M12.0799 24L4 19.2479L9.95537 8.75216L18.04 13.4961L18.0446 4H29.9554L29.96 13.4961L38.0446 8.75216L44 19.2479L35.92 24L44 28.7521L38.0446 39.2479L29.96 34.5039L29.9554 44H18.0446L18.04 34.5039L9.95537 39.2479L4 28.7521L12.0799 24Z",fillRule:"evenodd"})})}),(0,d.jsx)("span",{className:"text-xl font-bold text-text-main",children:g.vQ.name})]}),(0,d.jsx)("p",{className:"text-text-muted mb-6 max-w-sm font-light",children:"The unified interface for modern AI infrastructure. Secure, observable, and scalable."}),(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"Twitter",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z"})})}),(0,d.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"GitHub",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 22 12.017C22 6.484 17.522 2 12 2z"})})})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Product"}),(0,d.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:h.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(f(),{href:a.href,className:"hover:text-primary transition-colors",children:a.label})},a.label))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Resources"}),(0,d.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:i.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(f(),{href:a.href,className:"hover:text-primary transition-colors",children:a.label})},a.label))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Company"}),(0,d.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:j.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(f(),{href:a.href,className:"hover:text-primary transition-colors",children:a.label})},a.label))})]})]}),(0,d.jsxs)("div",{className:"border-t border-border pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,d.jsxs)("p",{className:"text-sm text-text-muted",children:["\xa9 ",new Date().getFullYear()," ",g.vQ.name," Inc. All rights reserved."]}),(0,d.jsxs)("div",{className:"flex gap-6 text-sm text-text-muted",children:[(0,d.jsx)(f(),{href:"#",className:"hover:text-primary transition-colors",children:"Privacy Policy"}),(0,d.jsx)(f(),{href:"#",className:"hover:text-primary transition-colors",children:"Terms of Service"})]})]})]})})}},50377:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(67484),e=c(90351);function f(a=2e3){let[b,c]=(0,d.useState)(null),g=(0,d.useRef)(null);return{copied:b,copy:(0,d.useCallback)((b,d="default")=>{(0,e.e)(b),c(d),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{c(null)},a)},[a])}}},50585:(a,b,c)=>{c.d(b,{default:()=>o});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(17660),i=c(4770),j=c(75171),k=c(99258);let l="__none__",m=[{value:"none",label:"None (single pool)"},{value:"round-robin",label:"Round-robin"},{value:"random",label:"Random"}],n={"zcode-free":{pathKey:"zcodeGatewayPath",defaultPath:"/gateway/zcode/v1/messages"},"minimax-free":{pathKey:"minimaxGatewayPath",defaultPath:"/gateway/minimax/v1/messages"},"trae-free":{pathKey:"traeGatewayPath",defaultPath:"/gateway/trae/v1/messages"}};function o({providerId:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(l),[p,q]=(0,e.useState)("none"),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)(""),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)({state:"idle"}),D=(0,e.useCallback)(async(b,c)=>{s(!0);try{let d=await fetch("/api/settings",{cache:"no-store"}),e=(d.ok?await d.json():{}).providerStrategies||{},f={...e[a]||{}};b===l?delete f.proxyPoolId:f.proxyPoolId=b,"none"===c?delete f.rotateStrategy:f.rotateStrategy=c;let g={...e};0===Object.keys(f).length?delete g[a]:g[a]=f,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:g})}),u(!0),setTimeout(()=>u(!1),1500)}catch(a){console.log("Save proxy config error:",a)}finally{s(!1)}},[a]),E=(0,e.useCallback)(async()=>{if(n[a]){C({state:"probing"});try{let a=encodeURIComponent(v.trim()||"127.0.0.1"),b=encodeURIComponent(x.trim()||"47860"),c=await fetch(`/api/gateway-probe?host=${a}&port=${b}`,{cache:"no-store"}),d=c.ok?await c.json():{reachable:!1};C({state:d.reachable?"online":"offline"})}catch{C({state:"offline"})}}},[a,v,x]),F=(0,e.useCallback)(async(b,c,d)=>{s(!0);try{let e=await fetch("/api/settings",{cache:"no-store"});e.ok&&await e.json();let f={zcodeGatewayHost:String(b||"").trim(),zcodeGatewayPort:String(c||"").trim(),[n[a]?.pathKey||"zcodeGatewayPath"]:String(d||"").trim()};await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),u(!0),setTimeout(()=>u(!1),1500),E()}catch(a){console.log("Save gateway host error:",a)}finally{s(!1)}},[a,E]),G=b.length>=2,H="none"!==p;return(0,d.jsxs)(h.default,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-full bg-green-500/10 text-green-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"lock_open"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"No authentication required"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"This provider is ready to use. Optionally route requests through a proxy pool to bypass IP-based limits."})]}),t&&(0,d.jsx)(j.default,{variant:"success",size:"sm",children:"Saved"})]}),(0,d.jsx)(i.default,{label:"Proxy Pool",value:f,onChange:a=>{var b;g(b=a.target.value),D(b,p)},disabled:r||H,options:[{value:l,label:"None (direct)"},...b.map(a=>({value:a.id,label:a.name}))],hint:H?"Pool selector is ignored when rotation is active — all active pools are used.":void 0}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 mt-4",children:[(0,d.jsx)("label",{className:"text-sm font-medium text-text-main",children:"Rotation Strategy"}),(0,d.jsx)("select",{value:p,onChange:a=>{var b;q(b=a.target.value),D(f,b)},disabled:r,className:"py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all disabled:opacity-50",children:m.map(a=>(0,d.jsx)("option",{value:a.value,disabled:"none"!==a.value&&!G,children:a.label},a.value))}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:G?H?"round-robin"===p?`Rotating through all ${b.length} active pools in order. State is in-memory (resets on restart).`:`Picking a random pool from ${b.length} active pools each request.`:"Uses the selected pool above. Set to Round-robin or Random to rotate across all active pools.":"Need at least 2 active proxy pools for rotation."})]}),n[a]&&(0,d.jsxs)("div",{className:"flex flex-col gap-2 mt-4 pt-4 border-t border-black/5 dark:border-white/5",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsx)("label",{className:"text-sm font-medium text-text-main",children:(0,k.Tl)("CreditDaddy gateway host")}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:["probing"===B.state&&(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:[(0,d.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-gray-400 animate-pulse"}),(0,k.Tl)("Probing gateway...")]}),"online"===B.state&&(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-green-600 dark:text-green-400",children:[(0,d.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-green-500"}),(0,k.Tl)("Gateway reachable")]}),"offline"===B.state&&(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-amber-600 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-amber-500"}),(0,k.Tl)("Gateway unreachable")]}),(0,d.jsx)("button",{type:"button",onClick:E,disabled:r,className:"text-[11px] text-text-muted hover:text-primary transition-colors",children:(0,k.Tl)("Re-probe")})]})]}),"offline"===B.state&&(0,d.jsxs)("div",{className:"rounded-md bg-amber-500/10 border border-amber-500/20 px-2.5 py-2 text-xs text-amber-700 dark:text-amber-300",children:[(0,k.Tl)("Gateway unreachable — install/launch CreditDaddy and enable the gateway, then re-probe here.")," ",(0,d.jsx)("a",{href:"https://github.com/techysy/CreditDaddy/releases/latest",target:"_blank",rel:"noreferrer",className:"underline font-medium",children:(0,k.Tl)("Download CreditDaddy")})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{value:v,onChange:a=>w(a.target.value),placeholder:(0,k.Tl)("Empty = this machine (127.0.0.1); LAN = CreditDaddy host IP"),className:"flex-1 py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,d.jsx)("input",{value:x,onChange:a=>y(a.target.value),placeholder:"47860",className:"w-24 py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,d.jsx)("input",{value:z,onChange:a=>A(a.target.value),placeholder:n[a].defaultPath,className:"w-56 py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,d.jsx)("button",{onClick:()=>F(v,x,z),disabled:r,className:"px-3 py-2 text-sm rounded-md bg-primary text-white disabled:opacity-50",children:(0,k.Tl)("Save")})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:["trae-free"===a?(0,k.Tl)('Local: enable the gateway switch under "Trae → Interface settings" in CreditDaddy desktop and add a Trae (SOLO) account (default 127.0.0.1:47860).'):"minimax-free"===a?(0,k.Tl)('Local: enable the gateway switch under "MiniMax → Interface settings" in CreditDaddy desktop and add a MiniMax account (default 127.0.0.1:47860).'):(0,k.Tl)('Local: enable the gateway switch under "ZCode → Interface settings" in CreditDaddy desktop (default 127.0.0.1:47860).')," ",(0,k.Tl)('LAN (NAS, etc.): put the CreditDaddy machine IP above, then in the same CreditDaddy panel turn on "Allow LAN access" and add this 10Router machine\'s IP to the allowlist, then restart CreditDaddy.')," ",(0,k.Tl)("The gateway is protected by an IP allowlist and checks no key, so there is nothing to enter here.")," ",(0,k.Tl)("Getting a 404? The path must keep its brand segment (e.g. /gateway/zcode/v1/messages) — CreditDaddy serves only the branded endpoints, and a build older than the rename still serves the old /gateway/v1/messages, so upgrade CreditDaddy rather than editing this field.")]})]})]})}o.propTypes={providerId:g().string.isRequired}},51109:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);function k({isOpen:a,onSuccess:b,onClose:c}){let[d,g]=(0,f.useState)(""),[h,j]=(0,f.useState)(""),[l,m]=(0,f.useState)(null),[n,o]=(0,f.useState)(!1),[p,q]=(0,f.useState)(!1),[r,s]=(0,f.useState)(!1),[t,u]=(0,f.useState)(!1),v=async()=>{q(!0),m(null),s(!1),u(!1);try{let a=await fetch("/api/oauth/cursor/auto-import"),b=await a.json();b.found?(g(b.accessToken),j(b.machineId),s(!0)):b.windowsManual?u(!0):m(b.error||"Could not auto-detect tokens")}catch(a){m("Failed to auto-detect tokens")}finally{q(!1)}},w=async()=>{if(!d.trim())return void m("Please enter an access token");if(!h.trim())return void m("Please enter a machine ID");o(!0),m(null);try{let a=await fetch("/api/oauth/cursor/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:d.trim(),machineId:h.trim()})}),e=await a.json();if(!a.ok)throw Error(e.error||"Import failed");b?.(),c()}catch(a){m(a.message)}finally{o(!1)}};return(0,e.jsx)(i.aF,{isOpen:a,title:"Connect Cursor IDE",onClose:c,children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[p&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Auto-detecting tokens..."}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"Reading from Cursor IDE database"})]}),!p&&(0,e.jsxs)(e.Fragment,{children:[r&&(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,e.jsx)("p",{className:"text-sm text-green-800 dark:text-green-200",children:"Tokens auto-detected from Cursor IDE successfully!"})]})}),t&&(0,e.jsxs)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-3 rounded-lg border border-amber-200 dark:border-amber-800 flex flex-col gap-2",children:[(0,e.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,e.jsx)("p",{className:"text-sm font-medium text-amber-800 dark:text-amber-200",children:"Could not read Cursor database automatically."})]}),(0,e.jsxs)("p",{className:"text-xs text-amber-700 dark:text-amber-300",children:["Make sure Cursor IDE has been opened at least once, then click ",(0,e.jsx)("strong",{children:"Retry"}),". If the problem persists, paste your tokens manually below."]}),(0,e.jsx)(i.$n,{onClick:v,variant:"outline",fullWidth:!0,children:"Retry"})]}),!r&&!t&&!l&&(0,e.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,e.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Cursor IDE not detected. Please paste your tokens manually."})]})}),(0,e.jsxs)("div",{children:[(0,e.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Access Token ",(0,e.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,e.jsx)("textarea",{value:d,onChange:a=>g(a.target.value),placeholder:"Access token will be auto-filled...",rows:3,className:"w-full px-3 py-2 text-sm font-mono border border-border rounded-lg bg-surface focus:outline-none focus:border-primary resize-none"})]}),(0,e.jsxs)("div",{children:[(0,e.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Machine ID ",(0,e.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,e.jsx)(i.pd,{value:h,onChange:a=>j(a.target.value),placeholder:"Machine ID will be auto-filled...",className:"font-mono text-sm"})]}),l&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:l})}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:w,fullWidth:!0,disabled:n||!d.trim()||!h.trim(),children:n?"Importing...":"Import Token"}),(0,e.jsx)(i.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}i=(j.then?(await j)():j)[0],k.propTypes={isOpen:h().bool.isRequired,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},51585:(a,b,c)=>{c.d(b,{default:()=>o});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(95145),i=c(83552),j=c(99070),k=c(75171),l=c(92592),m=c(4770),n=c(99258);function o({isOpen:a,connection:b,proxyPools:c,onSave:f,onClose:g}){let p,q,r,[s,t]=(0,e.useState)({name:"",priority:1,apiKey:""}),[u,v]=(0,e.useState)({azureEndpoint:"",apiVersion:"2024-10-01-preview",deployment:"",organization:""}),[w,x]=(0,e.useState)({accountId:""}),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),[K,L]=(0,e.useState)(!1),M=b?.providerSpecificData?.authMethod,N=b?.authType==="oauth"||"oauth"===M||"desktop-session"===M||"string"==typeof b?.accessToken&&b.accessToken.startsWith("mimo-desktop-session"),O=b?.provider==="azure",P=b?.provider==="cloudflare-ai",Q=!!b&&((0,l.mq)(b.provider)||(0,l.gb)(b.provider)),R=b&&l.Q2?.[b.provider]?.regions||null,S=()=>{if(R&&y)return{...b?.providerSpecificData||{},region:y}},T=async()=>{if(b?.provider){D(!0),F(null);try{let a=await fetch(`/api/providers/${b.id}/test`,{method:"POST"}),c=await a.json();F(c.valid?"success":"failed")}catch{F("failed")}finally{D(!1)}}},U=async()=>{if(b?.provider&&s.apiKey){H(!0),J(null);try{let a=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b.provider,apiKey:s.apiKey,...O?{providerSpecificData:u}:{},...P?{providerSpecificData:w}:{},...R?{providerSpecificData:S()}:{}})}),c=await a.json();J(c.valid?"success":"failed")}catch{J("failed")}finally{H(!1)}}},V=async()=>{if(b){L(!0);try{let a={name:s.name,priority:s.priority};if(!N&&s.apiKey){a.apiKey=s.apiKey;let c="success"===I;if(!c)try{H(!0),J(null);let a=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b.provider,apiKey:s.apiKey,...O?{providerSpecificData:u}:{},...P?{providerSpecificData:w}:{},...R?{providerSpecificData:S()}:{}})});c=!!(await a.json()).valid,J(c?"success":"failed")}catch{J("failed")}finally{H(!1)}c&&(a.testStatus="active",a.lastError=null,a.lastErrorAt=null)}O&&(a.providerSpecificData={azureEndpoint:u.azureEndpoint,apiVersion:u.apiVersion,deployment:u.deployment,organization:u.organization}),P&&(a.providerSpecificData={accountId:w.accountId}),R&&y&&(a.providerSpecificData=S()),await f(a)}finally{L(!1)}}};return b?(0,d.jsx)(h.default,{isOpen:a,title:"Edit Connection",onClose:g,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(i.default,{label:"Name",value:s.name,onChange:a=>t({...s,name:a.target.value}),placeholder:N?"Account name":"Production Key"}),N&&b.email&&(p=b.providerSpecificData?.mimoUserId||b.providerSpecificData?.uid||null,r=(q="xiaomi-mimo"===b.provider||"xiaomi-tokenplan"===b.provider||/^\d+@xiaomi$/.test(b.email))&&p?p:b.email,(0,d.jsxs)("div",{className:"bg-sidebar/50 p-3 rounded-lg",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted mb-1",children:q?"UID":"Email"}),(0,d.jsx)("p",{className:"font-medium",children:r})]})),(0,d.jsx)(i.default,{label:"Priority",type:"number",value:s.priority,onChange:a=>t({...s,priority:Number.parseInt(a.target.value,10)||1})}),!N&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(i.default,{label:"API Key",type:"password",value:s.apiKey,onChange:a=>t({...s,apiKey:a.target.value}),placeholder:"Enter new API key",hint:"Leave blank to keep the current API key.",className:"flex-1"}),(0,d.jsx)("div",{className:"pt-6",children:(0,d.jsx)(j.default,{onClick:U,disabled:!s.apiKey||G||K,variant:"secondary",children:G?"Checking...":"Check"})})]}),I&&(0,d.jsx)(k.default,{variant:"success"===I?"success":"error",children:"success"===I?"Valid":"Invalid"})]}),O&&(0,d.jsxs)("div",{className:"bg-sidebar/50 p-4 rounded-lg border border-accent/20",children:[(0,d.jsx)("h3",{className:"font-semibold mb-3 text-sm",children:"Azure OpenAI Configuration"}),(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(i.default,{label:"Azure Endpoint",value:u.azureEndpoint,onChange:a=>v({...u,azureEndpoint:a.target.value}),placeholder:"https://your-resource.openai.azure.com",hint:"Your Azure OpenAI resource endpoint URL"}),(0,d.jsx)(i.default,{label:"Deployment Name",value:u.deployment,onChange:a=>v({...u,deployment:a.target.value}),placeholder:"gpt-4",hint:"The deployment name in your Azure resource"}),(0,d.jsx)(i.default,{label:"API Version",value:u.apiVersion,onChange:a=>v({...u,apiVersion:a.target.value}),placeholder:"2024-10-01-preview",hint:"Azure OpenAI API version to use"}),(0,d.jsx)(i.default,{label:"Organization",value:u.organization,onChange:a=>v({...u,organization:a.target.value}),placeholder:"Organization ID",hint:"Required for billing"})]})]}),R&&(0,d.jsxs)("div",{children:[(0,d.jsx)(m.default,{label:"Region",value:y,onChange:a=>z(a.target.value),options:R.map(a=>({value:a.id,label:a.label}))}),A&&(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-1 flex items-center gap-1",children:[(0,d.jsx)("span",{children:"\uD83C\uDF10"}),(0,d.jsx)("span",{children:(0,n.Tl)("Current network location ({country}) recommended region: {region}").replace("{country}",A.country).replace("{region}",A.regionId)})]})]}),!Q&&!O&&!P&&(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(j.default,{onClick:T,variant:"secondary",disabled:C,children:C?"Testing...":"Test Connection"}),E&&(0,d.jsx)(k.default,{variant:"success"===E?"success":"error",children:"success"===E?"Valid":"Failed"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.default,{onClick:V,fullWidth:!0,disabled:K,children:K?"Saving...":"Save"}),(0,d.jsx)(j.default,{onClick:g,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}o.propTypes={isOpen:g().bool.isRequired,connection:g().shape({id:g().string,name:g().string,email:g().string,priority:g().number,authType:g().string,provider:g().string,providerSpecificData:g().object}),proxyPools:g().arrayOf(g().shape({id:g().string,name:g().string})),onSave:g().func.isRequired,onClose:g().func.isRequired}},51817:(a,b,c)=>{c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(74429),g=c(49885),h=c.n(g),i=c(99258),j=c(12020);let k=null;function l({isOpen:a,onClose:b}){let[g,h]=(0,e.useState)(""),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(""),w=(0,e.useRef)(null);if((0,i.kk)(),!a||"u"<typeof document)return null;let x=()=>{r(""),v(""),b()};return(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:x}),(0,d.jsxs)("div",{ref:w,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-3xl flex flex-col max-h-[85vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[q&&(0,d.jsx)("button",{onClick:()=>r(""),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":(0,i.Tl)("Back"),title:(0,i.Tl)("Back"),children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_back"})}),(0,d.jsx)("h2",{className:"truncate text-lg font-semibold text-text-main",children:q?"CHANGELOG.md":(0,i.Tl)("Change Log")})]}),(0,d.jsx)("button",{onClick:x,className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":(0,i.Tl)("Close"),children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsxs)("div",{className:"p-6 overflow-y-auto flex-1",children:[m&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),(0,i.Tl)("Loading...")]}),o&&(0,d.jsxs)("div",{className:"text-red-500 py-4",children:[(0,i.Tl)("Failed to load changelog: "),o]}),!m&&!o&&g&&!q&&(0,d.jsx)("div",{className:"changelog-body text-text-main",onClick:a=>{let b=a.target?.closest?.("a");b&&/CHANGELOG\.md(\?|#|$)/.test(b.getAttribute("href")||"")&&(a.preventDefault(),t(!0),v(""),(function a(b){let[c,...d]=b;return c?(function(a,b=1e4){let c=new AbortController,d=setTimeout(()=>c.abort(),b);return fetch(a,{signal:c.signal}).then(a=>{if(!a.ok)throw Error(`HTTP ${a.status}`);return a.text()}).finally(()=>clearTimeout(d))})(c).catch(()=>a(d)):Promise.reject(Error("Failed to load changelog"))})([`${j.Nu.changelogUrlBase.replace(/changelog\/$/,"")}CHANGELOG.md`,`${j.Nu.changelogUrlFallbackBase.replace(/changelog\/$/,"")}CHANGELOG.md`,"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/CHANGELOG.md","https://gitee.com/techysy/10router/raw/main/CHANGELOG.md"]).then(a=>(!k&&(k=c.e(6921).then(c.bind(c,26921)).then(({marked:a})=>(a.setOptions({gfm:!0,breaks:!0}),a.use({link({href:a,title:b,tokens:c}){let d=c?this.parser.parseInline(c):b||a;return`<a href="${a}" target="_blank" rel="noopener noreferrer">${d}</a>`}}),a))),k).then(b=>r(b.parse(a)))).catch(a=>v(a?.message||"Failed to load")).finally(()=>t(!1)))},dangerouslySetInnerHTML:{__html:g}}),s&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),(0,i.Tl)("Loading...")]}),u&&(0,d.jsxs)("div",{className:"text-red-500 py-4",children:[(0,i.Tl)("Failed to load changelog: "),u]}),!s&&!u&&q&&(0,d.jsx)("div",{className:"changelog-body text-text-main",dangerouslySetInnerHTML:{__html:q}})]})]})]}),document.body)}l.propTypes={isOpen:h().bool.isRequired,onClose:h().func.isRequired}},53838:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(49885),f=c.n(e),g=c(53845);function h({children:a}){return(0,d.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,d.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,d.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,d.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,d.jsx)(g.default,{variant:"card"})}),(0,d.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:a})]})}h.propTypes={children:f().node.isRequired}},53845:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(42118),f=c(71404);let g={system:{icon:"routine",label:"Theme: system",next:"light"},light:{icon:"light_mode",label:"Theme: light",next:"dark"},dark:{icon:"dark_mode",label:"Theme: dark",next:"system"}};function h({className:a,variant:b="default"}){let{theme:c,toggleTheme:i}=(0,e.D)(),j=g[c]||g.system,k={default:(0,f.cn)("flex items-center justify-center size-10 rounded-full","text-text-muted hover:text-text-main","hover:bg-surface-2 transition-colors"),card:(0,f.cn)("flex items-center justify-center size-11 rounded-full","bg-surface/60 hover:bg-surface","border border-border","backdrop-blur-md shadow-sm hover:shadow-[var(--shadow-warm)]","text-text-muted hover:text-brand-500","transition-all group")};return(0,d.jsx)("button",{onClick:i,className:(0,f.cn)(k[b],a),"aria-label":j.label,title:j.label,"data-theme-mode":c,children:(0,d.jsx)("span",{className:(0,f.cn)("material-symbols-outlined text-[22px]","card"===b&&"transition-transform duration-300 group-hover:rotate-12"),children:j.icon})})}},56110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(50377),k=a([i]);function l({isOpen:a,provider:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)("loading"),[k,m]=(0,f.useState)(""),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(""),[r,s]=(0,f.useState)(null),{copied:t,copy:u}=(0,j.C)();(0,f.useRef)(!1);let v=async()=>{try{let a;s(null);try{a=new URL(p)}catch(a){throw Error("Invalid callback URL format")}let d=a.searchParams.get("code");a.searchParams.get("state");let e=a.searchParams.get("error");if(e)throw Error(a.searchParams.get("error_description")||e);if(!d)throw Error("No authorization code found in URL");let f=await fetch("/api/oauth/kiro/social-exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:d,codeVerifier:n.codeVerifier,provider:b})}),g=await f.json();if(!f.ok)throw Error(g.error);h("success"),c?.()}catch(a){s(a.message),h("error")}},w="google"===b?"Google":"GitHub";return(0,e.jsx)(i.aF,{isOpen:a,title:`Connect Kiro via ${w}`,onClose:d,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:["loading"===g&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Initializing..."}),(0,e.jsxs)("p",{className:"text-sm text-text-muted",children:["Setting up ",w," authentication"]})]}),"input"===g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.pd,{value:k,readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,e.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===t?"check":"content_copy",onClick:()=>u(k,"auth_url"),children:"Copy"})]})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,e.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser address bar."}),(0,e.jsx)(i.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"kiro://kiro.kiroAgent/authenticate-success?code=...",className:"font-mono text-xs"})]})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:v,fullWidth:!0,disabled:!p,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===g&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,e.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your Kiro account via ",w," has been connected."]}),(0,e.jsx)(i.$n,{onClick:d,fullWidth:!0,children:"Done"})]}),"error"===g&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,e.jsx)("p",{className:"text-sm text-red-600 mb-4",children:r}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:()=>h("input"),variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,e.jsx)(i.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}i=(k.then?(await k)():k)[0],l.propTypes={isOpen:h().bool.isRequired,provider:h().oneOf(["google","github"]).isRequired,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},59160:(a,b,c)=>{c.d(b,{Q5:()=>function a(b,c=null,d=null,e=0){if(!b?.length||e>6)return null;let f=b.map(b=>{if(!b.includes("/")&&c?.[b])return a(c[b],c,d,e+1)??d?.(b)??r(null,b);let f=b.indexOf("/"),g=r(-1===f?null:b.slice(0,f),-1===f?b:b.slice(f+1)),h=d?.(b);return h?{...g,...h}:g}),g=f[0];return{vision:f.some(a=>a.vision),pdf:f.some(a=>a.pdf),audioInput:f.some(a=>a.audioInput),videoInput:f.some(a=>a.videoInput),imageOutput:f.some(a=>a.imageOutput),audioOutput:f.some(a=>a.audioOutput),search:f.some(a=>a.search),tools:f.every(a=>a.tools),reasoning:g.reasoning,thinkingFormat:g.thinkingFormat,thinkingCanDisable:g.thinkingCanDisable,thinkingRange:g.thinkingRange,contextWindow:Math.min(...f.map(a=>a.contextWindow)),maxOutput:Math.max(...f.map(a=>a.maxOutput))}},nl:()=>r});var d=c(18982);let e={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},f={"claude-fable-5-1":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-opus-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-high":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-medium":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-low":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5-thinking-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"muse-spark-1.2-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"big-pickle":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"mimo-v2.5-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536},"ling-3.0-flash-fin-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:131072,maxOutput:32768},"ling-3.1-flash-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:32768},"nemotron-3-ultra-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"nemotron-3.5-lightning-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"claude-opus-5-thinking-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4-6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-high":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-medium":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-low":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-haiku-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"GLM-4.6V-Flash":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:2e5},"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"glm-5.3-flashx":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"glm-5.3":{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"glm-5.2":{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"glm-5.1":{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:131072},"glm-5":{reasoning:!0,thinkingFormat:"zai",contextWindow:204800,maxOutput:131072},"qwen3.8-max":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"qwen3.8-flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"mimo-v2-pro":{contextWindow:1048576,maxOutput:131072},"mimo-v2.5-pro":{contextWindow:1048576,maxOutput:131072},"mimo-v2.6-pro":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-flash":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-flash-free":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-pro-ultraspeed":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-pro-claude":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2-omni":{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,contextWindow:262144,maxOutput:131072},hy3:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:256e3,maxOutput:128e3},"hy3-preview":{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:256e3,maxOutput:64e3},"step-5-preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"step",contextWindow:1e6},"step-3.7-flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"step-3.5-flash":{reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"step-3.5-flash-2603":{reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"step-1o-turbo-vision":{vision:!0,contextWindow:32e3},"step-router-v1":{reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"grok-4.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5},"grok-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5},"grok-4.7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5},"gpt-5.6-luna":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"gpt-6-luna":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"kimi-k2.6":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144},"kimi-k3":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},k3:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"kimi-for-coding":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-for-coding-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"agnes-2.5-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:65536},"agnes-2.5-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"muse-spark-1.1":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.2":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.2-contributor":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"fugu-ultra":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"hy4-preview":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:64e3},"gpt-audio":{audioInput:!0,audioOutput:!0,contextWindow:128e3,maxOutput:16384},"gpt-audio-mini":{audioInput:!0,audioOutput:!0,contextWindow:128e3,maxOutput:16384},"LongCat-2.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"LongCat-2.5-Preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.5-preview-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"space-bunny-free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:524288},"space-bunny":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:524288},"MiniMax-M3.1-Flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"MiniMax-M3.1-Flash-Preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"minimax-m3.1-flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"minimax-m3.1-flash-preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"minimax-m3.1-flash:free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"MiniMax-M3":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"fledge-alpha-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"exo-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"sensenova-6.8-flash-lite":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"venice-uncensored-1-2":{vision:!0,contextWindow:128e3,maxOutput:8192},"morph-v3-large":{tools:!1,contextWindow:32e3,maxOutput:32e3},"morph-v3-fast":{tools:!1,contextWindow:16e3,maxOutput:16e3}},g=(()=>{let a={};for(let[b,c]of Object.entries(f)){let d=b.toLowerCase();d in a||(a[d]=c)}return a})(),h={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},i={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:372e3,maxOutput:128e3},j={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},k={...j,contextWindow:872e3},l={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3};function m(a,b){let c={...a};for(let[d,e]of Object.entries(b))c[d]=a[e];return c}let n={"Qwen3.8-Max":"qmodel_38max","Qwen3.7-Max":"qmodel_latest","Qwen3.7-Plus":"qmodel","Qwen3.8-Flash":"qfmodel","Kimi-K3":"kmodel_latest","Kimi-K2.7-Code":"kmodel","GLM-5.3":"gmodel","GLM-5.3-Flash":"gfmodel","DeepSeek-V4-Pro":"dmodel","DeepSeek-V4.1-Flash 1017":"dfmodel","MiniMax-M3":"mmodel"},o={...n,"Qwen3.7-Flash":"q37fmodel","GLM-5.2":"gm51model"},p={"kilo-gateway":{"kilo-auto/free":{vision:!1,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:32768},"kilo-auto/frontier":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"kilo-auto/balanced":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},antigravity:{"claude-opus-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-sonnet-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"gemini-4-argon-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576},"gemini-4-argon-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576},"gemini-4-argon-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576},"gemini-pro-agent":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},nvidia:{"minimaxai/minimax-m2.7":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072},"minimaxai/minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:131072},"z-ai/glm-5.2":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"deepseek-ai/deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-ai/deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},amd:{"DeepSeek-V4-Flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536},"DeepSeek-V4-Flash-Vision-Exp":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536},"Qwen3.8-Flash-Next":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:262144,maxOutput:32768},"MiniCPM5-2B":{reasoning:!1,contextWindow:131072,maxOutput:32768}},atria:{"Atria-Dawn-Preview":{vision:!1,reasoning:!1}},tokenharbor:{"deepseek-v4.1-flash:free":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"qwen3.8-flash:free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"mimo-v2.6-flash:free":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"claude-haiku-5.5:free":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},codex:{"gpt-6-astra":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6.1-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-luna":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-astra[1m]":k,"gpt-6-sol[1m]":k,"gpt-6-luna[1m]":k,"gpt-5.6-sol[1m]":k,"gpt-5.6-terra[1m]":k,"gpt-5.6-luna[1m]":k,"gpt-5.6-sol":i,"gpt-5.6-sol-review":i,"gpt-5.6-terra":j,"gpt-5.6-terra-review":j,"gpt-5.6-luna":j,"gpt-5.6-luna-review":j,"gpt-daybreak-blue-latest":j,"gpt-reserve":j},kiro:{"gpt-5.6-sol":h,"gpt-5.6-terra":h,"gpt-5.6-luna":h,"gpt-5.6-sol-thinking":h,"gpt-5.6-terra-thinking":h,"gpt-5.6-luna-thinking":h,"gpt-5.6-sol-agentic":h,"gpt-5.6-terra-agentic":h,"gpt-5.6-luna-agentic":h,"gpt-5.6-sol-thinking-agentic":h,"gpt-5.6-terra-thinking-agentic":h,"gpt-5.6-luna-thinking-agentic":h},"devin-cli":{"gpt-5.4-high":l,"gpt-5.4-medium":l,"gpt-5.4-low":l,"gpt-5.5-xhigh":l,"gpt-5.5-high":l,"gpt-5.5-medium":l,"gpt-5.5-low":l},apinex:{"claude-fable-5.1":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-opus-5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gemini-3.1-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gemini-3.8-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"glm-5.3":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gpt-5.6-terra":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gpt-6-astra":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gpt-6-luna":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"gpt-6.1-sol":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"grok-4.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:128e3},"kimi-k3":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/claude-opus-4.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/claude-sonnet-4.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/deepseek-v4-flash-0731":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/deepseek-v4-pro-0813":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/gemini-3.1-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/gemini-3.8-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/gpt-6-luna":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"free/hy4":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:65536},"free/kimi-k2.8":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:65536},"free/kimi-k3":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/mimo-v2.6-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/mimo-v2.6-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/minimax-m3":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:512e3},"free/minimax-m3.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:512e3},"free/muse-spark-1.3":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:65536},"free/qwen-3.8-max":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},"codebuddy-cn":{"glm-5.2":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:64e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:128e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"space-bunny":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"glm-5.3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:48e3},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:32e3},"glm-5.3-flashx":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:32e3},"kimi-k3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:32e3},"deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:384e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:128e3}},"codebuddy-intl":{"space-bunny":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3}},qoder:m({auto:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},ultimate:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},performance:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},efficient:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},dmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dfmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},gmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gfmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},kmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},kmodel:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:65536},mmodel:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},qmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536}},{...n,Auto:"auto",Ultimate:"ultimate",Performance:"performance",Efficient:"efficient"}),"qoder-cn":m({auto:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},dmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dfmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},gmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gfmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gm51model:{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},kmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},kmodel:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:65536},mmodel:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},qmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},q37fmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536}},{...o,Auto:"auto"}),poolside:{"laguna-s-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3},"laguna-xs-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}}};p.cx=p.codex,p.dv=p["devin-cli"],p.devin=p["devin-cli"],p.kr=p.kiro,p.ag=p.antigravity,p.cbcn=p["codebuddy-cn"],p.cbai=p["codebuddy-intl"],p.th=p.tokenharbor,p.thh=p.tokenharbor,p.ps=p.poolside,p["atria-asi"]=p.atria,p.qd=p.qoder,p.qdc=p["qoder-cn"],p.kgw=p["kilo-gateway"],p.kilogateway=p["kilo-gateway"];let q=[{pattern:"*rerank*",caps:{tools:!1,vision:!1,reasoning:!1,search:!1,contextWindow:8192,maxOutput:0}},{pattern:"*claude*opus-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576}},{pattern:"*gemini-3.8*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.7*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-mini*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-nano*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:64e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*omni*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144,maxOutput:65536}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.5*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.6*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k3*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*kimi*for-coding*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5.3*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1e6,maxOutput:131072}},{pattern:"*minimax-m2.7*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax-m2.5*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*preview*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*laguna-s-2.1*free*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*laguna-s-2.1*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3}},{pattern:"*laguna*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*seed-2-0-pro*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:128e3}},{pattern:"*seed-2.0-pro*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:128e3}},{pattern:"*seed-2-0-code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:131072}},{pattern:"*seed-2.0-code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:131072}},{pattern:"*seed-2-0-mini*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-2.0-mini*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-2-0-lite*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-2.0-lite*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:32768}},{pattern:"*seed-2.1-pro*",caps:{reasoning:!0,contextWindow:936e3,maxOutput:64e3}},{pattern:"*seed-2.1-turbo*",caps:{reasoning:!0,contextWindow:224e3,maxOutput:32e3}},{pattern:"*seed-evolving*",caps:{reasoning:!0,contextWindow:936e3,maxOutput:64e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*ernie*",caps:{contextWindow:2e5,maxOutput:64e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function r(a,b){if(!b)return{...e};let c=b.includes("/")?b.split("/").pop():b;if(a){let d=p[a];if(d?.[b])return{...e,...d[b]};if(d?.[c])return{...e,...d[c]}}if(f[c])return{...e,...f[c]};if(f[b])return{...e,...f[b]};if(b.includes("/")){let a=g[c.toLowerCase()];if(a)return{...e,...a}}for(let{pattern:a,caps:f}of q)if((0,d.gH)(a,c)||(0,d.gH)(a,b))return{...e,...f};return{...e}}},62727:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>m});var e=c(48249),f=c(67484),g=c(95145),h=c(83552),i=c(99070),j=c(83352),k=a([j]);j=(k.then?(await k)():k)[0];let n=/^[a-zA-Z0-9_.\-]+$/;function l({index:a,model:b,isFirst:c,isLast:d,onEdit:g,onMoveUp:h,onMoveDown:i,onRemove:j}){let[k,m]=(0,f.useState)(!1),[n,o]=(0,f.useState)(b),p=()=>{let a=n.trim();a&&a!==b?g(a):o(b),m(!1)};return(0,e.jsxs)("div",{className:"group flex min-w-0 items-center gap-1.5 rounded-md bg-black/[0.02] px-2 py-1 transition-colors hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04]",children:[(0,e.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:a+1}),k?(0,e.jsx)("input",{autoFocus:!0,value:n,onChange:a=>o(a.target.value),onBlur:p,onKeyDown:a=>{"Enter"===a.key&&p(),"Escape"===a.key&&(o(b),m(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,e.jsx)("div",{className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-black/5 dark:hover:bg-white/5",onClick:()=>m(!0),title:"Click to edit",children:b}),(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,e.jsx)("button",{onClick:h,disabled:c,className:`p-0.5 rounded ${c?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,e.jsx)("button",{onClick:i,disabled:d,className:`p-0.5 rounded ${d?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,e.jsx)("button",{onClick:j,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function m({isOpen:a,combo:b,onClose:c,onSave:d,activeProviders:k,kindFilter:o=null,forcePrefix:p="",title:q}){let r=b?.name?p&&b.name.startsWith(p)?b.name.slice(p.length):b.name:"",[s,t]=(0,f.useState)(r),[u,v]=(0,f.useState)(b?.models||[]),[w,x]=(0,f.useState)(!1),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(""),[C,D]=(0,f.useState)({}),E=a=>{if(!a.trim())return B("Name is required"),!1;let b=p+a;return n.test(b)?(B(""),!0):(B("Only letters, numbers, -, _ and . allowed"),!1)},F=a=>{let b=a.target.value;p&&b.startsWith(p)&&(b=b.slice(p.length)),t(b),b?E(b):B("")},G=async()=>{E(s)&&(z(!0),await d({name:p+s.trim(),models:u}),z(!1))},H=!!b;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.default,{isOpen:a,onClose:c,title:q||(H?"Edit Combo":"Create Combo"),children:(0,e.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,e.jsxs)("div",{children:[p?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("label",{className:"text-sm font-medium mb-1 block",children:"Combo Name"}),(0,e.jsxs)("div",{className:"flex items-stretch",children:[(0,e.jsx)("span",{className:"inline-flex items-center px-2 rounded-l border border-r-0 border-black/10 dark:border-white/10 bg-black/[0.04] dark:bg-white/[0.04] text-text-muted font-mono text-sm",children:p}),(0,e.jsx)("input",{value:s,onChange:F,placeholder:"my-combo",className:"flex-1 min-w-0 rounded-r border border-black/10 dark:border-white/10 bg-white dark:bg-black/20 px-2 py-1.5 font-mono text-sm outline-none focus:border-primary"})]}),A&&(0,e.jsx)("p",{className:"text-[11px] text-red-500 mt-0.5",children:A})]}):(0,e.jsx)(h.default,{label:"Combo Name",value:s,onChange:F,placeholder:"my-combo",error:A}),(0,e.jsxs)("p",{className:"text-[10px] text-text-muted mt-0.5",children:[p?`Auto-prefixed with "${p}". `:"","Only letters, numbers, -, _ and . allowed"]})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===u.length?(0,e.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,e.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,e.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:u.map((a,b)=>(0,e.jsx)(l,{index:b,model:a,isFirst:0===b,isLast:b===u.length-1,onEdit:a=>{let c=[...u];c[b]=a,v(c)},onMoveUp:()=>(a=>{if(0===a)return;let b=[...u];[b[a-1],b[a]]=[b[a],b[a-1]],v(b)})(b),onMoveDown:()=>(a=>{if(a===u.length-1)return;let b=[...u];[b[a],b[a+1]]=[b[a+1],b[a]],v(b)})(b),onRemove:()=>v(u.filter((a,c)=>c!==b))},b))}),(0,e.jsxs)("button",{onClick:()=>x(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,e.jsx)(i.default,{onClick:c,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,e.jsx)(i.default,{onClick:G,fullWidth:!0,size:"sm",disabled:!s.trim()||!!A||y,children:y?"Saving...":H?"Save":"Create"})]})]})}),w&&(0,e.jsx)(j.default,{isOpen:w,onClose:()=>x(!1),onSelect:a=>{u.includes(a.value)||v([...u,a.value])},onDeselect:a=>{v(u.filter(b=>b!==a.value))},activeProviders:k,modelAliases:C,title:"Add Model to Combo",kindFilter:o,addedModelValues:u,closeOnSelect:!1})]})}d()}catch(a){d(a)}})},67738:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);function k({isOpen:a,onClose:b,onCreated:c,onSaved:d,node:g}){let h=!!g,[j,l]=(0,f.useState)({name:"",prefix:"",baseUrl:"https://api.openai.com/v1"}),[m,n]=(0,f.useState)(!1),[o,p]=(0,f.useState)(""),[q,r]=(0,f.useState)(""),[s,t]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),w=async()=>{if(j.name.trim()&&j.prefix.trim()&&j.baseUrl.trim()){n(!0);try{let a=h?`/api/provider-nodes/${g.id}`:"/api/provider-nodes",b={name:j.name,prefix:j.prefix,baseUrl:j.baseUrl};h||(b.type="custom-embedding");let e=await fetch(a,{method:h?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),f=await e.json();e.ok&&(h?d?.(f.node):c?.(f.node))}catch(a){console.log("Error saving custom embedding node:",a)}finally{n(!1)}}},x=async()=>{t(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:j.baseUrl,apiKey:o,type:"custom-embedding",modelId:q.trim()||void 0})}),b=await a.json();v(b)}catch{v({valid:!1,error:"Network error"})}finally{t(!1)}};return(0,e.jsx)(i.aF,{isOpen:a,title:h?"Edit Custom Embedding":"Add Custom Embedding",onClose:b,children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsx)(i.pd,{label:"Name",value:j.name,onChange:a=>l({...j,name:a.target.value}),placeholder:"Voyage AI",hint:"Required. A friendly label for this embedding provider."}),(0,e.jsx)(i.pd,{label:"Prefix",value:j.prefix,onChange:a=>l({...j,prefix:a.target.value}),placeholder:"voyage",hint:"Required. Used as the provider prefix for model IDs (e.g. voyage/voyage-3)."}),(0,e.jsx)(i.pd,{label:"Base URL",value:j.baseUrl,onChange:a=>l({...j,baseUrl:a.target.value}),placeholder:"https://api.voyageai.com/v1",hint:"Most embedding APIs are OpenAI-compatible: Voyage, Cohere, Jina, Mistral, Together..."}),(0,e.jsx)(i.pd,{label:"API Key (for Check)",type:"password",value:o,onChange:a=>p(a.target.value)}),(0,e.jsx)(i.pd,{label:"Model ID (for Check)",value:q,onChange:a=>r(a.target.value),placeholder:"e.g. voyage-3, embed-english-v3.0, text-embedding-3-small",hint:"Required for validation. Will send a test embeddings request."}),(0,e.jsxs)("div",{className:"flex items-center gap-3",children:[(0,e.jsx)(i.$n,{onClick:x,disabled:!o||!q.trim()||s||!j.baseUrl.trim(),variant:"secondary",children:s?"Checking...":"Check"}),(()=>{if(!u)return null;let{valid:a,error:b,dimensions:c}=u;return a?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.Ex,{variant:"success",children:"Valid"}),c&&(0,e.jsxs)("span",{className:"text-sm text-text-muted",children:[c," dims"]})]}):(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)(i.Ex,{variant:"error",children:"Invalid"}),b&&(0,e.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:w,fullWidth:!0,disabled:!j.name.trim()||!j.prefix.trim()||!j.baseUrl.trim()||m,children:m?h?"Saving...":"Creating...":h?"Save":"Create"}),(0,e.jsx)(i.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}i=(j.then?(await j)():j)[0],k.propTypes={isOpen:h().bool.isRequired,onClose:h().func.isRequired,onCreated:h().func,onSaved:h().func,node:h().shape({id:h().string,name:h().string,prefix:h().string,baseUrl:h().string})},d()}catch(a){d(a)}})},71404:(a,b,c)=>{c.d(b,{cn:()=>d});function d(...a){return a.filter(Boolean).join(" ").replace(/\s+/g," ").trim()}},71452:(a,b,c)=>{c.d(b,{Cd:()=>v,D2:()=>y,EJ:()=>E,GT:()=>r,MF:()=>u,MK:()=>s,OG:()=>t,PZ:()=>A,Rs:()=>j,TM:()=>D,TV:()=>x,UL:()=>l,UY:()=>z,Ug:()=>q,XV:()=>w,Z_:()=>k,_6:()=>m,d$:()=>G,eK:()=>h,pR:()=>n,qz:()=>B});let d=/total|aggregate|summary|^总/i,e=/month|月/i,f=/month|月|week|周|滚动|rolling|5h|hourly|window/i,g=/balance|voucher|cash|余额|代金券|现金/i;function h(a){return d.test(String(a?.name||""))}function i(a){return a?.recurring===!0||f.test(String(a?.name||""))}function j(a){return a?.isCreditBalance===!0||g.test(String(a?.name||""))}function k(a){return!i(a)||j(a)}function l(a){let b=/\(([^)]+)\)\s*$/.exec(String(a||""));return b?b[1].trim():""}function m(a){return String(a||"").replace(/\s*\([^)]*\)\s*$/,"").trim()}function n(a){let b=Number((a?.totalNum??a?.total)||0),c=Number.isFinite(a?.remainingNum)?Number(a.remainingNum):Math.max(0,b-Number(a?.used||0));return b<=0?0:Math.min(100,Math.max(0,c/b*100))}let o={monthly:/month|月/i,weekly:/week|周/i,rolling:/rolling|滚动|session|5h/i};function p(a){return Number((a?.totalNum??a?.total)||0)}function q(a=[],{force:b=!1}={}){let c={monthly:null,weekly:null,rolling:null};for(let b of a){if(b?.giftPack===!0||b?.detailOnly===!0||!i(b)||j(b))continue;let a=String(b?.name||"");for(let[d,e]of Object.entries(o))if(!c[d]&&e.test(a)){c[d]=b;break}}if(!c.monthly)return[];let d=[c.monthly,c.weekly,c.rolling].filter(Boolean);if(d.length<2)return[];if(!b)for(let a=1;a<d.length;a+=1){let b=p(d[a]);if(!(b>0&&b<p(d[a-1])))return[]}let e=p(d[0]);if(!(e>0))return[];let f=e;return d.map((a,b)=>{let c,d=p(a),g=(c=p(a),Number.isFinite(a?.remainingNum)?Number(a.remainingNum):Math.max(0,c-Number(a?.used||0))),h=Math.max(0,Math.min(g,f));return f=h,{row:a,depth:b,widthPct:Math.min(100,h/e*100),ownRemaining:g,ownTotal:d,ownPct:n(a)}})}function r(a=[]){let b=a.filter(a=>i(a)&&!j(a)),c=b.filter(a=>e.test(String(a.name||""))),d=b.filter(a=>!c.includes(a));return{hasAnyCycle:b.length>0,windows:[...d,...c],monthly:c}}function s(a=[]){let{monthly:b,windows:c}=r(a),d=b.filter(a=>a?.giftPack!==!0);return[...c.filter(a=>!b.includes(a)),...d]}function t(a){return a?.recurring!==!1&&i(a)}let u=10;function v(a,b=n(a)){return b>0&&b<u?"critical":t(a)?"reset":"expire"}function w(a){if(!a)return"";let b=new Date(a);return Number.isNaN(b.getTime())?"":`${String(b.getMonth()+1).padStart(2,"0")}-${String(b.getDate()).padStart(2,"0")}`}function x(a,b=Date.now()){if(!a)return"";let c=new Date(a).getTime();if(Number.isNaN(c))return"";let d=Math.max(0,Math.round((c-b)/1e3));return d>=86400?`${Math.floor(d/86400)}d ${Math.floor(d%86400/3600)}h`:d>=3600?`${Math.floor(d/3600)}h ${Math.floor(d%3600/60)}m`:`${Math.floor(d/60)}m ${d%60}s`}function y(a,b=Date.now()){if(t(a)||!a?.resetAt)return!1;let c=new Date(a.resetAt).getTime();return Number.isFinite(c)&&c<=b}function z(a,b=Date.now()){return!(a?.unlimited===!0||t(a))&&(!!y(a,b)||Number(a?.total||0)>0&&0>=(Number.isFinite(a?.remainingNum)?Number(a.remainingNum):Math.max(0,Number(a?.total||0)-Number(a?.used||0))))}function A(a=[]){return(a||[]).filter(a=>a&&"object"==typeof a&&!(h(a)||a?.summarizesDetail===!0))}function B(a=[]){let b=A(a);return!!b.some(a=>!0===a.detailOnly||!0===a.giftPack)||b.filter(a=>!t(a)).length>=2}let C=/^(.+?)\s+·\s+(.+)$/;function D(a){let b=C.exec(String(a||"").trim());return b?{family:b[1],window:b[2]}:null}function E(a=[]){let b=[];for(let c of a){let a=D(c?.name),d=a?.family||null,e=b[b.length-1];d&&e&&e.family===d?e.rows.push(c):b.push({family:d,rows:[c]})}return b}let F=[[0,4],[15,22],[35,40],[65,130],[100,158]];function G(a){let b=Math.min(100,Math.max(0,Number(a)||0));for(let a=1;a<F.length;a+=1){let[c,d]=F[a];if(b<=c){let[e,f]=F[a-1];return Math.round(f+(d-f)*(b-e)/(c-e))}}return F[F.length-1][1]}},72738:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(29225),j=c(45986),k=a([j]);function l({src:a,providerId:b,alt:c,size:d=32,className:g="",fallbackText:h="?",fallbackColor:k}){let m=function(a,b){if(b)return(0,i.HY)(b);if(!a)return null;let c=String(a).match(/^\/providers\/([^/]+)\.png$/i);return c?(0,i.HY)(c[1]):a}(a,b),[n,o]=(0,f.useState)(!1);return b&&j.e[b]?(0,e.jsx)(j.A,{providerId:b,size:d,className:g}):!m||n?(0,e.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${g}`.trim(),style:{width:d,height:d,color:k,fontSize:Math.max(10,Math.floor(.38*d))},children:h}):(0,e.jsx)("img",{src:m,alt:c,width:d,height:d,className:g,loading:"lazy",decoding:"async",onError:()=>{let a=m.match(/^\/providers\/([^/]+)\.png$/i);a&&(0,i.Kw)(a[1]),b&&(0,i.Kw)(b),o(!0)}})}j=(k.then?(await k)():k)[0],l.propTypes={src:h().string,providerId:h().string,alt:h().string,size:h().number,className:h().string,fallbackText:h().string,fallbackColor:h().string},d()}catch(a){d(a)}})},74380:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(50377);function f({code:a,label:b="Invite code"}){let{copied:c,copy:g}=(0,e.C)();return a?(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-border bg-bg-alt px-1.5 py-0.5 text-xs text-text-muted whitespace-nowrap",children:[(0,d.jsx)("span",{children:b}),(0,d.jsx)("code",{className:"font-mono text-text-main",children:a}),(0,d.jsx)("button",{type:"button",onClick:()=>g(a,"invite-code"),title:"Copy invite code",className:"inline-flex items-center text-text-muted hover:text-text transition-colors cursor-pointer",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"invite-code"===c?"check":"content_copy"})})]}):null}},74812:(a,b,c)=>{c.d(b,{CardSkeleton:()=>i,PageLoading:()=>g,Skeleton:()=>h,Spinner:()=>f,default:()=>j});var d=c(48249),e=c(71404);function f({size:a="md",className:b}){return(0,d.jsx)("span",{className:(0,e.cn)("material-symbols-outlined animate-spin text-brand-500",{sm:"size-4",md:"size-6",lg:"size-8",xl:"size-12"}[a],b),children:"progress_activity"})}function g({message:a="Loading..."}){return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col items-center justify-center bg-bg",children:[(0,d.jsx)(f,{size:"xl"}),(0,d.jsx)("p",{className:"mt-4 text-text-muted",children:a})]})}function h({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-[10px] bg-surface-2",a),...b})}function i(){return(0,d.jsxs)("div",{className:"p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)(h,{className:"h-4 w-24"}),(0,d.jsx)(h,{className:"size-10 rounded-[10px]"})]}),(0,d.jsx)(h,{className:"h-8 w-16 mb-2"}),(0,d.jsx)(h,{className:"h-3 w-20"})]})}function j({type:a="spinner",...b}){switch(a){case"page":return(0,d.jsx)(g,{...b});case"skeleton":return(0,d.jsx)(h,{...b});case"card":return(0,d.jsx)(i,{...b});default:return(0,d.jsx)(f,{...b})}}},75171:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(71404);let f={default:"bg-surface-2 text-text-muted",primary:"bg-brand-500/10 text-brand-600 dark:text-brand-300",success:"bg-green-500/10 text-green-600 dark:text-green-400",warning:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",error:"bg-red-500/10 text-red-600 dark:text-red-400",info:"bg-blue-500/10 text-blue-600 dark:text-blue-400"},g={xs:"px-1.5 py-0.5 text-[9px] gap-1",sm:"px-2 py-0.5 text-[10px]",md:"px-2.5 py-1 text-xs",lg:"px-3 py-1.5 text-sm"},h={xs:"10px",sm:"12px",md:"14px",lg:"16px"};function i({children:a,variant:b="default",size:c="md",dot:j=!1,icon:k,className:l}){return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1 rounded-full font-medium leading-none",f[b],g[c],l),children:[j&&(0,d.jsx)("span",{className:(0,e.cn)("size-1.5 rounded-full","success"===b&&"bg-green-500","warning"===b&&"bg-yellow-500","error"===b&&"bg-red-500","info"===b&&"bg-blue-500","primary"===b&&"bg-brand-500","default"===b&&"bg-gray-500")}),k&&(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 leading-none",style:{fontSize:h[c]||"12px",width:h[c]||"12px",height:h[c]||"12px"},children:k}),a]})}},79346:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(50377),k=a([i]);i=(k.then?(await k)():k)[0];let m=new Set(["trae","windsurf","zed"]),n={trae:{param:"region",default:"intl",options:[{value:"intl",label:"国际站",hint:"www.trae.ai \xb7 海外账号"},{value:"cn",label:"国内站",hint:"www.trae.cn \xb7 国内手机号 / 抖音账号"}]}},o={trae:{label:"Cloud-IDE-JWT",instructions:"Sign in at trae.ai / solo.trae.ai (国际站) or trae.cn (国内站), open DevTools → Network, copy the Cloud-IDE-JWT token from any request's Authorization header (~14-day lifetime). CN and intl accounts are not interchangeable.",placeholder:"Paste Cloud-IDE-JWT here...",ideName:"Trae",ideOptional:!0},windsurf:{label:"Windsurf API key",instructions:'In the Windsurf/VS Code IDE, run the "Windsurf: Provide Auth Token" command, then copy the displayed sk-ws-... key.',placeholder:"Paste sk-ws-... key here...",ideName:"Windsurf",ideOptional:!1}};function l({isOpen:a,provider:b,providerInfo:c,onSuccess:d,onClose:g,oauthMeta:h,idcConfig:k}){let[p,q]=(0,f.useState)("waiting"),[r,s]=(0,f.useState)(null),[t,u]=(0,f.useState)(""),[v,w]=(0,f.useState)(null),[x,y]=(0,f.useState)(!1),[z,A]=(0,f.useState)(null),[B,C]=(0,f.useState)(!1),[D,E]=(0,f.useState)("browser"),[F,G]=(0,f.useState)("intl"),[H,I]=(0,f.useState)(""),[J,K]=(0,f.useState)(null),L=(0,f.useRef)(null),M=(0,f.useRef)(!1);(0,f.useRef)(!1);let{copied:N,copy:O}=(0,j.C)(),[P,Q]=(0,f.useState)(!1),[R,S]=(0,f.useState)("/callback?code=...");(0,f.useRef)(!1);let T=(0,f.useCallback)(async(a,c)=>{if(r)try{let e=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,redirectUri:r.redirectUri,codeVerifier:r.codeVerifier,state:c,...h?{meta:h}:{}})}),f=await e.json();if(!e.ok)throw Error(f.error);q("success"),d?.()}catch(a){w(a.message),q("error")}},[r,b,d,h]),U=(0,f.useCallback)(async a=>{if(r?.state)try{let b=await fetch("/api/oauth/xai/manual-code",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:r.state})}),c=await b.json();if(!b.ok)throw Error(c.error);q("success"),d?.()}catch(a){w(a.message),q("error")}},[r,d]),V=(0,f.useCallback)(async(a,c,e,f,g)=>{M.current=!1,C(!0);let h=Date.now()+(Number.isFinite(g)&&g>0?g:12e4);for(;Date.now()<h;){if(M.current){console.log("[OAuthModal] Polling aborted"),C(!1);return}if(await new Promise(a=>setTimeout(a,1e3*e)),M.current){console.log("[OAuthModal] Polling aborted after sleep"),C(!1);return}try{let g=await fetch(`/api/oauth/${b}/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:a,codeVerifier:c,extraData:f})}),h=await g.json();if(h.success){M.current=!0,q("success"),C(!1),d?.();return}if("expired_token"===h.error||"access_denied"===h.error||h.fatal)throw Error(h.errorDescription||h.error);"slow_down"===h.error&&(e=Math.min(e+5,30))}catch(a){w(a.message),q("error"),C(!1);return}}w("Authorization timeout"),q("error"),C(!1)},[b,d]),W=(0,f.useCallback)(async a=>{let b=await fetch(`/api/oauth/${a}/start-proxy`),c=await b.json();if(!b.ok||!c.success||!c.callbackUrl)throw Error(c.reason||c.error||`Failed to start ${a} callback server`);let d=new URL(`/api/oauth/${a}/authorize`,window.location.origin);d.searchParams.set("redirect_uri",c.callbackUrl);let e=n[a];e&&d.searchParams.set(e.param,F);let f=await fetch(d),g=await f.json();if(!f.ok)throw Error(g.error);let h={state:g.state};g.codeVerifier&&(h.codeVerifier=g.codeVerifier),await fetch(`/api/oauth/${a}/register-session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)}),s({...g,proxyProvider:a}),q("waiting"),L.current=window.open(g.authUrl,"oauth_popup","width=600,height=700"),L.current||q("input")},[F]),X=(0,f.useCallback)(async()=>{if(b)try{let a;if(w(null),m.has(b)&&"browser"===D)return void await W(b);if(["github","kiro","kimi","kimi-coding","kilocode","codebuddy-cn","codebuddy-intl","qoder","qoder-cn","grok-cli","glm","muse","minimax-code","minimax-code-global"].includes(b)){y(!0),q("waiting");let a=new URL(`/api/oauth/${b}/device-code`,window.location.origin);"kiro"===b&&k?.startUrl&&(a.searchParams.set("start_url",k.startUrl),k.region&&a.searchParams.set("region",k.region),a.searchParams.set("auth_method","idc"));let c=await fetch(a.toString()),d=await c.json();if(!c.ok)throw Error(d.error);A(d);let e=d.verification_uri_complete||d.verification_uri;e&&window.open(e,"_blank","noopener,noreferrer");let f="kiro"===b?{_clientId:d._clientId,_clientSecret:d._clientSecret,_region:d._region,_authMethod:d._authMethod,_startUrl:d._startUrl}:"qoder"===b?{_qoderNonce:d._qoderNonce,_qoderMachineId:d._qoderMachineId,_qoderVerifier:d.codeVerifier}:"kimi"===b||"kimi-coding"===b?{_kimiDeviceId:d._kimiDeviceId}:"glm"===b?{_zcodePollToken:d._zcodePollToken}:null;V(d.device_code,d.codeVerifier,d.interval||5,f,Number.isFinite(d.expires_in)&&d.expires_in>0?1e3*d.expires_in:void 0);return}let c=window.location.port||("https:"===window.location.protocol?"443":"80");a="codex"===b?"http://localhost:1455/auth/callback":"xai"===b?"http://127.0.0.1:56121/callback":`http://localhost:${c}/callback`;let d=new URL(`/api/oauth/${b}/authorize`,window.location.origin);d.searchParams.set("redirect_uri",a),h&&Object.entries(h).forEach(([a,b])=>{b&&d.searchParams.set(a,b)});let e=await fetch(d.toString()),f=await e.json();if(!e.ok)throw Error(f.error);let g=!1,i=!1;if("codex"===b)try{let b=new URL("/api/oauth/codex/start-proxy",window.location.origin);b.searchParams.set("app_port",c),b.searchParams.set("state",f.state),b.searchParams.set("code_verifier",f.codeVerifier),b.searchParams.set("redirect_uri",a);let d=await fetch(b.toString()),e=await d.json();g=e.success,i=!!e.serverSide}catch{g=!1}let j=!1,l=!1;if("xai"===b)try{let b=new URL("/api/oauth/xai/start-proxy",window.location.origin);b.searchParams.set("app_port",c),b.searchParams.set("state",f.state),b.searchParams.set("code_verifier",f.codeVerifier),b.searchParams.set("redirect_uri",a);let d=await fetch(b.toString()),e=await d.json();if(j=e.success,l=!!e.serverSide,!j&&"port_busy"===e.reason)throw Error("Port 56121 in use; close the conflicting process and retry")}catch(a){if(a?.message)throw a;j=!1}if(s({...f,redirectUri:a,codexServerSide:i,xaiServerSide:l}),!f.authUrl){if("device_code"===f.flowType)throw Error(`Provider ${b} uses device-code login but is not wired in the OAuth modal device-code list`);throw Error("No authorization URL returned from OAuth provider")}"codex"===b&&g||"xai"===b&&j||P&&"codex"!==b&&"xai"!==b?(q("waiting"),L.current=window.open(f.authUrl,"oauth_popup","width=600,height=700"),L.current||q("input")):(q("input"),window.open(f.authUrl,"_blank"))}catch(a){w(a.message),q("error")}},[b,P,V,h,k,D,W]),Y=async()=>{try{if(w(null),"paste-token"===D&&o[b]){let a=H.trim();if(!a)throw Error("Missing token");let c=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a})}),e=await c.json();if(!c.ok)throw Error(e.error);q("success"),d?.();return}let a=t.trim();if(m.has(b)&&a){let c=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:r?.state})}),e=await c.json();if(!c.ok)throw Error(e.error);q("success"),d?.();return}if(a.startsWith("eyJ")&&a.includes("."))return void await T(a,null);if("xai"===b&&a&&!a.includes("://")&&!a.includes("?")&&!a.includes("code="))return void await U(a);if("kimchi"===b&&a&&!a.includes("://")&&!a.includes("?"))return void await T(a,null);let c=new URL(a),e=c.searchParams.get("code"),f=c.searchParams.get("token"),g=c.searchParams.get("state"),h=c.searchParams.get("error");if(h)throw Error(c.searchParams.get("error_description")||h);if(!e&&!f)throw Error("xai"===b?"Paste the callback URL or copied xAI code":"kimchi"===b?"No Kimchi token found in URL":"No authorization code found in URL");await T(f||e,g)}catch(a){w(a.message),q("error")}},Z=(0,f.useCallback)(()=>{"codex"===b?fetch("/api/oauth/codex/stop-proxy").catch(()=>{}):"xai"===b?fetch("/api/oauth/xai/stop-proxy").catch(()=>{}):"trae"===b?fetch("/api/oauth/trae/stop-proxy").catch(()=>{}):"windsurf"===b?fetch("/api/oauth/windsurf/stop-proxy").catch(()=>{}):"zed"===b&&fetch("/api/oauth/zed/stop-proxy").catch(()=>{}),g()},[g,b]);if(!b||!c)return null;let $="xai"===b,_="kimchi"===b,aa=z?.verification_uri_complete||z?.verification_uri||"",ab=$?"Connect Grok Build OAuth":`Connect ${c.name}`,ac=$?"http://127.0.0.1:56121/callback?code=... or copied code":_?`${R.replace("code=...","token=...")} or copied token`:R;return(0,e.jsx)(i.aF,{isOpen:a,title:ab,onClose:Z,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[m.has(b)&&("waiting"===p||"input"===p||"error"===p)&&(0,e.jsxs)(e.Fragment,{children:["browser"===D&&n[b]&&(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)("span",{className:"text-xs text-text-muted",children:"登录站点"}),(0,e.jsx)("div",{className:"flex gap-2",children:n[b].options.map(a=>(0,e.jsxs)("button",{type:"button",onClick:()=>{a.value!==F&&(G(a.value),fetch(`/api/oauth/${b}/stop-proxy`).catch(()=>{}),s(null),w(null),q("waiting"),X())},className:`flex-1 rounded-lg border px-3 py-2 text-left text-sm transition-colors ${F===a.value?"border-primary bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,e.jsx)("div",{className:"font-medium",children:a.label}),(0,e.jsx)("div",{className:"text-xs opacity-70",children:a.hint})]},a.value))})]}),o[b]&&(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("button",{type:"button",onClick:()=>{E("browser"),w(null),q("waiting"),X()},className:`flex-1 rounded-lg border px-3 py-2 text-sm transition-colors ${"browser"===D?"border-primary bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:"\uD83C\uDF10 Sign in with browser"}),(0,e.jsx)("button",{type:"button",onClick:()=>{E("paste-token"),w(null),q("input")},className:`flex-1 rounded-lg border px-3 py-2 text-sm transition-colors ${"paste-token"===D?"border-primary bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:"\uD83D\uDD11 Paste token"})]}),"browser"===D&&(0,e.jsxs)(e.Fragment,{children:["waiting"===p&&(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:"Waiting for browser authorization…"})]}),"input"===p&&(0,e.jsxs)("div",{className:"space-y-3",children:[(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"Popup was blocked. After authorizing in the browser, paste the full callback URL here:"}),(0,e.jsx)(i.pd,{value:t,onChange:a=>u(a.target.value),placeholder:"http://127.0.0.1:.../callback?...",className:"font-mono text-xs"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:Y,fullWidth:!0,disabled:!t,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]}),"paste-token"===D&&o[b]&&(0,e.jsxs)("div",{className:"space-y-3",children:[J&&!J.installed&&(0,e.jsxs)("div",{className:`px-3 py-2 rounded-lg text-sm ${o[b].ideOptional?"bg-blue-500/10 text-blue-700 dark:text-blue-300":"bg-yellow-500/10 text-yellow-700 dark:text-yellow-300"}`,children:[o[b].ideName," IDE not detected.",o[b].ideOptional?" You can still grab the token from DevTools.":` Install ${o[b].ideName} IDE to get the token, or use "Sign in with browser".`]}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:o[b].instructions}),(0,e.jsx)(i.pd,{value:H,onChange:a=>I(a.target.value),placeholder:o[b].placeholder,className:"font-mono text-xs"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:Y,fullWidth:!0,disabled:!H,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]}),("waiting"===p||"input"===p)&&!x&&!m.has(b)&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:$?"Waiting for Grok Build OAuth…":"Waiting for popup authorization…"})]}),(0,e.jsxs)("div",{className:"flex items-center gap-3 my-1",children:[(0,e.jsx)("div",{className:"flex-1 h-px bg-border"}),(0,e.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wider",children:"Or paste callback URL manually"}),(0,e.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsxs)("p",{className:"text-sm font-medium mb-2",children:["Step 1: Open this ",$?"Grok Build OAuth URL":"URL"," in your browser"]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.pd,{value:r?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,e.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===N?"check":"content_copy",onClick:()=>O(r?.authUrl,"auth_url"),disabled:!r?.authUrl,children:"Copy"})]})]}),(0,e.jsxs)("div",{children:[(0,e.jsxs)("p",{className:"text-sm font-medium mb-2",children:["Step 2: Paste the ","xai"===b?"callback URL or copied code":_?"callback URL or copied token":"callback URL"," here"]}),(0,e.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"xai"===b?"If xAI shows a code instead of redirecting, paste that code here.":_?"After authorization, copy the full callback URL or token from your browser.":"After authorization, copy the full URL from your browser."}),(0,e.jsx)(i.pd,{value:t,onChange:a=>u(a.target.value),placeholder:ac,className:"font-mono text-xs"})]})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:Y,fullWidth:!0,disabled:!t,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"waiting"===p&&x&&z&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"text-center py-4",children:[(0,e.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Visit the login URL below and authorize:"}),(0,e.jsxs)("div",{className:"bg-sidebar p-4 rounded-lg mb-4",children:[(0,e.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Login URL"}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("code",{className:"flex-1 text-sm break-all",children:aa}),(0,e.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"login_url"===N?"check":"content_copy",onClick:()=>O(aa,"login_url"),disabled:!aa}),(0,e.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"open_in_new",onClick:()=>window.open(aa,"_blank","noopener,noreferrer"),disabled:!aa,children:"Open"})]})]}),z.user_code&&(0,e.jsxs)("div",{className:"bg-primary/10 p-4 rounded-lg",children:[(0,e.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Your Code"}),(0,e.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,e.jsx)("p",{className:"text-2xl font-mono font-bold text-primary",children:z.user_code}),(0,e.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"user_code"===N?"check":"content_copy",onClick:()=>O(z.user_code,"user_code")})]})]})]}),B&&(0,e.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-text-muted",children:[(0,e.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),"Waiting for authorization..."]})]}),"success"===p&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,e.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your ",c.name," account has been connected."]}),(0,e.jsx)(i.$n,{onClick:Z,fullWidth:!0,children:"Done"})]}),"error"===p&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,e.jsx)("p",{className:"text-sm text-red-600 mb-4",children:v}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:X,variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}l.propTypes={isOpen:h().bool.isRequired,provider:h().string,providerInfo:h().shape({name:h().string}),onSuccess:h().func,onClose:h().func.isRequired,oauthMeta:h().object,idcConfig:h().shape({startUrl:h().string,region:h().string})},d()}catch(a){d(a)}})},79488:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);function k({isOpen:a,onSuccess:b,onClose:c}){let[d,g]=(0,f.useState)(""),[h,j]=(0,f.useState)(!1),[l,m]=(0,f.useState)(null),[n,o]=(0,f.useState)(!1),p=async()=>{if(!d.trim())return void m("Please paste your cookie");j(!0),m(null);try{let a=await fetch("/api/oauth/iflow/cookie",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cookie:d.trim()})}),c=await a.json();if(!a.ok)throw Error(c.error||"Authentication failed");o(!0),setTimeout(()=>{b?.(),q()},1500)}catch(a){m(a.message)}finally{j(!1)}},q=()=>{g(""),m(null),o(!1),c?.()};return(0,e.jsx)(i.aF,{isOpen:a,onClose:q,title:"iFlow Cookie Authentication",children:(0,e.jsx)("div",{className:"space-y-4",children:n?(0,e.jsxs)("div",{className:"text-center py-8",children:[(0,e.jsx)("div",{className:"text-6xl mb-4",children:"✅"}),(0,e.jsx)("p",{className:"text-lg font-medium text-text",children:"Authentication Successful!"}),(0,e.jsx)("p",{className:"text-sm text-text-muted mt-2",children:"Fresh API key obtained"})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsxs)("p",{className:"text-sm text-text-muted",children:["To get a fresh API key, paste your browser cookie from"," ",(0,e.jsx)("a",{href:"https://platform.iflow.cn",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"platform.iflow.cn"})]}),(0,e.jsxs)("div",{className:"bg-surface-2 p-3 rounded-lg text-xs space-y-2",children:[(0,e.jsx)("p",{className:"font-medium text-text",children:"How to get cookie:"}),(0,e.jsxs)("ol",{className:"list-decimal list-inside space-y-1 text-text-muted",children:[(0,e.jsx)("li",{children:"Open platform.iflow.cn in your browser"}),(0,e.jsx)("li",{children:"Login to your account"}),(0,e.jsx)("li",{children:"Open DevTools (F12) → Application/Storage → Cookies"}),(0,e.jsx)("li",{children:"Copy the entire cookie string (must include BXAuth)"}),(0,e.jsx)("li",{children:"Paste it below"})]})]})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)("label",{className:"block text-sm font-medium text-text",children:"Cookie String"}),(0,e.jsx)("textarea",{value:d,onChange:a=>g(a.target.value),placeholder:"BXAuth=xxx; ...",className:"w-full px-3 py-2 bg-surface-2 border border-border rounded-lg text-sm text-text placeholder-text-muted focus:outline-none focus:ring-2 focus:ring-primary resize-none",rows:4,disabled:h})]}),l&&(0,e.jsx)("div",{className:"p-3 bg-danger/10 border border-danger/20 rounded-lg",children:(0,e.jsx)("p",{className:"text-sm text-danger",children:l})}),(0,e.jsxs)("div",{className:"flex gap-3 pt-2",children:[(0,e.jsx)(i.$n,{variant:"secondary",onClick:q,disabled:h,fullWidth:!0,children:"Cancel"}),(0,e.jsx)(i.$n,{onClick:p,loading:h,fullWidth:!0,children:"Authenticate"})]})]})})})}i=(j.then?(await j)():j)[0],k.propTypes={isOpen:h().bool.isRequired,onSuccess:h().func,onClose:h().func},d()}catch(a){d(a)}})},79750:(a,b,c)=>{c.d(b,{F:()=>g,i:()=>f});var d=c(51126);let e={en:{sym:"$",rate:1},"zh-CN":{sym:"¥",rate:7.2},"zh-TW":{sym:"NT$",rate:31.5},ja:{sym:"\xa5",rate:155},ko:{sym:"₩",rate:1350},vi:{sym:"₫",rate:25e3},"pt-BR":{sym:"R$",rate:5.5},"pt-PT":{sym:"€",rate:.92},es:{sym:"€",rate:.92},de:{sym:"€",rate:.92}};function f(){if("u"<typeof localStorage)return!0;let a=localStorage.getItem("useRegionalCurrency");return null===a||"0"!==a}function g(a,b=2){let c=a||0;if(!f())return`$${c.toFixed(b)}`;let h=e[(0,d.QC)(function(){if("u"<typeof document)return"en";let a=document.cookie.split(";").find(a=>a.trim().startsWith(`${d.CL}=`));return a?decodeURIComponent(a.split("=")[1]):"en"}())];return h?`${h.sym}${(c*h.rate).toFixed(b)}`:`$${c.toFixed(b)}`}},82563:(a,b,c)=>{c.d(b,{$n:()=>o,Ay:()=>p,dI:()=>k,h7:()=>n,jE:()=>l,jH:()=>j,pM:()=>m});var d=c(48249),e=c(49885),f=c.n(e),g=c(71404),h=c(99258),i=c(71452);let j="rounded-[3px]";function k(a){return`hsl(${(0,i.d$)(a)} 68% 46%)`}function l(a){let b=(0,i.d$)(a);return{backgroundImage:`linear-gradient(90deg, hsl(${b} 72% 58%), hsl(${b} 70% 44%))`}}let m={reset:"text-text-muted",expire:"text-text-muted",critical:"text-red-600 dark:text-red-400"};function n(a,b,{expired:c=!1}={}){if(c)return(0,h.Tl)("expired {date}").replace("{date}",(0,i.XV)(b));let d=(0,i.TV)(b);return d?(0,h.Tl)(a?"resets in {duration}":"expires in {duration}").replace("{duration}",d):(0,h.Tl)(a?"resets {date}":"expires {date}").replace("{date}",(0,i.XV)(b))}function o({height:a=5,className:b,children:c,...e}){return(0,d.jsx)("div",{className:(0,g.cn)("relative w-full overflow-hidden",j,"bg-black/10 dark:bg-white/10",b),style:{height:`${a}px`},...e,children:c})}function p({pct:a=0,colorPct:b=null,title:c,...e}){let f=Math.min(100,Math.max(0,Number(a)||0));return(0,d.jsx)(o,{title:c,...e,children:(0,d.jsx)("div",{className:(0,g.cn)("h-full transition-[width] duration-300",j),style:{width:`${f}%`,...l(b??f)}})})}o.propTypes={height:f().number,className:f().string,children:f().node},p.propTypes={pct:f().number,colorPct:f().number,title:f().string}},83352:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>q});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(95145),j=c(72738),k=c(38930),l=c(29476),m=c(91431),n=c(92592),o=c(99258),p=a([j]);j=(p.then?(await p)():p)[0];let r=[...Object.keys(n.zN),...Object.keys(n.IS),...Object.keys(n.nJ),...Object.keys(n.fg)],s=Object.keys(n.IS).filter(a=>n.IS[a].noAuth),t=["cursor","zed"];function q({isOpen:a,onClose:b,onSelect:c,onDeselect:d,selectedModel:g,activeProviders:h=[],title:p,modelAliases:u={},kindFilter:v=null,capFilter:w=null,addedModelValues:x=[],closeOnSelect:y=!0}){let z=(0,f.useMemo)(()=>v?h.filter(a=>{let b=n.Q2[a.provider];return(b?.serviceKinds||["llm"]).includes(v)}):h,[h,v]),{getCaps:A}=(0,l.yU)(),[B,C]=(0,f.useState)(""),[D,E]=(0,f.useState)(()=>!0),[F,G]=(0,f.useState)([]),[H,I]=(0,f.useState)([]),[J,K]=(0,f.useState)([]),[L,M]=(0,f.useState)({}),[N,O]=(0,f.useState)({});(0,f.useMemo)(()=>{let a=Object.fromEntries(t.map(a=>[a,[]]));for(let b of h)Object.hasOwn(a,b.provider)&&b.id&&a[b.provider].push(b.id);return a},[h]);let P=(0,f.useMemo)(()=>({...n.zN,...n.IS,...n.nJ,...n.fg}),[]),Q=(0,f.useMemo)(()=>{let a={},b=new Set(["webSearch","webFetch"]),c=new Set(["image","tts","stt","embedding","imageToText","systemone"]),d=new Set(["tts","image","webFetch"]),e=z.map(a=>a.provider),f=v?s.filter(a=>(n.Q2[a]?.serviceKinds||["llm"]).includes(v)):s,g=new Set([...e,...f]),i=Object.keys(P).filter(a=>{if(g.has(a))return!1;let b=P[a];return!!b&&!b.hidden&&(!v||(b.serviceKinds||["llm"]).includes(v))}),j=(a,b)=>{let c=r.indexOf(a),d=r.indexOf(b);return(-1===c?999:c)-(-1===d?999:d)};return[...[...g].sort(j),...[...i].sort(j)].forEach(e=>{let f=(0,n.wG)(e),i=P[e]||{name:e,color:"#666"},j=(0,n.mq)(e)||(0,n.gb)(e),k=g.has(e);if(v&&b.has(v)){a[e]={name:i.name,alias:f,color:i.color,models:[{id:e,name:i.name,value:e}],isConnected:k};return}if(i.passthroughModels){let b=Object.entries(u).filter(([,a])=>a.startsWith(`${f}/`)).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b})),g=J.filter(a=>a.providerAlias===f).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,kind:(0,m.CP)(a),isCustom:!0})),h=b;if(v&&c.has(v)){let a=g.filter(a=>(0,m.CP)(a)===v);h=[...a,...(0,m.KC)(e).filter(a=>(0,m.CP)(a)===v).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,m.CP)(a)})).filter(b=>!a.some(a=>a.value===b.value))],0===h.length&&d.has(v)&&(i.serviceKinds||["llm"]).includes(v)&&(h=[{id:e,name:i.name,value:f}])}else{let a=g.filter(a=>!(0,m.CP)(a)||"llm"===(0,m.CP)(a)),c=new Set([...b,...a].map(a=>a.value)),d=(0,m.KC)(e).filter(a=>!(0,m.CP)(a)||"llm"===(0,m.CP)(a)).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,m.CP)(a)})).filter(a=>!c.has(a.value));h=[...a,...b.filter(b=>!a.some(a=>a.value===b.value)),...d]}if(h.length>0){let b=H.find(a=>a.id===e),c=b?.name||i.name;a[e]={name:c,alias:f,color:i.color,models:h,isConnected:k}}}else if(j){if(v&&c.has(v))return;let b=h.find(a=>a.provider===e),d=H.find(a=>a.id===e),f=d?.name||b?.name||i.name,g=b?.providerSpecificData?.prefix||d?.prefix||e,j=Object.entries(u).filter(([,a])=>a.startsWith(`${e}/`)).map(([a,b])=>({id:b.replace(`${e}/`,""),name:a,value:`${g}/${b.replace(`${e}/`,"")}`})),l=J.filter(a=>a.providerAlias===e).map(a=>({id:a.id,name:a.name||a.id,value:`${g}/${a.id}`,isCustom:!0})),m=new Set(j.map(a=>a.value)),n=[...j,...l.filter(a=>!m.has(a.value))],o=n.length>0?n:[{id:`__placeholder__${e}`,name:`${g}/model-id`,value:`${g}/model-id`,isPlaceholder:!0}];a[e]={name:f,alias:g,color:i.color,models:o,isCustom:!0,hasModels:n.length>0,isConnected:k}}else{var l;let b=N[e]||[],g=b.length>0?b:(0,m.KC)(e),h=new Set(g.map(a=>a.id)),j=g.length>0,n=Object.entries(u).filter(([a,b])=>b.startsWith(`${f}/`)&&(!j||a===b.replace(`${f}/`,""))&&!h.has(b.replace(`${f}/`,""))).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b,isCustom:!0})),o=new Set(n.map(a=>a.id)),p=J.filter(a=>a.providerAlias===f&&!h.has(a.id)&&!o.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isCustom:!0})),q=[...g.map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,m.CP)(a)})),...n,...p],r=new Set,s=(l=q.filter(a=>!r.has(a.value)&&(r.add(a.value),!0)),v?c.has(v)?l.filter(a=>a.isPlaceholder||(0,m.CP)(a)===v):l:l.filter(a=>a.isPlaceholder||a.isCustom||!(0,m.CP)(a)||"llm"===(0,m.CP)(a)));0===s.length&&v&&d.has(v)&&(i.serviceKinds||["llm"]).includes(v)&&(s=[{id:e,name:i.name,value:f}]),s.length>0&&(a[e]={name:i.name,alias:f,color:i.color,models:s,isConnected:k})}}),Object.entries(a).forEach(([b,c])=>{let d=(0,n.wG)(b),e=new Set([...L[d]||[],...L[b]||[]]);0!==e.size&&(c.models=c.models.filter(a=>!e.has(a.id)),0===c.models.length&&delete a[b])}),a},[z,u,P,H,J,L,v,h,N]),R=(0,f.useMemo)(()=>{if(v||w)return[];if(!B.trim())return F;let a=B.toLowerCase();return F.filter(b=>b.name.toLowerCase().includes(a))},[F,B,v]),S=(0,f.useMemo)(()=>{let a=B.trim().toLowerCase(),b={};return Object.entries(Q).forEach(([c,d])=>{var e;let f,g;if(D&&!d.isConnected)return;let h=d.models;if(!w||(h=h.filter(a=>A(a.value)?.[w]===!0),0!==h.length)){if(a){let b=d.name.toLowerCase().includes(a);if(h=h.filter(b=>b.name.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)),0===h.length&&!b)return}b[c]={...d,models:(f=(e=h).filter(a=>x.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),g=e.filter(a=>!x.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),[...f,...g])}}}),b},[Q,B,x,D,w]),T=a=>{let e=a?.value||a?.name||a;x.includes(e)&&d?d(a):c(a),y&&(b(),C(""))};return(0,e.jsxs)(i.default,{isOpen:a,onClose:()=>{b(),C("")},title:p??(0,o.Tl)("Select Model"),size:"md",className:"p-4!",footer:null,children:[(0,e.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-2.5 py-2 bg-primary/8 border border-primary/20 rounded-lg text-xs text-text-muted",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-primary shrink-0",style:{fontSize:"14px"},children:"info"}),(0,e.jsx)("span",{children:(0,o.Tl)("Click to add, click again to remove. Changes are saved automatically.")})]}),(0,e.jsxs)("div",{className:"mb-3 flex items-center gap-2.5",children:[(0,e.jsxs)("div",{className:"relative flex-1 min-w-0",children:[(0,e.jsx)("span",{className:"material-symbols-outlined absolute left-2.5 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,e.jsx)("input",{type:"text",placeholder:(0,o.Tl)("Search..."),value:B,onChange:a=>C(a.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-surface border border-border rounded text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"})]}),(0,e.jsxs)("label",{className:"flex items-center gap-1.5 shrink-0 text-xs text-text-muted cursor-pointer select-none hover:text-text-main transition-colors",children:[(0,e.jsx)("input",{type:"checkbox",checked:D,onChange:a=>{var b;return b=a.target.checked,void E(b)},className:"w-3.5 h-3.5 rounded border-border text-primary focus:ring-primary/50 cursor-pointer accent-primary"}),(0,e.jsx)("span",{children:(0,o.Tl)("Connected providers only")})]})]}),(0,e.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[R.length>0&&(0,e.jsxs)("div",{children:[(0,e.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-primary text-[14px]",children:"layers"}),(0,e.jsx)("span",{className:"text-xs font-medium text-primary",children:(0,o.Tl)("Combos")}),(0,e.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",R.length,")"]})]}),(0,e.jsx)("div",{className:"flex flex-wrap gap-1.5",children:R.map(a=>{let b=g===a.name;return(0,e.jsxs)("button",{onClick:()=>T({id:a.name,name:a.name,value:a.name}),className:`
|
|
1
|
+
"use strict";exports.id=6960,exports.ids=[6960],exports.modules={267:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(74429),g=c(51126),h=c(99258);let i=a=>({en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (Brasil)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (Portugal)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},km:{name:"ខ្មែរ",flag:"\uD83C\uDDF0\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"},fa:{name:"فارسی",flag:"\uD83C\uDDEE\uD83C\uDDF7"}})[a]||{name:a,flag:"\uD83C\uDF10"};function j({className:a="",isOpen:b,onClose:c,hideTrigger:k=!1}){let[l,m]=(0,e.useState)("en"),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),r=(0,e.useRef)(null),s="boolean"==typeof b,t=s?b:p,u=(a,b=l)=>{s?!a&&c&&c(b):q(a)},v=async a=>{if(a!==l&&!n){o(!0);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:a})}),await (0,h.wn)(),m(a),u(!1,a)}catch(a){console.error("Failed to set locale:",a)}finally{o(!1)}}};return(0,d.jsxs)("div",{className:a,children:[!k&&(0,d.jsxs)("button",{onClick:()=>u(!t),disabled:n,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-text-muted hover:text-text-main hover:bg-surface/60 transition-colors",title:"Language","data-i18n-skip":"true",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:i(l).name}),(0,d.jsx)("span",{className:"text-lg",children:i(l).flag})]}),t&&(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>u(!1)}),(0,d.jsxs)("div",{ref:r,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-2xl flex flex-col max-h-[80vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,d.jsx)("button",{onClick:()=>u(!1),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,d.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:g.YZ.map(a=>{let b=l===a,c=i(a);return(0,d.jsxs)("button",{onClick:()=>v(a),disabled:n,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${b?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${n?"opacity-70 cursor-wait":""}`,title:c.name,children:[(0,d.jsx)("span",{className:"text-2xl",children:c.flag}),(0,d.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:c.name}),b&&(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},a)})})})]})]}),document.body)]})}},818:(a,b,c)=>{c.d(b,{h:()=>d});let d={en:"\uD83C\uDDFA\uD83C\uDDF8",vi:"\uD83C\uDDFB\uD83C\uDDF3","zh-CN":"\uD83C\uDDE8\uD83C\uDDF3","zh-TW":"\uD83C\uDDF9\uD83C\uDDFC",ja:"\uD83C\uDDEF\uD83C\uDDF5","pt-BR":"\uD83C\uDDE7\uD83C\uDDF7","pt-PT":"\uD83C\uDDF5\uD83C\uDDF9",ko:"\uD83C\uDDF0\uD83C\uDDF7",es:"\uD83C\uDDEA\uD83C\uDDF8",de:"\uD83C\uDDE9\uD83C\uDDEA",fr:"\uD83C\uDDEB\uD83C\uDDF7",he:"\uD83C\uDDEE\uD83C\uDDF1",ar:"\uD83C\uDDF8\uD83C\uDDE6",ru:"\uD83C\uDDF7\uD83C\uDDFA",pl:"\uD83C\uDDF5\uD83C\uDDF1",cs:"\uD83C\uDDE8\uD83C\uDDFF",nl:"\uD83C\uDDF3\uD83C\uDDF1",tr:"\uD83C\uDDF9\uD83C\uDDF7",uk:"\uD83C\uDDFA\uD83C\uDDE6",tl:"\uD83C\uDDF5\uD83C\uDDED",id:"\uD83C\uDDEE\uD83C\uDDE9",th:"\uD83C\uDDF9\uD83C\uDDED",km:"\uD83C\uDDF0\uD83C\uDDED",hi:"\uD83C\uDDEE\uD83C\uDDF3",bn:"\uD83C\uDDE7\uD83C\uDDE9",ur:"\uD83C\uDDF5\uD83C\uDDF0",ro:"\uD83C\uDDF7\uD83C\uDDF4",sv:"\uD83C\uDDF8\uD83C\uDDEA",it:"\uD83C\uDDEE\uD83C\uDDF9",el:"\uD83C\uDDEC\uD83C\uDDF7",hu:"\uD83C\uDDED\uD83C\uDDFA",fi:"\uD83C\uDDEB\uD83C\uDDEE",da:"\uD83C\uDDE9\uD83C\uDDF0",no:"\uD83C\uDDF3\uD83C\uDDF4",fa:"\uD83C\uDDEE\uD83C\uDDF7"}},906:(a,b,c)=>{c.d(b,{MenuItem:()=>i,Popover:()=>h});var d=c(48249),e=c(49885),f=c.n(e),g=c(71404);function h({open:a,onClose:b,align:c="left",className:e,children:f}){return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"fixed inset-0 z-30 cursor-default bg-transparent","aria-label":"Close",onClick:b}),(0,d.jsx)("div",{className:(0,g.cn)("absolute z-40 mt-1.5 overflow-hidden rounded-xl border border-black/10 bg-surface/95 p-1 shadow-xl shadow-black/10 backdrop-blur dark:border-white/10","right"===c?"right-0":"left-0",e),children:f})]}):null}function i({selected:a=!1,onClick:b,icon:c,children:e,hint:f,disabled:h=!1}){return(0,d.jsxs)("button",{type:"button",onClick:b,disabled:h,className:(0,g.cn)("flex w-full items-start gap-2.5 rounded-lg px-2.5 py-2 text-left text-xs transition-colors disabled:opacity-50",a?"bg-primary/10 text-primary":"text-text hover:bg-black/[0.04] dark:hover:bg-white/[0.06]"),children:[c,(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block font-medium",children:e}),f?(0,d.jsx)("span",{className:"mt-0.5 block text-[11px] text-text-muted",children:f}):null]}),a?(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none text-[14px]",children:"check"}):null]})}h.propTypes={open:f().bool,onClose:f().func.isRequired,align:f().oneOf(["left","right"]),className:f().string,children:f().node},i.propTypes={selected:f().bool,onClick:f().func,icon:f().node,children:f().node,hint:f().node,disabled:f().bool}},3236:(a,b,c)=>{c.d(b,{default:()=>m});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(42118),i=c(51817),j=c(95145),k=c(99258);function l({icon:a,label:b,onClick:c,href:e,trailing:f,danger:g}){let h=`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${g?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,i=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${g?"":"text-text-muted"}`,children:a}),(0,d.jsx)("span",{className:"flex-1 text-left",children:b}),f&&(0,d.jsx)("span",{className:"text-base",children:f})]});return e?(0,d.jsx)("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:h,onClick:c,children:i}):(0,d.jsx)("button",{onClick:c,className:h,children:i})}function m({onLogout:a}){let[b,c]=(0,e.useState)(!1),[f,g]=(0,e.useState)(!1),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),{theme:r,toggleTheme:s}=(0,h.D)(),t=(0,e.useRef)(null),u=async()=>{q(!0);try{await fetch("/api/version/shutdown",{method:"POST"})}catch(a){}q(!1),o(!1)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"relative",ref:t,children:[(0,d.jsx)("button",{onClick:()=>c(a=>!a),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:(0,k.Tl)("Menu"),children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),b&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-60 bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl z-50 animate-in fade-in zoom-in-95 duration-150 overflow-hidden py-1",children:[(0,d.jsx)(l,{icon:"history",label:(0,k.Tl)("Change Log"),onClick:()=>{c(!1),g(!0)}}),(0,d.jsx)(l,{icon:"system"===r?"routine":"light"===r?"light_mode":"dark_mode",label:(0,k.Tl)("system"===r?"Theme: system":"light"===r?"Theme: light":"Theme: dark"),onClick:()=>{s(),c(!1)}}),(0,d.jsx)(l,{icon:"power_settings_new",label:(0,k.Tl)("Shutdown"),danger:!0,onClick:()=>{c(!1),o(!0)}}),(0,d.jsx)(l,{icon:"logout",label:(0,k.Tl)("Logout"),danger:!0,onClick:()=>{c(!1),a()}})]})]}),(0,d.jsx)(i.default,{isOpen:f,onClose:()=>g(!1)}),(0,d.jsx)(j.ConfirmModal,{isOpen:n,onClose:()=>o(!1),onConfirm:u,title:(0,k.Tl)("Close Proxy"),message:(0,k.Tl)("Are you sure you want to close the proxy server?"),confirmText:(0,k.Tl)("Close"),cancelText:(0,k.Tl)("Cancel"),variant:"danger",loading:p})]})}l.propTypes={icon:g().string.isRequired,label:g().string.isRequired,onClick:g().func,href:g().string,trailing:g().node,danger:g().bool},m.propTypes={onLogout:g().func.isRequired}},4770:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(71404),f=c(99258);function g({label:a,options:b=[],value:c,onChange:h,placeholder:i="Select an option",error:j,hint:k,disabled:l=!1,required:m=!1,className:n,selectClassName:o,...p}){return(0,d.jsxs)("div",{className:(0,e.cn)("flex flex-col gap-1.5",n),children:[a&&(0,d.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[a,m&&(0,d.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("select",{value:c,onChange:h,disabled:l,className:(0,e.cn)("w-full py-2.5 px-3 pr-10 text-sm text-text-main","bg-surface-2 border border-transparent rounded-[10px] appearance-none","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",j&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",o),...p,children:[(0,d.jsx)("option",{value:"",disabled:!0,children:(0,f.Tl)(i)}),b.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),(0,d.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),j&&(0,d.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),j]}),k&&!j&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:k})]})}},5291:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>m});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(79346),j=c(86209),k=c(56110),l=a([i,j,k]);function m({isOpen:a,providerInfo:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)(null),[l,n]=(0,f.useState)(null),[o,p]=(0,f.useState)(null),q=(0,f.useCallback)((a,b)=>{"builder-id"===a?h("builder-id"):"idc"===a?(h("idc"),p(b)):"social"===a?(h("social"),n(b.provider)):("import"===a||"api-key"===a)&&c?.()},[c]),r=()=>{h(null),n(null),p(null)};return g?"builder-id"===g||"idc"===g?(0,e.jsx)(i.default,{isOpen:a,provider:"kiro",providerInfo:b,onSuccess:()=>{h(null),p(null),c?.(),d?.()},onClose:r,idcConfig:o}):"social"===g&&l?(0,e.jsx)(k.default,{isOpen:a,provider:l,onSuccess:()=>{h(null),n(null),c?.(),d?.()},onClose:r}):null:(0,e.jsx)(j.default,{isOpen:a,onMethodSelect:q,onClose:d})}[i,j,k]=l.then?(await l)():l,m.propTypes={isOpen:h().bool.isRequired,providerInfo:h().shape({name:h().string}),onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},8210:(a,b,c)=>{c.d(b,{default:()=>j,f:()=>i});var d=c(48249),e=c(67484),f=c(2116),g=c.n(f),h=c(99258);let i="10r:security-status-changed";function j(){let[a,b]=(0,e.useState)(null);if(!a)return null;let c=!a.hasPassword&&!a.bootstrapPassword&&!a.ssoConfigured,f=!1===a.requireLogin;if(!c&&!f||f&&a.hideLoginOffBanner)return null;let i=f?(0,h.Tl)("Log-in check is off — anyone who can reach this port can manage every provider, key and credential."):(0,h.Tl)("No dashboard password is set — the dashboard opens on this machine only. Set one on the Settings page.");return(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b bg-red-500/10 border-red-500/20 text-red-600 dark:text-red-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] shrink-0",children:"warning"}),(0,d.jsx)("p",{className:"text-xs flex-1",children:i}),(0,d.jsx)(g(),{href:"/dashboard/profile",className:"text-xs font-medium underline shrink-0 hover:opacity-80",children:(0,h.Tl)("Open Settings")})]})}},9734:(a,b,c)=>{c.d(b,{M:()=>e});var d=c(99258);function e(a){let b=String(a||"").trim();if(!b)return"";let c=(0,d.Tl)(b);if(c!==b)return c;let e=/^(.+?)\s+·\s+(.+)$/.exec(b);if(e)return`${(0,d.Tl)(e[1])} \xb7 ${(0,d.Tl)(e[2])}`;let f=/^Bonus Pack (\d+)$/.exec(b);if(f)return`${(0,d.Tl)("Bonus Pack")} ${f[1]}`;let g=/^weekly\s+(.+)\s+\(7d\)$/i.exec(b);if(g)return`${(0,d.Tl)("Weekly")} ${g[1]} (7d)`;let h=/^Balance(?:\s*\((.+)\))?$/i.exec(b);if(h)return h[1]?`${(0,d.Tl)("Balance")} (${h[1]})`:(0,d.Tl)("Balance");let i=/^Voucher(?:\s*\((.+)\))?$/i.exec(b);if(i)return i[1]?`${(0,d.Tl)("Voucher")} (${i[1]})`:(0,d.Tl)("Voucher");let j=/^Cash(?:\s*\((.+)\))?$/i.exec(b);return j?j[1]?`${(0,d.Tl)("Cash")} (${j[1]})`:(0,d.Tl)("Cash"):b}},11633:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(17660),f=c(74380),g=c(79750),h=c(99258);let i={mode:{label:"Mode",format:a=>a},defaultModel:{label:"Model",format:a=>a,mono:!0},baseUrl:{label:"Endpoint",format:a=>a,isLink:!0,mono:!0},costPerQuery:{label:"Cost / call",format:a=>0===a?"Free":(0,g.F)(a,4)},pricingUrl:{label:"Pricing",format:()=>"View pricing",isLink:!0},freeTier:{label:"Free tier",format:a=>a},freeMonthlyQuota:{label:"Free quota",format:a=>0===a?"—":a>=999999?"Unlimited":`${a.toLocaleString()} / mo`},searchTypes:{label:"Types",format:a=>a.join(", ")},formats:{label:"Formats",format:a=>a.join(", ")},maxMaxResults:{label:"Max results",format:a=>a},maxCharacters:{label:"Max chars",format:a=>a.toLocaleString()}};function j({config:a,provider:b,title:c="Provider Info"}){if(!a)return null;let g=Object.entries(i).filter(([b])=>void 0!==a[b]&&null!==a[b]&&""!==a[b]).map(([b,c])=>({key:b,label:c.label,value:c.format(a[b]),isLink:c.isLink,mono:c.mono,raw:a[b]})),k=b?.notice?.apiKeyUrl||b?.website,l=b?.notice?.webUrl,m=b?.notice?.text;return(0,d.jsxs)(e.default,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:c}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[l?(0,d.jsxs)("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Web console"]}):k&&(0,d.jsxs)("a",{href:k,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]}),(0,d.jsx)(f.default,{code:b?.notice?.inviteCode})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2",children:[g.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0",children:a.label}),a.isLink?(0,d.jsx)("a",{href:a.raw,target:"_blank",rel:"noopener noreferrer",className:`text-sm text-primary hover:underline truncate ${a.mono?"font-mono":""}`,children:a.value}):(0,d.jsx)("span",{className:`text-sm text-text-main truncate ${a.mono?"font-mono":""}`,children:a.value})]},a.key)),m&&(0,d.jsxs)("div",{className:"flex items-start gap-3 min-w-0 sm:col-span-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0 mt-0.5",children:"Notice"}),(0,d.jsx)("span",{className:"text-sm text-text-main leading-relaxed",children:(0,h.Tl)(m)})]})]})]})}},13733:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(48249),e=c(67484);c(51126);var f=c(818),g=c(267);function h(){let[a,b]=(0,e.useState)(!1),[c,h]=(0,e.useState)("en");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>b(!0),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Language","data-i18n-skip":"true",children:(0,d.jsx)("span",{className:"text-lg leading-none",children:f.h[c]||"\uD83C\uDF10"})}),(0,d.jsx)(g.default,{hideTrigger:!0,isOpen:a,onClose:a=>{b(!1),h(a)}})]})}},17660:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({children:a,title:b,subtitle:c,icon:g,action:h,padding:i="md",hover:j=!1,elev:k=!1,className:l,...m}){return(0,d.jsxs)("div",{className:(0,e.cn)("bg-surface border border-border-subtle",k?"rounded-[14px] shadow-[var(--shadow-elev)]":"rounded-[14px] shadow-[var(--shadow-soft)]",j&&"hover:shadow-[var(--shadow-warm)] hover:border-brand-500/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[i],l),...m,children:[(b||h)&&(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[g&&(0,d.jsx)("div",{className:"p-2 rounded-[10px] bg-bg text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:g})}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("h3",{className:"text-text-main font-semibold",children:b}),c&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:c})]})]}),h]}),a]})}f.Section=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-4 rounded-[10px]","bg-bg border border-border-subtle",b),...c,children:a})},f.Row=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50",b),...c,children:a})},f.ListItem=function({children:a,actions:b,className:c,...f}){return(0,d.jsxs)("div",{className:(0,e.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50 transition-colors",c),...f,children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:a}),b&&(0,d.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:b})]})}},18982:(a,b,c)=>{c.d(b,{gH:()=>d});function d(a,b){return RegExp("^"+a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(b)}},20084:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(95145);function g({isOpen:a,onClose:b,onAdd:c,addedNames:h=[]}){let[i,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)("all"),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)({}),[w,x]=(0,e.useState)({}),[y,z]=(0,e.useState)({}),A=(0,e.useMemo)(()=>new Set(h),[h]),B=(0,e.useMemo)(()=>{let a=m.trim().toLowerCase();return i.filter(b=>("authless"!==o||!b.oauth)&&("oauth"!==o||!!b.oauth)&&(!a||(b.title||"").toLowerCase().includes(a)||(b.description||"").toLowerCase().includes(a)||(b.name||"").toLowerCase().includes(a)))},[i,m,o]),C=async a=>{if(!u[a.url]){x(b=>({...b,[a.url]:!0}));try{let b=await fetch("/api/cli-tools/cowork-mcp-tools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:a.url})}),c=await b.json(),d=c.tools||[],e=Array.isArray(a.toolNames)?a.toolNames:[],f=d.length>0?d.map(a=>a.name):e;v(b=>({...b,[a.url]:{tools:d,requiresAuth:!!c.requiresAuth,error:c.error}})),z(b=>({...b,[a.url]:Object.fromEntries(f.map(a=>[a,!0]))}))}catch(b){v(c=>({...c,[a.url]:{tools:[],error:b.message}}))}finally{x(b=>({...b,[a.url]:!1}))}}},D=(a,b)=>{let c=y[a]||{};z(d=>({...d,[a]:Object.fromEntries(Object.keys(c).map(a=>[a,b]))}))};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:"Browse MCP Marketplace",size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"Search by name or description...",className:"flex-1 px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("select",{value:o,onChange:a=>p(a.target.value),className:"px-2 py-1.5 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:[(0,d.jsx)("option",{value:"all",children:"All"}),(0,d.jsx)("option",{value:"authless",children:"Authless"}),(0,d.jsx)("option",{value:"oauth",children:"OAuth"})]})]}),q&&(0,d.jsx)("div",{className:"px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:q}),k&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-xs py-4 justify-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Loading registry..."})]}),!k&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 max-h-[60vh] overflow-y-auto",children:[0===B.length&&(0,d.jsx)("div",{className:"text-center text-xs text-text-muted py-6",children:"No servers match filter"}),B.map(a=>{let b=A.has(a.slug||a.name),e=s===a.url,f=u[a.url],g=w[a.url],h=y[a.url]||{},i=Object.keys(h),j=Object.values(h).filter(Boolean).length;return(0,d.jsxs)("div",{className:"rounded border border-transparent hover:border-border",children:[(0,d.jsxs)("div",{className:"flex items-start gap-2 px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5",children:[a.iconUrl?(0,d.jsx)("img",{src:a.iconUrl,alt:"",className:"size-7 rounded shrink-0 object-contain",onError:a=>{a.target.style.display="none"},loading:"lazy",decoding:"async"}):(0,d.jsx)("div",{className:"size-7 rounded bg-surface shrink-0"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[(0,d.jsx)("span",{className:"font-medium text-xs",children:a.title}),a.oauth?(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-amber-500/10 text-amber-600",children:"OAuth"}):(0,d.jsx)("span",{className:"px-1 py-0.5 text-[9px] rounded bg-green-500/10 text-green-600",children:"Authless"}),a.toolCount>0&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[a.toolCount," tools"]})]}),a.description&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted line-clamp-2 mt-0.5",children:a.description})]}),(0,d.jsx)("button",{onClick:()=>b?null:void(s===a.url?t(null):(t(a.url),C(a))),disabled:b,className:`shrink-0 px-2 py-1 rounded text-[10px] font-medium transition-colors ${b?"bg-green-500/10 text-green-600 cursor-default":e?"bg-surface border border-border text-text-muted hover:bg-black/5":"bg-primary/10 border border-primary/40 text-primary hover:bg-primary/20"}`,children:b?"Added":e?"Cancel":"+ Add"})]}),e&&(0,d.jsxs)("div",{className:"px-3 py-2 bg-surface/40 border-t border-border flex flex-col gap-2",children:[g&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted text-[10px] py-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[14px]",children:"progress_activity"}),(0,d.jsx)("span",{children:"Probing server for tools..."})]}),!g&&f?.requiresAuth&&(0,d.jsx)("p",{className:"text-[10px] text-amber-600 bg-amber-500/10 px-2 py-1 rounded",children:"\uD83D\uDD10 OAuth required. Add now and authenticate after Apply; tool list will be discovered after first connect."}),!g&&f?.error&&!f?.requiresAuth&&(0,d.jsxs)("p",{className:"text-[10px] text-red-600 bg-red-500/10 px-2 py-1 rounded",children:["Probe failed: ",f.error]}),!g&&0===i.length&&!f?.requiresAuth&&!f?.error&&(0,d.jsx)("p",{className:"text-[10px] text-text-muted",children:"No tools advertised by server."}),!g&&i.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:[j,"/",i.length," tools enabled"]}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>D(a.url,!0),className:"text-[10px] text-primary hover:underline",children:"All"}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"\xb7"}),(0,d.jsx)("button",{onClick:()=>D(a.url,!1),className:"text-[10px] text-primary hover:underline",children:"None"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-1 max-h-40 overflow-y-auto",children:i.map(b=>(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] cursor-pointer hover:bg-black/5 dark:hover:bg-white/5 px-1 rounded",children:[(0,d.jsx)("input",{type:"checkbox",checked:!!h[b],onChange:()=>{var c;return c=a.url,void z(a=>({...a,[c]:{...a[c],[b]:!a[c]?.[b]}}))},className:"size-3"}),(0,d.jsx)("span",{className:"truncate",children:b})]},b))})]}),(0,d.jsx)("button",{onClick:()=>{let b,d;return d=Object.keys(b=y[a.url]||{}).filter(a=>b[a]),void(c?.({name:a.slug||a.name,title:a.title,description:a.description,url:a.url,transport:a.transport,oauth:a.oauth,toolNames:d}),t(null))},className:"self-end px-2 py-1 rounded text-[10px] font-medium bg-primary text-white hover:bg-primary/90",children:"✓ Confirm Add"})]})]},a.url)})]}),(0,d.jsxs)("div",{className:"text-[10px] text-text-muted text-right",children:[B.length," of ",i.length," servers"]})]})})}},21159:(a,b,c)=>{c.d(b,{Ay:()=>m,LL:()=>l});var d=c(48249),e=c(67484),f=c(95145),g=c(99070);c(12020);var h=c(99258),i=c(71404);function j(a,b){try{let c=window.localStorage.getItem(a);return c?JSON.parse(c):b}catch{return b}}function k(){var a;let b,c=(a=j("10r.announcements.cache",null),(Array.isArray(a?.items)?a.items:[]).filter(a=>a&&"string"==typeof a.id&&"string"==typeof a.title).map(a=>({id:a.id,title:a.title,titleEn:"string"==typeof a.titleEn?a.titleEn:"",body:"string"==typeof a.body?a.body:"",bodyEn:"string"==typeof a.bodyEn?a.bodyEn:"",date:"string"==typeof a.date?a.date:"",level:["feature","promo","info","warning","critical"].includes(a.level)?a.level:"info",link:"string"==typeof a.link&&/^https?:\/\//.test(a.link)?a.link:""})).filter(a=>{let b=Date.parse(a.date);return!b||Date.now()-b<=7776e6}).sort((a,b)=>{let c={critical:0,warning:1,promo:2,feature:3,info:4},d=c[a.level]??3,e=c[b.level]??3;return d!==e?d-e:(b.date||"").localeCompare(a.date||"")})),d=new Set(Array.isArray(b=j("10r.announcements.seen",[]))?b:[]);return c.filter(a=>!d.has(a.id)).length}function l(){let[a,b]=(0,e.useState)(k);return a}function m({isOpen:a,onClose:b}){let[c,j]=(0,e.useState)([]),[k,l]=(0,e.useState)(!1),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(!1),r=(0,e.useMemo)(()=>k&&0===c.length?(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),(0,h.Tl)("Loading...")]}):n&&0===c.length?(0,d.jsxs)("p",{className:"py-6 text-center text-sm text-text-muted",children:[(0,h.Tl)("Could not load announcements"),": ",n]}):0===c.length?(0,d.jsx)("p",{className:"py-6 text-center text-sm text-text-muted",children:(0,h.Tl)("No announcements right now")}):(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 lg:grid-cols-2",children:[p&&(0,d.jsx)("p",{className:"rounded-lg bg-amber-500/10 px-3 py-2 text-xs text-amber-600 dark:text-amber-400",children:(0,h.Tl)("Showing the last cached copy — the live feed is unreachable right now.")}),c.map(a=>(0,d.jsxs)("article",{className:(0,i.cn)("rounded-lg border p-2.5","critical"===a.level?"border-red-500/30 bg-red-500/5":"warning"===a.level?"border-amber-500/30 bg-amber-500/5":"promo"===a.level?"border-green-500/40 bg-green-500/5":"feature"===a.level?"border-blue-500/40 bg-blue-500/5":"border-black/10 dark:border-white/10 bg-surface/50"),children:[(0,d.jsxs)("div",{className:"mb-1 flex items-start justify-between gap-2",children:[(0,d.jsx)("h3",{className:"text-[13px] font-semibold leading-5 text-text-main",children:"en"===(0,h.kk)()&&a.titleEn?a.titleEn:a.title}),a.date&&(0,d.jsx)("time",{className:"shrink-0 text-[10px] text-text-muted",children:a.date})]}),a.body&&(0,d.jsx)("p",{className:"whitespace-pre-line text-xs leading-relaxed text-text-muted",children:"en"===(0,h.kk)()&&a.bodyEn?a.bodyEn:a.body}),a.link&&(0,d.jsxs)("a",{href:a.link,target:"_blank",rel:"noopener noreferrer",className:"mt-1.5 inline-flex items-center gap-1 text-[11px] font-medium text-primary hover:underline",children:[(0,h.Tl)("Learn more"),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"open_in_new"})]})]},a.id))]}),[k,c,n,p]);return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:(0,h.Tl)("Announcements"),size:"full",footer:(0,d.jsx)(g.default,{size:"sm",variant:"secondary",onClick:b,children:(0,h.Tl)("Close")}),children:(0,d.jsx)("div",{className:"pr-1",children:r})})}},24622:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>m});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(99258),k=c(25170),l=a([i]);function m({provider:a,isOpen:b,onSuccess:c,onClose:d}){let g="mimo-desktop"===a?"mimo-desktop":"xiaomi-mimo",[h,l]=(0,f.useState)("detecting"),n="mimo-desktop"===g?h:"cloud",[o,p]=(0,f.useState)(null),[q,r]=(0,f.useState)(!1),[s,t]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),[w,x]=(0,f.useState)(null),[y,z]=(0,f.useState)(""),[A,B]=(0,f.useState)(null),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useState)(""),[I,J]=(0,f.useState)(!1),K=async()=>{l("detecting"),v(null),x(null),z(""),p(null),B(null),D(null),H(""),r(!1),t(!1);let a=await fetch("/api/oauth/xiaomi-mimo/auto-import"),b=await a.json();b.found?(p(b),l("found")):(l("not-found"),r(!!b.desktopLocked),x(b.code||null),z(b.details||""),v((0,j.Tl)(b.error||"Xiaomi MiMo Desktop credentials not found on this machine.")))},L=async()=>{let a=!!o?.sessionOnly;if(o?.apiKey||a){l("importing"),v(null);try{let b=await fetch("/api/oauth/xiaomi-mimo/api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:o.apiKey||void 0,uid:o.uid,baseUrl:o.baseUrl,sessionOnly:a,provider:g})}),e=await b.json();if(!b.ok||!e.success)throw Error((0,j.Tl)(e.error||"Import failed"));c?.(e.connection),d()}catch(a){l("found"),v(a.message)}}},M=async()=>{t(!0);try{await fetch("/api/oauth/xiaomi-mimo/desktop-kill",{method:"POST"})}catch{}setTimeout(()=>{t(!1),K().catch(()=>l("not-found"))},1500)},N=async()=>{v(null),H("");try{let a=(0,k.u)(),b=await fetch(`/api/oauth/${g}/authorize?state=${a}`),c=await b.json();if(c.authorizeUrl)B(c.authorizeUrl),D(c.manualUrl||null),F(c.state),window.open(c.authorizeUrl,"_blank","width=600,height=700");else throw Error((0,j.Tl)(c.error||"Failed to start OAuth"))}catch(a){v(a.message)}},O=async a=>{let b=await fetch(`/api/oauth/${g}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({state:a})}),e=await b.json();if(!e.success)throw Error((0,j.Tl)(e.error||"Exchange failed"));c?.(e.connection),d()},P=async()=>{let a=G.trim();if(!a)return void v((0,j.Tl)("Paste the authorization code first."));J(!0),v(null);try{let b=await fetch(`/api/oauth/${g}/submit-code`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a})}),c=await b.json();if(!b.ok||"done"!==c.status)throw Error((0,j.Tl)(c.error||"Could not read that code."));await O(c.state||E)}catch(a){v(a.message)}finally{J(!1)}},Q=async()=>{if(E){v(null);try{let a=await fetch(`/api/oauth/${g}/poll-status?state=${E}`),b=await a.json();if("done"===b.status&&b.result)await O(E);else if("error"===b.status)throw Error((0,j.Tl)(b.error||"OAuth failed"));else v((0,j.Tl)("Authorization not completed yet. Finish in the browser, then click Check Again."))}catch(a){v(a.message)}}};return(0,e.jsx)(i.aF,{isOpen:b,title:(0,j.Tl)("Connect Xiaomi MiMo"),onClose:d,children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:["cloud"===n&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,e.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,e.jsxs)("div",{className:"text-sm text-blue-800 dark:text-blue-200",children:[(0,e.jsx)("p",{className:"font-medium",children:(0,j.Tl)("Cloud models — sign in with the browser")}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:(0,j.Tl)("This card bills the cloud API, so it uses the browser authorization or an sk- API key. Desktop credits belong to the MiMo Desktop card.")})]})]})}),u&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:u})}),A?(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsxs)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:[(0,e.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:(0,j.Tl)("Browser opened. Complete the Xiaomi sign-in there.")}),(0,e.jsxs)("p",{className:"text-sm text-blue-800 dark:text-blue-200 mt-1 opacity-80",children:[(0,j.Tl)("The page may show an authorization code — paste it below. If it came back automatically instead, click")," ",(0,e.jsx)("strong",{children:(0,j.Tl)("Check Again")}),"."]})]}),u&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:u})}),u&&(0,e.jsx)(i.$n,{onClick:N,variant:"outline",fullWidth:!0,children:(0,j.Tl)("Sign in via Browser")}),(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{className:"block text-sm font-medium mb-2",children:(0,j.Tl)("Authorization Code")}),(0,e.jsx)("textarea",{value:G,onChange:a=>H(a.target.value),placeholder:(0,j.Tl)("Paste the authorization code shown in the browser"),rows:3,className:"w-full px-3 py-2 text-sm font-mono border border-border rounded-lg bg-surface focus:outline-none focus:border-primary resize-none"}),(0,e.jsx)("p",{className:"text-xs text-text-muted mt-1",children:(0,j.Tl)("The code is a long string (100+ characters) — copy it whole, using the Copy button on the sign-in page.")}),C&&(0,e.jsx)("a",{href:C,target:"_blank",rel:"noreferrer",className:"inline-block text-xs text-primary hover:underline mt-2",children:(0,j.Tl)("Open the code page")})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:P,disabled:I||!G.trim(),fullWidth:!0,children:I?(0,j.Tl)("Checking..."):(0,j.Tl)("Submit Code")}),(0,e.jsx)(i.$n,{onClick:Q,variant:"outline",fullWidth:!0,children:(0,j.Tl)("Check Again")})]})]}):(0,e.jsx)(i.$n,{onClick:N,fullWidth:!0,children:(0,j.Tl)("Sign in via Browser")})]}),"detecting"===n&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:(0,j.Tl)("Reading local credentials...")}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:(0,j.Tl)("Checking Xiaomi MiMo Desktop's local profile (auth.json + cookie store)")})]}),"found"===n&&o&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,e.jsxs)("div",{className:"text-sm text-green-800 dark:text-green-200",children:[(0,e.jsx)("p",{className:"font-medium",children:o.sessionOnly?(0,j.Tl)("Xiaomi MiMo Desktop session detected!"):(0,j.Tl)("Xiaomi MiMo Desktop credentials found!")}),(0,e.jsxs)("p",{className:"mt-1 opacity-80",children:[(0,j.Tl)("UID"),": ",o.uid||"—"," \xb7 ",(0,j.Tl)("Source"),":"," ",o.source?.split(/[\\/]/).pop()]}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:o.hasDesktopSession?(0,j.Tl)("Desktop account session detected — the Desktop models will be available."):o.desktopLocked?(0,j.Tl)("Desktop is running and is holding its credential store — quit it to unlock the Desktop models."):(0,j.Tl)("No desktop account session found — sign in to MiMo Desktop, then retry.")})]})]})}),u&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:u})}),o.sessionOnly&&(0,e.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,e.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"lightbulb"}),(0,e.jsxs)("div",{className:"text-sm text-blue-800 dark:text-blue-200",children:[(0,e.jsx)("p",{className:"font-medium",children:(0,j.Tl)("Want the metered models too?")}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:(0,j.Tl)("This card covers the Desktop models. The metered and subscription-plan models are on the MiMo card — open that card there.")})]})]})}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:L,fullWidth:!0,children:o.sessionOnly?(0,j.Tl)("Connect with Desktop Session"):(0,j.Tl)("Connect with Local Credentials")}),(0,e.jsx)(i.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:(0,j.Tl)("Cancel")})]})]}),"importing"===n&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:(0,j.Tl)("Connecting...")})]}),"not-found"===n&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-3 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,e.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,e.jsxs)("div",{className:"text-sm text-amber-800 dark:text-amber-200",children:[(0,e.jsx)("p",{className:"font-medium",children:q?(0,j.Tl)("Quit Xiaomi MiMo Desktop and retry"):(0,j.Tl)("Local credentials not found")}),(0,e.jsx)("p",{className:"mt-1 opacity-80",children:"DESKTOP_LOCKED"===w?(0,j.Tl)("The desktop app keeps an exclusive lock on its credential store while it runs."):"AUTH_FILE_MISSING"===w?(0,j.Tl)("Make sure Xiaomi MiMo Desktop is installed and you are signed in, then retry."):u}),y&&(0,e.jsxs)("details",{className:"mt-1 opacity-70",children:[(0,e.jsx)("summary",{className:"cursor-pointer",children:(0,j.Tl)("Checked paths")}),(0,e.jsx)("pre",{className:"mt-1 whitespace-pre-wrap break-all text-[10px]",children:y})]}),(0,e.jsx)("p",{className:"mt-2 opacity-80",children:(0,j.Tl)("Make sure MiMo Desktop is signed in on this machine.")})]})]})}),(0,e.jsx)(i.$n,{onClick:()=>{K().catch(()=>l("not-found"))},variant:"outline",fullWidth:!0,disabled:s,children:(0,j.Tl)("Retry Local Detect")}),q&&(0,e.jsx)(i.$n,{onClick:M,variant:"outline",fullWidth:!0,disabled:s,className:"mt-2",children:s?(0,j.Tl)("Closing MiMo Desktop..."):(0,j.Tl)("Quit MiMo Desktop and re-detect")})]})]})})}i=(l.then?(await l)():l)[0],m.propTypes={provider:h().string,isOpen:h().bool.isRequired,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},24656:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(50377),k=a([i]);function l({isOpen:a,providerInfo:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)("booting"),[k,m]=(0,f.useState)(null),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(""),[r,s]=(0,f.useState)(null),[t,u]=(0,f.useState)(!1),v=(0,f.useRef)(null),w=(0,f.useRef)({proxyStarted:!1,stopSent:!1});(0,f.useRef)(!1);let x=(0,f.useRef)(!1),y=(0,f.useRef)(a),z=(0,f.useRef)(c),A=(0,f.useRef)(d),{copied:B,copy:C}=(0,j.C)(),D=(0,f.useCallback)(()=>{let a=w.current;a.proxyStarted&&!a.stopSent&&(a.stopSent=!0,fetch("/api/oauth/zed/stop-proxy").catch(()=>{}))},[]),E=(0,f.useCallback)(()=>{h("success"),z.current?.(),setTimeout(()=>A.current?.(),600)},[]),F=(0,f.useCallback)(async a=>{if(a?.accessToken&&a?.userId){u(!0),s(null),h("importing");try{let b=await fetch("/api/oauth/zed/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a.accessToken,userId:a.userId,...a.systemId?{systemId:a.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Import failed");D(),E()}catch(a){s(a.message),h("ide-found")}finally{u(!1)}}},[E,D]);(0,f.useCallback)(async()=>{s(null),o(null),q(""),w.current={proxyStarted:!1,stopSent:!1},x.current=!1;try{let a=await fetch("/api/oauth/zed/start-proxy"),b=await a.json();if(!a.ok||!b.success||!b.callbackUrl)throw Error(b.reason||b.error||"Failed to start Zed callback server");if(w.current.proxyStarted=!0,w.current.stopSent=!1,!y.current)return void D();let c=new URL("/api/oauth/zed/authorize",window.location.origin);c.searchParams.set("redirect_uri",b.callbackUrl);let d=await fetch(c),e=await d.json();if(!d.ok)throw D(),Error(e.error||"Failed to start Zed authorization");if(!y.current)return void D();let f={state:e.state};e.codeVerifier&&(f.codeVerifier=e.codeVerifier),e.systemId&&(f.systemId=e.systemId);let g=await fetch("/api/oauth/zed/register-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),i=null;try{i=await g.json()}catch{i=null}if(!g.ok||i?.success===!1)throw D(),Error(i?.error||"Failed to register Zed login session");if(!y.current)return;o(e),h(a=>"ide-found"===a||"importing"===a?a:"browser"),v.current=window.open(e.authUrl,"oauth_popup_zed","width=600,height=700")}catch(a){if(!y.current)return;s(a.message),h(a=>"ide-found"===a?a:"browser")}},[D]);let G=async()=>{let a=p.trim();if(a){u(!0),s(null);try{let b=await fetch("/api/oauth/zed/exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:n?.state,...n?.redirectUri?{redirectUri:n.redirectUri}:{},...n?.codeVerifier?{codeVerifier:n.codeVerifier}:{},...n?.systemId?{systemId:n.systemId}:{}})}),c=await b.json();if(!b.ok)throw Error(c.error||"Exchange failed");x.current=!0,D(),E()}catch(a){s(a.message),h("error")}finally{u(!1)}}},H=()=>{x.current=!0,D(),d()},I=`Connect ${b?.name||"Zed"}`;return(0,e.jsx)(i.aF,{isOpen:a,title:I,onClose:H,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[("booting"===g||"importing"===g)&&(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:"importing"===g?"Importing session from Zed IDE…":"Detecting Zed IDE session…"})]}),"ide-found"===g&&k&&(0,e.jsxs)("div",{className:"space-y-3",children:[(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,e.jsxs)("p",{className:"text-sm text-green-800 dark:text-green-200",children:["Zed IDE session detected (user ",k.userId,"). Import failed — retry or use browser sign-in below."]})]})}),(0,e.jsx)(i.$n,{onClick:()=>F(k),fullWidth:!0,disabled:t,children:t?"Importing…":"Import from Zed IDE"})]}),"success"===g&&(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800 text-sm text-green-800 dark:text-green-200",children:"Connected successfully."}),("browser"===g||"error"===g||"ide-found"===g)&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:"Waiting for popup authorization…"})]}),(0,e.jsxs)("div",{className:"flex items-center gap-3 my-1",children:[(0,e.jsx)("div",{className:"flex-1 h-px bg-border"}),(0,e.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wider",children:"Or paste callback URL manually"}),(0,e.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.pd,{value:n?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,e.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===B?"check":"content_copy",onClick:()=>C(n?.authUrl,"auth_url"),disabled:!n?.authUrl,children:"Copy"})]})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,e.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser (or the local callback page)."}),(0,e.jsx)(i.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"http://127.0.0.1:.../?user_id=...&access_token=...",className:"font-mono text-xs"})]})]}),r&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:r})}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:G,fullWidth:!0,disabled:t||!p.trim()||!n,children:t?"Connecting…":"Connect"}),(0,e.jsx)(i.$n,{onClick:H,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}i=(k.then?(await k)():k)[0],l.propTypes={isOpen:h().bool.isRequired,providerInfo:h().object,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},25170:(a,b,c)=>{c.d(b,{u:()=>e});let d=Array.from({length:256},(a,b)=>b.toString(16).padStart(2,"0"));function e(a=""){let b=globalThis.crypto;if("function"==typeof b?.randomUUID)return a+b.randomUUID();if("function"==typeof b?.getRandomValues){let c=b.getRandomValues(new Uint8Array(16));return c[6]=15&c[6]|64,c[8]=63&c[8]|128,a+d[c[0]]+d[c[1]]+d[c[2]]+d[c[3]]+"-"+d[c[4]]+d[c[5]]+"-"+d[c[6]]+d[c[7]]+"-"+d[c[8]]+d[c[9]]+"-"+d[c[10]]+d[c[11]]+d[c[12]]+d[c[13]]+d[c[14]]+d[c[15]]}return a+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,10)+"-"+Math.random().toString(36).slice(2,10)}},25919:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(71404);function f({src:a,alt:b="Avatar",name:c,size:g="md",className:h}){let i={xs:"size-6 text-xs",sm:"size-8 text-sm",md:"size-10 text-base",lg:"size-12 text-lg",xl:"size-16 text-xl"};return a?(0,d.jsx)("div",{className:(0,e.cn)("rounded-full bg-cover bg-center bg-no-repeat","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],h),style:{backgroundImage:`url(${a})`},role:"img","aria-label":b}):(0,d.jsx)("div",{className:(0,e.cn)("rounded-full flex items-center justify-center font-semibold text-white","ring-2 ring-white dark:ring-surface-dark shadow-sm",i[g],(a=>{if(!a)return"bg-primary";let b=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"],c=a.charCodeAt(0)%b.length;return b[c]})(c),h),role:"img","aria-label":b,children:(a=>{if(!a)return"?";let b=a.split(" ");return b.length>=2?`${b[0][0]}${b[1][0]}`.toUpperCase():a.substring(0,2).toUpperCase()})(c)})}},29225:(a,b,c)=>{c.d(b,{HY:()=>h,Kw:()=>i});let d={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","b.ai":"bai","b-ai":"bai","siliconflow-cn":"siliconflow","longcat-intl":"longcat","stepfun-cn":"stepfun","stepfun-plan":"stepfun","stepfun-plan-cn":"stepfun","step-cn":"stepfun","stepp-cn":"stepfun",stepp:"stepfun",step:"stepfun","sfp-cn":"stepfun",sfp:"stepfun",sfpcn:"stepfun","sf-cn":"stepfun",sfcn:"stepfun",sf:"stepfun","step-plan-cn":"stepfun","step-plan":"stepfun","alitp-intl":"alitp-intl","alims-intl":"alitp-intl","alicode-intl":"alitp-intl","alitp-cn":"alitp",alims:"alitp",alicode:"alitp","deepseek-web":"deepseek","muse-web":"muse","gemini-web":"gemini","chatgpt-web":"openai"},e={bai:".svg",doubao:".svg"},f=new Set;function g(a){return a&&"string"==typeof a?a.trim().toLowerCase():""}function h(a){let b=function(a){let b=g(a);if(!b||f.has(b))return"";let c=d[b]||b;return f.has(c)?"":c}(a);return b?`/providers/${b}${e[b]||".png"}`:null}function i(a){let b=g(a);b&&f.add(b);let c=d[b];c&&f.add(c)}},29476:(a,b,c)=>{c.d(b,{yU:()=>k});var d=c(67484),e=c(59160);let f=null,g=null,h=null,i=null;function j(a,b,c,d){if(!d)return null;let f=d.includes("/")?d.slice(0,d.indexOf("/")):null,g=d.includes("/")?d.slice(d.indexOf("/")+1):d,h=a=>{let b=f?c[f]?.[g]:null;return b?{...a||{},...b.contextWindow?{contextWindow:b.contextWindow}:{},...b.maxOutput?{maxOutput:b.maxOutput}:{}}:a};if(a[d])return h(a[d]);if(b[g])return h(b[g]);let i=(0,e.nl)(f,g);return h({vision:i.vision,search:i.search,reasoning:i.reasoning,contextWindow:i.contextWindow,maxOutput:i.maxOutput})}function k(){let[a,b]=(0,d.useState)(()=>f?.byFull||{}),[c,e]=(0,d.useState)(()=>f?.byId||{}),[k,l]=(0,d.useState)(()=>h||{}),m=(0,d.useCallback)(()=>{g=null,h=null,i=null,Promise.all([(f=null,g||(g=fetch("/api/models").then(async a=>{if(!a.ok)throw Error(`models ${a.status}`);return f=function(a){let b={},c={};for(let d of a||[])d.caps&&(d.fullModel&&(b[d.fullModel]=d.caps),d.routedModel&&(b[d.routedModel]=d.caps),d.model&&(c[d.model]=d.caps));return{byFull:b,byId:c}}((await a.json()).models)}).catch(()=>({byFull:{},byId:{}})).finally(()=>{g=null}))),h?Promise.resolve(h):i||(i=fetch("/api/models/caps").then(async a=>{if(!a.ok)throw Error(`caps ${a.status}`);let b=await a.json();return h=b.caps&&"object"==typeof b.caps?b.caps:{}}).catch(()=>({})).finally(()=>{i=null}))]).then(([a,c])=>{b(a.byFull),e(a.byId),l(c||{})})},[]);return{getCaps:(0,d.useCallback)(b=>j(a,c,k,b),[a,c,k]),getBaseCaps:(0,d.useCallback)(b=>j(a,c,{},b),[a,c]),overrides:k,refresh:m}}},32971:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(67484),f=c(74429);function g({text:a,children:b,position:c="top",color:h}){let i=(0,e.useRef)(null),[j,k]=(0,e.useState)(null);return(0,d.jsxs)("div",{ref:i,className:"relative inline-flex",onMouseEnter:()=>{let a=i.current?.getBoundingClientRect();if(!a)return;let b=a.left+a.width/2,d=a.top+a.height/2;k({position:"fixed",..."bottom"===c?{top:a.bottom+6,left:b,transform:"translateX(-50%)"}:"left"===c?{right:window.innerWidth-a.left+6,top:d,transform:"translateY(-50%)"}:"right"===c?{left:a.right+6,top:d,transform:"translateY(-50%)"}:{bottom:window.innerHeight-a.top+6,left:b,transform:"translateX(-50%)"}})},onMouseLeave:()=>k(null),children:[b,j&&"u">typeof document&&(0,f.createPortal)((0,d.jsx)("div",{className:`pointer-events-none z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug text-white whitespace-normal ${h?"":"bg-gray-900"}`,style:{...j,...h?{backgroundColor:h}:{}},children:a}),document.body)]})}},37365:(a,b,c)=>{c.d(b,{C:()=>d});let d=(0,c(31417).v)(a=>({query:"",placeholder:"",visible:!1,setQuery:b=>a({query:b}),register:(b="Search...")=>a({visible:!0,placeholder:b,query:""}),unregister:()=>a({visible:!1,placeholder:"",query:""})}))},38508:(a,b,c)=>{c.d(b,{default:()=>s});var d=c(48249),e=c(49885),f=c.n(e),g=c(99258),h=c(9734),i=c(71452),j=c(71404),k=c(82563);function l({className:a}){return(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,"aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"}),(0,d.jsx)("path",{d:"M19 15l.8 2.2L22 18l-2.2.8L19 21l-.8-2.2L16 18l2.2-.8z"})]})}function m(a){return Number(a||0).toLocaleString("en-US",{maximumFractionDigits:2})}function n(a,b){return(0,k.h7)(a,b)}function o(a){return void 0!==a.remaining&&null!==a.remaining?Math.max(0,Number(a.remaining)):Math.max(0,Number(a.total||0)-Number(a.used||0))}function p({row:a,label:b=null,inset:c=!1}){let e=Number((a.totalNum??a.total)||0),f=Number.isFinite(a.remainingNum)?Number(a.remainingNum):Number(a.remaining??o(a)),q=(0,i.Rs)(a),r=(0,i.OG)(a);if(q){let b=(0,i.UL)(a.name),c=f>0,e=!0===a.checkinToday;return(0,d.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-baseline justify-between gap-2 tabular-nums",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-baseline gap-1",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0 self-center text-text-muted"}),(0,d.jsx)("b",{className:(0,j.cn)("text-[12px] font-bold",c?"text-text":k.pM.critical),children:m(f)}),b?(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",b,")"]}):null,e&&(0,d.jsxs)("span",{className:"ml-1 inline-flex shrink-0 items-center gap-0.5 rounded bg-green-500/10 px-1 py-px text-[10px] font-medium text-green-600 dark:text-green-400",style:{transform:"translateY(-1px)"},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"check_circle"}),(0,g.Tl)("Checked in today"),Number.isInteger(a.streakDays)&&a.streakDays>1&&(0,d.jsxs)("span",{className:"text-text-muted",children:[" \xb7 ",(0,g.Tl)("{count}-day streak").replace("{count}",String(a.streakDays))]})]})]}),(0,d.jsx)("span",{className:"shrink-0 text-[11px] text-text-muted",children:(0,h.M)((0,i._6)(a.name)||a.name)})]}),(0,d.jsx)(k.Ay,{pct:100*!!c})]})}let s=(0,i.pR)(a),t=(0,i.Cd)(a,s);return(0,d.jsxs)("div",{className:(0,j.cn)("min-w-0 space-y-1",c&&"pl-[17px]"),children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[11px] tabular-nums",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[c?null:(0,d.jsx)(l,{className:"size-[11px] shrink-0 text-text-muted"}),(0,d.jsx)("span",{className:"truncate text-text-muted",children:b??(0,h.M)(a.name)})]}),(0,d.jsxs)("span",{className:(0,j.cn)("shrink-0",k.pM[t]),children:[a.percentScale?`${Math.round(s)}%`:(0,g.Tl)("remaining {remaining} of {total}").replace("{remaining}",m(f)).replace("{total}",m(e)),a.resetAt?` ${n(r,a.resetAt)}`:""]})]}),(0,d.jsx)(k.Ay,{pct:s})]})}let q=[.35,.65,1];function r({ladder:a}){let b=a.length,c=2.5/Math.max(1,b-1),e=a=>2===b?q[2*a]:q[a],f=b=>k.pM[a[b].ownPct>0&&a[b].ownPct<i.MF?"critical":"reset"],o=a[0];return(0,d.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[11px] tabular-nums",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0 text-text-muted"}),(0,d.jsx)("span",{className:"truncate text-text-muted",children:(0,h.M)(o.row.name||"")})]}),(0,d.jsxs)("span",{className:(0,j.cn)("shrink-0",f(0)),children:[(0,g.Tl)("remaining {remaining} of {total}").replace("{remaining}",m(o.ownRemaining)).replace("{total}",m(o.ownTotal)),o.row.resetAt?` ${n(!0,o.row.resetAt)}`:""]})]}),(0,d.jsx)(k.$n,{height:8,role:"img","aria-label":a.map(({row:a,ownRemaining:b,ownTotal:c})=>`${(0,h.M)(a.name)} ${m(b)}/${m(c)}`).join(","),children:a.map(({row:b,widthPct:f,ownRemaining:g,ownTotal:i},l)=>(0,d.jsx)("span",{className:(0,j.cn)("absolute left-0",k.jH),style:{top:`${l*c}px`,bottom:`${l*c}px`,width:`${f}%`,opacity:e(l),...(0,k.jE)(a[l].ownPct)},title:`${(0,h.M)(b.name)} ${m(g)} / ${m(i)}`},`${b.name||"band"}-${l}`))}),a.slice(1).map(({row:b,ownRemaining:c,ownTotal:i},l)=>(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[11px] tabular-nums",style:{paddingLeft:`${(l+1)*10}px`},children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[(0,d.jsx)("span",{className:"size-[8px] shrink-0 rounded-[2px]",style:{opacity:e(l+1),background:(0,k.dI)(a[l+1].ownPct)},"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate text-text-muted",children:(0,h.M)(b.name)})]}),(0,d.jsxs)("span",{className:(0,j.cn)("shrink-0",f(l+1)),children:[(0,g.Tl)("remaining {remaining} of {total}").replace("{remaining}",m(c)).replace("{total}",m(i)),b.resetAt?` ${n(!0,b.resetAt)}`:""]})]},`${b.name||"layer"}-${l}`))]})}function s({packs:a=[],className:b,nestedCycle:c=!1}){let e,f,q=(a||[]).filter(a=>a&&"object"==typeof a&&!0!==a.detailOnly&&!(0,i.eK)(a));if(0===q.length)return null;let t=(a||[]).filter(a=>a&&"object"==typeof a&&!0===a.detailOnly).map(a=>({...a,totalNum:Number(a.total||0),remainingNum:o(a)})),u=q.map(a=>{let b=Number(a.total||0);return{...a,totalNum:b,remainingNum:o(a)}}),v=(0,i.GT)(u),w=(0,i.Ug)(u,{force:!0===c}),x=new Set(w.map(a=>a.row)),y=(0,i.MK)(u).filter(a=>!x.has(a)),z=u.some(a=>"资源包"===String(a.name||"")),A=u.filter(a=>(0,i.Z_)(a)).filter(a=>!(z&&String(a.name||"").startsWith("赠送包"))),B=new Map;for(let a of A){let b=String(a.name||"").replace(/\s*\d+\s*$/,"").trim();b&&(B.has(b)||B.set(b,[]),B.get(b).push(a))}let C=[...B.entries()].map(([a,b])=>{let c=b.reduce((a,b)=>a+b.totalNum,0),d=b.reduce((a,b)=>a+Number(b.used||0),0),e=b.reduce((a,b)=>a+b.remainingNum,0);return{base:a,members:b,totalNum:c,usedNum:d,remainingNum:e,live:b.filter(a=>a.remainingNum>0&&a.totalNum>0)}}).filter(a=>a.members.length>=2&&a.totalNum>0),D=new Set(C.flatMap(a=>a.members)),E=v.monthly.filter(a=>!x.has(a)&&!(0,i.Rt)(a)&&(C.length>0||!0===a.giftPack||!0===a.displayRemaining)),F=new Set,G=A.filter(a=>{if(D.has(a))return!1;let b=`${Number(a.used||0)}|${Number(a.total||0)}|${a.resetAt||""}`;return!F.has(b)&&(F.add(b),!0)}),H=[...C.flatMap(a=>a.members),...E,...G],I=H.reduce((a,b)=>a+b.totalNum,0),J=H.reduce((a,b)=>a+b.remainingNum,0),K=C.length+G.length+E.length,L=K<=1,M=1===K&&H.length>0&&H.every(a=>(0,i.Rs)(a)),N=M?(0,i.UL)(H[0]?.name):"",O=a=>"资源包"===a?"资源包 Credits":a;C.length;let P=L&&t.length>0,Q=P?t:H,R=H.some(a=>a.resetAt);return(0,d.jsxs)("div",{className:(0,j.cn)("min-w-0 space-y-2",b),children:[H.length>0&&(0,d.jsxs)("div",{className:"flex items-end justify-between gap-3",children:[(0,d.jsxs)("span",{className:"flex items-end gap-1.5 tabular-nums",children:[(0,d.jsx)(l,{className:"size-[12px] shrink-0 self-center text-primary"}),(0,d.jsx)("b",{className:"text-[14px] font-bold leading-none text-text",children:m(J)}),N?(0,d.jsxs)("span",{className:"text-[10px] leading-none text-text-muted",children:["(",N,")"]}):null,H[0]?.checkinToday&&(0,d.jsxs)("span",{className:"ml-1 inline-flex shrink-0 items-center gap-0.5 rounded bg-green-500/10 px-1 py-px text-[10px] font-medium text-green-600 dark:text-green-400",style:{transform:"translateY(-1px)"},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"check_circle"}),(0,g.Tl)("Checked in today"),Number.isInteger(H[0].streakDays)&&H[0].streakDays>1&&(0,d.jsxs)("span",{className:"text-text-muted",children:[" \xb7 ",(0,g.Tl)("{count}-day streak").replace("{count}",String(H[0].streakDays))]})]})]}),!M&&(0,d.jsxs)("span",{className:"inline-flex shrink-0 items-baseline text-xs leading-none tabular-nums text-text-muted",children:[m(J)," / ",m(I)]})]}),H.length>0&&((a,b)=>{let c=a.filter(a=>a.remainingNum>0&&a.totalNum>0).sort((a,b)=>String(a.resetAt||"").localeCompare(String(b.resetAt||""))),e=0,f=c.map(a=>({...a,alpha:(0,i.OG)(a)?1:Math.max(.45,.85-.05*e++)})),h=f;if(f.length>20){let a=f.slice(0,19),b=f.slice(19);h=[...a,{name:(0,g.Tl)("{count} more packs").replace("{count}",String(b.length)),remainingNum:b.reduce((a,b)=>a+b.remainingNum,0),totalNum:b.reduce((a,b)=>a+b.totalNum,0),resetAt:b[0]?.resetAt||null,recurring:!1,alpha:.6}]}let j=a.reduce((a,b)=>a+b.remainingNum,0),l=b>0?Math.max(0,1-j/b):0,o=b>0?j/b*100:0,p=o>0&&o<i.MF?(0,k.dI)(0):"hsl(142 60% 45%)";return(0,d.jsxs)(k.$n,{className:"flex gap-[2px]",role:"img","aria-label":(0,g.Tl)("{count} packs, remaining {remaining} of {total}").replace("{count}",String(c.length)).replace("{remaining}",m(j)).replace("{total}",m(b)),children:[h.map((a,c)=>{let e=b>0?a.remainingNum/b:0,f=(0,i.OG)(a);return(0,d.jsx)("span",{className:"block h-full min-w-[3px]",style:{flex:`${e.toFixed(4)} 1 0`,opacity:a.alpha,background:p},title:[a.name||(0,g.Tl)("Quota package"),`${(0,g.Tl)("Remaining")} ${m(a.remainingNum)} / ${m(a.totalNum)}`,a.resetAt?n(f,a.resetAt):null].filter(Boolean).join(",")},`${a.name||"pack"}-${c}`)}),l>0&&(0,d.jsx)("span",{"aria-hidden":"true",className:"block h-full",style:{flex:`${l.toFixed(4)} 1 0`}})]})})(Q,I),z&&(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:(0,g.Tl)("includes {names}").replace("{names}",[...G.map(a=>(0,h.M)(O(a.name))),"资源包 Credits"].join("、"))}),H.length>0&&(f=(e=Q.filter(a=>a.remainingNum>0)).filter(a=>a.resetAt).sort((a,b)=>String(a.resetAt).localeCompare(String(b.resetAt)))[0]||null,L&&!R&&(!P||M)?(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:(0,h.M)((0,i._6)(O(H[0].name))||H[0].name)}):0===e.length?null:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 text-[11px] tabular-nums",children:[(0,d.jsx)("span",{className:"text-text-muted",children:(0,g.Tl)("{count} resource packs").replace("{count}",String(e.length))}),f?(0,d.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-3 truncate text-text-muted",children:[(0,d.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0"}),m(f.remainingNum)]}),(0,d.jsx)("span",{className:"shrink-0",children:n((0,i.OG)(f),f.resetAt)})]}):null]})),G.length>0&&!L&&(0,d.jsx)(d.Fragment,{children:G.map((a,b)=>(0,d.jsx)(p,{row:a},`${a.name||"pool"}-${b}`))}),w.length>0&&(0,d.jsx)(r,{ladder:w}),(0,i.EJ)(y).map((a,b)=>a.family?(0,d.jsxs)("div",{className:"min-w-0 space-y-1.5",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-1.5 text-[11px]",children:[(0,d.jsx)(l,{className:"size-[11px] shrink-0 text-text-muted"}),(0,d.jsx)("span",{className:"truncate text-text",children:(0,g.Tl)(a.family)})]}),a.rows.map((a,b)=>(0,d.jsx)(p,{row:a,inset:!0,label:(0,g.Tl)((0,i.TM)(a.name)?.window||a.name)},`${a.name||"win"}-${b}`))]},`${a.family}-${b}`):a.rows.map((a,c)=>(0,d.jsx)(p,{row:a},`${a.name||"win"}-${b}-${c}`)))]})}r.propTypes={ladder:f().arrayOf(f().object).isRequired},p.propTypes={row:f().shape({name:f().string,used:f().oneOfType([f().number,f().string]),total:f().oneOfType([f().number,f().string]),remaining:f().oneOfType([f().number,f().string]),remainingNum:f().number,totalNum:f().number,resetAt:f().oneOfType([f().string,f().instanceOf(Date)]),recurring:f().bool})},s.propTypes={nestedCycle:f().bool,packs:f().arrayOf(f().shape({name:f().string,used:f().oneOfType([f().number,f().string]),total:f().oneOfType([f().number,f().string]),remaining:f().oneOfType([f().number,f().string]),resetAt:f().oneOfType([f().string,f().instanceOf(Date)]),recurring:f().bool})),className:f().string}},38930:(a,b,c)=>{c.d(b,{default:()=>g});var d=c(48249),e=c(91431),f=c(32971);function g({caps:a,className:b="",colorOverride:c,size:h=16}){if(!a)return null;let i=Object.keys(e.bs).filter(b=>a[b]);return 0===i.length?null:(0,d.jsx)("span",{className:`inline-flex items-center gap-0.5 ${b}`,children:i.map(a=>(0,d.jsx)(f.default,{text:`${e.bs[a].label} — ${e.bs[a].desc}`,children:(0,d.jsx)("span",{className:`material-symbols-outlined leading-none cursor-help ${c||e.bs[a].color}`,style:{fontSize:`${h}px`},children:e.bs[a].icon})},a))})}},39645:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(67484),f=c(95145),g=c(99070),h=c(50377);function i({isOpen:a,onClose:b,title:c="Manual Configuration",configs:j=[]}){let{copy:k}=(0,h.C)(),[l,m]=(0,e.useState)(null);return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:c,size:"xl",children:(0,d.jsx)("div",{className:"flex flex-col gap-4",children:j.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.filename}),(0,d.jsxs)(g.default,{variant:"ghost",size:"sm",onClick:()=>{var c;return c=a.content,void(k(c,`manualconfig-${b}`),m(b),setTimeout(()=>m(null),2e3))},children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:l===b?"check":"content_copy"}),l===b?"Copied!":"Copy"]})]}),(0,d.jsx)("pre",{className:"px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs overflow-x-auto whitespace-pre-wrap break-all max-h-60 overflow-y-auto border border-border",children:a.content})]},b))})})}},41371:(a,b,c)=>{c.d(b,{i:()=>f});var d=c(31417);let e=0,f=(0,d.v)((a,b)=>({notifications:[],addNotification:c=>{let d=++e,f={id:d,type:c.type||"info",message:c.message,title:c.title||null,duration:c.duration??5e3,dismissible:c.dismissible??!0,createdAt:Date.now()};return a(a=>({notifications:[...a.notifications,f]})),f.duration>0&&setTimeout(()=>b().removeNotification(d),f.duration),d},removeNotification:b=>{a(a=>({notifications:a.notifications.filter(a=>a.id!==b)}))},clearAll:()=>a({notifications:[]}),success:(a,c)=>b().addNotification({type:"success",message:a,title:c}),error:(a,c)=>b().addNotification({type:"error",message:a,title:c,duration:8e3}),warning:(a,c)=>b().addNotification({type:"warning",message:a,title:c}),info:(a,c)=>b().addNotification({type:"info",message:a,title:c})}))},42118:(a,b,c)=>{c.d(b,{D:()=>i});var d=c(67484),e=c(13033);function f(a){return()=>{}}function g(){return!1}function h(){return!1}function i(){let{theme:a,setTheme:b,toggleTheme:c,initTheme:i}=(0,e.A)(),j=(0,d.useSyncExternalStore)(f,g,h);return{theme:a,setTheme:b,toggleTheme:c,isDark:"dark"===a||"system"===a&&j}}},42196:(a,b,c)=>{c.d(b,{default:()=>y});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(2116),i=c.n(h),j=c(19099),k=c(71404),l=c(12020),m=c(92592),n=c(50377),o=c(90351),p=c(99258);c(91937);var q=c(99070),r=c(95145);let s=["embedding","image","video","tts","stt","systemone","rerank"],t="/dashboard/media-providers/web",u=[{href:"/dashboard/endpoint",label:"Endpoint & Key",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combo & Vision Adapter",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/token-saver",label:"Token Saver",icon:"savings"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"}],v=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"},{href:"/dashboard/translator",label:"Translator",icon:"translate"}],w=[{label:"Feishu Group",icon:"groups",href:"https://applink.feishu.cn/client/chat/chatter/add_by_link?link_token=629nc6fd-1ce9-4822-8242-239f87f471c3&qr_code=true"},{label:"Discord",icon:"forum",href:"https://discord.gg/zDWT6YKav"},{label:"Telegram",icon:"send",href:"https://t.me/techysy"},{label:"X",icon:"alternate_email",href:"https://x.com/techysy_ai"},{label:"GitHub",icon:"code",href:"https://github.com/techysy/10router"}],x=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/skills",label:"Skills",icon:"extension"}];function y({onClose:a}){let b=(0,j.usePathname)(),[c,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(0),[K,L]=(0,e.useState)(!1),{copied:M,copy:N}=(0,n.C)(2e3),O=l.h0.installCmdLatest,P=a=>"/dashboard/endpoint"===a?"/dashboard"===b||b.startsWith("/dashboard/endpoint"):b.startsWith(a),Q=async()=>{await (0,o.e)(O),N(O);let a=l.h0.shutdownCountdownSec;J(a);let b=setInterval(()=>{J(a-=1),a<=0&&(clearInterval(b),fetch("/api/version/shutdown",{method:"POST"}).catch(()=>{}),h(!0))},1e3)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("aside",{className:"flex w-72 flex-col border-r border-border-subtle bg-vibrancy backdrop-blur-xl transition-colors duration-300 min-h-full",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,d.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,d.jsxs)(i(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-9 rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 shadow-[var(--shadow-warm)]",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:"10Router Proxy"}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["v",l.vQ.version]})]})]}),C&&(0,d.jsxs)("div",{className:"flex flex-col gap-1 rounded p-1.5 -m-1 bg-amber-500/10 border border-amber-500/40",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-amber-700 dark:text-amber-500",children:(0,p.Tl)("Installed version ${disk} differs from the running build ${current}.").replace("${disk}",C.diskVersion).replace("${current}",C.currentVersion)}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted",children:(0,p.Tl)("Quit and reopen 10router, then refresh this page.")})]}),A&&(0,d.jsxs)("div",{className:"flex flex-col gap-1.5 rounded p-1 -m-1",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:[(0,p.Tl)("↑ New version available:")," v",A.latestVersion]}),"fpk"===A.installChannel||"desktop"===A.installChannel?(0,d.jsx)("a",{href:A.releaseUrl,target:"_blank",rel:"noreferrer",className:"px-2 py-1 rounded bg-green-600 hover:bg-green-700 dark:bg-amber-500 dark:hover:bg-amber-600 text-white text-[11px] font-semibold transition-colors text-center",children:"fpk"===A.installChannel?(0,p.Tl)("Get the fpk from Releases"):(0,p.Tl)("Get the installer from Releases")}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>F(!0),className:"px-2 py-1 rounded bg-green-600 hover:bg-green-700 dark:bg-amber-500 dark:hover:bg-amber-600 text-white text-[11px] font-semibold transition-colors cursor-pointer",children:(0,p.Tl)("Update now")}),(0,d.jsx)("button",{onClick:()=>N(O),title:(0,p.Tl)("Copy install command"),className:"flex-1 text-left hover:opacity-80 transition-opacity cursor-pointer min-w-0",children:(0,d.jsx)("code",{className:"block text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono truncate",children:M?"✓ "+(0,p.Tl)("copied!"):O})})]})]})]}),(0,d.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-0.5 overflow-y-auto custom-scrollbar",children:[u.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:b.label})]},b.href)),(0,d.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,d.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),(0,d.jsxs)("button",{onClick:()=>f(a=>!a),className:(0,k.cn)("w-full flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",b.startsWith("/dashboard/media-providers")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"perm_media"}),(0,d.jsx)("span",{className:"text-sm font-medium flex-1 text-left",children:"Media Providers"}),m.rj.some(a=>s.includes(a.id)&&a.isNew)&&(0,d.jsx)("span",{className:"text-[10px] font-semibold px-1.5 py-0.5 rounded-[3px] bg-green-500/15 text-green-400",children:"NEW"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] transition-transform",style:{transform:c?"rotate(180deg)":"rotate(0deg)"},children:"expand_more"})]}),c&&(0,d.jsxs)("div",{className:"pl-4",children:[m.rj.filter(a=>s.includes(a.id)).map(c=>(0,d.jsxs)(i(),{href:`/dashboard/media-providers/${c.id}`,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(`/dashboard/media-providers/${c.id}`)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:c.icon}),(0,d.jsx)("span",{className:"text-sm",children:c.label}),c.isNew&&(0,d.jsx)("span",{className:"ml-auto text-[10px] font-semibold px-1.5 py-0.5 rounded-[3px] bg-green-500/15 text-green-400",children:"NEW"})]},c.id)),(0,d.jsxs)(i(),{href:t,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",b.startsWith(t)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"travel_explore"}),(0,d.jsx)("span",{className:"text-sm",children:"Web Fetch & Search"})]},"web")]}),x.map(b=>(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:b.label})]},b.href)),v.map(b=>"/dashboard/translator"!==b.href||K?(0,d.jsxs)(i(),{href:b.href,onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P(b.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P(b.href)?"fill-1":"group-hover:text-primary transition-colors"),children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:b.label})]},b.href):null),(0,d.jsxs)(i(),{href:"/dashboard/experimental",onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P("/dashboard/experimental")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P("/dashboard/experimental")?"fill-1":"group-hover:text-primary transition-colors"),children:"science"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Experimental"})]}),(0,d.jsxs)(i(),{href:"/dashboard/profile",onClick:a,className:(0,k.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",P("/dashboard/profile")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,d.jsx)("span",{className:(0,k.cn)("material-symbols-outlined text-[18px]",P("/dashboard/profile")?"fill-1":"group-hover:text-primary transition-colors"),children:"settings"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Settings"})]}),(0,d.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,d.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:(0,p.Tl)("Community")}),w.map(b=>(0,d.jsxs)("a",{href:b.href,target:"_blank",rel:"noopener noreferrer",onClick:a,className:"flex items-center gap-3 px-3 py-1 rounded-lg transition-all group text-text-muted hover:bg-surface-2 hover:text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] group-hover:text-primary transition-colors",children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:(0,p.Tl)(b.label)})]},b.href))]})]})]})]}),(0,d.jsx)(r.ConfirmModal,{isOpen:E,onClose:()=>F(!1),onConfirm:()=>{F(!1),H(!0)},title:(0,p.Tl)("Update 10Router"),message:(0,p.Tl)("Show install command for v${version}? You can copy it and shutdown to install manually.").replace("${version}",A?.latestVersion||""),confirmText:(0,p.Tl)("Show Command"),cancelText:(0,p.Tl)("Cancel"),variant:"primary"}),(g||G)&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-6",children:G?(0,d.jsx)(z,{latestVersion:A?.latestVersion,installCmd:O,copied:M,onCopyAndShutdown:Q,onCancel:()=>{H(!1),J(0)},countdown:I,isDisconnected:g}):(0,d.jsxs)("div",{className:"text-center p-8",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-16 rounded-full bg-red-500/20 text-red-500 mx-auto mb-4",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"power_off"})}),(0,d.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:(0,p.Tl)("Server Disconnected")}),(0,d.jsx)("p",{className:"text-text-muted mb-6",children:(0,p.Tl)("The proxy server has been stopped.")}),(0,d.jsx)(q.default,{variant:"secondary",onClick:()=>globalThis.location.reload(),children:(0,p.Tl)("Reload Page")})]})})]})}function z({latestVersion:a,installCmd:b,copied:c,onCopyAndShutdown:e,onCancel:f,countdown:g,isDisconnected:h}){let i=g>0;return(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-center size-11 rounded-full bg-amber-500/20 text-amber-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"content_copy"})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("h2",{className:"text-lg font-semibold",children:[(0,p.Tl)("Update 10Router"),a?` v${a}`:""]}),(0,d.jsx)("p",{className:"text-xs text-white/60",children:h?(0,p.Tl)("Server stopped. Paste the command into a terminal to install."):i?(0,p.Tl)("Command copied. Server will stop in {s}s...").replace("{s}",String(g)):(0,p.Tl)("Click the button below to copy the install command and shutdown.")})]})]}),(0,d.jsx)("p",{className:"text-sm text-white/80 mb-2",children:(0,p.Tl)("Install command:")}),(0,d.jsx)("div",{className:"w-full px-3 py-2 rounded bg-white/5 mb-4",children:(0,d.jsx)("code",{className:"text-xs font-mono text-amber-400 break-all",children:b})}),(0,d.jsxs)("ol",{className:"text-xs text-white/70 space-y-1 list-decimal list-inside mb-4",children:[(0,d.jsx)("li",{children:(0,p.Tl)("Click Copy & Shutdown below.")}),(0,d.jsx)("li",{children:(0,p.Tl)("Paste the command into your terminal and press Enter.")}),(0,d.jsx)("li",{children:(0,p.Tl)("Run 10router again after install.")})]}),h?(0,d.jsx)(q.default,{variant:"secondary",fullWidth:!0,onClick:()=>globalThis.location.reload(),children:(0,p.Tl)("Reload Page")}):(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(q.default,{variant:"secondary",onClick:f,disabled:i,className:"whitespace-nowrap shrink-0",children:(0,p.Tl)("Cancel")}),(0,d.jsx)(q.default,{variant:"primary",fullWidth:!0,onClick:e,disabled:i,children:c?(0,p.Tl)("✓ Copied — shutting down..."):i?(0,p.Tl)("Shutting down in {s}s").replace("{s}",String(g)):(0,p.Tl)("Copy & Shutdown")})]})]})}y.propTypes={onClose:g().func},z.propTypes={latestVersion:g().string,installCmd:g().string.isRequired,copied:g().bool,onCopyAndShutdown:g().func.isRequired,onCancel:g().func.isRequired,countdown:g().number,isDisconnected:g().bool}},42372:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(85306);c(53838);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},43182:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);i=(j.then?(await j)():j)[0];let l="https://gitlab.com";function k({isOpen:a,providerInfo:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)(null),[j,m]=(0,f.useState)(l),[n,o]=(0,f.useState)(""),[p,q]=(0,f.useState)(""),[r,s]=(0,f.useState)(""),[t,u]=(0,f.useState)(!1),[v,w]=(0,f.useState)(null),[x,y]=(0,f.useState)(!1),[z,A]=(0,f.useState)(null),B=()=>{h(null),m(l),o(""),q(""),s(""),w(null),u(!1),y(!1),A(null),d()},C=async()=>{if(!r.trim())return void w("Personal Access Token is required");u(!0),w(null);try{let a=await fetch("/api/oauth/gitlab/pat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:r.trim(),baseUrl:j.trim()||l})}),b=await a.json();if(!a.ok)throw Error(b.error||"Authentication failed");c?.(),B()}catch(a){w(a.message)}finally{u(!1)}};return a?x&&z?(0,e.jsx)(i.LF,{isOpen:!0,provider:"gitlab",providerInfo:b,oauthMeta:z,onSuccess:()=>{c?.(),B()},onClose:()=>{y(!1),A(null)}}):(0,e.jsx)(i.aF,{isOpen:a,title:"Connect GitLab Duo",onClose:B,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[!g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"Choose how to authenticate with GitLab Duo:"}),(0,e.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,e.jsxs)("button",{onClick:()=>h("oauth"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"lock_open"}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium",children:"OAuth App"}),(0,e.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab OAuth application"})]})]}),(0,e.jsxs)("button",{onClick:()=>h("pat"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"key"}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium",children:"Personal Access Token"}),(0,e.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab PAT with api scope"})]})]})]})]}),"oauth"===g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("p",{className:"text-xs text-text-muted",children:["Create an OAuth app at"," ",(0,e.jsx)("a",{href:`${j.trim()||l}/-/profile/applications`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Applications"})," ","with redirect URI"," ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"http://localhost/callback"})]}),(0,e.jsx)(i.pd,{label:"GitLab Base URL",value:j,onChange:a=>m(a.target.value),placeholder:l}),(0,e.jsx)(i.pd,{label:"Client ID",value:n,onChange:a=>o(a.target.value),placeholder:"Your OAuth application client ID"}),(0,e.jsx)(i.pd,{label:"Client Secret (optional for PKCE)",value:p,onChange:a=>q(a.target.value),placeholder:"Leave empty for public PKCE app"}),v&&(0,e.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:()=>{n.trim()?(w(null),A({baseUrl:j.trim()||l,clientId:n.trim(),clientSecret:p.trim()}),y(!0)):w("Client ID is required")},fullWidth:!0,disabled:!n.trim(),children:"Authorize"}),(0,e.jsx)(i.$n,{onClick:()=>{h(null),w(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"pat"===g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("p",{className:"text-xs text-text-muted",children:["Create a PAT at"," ",(0,e.jsx)("a",{href:`${j.trim()||l}/-/user_settings/personal_access_tokens`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Access Tokens"})," ","with scopes: ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"api"}),","," ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"read_user"}),", and"," ",(0,e.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"ai_features"}),"."]}),(0,e.jsx)(i.pd,{label:"GitLab Base URL",value:j,onChange:a=>m(a.target.value),placeholder:l}),(0,e.jsx)(i.pd,{label:"Personal Access Token",value:r,onChange:a=>s(a.target.value),placeholder:"glpat-xxxxxxxxxxxxxxxxxxxx",type:"password"}),v&&(0,e.jsx)("p",{className:"text-sm text-red-500",children:v}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:C,fullWidth:!0,disabled:!r.trim()||t,loading:t,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:()=>{h(null),w(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})}):null}k.propTypes={isOpen:h().bool.isRequired,providerInfo:h().shape({name:h().string}),onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},45986:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A:()=>ak,e:()=>al});var e=c(48249),f=c(3390),g=c(48604),h=c(53930),i=c(68695),j=c(98046),k=c(93231),l=c(72525),m=c(55283),n=c(18254),o=c(46845),p=c(64368),q=c(31364),r=c(35142),s=c(45602),t=c(27390),u=c(38310),v=c(65649),w=c(18146),x=c(62733),y=c(11927),z=c(68979),A=c(80018),B=c(68926),C=c(65052),D=c(41741),E=c(28532),F=c(83304),G=c(40407),H=c(48338),I=c(26351),J=c(57697),K=c(18914),L=c(15375),M=c(19026),N=c(57307),O=c(17734),P=c(96563),Q=c(77940),R=c(78592),S=c(17636),T=c(86501),U=c(50170),V=c(36604),W=c(68058),X=c(78276),Y=c(40090),Z=c(37373),$=c(21141),_=c(28447),aa=c(55421),ab=c(93923),ac=c(48212),ad=c(13454),ae=c(69746),af=c(44920),ag=c(57218),ah=c(340),ai=c(88099),aj=a([f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad,ae,af,ag,ah,ai]);[f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ab,ac,ad,ae,af,ag,ah,ai]=aj.then?(await aj)():aj;let al={openai:f.A,anthropic:g.A,claude:h.A,gemini:i.A,deepseek:j.A,minimax:k.A,"minimax-cn":k.A,groq:l.A,nvidia:m.A,xai:n.A,openrouter:o.A,mistral:p.A,cohere:q.A,perplexity:r.A,together:s.A,fireworks:t.A,siliconflow:u.A,"siliconflow-cn":u.A,kimi:v.A,glm:w.A,"glm-cn":w.A,"aws-polly":x.A,azure:y.A,"cloudflare-ai":z.A,huggingface:A.A,ollama:B.A,sambanova:C.A,cerebras:D.A,venice:E.A,nebius:F.A,hyperbolic:G.A,featherless:H.A,baidu:I.A,tencent:J.A,"volcengine-ark":K.A,github:L.A,cursor:M.A,cline:N.A,windsurf:O.A,kiro:P.A,trae:Q.A,"jina-ai":R.A,exa:S.A,tavily:T.A,"brave-search":U.A,searchapi:V.A,searxng:W.A,"fish-audio":X.A,assemblyai:Y.A,elevenlabs:Z.A,"voyage-ai":$.A,"fal-ai":_.A,recraft:aa.A,"stability-ai":ab.A,runwayml:ac.A,morph:ad.A,comfyui:ae.A,sensenova:af.A,longcat:ag.A,vertex:ah.A,"vercel-ai-gateway":ai.A};function ak({providerId:a,size:b=32,className:c=""}){let d=al[a];if(!d)return null;let f=d.Color||d;return(0,e.jsx)(f,{size:b,className:c})}d()}catch(a){d(a)}})},48781:(a,b,c)=>{c.d(b,{default:()=>k});var d=c(48249),e=c(2116),f=c.n(e),g=c(12020);let h=[{label:"Features",href:"#features"},{label:"Pricing",href:"#pricing"},{label:"Changelog",href:"#"}],i=[{label:"Documentation",href:"#"},{label:"API Reference",href:"#"},{label:"Help Center",href:"#"}],j=[{label:"About",href:"#"},{label:"Blog",href:"#"},{label:"Contact",href:"#"}];function k(){return(0,d.jsx)("footer",{className:"bg-bg border-t border-border pt-16 pb-12",children:(0,d.jsxs)("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-10 mb-12",children:[(0,d.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,d.jsx)("div",{className:"size-6 text-primary",children:(0,d.jsx)("svg",{className:"w-full h-full",fill:"currentColor",viewBox:"0 0 48 48",children:(0,d.jsx)("path",{clipRule:"evenodd",d:"M12.0799 24L4 19.2479L9.95537 8.75216L18.04 13.4961L18.0446 4H29.9554L29.96 13.4961L38.0446 8.75216L44 19.2479L35.92 24L44 28.7521L38.0446 39.2479L29.96 34.5039L29.9554 44H18.0446L18.04 34.5039L9.95537 39.2479L4 28.7521L12.0799 24Z",fillRule:"evenodd"})})}),(0,d.jsx)("span",{className:"text-xl font-bold text-text-main",children:g.vQ.name})]}),(0,d.jsx)("p",{className:"text-text-muted mb-6 max-w-sm font-light",children:"The unified interface for modern AI infrastructure. Secure, observable, and scalable."}),(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"Twitter",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z"})})}),(0,d.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"GitHub",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 22 12.017C22 6.484 17.522 2 12 2z"})})})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Product"}),(0,d.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:h.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(f(),{href:a.href,className:"hover:text-primary transition-colors",children:a.label})},a.label))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Resources"}),(0,d.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:i.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(f(),{href:a.href,className:"hover:text-primary transition-colors",children:a.label})},a.label))})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Company"}),(0,d.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:j.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)(f(),{href:a.href,className:"hover:text-primary transition-colors",children:a.label})},a.label))})]})]}),(0,d.jsxs)("div",{className:"border-t border-border pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,d.jsxs)("p",{className:"text-sm text-text-muted",children:["\xa9 ",new Date().getFullYear()," ",g.vQ.name," Inc. All rights reserved."]}),(0,d.jsxs)("div",{className:"flex gap-6 text-sm text-text-muted",children:[(0,d.jsx)(f(),{href:"#",className:"hover:text-primary transition-colors",children:"Privacy Policy"}),(0,d.jsx)(f(),{href:"#",className:"hover:text-primary transition-colors",children:"Terms of Service"})]})]})]})})}},50377:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(67484),e=c(90351);function f(a=2e3){let[b,c]=(0,d.useState)(null),g=(0,d.useRef)(null);return{copied:b,copy:(0,d.useCallback)((b,d="default")=>{(0,e.e)(b),c(d),g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{c(null)},a)},[a])}}},50585:(a,b,c)=>{c.d(b,{default:()=>o});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(17660),i=c(4770),j=c(75171),k=c(99258);let l="__none__",m=[{value:"none",label:"None (single pool)"},{value:"round-robin",label:"Round-robin"},{value:"random",label:"Random"}],n={"zcode-free":{pathKey:"zcodeGatewayPath",defaultPath:"/gateway/zcode/v1/messages"},"minimax-free":{pathKey:"minimaxGatewayPath",defaultPath:"/gateway/minimax/v1/messages"},"trae-free":{pathKey:"traeGatewayPath",defaultPath:"/gateway/trae/v1/messages"}};function o({providerId:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(l),[p,q]=(0,e.useState)("none"),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)(""),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)({state:"idle"}),D=(0,e.useCallback)(async(b,c)=>{s(!0);try{let d=await fetch("/api/settings",{cache:"no-store"}),e=(d.ok?await d.json():{}).providerStrategies||{},f={...e[a]||{}};b===l?delete f.proxyPoolId:f.proxyPoolId=b,"none"===c?delete f.rotateStrategy:f.rotateStrategy=c;let g={...e};0===Object.keys(f).length?delete g[a]:g[a]=f,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:g})}),u(!0),setTimeout(()=>u(!1),1500)}catch(a){console.log("Save proxy config error:",a)}finally{s(!1)}},[a]),E=(0,e.useCallback)(async()=>{if(n[a]){C({state:"probing"});try{let a=encodeURIComponent(v.trim()||"127.0.0.1"),b=encodeURIComponent(x.trim()||"47860"),c=await fetch(`/api/gateway-probe?host=${a}&port=${b}`,{cache:"no-store"}),d=c.ok?await c.json():{reachable:!1};C({state:d.reachable?"online":"offline"})}catch{C({state:"offline"})}}},[a,v,x]),F=(0,e.useCallback)(async(b,c,d)=>{s(!0);try{let e=await fetch("/api/settings",{cache:"no-store"});e.ok&&await e.json();let f={zcodeGatewayHost:String(b||"").trim(),zcodeGatewayPort:String(c||"").trim(),[n[a]?.pathKey||"zcodeGatewayPath"]:String(d||"").trim()};await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)}),u(!0),setTimeout(()=>u(!1),1500),E()}catch(a){console.log("Save gateway host error:",a)}finally{s(!1)}},[a,E]),G=b.length>=2,H="none"!==p;return(0,d.jsxs)(h.default,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-full bg-green-500/10 text-green-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"lock_open"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"No authentication required"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"This provider is ready to use. Optionally route requests through a proxy pool to bypass IP-based limits."})]}),t&&(0,d.jsx)(j.default,{variant:"success",size:"sm",children:"Saved"})]}),(0,d.jsx)(i.default,{label:"Proxy Pool",value:f,onChange:a=>{var b;g(b=a.target.value),D(b,p)},disabled:r||H,options:[{value:l,label:"None (direct)"},...b.map(a=>({value:a.id,label:a.name}))],hint:H?"Pool selector is ignored when rotation is active — all active pools are used.":void 0}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 mt-4",children:[(0,d.jsx)("label",{className:"text-sm font-medium text-text-main",children:"Rotation Strategy"}),(0,d.jsx)("select",{value:p,onChange:a=>{var b;q(b=a.target.value),D(f,b)},disabled:r,className:"py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all disabled:opacity-50",children:m.map(a=>(0,d.jsx)("option",{value:a.value,disabled:"none"!==a.value&&!G,children:a.label},a.value))}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:G?H?"round-robin"===p?`Rotating through all ${b.length} active pools in order. State is in-memory (resets on restart).`:`Picking a random pool from ${b.length} active pools each request.`:"Uses the selected pool above. Set to Round-robin or Random to rotate across all active pools.":"Need at least 2 active proxy pools for rotation."})]}),n[a]&&(0,d.jsxs)("div",{className:"flex flex-col gap-2 mt-4 pt-4 border-t border-black/5 dark:border-white/5",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsx)("label",{className:"text-sm font-medium text-text-main",children:(0,k.Tl)("CreditDaddy gateway host")}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:["probing"===B.state&&(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:[(0,d.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-gray-400 animate-pulse"}),(0,k.Tl)("Probing gateway...")]}),"online"===B.state&&(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-green-600 dark:text-green-400",children:[(0,d.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-green-500"}),(0,k.Tl)("Gateway reachable")]}),"offline"===B.state&&(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-amber-600 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"inline-block w-1.5 h-1.5 rounded-full bg-amber-500"}),(0,k.Tl)("Gateway unreachable")]}),(0,d.jsx)("button",{type:"button",onClick:E,disabled:r,className:"text-[11px] text-text-muted hover:text-primary transition-colors",children:(0,k.Tl)("Re-probe")})]})]}),"offline"===B.state&&(0,d.jsxs)("div",{className:"rounded-md bg-amber-500/10 border border-amber-500/20 px-2.5 py-2 text-xs text-amber-700 dark:text-amber-300",children:[(0,k.Tl)("Gateway unreachable — install/launch CreditDaddy and enable the gateway, then re-probe here.")," ",(0,d.jsx)("a",{href:"https://github.com/techysy/CreditDaddy/releases/latest",target:"_blank",rel:"noreferrer",className:"underline font-medium",children:(0,k.Tl)("Download CreditDaddy")})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{value:v,onChange:a=>w(a.target.value),placeholder:(0,k.Tl)("Empty = this machine (127.0.0.1); LAN = CreditDaddy host IP"),className:"flex-1 py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,d.jsx)("input",{value:x,onChange:a=>y(a.target.value),placeholder:"47860",className:"w-24 py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,d.jsx)("input",{value:z,onChange:a=>A(a.target.value),placeholder:n[a].defaultPath,className:"w-56 py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,d.jsx)("button",{onClick:()=>F(v,x,z),disabled:r,className:"px-3 py-2 text-sm rounded-md bg-primary text-white disabled:opacity-50",children:(0,k.Tl)("Save")})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:["trae-free"===a?(0,k.Tl)('Local: enable the gateway switch under "Trae → Interface settings" in CreditDaddy desktop and add a Trae (SOLO) account (default 127.0.0.1:47860).'):"minimax-free"===a?(0,k.Tl)('Local: enable the gateway switch under "MiniMax → Interface settings" in CreditDaddy desktop and add a MiniMax account (default 127.0.0.1:47860).'):(0,k.Tl)('Local: enable the gateway switch under "ZCode → Interface settings" in CreditDaddy desktop (default 127.0.0.1:47860).')," ",(0,k.Tl)('LAN (NAS, etc.): put the CreditDaddy machine IP above, then in the same CreditDaddy panel turn on "Allow LAN access" and add this 10Router machine\'s IP to the allowlist, then restart CreditDaddy.')," ",(0,k.Tl)("The gateway is protected by an IP allowlist and checks no key, so there is nothing to enter here.")," ",(0,k.Tl)("Getting a 404? The path must keep its brand segment (e.g. /gateway/zcode/v1/messages) — CreditDaddy serves only the branded endpoints, and a build older than the rename still serves the old /gateway/v1/messages, so upgrade CreditDaddy rather than editing this field.")]})]})]})}o.propTypes={providerId:g().string.isRequired}},51109:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);function k({isOpen:a,onSuccess:b,onClose:c}){let[d,g]=(0,f.useState)(""),[h,j]=(0,f.useState)(""),[l,m]=(0,f.useState)(null),[n,o]=(0,f.useState)(!1),[p,q]=(0,f.useState)(!1),[r,s]=(0,f.useState)(!1),[t,u]=(0,f.useState)(!1),v=async()=>{q(!0),m(null),s(!1),u(!1);try{let a=await fetch("/api/oauth/cursor/auto-import"),b=await a.json();b.found?(g(b.accessToken),j(b.machineId),s(!0)):b.windowsManual?u(!0):m(b.error||"Could not auto-detect tokens")}catch(a){m("Failed to auto-detect tokens")}finally{q(!1)}},w=async()=>{if(!d.trim())return void m("Please enter an access token");if(!h.trim())return void m("Please enter a machine ID");o(!0),m(null);try{let a=await fetch("/api/oauth/cursor/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:d.trim(),machineId:h.trim()})}),e=await a.json();if(!a.ok)throw Error(e.error||"Import failed");b?.(),c()}catch(a){m(a.message)}finally{o(!1)}};return(0,e.jsx)(i.aF,{isOpen:a,title:"Connect Cursor IDE",onClose:c,children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[p&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Auto-detecting tokens..."}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"Reading from Cursor IDE database"})]}),!p&&(0,e.jsxs)(e.Fragment,{children:[r&&(0,e.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,e.jsx)("p",{className:"text-sm text-green-800 dark:text-green-200",children:"Tokens auto-detected from Cursor IDE successfully!"})]})}),t&&(0,e.jsxs)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-3 rounded-lg border border-amber-200 dark:border-amber-800 flex flex-col gap-2",children:[(0,e.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,e.jsx)("p",{className:"text-sm font-medium text-amber-800 dark:text-amber-200",children:"Could not read Cursor database automatically."})]}),(0,e.jsxs)("p",{className:"text-xs text-amber-700 dark:text-amber-300",children:["Make sure Cursor IDE has been opened at least once, then click ",(0,e.jsx)("strong",{children:"Retry"}),". If the problem persists, paste your tokens manually below."]}),(0,e.jsx)(i.$n,{onClick:v,variant:"outline",fullWidth:!0,children:"Retry"})]}),!r&&!t&&!l&&(0,e.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,e.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Cursor IDE not detected. Please paste your tokens manually."})]})}),(0,e.jsxs)("div",{children:[(0,e.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Access Token ",(0,e.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,e.jsx)("textarea",{value:d,onChange:a=>g(a.target.value),placeholder:"Access token will be auto-filled...",rows:3,className:"w-full px-3 py-2 text-sm font-mono border border-border rounded-lg bg-surface focus:outline-none focus:border-primary resize-none"})]}),(0,e.jsxs)("div",{children:[(0,e.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Machine ID ",(0,e.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,e.jsx)(i.pd,{value:h,onChange:a=>j(a.target.value),placeholder:"Machine ID will be auto-filled...",className:"font-mono text-sm"})]}),l&&(0,e.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,e.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:l})}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:w,fullWidth:!0,disabled:n||!d.trim()||!h.trim(),children:n?"Importing...":"Import Token"}),(0,e.jsx)(i.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}i=(j.then?(await j)():j)[0],k.propTypes={isOpen:h().bool.isRequired,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},51585:(a,b,c)=>{c.d(b,{default:()=>o});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(95145),i=c(83552),j=c(99070),k=c(75171),l=c(92592),m=c(4770),n=c(99258);function o({isOpen:a,connection:b,proxyPools:c,onSave:f,onClose:g}){let p,q,r,[s,t]=(0,e.useState)({name:"",priority:1,apiKey:""}),[u,v]=(0,e.useState)({azureEndpoint:"",apiVersion:"2024-10-01-preview",deployment:"",organization:""}),[w,x]=(0,e.useState)({accountId:""}),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),[K,L]=(0,e.useState)(!1),M=b?.providerSpecificData?.authMethod,N=b?.authType==="oauth"||"oauth"===M||"desktop-session"===M||"string"==typeof b?.accessToken&&b.accessToken.startsWith("mimo-desktop-session"),O=b?.provider==="azure",P=b?.provider==="cloudflare-ai",Q=!!b&&((0,l.mq)(b.provider)||(0,l.gb)(b.provider)),R=b&&l.Q2?.[b.provider]?.regions||null,S=()=>{if(R&&y)return{...b?.providerSpecificData||{},region:y}},T=async()=>{if(b?.provider){D(!0),F(null);try{let a=await fetch(`/api/providers/${b.id}/test`,{method:"POST"}),c=await a.json();F(c.valid?"success":"failed")}catch{F("failed")}finally{D(!1)}}},U=async()=>{if(b?.provider&&s.apiKey){H(!0),J(null);try{let a=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b.provider,apiKey:s.apiKey,...O?{providerSpecificData:u}:{},...P?{providerSpecificData:w}:{},...R?{providerSpecificData:S()}:{}})}),c=await a.json();J(c.valid?"success":"failed")}catch{J("failed")}finally{H(!1)}}},V=async()=>{if(b){L(!0);try{let a={name:s.name,priority:s.priority};if(!N&&s.apiKey){a.apiKey=s.apiKey;let c="success"===I;if(!c)try{H(!0),J(null);let a=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b.provider,apiKey:s.apiKey,...O?{providerSpecificData:u}:{},...P?{providerSpecificData:w}:{},...R?{providerSpecificData:S()}:{}})});c=!!(await a.json()).valid,J(c?"success":"failed")}catch{J("failed")}finally{H(!1)}c&&(a.testStatus="active",a.lastError=null,a.lastErrorAt=null)}O&&(a.providerSpecificData={azureEndpoint:u.azureEndpoint,apiVersion:u.apiVersion,deployment:u.deployment,organization:u.organization}),P&&(a.providerSpecificData={accountId:w.accountId}),R&&y&&(a.providerSpecificData=S()),await f(a)}finally{L(!1)}}};return b?(0,d.jsx)(h.default,{isOpen:a,title:"Edit Connection",onClose:g,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(i.default,{label:"Name",value:s.name,onChange:a=>t({...s,name:a.target.value}),placeholder:N?"Account name":"Production Key"}),N&&b.email&&(p=b.providerSpecificData?.mimoUserId||b.providerSpecificData?.uid||null,r=(q="xiaomi-mimo"===b.provider||"xiaomi-tokenplan"===b.provider||/^\d+@xiaomi$/.test(b.email))&&p?p:b.email,(0,d.jsxs)("div",{className:"bg-sidebar/50 p-3 rounded-lg",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted mb-1",children:q?"UID":"Email"}),(0,d.jsx)("p",{className:"font-medium",children:r})]})),(0,d.jsx)(i.default,{label:"Priority",type:"number",value:s.priority,onChange:a=>t({...s,priority:Number.parseInt(a.target.value,10)||1})}),!N&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(i.default,{label:"API Key",type:"password",value:s.apiKey,onChange:a=>t({...s,apiKey:a.target.value}),placeholder:"Enter new API key",hint:"Leave blank to keep the current API key.",className:"flex-1"}),(0,d.jsx)("div",{className:"pt-6",children:(0,d.jsx)(j.default,{onClick:U,disabled:!s.apiKey||G||K,variant:"secondary",children:G?"Checking...":"Check"})})]}),I&&(0,d.jsx)(k.default,{variant:"success"===I?"success":"error",children:"success"===I?"Valid":"Invalid"})]}),O&&(0,d.jsxs)("div",{className:"bg-sidebar/50 p-4 rounded-lg border border-accent/20",children:[(0,d.jsx)("h3",{className:"font-semibold mb-3 text-sm",children:"Azure OpenAI Configuration"}),(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(i.default,{label:"Azure Endpoint",value:u.azureEndpoint,onChange:a=>v({...u,azureEndpoint:a.target.value}),placeholder:"https://your-resource.openai.azure.com",hint:"Your Azure OpenAI resource endpoint URL"}),(0,d.jsx)(i.default,{label:"Deployment Name",value:u.deployment,onChange:a=>v({...u,deployment:a.target.value}),placeholder:"gpt-4",hint:"The deployment name in your Azure resource"}),(0,d.jsx)(i.default,{label:"API Version",value:u.apiVersion,onChange:a=>v({...u,apiVersion:a.target.value}),placeholder:"2024-10-01-preview",hint:"Azure OpenAI API version to use"}),(0,d.jsx)(i.default,{label:"Organization",value:u.organization,onChange:a=>v({...u,organization:a.target.value}),placeholder:"Organization ID",hint:"Required for billing"})]})]}),R&&(0,d.jsxs)("div",{children:[(0,d.jsx)(m.default,{label:"Region",value:y,onChange:a=>z(a.target.value),options:R.map(a=>({value:a.id,label:a.label}))}),A&&(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-1 flex items-center gap-1",children:[(0,d.jsx)("span",{children:"\uD83C\uDF10"}),(0,d.jsx)("span",{children:(0,n.Tl)("Current network location ({country}) recommended region: {region}").replace("{country}",A.country).replace("{region}",A.regionId)})]})]}),!Q&&!O&&!P&&(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(j.default,{onClick:T,variant:"secondary",disabled:C,children:C?"Testing...":"Test Connection"}),E&&(0,d.jsx)(k.default,{variant:"success"===E?"success":"error",children:"success"===E?"Valid":"Failed"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.default,{onClick:V,fullWidth:!0,disabled:K,children:K?"Saving...":"Save"}),(0,d.jsx)(j.default,{onClick:g,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}o.propTypes={isOpen:g().bool.isRequired,connection:g().shape({id:g().string,name:g().string,email:g().string,priority:g().number,authType:g().string,provider:g().string,providerSpecificData:g().object}),proxyPools:g().arrayOf(g().shape({id:g().string,name:g().string})),onSave:g().func.isRequired,onClose:g().func.isRequired}},51817:(a,b,c)=>{c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(74429),g=c(49885),h=c.n(g),i=c(99258),j=c(12020);let k=null;function l({isOpen:a,onClose:b}){let[g,h]=(0,e.useState)(""),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(""),w=(0,e.useRef)(null);if((0,i.kk)(),!a||"u"<typeof document)return null;let x=()=>{r(""),v(""),b()};return(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:x}),(0,d.jsxs)("div",{ref:w,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-3xl flex flex-col max-h-[85vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[q&&(0,d.jsx)("button",{onClick:()=>r(""),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":(0,i.Tl)("Back"),title:(0,i.Tl)("Back"),children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_back"})}),(0,d.jsx)("h2",{className:"truncate text-lg font-semibold text-text-main",children:q?"CHANGELOG.md":(0,i.Tl)("Change Log")})]}),(0,d.jsx)("button",{onClick:x,className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":(0,i.Tl)("Close"),children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsxs)("div",{className:"p-6 overflow-y-auto flex-1",children:[m&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),(0,i.Tl)("Loading...")]}),o&&(0,d.jsxs)("div",{className:"text-red-500 py-4",children:[(0,i.Tl)("Failed to load changelog: "),o]}),!m&&!o&&g&&!q&&(0,d.jsx)("div",{className:"changelog-body text-text-main",onClick:a=>{let b=a.target?.closest?.("a");b&&/CHANGELOG\.md(\?|#|$)/.test(b.getAttribute("href")||"")&&(a.preventDefault(),t(!0),v(""),(function a(b){let[c,...d]=b;return c?(function(a,b=1e4){let c=new AbortController,d=setTimeout(()=>c.abort(),b);return fetch(a,{signal:c.signal}).then(a=>{if(!a.ok)throw Error(`HTTP ${a.status}`);return a.text()}).finally(()=>clearTimeout(d))})(c).catch(()=>a(d)):Promise.reject(Error("Failed to load changelog"))})([`${j.Nu.changelogUrlBase.replace(/changelog\/$/,"")}CHANGELOG.md`,`${j.Nu.changelogUrlFallbackBase.replace(/changelog\/$/,"")}CHANGELOG.md`,"https://raw.githubusercontent.com/techysy/10router/refs/heads/main/CHANGELOG.md","https://gitee.com/techysy/10router/raw/main/CHANGELOG.md"]).then(a=>(!k&&(k=c.e(6921).then(c.bind(c,26921)).then(({marked:a})=>(a.setOptions({gfm:!0,breaks:!0}),a.use({link({href:a,title:b,tokens:c}){let d=c?this.parser.parseInline(c):b||a;return`<a href="${a}" target="_blank" rel="noopener noreferrer">${d}</a>`}}),a))),k).then(b=>r(b.parse(a)))).catch(a=>v(a?.message||"Failed to load")).finally(()=>t(!1)))},dangerouslySetInnerHTML:{__html:g}}),s&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-10 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"progress_activity"}),(0,i.Tl)("Loading...")]}),u&&(0,d.jsxs)("div",{className:"text-red-500 py-4",children:[(0,i.Tl)("Failed to load changelog: "),u]}),!s&&!u&&q&&(0,d.jsx)("div",{className:"changelog-body text-text-main",dangerouslySetInnerHTML:{__html:q}})]})]})]}),document.body)}l.propTypes={isOpen:h().bool.isRequired,onClose:h().func.isRequired}},53838:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(49885),f=c.n(e),g=c(53845);function h({children:a}){return(0,d.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,d.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,d.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,d.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,d.jsx)(g.default,{variant:"card"})}),(0,d.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:a})]})}h.propTypes={children:f().node.isRequired}},53845:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(42118),f=c(71404);let g={system:{icon:"routine",label:"Theme: system",next:"light"},light:{icon:"light_mode",label:"Theme: light",next:"dark"},dark:{icon:"dark_mode",label:"Theme: dark",next:"system"}};function h({className:a,variant:b="default"}){let{theme:c,toggleTheme:i}=(0,e.D)(),j=g[c]||g.system,k={default:(0,f.cn)("flex items-center justify-center size-10 rounded-full","text-text-muted hover:text-text-main","hover:bg-surface-2 transition-colors"),card:(0,f.cn)("flex items-center justify-center size-11 rounded-full","bg-surface/60 hover:bg-surface","border border-border","backdrop-blur-md shadow-sm hover:shadow-[var(--shadow-warm)]","text-text-muted hover:text-brand-500","transition-all group")};return(0,d.jsx)("button",{onClick:i,className:(0,f.cn)(k[b],a),"aria-label":j.label,title:j.label,"data-theme-mode":c,children:(0,d.jsx)("span",{className:(0,f.cn)("material-symbols-outlined text-[22px]","card"===b&&"transition-transform duration-300 group-hover:rotate-12"),children:j.icon})})}},56110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(50377),k=a([i]);function l({isOpen:a,provider:b,onSuccess:c,onClose:d}){let[g,h]=(0,f.useState)("loading"),[k,m]=(0,f.useState)(""),[n,o]=(0,f.useState)(null),[p,q]=(0,f.useState)(""),[r,s]=(0,f.useState)(null),{copied:t,copy:u}=(0,j.C)();(0,f.useRef)(!1);let v=async()=>{try{let a;s(null);try{a=new URL(p)}catch(a){throw Error("Invalid callback URL format")}let d=a.searchParams.get("code");a.searchParams.get("state");let e=a.searchParams.get("error");if(e)throw Error(a.searchParams.get("error_description")||e);if(!d)throw Error("No authorization code found in URL");let f=await fetch("/api/oauth/kiro/social-exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:d,codeVerifier:n.codeVerifier,provider:b})}),g=await f.json();if(!f.ok)throw Error(g.error);h("success"),c?.()}catch(a){s(a.message),h("error")}},w="google"===b?"Google":"GitHub";return(0,e.jsx)(i.aF,{isOpen:a,title:`Connect Kiro via ${w}`,onClose:d,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:["loading"===g&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Initializing..."}),(0,e.jsxs)("p",{className:"text-sm text-text-muted",children:["Setting up ",w," authentication"]})]}),"input"===g&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.pd,{value:k,readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,e.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===t?"check":"content_copy",onClick:()=>u(k,"auth_url"),children:"Copy"})]})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,e.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser address bar."}),(0,e.jsx)(i.pd,{value:p,onChange:a=>q(a.target.value),placeholder:"kiro://kiro.kiroAgent/authenticate-success?code=...",className:"font-mono text-xs"})]})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:v,fullWidth:!0,disabled:!p,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===g&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,e.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your Kiro account via ",w," has been connected."]}),(0,e.jsx)(i.$n,{onClick:d,fullWidth:!0,children:"Done"})]}),"error"===g&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,e.jsx)("p",{className:"text-sm text-red-600 mb-4",children:r}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:()=>h("input"),variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,e.jsx)(i.$n,{onClick:d,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}i=(k.then?(await k)():k)[0],l.propTypes={isOpen:h().bool.isRequired,provider:h().oneOf(["google","github"]).isRequired,onSuccess:h().func,onClose:h().func.isRequired},d()}catch(a){d(a)}})},59160:(a,b,c)=>{c.d(b,{Q5:()=>function a(b,c=null,d=null,e=0){if(!b?.length||e>6)return null;let f=b.map(b=>{if(!b.includes("/")&&c?.[b])return a(c[b],c,d,e+1)??d?.(b)??r(null,b);let f=b.indexOf("/"),g=r(-1===f?null:b.slice(0,f),-1===f?b:b.slice(f+1)),h=d?.(b);return h?{...g,...h}:g}),g=f[0];return{vision:f.some(a=>a.vision),pdf:f.some(a=>a.pdf),audioInput:f.some(a=>a.audioInput),videoInput:f.some(a=>a.videoInput),imageOutput:f.some(a=>a.imageOutput),audioOutput:f.some(a=>a.audioOutput),search:f.some(a=>a.search),tools:f.every(a=>a.tools),reasoning:g.reasoning,thinkingFormat:g.thinkingFormat,thinkingCanDisable:g.thinkingCanDisable,thinkingRange:g.thinkingRange,contextWindow:Math.min(...f.map(a=>a.contextWindow)),maxOutput:Math.max(...f.map(a=>a.maxOutput))}},nl:()=>r});var d=c(18982);let e={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},f={"claude-fable-5-1":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-opus-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-high":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-medium":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-low":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-thinking-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-sonnet-5.5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"muse-spark-1.2-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"big-pickle":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"mimo-v2.5-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536},"ling-3.0-flash-fin-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:131072,maxOutput:32768},"ling-3.1-flash-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:32768},"nemotron-3-ultra-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"nemotron-3.5-lightning-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"claude-opus-5-thinking-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6-thinking":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4-6":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-high":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-medium":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-low":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-thinking":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking-agentic":{pdf:!0,vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-haiku-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"GLM-4.6V-Flash":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:2e5},"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"glm-5.3-flashx":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"glm-5.3":{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"glm-5.2":{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072},"glm-5.1":{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:131072},"glm-5":{reasoning:!0,thinkingFormat:"zai",contextWindow:204800,maxOutput:131072},"qwen3.8-max":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"qwen3.8-flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"mimo-v2-pro":{contextWindow:1048576,maxOutput:131072},"mimo-v2.5-pro":{contextWindow:1048576,maxOutput:131072},"mimo-v2.6-pro":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-flash":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-flash-free":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-pro-ultraspeed":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2.6-pro-claude":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"mimo-v2-omni":{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,contextWindow:262144,maxOutput:131072},hy3:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:256e3,maxOutput:128e3},"hy3-preview":{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:256e3,maxOutput:64e3},"step-5-preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"step",contextWindow:1e6},"step-3.7-flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"step-3.5-flash":{reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"step-3.5-flash-2603":{reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"step-1o-turbo-vision":{vision:!0,contextWindow:32e3},"step-router-v1":{reasoning:!0,thinkingFormat:"step",contextWindow:256e3},"grok-4.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5},"grok-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5},"grok-4.7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5},"gpt-5.6-luna":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"gpt-6-luna":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"kimi-k2.6":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144},"kimi-k3":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},k3:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"kimi-k3.1-pro":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072},"kimi-for-coding":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-for-coding-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"kimi-k2.7-code-highspeed":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536},"agnes-2.5-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:65536},"agnes-2.5-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},"deepseek-v4-flash-vision-exp":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-1-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"muse-spark-1.1":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.2":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.2-contributor":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"muse-spark-1.3-contributor":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"fugu-ultra":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"hy4-preview":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:64e3},"gpt-audio":{audioInput:!0,audioOutput:!0,contextWindow:128e3,maxOutput:16384},"gpt-audio-mini":{audioInput:!0,audioOutput:!0,contextWindow:128e3,maxOutput:16384},"LongCat-2.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"LongCat-2.5-Preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.5-preview-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"space-bunny-free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:524288},"space-bunny":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:524288},"MiniMax-M3.1-Flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"MiniMax-M3.1-Flash-Preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"minimax-m3.1-flash":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"minimax-m3.1-flash-preview":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"minimax-m3.1-flash:free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},"MiniMax-M3":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"fledge-alpha-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"exo-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"sensenova-6.8-flash-lite":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:65536},"venice-uncensored-1-2":{vision:!0,contextWindow:128e3,maxOutput:8192},"morph-v3-large":{tools:!1,contextWindow:32e3,maxOutput:32e3},"morph-v3-fast":{tools:!1,contextWindow:16e3,maxOutput:16e3}},g=(()=>{let a={};for(let[b,c]of Object.entries(f)){let d=b.toLowerCase();d in a||(a[d]=c)}return a})(),h={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},i={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:372e3,maxOutput:128e3},j={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},k={...j,contextWindow:872e3},l={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3};function m(a,b){let c={...a};for(let[d,e]of Object.entries(b))c[d]=a[e];return c}let n={"Qwen3.8-Max":"qmodel_38max","Qwen3.7-Max":"qmodel_latest","Qwen3.7-Plus":"qmodel","Qwen3.8-Flash":"qfmodel","Kimi-K3":"kmodel_latest","Kimi-K2.7-Code":"kmodel","GLM-5.3":"gmodel","GLM-5.3-Flash":"gfmodel","DeepSeek-V4-Pro":"dmodel","DeepSeek-V4.1-Flash 1017":"dfmodel","MiniMax-M3":"mmodel"},o={...n,"Qwen3.7-Flash":"q37fmodel","GLM-5.2":"gm51model"},p={"kilo-gateway":{"kilo-auto/free":{vision:!1,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:32768},"kilo-auto/frontier":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"kilo-auto/balanced":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},antigravity:{"claude-opus-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-sonnet-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"gemini-4-argon-high":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576},"gemini-4-argon-medium":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576},"gemini-4-argon-low":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576},"gemini-pro-agent":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},nvidia:{"minimaxai/minimax-m2.7":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072},"minimaxai/minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:131072},"z-ai/glm-5.2":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},"deepseek-ai/deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-ai/deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},amd:{"DeepSeek-V4-Flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536},"DeepSeek-V4-Flash-Vision-Exp":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:65536},"Qwen3.8-Flash-Next":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:262144,maxOutput:32768},"MiniCPM5-2B":{reasoning:!1,contextWindow:131072,maxOutput:32768}},atria:{"Atria-Dawn-Preview":{vision:!1,reasoning:!1}},github:{"claude-haiku-5.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},tokenharbor:{"deepseek-v4.1-flash:free":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"qwen3.8-flash:free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"mimo-v2.6-flash:free":{vision:!0,audioInput:!0,videoInput:!0,contextWindow:1048576,maxOutput:131072},"claude-haiku-5.5:free":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},loomy:{"qwen3.8-flash":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"qwen-3.8-max":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:131072},"DeepSeek-V4.1-Flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"deepseek-v4-flash-0731":{vision:!1,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3},"MiniMax-M3":{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1e6,maxOutput:131072},"Kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144},"GLM-5.3-Flash":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:131072}},codex:{"gpt-6-astra":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6.1-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6.1-terra":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:128e3},"gpt-6-sol":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-luna":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-astra[1m]":k,"gpt-6-sol[1m]":k,"gpt-6-luna[1m]":k,"gpt-5.6-sol[1m]":k,"gpt-5.6-terra[1m]":k,"gpt-5.6-luna[1m]":k,"gpt-5.6-sol":i,"gpt-5.6-sol-review":i,"gpt-5.6-terra":j,"gpt-5.6-terra-review":j,"gpt-5.6-luna":j,"gpt-5.6-luna-review":j,"gpt-daybreak-blue-latest":j,"gpt-reserve":j},kiro:{"gpt-5.6-sol":h,"gpt-5.6-terra":h,"gpt-5.6-luna":h,"gpt-5.6-sol-thinking":h,"gpt-5.6-terra-thinking":h,"gpt-5.6-luna-thinking":h,"gpt-5.6-sol-agentic":h,"gpt-5.6-terra-agentic":h,"gpt-5.6-luna-agentic":h,"gpt-5.6-sol-thinking-agentic":h,"gpt-5.6-terra-thinking-agentic":h,"gpt-5.6-luna-thinking-agentic":h},"devin-cli":{"gpt-5.4-high":l,"gpt-5.4-medium":l,"gpt-5.4-low":l,"gpt-5.5-xhigh":l,"gpt-5.5-high":l,"gpt-5.5-medium":l,"gpt-5.5-low":l},apinex:{"claude-fable-5.1":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-opus-5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gemini-3.1-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gemini-3.8-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"glm-5.3":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gpt-5.6-terra":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gpt-6-astra":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"gpt-6-luna":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"gpt-6.1-sol":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"grok-4.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:128e3},"kimi-k3":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/claude-opus-4.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/claude-sonnet-4.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/deepseek-v4-flash-0731":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/deepseek-v4-pro-0813":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/gemini-3.1-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/gemini-3.8-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:128e3},"free/gpt-6-luna":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3},"free/hy4":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:65536},"free/kimi-k2.8":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:65536},"free/kimi-k3":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/mimo-v2.6-flash":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/mimo-v2.6-pro":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536},"free/minimax-m3":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:512e3},"free/minimax-m3.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:512e3},"free/muse-spark-1.3":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:65536},"free/qwen-3.8-max":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:65536}},"codebuddy-cn":{"glm-5.2":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:64e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:128e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"space-bunny":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"glm-5.3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:48e3},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:32e3},"glm-5.3-flashx":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:32e3},"kimi-k3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:32e3},"deepseek-v4-pro":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:384e3},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:128e3}},"codebuddy-intl":{"space-bunny":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:64e3},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3}},qoder:m({auto:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},ultimate:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},performance:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},efficient:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},dmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dfmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},gmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gfmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},kmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},kmodel:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:65536},mmodel:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},qmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536}},{...n,Auto:"auto",Ultimate:"ultimate",Performance:"performance",Efficient:"efficient"}),"qoder-cn":m({auto:{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},dmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},dfmodel:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},gmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gfmodel:{vision:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},gm51model:{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},kmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},kmodel:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:65536},mmodel:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:512e3},qmodel_latest:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},q37fmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:65536}},{...o,Auto:"auto"}),poolside:{"laguna-s-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3},"laguna-xs-2.1":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},opencode:{"deepseek-v4.1-flash-free":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:33e4,maxOutput:128e3}}};p.cx=p.codex,p.dv=p["devin-cli"],p.devin=p["devin-cli"],p.kr=p.kiro,p.gh=p.github,p.ag=p.antigravity,p.cbcn=p["codebuddy-cn"],p.cbai=p["codebuddy-intl"],p.th=p.tokenharbor,p.thh=p.tokenharbor,p.ps=p.poolside,p["atria-asi"]=p.atria,p.qd=p.qoder,p.qdc=p["qoder-cn"],p.kgw=p["kilo-gateway"],p.kilogateway=p["kilo-gateway"],p.oc=p.opencode;let q=[{pattern:"*rerank*",caps:{tools:!1,vision:!1,reasoning:!1,search:!1,contextWindow:8192,maxOutput:0}},{pattern:"*claude*opus-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:1048576}},{pattern:"*gemini-3.8*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.7*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-6*image*",caps:{imageOutput:!0}},{pattern:"*gpt-6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-mini*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4-nano*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5.4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:105e4,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{pattern:"*grok-4.5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:64e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*omni*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144,maxOutput:65536}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.5*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.6*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen3.7*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k3*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*kimi*for-coding*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:65536}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5.3*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1e6,maxOutput:131072}},{pattern:"*minimax-m2.7*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax-m2.5*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*preview*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*laguna-s-2.1*free*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*laguna-s-2.1*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:32e3}},{pattern:"*laguna*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3}},{pattern:"*seed-2-0-pro*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:128e3}},{pattern:"*seed-2.0-pro*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:128e3}},{pattern:"*seed-2-0-code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:131072}},{pattern:"*seed-2.0-code*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:262144,maxOutput:131072}},{pattern:"*seed-2-0-mini*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-2.0-mini*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-2-0-lite*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-2.0-lite*",caps:{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:131072}},{pattern:"*seed-code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:32768}},{pattern:"*seed-2.1-pro*",caps:{reasoning:!0,contextWindow:936e3,maxOutput:64e3}},{pattern:"*seed-2.1-turbo*",caps:{reasoning:!0,contextWindow:224e3,maxOutput:32e3}},{pattern:"*seed-evolving*",caps:{reasoning:!0,contextWindow:936e3,maxOutput:64e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*ernie*",caps:{contextWindow:2e5,maxOutput:64e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function r(a,b){if(!b)return{...e};let c=b.includes("/")?b.split("/").pop():b;if(a){let d=p[a];if(d?.[b])return{...e,...d[b]};if(d?.[c])return{...e,...d[c]}}if(f[c])return{...e,...f[c]};if(f[b])return{...e,...f[b]};if(b.includes("/")){let a=g[c.toLowerCase()];if(a)return{...e,...a}}for(let{pattern:a,caps:f}of q)if((0,d.gH)(a,c)||(0,d.gH)(a,b))return{...e,...f};return{...e}}},62727:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>m});var e=c(48249),f=c(67484),g=c(95145),h=c(83552),i=c(99070),j=c(83352),k=a([j]);j=(k.then?(await k)():k)[0];let n=/^[a-zA-Z0-9_.\-]+$/;function l({index:a,model:b,isFirst:c,isLast:d,onEdit:g,onMoveUp:h,onMoveDown:i,onRemove:j}){let[k,m]=(0,f.useState)(!1),[n,o]=(0,f.useState)(b),p=()=>{let a=n.trim();a&&a!==b?g(a):o(b),m(!1)};return(0,e.jsxs)("div",{className:"group flex min-w-0 items-center gap-1.5 rounded-md bg-black/[0.02] px-2 py-1 transition-colors hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04]",children:[(0,e.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:a+1}),k?(0,e.jsx)("input",{autoFocus:!0,value:n,onChange:a=>o(a.target.value),onBlur:p,onKeyDown:a=>{"Enter"===a.key&&p(),"Escape"===a.key&&(o(b),m(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,e.jsx)("div",{className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-black/5 dark:hover:bg-white/5",onClick:()=>m(!0),title:"Click to edit",children:b}),(0,e.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,e.jsx)("button",{onClick:h,disabled:c,className:`p-0.5 rounded ${c?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,e.jsx)("button",{onClick:i,disabled:d,className:`p-0.5 rounded ${d?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,e.jsx)("button",{onClick:j,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function m({isOpen:a,combo:b,onClose:c,onSave:d,activeProviders:k,kindFilter:o=null,forcePrefix:p="",title:q}){let r=b?.name?p&&b.name.startsWith(p)?b.name.slice(p.length):b.name:"",[s,t]=(0,f.useState)(r),[u,v]=(0,f.useState)(b?.models||[]),[w,x]=(0,f.useState)(!1),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(""),[C,D]=(0,f.useState)({}),E=a=>{if(!a.trim())return B("Name is required"),!1;let b=p+a;return n.test(b)?(B(""),!0):(B("Only letters, numbers, -, _ and . allowed"),!1)},F=a=>{let b=a.target.value;p&&b.startsWith(p)&&(b=b.slice(p.length)),t(b),b?E(b):B("")},G=async()=>{E(s)&&(z(!0),await d({name:p+s.trim(),models:u}),z(!1))},H=!!b;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.default,{isOpen:a,onClose:c,title:q||(H?"Edit Combo":"Create Combo"),children:(0,e.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,e.jsxs)("div",{children:[p?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("label",{className:"text-sm font-medium mb-1 block",children:"Combo Name"}),(0,e.jsxs)("div",{className:"flex items-stretch",children:[(0,e.jsx)("span",{className:"inline-flex items-center px-2 rounded-l border border-r-0 border-black/10 dark:border-white/10 bg-black/[0.04] dark:bg-white/[0.04] text-text-muted font-mono text-sm",children:p}),(0,e.jsx)("input",{value:s,onChange:F,placeholder:"my-combo",className:"flex-1 min-w-0 rounded-r border border-black/10 dark:border-white/10 bg-white dark:bg-black/20 px-2 py-1.5 font-mono text-sm outline-none focus:border-primary"})]}),A&&(0,e.jsx)("p",{className:"text-[11px] text-red-500 mt-0.5",children:A})]}):(0,e.jsx)(h.default,{label:"Combo Name",value:s,onChange:F,placeholder:"my-combo",error:A}),(0,e.jsxs)("p",{className:"text-[10px] text-text-muted mt-0.5",children:[p?`Auto-prefixed with "${p}". `:"","Only letters, numbers, -, _ and . allowed"]})]}),(0,e.jsxs)("div",{children:[(0,e.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===u.length?(0,e.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,e.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,e.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:u.map((a,b)=>(0,e.jsx)(l,{index:b,model:a,isFirst:0===b,isLast:b===u.length-1,onEdit:a=>{let c=[...u];c[b]=a,v(c)},onMoveUp:()=>(a=>{if(0===a)return;let b=[...u];[b[a-1],b[a]]=[b[a],b[a-1]],v(b)})(b),onMoveDown:()=>(a=>{if(a===u.length-1)return;let b=[...u];[b[a],b[a+1]]=[b[a+1],b[a]],v(b)})(b),onRemove:()=>v(u.filter((a,c)=>c!==b))},b))}),(0,e.jsxs)("button",{onClick:()=>x(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,e.jsx)(i.default,{onClick:c,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,e.jsx)(i.default,{onClick:G,fullWidth:!0,size:"sm",disabled:!s.trim()||!!A||y,children:y?"Saving...":H?"Save":"Create"})]})]})}),w&&(0,e.jsx)(j.default,{isOpen:w,onClose:()=>x(!1),onSelect:a=>{u.includes(a.value)||v([...u,a.value])},onDeselect:a=>{v(u.filter(b=>b!==a.value))},activeProviders:k,modelAliases:C,title:"Add Model to Combo",kindFilter:o,addedModelValues:u,closeOnSelect:!1})]})}d()}catch(a){d(a)}})},67738:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);function k({isOpen:a,onClose:b,onCreated:c,onSaved:d,node:g}){let h=!!g,[j,l]=(0,f.useState)({name:"",prefix:"",baseUrl:"https://api.openai.com/v1"}),[m,n]=(0,f.useState)(!1),[o,p]=(0,f.useState)(""),[q,r]=(0,f.useState)(""),[s,t]=(0,f.useState)(!1),[u,v]=(0,f.useState)(null),w=async()=>{if(j.name.trim()&&j.prefix.trim()&&j.baseUrl.trim()){n(!0);try{let a=h?`/api/provider-nodes/${g.id}`:"/api/provider-nodes",b={name:j.name,prefix:j.prefix,baseUrl:j.baseUrl};h||(b.type="custom-embedding");let e=await fetch(a,{method:h?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),f=await e.json();e.ok&&(h?d?.(f.node):c?.(f.node))}catch(a){console.log("Error saving custom embedding node:",a)}finally{n(!1)}}},x=async()=>{t(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:j.baseUrl,apiKey:o,type:"custom-embedding",modelId:q.trim()||void 0})}),b=await a.json();v(b)}catch{v({valid:!1,error:"Network error"})}finally{t(!1)}};return(0,e.jsx)(i.aF,{isOpen:a,title:h?"Edit Custom Embedding":"Add Custom Embedding",onClose:b,children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,e.jsx)(i.pd,{label:"Name",value:j.name,onChange:a=>l({...j,name:a.target.value}),placeholder:"Voyage AI",hint:"Required. A friendly label for this embedding provider."}),(0,e.jsx)(i.pd,{label:"Prefix",value:j.prefix,onChange:a=>l({...j,prefix:a.target.value}),placeholder:"voyage",hint:"Required. Used as the provider prefix for model IDs (e.g. voyage/voyage-3)."}),(0,e.jsx)(i.pd,{label:"Base URL",value:j.baseUrl,onChange:a=>l({...j,baseUrl:a.target.value}),placeholder:"https://api.voyageai.com/v1",hint:"Most embedding APIs are OpenAI-compatible: Voyage, Cohere, Jina, Mistral, Together..."}),(0,e.jsx)(i.pd,{label:"API Key (for Check)",type:"password",value:o,onChange:a=>p(a.target.value)}),(0,e.jsx)(i.pd,{label:"Model ID (for Check)",value:q,onChange:a=>r(a.target.value),placeholder:"e.g. voyage-3, embed-english-v3.0, text-embedding-3-small",hint:"Required for validation. Will send a test embeddings request."}),(0,e.jsxs)("div",{className:"flex items-center gap-3",children:[(0,e.jsx)(i.$n,{onClick:x,disabled:!o||!q.trim()||s||!j.baseUrl.trim(),variant:"secondary",children:s?"Checking...":"Check"}),(()=>{if(!u)return null;let{valid:a,error:b,dimensions:c}=u;return a?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.Ex,{variant:"success",children:"Valid"}),c&&(0,e.jsxs)("span",{className:"text-sm text-text-muted",children:[c," dims"]})]}):(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)(i.Ex,{variant:"error",children:"Invalid"}),b&&(0,e.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:w,fullWidth:!0,disabled:!j.name.trim()||!j.prefix.trim()||!j.baseUrl.trim()||m,children:m?h?"Saving...":"Creating...":h?"Save":"Create"}),(0,e.jsx)(i.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}i=(j.then?(await j)():j)[0],k.propTypes={isOpen:h().bool.isRequired,onClose:h().func.isRequired,onCreated:h().func,onSaved:h().func,node:h().shape({id:h().string,name:h().string,prefix:h().string,baseUrl:h().string})},d()}catch(a){d(a)}})},71404:(a,b,c)=>{c.d(b,{cn:()=>d});function d(...a){return a.filter(Boolean).join(" ").replace(/\s+/g," ").trim()}},71452:(a,b,c)=>{c.d(b,{Cd:()=>w,D2:()=>z,EJ:()=>F,GT:()=>r,MF:()=>v,MK:()=>s,OG:()=>u,PZ:()=>B,Rs:()=>j,Rt:()=>t,TM:()=>E,TV:()=>y,UL:()=>l,UY:()=>A,Ug:()=>q,XV:()=>x,Z_:()=>k,_6:()=>m,d$:()=>H,eK:()=>h,pR:()=>n,qz:()=>C});let d=/total|aggregate|summary|^总/i,e=/month|月/i,f=/month|月|week|周|滚动|rolling|5h|hourly|window/i,g=/balance|voucher|cash|余额|代金券|现金/i;function h(a){return d.test(String(a?.name||""))}function i(a){return a?.recurring===!0||f.test(String(a?.name||""))}function j(a){return a?.isCreditBalance===!0||g.test(String(a?.name||""))}function k(a){return!i(a)||j(a)}function l(a){let b=/\(([^)]+)\)\s*$/.exec(String(a||""));return b?b[1].trim():""}function m(a){return String(a||"").replace(/\s*\([^)]*\)\s*$/,"").trim()}function n(a){let b=Number((a?.totalNum??a?.total)||0),c=Number.isFinite(a?.remainingNum)?Number(a.remainingNum):Math.max(0,b-Number(a?.used||0));return b<=0?0:Math.min(100,Math.max(0,c/b*100))}let o={monthly:/month|月/i,weekly:/week|周/i,rolling:/rolling|滚动|session|5h/i};function p(a){return Number((a?.totalNum??a?.total)||0)}function q(a=[],{force:b=!1}={}){let c={monthly:null,weekly:null,rolling:null};for(let b of a){if(b?.giftPack===!0||b?.detailOnly===!0||!i(b)||j(b))continue;let a=String(b?.name||"");for(let[d,e]of Object.entries(o))if(!c[d]&&e.test(a)){c[d]=b;break}}if(!c.monthly)return[];let d=[c.monthly,c.weekly,c.rolling].filter(Boolean);if(d.length<2)return[];if(!b)for(let a=1;a<d.length;a+=1){let b=p(d[a]);if(!(b>0&&b<p(d[a-1])))return[]}let e=p(d[0]);if(!(e>0))return[];let f=e;return d.map((a,b)=>{let c,d=p(a),g=(c=p(a),Number.isFinite(a?.remainingNum)?Number(a.remainingNum):Math.max(0,c-Number(a?.used||0))),h=Math.max(0,Math.min(g,f));return f=h,{row:a,depth:b,widthPct:Math.min(100,h/e*100),ownRemaining:g,ownTotal:d,ownPct:n(a)}})}function r(a=[]){let b=a.filter(a=>i(a)&&!j(a)),c=b.filter(a=>e.test(String(a.name||""))),d=b.filter(a=>!c.includes(a));return{hasAnyCycle:b.length>0,windows:[...d,...c],monthly:c}}function s(a=[]){let{monthly:b,windows:c}=r(a),d=b.filter(a=>a?.giftPack!==!0);return[...c.filter(a=>!b.includes(a)),...d]}function t(a){return a?.giftPack===!0&&0>=n(a)}function u(a){return a?.recurring!==!1&&i(a)}let v=10;function w(a,b=n(a)){return b>0&&b<v?"critical":u(a)?"reset":"expire"}function x(a){if(!a)return"";let b=new Date(a);return Number.isNaN(b.getTime())?"":`${String(b.getMonth()+1).padStart(2,"0")}-${String(b.getDate()).padStart(2,"0")}`}function y(a,b=Date.now()){if(!a)return"";let c=new Date(a).getTime();if(Number.isNaN(c))return"";let d=Math.max(0,Math.round((c-b)/1e3));return d>=86400?`${Math.floor(d/86400)}d ${Math.floor(d%86400/3600)}h`:d>=3600?`${Math.floor(d/3600)}h ${Math.floor(d%3600/60)}m`:`${Math.floor(d/60)}m ${d%60}s`}function z(a,b=Date.now()){if(u(a)||!a?.resetAt)return!1;let c=new Date(a.resetAt).getTime();return Number.isFinite(c)&&c<=b}function A(a,b=Date.now()){return!(a?.unlimited===!0||u(a))&&(!!z(a,b)||Number(a?.total||0)>0&&0>=(Number.isFinite(a?.remainingNum)?Number(a.remainingNum):Math.max(0,Number(a?.total||0)-Number(a?.used||0))))}function B(a=[]){return(a||[]).filter(a=>a&&"object"==typeof a&&!(h(a)||a?.summarizesDetail===!0))}function C(a=[]){let b=B(a);return!!b.some(a=>!0===a.detailOnly||!0===a.giftPack)||b.filter(a=>!u(a)).length>=2}let D=/^(.+?)\s+·\s+(.+)$/;function E(a){let b=D.exec(String(a||"").trim());return b?{family:b[1],window:b[2]}:null}function F(a=[]){let b=[];for(let c of a){let a=E(c?.name),d=a?.family||null,e=b[b.length-1];d&&e&&e.family===d?e.rows.push(c):b.push({family:d,rows:[c]})}return b}let G=[[0,4],[15,22],[35,40],[65,130],[100,158]];function H(a){let b=Math.min(100,Math.max(0,Number(a)||0));for(let a=1;a<G.length;a+=1){let[c,d]=G[a];if(b<=c){let[e,f]=G[a-1];return Math.round(f+(d-f)*(b-e)/(c-e))}}return G[G.length-1][1]}},72738:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(29225),j=c(45986),k=a([j]);function l({src:a,providerId:b,alt:c,size:d=32,className:g="",fallbackText:h="?",fallbackColor:k}){let m=function(a,b){if(b)return(0,i.HY)(b);if(!a)return null;let c=String(a).match(/^\/providers\/([^/]+)\.png$/i);return c?(0,i.HY)(c[1]):a}(a,b),[n,o]=(0,f.useState)(!1);return b&&j.e[b]?(0,e.jsx)(j.A,{providerId:b,size:d,className:g}):!m||n?(0,e.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${g}`.trim(),style:{width:d,height:d,color:k,fontSize:Math.max(10,Math.floor(.38*d))},children:h}):(0,e.jsx)("img",{src:m,alt:c,width:d,height:d,className:g,loading:"lazy",decoding:"async",onError:()=>{let a=m.match(/^\/providers\/([^/]+)\.png$/i);a&&(0,i.Kw)(a[1]),b&&(0,i.Kw)(b),o(!0)}})}j=(k.then?(await k)():k)[0],l.propTypes={src:h().string,providerId:h().string,alt:h().string,size:h().number,className:h().string,fallbackText:h().string,fallbackColor:h().string},d()}catch(a){d(a)}})},74380:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(50377);function f({code:a,label:b="Invite code"}){let{copied:c,copy:g}=(0,e.C)();return a?(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-border bg-bg-alt px-1.5 py-0.5 text-xs text-text-muted whitespace-nowrap",children:[(0,d.jsx)("span",{children:b}),(0,d.jsx)("code",{className:"font-mono text-text-main",children:a}),(0,d.jsx)("button",{type:"button",onClick:()=>g(a,"invite-code"),title:"Copy invite code",className:"inline-flex items-center text-text-muted hover:text-text transition-colors cursor-pointer",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"invite-code"===c?"check":"content_copy"})})]}):null}},74812:(a,b,c)=>{c.d(b,{CardSkeleton:()=>i,PageLoading:()=>g,Skeleton:()=>h,Spinner:()=>f,default:()=>j});var d=c(48249),e=c(71404);function f({size:a="md",className:b}){return(0,d.jsx)("span",{className:(0,e.cn)("material-symbols-outlined animate-spin text-brand-500",{sm:"size-4",md:"size-6",lg:"size-8",xl:"size-12"}[a],b),children:"progress_activity"})}function g({message:a="Loading..."}){return(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col items-center justify-center bg-bg",children:[(0,d.jsx)(f,{size:"xl"}),(0,d.jsx)("p",{className:"mt-4 text-text-muted",children:a})]})}function h({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-[10px] bg-surface-2",a),...b})}function i(){return(0,d.jsxs)("div",{className:"p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)(h,{className:"h-4 w-24"}),(0,d.jsx)(h,{className:"size-10 rounded-[10px]"})]}),(0,d.jsx)(h,{className:"h-8 w-16 mb-2"}),(0,d.jsx)(h,{className:"h-3 w-20"})]})}function j({type:a="spinner",...b}){switch(a){case"page":return(0,d.jsx)(g,{...b});case"skeleton":return(0,d.jsx)(h,{...b});case"card":return(0,d.jsx)(i,{...b});default:return(0,d.jsx)(f,{...b})}}},75171:(a,b,c)=>{c.d(b,{default:()=>i});var d=c(48249),e=c(71404);let f={default:"bg-surface-2 text-text-muted",primary:"bg-brand-500/10 text-brand-600 dark:text-brand-300",success:"bg-green-500/10 text-green-600 dark:text-green-400",warning:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",error:"bg-red-500/10 text-red-600 dark:text-red-400",info:"bg-blue-500/10 text-blue-600 dark:text-blue-400"},g={xs:"px-1.5 py-0.5 text-[9px] gap-1",sm:"px-2 py-0.5 text-[10px]",md:"px-2.5 py-1 text-xs",lg:"px-3 py-1.5 text-sm"},h={xs:"10px",sm:"12px",md:"14px",lg:"16px"};function i({children:a,variant:b="default",size:c="md",dot:j=!1,icon:k,className:l}){return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1 rounded-full font-medium leading-none",f[b],g[c],l),children:[j&&(0,d.jsx)("span",{className:(0,e.cn)("size-1.5 rounded-full","success"===b&&"bg-green-500","warning"===b&&"bg-yellow-500","error"===b&&"bg-red-500","info"===b&&"bg-blue-500","primary"===b&&"bg-brand-500","default"===b&&"bg-gray-500")}),k&&(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 leading-none",style:{fontSize:h[c]||"12px",width:h[c]||"12px",height:h[c]||"12px"},children:k}),a]})}},79346:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>l});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=c(50377),k=a([i]);i=(k.then?(await k)():k)[0];let m=new Set(["trae","windsurf","zed"]),n={trae:{param:"region",default:"intl",options:[{value:"intl",label:"国际站",hint:"www.trae.ai \xb7 海外账号"},{value:"cn",label:"国内站",hint:"www.trae.cn \xb7 国内手机号 / 抖音账号"}]}},o={trae:{label:"Cloud-IDE-JWT",instructions:"Sign in at trae.ai / solo.trae.ai (国际站) or trae.cn (国内站), open DevTools → Network, copy the Cloud-IDE-JWT token from any request's Authorization header (~14-day lifetime). CN and intl accounts are not interchangeable.",placeholder:"Paste Cloud-IDE-JWT here...",ideName:"Trae",ideOptional:!0},windsurf:{label:"Windsurf API key",instructions:'In the Windsurf/VS Code IDE, run the "Windsurf: Provide Auth Token" command, then copy the displayed sk-ws-... key.',placeholder:"Paste sk-ws-... key here...",ideName:"Windsurf",ideOptional:!1}};function l({isOpen:a,provider:b,providerInfo:c,onSuccess:d,onClose:g,oauthMeta:h,idcConfig:k}){let[p,q]=(0,f.useState)("waiting"),[r,s]=(0,f.useState)(null),[t,u]=(0,f.useState)(""),[v,w]=(0,f.useState)(null),[x,y]=(0,f.useState)(!1),[z,A]=(0,f.useState)(null),[B,C]=(0,f.useState)(!1),[D,E]=(0,f.useState)("browser"),[F,G]=(0,f.useState)("intl"),[H,I]=(0,f.useState)(""),[J,K]=(0,f.useState)(null),L=(0,f.useRef)(null),M=(0,f.useRef)(!1);(0,f.useRef)(!1);let{copied:N,copy:O}=(0,j.C)(),[P,Q]=(0,f.useState)(!1),[R,S]=(0,f.useState)("/callback?code=...");(0,f.useRef)(!1);let T=(0,f.useCallback)(async(a,c)=>{if(r)try{let e=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,redirectUri:r.redirectUri,codeVerifier:r.codeVerifier,state:c,...h?{meta:h}:{}})}),f=await e.json();if(!e.ok)throw Error(f.error);q("success"),d?.()}catch(a){w(a.message),q("error")}},[r,b,d,h]),U=(0,f.useCallback)(async a=>{if(r?.state)try{let b=await fetch("/api/oauth/xai/manual-code",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:r.state})}),c=await b.json();if(!b.ok)throw Error(c.error);q("success"),d?.()}catch(a){w(a.message),q("error")}},[r,d]),V=(0,f.useCallback)(async(a,c,e,f,g)=>{M.current=!1,C(!0);let h=Date.now()+(Number.isFinite(g)&&g>0?g:12e4);for(;Date.now()<h;){if(M.current){console.log("[OAuthModal] Polling aborted"),C(!1);return}if(await new Promise(a=>setTimeout(a,1e3*e)),M.current){console.log("[OAuthModal] Polling aborted after sleep"),C(!1);return}try{let g=await fetch(`/api/oauth/${b}/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:a,codeVerifier:c,extraData:f})}),h=await g.json();if(h.success){M.current=!0,q("success"),C(!1),d?.();return}if("expired_token"===h.error||"access_denied"===h.error||h.fatal)throw Error(h.errorDescription||h.error);"slow_down"===h.error&&(e=Math.min(e+5,30))}catch(a){w(a.message),q("error"),C(!1);return}}w("Authorization timeout"),q("error"),C(!1)},[b,d]),W=(0,f.useCallback)(async a=>{let b=await fetch(`/api/oauth/${a}/start-proxy`),c=await b.json();if(!b.ok||!c.success||!c.callbackUrl)throw Error(c.reason||c.error||`Failed to start ${a} callback server`);let d=new URL(`/api/oauth/${a}/authorize`,window.location.origin);d.searchParams.set("redirect_uri",c.callbackUrl);let e=n[a];e&&d.searchParams.set(e.param,F);let f=await fetch(d),g=await f.json();if(!f.ok)throw Error(g.error);let h={state:g.state};g.codeVerifier&&(h.codeVerifier=g.codeVerifier),await fetch(`/api/oauth/${a}/register-session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(h)}),s({...g,proxyProvider:a}),q("waiting"),L.current=window.open(g.authUrl,"oauth_popup","width=600,height=700"),L.current||q("input")},[F]),X=(0,f.useCallback)(async()=>{if(b)try{let a;if(w(null),m.has(b)&&"browser"===D)return void await W(b);if(["github","kiro","kimi","kimi-coding","kilocode","codebuddy-cn","codebuddy-intl","qoder","qoder-cn","grok-cli","glm","muse","minimax-code","minimax-code-global"].includes(b)){y(!0),q("waiting");let a=new URL(`/api/oauth/${b}/device-code`,window.location.origin);"kiro"===b&&k?.startUrl&&(a.searchParams.set("start_url",k.startUrl),k.region&&a.searchParams.set("region",k.region),a.searchParams.set("auth_method","idc"));let c=await fetch(a.toString()),d=await c.json();if(!c.ok)throw Error(d.error);A(d);let e=d.verification_uri_complete||d.verification_uri;e&&window.open(e,"_blank","noopener,noreferrer");let f="kiro"===b?{_clientId:d._clientId,_clientSecret:d._clientSecret,_region:d._region,_authMethod:d._authMethod,_startUrl:d._startUrl}:"qoder"===b?{_qoderNonce:d._qoderNonce,_qoderMachineId:d._qoderMachineId,_qoderVerifier:d.codeVerifier}:"kimi"===b||"kimi-coding"===b?{_kimiDeviceId:d._kimiDeviceId}:"glm"===b?{_zcodePollToken:d._zcodePollToken}:null;V(d.device_code,d.codeVerifier,d.interval||5,f,Number.isFinite(d.expires_in)&&d.expires_in>0?1e3*d.expires_in:void 0);return}let c=window.location.port||("https:"===window.location.protocol?"443":"80");a="codex"===b?"http://localhost:1455/auth/callback":"xai"===b?"http://127.0.0.1:56121/callback":`http://localhost:${c}/callback`;let d=new URL(`/api/oauth/${b}/authorize`,window.location.origin);d.searchParams.set("redirect_uri",a),h&&Object.entries(h).forEach(([a,b])=>{b&&d.searchParams.set(a,b)});let e=await fetch(d.toString()),f=await e.json();if(!e.ok)throw Error(f.error);let g=!1,i=!1;if("codex"===b)try{let b=new URL("/api/oauth/codex/start-proxy",window.location.origin);b.searchParams.set("app_port",c),b.searchParams.set("state",f.state),b.searchParams.set("code_verifier",f.codeVerifier),b.searchParams.set("redirect_uri",a);let d=await fetch(b.toString()),e=await d.json();g=e.success,i=!!e.serverSide}catch{g=!1}let j=!1,l=!1;if("xai"===b)try{let b=new URL("/api/oauth/xai/start-proxy",window.location.origin);b.searchParams.set("app_port",c),b.searchParams.set("state",f.state),b.searchParams.set("code_verifier",f.codeVerifier),b.searchParams.set("redirect_uri",a);let d=await fetch(b.toString()),e=await d.json();if(j=e.success,l=!!e.serverSide,!j&&"port_busy"===e.reason)throw Error("Port 56121 in use; close the conflicting process and retry")}catch(a){if(a?.message)throw a;j=!1}if(s({...f,redirectUri:a,codexServerSide:i,xaiServerSide:l}),!f.authUrl){if("device_code"===f.flowType)throw Error(`Provider ${b} uses device-code login but is not wired in the OAuth modal device-code list`);throw Error("No authorization URL returned from OAuth provider")}"codex"===b&&g||"xai"===b&&j||P&&"codex"!==b&&"xai"!==b?(q("waiting"),L.current=window.open(f.authUrl,"oauth_popup","width=600,height=700"),L.current||q("input")):(q("input"),window.open(f.authUrl,"_blank"))}catch(a){w(a.message),q("error")}},[b,P,V,h,k,D,W]),Y=async()=>{try{if(w(null),"paste-token"===D&&o[b]){let a=H.trim();if(!a)throw Error("Missing token");let c=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a})}),e=await c.json();if(!c.ok)throw Error(e.error);q("success"),d?.();return}let a=t.trim();if(m.has(b)&&a){let c=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,state:r?.state})}),e=await c.json();if(!c.ok)throw Error(e.error);q("success"),d?.();return}if(a.startsWith("eyJ")&&a.includes("."))return void await T(a,null);if("xai"===b&&a&&!a.includes("://")&&!a.includes("?")&&!a.includes("code="))return void await U(a);if("kimchi"===b&&a&&!a.includes("://")&&!a.includes("?"))return void await T(a,null);let c=new URL(a),e=c.searchParams.get("code"),f=c.searchParams.get("token"),g=c.searchParams.get("state"),h=c.searchParams.get("error");if(h)throw Error(c.searchParams.get("error_description")||h);if(!e&&!f)throw Error("xai"===b?"Paste the callback URL or copied xAI code":"kimchi"===b?"No Kimchi token found in URL":"No authorization code found in URL");await T(f||e,g)}catch(a){w(a.message),q("error")}},Z=(0,f.useCallback)(()=>{"codex"===b?fetch("/api/oauth/codex/stop-proxy").catch(()=>{}):"xai"===b?fetch("/api/oauth/xai/stop-proxy").catch(()=>{}):"trae"===b?fetch("/api/oauth/trae/stop-proxy").catch(()=>{}):"windsurf"===b?fetch("/api/oauth/windsurf/stop-proxy").catch(()=>{}):"zed"===b&&fetch("/api/oauth/zed/stop-proxy").catch(()=>{}),g()},[g,b]);if(!b||!c)return null;let $="xai"===b,_="kimchi"===b,aa=z?.verification_uri_complete||z?.verification_uri||"",ab=$?"Connect Grok Build OAuth":`Connect ${c.name}`,ac=$?"http://127.0.0.1:56121/callback?code=... or copied code":_?`${R.replace("code=...","token=...")} or copied token`:R;return(0,e.jsx)(i.aF,{isOpen:a,title:ab,onClose:Z,size:"lg",children:(0,e.jsxs)("div",{className:"flex flex-col gap-4",children:[m.has(b)&&("waiting"===p||"input"===p||"error"===p)&&(0,e.jsxs)(e.Fragment,{children:["browser"===D&&n[b]&&(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)("span",{className:"text-xs text-text-muted",children:"登录站点"}),(0,e.jsx)("div",{className:"flex gap-2",children:n[b].options.map(a=>(0,e.jsxs)("button",{type:"button",onClick:()=>{a.value!==F&&(G(a.value),fetch(`/api/oauth/${b}/stop-proxy`).catch(()=>{}),s(null),w(null),q("waiting"),X())},className:`flex-1 rounded-lg border px-3 py-2 text-left text-sm transition-colors ${F===a.value?"border-primary bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,e.jsx)("div",{className:"font-medium",children:a.label}),(0,e.jsx)("div",{className:"text-xs opacity-70",children:a.hint})]},a.value))})]}),o[b]&&(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)("button",{type:"button",onClick:()=>{E("browser"),w(null),q("waiting"),X()},className:`flex-1 rounded-lg border px-3 py-2 text-sm transition-colors ${"browser"===D?"border-primary bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:"\uD83C\uDF10 Sign in with browser"}),(0,e.jsx)("button",{type:"button",onClick:()=>{E("paste-token"),w(null),q("input")},className:`flex-1 rounded-lg border px-3 py-2 text-sm transition-colors ${"paste-token"===D?"border-primary bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:"\uD83D\uDD11 Paste token"})]}),"browser"===D&&(0,e.jsxs)(e.Fragment,{children:["waiting"===p&&(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:"Waiting for browser authorization…"})]}),"input"===p&&(0,e.jsxs)("div",{className:"space-y-3",children:[(0,e.jsx)("p",{className:"text-sm text-text-muted",children:"Popup was blocked. After authorizing in the browser, paste the full callback URL here:"}),(0,e.jsx)(i.pd,{value:t,onChange:a=>u(a.target.value),placeholder:"http://127.0.0.1:.../callback?...",className:"font-mono text-xs"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:Y,fullWidth:!0,disabled:!t,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]}),"paste-token"===D&&o[b]&&(0,e.jsxs)("div",{className:"space-y-3",children:[J&&!J.installed&&(0,e.jsxs)("div",{className:`px-3 py-2 rounded-lg text-sm ${o[b].ideOptional?"bg-blue-500/10 text-blue-700 dark:text-blue-300":"bg-yellow-500/10 text-yellow-700 dark:text-yellow-300"}`,children:[o[b].ideName," IDE not detected.",o[b].ideOptional?" You can still grab the token from DevTools.":` Install ${o[b].ideName} IDE to get the token, or use "Sign in with browser".`]}),(0,e.jsx)("p",{className:"text-sm text-text-muted",children:o[b].instructions}),(0,e.jsx)(i.pd,{value:H,onChange:a=>I(a.target.value),placeholder:o[b].placeholder,className:"font-mono text-xs"}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:Y,fullWidth:!0,disabled:!H,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]}),("waiting"===p||"input"===p)&&!x&&!m.has(b)&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,e.jsx)("span",{className:"text-sm",children:$?"Waiting for Grok Build OAuth…":"Waiting for popup authorization…"})]}),(0,e.jsxs)("div",{className:"flex items-center gap-3 my-1",children:[(0,e.jsx)("div",{className:"flex-1 h-px bg-border"}),(0,e.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wider",children:"Or paste callback URL manually"}),(0,e.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,e.jsxs)("div",{className:"space-y-4",children:[(0,e.jsxs)("div",{children:[(0,e.jsxs)("p",{className:"text-sm font-medium mb-2",children:["Step 1: Open this ",$?"Grok Build OAuth URL":"URL"," in your browser"]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.pd,{value:r?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,e.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===N?"check":"content_copy",onClick:()=>O(r?.authUrl,"auth_url"),disabled:!r?.authUrl,children:"Copy"})]})]}),(0,e.jsxs)("div",{children:[(0,e.jsxs)("p",{className:"text-sm font-medium mb-2",children:["Step 2: Paste the ","xai"===b?"callback URL or copied code":_?"callback URL or copied token":"callback URL"," here"]}),(0,e.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"xai"===b?"If xAI shows a code instead of redirecting, paste that code here.":_?"After authorization, copy the full callback URL or token from your browser.":"After authorization, copy the full URL from your browser."}),(0,e.jsx)(i.pd,{value:t,onChange:a=>u(a.target.value),placeholder:ac,className:"font-mono text-xs"})]})]}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:Y,fullWidth:!0,disabled:!t,children:"Connect"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"waiting"===p&&x&&z&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"text-center py-4",children:[(0,e.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Visit the login URL below and authorize:"}),(0,e.jsxs)("div",{className:"bg-sidebar p-4 rounded-lg mb-4",children:[(0,e.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Login URL"}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("code",{className:"flex-1 text-sm break-all",children:aa}),(0,e.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"login_url"===N?"check":"content_copy",onClick:()=>O(aa,"login_url"),disabled:!aa}),(0,e.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"open_in_new",onClick:()=>window.open(aa,"_blank","noopener,noreferrer"),disabled:!aa,children:"Open"})]})]}),z.user_code&&(0,e.jsxs)("div",{className:"bg-primary/10 p-4 rounded-lg",children:[(0,e.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Your Code"}),(0,e.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,e.jsx)("p",{className:"text-2xl font-mono font-bold text-primary",children:z.user_code}),(0,e.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"user_code"===N?"check":"content_copy",onClick:()=>O(z.user_code,"user_code")})]})]})]}),B&&(0,e.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-text-muted",children:[(0,e.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),"Waiting for authorization..."]})]}),"success"===p&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,e.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your ",c.name," account has been connected."]}),(0,e.jsx)(i.$n,{onClick:Z,fullWidth:!0,children:"Done"})]}),"error"===p&&(0,e.jsxs)("div",{className:"text-center py-6",children:[(0,e.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,e.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,e.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,e.jsx)("p",{className:"text-sm text-red-600 mb-4",children:v}),(0,e.jsxs)("div",{className:"flex gap-2",children:[(0,e.jsx)(i.$n,{onClick:X,variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,e.jsx)(i.$n,{onClick:Z,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}l.propTypes={isOpen:h().bool.isRequired,provider:h().string,providerInfo:h().shape({name:h().string}),onSuccess:h().func,onClose:h().func.isRequired,oauthMeta:h().object,idcConfig:h().shape({startUrl:h().string,region:h().string})},d()}catch(a){d(a)}})},79488:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>k});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(94579),j=a([i]);function k({isOpen:a,onSuccess:b,onClose:c}){let[d,g]=(0,f.useState)(""),[h,j]=(0,f.useState)(!1),[l,m]=(0,f.useState)(null),[n,o]=(0,f.useState)(!1),p=async()=>{if(!d.trim())return void m("Please paste your cookie");j(!0),m(null);try{let a=await fetch("/api/oauth/iflow/cookie",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cookie:d.trim()})}),c=await a.json();if(!a.ok)throw Error(c.error||"Authentication failed");o(!0),setTimeout(()=>{b?.(),q()},1500)}catch(a){m(a.message)}finally{j(!1)}},q=()=>{g(""),m(null),o(!1),c?.()};return(0,e.jsx)(i.aF,{isOpen:a,onClose:q,title:"iFlow Cookie Authentication",children:(0,e.jsx)("div",{className:"space-y-4",children:n?(0,e.jsxs)("div",{className:"text-center py-8",children:[(0,e.jsx)("div",{className:"text-6xl mb-4",children:"✅"}),(0,e.jsx)("p",{className:"text-lg font-medium text-text",children:"Authentication Successful!"}),(0,e.jsx)("p",{className:"text-sm text-text-muted mt-2",children:"Fresh API key obtained"})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsxs)("p",{className:"text-sm text-text-muted",children:["To get a fresh API key, paste your browser cookie from"," ",(0,e.jsx)("a",{href:"https://platform.iflow.cn",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"platform.iflow.cn"})]}),(0,e.jsxs)("div",{className:"bg-surface-2 p-3 rounded-lg text-xs space-y-2",children:[(0,e.jsx)("p",{className:"font-medium text-text",children:"How to get cookie:"}),(0,e.jsxs)("ol",{className:"list-decimal list-inside space-y-1 text-text-muted",children:[(0,e.jsx)("li",{children:"Open platform.iflow.cn in your browser"}),(0,e.jsx)("li",{children:"Login to your account"}),(0,e.jsx)("li",{children:"Open DevTools (F12) → Application/Storage → Cookies"}),(0,e.jsx)("li",{children:"Copy the entire cookie string (must include BXAuth)"}),(0,e.jsx)("li",{children:"Paste it below"})]})]})]}),(0,e.jsxs)("div",{className:"space-y-2",children:[(0,e.jsx)("label",{className:"block text-sm font-medium text-text",children:"Cookie String"}),(0,e.jsx)("textarea",{value:d,onChange:a=>g(a.target.value),placeholder:"BXAuth=xxx; ...",className:"w-full px-3 py-2 bg-surface-2 border border-border rounded-lg text-sm text-text placeholder-text-muted focus:outline-none focus:ring-2 focus:ring-primary resize-none",rows:4,disabled:h})]}),l&&(0,e.jsx)("div",{className:"p-3 bg-danger/10 border border-danger/20 rounded-lg",children:(0,e.jsx)("p",{className:"text-sm text-danger",children:l})}),(0,e.jsxs)("div",{className:"flex gap-3 pt-2",children:[(0,e.jsx)(i.$n,{variant:"secondary",onClick:q,disabled:h,fullWidth:!0,children:"Cancel"}),(0,e.jsx)(i.$n,{onClick:p,loading:h,fullWidth:!0,children:"Authenticate"})]})]})})})}i=(j.then?(await j)():j)[0],k.propTypes={isOpen:h().bool.isRequired,onSuccess:h().func,onClose:h().func},d()}catch(a){d(a)}})},79750:(a,b,c)=>{c.d(b,{F:()=>g,i:()=>f});var d=c(51126);let e={en:{sym:"$",rate:1},"zh-CN":{sym:"¥",rate:7.2},"zh-TW":{sym:"NT$",rate:31.5},ja:{sym:"\xa5",rate:155},ko:{sym:"₩",rate:1350},vi:{sym:"₫",rate:25e3},"pt-BR":{sym:"R$",rate:5.5},"pt-PT":{sym:"€",rate:.92},es:{sym:"€",rate:.92},de:{sym:"€",rate:.92}};function f(){if("u"<typeof localStorage)return!0;let a=localStorage.getItem("useRegionalCurrency");return null===a||"0"!==a}function g(a,b=2){let c=a||0;if(!f())return`$${c.toFixed(b)}`;let h=e[(0,d.QC)(function(){if("u"<typeof document)return"en";let a=document.cookie.split(";").find(a=>a.trim().startsWith(`${d.CL}=`));return a?decodeURIComponent(a.split("=")[1]):"en"}())];return h?`${h.sym}${(c*h.rate).toFixed(b)}`:`$${c.toFixed(b)}`}},82563:(a,b,c)=>{c.d(b,{$n:()=>o,Ay:()=>p,dI:()=>k,h7:()=>n,jE:()=>l,jH:()=>j,pM:()=>m});var d=c(48249),e=c(49885),f=c.n(e),g=c(71404),h=c(99258),i=c(71452);let j="rounded-[3px]";function k(a){return`hsl(${(0,i.d$)(a)} 68% 46%)`}function l(a){let b=(0,i.d$)(a);return{backgroundImage:`linear-gradient(90deg, hsl(${b} 72% 58%), hsl(${b} 70% 44%))`}}let m={reset:"text-text-muted",expire:"text-text-muted",critical:"text-red-600 dark:text-red-400"};function n(a,b,{expired:c=!1}={}){if(c)return(0,h.Tl)("expired {date}").replace("{date}",(0,i.XV)(b));let d=(0,i.TV)(b);return d?(0,h.Tl)(a?"resets in {duration}":"expires in {duration}").replace("{duration}",d):(0,h.Tl)(a?"resets {date}":"expires {date}").replace("{date}",(0,i.XV)(b))}function o({height:a=5,className:b,children:c,...e}){return(0,d.jsx)("div",{className:(0,g.cn)("relative w-full overflow-hidden",j,"bg-black/10 dark:bg-white/10",b),style:{height:`${a}px`},...e,children:c})}function p({pct:a=0,colorPct:b=null,title:c,...e}){let f=Math.min(100,Math.max(0,Number(a)||0));return(0,d.jsx)(o,{title:c,...e,children:(0,d.jsx)("div",{className:(0,g.cn)("h-full transition-[width] duration-300",j),style:{width:`${f}%`,...l(b??f)}})})}o.propTypes={height:f().number,className:f().string,children:f().node},p.propTypes={pct:f().number,colorPct:f().number,title:f().string}},83352:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{default:()=>q});var e=c(48249),f=c(67484),g=c(49885),h=c.n(g),i=c(95145),j=c(72738),k=c(38930),l=c(29476),m=c(91431),n=c(92592),o=c(99258),p=a([j]);j=(p.then?(await p)():p)[0];let r=[...Object.keys(n.zN),...Object.keys(n.IS),...Object.keys(n.nJ),...Object.keys(n.fg)],s=Object.keys(n.IS).filter(a=>n.IS[a].noAuth),t=["cursor","zed"];function q({isOpen:a,onClose:b,onSelect:c,onDeselect:d,selectedModel:g,activeProviders:h=[],title:p,modelAliases:u={},kindFilter:v=null,capFilter:w=null,addedModelValues:x=[],closeOnSelect:y=!0}){let z=(0,f.useMemo)(()=>v?h.filter(a=>{let b=n.Q2[a.provider];return(b?.serviceKinds||["llm"]).includes(v)}):h,[h,v]),{getCaps:A}=(0,l.yU)(),[B,C]=(0,f.useState)(""),[D,E]=(0,f.useState)(()=>!0),[F,G]=(0,f.useState)([]),[H,I]=(0,f.useState)([]),[J,K]=(0,f.useState)([]),[L,M]=(0,f.useState)({}),[N,O]=(0,f.useState)({});(0,f.useMemo)(()=>{let a=Object.fromEntries(t.map(a=>[a,[]]));for(let b of h)Object.hasOwn(a,b.provider)&&b.id&&a[b.provider].push(b.id);return a},[h]);let P=(0,f.useMemo)(()=>({...n.zN,...n.IS,...n.nJ,...n.fg}),[]),Q=(0,f.useMemo)(()=>{let a={},b=new Set(["webSearch","webFetch"]),c=new Set(["image","tts","stt","embedding","imageToText","systemone"]),d=new Set(["tts","image","webFetch"]),e=z.map(a=>a.provider),f=v?s.filter(a=>(n.Q2[a]?.serviceKinds||["llm"]).includes(v)):s,g=new Set([...e,...f]),i=Object.keys(P).filter(a=>{if(g.has(a))return!1;let b=P[a];return!!b&&!b.hidden&&(!v||(b.serviceKinds||["llm"]).includes(v))}),j=(a,b)=>{let c=r.indexOf(a),d=r.indexOf(b);return(-1===c?999:c)-(-1===d?999:d)};return[...[...g].sort(j),...[...i].sort(j)].forEach(e=>{let f=(0,n.wG)(e),i=P[e]||{name:e,color:"#666"},j=(0,n.mq)(e)||(0,n.gb)(e),k=g.has(e);if(v&&b.has(v)){a[e]={name:i.name,alias:f,color:i.color,models:[{id:e,name:i.name,value:e}],isConnected:k};return}if(i.passthroughModels){let b=Object.entries(u).filter(([,a])=>a.startsWith(`${f}/`)).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b})),g=J.filter(a=>a.providerAlias===f).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,kind:(0,m.CP)(a),isCustom:!0})),h=b;if(v&&c.has(v)){let a=g.filter(a=>(0,m.CP)(a)===v);h=[...a,...(0,m.KC)(e).filter(a=>(0,m.CP)(a)===v).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,m.CP)(a)})).filter(b=>!a.some(a=>a.value===b.value))],0===h.length&&d.has(v)&&(i.serviceKinds||["llm"]).includes(v)&&(h=[{id:e,name:i.name,value:f}])}else{let a=g.filter(a=>!(0,m.CP)(a)||"llm"===(0,m.CP)(a)),c=new Set([...b,...a].map(a=>a.value)),d=(0,m.KC)(e).filter(a=>!(0,m.CP)(a)||"llm"===(0,m.CP)(a)).map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,m.CP)(a)})).filter(a=>!c.has(a.value));h=[...a,...b.filter(b=>!a.some(a=>a.value===b.value)),...d]}if(h.length>0){let b=H.find(a=>a.id===e),c=b?.name||i.name;a[e]={name:c,alias:f,color:i.color,models:h,isConnected:k}}}else if(j){if(v&&c.has(v))return;let b=h.find(a=>a.provider===e),d=H.find(a=>a.id===e),f=d?.name||b?.name||i.name,g=b?.providerSpecificData?.prefix||d?.prefix||e,j=Object.entries(u).filter(([,a])=>a.startsWith(`${e}/`)).map(([a,b])=>({id:b.replace(`${e}/`,""),name:a,value:`${g}/${b.replace(`${e}/`,"")}`})),l=J.filter(a=>a.providerAlias===e).map(a=>({id:a.id,name:a.name||a.id,value:`${g}/${a.id}`,isCustom:!0})),m=new Set(j.map(a=>a.value)),n=[...j,...l.filter(a=>!m.has(a.value))],o=n.length>0?n:[{id:`__placeholder__${e}`,name:`${g}/model-id`,value:`${g}/model-id`,isPlaceholder:!0}];a[e]={name:f,alias:g,color:i.color,models:o,isCustom:!0,hasModels:n.length>0,isConnected:k}}else{var l;let b=N[e]||[],g=b.length>0?b:(0,m.KC)(e),h=new Set(g.map(a=>a.id)),j=g.length>0,n=Object.entries(u).filter(([a,b])=>b.startsWith(`${f}/`)&&(!j||a===b.replace(`${f}/`,""))&&!h.has(b.replace(`${f}/`,""))).map(([a,b])=>({id:b.replace(`${f}/`,""),name:a,value:b,isCustom:!0})),o=new Set(n.map(a=>a.id)),p=J.filter(a=>a.providerAlias===f&&!h.has(a.id)&&!o.has(a.id)).map(a=>({id:a.id,name:a.name||a.id,value:`${f}/${a.id}`,isCustom:!0})),q=[...g.map(a=>({id:a.id,name:a.name,value:`${f}/${a.id}`,kind:(0,m.CP)(a)})),...n,...p],r=new Set,s=(l=q.filter(a=>!r.has(a.value)&&(r.add(a.value),!0)),v?c.has(v)?l.filter(a=>a.isPlaceholder||(0,m.CP)(a)===v):l:l.filter(a=>a.isPlaceholder||a.isCustom||!(0,m.CP)(a)||"llm"===(0,m.CP)(a)));0===s.length&&v&&d.has(v)&&(i.serviceKinds||["llm"]).includes(v)&&(s=[{id:e,name:i.name,value:f}]),s.length>0&&(a[e]={name:i.name,alias:f,color:i.color,models:s,isConnected:k})}}),Object.entries(a).forEach(([b,c])=>{let d=(0,n.wG)(b),e=new Set([...L[d]||[],...L[b]||[]]);0!==e.size&&(c.models=c.models.filter(a=>!e.has(a.id)),0===c.models.length&&delete a[b])}),a},[z,u,P,H,J,L,v,h,N]),R=(0,f.useMemo)(()=>{if(v||w)return[];if(!B.trim())return F;let a=B.toLowerCase();return F.filter(b=>b.name.toLowerCase().includes(a))},[F,B,v]),S=(0,f.useMemo)(()=>{let a=B.trim().toLowerCase(),b={};return Object.entries(Q).forEach(([c,d])=>{var e;let f,g;if(D&&!d.isConnected)return;let h=d.models;if(!w||(h=h.filter(a=>A(a.value)?.[w]===!0),0!==h.length)){if(a){let b=d.name.toLowerCase().includes(a);if(h=h.filter(b=>b.name.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)),0===h.length&&!b)return}b[c]={...d,models:(f=(e=h).filter(a=>x.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),g=e.filter(a=>!x.includes(a.value)).sort((a,b)=>a.name.localeCompare(b.name)),[...f,...g])}}}),b},[Q,B,x,D,w]),T=a=>{let e=a?.value||a?.name||a;x.includes(e)&&d?d(a):c(a),y&&(b(),C(""))};return(0,e.jsxs)(i.default,{isOpen:a,onClose:()=>{b(),C("")},title:p??(0,o.Tl)("Select Model"),size:"md",className:"p-4!",footer:null,children:[(0,e.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-2.5 py-2 bg-primary/8 border border-primary/20 rounded-lg text-xs text-text-muted",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-primary shrink-0",style:{fontSize:"14px"},children:"info"}),(0,e.jsx)("span",{children:(0,o.Tl)("Click to add, click again to remove. Changes are saved automatically.")})]}),(0,e.jsxs)("div",{className:"mb-3 flex items-center gap-2.5",children:[(0,e.jsxs)("div",{className:"relative flex-1 min-w-0",children:[(0,e.jsx)("span",{className:"material-symbols-outlined absolute left-2.5 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,e.jsx)("input",{type:"text",placeholder:(0,o.Tl)("Search..."),value:B,onChange:a=>C(a.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-surface border border-border rounded text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"})]}),(0,e.jsxs)("label",{className:"flex items-center gap-1.5 shrink-0 text-xs text-text-muted cursor-pointer select-none hover:text-text-main transition-colors",children:[(0,e.jsx)("input",{type:"checkbox",checked:D,onChange:a=>{var b;return b=a.target.checked,void E(b)},className:"w-3.5 h-3.5 rounded border-border text-primary focus:ring-primary/50 cursor-pointer accent-primary"}),(0,e.jsx)("span",{children:(0,o.Tl)("Connected providers only")})]})]}),(0,e.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[R.length>0&&(0,e.jsxs)("div",{children:[(0,e.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,e.jsx)("span",{className:"material-symbols-outlined text-primary text-[14px]",children:"layers"}),(0,e.jsx)("span",{className:"text-xs font-medium text-primary",children:(0,o.Tl)("Combos")}),(0,e.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",R.length,")"]})]}),(0,e.jsx)("div",{className:"flex flex-wrap gap-1.5",children:R.map(a=>{let b=g===a.name;return(0,e.jsxs)("button",{onClick:()=>T({id:a.name,name:a.name,value:a.name}),className:`
|
|
2
2
|
px-2 py-1 rounded-xl text-xs font-medium transition-all border hover:cursor-pointer flex items-center gap-1
|
|
3
3
|
${b?"bg-primary text-white border-primary":x.includes(a.name)?"bg-primary border-primary text-white hover:bg-primary-hover":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"}
|
|
4
4
|
`,children:[x.includes(a.name)&&(0,e.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),a.name]},a.id)})})]}),Object.entries(S).map(([a,b])=>(0,e.jsxs)("div",{children:[(0,e.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,e.jsx)(j.A,{src:`/providers/${a}.png`,alt:b.name,size:14,fallbackText:(b.name||a).slice(0,2).toUpperCase(),fallbackColor:b.color}),(0,e.jsx)("span",{className:"text-xs font-medium text-primary",children:b.name}),(0,e.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",b.models.length,")"]}),!b.isConnected&&(0,e.jsx)("span",{className:"text-[10px] text-text-muted bg-surface-2 px-1.5 py-0.5 rounded font-normal ml-auto",children:(0,o.Tl)("Not connected")})]}),(0,e.jsx)("div",{className:"flex flex-wrap gap-1.5",children:b.models.map(a=>{let b=g===a.value,c=a.isPlaceholder;return(0,e.jsx)("button",{onClick:()=>T(a),title:c?"Select to pre-fill, then edit model ID in the input":void 0,className:`
|