keyrouter 1.0.3 → 1.0.5
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 +16 -16
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +20 -20
- package/app/.next-cli-build/react-loadable-manifest.json +8 -8
- 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/media-providers/[kind]/[id]/page.js +5 -5
- 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/prompt-injection/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-injection/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +7 -7
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +7 -7
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +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.nft.json +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.nft.json +1 -1
- 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.nft.json +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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +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/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +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.nft.json +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/crush-settings/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- 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/omp-settings/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +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/presets/route.js.nft.json +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/headroom/extras/route.js.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +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.nft.json +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/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +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/prompt-injection/route.js.nft.json +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.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]/overrides/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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.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/providers/web-login/route.js.nft.json +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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +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.nft.json +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.nft.json +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.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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +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.nft.json +1 -1
- 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.nft.json +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.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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +7 -7
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +7 -7
- 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 +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
- 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 +1 -1
- 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 +1 -1
- 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/prompt-injection.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/!KGRhc2hib2FyZCk/dashboard/prompt-injection/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/prompt-injection.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
- 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 +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- 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 +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
- 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 +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +7 -7
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +7 -7
- 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 +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +8 -8
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- 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 +1 -1
- package/app/.next-cli-build/server/app/login.rsc +8 -8
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +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 +16 -16
- package/app/.next-cli-build/server/chunks/1051.js +1 -1
- package/app/.next-cli-build/server/chunks/2172.js +1 -1
- package/app/.next-cli-build/server/chunks/3449.js +1 -1
- package/app/.next-cli-build/server/chunks/3697.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +6 -6
- package/app/.next-cli-build/server/chunks/4190.js +1 -1
- package/app/.next-cli-build/server/chunks/4620.js +1 -0
- package/app/.next-cli-build/server/chunks/5299.js +7 -7
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6708.js +1 -1
- package/app/.next-cli-build/server/chunks/7066.js +1 -1
- package/app/.next-cli-build/server/chunks/8128.js +1 -1
- package/app/.next-cli-build/server/chunks/8251.js +1 -1
- package/app/.next-cli-build/server/chunks/8682.js +3 -3
- package/app/.next-cli-build/server/chunks/869.js +1 -1
- package/app/.next-cli-build/server/chunks/9604.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-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/static/chunks/{124.b7052d76521ac60b.js → 124.2dcfd9a087c9e48b.js} +1 -1
- package/app/.next-cli-build/static/chunks/{2435.51481baa53b475e1.js → 2435.7cc8c894f4a21999.js} +1 -1
- package/app/.next-cli-build/static/chunks/{2470-e9f1fd5f21c43fac.js → 2470-73a591ec7a5bdf40.js} +1 -1
- package/app/.next-cli-build/static/chunks/3521.96065c08772d432e.js +1 -0
- package/app/.next-cli-build/static/chunks/3557-ab733a862d0bba72.js +10 -0
- package/app/.next-cli-build/static/chunks/{5462.500e87268a882da6.js → 5462.b5dccc4c3626a6a1.js} +1 -1
- package/app/.next-cli-build/static/chunks/5496-336ad33bc5785fb5.js +9 -0
- package/app/.next-cli-build/static/chunks/5497-b6161d058c4b63f4.js +1 -0
- package/app/.next-cli-build/static/chunks/6808-ecaf0603c2c647dd.js +1 -0
- package/app/.next-cli-build/static/chunks/761-748923a2523301a7.js +132 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-dc2bbddae0338265.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-946dbaff84568fd1.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-c995565de72de5d6.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-569d2ce1c361cb5b.js → page-e9856c47cc41d2f2.js} +5 -5
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-d8d32b819432e76e.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-c0c7f0ec4d840259.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-745147f2bf98d096.js +27 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-3006aca559388a7a.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-c832cd28ad361668.js +4 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-f4d89bf3d96928c9.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-33826a8bc196b7de.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-6acecf90f03a1af3.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-71814d68cea6ef7d.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-ebe244550b022a8f.js +1 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-84ba30538381db07.js +1 -0
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-607b1f15b82c8bba.js +1 -0
- package/app/.next-cli-build/static/chunks/app/landing/page-3e38f4876602c2fb.js +1 -0
- package/app/.next-cli-build/static/chunks/app/{layout-cd4efdfec7b51ca9.js → layout-8e337d947af1970c.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/login/{page-d50a71c8703d2790.js → page-17082356385ade34.js} +1 -1
- package/app/.next-cli-build/static/chunks/{webpack-01b0b9fe7dbba18d.js → webpack-a1905b20ab1a879d.js} +1 -1
- package/app/.next-cli-build/static/css/d7b388223f36a397.css +1 -0
- package/app/package.json +1 -1
- package/app/public/favicon.svg +2 -12
- package/app/public/fonts/arabic-subset.ttf +0 -0
- package/app/public/fonts/bengali-subset.ttf +0 -0
- package/app/public/fonts/devanagari-subset.ttf +0 -0
- package/app/public/fonts/hebrew-subset.ttf +0 -0
- package/app/public/fonts/jp-subset.ttf +0 -0
- package/app/public/fonts/khmer-subset.ttf +0 -0
- package/app/public/fonts/kr-subset.ttf +0 -0
- package/app/public/fonts/sc-subset.ttf +0 -0
- package/app/public/fonts/tc-subset.ttf +0 -0
- package/app/public/fonts/thai-subset.ttf +0 -0
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/5626.js +0 -1
- package/app/.next-cli-build/static/chunks/3521.03e47d524e0fcbf6.js +0 -1
- package/app/.next-cli-build/static/chunks/3557-437defff109ccb42.js +0 -10
- package/app/.next-cli-build/static/chunks/5496-a3a9ad577f310490.js +0 -9
- package/app/.next-cli-build/static/chunks/5497-bd4f9f37c29968bd.js +0 -1
- package/app/.next-cli-build/static/chunks/6808-4e4ca2233c09ffad.js +0 -1
- package/app/.next-cli-build/static/chunks/761-00700c1c25957243.js +0 -132
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-7feaa4a67a8eb771.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-624e8d61fe459544.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-5da47ad2a6d8d5de.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-628c4ef1c9482980.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-injection/page-35a6881f7569aa64.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-3b9d43febf1e79d4.js +0 -27
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-e9c955f52e5ae812.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-bbf57717de4a9782.js +0 -4
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/page-b275a947fc978997.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-5434337e59f24de1.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-c7eb81dfb0b4fd77.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-1b0510b28ff8de92.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-be974a86e9053540.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-18c2613dd78ff66f.js +0 -1
- package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-c439d82cf7840dc9.js +0 -1
- package/app/.next-cli-build/static/chunks/app/landing/page-38fc3c430a1a29dc.js +0 -1
- package/app/.next-cli-build/static/css/841943e9a30fe5cd.css +0 -1
- /package/app/.next-cli-build/static/{SaAkC7sXHdEDKHids4PIF → nPdnpoRoh59z5OwsCS3Vd}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{SaAkC7sXHdEDKHids4PIF → nPdnpoRoh59z5OwsCS3Vd}/_ssgManifest.js +0 -0
package/app/public/favicon.svg
CHANGED
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="none">
|
|
2
|
-
<defs>
|
|
3
|
-
<linearGradient id="brand" x1="0" y1="0" x2="32" y2="32" gradientUnits="userSpaceOnUse">
|
|
4
|
-
<stop offset="0" stop-color="#737373"/>
|
|
5
|
-
<stop offset="1" stop-color="#404040"/>
|
|
6
|
-
</linearGradient>
|
|
7
|
-
<linearGradient id="brand-dark" x1="0" y1="0" x2="32" y2="32" gradientUnits="userSpaceOnUse">
|
|
8
|
-
<stop offset="0" stop-color="#a3a3a3"/>
|
|
9
|
-
<stop offset="1" stop-color="#e5e5e5"/>
|
|
10
|
-
</linearGradient>
|
|
11
|
-
</defs>
|
|
12
2
|
<style>
|
|
13
|
-
.mark { fill:
|
|
3
|
+
.mark { fill: #1a1a1a; }
|
|
14
4
|
.icon { fill: #ffffff; }
|
|
15
5
|
@media (prefers-color-scheme: dark) {
|
|
16
|
-
.mark { fill:
|
|
6
|
+
.mark { fill: #6b6b6b; }
|
|
17
7
|
}
|
|
18
8
|
</style>
|
|
19
9
|
<rect class="mark" width="32" height="32" rx="9"/>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=5626,exports.ids=[5626],exports.modules={962:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/McpMarketplaceModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/McpMarketplaceModal.js","default")},3080:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/OAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/OAuthModal.js","default")},4996:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/CapacityBadges.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/CapacityBadges.js","default")},5843:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/NoAuthProxyCard.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/NoAuthProxyCard.js","default")},6774:(a,b,c)=>{Promise.resolve().then(c.bind(c,67738)),Promise.resolve().then(c.bind(c,25919)),Promise.resolve().then(c.bind(c,75171)),Promise.resolve().then(c.bind(c,99070)),Promise.resolve().then(c.bind(c,38930)),Promise.resolve().then(c.bind(c,17660)),Promise.resolve().then(c.bind(c,11229)),Promise.resolve().then(c.bind(c,62727)),Promise.resolve().then(c.bind(c,51109)),Promise.resolve().then(c.bind(c,51585)),Promise.resolve().then(c.bind(c,48781)),Promise.resolve().then(c.bind(c,43182)),Promise.resolve().then(c.bind(c,32456)),Promise.resolve().then(c.bind(c,3236)),Promise.resolve().then(c.bind(c,79488)),Promise.resolve().then(c.bind(c,83552)),Promise.resolve().then(c.bind(c,8590)),Promise.resolve().then(c.bind(c,5291)),Promise.resolve().then(c.bind(c,56110)),Promise.resolve().then(c.bind(c,267)),Promise.resolve().then(c.bind(c,53838)),Promise.resolve().then(c.bind(c,11501)),Promise.resolve().then(c.bind(c,74812)),Promise.resolve().then(c.bind(c,39645)),Promise.resolve().then(c.bind(c,20084)),Promise.resolve().then(c.bind(c,95145)),Promise.resolve().then(c.bind(c,4249)),Promise.resolve().then(c.bind(c,50585)),Promise.resolve().then(c.bind(c,79346)),Promise.resolve().then(c.bind(c,11633)),Promise.resolve().then(c.bind(c,91809)),Promise.resolve().then(c.bind(c,91099)),Promise.resolve().then(c.bind(c,4770)),Promise.resolve().then(c.bind(c,42196)),Promise.resolve().then(c.bind(c,83146)),Promise.resolve().then(c.bind(c,19308)),Promise.resolve().then(c.bind(c,53845)),Promise.resolve().then(c.bind(c,95514)),Promise.resolve().then(c.bind(c,32971)),Promise.resolve().then(c.bind(c,1379)),Promise.resolve().then(c.bind(c,24622)),Promise.resolve().then(c.bind(c,24656))},7290:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Card.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Card.js","default")},14285:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/KiroOAuthWrapper.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/KiroOAuthWrapper.js","default")},18060:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/XiaomiMimoAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/XiaomiMimoAuthModal.js","default")},18200:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/AddCustomEmbeddingModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/AddCustomEmbeddingModal.js","default")},18421:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Tooltip.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Tooltip.js","default")},19083:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/RequestLogger.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/RequestLogger.js","default")},20493:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/ComboFormModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/ComboFormModal.js","default")},26866:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Sidebar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Sidebar.js","default")},29354:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/HeaderMenu.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/HeaderMenu.js","default")},30508:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(5735);c(45512),c(71230),c(83784),c(7290),c(32460),c(92082),c(70061),c(33893),c(70092),c(40515),c(89886),c(26866),c(92669),c(49123),c(3080),c(94582),c(70603),c(20493),c(962),c(45205),c(29354),c(52421),c(33811),c(19083),c(82448),c(14285),c(87228),c(40167),c(56966),c(18060),c(80342),c(64148),c(70139),c(18200),c(5843),c(54065),c(18421),c(81923),c(4996),c(80748);var e=c(61780);function f({children:a}){return(0,d.jsx)(e.default,{children:a})}c(64420)},32460:(a,b,c)=>{"use strict";c.d(b,{ConfirmModal:()=>f,default:()=>e});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Modal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Modal.js","default"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ConfirmModal() from the server but ConfirmModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Modal.js","ConfirmModal")},33811:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/ChangelogModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/ChangelogModal.js","default")},33893:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Badge.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Badge.js","default")},40167:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/CursorAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/CursorAuthModal.js","default")},40515:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/ThemeToggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/ThemeToggle.js","default")},43726:(a,b,c)=>{Promise.resolve().then(c.bind(c,18200)),Promise.resolve().then(c.bind(c,70061)),Promise.resolve().then(c.bind(c,33893)),Promise.resolve().then(c.bind(c,45512)),Promise.resolve().then(c.bind(c,4996)),Promise.resolve().then(c.bind(c,7290)),Promise.resolve().then(c.bind(c,33811)),Promise.resolve().then(c.bind(c,20493)),Promise.resolve().then(c.bind(c,40167)),Promise.resolve().then(c.bind(c,70139)),Promise.resolve().then(c.bind(c,49123)),Promise.resolve().then(c.bind(c,64148)),Promise.resolve().then(c.bind(c,92669)),Promise.resolve().then(c.bind(c,29354)),Promise.resolve().then(c.bind(c,80342)),Promise.resolve().then(c.bind(c,71230)),Promise.resolve().then(c.bind(c,82448)),Promise.resolve().then(c.bind(c,14285)),Promise.resolve().then(c.bind(c,87228)),Promise.resolve().then(c.bind(c,45205)),Promise.resolve().then(c.bind(c,64420)),Promise.resolve().then(c.bind(c,61780)),Promise.resolve().then(c.bind(c,92082)),Promise.resolve().then(c.bind(c,70603)),Promise.resolve().then(c.bind(c,962)),Promise.resolve().then(c.bind(c,32460)),Promise.resolve().then(c.bind(c,94582)),Promise.resolve().then(c.bind(c,5843)),Promise.resolve().then(c.bind(c,3080)),Promise.resolve().then(c.bind(c,81923)),Promise.resolve().then(c.bind(c,19083)),Promise.resolve().then(c.bind(c,54065)),Promise.resolve().then(c.bind(c,83784)),Promise.resolve().then(c.bind(c,26866)),Promise.resolve().then(c.bind(c,80748)),Promise.resolve().then(c.bind(c,89886)),Promise.resolve().then(c.bind(c,40515)),Promise.resolve().then(c.bind(c,70092)),Promise.resolve().then(c.bind(c,18421)),Promise.resolve().then(c.bind(c,52421)),Promise.resolve().then(c.bind(c,18060)),Promise.resolve().then(c.bind(c,56966))},45205:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/LanguageSwitcher.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/LanguageSwitcher.js","default")},45512:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Button.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Button.js","default")},49123:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Footer.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Footer.js","default")},52421:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/UpdateButton.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/UpdateButton.js","default")},54065:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/SegmentedControl.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/SegmentedControl.js","default")},56966:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/ZedAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/ZedAuthModal.js","default")},61780:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/layouts/DashboardLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/layouts/DashboardLayout.js","default")},64148:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/GitLabAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/GitLabAuthModal.js","default")},64420:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/layouts/AuthLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/layouts/AuthLayout.js","default")},70061:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Avatar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Avatar.js","default")},70092:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Toggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Toggle.js","default")},70139:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/EditConnectionModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/EditConnectionModal.js","default")},70603:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/ManualConfigModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/ManualConfigModal.js","default")},71230:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Input.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Input.js","default")},80342:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/IFlowCookieModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/IFlowCookieModal.js","default")},80748:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/SmartPolicyModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/SmartPolicyModal.js","default")},81923:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/ProviderInfoCard.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/ProviderInfoCard.js","default")},82448:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/KiroAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/KiroAuthModal.js","default")},83784:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Select.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Select.js","default")},87228:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/KiroSocialOAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/KiroSocialOAuthModal.js","default")},92082:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>h,PageLoading:()=>f,Skeleton:()=>g,Spinner:()=>e,default:()=>i});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Spinner() from the server but Spinner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Loading.js","Spinner"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PageLoading() from the server but PageLoading is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Loading.js","PageLoading"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call Skeleton() from the server but Skeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Loading.js","Skeleton"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call CardSkeleton() from the server but CardSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Loading.js","CardSkeleton"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Loading.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Loading.js","default")},92669:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/Header.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/Header.js","default")},94582:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/keyzakyy/Projects/keyrouter/src/shared/components/ModelSelectModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/keyzakyy/Projects/keyrouter/src/shared/components/ModelSelectModal.js","default")}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3521],{63521:(e,t,r)=>{r.r(t),r.d(t,{default:()=>g});var o=r(95155),s=r(12115),a=r(14051),i=r.n(a),n=r(81750),l=r(6793);r(53255);var d=r(88105),c=r(8247);function p({data:e}){let{label:t,color:r,imageUrl:a,textIcon:i,active:d}=e,[u,m]=(0,s.useState)(!1);return(0,o.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg border-2 transition-all duration-300 bg-bg",style:{borderColor:d?"var(--color-primary)":"var(--color-border)",boxShadow:d?"0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent)":"none",minWidth:"132px"},children:[(0,o.jsx)(n.h7,{type:"target",position:l.yX.Top,id:"top",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"target",position:l.yX.Bottom,id:"bottom",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"target",position:l.yX.Left,id:"left",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"target",position:l.yX.Right,id:"right",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)("div",{className:"grid size-8 shrink-0 place-items-center rounded-md bg-surface-2",children:a&&!u?(0,o.jsx)("img",{src:a,alt:t,className:"size-5 rounded-sm object-contain",loading:"lazy",decoding:"async",onError:()=>{let e=a?.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,c.Kw)(e[1]),m(!0)}}):(0,o.jsx)("span",{className:"text-xs font-bold",style:{color:r},children:i})}),(0,o.jsx)("span",{className:`truncate font-display text-[13px] font-medium ${d?"text-text-main":"text-text-muted"}`,children:t}),d&&(0,o.jsxs)("span",{className:"relative flex h-2 w-2 shrink-0",children:[(0,o.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 bg-primary"}),(0,o.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]})]})}function u({data:e}){let t=(e.activeCount||0)>0;return(0,o.jsxs)("div",{className:`relative z-[1] flex items-center justify-center px-5 py-3 rounded-xl border-2 min-w-[130px] ${t?"border-primary bg-primary/5":"border-border bg-surface"}`,children:[(0,o.jsx)(n.h7,{type:"source",position:l.yX.Top,id:"top",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"source",position:l.yX.Bottom,id:"bottom",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"source",position:l.yX.Left,id:"left",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)(n.h7,{type:"source",position:l.yX.Right,id:"right",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,o.jsx)("div",{className:`mr-2 grid size-7 shrink-0 place-items-center rounded-lg bg-gradient-to-br from-brand-500 to-brand-700 text-white ${t?"topology-router-icon":""}`,children:(0,o.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"route"})}),(0,o.jsx)("span",{className:`font-display text-sm font-bold ${t?"text-text-main":"text-text-muted"}`,children:"KeyRouter"}),e.activeCount>0&&(0,o.jsx)("span",{className:"ml-2 rounded-full bg-primary px-2 py-0.5 font-mono text-[10px] font-bold text-white",children:e.activeCount})]})}function m({id:e,sourceX:t,sourceY:r,targetX:s,targetY:a,sourcePosition:i,targetPosition:d,style:c={},data:p}){let[u]=(0,l.Fp)({sourceX:t,sourceY:r,sourcePosition:i,targetX:s,targetY:a,targetPosition:d}),h=!!p?.active,f=c.stroke||"var(--color-border)",g=`topo-electric-${e}`;return h?(0,o.jsxs)("g",{className:"topology-edge-electric",children:[(0,o.jsx)("defs",{children:(0,o.jsxs)("filter",{id:g,x:"-40%",y:"-40%",width:"180%",height:"180%",children:[(0,o.jsx)("feTurbulence",{type:"fractalNoise",baseFrequency:"0.9",numOctaves:"2",seed:"2",result:"noise",children:(0,o.jsx)("animate",{attributeName:"baseFrequency",values:"0.8;1.4;0.8",dur:"0.25s",repeatCount:"indefinite"})}),(0,o.jsx)("feDisplacementMap",{in:"SourceGraphic",in2:"noise",scale:"3.5",xChannelSelector:"R",yChannelSelector:"G"})]})}),(0,o.jsx)("path",{d:u,fill:"none",stroke:"#22d3ee",strokeWidth:10,strokeOpacity:.35,strokeLinecap:"round",filter:`url(#${g})`,className:"topology-edge-halo"}),(0,o.jsx)("path",{d:u,fill:"none",stroke:"#4ade80",strokeWidth:5,strokeOpacity:.85,strokeLinecap:"round",filter:`url(#${g})`,className:"topology-edge-plasma"}),(0,o.jsx)(n.tE,{id:e,path:u,style:{stroke:"var(--color-topo-core)",strokeWidth:2.2,opacity:1},className:"topology-edge-kame"}),Array.from({length:6},(t,r)=>(0,o.jsx)("circle",{r:r%2==0?4:2.5,fill:r%3==0?"#fde047":r%3==1?"#67e8f9":"#fff",opacity:.95,style:{filter:"drop-shadow(0 0 4px #22d3ee)"},children:(0,o.jsx)("animateMotion",{dur:`${.4+.08*r}s`,repeatCount:"indefinite",path:u,begin:`${.09*r}s`})},`${e}-p-${r}`)),Array.from({length:5},(t,r)=>(0,o.jsxs)("circle",{r:1.8,fill:"#e0f2fe",opacity:0,children:[(0,o.jsx)("animate",{attributeName:"opacity",values:"0;1;0;0;1;0",dur:`${.35+r%3*.1}s`,begin:`${.07*r}s`,repeatCount:"indefinite"}),(0,o.jsx)("animateMotion",{dur:`${.28+.05*r}s`,repeatCount:"indefinite",path:u,begin:`${.11*r}s`})]},`${e}-s-${r}`))]}):(0,o.jsx)(n.tE,{id:e,path:u,style:{...c,stroke:f}})}p.propTypes={data:i().object.isRequired},u.propTypes={data:i().object.isRequired},m.propTypes={id:i().string,sourceX:i().number,sourceY:i().number,targetX:i().number,targetY:i().number,sourcePosition:i().string,targetPosition:i().string,style:i().object,data:i().object};let h={provider:p,router:u},f={topology:m};function g({providers:e=[],activeRequests:t=[],lastProvider:r="",errorProvider:a=""}){let i=(0,s.useMemo)(()=>t.map(e=>e.provider?.toLowerCase()).filter(Boolean).sort().join(","),[t]),l=r?.toLowerCase()||"",p=a?.toLowerCase()||"",u=(0,s.useMemo)(()=>new Set(i?i.split(","):[]),[i]),m=(0,s.useMemo)(()=>new Set(l?[l]:[]),[l]),x=(0,s.useMemo)(()=>new Set(p?[p]:[]),[p]),b=(0,s.useRef)({}),[y,v]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=b.current,t=Date.now();for(let r of u)e[r]||(e[r]=t);for(let t of Object.keys(e))u.has(t)||delete e[t]},[u]),(0,s.useEffect)(()=>{if(0===u.size)return;let e=setInterval(()=>v(e=>e+1),1e3);return()=>clearInterval(e)},[u]);let j=(0,s.useMemo)(()=>{let e=Date.now(),t=new Set;for(let r of u){let o=b.current[r];(!o||e-o<6e4)&&t.add(r)}return t},[u,y]),{nodes:w,edges:N}=(0,s.useMemo)(()=>(function(e,t,r,o){let s=e.length,a=Math.max(320,204*s/(2*Math.PI)),i=Math.max(200,.55*a);if(0===s)return{nodes:[{id:"router",type:"router",position:{x:0,y:0},data:{activeCount:0},draggable:!1}],edges:[]};let n=[],l=[];return n.push({id:"router",type:"router",position:{x:-60,y:-22},data:{activeCount:t.size},draggable:!1}),e.forEach((e,p)=>{var u,m;let h,f,g=(u=e.provider,d.Q2[u]||{color:"#6b7280",name:u}),x=t.has(e.provider?.toLowerCase()),b=!x&&r.has(e.provider?.toLowerCase()),y=!x&&o.has(e.provider?.toLowerCase()),v=`provider-${e.provider}`,j={label:(g.name!==e.provider?g.name:null)||e.nodePrefix||e.nodeName||e.name||e.provider,color:g.color||"#6b7280",imageUrl:(m=e.provider,(0,c.HY)(m)),textIcon:g.textIcon||(e.provider||"?").slice(0,2).toUpperCase(),active:x},w=-Math.PI/2+2*Math.PI*p/s,N=a*Math.cos(w),k=i*Math.sin(w);Math.abs(w+Math.PI/2)<Math.PI/4||Math.abs(w-3*Math.PI/2)<Math.PI/4?(h="top",f="bottom"):Math.abs(w-Math.PI/2)<Math.PI/4?(h="bottom",f="top"):N>0?(h="right",f="left"):(h="left",f="right"),n.push({id:v,type:"provider",position:{x:N-90,y:k-15},data:j,draggable:!1}),l.push({id:`e-${v}`,type:"topology",source:"router",sourceHandle:h,target:v,targetHandle:f,animated:!1,data:{active:x},style:y?{stroke:"#ef4444",strokeWidth:2.5,opacity:.9}:x?{stroke:"#22d3ee",strokeWidth:3.5,opacity:1}:b?{stroke:"#f59e0b",strokeWidth:2,opacity:.7}:{stroke:"var(--color-border)",strokeWidth:1,opacity:.3}})}),{nodes:n,edges:l}})(e,j,m,x),[e,j,m,x]),k=(0,s.useMemo)(()=>e.map(e=>e.provider).sort().join(","),[e]),M=(0,s.useRef)(null),C=(0,s.useRef)(null),$={padding:.9,duration:200},P=(0,s.useCallback)(e=>{M.current=e,setTimeout(()=>e.fitView($),50)},[]);return(0,s.useEffect)(()=>{let e=C.current;if(!e)return;let t=new ResizeObserver(()=>{M.current&&M.current.fitView($)});return t.observe(e),()=>t.disconnect()},[]),(0,s.useEffect)(()=>{if(M.current){let e=setTimeout(()=>M.current.fitView($),50);return()=>clearTimeout(e)}},[w.length]),(0,o.jsx)("div",{ref:C,className:"h-[320px] w-full min-w-0 rounded-lg border border-border bg-[var(--color-topo-frame)] sm:h-[480px]",children:0===e.length?(0,o.jsx)("div",{className:"h-full flex items-center justify-center text-text-muted text-sm",children:"No providers connected"}):(0,o.jsxs)(n.Gc,{nodes:w,edges:N,nodeTypes:h,edgeTypes:f,fitView:!0,fitViewOptions:$,minZoom:.1,maxZoom:2,onInit:P,proOptions:{hideAttribution:!0},panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,preventScrolling:!1,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,children:[(0,o.jsx)(n.VS,{variant:n._5.Dots,gap:20,size:1.5,color:"#c4c4ce"}),(0,o.jsx)(n.H2,{showInteractive:!1,className:"react-flow-controls-custom"})]},k)})}g.propTypes={providers:i().arrayOf(i().shape({id:i().string,provider:i().string,name:i().string,nodePrefix:i().string})),activeRequests:i().arrayOf(i().shape({provider:i().string,model:i().string,account:i().string})),lastProvider:i().string,errorProvider:i().string}}}]);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3557],{98:(e,t,n)=>{n.d(t,{default:()=>s});var i=n(95155),a=n(39403),o=n(31474);function s({label:e,options:t=[],value:n,onChange:r,placeholder:l="Select an option",error:d,hint:c,disabled:u=!1,required:p=!1,className:m,selectClassName:g,labelClassName:x,align:h,...f}){return(0,i.jsxs)("div",{className:(0,o.cn)("flex flex-col gap-1.5",m),children:[e&&(0,i.jsxs)("label",{className:(0,o.cn)("text-sm font-medium text-text-main",x),children:[e,p&&(0,i.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,i.jsx)(a.A,{options:t,value:n,onChange:e=>r&&r({target:{value:e}}),placeholder:l,disabled:u,buttonClassName:(0,o.cn)("min-h-[42px] rounded-[10px] px-3 py-2.5",d&&"border-red-500/40 ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40",g),align:h,...f}),d&&(0,i.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),d]}),c&&!d&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:c})]})}},929:(e,t,n)=>{n.d(t,{y:()=>d});var i=n(12115),a=n(67899),o=n(88105);let s=null,r=null;function l(){return s?Promise.resolve(s):r||(r=fetch("/api/models").then(async e=>{if(!e.ok)throw Error(`models ${e.status}`);return s=function(e){let t={},n={};for(let i of e||[])i.caps&&(i.fullModel&&(t[i.fullModel]=i.caps),i.routedModel&&(t[i.routedModel]=i.caps),i.model&&(n[i.model]=i.caps));return{byFull:t,byId:n}}((await e.json()).models)}).catch(()=>({byFull:{},byId:{}})).finally(()=>{r=null}))}function d(){let[e,t]=(0,i.useState)(()=>s?.byFull||{}),[n,r]=(0,i.useState)(()=>s?.byId||{});return(0,i.useEffect)(()=>{let e=!0,n=n=>{e&&(t(n.byFull),r(n.byId))};s?n(s):l().then(n);let i=()=>{s=null,l().then(n)};return window.addEventListener("customModelChanged",i),()=>{e=!1,window.removeEventListener("customModelChanged",i)}},[]),{getCaps:(0,i.useCallback)(t=>(function(e,t,n){if(!n)return null;if(e[n])return e[n];let i=n.includes("/")?n.slice(n.indexOf("/")+1):n;if(t[i])return t[i];let s=n.includes("/")?n.slice(0,n.indexOf("/")):null,r=s?o.js[s]||s:null,l=(0,a.nl)(r,i);return{vision:l.vision,search:l.search,reasoning:l.reasoning,contextWindow:l.contextWindow,maxOutput:l.maxOutput}})(e,n,t),[e,n])}}},8247:(e,t,n)=>{n.d(t,{HY:()=>s,Kw:()=>r});let i={"perplexity-agent":"perplexity","gitlab-duo":"gitlab","vercel-ai-gateway":"vercel","ollama-search":"ollama","minimax-code":"minimax","minimax-code-global":"minimax","opencode-zen":"opencode","deepseek-web":"deepseek","muse-web":"muse","gemini-web":"gemini","chatgpt-web":"openai"},a=new Set;function o(e){return e&&"string"==typeof e?e.trim().toLowerCase():""}function s(e){let t=function(e){let t=o(e);if(!t||a.has(t))return"";let n=i[t]||t;return a.has(n)?"":n}(e);return t?`/providers/${t}.png`:null}function r(e){let t=o(e);t&&a.add(t);let n=i[t];n&&a.add(n)}},28011:(e,t,n)=>{n.d(t,{default:()=>O});var i=n(95155),a=n(12115),o=n(14051),s=n.n(o),r=n(81127),l=n(57250),d=n(29366),c=n(929),u=n(28777),p=n(88105);function m(e){if(!e||"string"!=typeof e)return{raw:"",isEmpty:!0,isRegex:!1,regex:null,positiveTerms:[],negativeTerms:[]};let t=e.trim();if(!t)return{raw:"",isEmpty:!0,isRegex:!1,regex:null,positiveTerms:[],negativeTerms:[]};if(t.startsWith("/")){let e=t.match(/^\/(.+)\/([a-z]*)$/i);if(e)try{let n=e[2]||"i",i=new RegExp(e[1],n);return{raw:t,isEmpty:!1,isRegex:!0,regex:i,positiveTerms:[],negativeTerms:[]}}catch{}else if(t.length>1)try{let e=RegExp(t.slice(1),"i");return{raw:t,isEmpty:!1,isRegex:!0,regex:e,positiveTerms:[],negativeTerms:[]}}catch{}}let n=t.split(/\s+/),i=[],a=[];for(let e of n)e&&((e.startsWith("!")||e.startsWith("-"))&&e.length>1?a.push(e.slice(1).toLowerCase()):i.push(e.toLowerCase()));return{raw:t,isEmpty:0===i.length&&0===a.length,isRegex:!1,regex:null,positiveTerms:i,negativeTerms:a}}function g(e,t){let n="string"!=typeof t&&t?t:m(t);if(n.isEmpty)return!0;let i=[];if("string"==typeof e?i=[e]:Array.isArray(e)?i=e.filter(e=>"string"==typeof e):e&&"object"==typeof e&&(i=[e.name,e.id,e.value,e.alias,e.provider].filter(e=>"string"==typeof e)),0===i.length)return!1;if(n.isRegex&&n.regex){n.regex.lastIndex=0;let e=i.join(" ");return/\(\?!|\(\?<!/.test(n.raw)?n.regex.test(e):i.some(e=>n.regex.test(e))||n.regex.test(e)}let a=i.map(e=>e.toLowerCase());if(n.negativeTerms.length>0){for(let e of n.negativeTerms)if(a.some(t=>t.includes(e)))return!1}if(n.positiveTerms.length>0){for(let e of n.positiveTerms)if(!a.some(t=>t.includes(e)))return!1}return!0}var x=n(70217),h=n(73006);let f=[...Object.keys(p.zN),...Object.keys(p.IS),...Object.keys(p.nJ),...Object.keys(p.fg)],v=Object.keys(p.IS).filter(e=>p.IS[e].noAuth),k=["cursor","cline","clinepass","zed"];function w(e,t,n){let[i,o]=(0,a.useState)([]),s=(t??[]).join("|");return(0,a.useEffect)(()=>{let t=s?s.split("|"):[];if(!e||0===t.length)return void o([]);let i=!1;return Promise.all(t.map(async e=>{let t=await fetch(`/api/providers/${e}/models`,{cache:"no-store"});if(!t.ok)return[];let n=await t.json();return Array.isArray(n.models)?n.models:[]})).then(e=>{if(i)return;let t=new Set;o(e.flat().filter(e=>!(!e?.id||t.has(e.id))&&(t.add(e.id),!0)))}).catch(e=>{console.warn(`Unable to load ${n} models for selector:`,e),i||o([])}),()=>{i=!0}},[e,s,n]),i}function b({icon:e,title:t,count:n}){return(0,i.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,i.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-lg bg-surface-2 text-text-subtle",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[15px] leading-none",children:e})}),(0,i.jsx)("span",{className:"font-display text-[13px] font-semibold tracking-tight text-text-main",children:t}),(0,i.jsx)("span",{className:"ml-auto rounded-full bg-surface-2 px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-text-muted",children:n})]})}function O({isOpen:e,onClose:t,onSelect:n,onDeselect:o,onSelectBatch:s,onDeselectBatch:W,selectedModel:y,activeProviders:F=[],title:C="Select Model",size:j="lg",modelAliases:N={},kindFilter:S=null,capFilter:$=null,addedModelValues:D=[],closeOnSelect:E=!0,allowProviderWildcard:I=!1,variants:T=[]}){let[M,q]=(0,a.useState)(null),z=async()=>{try{let e=await fetch("/api/providers");if(!e.ok)throw Error(`Failed to fetch providers: ${e.status}`);let t=await e.json();q(t.connections||[])}catch(e){console.error("Error fetching providers in ModelSelectModal:",e),q([])}};(0,a.useEffect)(()=>{e&&z()},[e]);let R=(0,a.useMemo)(()=>null!==M?M:F||[],[M,F]),P=(0,a.useMemo)(()=>{let e=R.filter(e=>e&&!1!==e.isActive);return S?e.filter(e=>{let t=p.Q2[e.provider];return(t?.serviceKinds||["llm"]).includes(S)}):e},[R,S]),_=(0,a.useMemo)(()=>(0,x.i)(R),[R]),{getCaps:A}=(0,c.y)(),[L,K]=(0,a.useState)(""),[H,Y]=(0,a.useState)([]),[B,G]=(0,a.useState)([]),[Q,J]=(0,a.useState)([]),[U,X]=(0,a.useState)({}),V=(0,a.useMemo)(()=>{let e=Object.fromEntries(k.map(e=>[e,[]]));for(let t of P)t?.id&&Object.prototype.hasOwnProperty.call(e,t.provider)&&e[t.provider].push(t.id);return e},[P]),Z=V.cursor,ee=V.cline,et=V.clinepass,en=V.zed,ei=w(e,Z,"Cursor"),ea=w(e,ee,"Cline"),eo=w(e,et,"ClinePass"),es=w(e,en,"Zed"),er=async()=>{try{let e=await fetch("/api/combos");if(!e.ok)throw Error(`Failed to fetch combos: ${e.status}`);let t=await e.json();Y(t.combos||[])}catch(e){console.error("Error fetching combos:",e),Y([])}};(0,a.useEffect)(()=>{e&&er()},[e]);let el=async()=>{try{let e=await fetch("/api/provider-nodes");if(!e.ok)throw Error(`Failed to fetch provider nodes: ${e.status}`);let t=await e.json();G(t.nodes||[])}catch(e){console.error("Error fetching provider nodes:",e),G([])}};(0,a.useEffect)(()=>{e&&el()},[e]);let ed=async()=>{try{let e=await fetch("/api/models/custom");if(!e.ok)throw Error(`Failed to fetch custom models: ${e.status}`);let t=await e.json();J(t.models||[])}catch(e){console.error("Error fetching custom models:",e),J([])}};(0,a.useEffect)(()=>{e&&ed()},[e]);let ec=async()=>{try{let e=await fetch("/api/models/disabled");if(!e.ok)throw Error(`Failed to fetch disabled models: ${e.status}`);let t=await e.json();X(t.disabled||{})}catch(e){console.error("Error fetching disabled models:",e),X({})}};(0,a.useEffect)(()=>{e&&ec()},[e]);let eu=(0,a.useMemo)(()=>({...p.zN,...p.IS,...p.nJ,...p.fg}),[]),ep=(0,a.useMemo)(()=>{let e={},t=new Set(["webSearch","webFetch"]),n=new Set(["image","tts","stt","embedding","imageToText","systemone"]),i=new Set(["tts","image","webFetch"]),a=P.map(e=>e.provider),o=(S?v.filter(e=>(p.Q2[e]?.serviceKinds||["llm"]).includes(S)):v).filter(e=>!_.has(e)),s=new Set((B||[]).map(e=>e?.id).filter(Boolean));return[...new Set([...a,...o,...S?[]:Q.map(e=>e.providerAlias).filter(e=>((0,p.mq)(e)||(0,p.gb)(e))&&s.has(e)&&!_.has(e))].filter(e=>!_.has(e)))].sort((e,t)=>{let n=f.indexOf(e),i=f.indexOf(t);return(-1===n?999:n)-(-1===i?999:i)}).forEach(a=>{let o=(0,p.wG)(a),s=eu[a]||{name:a,color:"#666"},r=(0,p.mq)(a)||(0,p.gb)(a);if(S&&t.has(S)){e[a]={name:s.name,alias:o,color:s.color,models:[{id:a,name:s.name,value:a}]};return}if(s.passthroughModels){let t=Object.entries(N).filter(([,e])=>e.startsWith(`${o}/`)).map(([e,t])=>({id:t.replace(`${o}/`,""),name:e,value:t})),r=Q.filter(e=>e.providerAlias===o).map(e=>({id:e.id,name:e.name||e.id,value:`${o}/${e.id}`,kind:(0,u.CP)(e),isCustom:!0})),l=t;if(S&&n.has(S)){let e=r.filter(e=>(0,u.CP)(e)===S);0===(l=[...e,...(0,u.KC)(a).filter(e=>(0,u.CP)(e)===S).map(e=>({id:e.id,name:e.name,value:`${o}/${e.id}`,kind:(0,u.CP)(e)})).filter(t=>!e.some(e=>e.value===t.value))]).length&&i.has(S)&&(s.serviceKinds||["llm"]).includes(S)&&(l=[{id:a,name:s.name,value:o}])}else{let e=r.filter(e=>!(0,u.CP)(e)||"llm"===(0,u.CP)(e)),n=new Set([...t,...e].map(e=>e.value)),i=(0,u.KC)(a).filter(e=>!(0,u.CP)(e)||"llm"===(0,u.CP)(e)).map(e=>({id:e.id,name:e.name,value:`${o}/${e.id}`,kind:(0,u.CP)(e)})).filter(e=>!n.has(e.value));l=[...e,...t.filter(t=>!e.some(e=>e.value===t.value)),...i]}if(l.length>0){let t=B.find(e=>e.id===a),n=t?.name||s.name;e[a]={name:n,alias:o,color:s.color,models:l}}}else if(r){if(S&&n.has(S))return;let t=P.find(e=>e.provider===a)||R.find(e=>e.provider===a),i=B.find(e=>e.id===a),o=i?.name||t?.name||s.name,r=t?.providerSpecificData?.prefix||i?.prefix||a,l=Object.entries(N).filter(([,e])=>e.startsWith(`${a}/`)).map(([e,t])=>({id:t.replace(`${a}/`,""),name:e,value:`${r}/${t.replace(`${a}/`,"")}`})),d=Q.filter(e=>e.providerAlias===a).map(e=>({id:e.id,name:e.name||e.id,value:`${r}/${e.id}`,isCustom:!0})),c=new Set(l.map(e=>e.value)),u=[...l,...d.filter(e=>!c.has(e.value))],p=u.length>0?u:[{id:`__placeholder__${a}`,name:`${r}/model-id`,value:`${r}/model-id`,isPlaceholder:!0}];e[a]={name:o,alias:r,color:s.color,models:p,isCustom:!0,hasModels:u.length>0}}else{var l;let t="cursor"===a?ei:"cline"===a?ea:"clinepass"===a?eo:"zed"===a?es:[],r=t.length>0?t:(0,u.KC)(a),d=new Set(r.map(e=>e.id)),c=r.length>0,p=Object.entries(N).filter(([e,t])=>t.startsWith(`${o}/`)&&(!c||e===t.replace(`${o}/`,""))&&!d.has(t.replace(`${o}/`,""))).map(([e,t])=>({id:t.replace(`${o}/`,""),name:e,value:t,isCustom:!0})),m=new Set(p.map(e=>e.id)),g=Q.filter(e=>e.providerAlias===o&&!d.has(e.id)&&!m.has(e.id)).map(e=>({id:e.id,name:e.name||e.id,value:`${o}/${e.id}`,isCustom:!0})),x=[...r.map(e=>({id:e.id,name:e.name,value:`${o}/${e.id}`,kind:(0,u.CP)(e)})),...p,...g],h=new Set,f=(l=x.filter(e=>!h.has(e.value)&&(h.add(e.value),!0)),S?n.has(S)?l.filter(e=>e.isPlaceholder||(0,u.CP)(e)===S):l:l.filter(e=>e.isPlaceholder||e.isCustom||!(0,u.CP)(e)||"llm"===(0,u.CP)(e)));0===f.length&&S&&i.has(S)&&(s.serviceKinds||["llm"]).includes(S)&&(f=[{id:a,name:s.name,value:o}]),f.length>0&&(e[a]={name:s.name,alias:o,color:s.color,models:f})}}),Object.entries(e).forEach(([t,n])=>{let i=new Set([...U[(0,p.wG)(t)]||[],...U[t]||[]]);0!==i.size&&(n.models=n.models.filter(e=>!i.has(e.id)),0===n.models.length&&delete e[t])}),Object.entries(e).forEach(([t,n])=>{let i=P.filter(e=>e.provider===t),a=[];for(let e of i)Array.isArray(e.providerSpecificData?.enabledModels)&&e.providerSpecificData.enabledModels.length>0&&a.push(...e.providerSpecificData.enabledModels);if(a.length>0){let i=new Set(a),o=n.alias||(0,p.wG)(t)||t;n.models=n.models.filter(e=>i.has(e.id)||i.has(e.value)||i.has(`${o}/${e.id}`)||e.value&&i.has(e.value.replace(`${o}/`,""))),0===n.models.length&&delete e[t]}}),e},[P,N,eu,B,Q,U,S,R,_,ei,ea,eo,es]),em=(0,a.useMemo)(()=>m(L),[L]),eg=(0,a.useMemo)(()=>S||$?[]:em.isEmpty?H:H.filter(e=>g(e.name,em)),[H,em,S,$]),ex=(0,a.useMemo)(()=>{if(S||$)return[];let e=[];return(Array.isArray(T)?e=T.map(e=>"string"==typeof e?{name:e,value:e}:{name:e?.name,value:e?.name||e?.model,model:e?.model}):T&&"object"==typeof T&&(e=Object.entries(T).map(([e,t])=>({name:e,value:e,model:t?.model}))),e=e.filter(e=>e&&"string"==typeof e.name&&e.name.trim()),em.isEmpty)?e:e.filter(e=>g(e.name,em))},[T,em,S,$]),eh=(0,a.useMemo)(()=>{let e={};return Object.entries(ep).forEach(([t,n])=>{var i;let a=n.models;if(!$||0!==(a=a.filter(e=>A(e.value)?.[$]===!0)).length){if(!em.isEmpty){let e=g(n.name,em),i=I&&(n.alias&&g(n.alias,em)||t&&g(t,em)||g(`${n.alias}/*`,em));if(0===(a=a.filter(t=>!!g(t,em)||(!!e||!!i)&&(!(em.negativeTerms.length>0)||g(t,{...em,positiveTerms:[]})))).length)return}e[t]={...n,models:[...(i=a).filter(e=>D.includes(e.value)).sort((e,t)=>e.name.localeCompare(t.name)),...i.filter(e=>!D.includes(e.value)).sort((e,t)=>e.name.localeCompare(t.name))]}}}),e},[ep,em,D,I]),ef=(0,a.useMemo)(()=>{let e=[];return Object.values(eh).forEach(t=>{t.models.forEach(t=>{t.isPlaceholder||e.push(t)})}),e},[eh]),ev=(0,a.useMemo)(()=>ef.filter(e=>!D.includes(e.value)),[ef,D]),ek=(0,a.useMemo)(()=>ef.filter(e=>D.includes(e.value)),[ef,D]),ew=e=>{let i=e?.value||e?.name||e;D.includes(i)&&o?o(e):n(e),E&&(t(),K(""))};return(0,i.jsxs)(r.default,{isOpen:e,onClose:()=>{t(),K("")},title:C,size:j,className:"p-4!",footer:null,children:[(0,i.jsxs)("div",{className:"mb-3 flex items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-[11px] text-text-muted",children:[(0,i.jsx)("span",{className:"material-symbols-outlined shrink-0 text-text-subtle",style:{fontSize:"14px"},children:"info"}),(0,i.jsx)("span",{className:"font-mono tracking-wide",children:I?"Click to add/remove models, or click a provider name for a wildcard (e.g. provider/*). Search supports exclusions (e.g. claude -haiku) & RegEx (/pattern/).":"Click to select, click again to remove. Search supports exclusions (e.g. claude -haiku) & RegEx (/pattern/)."})]}),(0,i.jsxs)("div",{className:"mb-3 space-y-2",children:[(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)("span",{className:"material-symbols-outlined absolute left-3 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,i.jsx)("input",{type:"text",placeholder:(0,h.Tl)(I?"Search models (e.g. claude -haiku, oc/*, /regex/)…":"Search models (e.g. claude -haiku, !embed, /regex/)…"),value:L,onChange:e=>K(e.target.value),className:"w-full rounded-xl border border-border bg-surface py-2.5 pl-10 pr-20 text-sm text-text-main outline-none transition-colors placeholder:text-text-muted focus:border-text-subtle focus:ring-1 focus:ring-text-subtle/40"}),(0,i.jsxs)("div",{className:"absolute right-2.5 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[em.isRegex&&(0,i.jsx)("span",{className:"rounded-md bg-surface-2 px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider text-primary",children:"regex"}),em.negativeTerms.length>0&&!em.isRegex&&(0,i.jsx)("span",{className:"rounded-md bg-surface-2 px-1.5 py-0.5 font-mono text-[10px] font-medium uppercase tracking-wider text-amber-600",children:"!exclude"}),L&&(0,i.jsx)("button",{type:"button",onClick:()=>K(""),className:"cursor-pointer rounded-md p-1 text-text-muted transition-colors hover:bg-surface-2 hover:text-text-main",title:"Clear search",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[16px] leading-none",children:"close"})})]})]}),!E&&ef.length>0&&(0,i.jsxs)("div",{className:"flex items-center justify-between px-1 font-mono text-[11px] uppercase tracking-wider text-text-muted",children:[(0,i.jsxs)("span",{className:"flex items-center gap-2",children:[(0,i.jsxs)("span",{children:[ef.length," model"]}),D.length>0&&(0,i.jsxs)("span",{className:"text-primary font-medium",children:["(",D.length," selected)"]})]}),(0,i.jsxs)("div",{className:"flex items-center gap-1.5",children:[ev.length>0&&(0,i.jsxs)("button",{type:"button",onClick:()=>{0!==ev.length&&(s?s(ev):ev.forEach(e=>n(e)))},className:"rounded-lg border border-border bg-surface px-2.5 py-1 text-[11px] font-medium text-text-main transition-colors hover:border-text-subtle hover:bg-surface-2 cursor-pointer",title:(0,h.Tl)("Select all filtered models"),children:[(0,h.Tl)("Select All")," (",ev.length,")"]}),ek.length>0&&(0,i.jsxs)("button",{type:"button",onClick:()=>{0!==ek.length&&(W?W(ek):o&&ek.forEach(e=>o(e)))},className:"rounded-lg border border-border bg-surface px-2.5 py-1 text-[11px] font-medium text-text-muted transition-colors hover:text-text-main hover:bg-surface-2 cursor-pointer",title:(0,h.Tl)("Remove all selections"),children:[(0,h.Tl)("Clear")," (",ek.length,")"]})]})]})]}),(0,i.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[eg.length>0&&(0,i.jsxs)("div",{children:[(0,i.jsx)(b,{icon:"layers",title:"Combos",count:`${eg.length} item`}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:eg.map(e=>{let t=y===e.name;return(0,i.jsxs)("button",{onClick:()=>ew({id:e.name,name:e.name,value:e.name}),className:`
|
|
2
|
-
rounded-xl border px-2.5 py-1.5 text-xs font-medium transition-all hover:cursor-pointer flex items-center gap-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40
|
|
3
|
-
${t?"bg-primary text-white border-primary":D.includes(e.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
|
-
`,children:[D.includes(e.name)&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),e.name]},e.id)})})]}),ex.length>0&&(0,i.jsxs)("div",{children:[(0,i.jsx)(b,{icon:"skull",title:"Injected Model",count:`${ex.length} item`}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:ex.map(e=>{let t=y===e.value;return(0,i.jsxs)("button",{onClick:()=>ew({id:e.value,name:e.name,value:e.value}),title:(0,h.Tl)("Custom variant — this name is backed by a model + prompt"),className:`
|
|
5
|
-
rounded-xl border px-2.5 py-1.5 text-xs font-medium transition-all hover:cursor-pointer flex items-center gap-1.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40
|
|
6
|
-
${t?"bg-primary text-white border-primary":D.includes(e.value)?"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"}
|
|
7
|
-
`,children:[D.includes(e.value)&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),e.name,(0,i.jsx)("span",{className:"shrink-0 rounded-full bg-surface-2 px-1.5 py-0.5 text-[9px] font-mono uppercase tracking-wider text-text-muted",children:"variant"})]},e.value)})})]}),Object.entries(eh).map(([e,t])=>{let n=`${t.alias||e}/*`,a=I&&D.includes(n);return(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,i.jsx)("span",{className:"flex h-6 w-6 shrink-0 items-center justify-center rounded-lg bg-surface-2",children:(0,i.jsx)(l.A,{src:`/providers/${e}.png`,alt:t.name,size:14,fallbackText:(t.name||e).slice(0,2).toUpperCase(),fallbackColor:t.color})}),I?(0,i.jsxs)("button",{type:"button",onClick:()=>ew({value:n,name:n}),title:a?`Click to remove wildcard ${n}`:`Click to allow all models from ${t.name} (${n})`,className:`inline-flex min-w-0 items-center gap-1.5 rounded-lg px-2 py-1 text-[13px] font-medium transition-all cursor-pointer border ${a?"bg-primary text-white border-primary shadow-2xs hover:bg-primary-hover":"text-primary border-transparent hover:bg-primary/10 hover:border-primary/20"}`,children:[a&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none text-[12px]",children:"check"}),(0,i.jsx)("span",{className:"truncate font-display font-semibold tracking-tight",children:t.name}),(0,i.jsx)("span",{className:`mt-0.5 shrink-0 rounded-full px-1.5 py-0.5 font-mono text-[9px] uppercase tracking-wider ${a?"bg-white/20 text-white":"text-text-muted bg-surface-2"}`,children:n})]}):(0,i.jsx)("span",{className:"truncate font-display text-[13px] font-semibold tracking-tight text-text-main",children:t.name}),(0,i.jsx)("span",{className:"ml-auto shrink-0 rounded-full bg-surface-2 px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-text-muted",children:t.models.length})]}),(0,i.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.models.map(e=>{let t=y===e.value,n=e.isPlaceholder;return(0,i.jsx)("button",{onClick:()=>ew(e),title:n?"Select to pre-fill, then edit model ID in the input":void 0,className:`
|
|
8
|
-
rounded-xl border px-2.5 py-1.5 text-xs font-medium transition-all hover:cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40
|
|
9
|
-
${n?"border-dashed border-border text-text-muted hover:border-primary/50 hover:text-primary bg-surface italic":t?"bg-primary text-white border-primary":D.includes(e.value)?"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"}
|
|
10
|
-
`,children:(0,i.jsxs)("span",{className:"flex items-center gap-1.5",children:[D.includes(e.value)&&!n&&(0,i.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"10px"},children:"check"}),n?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"edit"}),e.name]}):e.isCustom?(0,i.jsxs)(i.Fragment,{children:[e.name,(0,i.jsx)("span",{className:"shrink-0 rounded-full bg-surface-2 px-1.5 py-0.5 text-[9px] font-mono uppercase tracking-wider text-text-muted",children:"custom"}),(0,i.jsx)(d.default,{caps:A(e.value)})]}):(0,i.jsxs)(i.Fragment,{children:[e.name,(0,i.jsx)(d.default,{caps:A(e.value)})]})]})},e.value)})})]},e)}),0===Object.keys(eh).length&&0===eg.length&&0===ex.length&&(0,i.jsxs)("div",{className:"rounded-xl border border-dashed border-border px-4 py-10 text-center",children:[(0,i.jsx)("span",{className:"mx-auto mb-3 flex h-10 w-10 items-center justify-center rounded-xl bg-surface-2",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[20px] text-text-muted",children:"search_off"})}),(0,i.jsx)("p",{className:"font-mono text-[11px] uppercase tracking-wider text-text-muted",children:"No models found"}),(0,i.jsx)("p",{className:"mt-1 text-xs text-text-subtle",children:"Try changing your keywords or exclusions."})]})]})]})}O.propTypes={isOpen:s().bool.isRequired,onClose:s().func.isRequired,onSelect:s().func.isRequired,onDeselect:s().func,onSelectBatch:s().func,onDeselectBatch:s().func,selectedModel:s().string,activeProviders:s().arrayOf(s().shape({provider:s().string.isRequired})),title:s().string,size:s().string,modelAliases:s().object,kindFilter:s().string,addedModelValues:s().arrayOf(s().string),closeOnSelect:s().bool,allowProviderWildcard:s().bool}},29366:(e,t,n)=>{n.d(t,{default:()=>s});var i=n(95155),a=n(28777),o=n(97677);function s({caps:e,className:t="",colorOverride:n,size:r=16}){if(!e)return null;let l=Object.keys(a.bs).filter(t=>e[t]);return 0===l.length?null:(0,i.jsx)("span",{className:`inline-flex items-center gap-0.5 ${t}`,children:l.map(e=>(0,i.jsx)(o.default,{text:`${a.bs[e].label} - ${a.bs[e].desc}`,children:(0,i.jsx)("span",{className:`material-symbols-outlined leading-none cursor-help ${n||a.bs[e].color}`,style:{fontSize:`${r}px`},children:a.bs[e].icon})},e))})}},39403:(e,t,n)=>{n.d(t,{A:()=>l});var i=n(95155),a=n(12115),o=n(14051),s=n.n(o),r=n(31474);function l({options:e=[],value:t,onChange:n,placeholder:o="Select an option",disabled:s=!1,className:d,buttonClassName:c,menuClassName:u,align:p="left"}){let[m,g]=(0,a.useState)(!1),x=(0,a.useRef)(null);(0,a.useEffect)(()=>{if(!m)return;let e=e=>{x.current&&!x.current.contains(e.target)&&g(!1)},t=e=>{"Escape"===e.key&&g(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[m]);let h=e.find(e=>String(e.value)===String(t)),f=h?.label,v=h?.icon;return(0,i.jsxs)("div",{className:(0,r.cn)("relative",d),ref:x,children:[(0,i.jsxs)("button",{type:"button",onClick:()=>!s&&g(e=>!e),"aria-haspopup":"listbox","aria-expanded":m,disabled:s,className:(0,r.cn)("flex w-full items-center gap-2 rounded-lg border border-border bg-surface-2 px-3 py-2 text-left font-display text-sm text-text-main outline-none transition-colors","hover:border-text-subtle focus-visible:ring-2 focus-visible:ring-text-subtle/60","disabled:cursor-not-allowed disabled:opacity-50",c),children:[v&&(0,i.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:v}),(0,i.jsx)("span",{className:(0,r.cn)("flex-1 truncate",!f&&"text-text-subtle"),children:f||o}),(0,i.jsx)("span",{className:(0,r.cn)("material-symbols-outlined text-[16px] text-text-muted transition-transform duration-150",m&&"rotate-180"),children:"expand_more"})]}),m&&(0,i.jsx)("div",{role:"listbox",className:(0,r.cn)("absolute z-30 mt-2 overflow-hidden rounded-xl border border-border bg-surface p-1 shadow-[var(--shadow-elevated)]","right"===p?"right-0":"left-0",u),children:e.map(e=>{let a=String(e.value)===String(t),o=s||e.disabled;return(0,i.jsxs)("button",{type:"button",role:"option","aria-selected":a,disabled:o,onClick:()=>{o||(n(e.value),g(!1))},className:(0,r.cn)("flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm transition-colors",o?"cursor-not-allowed opacity-40":a?"bg-surface-2 text-text-main":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[e.icon&&(0,i.jsx)("span",{className:(0,r.cn)("material-symbols-outlined text-[18px]",a?"text-text-main":"text-text-subtle"),children:e.icon}),(0,i.jsx)("span",{className:"flex-1 font-display",children:e.label}),e.hint&&(0,i.jsx)("span",{className:"text-[10px] uppercase tracking-wider text-text-subtle",children:e.hint}),a&&(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-main",children:"check"})]},String(e.value))})})]})}l.propTypes={options:s().arrayOf(s().shape({value:s().oneOfType([s().string,s().number]).isRequired,label:s().string.isRequired,disabled:s().bool,hint:s().string,icon:s().string})),value:s().oneOfType([s().string,s().number]),onChange:s().func.isRequired,placeholder:s().string,disabled:s().bool,className:s().string,buttonClassName:s().string,menuClassName:s().string,align:s().oneOf(["left","right"])}},57250:(e,t,n)=>{n.d(t,{A:()=>l});var i=n(95155),a=n(12115),o=n(14051),s=n.n(o),r=n(8247);function l({src:e,providerId:t,alt:n,size:o=32,className:s="",fallbackText:d="?",fallbackColor:c}){let u=function(e,t){if(t)return(0,r.HY)(t);if(!e)return null;let n=String(e).match(/^\/providers\/([^/]+)\.png$/i);return n?(0,r.HY)(n[1]):e}(e,t),[p,m]=(0,a.useState)(!1);return!u||p?(0,i.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${s}`.trim(),style:{width:o,height:o,color:c,fontSize:Math.max(10,Math.floor(.38*o))},children:d}):(0,i.jsx)("img",{src:u,alt:n,width:o,height:o,className:s,loading:"lazy",decoding:"async",onError:()=>{let e=u.match(/^\/providers\/([^/]+)\.png$/i);e&&(0,r.Kw)(e[1]),t&&(0,r.Kw)(t),m(!0)}})}l.propTypes={src:s().string,providerId:s().string,alt:s().string,size:s().number,className:s().string,fallbackText:s().string,fallbackColor:s().string}},67899:(e,t,n)=>{n.d(t,{Q5:()=>function e(t,n=null,i=null,a=0){if(!t?.length||a>6)return null;let o=t.map(t=>{if(!t.includes("/")&&n?.[t])return e(n[t],n,i,a+1)??i?.(t)??k(null,t);let o=t.indexOf("/"),s=k(-1===o?null:t.slice(0,o),-1===o?t:t.slice(o+1)),r=i?.(t);return r?{...s,...r}:s}),s=o[0];return{vision:o.some(e=>e.vision),pdf:o.some(e=>e.pdf),audioInput:o.some(e=>e.audioInput),videoInput:o.some(e=>e.videoInput),imageOutput:o.some(e=>e.imageOutput),audioOutput:o.some(e=>e.audioOutput),search:o.some(e=>e.search),tools:o.every(e=>e.tools),reasoning:s.reasoning,thinkingFormat:s.thinkingFormat,thinkingCanDisable:s.thinkingCanDisable,thinkingRange:s.thinkingRange,contextWindow:Math.min(...o.map(e=>e.contextWindow)),maxOutput:Math.max(...o.map(e=>e.maxOutput))}},nl:()=>k});var i=n(62630);let a="[-_/:.]",o=RegExp(`(^|${a})(image|img)(${a}|$)|stable-image|gen[0-9]_image|nanobanana|imagine|t2v|i2v|flux|dall|sdxl|diffusion|embed|rerank|guard|moderation|tts|stt|whisper|voice|speech|audio`,"i"),s=RegExp(`(^|${a})(vision|vl|vlm|multimodal|omni|visual)(${a}|$)|[0-9]\\.[0-9]+v(${a}|$)|(^|${a})glm-[0-9]+v(${a}|$)|(^|[-_/:.])(llava|pixtral|internvl|cogvlm|minicpm-v|moondream|idefics|fuyu)`,"i"),r={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,thinkingEffortSupported:!1,contextWindow:2e5,maxOutput:64e3},l={"sensenova-6.8-flash-lite":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"claude-fable-5-1":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"claude-opus-5.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5.5-thinking-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-sonnet-5.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-opus-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-high":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-medium":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5-5-low":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingCanDisable:!1,forcedToolChoice:!1},"claude-opus-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-5-thinking-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-7":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.8-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-8-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4-6":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-high":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-medium":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5-5-low":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3,thinkingOffType:"between_tools",forcedToolChoice:!1},"claude-sonnet-5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-5-thinking-agentic":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"zai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"glm-4.6v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3,maxOutput:32768},"glm-4.5v":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:64e3,maxOutput:16384},"glm-5.2":{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"glm-5.3-flash-free":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3},"deepseek-v4-flash-vision-exp":{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},"deepseek-flash":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3,maxOutput:64e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"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},"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},"union-alpha":{vision:!0,contextWindow:262144,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},"big-pickle":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:32e3},"exo-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"fledge-alpha-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072},"longcat-2.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.0-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"longcat-2.5-preview-free":{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072},"north-mini-code-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3,maxOutput:64e3},"ring-2.6-1t-free":{reasoning:!0,thinkingFormat:"openai",contextWindow:262e3,maxOutput:66e3},"x-preview-f-free":{vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1e6,maxOutput:131072}},d={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},c={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:372e3,maxOutput:128e3},u={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},p={...u,contextWindow:872e3},m={vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:128e3},g={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}},"opencode-go":{"glm-5.3-flash":{vision:!0,videoInput:!0,pdf:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:131072},"claude-haiku-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},github:{"claude-haiku-5.5":{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},opencode:{"mimo-v2.6-flash-free":{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1048576,maxOutput:131072},"deepseek-v4.1-flash-free":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:33e4,maxOutput:128e3}},commandcode:{"claude-haiku-5-5":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"commandcode",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},codex:{"gpt-6-astra":{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.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-luna":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:272e3,maxOutput:128e3},"gpt-6-astra[1m]":p,"gpt-6-sol[1m]":p,"gpt-6-luna[1m]":p,"gpt-5.6-sol[1m]":p,"gpt-5.6-terra[1m]":p,"gpt-5.6-luna[1m]":p,"gpt-5.6-sol":c,"gpt-5.6-sol-review":c,"gpt-5.6-terra":u,"gpt-5.6-terra-review":u,"gpt-5.6-luna":u,"gpt-5.6-luna-review":u},kiro:{"gpt-5.6-sol":d,"gpt-5.6-terra":d,"gpt-5.6-luna":d,"gpt-5.6-sol-thinking":d,"gpt-5.6-terra-thinking":d,"gpt-5.6-luna-thinking":d,"gpt-5.6-sol-agentic":d,"gpt-5.6-terra-agentic":d,"gpt-5.6-luna-agentic":d,"gpt-5.6-sol-thinking-agentic":d,"gpt-5.6-terra-thinking-agentic":d,"gpt-5.6-luna-thinking-agentic":d},"devin-cli":{"gpt-5.4-high":m,"gpt-5.4-medium":m,"gpt-5.4-low":m,"gpt-5.5-xhigh":m,"gpt-5.5-high":m,"gpt-5.5-medium":m,"gpt-5.5-low":m},"codebuddy-cn":{"glm-5.2":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"glm-5.1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:524288},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-flash":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3},hy3:{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"hy4-preview":{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:131072},"glm-5.3-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:131072},"kimi-k3-1":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:1048576},"kimi-k2.8-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:3e5,maxOutput:131072},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216},"deepseek-v4.1-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!0,contextWindow:1e6,maxOutput:393216}},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}},ollama:{"deepseek-v4.1-flash:cloud":{vision:!0,reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},"minimax-code":{"MiniMax-M3.1-Flash-Preview":{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:128e3},"MiniMax-M3":{vision:!0,reasoning:!0,thinkingFormat:"claude-adaptive",contextWindow:512e3,maxOutput:128e3},"MiniMax-M2.7":{reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:128e3},"MiniMax-M2.7-highspeed":{reasoning:!0,thinkingFormat:"claude-adaptive",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:128e3}},nous:{"meituan/longcat-2.0:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:1048756,maxOutput:262144},"meituan/longcat-2.5-preview:free":{tools:!0,vision:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:1048576,maxOutput:131072},"stepfun/step-5-preview:free":{tools:!0,vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:1e6,maxOutput:64e3},"upstage/solar-mini4:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:524288,maxOutput:131072},"stepfun/step-3.7-flash:free":{tools:!0,vision:!0,videoInput:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:256e3},"poolside/laguna-s-2.1:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:131072},"poolside/laguna-xs-2.1:free":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:32768},"stealth/missingno":{tools:!0,reasoning:!0,thinkingFormat:"nous",contextWindow:262144,maxOutput:131072}}};g.qoder={auto:{contextWindow:2e5,maxOutput:32768},efficient:{contextWindow:2e5,maxOutput:32768},lite:{contextWindow:2e5,maxOutput:32768},ultimate:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},performance:{vision:!0,contextWindow:2e5,maxOutput:65536},qmodel_38max:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},qmodel_latest:{vision:!0,contextWindow:2e5,maxOutput:65536},qmodel:{vision:!0,contextWindow:2e5,maxOutput:65536},qfmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},kmodel_latest:{vision:!0,contextWindow:2e5,maxOutput:65536},kmodel:{vision:!0,contextWindow:2e5,maxOutput:65536},gmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},gfmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},dmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},dfmodel:{vision:!0,reasoning:!0,contextWindow:2e5,maxOutput:65536},mmodel:{vision:!0,contextWindow:2e5,maxOutput:65536},smodel:{vision:!0,reasoning:!0,contextWindow:18e4,maxOutput:65536},cmodel:{vision:!0,reasoning:!0,contextWindow:18e4,maxOutput:65536}},g["qoder-cn"]=g.qoder,g.cx=g.codex,g.dv=g["devin-cli"],g.devin=g["devin-cli"],g["minimax-code-global"]=g["minimax-code"];let x=[{pattern:"*claude*opus-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*sonnet-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*opus-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku-5*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*haiku-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet-4*",caps:{vision:!0,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{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,pdf:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,pdf:!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,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3.8*",caps:{vision:!0,audioInput:!0,videoInput:!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,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!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,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.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:5e5,maxOutput:5e5}},{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",thinkingEffortSupported:!0,thinkingCanDisable:!1,contextWindow:1e6,maxOutput:128e3}},{pattern:"*glm-5.2*",caps:{reasoning:!0,thinkingFormat:"zai",thinkingEffortSupported:!0,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:{vision:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,contextWindow:1e6,maxOutput:128e3}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingEffortSupported:!0,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*v2.6*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,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:"*muse*spark*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:1048576,maxOutput:131072}},{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:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}],h=["vision","pdf","audioInput","videoInput"];function f(e,t,n){let i={...r,...e},a="u"<typeof globalThis?null:globalThis.__krCatalogSource||null;if(a){let e=a.getModalities(t,n);if(e)for(let t of h)!0===e[t]&&(i[t]=!0);let o=a.getLimits(t,n);o&&(o.contextWindow>0&&(i.contextWindow=o.contextWindow),o.maxOutput>0&&(i.maxOutput=o.maxOutput))}return!i.vision&&function(e){if(!e)return!1;let t=String(e).toLowerCase();return!o.test(t)&&s.test(t)}(n)&&(i.vision=!0),i}let v=new Set(["deepseek/deepseek-v4-pro","deepseek/deepseek-v4-flash","deepseek/deepseek-v4-flash-fast","zai-org/glm-5.3","zai-org/glm-5.2","zai-org/glm-5.2-fast","zai-org/glm-5.1","zai-org/glm-5","minimaxai/minimax-m2.7","minimax/minimax-m2.7-free","minimaxai/minimax-m2.5","xiaomi/mimo-v2.5-pro","qwen/qwen3.6-max-preview","qwen/qwen3.7-max","meituan/longcat-2.0:free","stepfun/step-3.5-flash","tencent/hy4-preview","tencent/hy3","tencent/hy3-paid","nvidia/nemotron-3-ultra-550b-a55b","poolside/laguna-s-2.1-free","inclusionai/ling-3.0-flash-free","inclusionai/ling-3.0-flash-sante:free"]);function k(e,t){if(!t)return{...r};let n=t.includes("/")?t.split("/").pop():t;if("commandcode"===e||"cmc"===e){let e=g.commandcode;return e?.[t]?{...r,...e[t]}:e?.[n]?{...r,...e[n]}:{...r,reasoning:!0,thinkingFormat:"commandcode",thinkingEffortSupported:!0,vision:!function(e){let t=String(e||"").toLowerCase();if(v.has(t))return!0;for(let e of v){let n=e.includes("/")?e.slice(e.lastIndexOf("/")+1):e;if(t===n||t.endsWith("/"+n))return!0}return!1}(t),contextWindow:1e6,maxOutput:384e3}}if(e){let i=g[e];if(i?.[t])return{...r,...i[t]};if(i?.[n])return{...r,...i[n]}}if(l[n])return f(l[n],e,t);if(l[t])return f(l[t],e,t);for(let{pattern:a,caps:o}of x)if((0,i.gH)(a,n)||(0,i.gH)(a,t))return f(o,e,t);return f(null,e,t)}},70217:(e,t,n)=>{function i(e,t){return!1===e?"default":"active"===t||"success"===t?"success":"error"===t||"expired"===t||"unavailable"===t?"error":"default"}function a(e){let t={};for(let n of e||[])n?.provider&&(t[n.provider]||(t[n.provider]={total:0,active:0}),t[n.provider].total+=1,!1!==n.isActive&&(t[n.provider].active+=1));let n=new Set;for(let[e,i]of Object.entries(t))i.total>0&&0===i.active&&n.add(e);return n}n.d(t,{g:()=>i,i:()=>a})},81127:(e,t,n)=>{n.d(t,{ConfirmModal:()=>d,default:()=>l});var i=n(95155),a=n(12115),o=n(31474),s=n(92542),r=n(97677);function l({isOpen:e,onClose:t,title:n,children:s,footer:d,size:c="md",closeOnOverlay:u=!0,showTrafficLights:p=!0,className:m}){return((0,a.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,a.useEffect)(()=>{let n=n=>{"Escape"===n.key&&e&&t()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),e)?(0,i.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,i.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:u?t:void 0}),(0,i.jsxs)("div",{className:(0,o.cn)("relative w-full bg-surface","border border-border-subtle","rounded-[14px] shadow-[var(--shadow-elev)]","fade-in",{sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"}[c],m),children:[(n||p)&&(0,i.jsxs)("div",{className:"flex items-center justify-between p-2 border-b border-border-subtle",children:[(0,i.jsxs)("div",{className:"flex items-center",children:[p&&(0,i.jsxs)("div",{className:"hidden md:flex items-center gap-2 mr-4 ml-2",children:[(0,i.jsx)(r.default,{text:"Close",position:"top",color:"#FF5F56",children:(0,i.jsx)("button",{onClick:t,"aria-label":"Close",title:"Close",className:"w-4 h-4 rounded-full bg-[#FF5F56] hover:brightness-90 transition-all cursor-pointer flex items-center justify-center group/dot",children:(0,i.jsx)("span",{className:"text-[9px] font-bold text-white opacity-0 group-hover/dot:opacity-100 transition-opacity leading-none",children:"✕"})})}),(0,i.jsx)("div",{className:"w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed"}),(0,i.jsx)("div",{className:"w-4 h-4 rounded-full bg-[#3a3a3a]/20 dark:bg-white/15 cursor-not-allowed"})]}),n&&(0,i.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:n})]}),(0,i.jsx)("button",{onClick:t,"aria-label":"Close",className:"md:hidden p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,i.jsx)("div",{className:"p-6 max-h-[calc(85vh-100px)] overflow-y-auto custom-scrollbar",children:s}),d&&(0,i.jsx)("div",{className:"flex items-center justify-end gap-3 p-6 border-t border-border-subtle",children:d})]})]}):null}function d({isOpen:e,onClose:t,onConfirm:n,title:a="Confirm",message:o,confirmText:r="Confirm",cancelText:c="Cancel",variant:u="danger",loading:p=!1}){return(0,i.jsx)(l,{isOpen:e,onClose:t,title:a,size:"sm",footer:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.default,{variant:"ghost",onClick:t,disabled:p,children:c}),(0,i.jsx)(s.default,{variant:u,onClick:n,loading:p,children:r})]}),children:(0,i.jsx)("p",{className:"text-text-muted",children:o})})}},92542:(e,t,n)=>{n.d(t,{default:()=>r});var i=n(95155),a=n(31474);let o={primary:"bg-[#1a1a1a] hover:bg-[#000] text-[#f7f5ef] shadow-sm disabled:bg-surface-3 disabled:text-text-muted",secondary:"bg-surface-2 hover:bg-surface-3 text-text-main border border-border disabled:opacity-50",outline:"border border-border text-text-main hover:bg-surface-2 hover:border-text-subtle",ghost:"text-text-muted hover:bg-surface-2 hover:text-text-main",danger:"bg-red-600 hover:bg-red-700 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted",success:"bg-green-700 hover:bg-green-800 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted"},s={xs:"h-6 px-2.5 text-[11px] rounded-[4px] gap-1.5",sm:"h-7 px-3 text-xs rounded-[5px]",md:"h-9 px-4 text-sm rounded-md",lg:"h-11 px-6 text-sm rounded-md"};function r({children:e,variant:t="primary",size:n="md",icon:l,iconRight:d,disabled:c=!1,loading:u=!1,fullWidth:p=!1,className:m,...g}){return(0,i.jsxs)("button",{className:(0,a.cn)("inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer","active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100",o[t],s[n],p&&"w-full",m),disabled:c||u,...g,children:[u?(0,i.jsx)("span",{className:(0,a.cn)("material-symbols-outlined animate-spin","xs"===n?"text-[14px]":"text-[18px]"),children:"progress_activity"}):l?(0,i.jsx)("span",{className:(0,a.cn)("material-symbols-outlined","xs"===n?"text-[14px]":"text-[18px]"),children:l}):null,e,d&&!u&&(0,i.jsx)("span",{className:(0,a.cn)("material-symbols-outlined","xs"===n?"text-[14px]":"text-[18px]"),children:d})]})}},97677:(e,t,n)=>{n.d(t,{default:()=>s});var i=n(95155),a=n(12115),o=n(47650);function s({text:e,children:t,position:n="top",color:r}){let l=(0,a.useRef)(null),[d,c]=(0,a.useState)(null);return(0,i.jsxs)("div",{ref:l,className:"relative inline-flex",onMouseEnter:()=>{let e=l.current?.getBoundingClientRect();if(!e)return;let t=e.left+e.width/2,i=e.top+e.height/2;c({position:"fixed",..."bottom"===n?{top:e.bottom+6,left:t,transform:"translateX(-50%)"}:"left"===n?{right:window.innerWidth-e.left+6,top:i,transform:"translateY(-50%)"}:"right"===n?{left:e.right+6,top:i,transform:"translateY(-50%)"}:{bottom:window.innerHeight-e.top+6,left:t,transform:"translateX(-50%)"}})},onMouseLeave:()=>c(null),children:[t,d&&(0,o.createPortal)((0,i.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 ${r?"":"bg-gray-900"}`,style:{...d,...r?{backgroundColor:r}:{}},children:e}),document.body)]})}},98542:(e,t,n)=>{n.d(t,{default:()=>o});var i=n(95155),a=n(31474);function o({checked:e=!1,onChange:t,label:n,description:s,disabled:r=!1,size:l="md",className:d}){let c={sm:{track:"w-8 h-4",thumb:"size-3",translate:"translate-x-4"},md:{track:"w-11 h-6",thumb:"size-5",translate:"translate-x-5"},lg:{track:"w-14 h-7",thumb:"size-6",translate:"translate-x-7"}};return(0,i.jsxs)("div",{className:(0,a.cn)("flex items-center gap-3",r&&"opacity-50 cursor-not-allowed",d),children:[(0,i.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:r,onClick:()=>{!r&&t&&t(!e)},className:(0,a.cn)("relative inline-flex shrink-0 cursor-pointer rounded-full","transition-colors duration-200 ease-in-out","focus:outline-none focus:ring-2 focus:ring-text-subtle/50",e?"bg-[#1a1a1a]":"bg-surface-3",c[l].track,r&&"cursor-not-allowed"),children:(0,i.jsx)("span",{className:(0,a.cn)("pointer-events-none inline-block rounded-full bg-white shadow-sm","transform transition duration-200 ease-in-out",e?c[l].translate:"translate-x-0.5",c[l].thumb,"mt-0.5")})}),(n||s)&&(0,i.jsxs)("div",{className:"flex flex-col",children:[n&&(0,i.jsx)("span",{className:"text-sm font-medium text-text-main",children:n}),s&&(0,i.jsx)("span",{className:"text-xs text-text-muted",children:s})]})]})}}}]);
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5496],{15536:(e,t,s)=>{"use strict";s.d(t,{Cp:()=>i,Hx:()=>l,Iv:()=>d,Nv:()=>m,RL:()=>o,ev:()=>x,fl:()=>r,hT:()=>a,oX:()=>n,t6:()=>c});let a=["zh-CN","zh-TW"],n=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}],l=2e3,i=3e5,r=5e3,c=5,o=1e4,d=5e3,x=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"},{id:"wenyan-lite",label:"文 Lite",desc:"Classical Chinese, light compression",wenyan:!0},{id:"wenyan",label:"文 Full",desc:"Maximum 文言文, 80-90% reduction",wenyan:!0},{id:"wenyan-ultra",label:"文 Ultra",desc:"Extreme classical compression",wenyan:!0}],m=[{id:"lite",label:"Lite",desc:"Build asked, name lazier option"},{id:"full",label:"Full",desc:"Ladder enforced: stdlib/native first"},{id:"ultra",label:"Ultra",desc:"YAGNI extremist, deletion first"}]},26173:(e,t,s)=>{"use strict";s.d(t,{default:()=>j});var a=s(95155),n=s(12115),l=s(14051),i=s.n(l),r=s(35497),c=s(11059),o=s(15536);async function d(e){if(!e)return!1;try{return(await fetch(`${e}/api/health`,{mode:"cors",cache:"no-store",signal:AbortSignal.timeout(o.Iv)})).ok}catch{return!1}}async function x(...e){let t=e.filter(Boolean).map(d);return!!t.length&&new Promise(e=>{let s=t.length;t.forEach(t=>t.then(t=>{t?e(!0):0==--s&&e(!1)}))})}var m=s(72767);function u({status:e,className:t=""}){return(0,a.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,a.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function p({message:e,action:t,title:s="Security notice"}){return(0,a.jsxs)("div",{className:"flex items-center gap-3 rounded-xl border border-amber-500/25 bg-amber-500/[0.07] p-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-amber-500/15 text-amber-600 dark:text-amber-400",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[19px]",children:"warning"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"text-[13px] font-semibold text-amber-700 dark:text-amber-300",children:s}),(0,a.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-amber-700/80 dark:text-amber-400/80",children:e})]}),t&&(0,a.jsx)("a",{href:t.href,className:"shrink-0 rounded-lg bg-amber-500/15 px-3 py-1.5 font-mono text-[11px] font-medium uppercase tracking-wider text-amber-700 transition-colors hover:bg-amber-500/25 dark:text-amber-300",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}function h({apiKey:e,onChange:t,onRequestRestrict:s}){let l=e.access||{restricted:!1,allow:[]},[i,c]=(0,n.useState)(!1),[o,d]=(0,n.useState)([]),[x,m]=(0,n.useState)({}),u=async()=>{c(!0);try{let[e,t]=await Promise.all([fetch("/api/providers"),fetch("/api/models/alias")]);e.ok&&d((await e.json()).connections||[]),t.ok&&m((await t.json()).aliases||{})}catch(e){console.log("Error loading picker data:",e)}},p=e=>t({restricted:!0,allow:e}),g=e=>p(l.allow.filter(t=>t!==e));return(0,a.jsxs)("div",{className:"mt-2","data-testid":"key-access",children:[(0,a.jsx)(r.lM,{size:"sm",checked:l.restricted,label:"Restrict access",onChange:e=>e?s():t({restricted:!1,allow:l.allow})}),l.restricted&&(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[0===l.allow.length&&(0,a.jsx)("span",{className:"text-xs text-warning",children:"No combos or models allowed - this key can call nothing."}),l.allow.map(e=>(0,a.jsxs)("span",{className:"flex items-center gap-1 rounded-[4px] border border-border bg-surface-2 px-2 py-0.5 font-mono text-xs text-text-main",children:[e,(0,a.jsx)("button",{onClick:()=>g(e),className:"rounded text-text-muted hover:text-red-500",title:`Remove ${e}`,"aria-label":`Remove ${e}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"12px"},children:"close"})})]},e)),(0,a.jsxs)("button",{onClick:u,className:"flex items-center gap-0.5 rounded-[4px] border border-dashed border-text-subtle px-2 py-0.5 text-xs font-medium text-text-muted hover:border-text-main hover:text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined leading-none",style:{fontSize:"14px"},children:"add"}),"Add combo or model"]})]}),i&&(0,a.jsx)(r.rq,{isOpen:i,onClose:()=>c(!1),onSelect:e=>{let t=e?.value;t&&!l.allow.some(e=>e.toLowerCase()===t.toLowerCase())&&p([...l.allow,t])},onDeselect:e=>g(l.allow.find(t=>t.toLowerCase()===String(e?.value).toLowerCase())),activeProviders:o,modelAliases:x,title:`Allowed for "${e.name}"`,addedModelValues:l.allow,closeOnSelect:!1})]})}h.propTypes={apiKey:i().shape({id:i().string.isRequired,name:i().string,access:i().shape({restricted:i().bool,allow:i().arrayOf(i().string)})}).isRequired,onChange:i().func.isRequired,onRequestRestrict:i().func.isRequired};var g=s(31474);function f({value:e,copyId:t,copied:s,onCopy:n,size:l="sm",onOpen:i,className:r}){let c="lg"===l,o=s===t;return(0,a.jsxs)("div",{className:(0,g.cn)("flex items-center gap-2 rounded-md border bg-surface pl-3 pr-1","border-border focus-within:border-text-subtle focus-within:ring-1 focus-within:ring-text-subtle/50 transition",c?"h-11":"h-9",r),children:[(0,a.jsx)("span",{className:(0,g.cn)("material-symbols-outlined shrink-0 text-text-subtle",c?"text-[18px]":"text-[15px]"),children:"link"}),(0,a.jsx)("span",{className:(0,g.cn)("min-w-0 flex-1 truncate font-mono text-text-main",c?"text-[13px] sm:text-sm":"text-[12px]"),title:e,children:e}),i&&(0,a.jsx)("button",{type:"button",onClick:i,className:"grid size-7 shrink-0 place-items-center rounded-[4px] text-text-muted transition hover:bg-surface-2 hover:text-text-main",title:"Open endpoint","aria-label":"Open endpoint",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"open_in_new"})}),(0,a.jsx)("button",{type:"button",onClick:()=>n(e,t),className:(0,g.cn)("grid shrink-0 place-items-center rounded-[4px] transition",c?"size-8":"size-7",o?"bg-success/12 text-success":"text-text-muted hover:bg-surface-2 hover:text-text-main"),title:"Copy","aria-label":"Copy to clipboard",children:(0,a.jsx)("span",{className:(0,g.cn)("material-symbols-outlined",c?"text-[18px]":"text-[16px]"),children:o?"check":"content_copy"})})]})}f.propTypes={value:i().string.isRequired,copyId:i().string.isRequired,copied:i().string,onCopy:i().func.isRequired,size:i().oneOf(["sm","lg"]),onOpen:i().func,className:i().string};let y={ok:{pill:"bg-success/10 text-success border border-success/20",chip:"bg-success/10 text-success",dot:"bg-success"},busy:{pill:"bg-warning/10 text-warning border border-warning/20",chip:"bg-warning/10 text-warning",dot:"bg-warning animate-pulse"},off:{pill:"bg-surface-2 text-text-muted border border-border",chip:"bg-surface-2 text-text-muted",dot:"bg-text-subtle/40"},error:{pill:"bg-danger/10 text-danger border border-danger/20",chip:"bg-danger/10 text-danger",dot:"bg-danger"}};function b({icon:e,label:t,desc:s,tone:n="off",toneLabel:l,children:i}){let r=y[n]||y.off;return(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-surface p-4 transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-start gap-3.5",children:[(0,a.jsx)("div",{className:(0,g.cn)("grid size-10 shrink-0 place-items-center rounded-xl",r.chip),children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:e})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 pt-0.5",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1",children:[(0,a.jsx)("span",{className:"font-display text-[15px] font-semibold text-text-main",children:t}),(0,a.jsxs)("span",{className:(0,g.cn)("inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider",r.pill),children:[(0,a.jsx)("span",{className:(0,g.cn)("size-1.5 rounded-full",r.dot)}),l]})]}),(0,a.jsx)("p",{className:"mt-0.5 font-mono text-[11px] leading-relaxed text-text-muted",children:s})]})]}),(0,a.jsx)("div",{className:"mt-4",children:i})]})}function j({machineId:e}){let[t,s]=(0,n.useState)([]),[l,i]=(0,n.useState)(!0),[g,y]=(0,n.useState)(!1),[w,v]=(0,n.useState)(""),[N,k]=(0,n.useState)(null),[C,S]=(0,n.useState)(null),[T,P]=(0,n.useState)(!1),[R,_]=(0,n.useState)(!0),[$,E]=(0,n.useState)(!0),[O,A]=(0,n.useState)(!1),[I,U]=(0,n.useState)(!0),[z,q]=(0,n.useState)(!1),[L,D]=(0,n.useState)(!1),[F,W]=(0,n.useState)(""),[K,H]=(0,n.useState)(""),[J,M]=(0,n.useState)(!1),[B,Z]=(0,n.useState)(""),[Q,V]=(0,n.useState)(null),[X,Y]=(0,n.useState)(!1),[G,ee]=(0,n.useState)(!1),[et,es]=(0,n.useState)(!1),[ea,en]=(0,n.useState)(!1),[el,ei]=(0,n.useState)(""),[er,ec]=(0,n.useState)(!1),[eo,ed]=(0,n.useState)(""),[ex,em]=(0,n.useState)(null),[eu,ep]=(0,n.useState)(""),[eh,eg]=(0,n.useState)(""),[ef,ey]=(0,n.useState)(null),[eb,ej]=(0,n.useState)(!1),[ew,ev]=(0,n.useState)([]),[eN,ek]=(0,n.useState)(""),[eC,eS]=(0,n.useState)(!1),[eT,eP]=(0,n.useState)(!1),[eR,e_]=(0,n.useState)(!1),e$=(0,n.useRef)(null),eE=(0,n.useRef)(0),eO=(0,n.useRef)(0),eA=(0,n.useRef)(!1),eI=(0,n.useRef)(!1),eU=(0,n.useRef)(!1),ez=(0,n.useRef)(!1),[eq,eL]=(0,n.useState)(!1),[eD,eF]=(0,n.useState)(!1),[eW,eK]=(0,n.useState)(new Set),[eH,eJ]=(0,n.useState)(!1);(0,n.useEffect)(()=>{eJ(!["localhost","127.0.0.1","::1"].includes(window.location.hostname))},[]);let{copied:eM,copy:eB}=(0,c.C)(),eZ=!R||!$,eQ=R?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.',eV=t.filter(e=>"Default Key"===e.name),eX=t.filter(e=>"Default Key"!==e.name);(0,n.useEffect)(()=>{e$.current&&(e$.current.scrollTop=e$.current.scrollHeight)},[ew]),(0,n.useEffect)(()=>{e2(),e0()},[]),(0,n.useEffect)(()=>{if(!(z||et))return;let e=!z||L,t=!et||ea,s=()=>{document.hidden||eG()};if(document.addEventListener("visibilitychange",s),e&&t)return()=>document.removeEventListener("visibilitychange",s);let a=setInterval(()=>{document.hidden||eG()},o.fl);return()=>{clearInterval(a),document.removeEventListener("visibilitychange",s)}},[z,et,L,ea]),(0,n.useEffect)(()=>{let e=async()=>{if(!document.hidden){if(z&&(F||K)){let e=await x(K,F);eA.current=e,e?(eE.current=0,D(!0),eU.current||(eU.current=!0,eL(!0))):(eE.current+=1,eE.current>=o.t6&&D(!1))}else eA.current=!1;if(et&&el){let e=await d(el);eI.current=e,e?(eO.current=0,en(!0),ez.current||(ez.current=!0,eF(!0))):(eO.current+=1,eO.current>=o.t6&&en(!1))}else eI.current=!1}};if(!(z&&(F||K)||et&&el))return;e();let t=!et||ea;if((!z||L)&&t)return;let s=setInterval(e,o.RL);return()=>clearInterval(s)},[z,F,K,et,el,L,ea]);let eY=(0,n.useCallback)((e,t,s,a,n,l)=>{t.current?(s.current=0,a(!0),n.current||(n.current=!0,l(!0))):(s.current+=1,s.current>=o.t6&&a(!1))},[]),eG=async()=>{try{let e=await fetch("/api/tunnel/status",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),s=t.tunnel?.settingsEnabled??t.tunnel?.enabled??!1,a=t.tunnel?.tunnelUrl||"";W(a),H(t.tunnel?.publicUrl||""),q(s),eY(null,eA,eE,D,eU,eL);let n=t.tailscale?.settingsEnabled??t.tailscale?.enabled??!1,l=t.tailscale?.tunnelUrl||"";ei(l),es(n),eY(null,eI,eO,en,ez,eF)}catch{}},e0=async()=>{U(!0);try{let[e,t]=await Promise.all([m.A.getState().fetchSettings(),fetch("/api/tunnel/status",{cache:"no-store"})]);if(e&&(P(e.requireApiKey||!1),_(!1!==e.requireLogin),E(e.hasPassword||!1),A(e.tunnelDashboardAccess||!1)),t.ok){let e=await t.json(),s=e.tunnel?.settingsEnabled??e.tunnel?.enabled??!1,a=e.tunnel?.tunnelUrl||"";W(a),H(e.tunnel?.publicUrl||""),q(s),eY(null,eA,eE,D,eU,eL);let n=e.tailscale?.settingsEnabled??e.tailscale?.enabled??!1,l=e.tailscale?.tunnelUrl||"";ei(l),es(n),eY(null,eI,eO,en,ez,eF)}}catch(e){console.log("Error loading settings:",e)}finally{U(!1)}},e1=async e=>{try{await m.A.getState().patchSettings({requireApiKey:e})&&P(e)}catch(e){console.log("Error updating requireApiKey:",e)}},e2=async()=>{try{let e=async()=>{let e=await fetch("/api/keys");return e.ok&&(await e.json()).keys||[]},t=await e();if(0===t.length)try{(await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:"Default Key"})})).ok&&(t=await e())}catch{}s(t)}catch(e){console.log("Error fetching data:",e)}finally{i(!1)}},e5=async(...e)=>{M(!0),Z("Waiting for tunnel ready...");let t=e.filter(Boolean).map(e=>`${e}/api/health`),s=Date.now();for(;Date.now()-s<o.Cp;){if(await new Promise(e=>setTimeout(e,o.Hx)),await Promise.any(t.map(async e=>{if((await fetch(e,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1))return q(!0),M(!1),Z(""),!0;if((Date.now()-s)%1e4<o.Hx)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return V({type:"error",message:"Tunnel process stopped unexpectedly."}),M(!1),Z(""),!1}}catch{}}return V({type:"error",message:"Tunnel created but not reachable. Please try again."}),M(!1),Z(""),!1},e3=async()=>{Y(!1),M(!0),V(null),Z("Creating tunnel...");let e=!0;(async()=>{for(;e;){try{let t=await fetch("/api/tunnel/status");if(t.ok){let s=await t.json();s.download?.downloading?Z(`Downloading cloudflared... ${s.download.progress}%`):e&&Z("Creating tunnel...")}}catch{}await new Promise(e=>setTimeout(e,1e3))}})();try{let t=await fetch("/api/tunnel/enable",{method:"POST"});e=!1;let s=await t.json();if(!t.ok)return void V({type:"error",message:s.error||"Failed to enable tunnel"});let a=s.tunnelUrl;if(!a)return void V({type:"error",message:"No tunnel URL returned"});W(a),H(s.publicUrl||""),await e5(s.publicUrl,a)}catch(e){V({type:"error",message:e.message})}finally{e=!1,M(!1),Z("")}},e4=async()=>{M(!0),V(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(q(!1),W(""),ee(!1),V({type:"success",message:"Tunnel disabled"})):V({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){V({type:"error",message:e.message})}finally{M(!1)}},e6=async()=>{ey(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return ey(t.installed),t}}catch{}return ey(!1),{installed:!1}},e7=async()=>{ej(!0),em(null),ev([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:eN})});ek("");let t=e.body.getReader(),s=new TextDecoder,a="";for(;;){let{done:e,value:n}=await t.read();if(e)break;let l=(a+=s.decode(n,{stream:!0})).split("\n\n");for(let e of(a=l.pop()||"",l)){let t=e.split("\n"),s="progress",a=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{a=JSON.parse(e.slice(6))}catch{}if(a)if("progress"===s)ev(e=>[...e.slice(-50),a.message]);else if("done"===s){ey(!0),ej(!1),eP(!1),tt();return}else"error"===s&&em({type:"error",message:a.error||"Install failed"})}}}catch(e){em({type:"error",message:e.message})}finally{ej(!1)}},e9=async e=>{ed("Waiting for Tailscale ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<o.Cp;){await new Promise(e=>setTimeout(e,o.Hx));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}}return!1},e8=(e,t)=>{ep(e),eg(t)},te=()=>{ep(""),eg("")},tt=async()=>{eP(!1),eS(!0),ec(!0),em(null),ed("Connecting..."),te();try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ei(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);es(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.needsLogin&&t.authUrl){e8(t.authUrl,"Open Login Page"),ed('Login required - click "Open Login Page" to continue');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok&&(await e.json()).loggedIn){te(),ed("Starting funnel...");let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ei(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);es(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."})}else t.funnelNotEnabled&&t.enableUrl?await ts(t.enableUrl):em({type:"error",message:t.error||"Failed to start funnel"});return}}catch{}}te(),em({type:"error",message:"Login timed out. Please try again."});return}if(t.funnelNotEnabled&&t.enableUrl)return void await ts(t.enableUrl);em({type:"error",message:t.error||"Failed to connect"})}catch(e){em({type:"error",message:e.message})}finally{ec(!1),eS(!1),ed(""),te()}},ts=async e=>{e8(e,"Open Funnel Settings"),ed('Click "Open Funnel Settings" to enable Funnel...');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){te(),ei(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);es(!0),em(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.funnelNotEnabled)continue;if(t.error){te(),em({type:"error",message:t.error});return}}catch{}}te(),em({type:"error",message:"Timed out waiting for Funnel to be enabled."})},ta=async()=>{ec(!0),em(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(es(!1),ei(""),e_(!1),em({type:"success",message:"Tailscale disabled"})):em({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){em({type:"error",message:e.message})}finally{ec(!1)}},tn=async()=>{em(null),ev([]);let e=await e6();e?.installed&&e?.hasCachedPassword?tt():eP(!0)},tl=async()=>{if(w.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:w})}),t=await e.json();e.ok&&(k(t.key),await e2(),v(""),y(!1))}catch(e){console.log("Error creating key:",e)}},ti=async e=>{S({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{S(null);try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&(s(t.filter(t=>t.id!==e)),eK(t=>{let s=new Set(t);return s.delete(e),s}))}catch(e){console.log("Error deleting key:",e)}}})},tr=async(e,t)=>{try{(await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("Error toggling key:",e)}},tc=async(e,t)=>{try{let a=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({access:t})}),n=await a.json().catch(()=>({}));a.ok&&n.key?s(t=>t.map(t=>t.id===e?{...t,access:n.key.access}:t)):console.log("Error updating key access:",n.error||a.status)}catch(e){console.log("Error updating key access:",e)}},to=e=>!e||e.length<=10?e||"":e.slice(0,6)+"•".repeat(e.length-10)+e.slice(-4),td=e=>{eK(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[tx,tm]=(0,n.useState)("/v1");if((0,n.useEffect)(()=>{tm(`${window.location.origin}/v1`)},[]),l)return(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsx)(r.Qv,{}),(0,a.jsx)(r.Qv,{})]});let tu=z?L?"ok":"busy":J||I?"busy":Q?.type==="error"?"error":"off",tp=z?L?"Connected":eq?"Reconnecting":"Connecting":J?"Starting":I?"Checking":Q?.type==="error"?"Error":"Off",th=et?ea?"ok":"busy":er||eC?"busy":ex?.type==="error"?"error":"off",tg=et?ea?"Connected":eD?"Reconnecting":"Connecting":er||eC?"Starting":ex?.type==="error"?"Error":"Off";return(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsxs)(r.Zp,{children:[(0,a.jsx)("h2",{className:"font-display text-lg font-semibold text-text-main",children:"OpenAI-compatible base URL"}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"One address in front of every provider connection."}),(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(f,{value:tx,copyId:"local_url",copied:eM,onCopy:eB,size:"lg",onOpen:()=>window.open(tx,"_blank","noopener,noreferrer")})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 items-start gap-6 lg:grid-cols-[1fr_520px] lg:items-stretch",children:[(0,a.jsx)("div",{className:"flex flex-col",children:(0,a.jsxs)(r.Zp,{className:"h-full",children:[(0,a.jsx)("div",{className:"mb-3 flex items-center justify-between",children:(0,a.jsx)("h2",{className:"font-display text-base font-semibold text-text-main",children:"Remote access"})}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(b,{icon:"cloud_upload",label:"Cloudflare Tunnel",desc:"Public HTTPS address from Cloudflare - no port forwarding.",tone:tu,toneLabel:tp,children:z&&!J&&L?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(f,{value:`${K||F}/v1`,copyId:"tunnel_url",copied:eM,onCopy:eB,className:"flex-1"}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>ee(!0),children:"Stop"})]}):!z||J||L?J?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),B||"Creating tunnel…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>{M(!1),Z("")},children:"Stop"})]}):Q?.type==="error"?(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-start gap-2 rounded-md border border-danger/25 bg-danger/5 px-3 py-2 text-xs text-danger",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]",children:"error"}),(0,a.jsx)("span",{className:"min-w-0",children:Q.message})]}),(0,a.jsx)(r.$n,{size:"sm",icon:"cloud_upload",onClick:()=>Y(!0),children:"Retry"})]}):I?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),"Checking…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"close",onClick:()=>U(!1),children:"Skip"})]}):(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("p",{className:"font-mono text-[10px] text-text-subtle",children:"Requires login + API key."}),(0,a.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"cloud_upload",onClick:()=>{eZ?V({type:"error",message:`Security required: ${eQ}`}):T?Y(!0):V({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"})]}):(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-warning/25 bg-warning/5 px-3 py-2 text-xs text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),eq?"Tunnel reconnecting…":"Tunnel checking…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>ee(!0),children:"Stop"})]})}),(0,a.jsx)(b,{icon:"vpn_lock",label:"Tailscale Funnel",desc:"Private HTTPS host on your tailnet - invite-only by default.",tone:th,toneLabel:tg,children:et&&!er&&ea?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(f,{value:`${el}/v1`,copyId:"ts_url",copied:eM,onCopy:eB,className:"flex-1"}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>e_(!0),children:"Stop"})]}):!et||er||ea?er||eC?(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-border bg-surface-2 px-3 py-2 text-xs text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),eo||"Connecting…"]}),eu&&(0,a.jsx)(r.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(eu,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:eh||"Open"}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>{ec(!1),eS(!1),ed(""),te()},children:"Stop"})]}):ex?.type==="error"?(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-start gap-2 rounded-md border border-danger/25 bg-danger/5 px-3 py-2 text-xs text-danger",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[15px]",children:"error"}),(0,a.jsx)("span",{className:"min-w-0",children:ex.message})]}),(0,a.jsx)(r.$n,{size:"sm",icon:"vpn_lock",onClick:tn,children:"Retry"})]}):(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("p",{className:"font-mono text-[10px] text-text-subtle",children:"Requires a Tailscale account."}),(0,a.jsx)(r.$n,{size:"sm",variant:"secondary",icon:"vpn_lock",onClick:()=>{eZ?em({type:"error",message:`Security required: ${eQ}`}):tn()},children:"Enable"})]}):(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex flex-1 items-center gap-2 rounded-md border border-warning/25 bg-warning/5 px-3 py-2 text-xs text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[15px]",children:"progress_activity"}),eD?"Tailscale reconnecting…":"Tailscale checking…"]}),(0,a.jsx)(r.$n,{size:"sm",variant:"outline",icon:"power_settings_new",onClick:()=>e_(!0),children:"Stop"})]})})]}),eZ&&!z&&!et&&(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(p,{message:eQ,action:{label:"Open settings",href:"/dashboard/profile"}})})]})}),(0,a.jsxs)(r.Zp,{id:"require-api-key",className:"scroll-mt-24 flex h-full flex-col",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h2",{className:"flex items-center gap-2 font-display text-lg font-semibold text-text-main",children:["API keys",(0,a.jsx)("span",{className:"rounded-[5px] bg-surface-2 px-2 py-0.5 font-mono text-[11px] uppercase tracking-wider text-text-muted",children:t.length})]}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Keys authenticate clients against this gateway."})]}),(0,a.jsx)(r.$n,{icon:"add",className:"font-display",onClick:()=>y(!0),children:"Create key"})]}),(0,a.jsxs)("div",{className:"mt-4 flex items-center justify-between gap-3 rounded-xl bg-surface p-4",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,a.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg transition-colors ${T?"bg-primary text-white":"bg-surface-2 text-text-muted"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"vpn_key"})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("p",{className:"font-display text-[15px] font-semibold text-text-main",children:"Require API key"}),(0,a.jsx)("span",{className:"rounded-full bg-surface-2 px-2 py-0.5 font-mono text-[10px] uppercase tracking-wider text-text-muted",children:T?"On":"Off"})]}),(0,a.jsx)("p",{className:"mt-0.5 truncate font-mono text-[10px] text-text-muted",children:T?"Rejects missing keys":"Any client accepted"})]})]}),(0,a.jsx)(r.lM,{checked:T,onChange:()=>e1(!T)})]}),eH&&!T&&(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(p,{message:"Endpoint is exposed without an API key."})}),0===eX.length?(0,a.jsxs)("div",{className:"mt-4 rounded-md border border-dashed border-border px-6 py-10 text-center",children:[(0,a.jsx)("div",{className:"mx-auto mb-3 grid size-12 place-items-center rounded-md bg-surface-2 text-text-muted",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[24px]",children:"vpn_key"})}),(0,a.jsx)("p",{className:"font-medium text-text-main",children:"No keys yet"}),(0,a.jsx)("p",{className:"mx-auto mt-1 mb-4 max-w-xs text-sm text-text-muted",children:"Create a key, then point your client at the endpoint above."}),(0,a.jsx)(r.$n,{icon:"add",className:"font-display",onClick:()=>y(!0),children:"Create key"})]}):(0,a.jsx)("div",{className:"mt-3 flex flex-col gap-2",children:eX.map(e=>(0,a.jsxs)("div",{className:`group rounded-xl border border-border-subtle bg-surface px-3.5 py-3 transition ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsx)("div",{className:"flex min-w-0 items-center gap-2.5",children:(0,a.jsx)("div",{className:"min-w-0",children:(0,a.jsx)("p",{className:"truncate font-display text-[15px] font-semibold text-text-main",children:e.name})})}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,a.jsx)(r.lM,{size:"sm",checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?S({title:"Pause API Key",message:`Pause API key "${e.name}"?
|
|
2
|
-
|
|
3
|
-
This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{S(null),tr(e.id,t)}}):tr(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{onClick:()=>ti(e.id),className:"grid size-8 place-items-center rounded-lg text-text-muted transition hover:bg-danger/10 hover:text-danger",title:"Delete key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[17px]",children:"delete"})})]})]}),(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 truncate rounded-lg bg-bg px-3 py-2 font-mono text-[11.5px] text-text-muted",children:eW.has(e.id)?e.key:to(e.key)}),(0,a.jsx)("button",{onClick:()=>td(e.id),className:"grid size-9 shrink-0 place-items-center rounded-lg text-text-muted transition hover:bg-surface-2 hover:text-text-main",title:eW.has(e.id)?"Hide key":"Show key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eW.has(e.id)?"visibility_off":"visibility"})}),(0,a.jsx)("button",{onClick:()=>eB(e.key,e.id),className:`grid size-9 shrink-0 place-items-center rounded-lg transition ${eM===e.id?"bg-success/10 text-success":"text-text-muted hover:bg-surface-2 hover:text-text-main"}`,title:"Copy key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eM===e.id?"check":"content_copy"})})]}),!1===e.isActive&&(0,a.jsxs)("p",{className:"mt-2 flex items-center gap-1 text-[11px] text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"pause_circle"}),"Paused - clients using this key get rejected."]}),(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(h,{apiKey:e,onChange:t=>tc(e.id,t),onRequestRestrict:()=>S({title:"Restrict API Key",message:`Restrict API key "${e.name}"?
|
|
4
|
-
|
|
5
|
-
It will only be able to call the combos and models you add. Until you add one, it can call nothing.`,onConfirm:async()=>{S(null),tc(e.id,{restricted:!0,allow:e.access?.allow||[]})}})})})]},e.id))}),(0,a.jsx)("div",{className:"mt-auto pt-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3 rounded-xl bg-surface-2/50 px-4 py-3.5",children:[(0,a.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[20px] text-text-muted",children:"shield_lock"}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium text-text-main",children:"Restrict a key"}),(0,a.jsx)("p",{className:"mt-0.5 font-mono text-[10px] leading-relaxed text-text-muted",children:'Toggle "Restrict access" under a key to limit it to specific combos and models. Until you add at least one allowed target, a restricted key can call nothing.'})]})]})})]})]}),eV.length>0&&(0,a.jsxs)(r.Zp,{className:"scroll-mt-24",children:[(0,a.jsx)("div",{className:"mb-3 flex flex-wrap items-start justify-between gap-3",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"flex items-center gap-2 font-display text-lg font-semibold text-text-main",children:"Default key"}),(0,a.jsx)("p",{className:"mt-1 font-mono text-[10px] uppercase tracking-wider text-text-subtle",children:"Auto-provisioned key so the endpoint works out of the box."})]})}),(0,a.jsx)("div",{className:"flex flex-col gap-3",children:eV.map(e=>(0,a.jsxs)("div",{className:`group rounded-xl border border-border bg-surface p-4 transition ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,a.jsx)("span",{className:"grid size-10 shrink-0 place-items-center rounded-lg bg-primary text-white",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"key"})}),(0,a.jsx)("div",{className:"min-w-0",children:(0,a.jsx)("p",{className:"truncate font-display text-[15px] font-semibold text-text-main",children:e.name})})]}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1.5",children:[(0,a.jsx)(r.lM,{size:"sm",checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?S({title:"Pause API Key",message:`Pause API key "${e.name}"?
|
|
6
|
-
|
|
7
|
-
This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{S(null),tr(e.id,t)}}):tr(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{onClick:()=>ti(e.id),className:"grid size-8 place-items-center rounded-lg text-text-muted transition hover:bg-danger/10 hover:text-danger",title:"Delete key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[17px]",children:"delete"})})]})]}),(0,a.jsxs)("div",{className:"mt-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 truncate rounded-lg border border-border-subtle bg-bg px-3 py-2 font-mono text-[11.5px] text-text-muted",children:eW.has(e.id)?e.key:to(e.key)}),(0,a.jsx)("button",{onClick:()=>td(e.id),className:"grid size-9 shrink-0 place-items-center rounded-lg text-text-muted transition hover:bg-surface-2 hover:text-text-main",title:eW.has(e.id)?"Hide key":"Show key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eW.has(e.id)?"visibility_off":"visibility"})}),(0,a.jsx)("button",{onClick:()=>eB(e.key,e.id),className:`grid size-9 shrink-0 place-items-center rounded-lg transition ${eM===e.id?"bg-success/10 text-success":"text-text-muted hover:bg-surface-2 hover:text-text-main"}`,title:"Copy key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:eM===e.id?"check":"content_copy"})})]}),!1===e.isActive&&(0,a.jsxs)("p",{className:"mt-2 flex items-center gap-1 text-[11px] text-warning",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"pause_circle"}),"Paused - clients using this key get rejected."]}),(0,a.jsx)("div",{className:"mt-3",children:(0,a.jsx)(h,{apiKey:e,onChange:t=>tc(e.id,t),onRequestRestrict:()=>S({title:"Restrict API Key",message:`Restrict API key "${e.name}"?
|
|
8
|
-
|
|
9
|
-
It will only be able to call the combos and models you add. Until you add one, it can call nothing.`,onConfirm:async()=>{S(null),tc(e.id,{restricted:!0,allow:e.access?.allow||[]})}})})})]},e.id))})]}),(0,a.jsx)(r.aF,{isOpen:g,title:"New API key",onClose:()=>{y(!1),v("")},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(r.pd,{label:"Name",value:w,onChange:e=>v(e.target.value),placeholder:"k8s-staging",hint:"Only a label for you - never sent to providers."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:tl,className:"font-display",fullWidth:!0,disabled:!w.trim(),children:"Create key"}),(0,a.jsx)(r.$n,{onClick:()=>{y(!1),v("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(r.aF,{isOpen:!!N,title:"Key created",onClose:()=>k(null),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-warning/30 bg-warning/5 p-3.5",children:[(0,a.jsx)("span",{className:"material-symbols-outlined mt-0.5 text-[18px] text-warning",children:"priority_high"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-semibold text-warning",children:"Copy it now"}),(0,a.jsx)("p",{className:"mt-0.5 text-xs leading-relaxed text-text-muted",children:"The full value is only shown once. You can still copy it later from the key list, but treat it like a password."})]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.pd,{value:N||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)(r.$n,{variant:"secondary",icon:"created_key"===eM?"check":"content_copy",onClick:()=>eB(N,"created_key"),children:"created_key"===eM?"Copied!":"Copy"})]}),(0,a.jsx)(r.$n,{onClick:()=>k(null),fullWidth:!0,children:"Done"})]})}),(0,a.jsx)(r.aF,{isOpen:X,title:"Enable Tunnel",onClose:()=>Y(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-md p-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-text-muted",children:"cloud_upload"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local KeyRouter to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,a.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:o.oX.map(e=>(0,a.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md border border-border-subtle bg-bg px-3 py-2.5",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:e.icon}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"text-xs font-semibold text-text-main",children:e.title}),(0,a.jsx)("p",{className:"text-[11px] leading-relaxed text-text-muted",children:e.desc})]})]},e.title))}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:e3,fullWidth:!0,children:"Start Tunnel"}),(0,a.jsx)(r.$n,{onClick:()=>Y(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(r.aF,{isOpen:G,title:"Disable Tunnel",onClose:()=>!J&&ee(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:e4,fullWidth:!0,disabled:J,variant:"danger",children:J?"Disabling...":"Disable"}),(0,a.jsx)(r.$n,{onClick:()=>ee(!1),variant:"ghost",fullWidth:!0,disabled:J,children:"Cancel"})]})]})}),(0,a.jsx)(r.aF,{isOpen:eT,title:"Tailscale Funnel",onClose:()=>{eb||(eP(!1),ek(""),em(null))},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[null===ef&&(0,a.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===ef&&!eb&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:e7,fullWidth:!0,children:"Install Tailscale"}),(0,a.jsx)(r.$n,{onClick:()=>eP(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),eb&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),ew.length>0&&(0,a.jsx)("div",{ref:e$,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:ew.map((e,t)=>(0,a.jsx)("div",{children:e},t))})]}),!0===ef&&!eb&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:()=>tt(),fullWidth:!0,children:"Connect"}),(0,a.jsx)(r.$n,{onClick:()=>eP(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ex&&(0,a.jsx)(u,{status:ex})]})}),(0,a.jsx)(r.aF,{isOpen:eR,title:"Disable Tailscale",onClose:()=>!er&&e_(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(r.$n,{onClick:ta,fullWidth:!0,disabled:er,variant:"danger",children:er?"Disabling...":"Disable"}),(0,a.jsx)(r.$n,{onClick:()=>e_(!1),variant:"ghost",fullWidth:!0,disabled:er,children:"Cancel"})]})]})}),(0,a.jsx)(r.uo,{isOpen:!!C,onClose:()=>S(null),onConfirm:C?.onConfirm,title:C?.title||"Confirm",message:C?.message,variant:"danger"})]})}b.propTypes={icon:i().string.isRequired,label:i().string.isRequired,desc:i().string.isRequired,tone:i().oneOf(["ok","busy","off","error"]),toneLabel:i().string.isRequired,children:i().node},j.propTypes={machineId:i().string.isRequired}},45496:(e,t,s)=>{Promise.resolve().then(s.bind(s,26173))}}]);
|