@yina-npm/openrouterx 0.4.6 → 0.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +196 -138
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +9 -3
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +24 -0
- package/app/.next/required-server-files.json +3 -3
- package/app/.next/routes-manifest.json +38 -0
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +16 -14
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/combo/[id]/page.js +5 -0
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/combo/[id]/page.js.nft.json +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/combo/[id]/page_client-reference-manifest.js +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -0
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -0
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +2 -2
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next/server/app/api/health/route.js +1 -1
- package/app/.next/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -0
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -0
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/custom/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js +23 -4
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-login/route.js +23 -4
- package/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +4 -1
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1/search/route.js +1 -0
- package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/search/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1/web/fetch/route.js +1 -0
- package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +4 -4
- package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.html +1 -0
- package/app/.next/server/app/dashboard/media-providers/web.meta +18 -0
- package/app/.next/server/app/dashboard/media-providers/web.rsc +27 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +9 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +5 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +5 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +27 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +6 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +9 -0
- package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +6 -0
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/favicon.ico/route.js +1 -1
- package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +4 -4
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +4 -4
- package/app/.next/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +5 -5
- package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +9 -3
- package/app/.next/server/chunks/1202.js +1 -1
- package/app/.next/server/chunks/2020.js +1 -0
- package/app/.next/server/chunks/2506.js +2 -2
- package/app/.next/server/chunks/2549.js +1 -0
- package/app/.next/server/chunks/318.js +13 -13
- package/app/.next/server/chunks/3245.js +1 -0
- package/app/.next/server/chunks/3855.js +1 -1
- package/app/.next/server/chunks/3913.js +2 -2
- package/app/.next/server/chunks/412.js +3 -3
- package/app/.next/server/chunks/4122.js +1 -1
- package/app/.next/server/chunks/5599.js +3 -3
- package/app/.next/server/chunks/5681.js +1 -0
- package/app/.next/server/chunks/6555.js +1 -0
- package/app/.next/server/chunks/7595.js +1 -1
- package/app/.next/server/chunks/7774.js +3 -3
- package/app/.next/server/chunks/7828.js +1 -0
- package/app/.next/server/chunks/8491.js +1 -0
- package/app/.next/server/chunks/8590.js +1 -1
- package/app/.next/server/chunks/8760.js +1 -0
- package/app/.next/server/chunks/8895.js +2 -2
- package/app/.next/server/chunks/9489.js +1 -0
- package/app/.next/server/chunks/9501.js +37 -5
- package/app/.next/server/chunks/9718.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +2 -2
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/static/ahyS0wV6v2JdXWYSEruR6/_buildManifest.js +1 -0
- package/app/.next/static/chunks/1321-4ac1e9664ca05f67.js +1 -0
- package/app/.next/static/chunks/5497-9056ce5497a8e830.js +7 -0
- package/app/.next/static/chunks/5555-c4cf1b2b38d07337.js +3 -0
- package/app/.next/static/chunks/{698-4a7e1c24d20242fc.js → 698-438ce154948ce831.js} +6 -6
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-bc388a93f092e16d.js → page-0d9325464cd6e849.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-0494f10cf7d2cae0.js +53 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-521aecf4ccb7b03e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/combo/[id]/page-d594f315360645f3.js +4 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-ec14043bae22768d.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-7985e45ad78144eb.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-fae4c95586692227.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/layout-91efa9c70d2328e0.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/search/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/api/version/update/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/manifest.webmanifest/route-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/app/page-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-a95908d3fe52339a.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a95908d3fe52339a.js +1 -0
- package/app/.next/static/css/1ef6107a5d5fd71c.css +1 -0
- package/app/package.json +1 -1
- package/app/public/providers/azure.png +0 -0
- package/app/public/providers/blackbox.png +0 -0
- package/app/public/providers/brave-search.png +0 -0
- package/app/public/providers/byteplus.png +0 -0
- package/app/public/providers/coqui.png +0 -0
- package/app/public/providers/exa.png +0 -0
- package/app/public/providers/firecrawl.png +0 -0
- package/app/public/providers/google-pse.png +0 -0
- package/app/public/providers/grok-web.png +0 -0
- package/app/public/providers/inworld.png +0 -0
- package/app/public/providers/jina-reader.png +0 -0
- package/app/public/providers/linkup.png +0 -0
- package/app/public/providers/perplexity-web.png +0 -0
- package/app/public/providers/searchapi.png +0 -0
- package/app/public/providers/searxng.png +0 -0
- package/app/public/providers/serper.png +0 -0
- package/app/public/providers/tavily.png +0 -0
- package/app/public/providers/tortoise.png +0 -0
- package/app/public/providers/voyage-ai.png +0 -0
- package/app/public/providers/youcom.png +0 -0
- package/app/server.js +1 -1
- package/app/src/lib/updater/updater.js +25 -2
- package/app/src/mitm/cert/install.js +31 -24
- package/app/src/mitm/config.js +15 -1
- package/app/src/mitm/dns/dnsConfig.js +48 -62
- package/app/src/mitm/handlers/antigravity.js +18 -6
- package/app/src/mitm/handlers/base.js +12 -10
- package/app/src/mitm/handlers/openrouter.js +23 -16
- package/app/src/mitm/logger.js +102 -1
- package/app/src/mitm/manager.js +23 -62
- package/app/src/mitm/models.json +244 -0
- package/app/src/mitm/server.js +39 -29
- package/app/src/mitm/winElevated.js +79 -0
- package/package.json +1 -1
- package/app/.next/server/chunks/1357.js +0 -1
- package/app/.next/server/chunks/2409.js +0 -1
- package/app/.next/server/chunks/289.js +0 -1
- package/app/.next/server/chunks/4404.js +0 -1
- package/app/.next/server/chunks/541.js +0 -1
- package/app/.next/server/chunks/6143.js +0 -1
- package/app/.next/server/chunks/6327.js +0 -1
- package/app/.next/server/chunks/6386.js +0 -1
- package/app/.next/static/8OXtyzXXo02arEnH4hahP/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1321-b4c371298c1c015b.js +0 -1
- package/app/.next/static/chunks/5497-2b813df1aa4bc9ba.js +0 -7
- package/app/.next/static/chunks/5555-26f687e754d40f93.js +0 -3
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-89b8138c3ac2e04f.js +0 -51
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-154824cbf44c34b2.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-6d84cac6ca90a61c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/page-18e13f60a38c4be4.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-9b93641ed57cec1d.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/models/custom/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/api/version/update/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/app/page-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-de0b0e689b74bc54.js +0 -1
- package/app/.next/static/css/d663c02ecd9b71d6.css +0 -1
- /package/app/.next/static/{8OXtyzXXo02arEnH4hahP → ahyS0wV6v2JdXWYSEruR6}/_ssgManifest.js +0 -0
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[182],{42661:(e,t,s)=>{Promise.resolve().then(s.bind(s,94588))},94588:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>R});var a=s(95155),r=s(73321),o=s(98500),i=s.n(o),l=s(12115),n=s(35497),d=s(57250),c=s(52679),x=s(28777),p=s(11059),m=s(14051),u=s.n(m);function h({until:e}){let[t,s]=(0,l.useState)("");return((0,l.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void s("");let a=Math.floor(t/1e3);a<60?s(`${a}s`):a<3600?s(`${Math.floor(a/60)}m ${a%60}s`):s(`${Math.floor(a/3600)}h ${Math.floor(a%3600/60)}m`)};t();let a=setInterval(t,1e3);return()=>clearInterval(a)},[e]),t)?(0,a.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function b({connection:e,proxyPools:t,isOAuth:s,isFirst:r,isLast:o,onMoveUp:i,onMoveDown:d,onToggleActive:c,onUpdateProxy:x,onEdit:p,onDelete:m}){let[u,y]=(0,l.useState)(!1),[g,f]=(0,l.useState)(!1),[j,v]=(0,l.useState)(!1),N=(0,l.useRef)(null),w=new Map((t||[]).map(e=>[e.id,e])),k=e.providerSpecificData?.proxyPoolId||null,S=k?w.get(k):null,C=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,$=!!k||C,P=S?`Pool: ${S.name}`:k?`Pool: ${k} (inactive/missing)`:C?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",T="",A=S?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;if(A)try{let e=new URL(A);T=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{T=A}let R=S?.noProxy||e.providerSpecificData?.connectionNoProxy||"",O=S?.isActive===!0?"success":k||C?"error":"default",_=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(Boolean).sort()[0]||null;(0,l.useEffect)(()=>{let t=()=>{v(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let s=_?setInterval(t,1e3):null;return()=>{s&&clearInterval(s)}},[_]),(0,l.useEffect)(()=>{if(!u)return;let e=e=>{N.current&&!N.current.contains(e.target)&&y(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[u]);let I="unavailable"!==e.testStatus||j?e.testStatus:"active",E=s?e.name||e.email||e.displayName||"OAuth Account":e.name,K=async e=>{f(!0);try{await x("__none__"===e?null:e)}finally{f(!1),y(!1)}};return(0,a.jsxs)("div",{className:`group flex items-center justify-between p2 rounded-lg hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("button",{onClick:i,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,a.jsx)("button",{onClick:d,disabled:o,className:`p-0.5 rounded ${o?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,a.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:s?"lock":"key"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium truncate",children:E}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1 flex-wrap",children:[(0,a.jsx)(n.Ex,{variant:!1===e.isActive?"default":"active"===I||"success"===I?"success":"error"===I||"expired"===I||"unavailable"===I?"error":"default",size:"sm",dot:!0,children:!1===e.isActive?"disabled":I||"Unknown"}),$&&(0,a.jsx)(n.Ex,{variant:O,size:"sm",children:"Proxy"}),j&&!1!==e.isActive&&(0,a.jsx)(h,{until:_}),e.lastError&&!1!==e.isActive&&(0,a.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:e.lastError,children:e.lastError}),(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]})]}),$&&(0,a.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,a.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:P,children:P}),T&&(0,a.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:T}),R&&(0,a.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:R,children:["no_proxy: ",R]})]})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex gap-1",children:[(t||[]).length>0&&(0,a.jsxs)("div",{className:"relative",ref:N,children:[(0,a.jsxs)("button",{onClick:()=>y(e=>!e),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${$?"text-primary":"text-text-muted hover:text-primary"}`,disabled:g,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:g?"progress_activity":"lan"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),u&&(0,a.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,a.jsx)("button",{onClick:()=>K("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!k?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,a.jsx)("button",{onClick:()=>K(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${k===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),(0,a.jsxs)("button",{onClick:p,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,a.jsxs)("button",{onClick:m,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,a.jsx)(n.lM,{size:"sm",checked:e.isActive??!0,onChange:c,title:e.isActive??!0?"Disable":"Enable"})]})]})}function y({isOpen:e,provider:t,providerName:s,proxyPools:r,onSave:o,onClose:i}){let d="__none__",[c,x]=(0,l.useState)({name:"",apiKey:"",priority:1,proxyPoolId:d}),[p,m]=(0,l.useState)(!1),[u,h]=(0,l.useState)(null),[b,g]=(0,l.useState)(!1),f=async()=>{m(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:c.apiKey})}),s=await e.json();h(s.valid?"success":"failed")}catch{h("failed")}finally{m(!1)}},j=async()=>{if(t&&c.apiKey){g(!0);try{let e=!1;try{m(!0),h(null);let s=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:c.apiKey})});e=!!(await s.json()).valid,h(e?"success":"failed")}catch{h("failed")}finally{m(!1)}await o({name:c.name,apiKey:c.apiKey,priority:c.priority,proxyPoolId:c.proxyPoolId===d?null:c.proxyPoolId,testStatus:e?"active":"unknown"})}finally{g(!1)}}};return t?(0,a.jsx)(n.aF,{isOpen:e,title:`Add ${s||t} API Key`,onClose:i,children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Name"}),(0,a.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.name,onChange:e=>x({...c,name:e.target.value}),placeholder:"Production Key"})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"API Key"}),(0,a.jsx)("input",{type:"password",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.apiKey,onChange:e=>x({...c,apiKey:e.target.value})})]}),(0,a.jsx)("div",{className:"pt-6",children:(0,a.jsx)(n.$n,{onClick:f,disabled:!c.apiKey||p||b,variant:"secondary",children:p?"Checking...":"Check"})})]}),u&&(0,a.jsx)(n.Ex,{variant:"success"===u?"success":"error",children:"success"===u?"Valid":"Invalid"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Priority"}),(0,a.jsx)("input",{type:"number",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.priority,onChange:e=>x({...c,priority:Number.parseInt(e.target.value)||1})})]}),(0,a.jsx)(n.l6,{label:"Proxy Pool",value:c.proxyPoolId,onChange:e=>x({...c,proxyPoolId:e.target.value}),options:[{value:d,label:"None"},...(r||[]).map(e=>({value:e.id,label:e.name}))]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(n.$n,{onClick:j,fullWidth:!0,disabled:!c.name||!c.apiKey||b,children:b?"Saving...":"Save"}),(0,a.jsx)(n.$n,{onClick:i,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function g({providerId:e,isOAuth:t}){let[s,r]=(0,l.useState)([]),[o,i]=(0,l.useState)([]),[d,c]=(0,l.useState)(!0),[x,p]=(0,l.useState)(!1),[m,u]=(0,l.useState)(!1),[h,f]=(0,l.useState)(null),[j,v]=(0,l.useState)(null),[N,w]=(0,l.useState)("1"),k=(0,l.useCallback)(async()=>{try{let[t,s,a]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),o=await t.json(),l=await s.json(),n=a.ok?await a.json():{};t.ok&&r((o.connections||[]).filter(t=>t.provider===e)),s.ok&&i(l.proxyPools||[]);let d=(n.providerStrategies||{})[e]||{};v(d.fallbackStrategy||null),w(null!=d.stickyRoundRobinLimit?String(d.stickyRoundRobinLimit):"1")}catch(e){console.log("ConnectionsCard fetch error:",e)}finally{c(!1)}},[e]);(0,l.useEffect)(()=>{k()},[k]);let S=async(t,s)=>{try{let a=await fetch("/api/settings",{cache:"no-store"}),r=(a.ok?await a.json():{}).providerStrategies||{},o={};t&&(o.fallbackStrategy=t),"round-robin"===t&&""!==s&&(o.stickyRoundRobinLimit=Number(s)||3);let i={...r};0===Object.keys(o).length?delete i[e]:i[e]=o,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:i})})}catch(e){console.log("saveStrategy error:",e)}},C=async(e,t)=>{let a=[...s];[a[e],a[t]]=[a[t],a[e]],r(a);try{await Promise.all([fetch(`/api/providers/${a[e].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:e})}),fetch(`/api/providers/${a[t].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:t})})])}catch{await k()}},$=async e=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&r(t=>t.filter(t=>t.id!==e))}catch(e){console.log("delete error:",e)}},P=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&r(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("toggle error:",e)}},T=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:t||null})})).ok&&r(s=>s.map(s=>s.id===e?{...s,providerSpecificData:{...s.providerSpecificData,proxyPoolId:t||null}}:s))}catch(e){console.log("proxy error:",e)}},A=async t=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,...t})})).ok&&(await k(),p(!1))}catch(e){console.log("save apikey error:",e)}},R=async e=>{try{(await fetch(`/api/providers/${h.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await k(),u(!1))}catch(e){console.log("update connection error:",e)}};return d?(0,a.jsx)(n.Zp,{children:(0,a.jsx)("div",{className:"h-20 animate-pulse bg-black/5 rounded-lg"})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.Zp,{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,a.jsx)(n.lM,{checked:"round-robin"===j,onChange:e=>{let t=e?"round-robin":null;v(t),e&&!N&&w("1"),S(t,e?N||"1":N)}}),"round-robin"===j&&(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,a.jsx)("input",{type:"number",min:1,value:N,onChange:e=>{w(e.target.value),S("round-robin",e.target.value)},className:"w-14 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]}),0===s.length?(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"No connections yet"}),(0,a.jsx)(n.$n,{size:"sm",icon:"add",onClick:()=>p(!0),children:"Add Connection"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:s.map((e,r)=>(0,a.jsx)(b,{connection:e,proxyPools:o,isOAuth:t,isFirst:0===r,isLast:r===s.length-1,onMoveUp:()=>C(r,r-1),onMoveDown:()=>C(r,r+1),onToggleActive:t=>P(e.id,t),onUpdateProxy:t=>T(e.id,t),onEdit:()=>{f(e),u(!0)},onDelete:()=>$(e.id)},e.id))}),(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(n.$n,{size:"sm",icon:"add",onClick:()=>p(!0),children:"Add"})})]})]}),(0,a.jsx)(y,{isOpen:x,provider:e,proxyPools:o,onSave:A,onClose:()=>p(!1)}),(0,a.jsx)(n.wI,{isOpen:m,connection:h,proxyPools:o,onSave:R,onClose:()=>u(!1)})]})}function f({model:e,fullModel:t,copied:s,onCopy:r,testStatus:o,isCustom:i,isFree:l,onDeleteAlias:n,onTest:d,isTesting:c}){let x="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,a.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-base",style:x?{color:x}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),e.name&&(0,a.jsx)("span",{className:"text-[9px] text-text-muted/70 italic pl-1",children:e.name})]}),d&&(0,a.jsxs)("div",{className:"relative group/btn",children:[(0,a.jsx)("button",{onClick:d,disabled:c,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${c?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",style:c?{animation:"spin 1s linear infinite"}:void 0,children:c?"progress_activity":"science"})}),(0,a.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:c?"Testing...":"Test"})]}),(0,a.jsxs)("div",{className:"relative group/btn",children:[(0,a.jsx)("button",{onClick:()=>r(t,`model-${e.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:s===`model-${e.id}`?"check":"content_copy"})}),(0,a.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:s===`model-${e.id}`?"Copied!":"Copy"})]}),l&&(0,a.jsx)("span",{className:"text-[10px] font-bold text-green-500 bg-green-500/10 px-1.5 py-0.5 rounded",children:"FREE"}),i&&(0,a.jsx)("button",{onClick:n,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function j({isOpen:e,onSave:t,onClose:s}){let[r,o]=(0,l.useState)(""),i=()=>{r.trim()&&(t(r.trim()),o(""))};return(0,a.jsx)(n.aF,{isOpen:e,title:"Add Custom Model",onClose:s,children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,a.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:r,onChange:e=>o(e.target.value),onKeyDown:e=>"Enter"===e.key&&i(),placeholder:"e.g. tts-1-hd",autoFocus:!0})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(n.$n,{onClick:i,fullWidth:!0,disabled:!r.trim(),children:"Add"}),(0,a.jsx)(n.$n,{onClick:s,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function v({providerId:e,kindFilter:t}){let{copied:s,copy:r}=(0,p.C)(),[o,i]=(0,l.useState)({}),[d,m]=(0,l.useState)([]),[u,h]=(0,l.useState)({}),[b,y]=(0,l.useState)(null),[g,N]=(0,l.useState)(""),[w,k]=(0,l.useState)(!1),[S,C]=(0,l.useState)([]),$=(0,c.wG)(e),P=t||"llm",T=(0,l.useCallback)(async()=>{try{let[t,s,a]=await Promise.all([fetch("/api/models/alias"),fetch("/api/providers",{cache:"no-store"}),fetch("/api/models/custom",{cache:"no-store"})]),r=await t.json(),o=await s.json(),l=await a.json();t.ok&&i(r.aliases||{}),s.ok&&C((o.connections||[]).filter(t=>t.provider===e)),a.ok&&m(l.models||[])}catch(e){console.log("ModelsCard fetch error:",e)}},[e]);(0,l.useEffect)(()=>{T()},[T]);let A=async(e,t)=>{let s=`${$}/${e}`;try{(await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:s,alias:t})})).ok&&await T()}catch(e){console.log("set alias error:",e)}},R=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await T()}catch(e){console.log("delete alias error:",e)}},O=async e=>{try{(await fetch("/api/models/custom",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerAlias:$,id:e,type:P})})).ok&&await T()}catch(e){console.log("add custom model error:",e)}},_=async e=>{try{let t=new URLSearchParams({providerAlias:$,id:e,type:P});(await fetch(`/api/models/custom?${t}`,{method:"DELETE"})).ok&&await T()}catch(e){console.log("delete custom model error:",e)}},I=async e=>{if(!b){y(e);try{let s=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${$}/${e}`,kind:t})}),a=await s.json();h(t=>({...t,[e]:a.ok?"ok":"error"})),N(a.ok?"":a.error||"Model not reachable")}catch{h(t=>({...t,[e]:"error"})),N("Network error")}finally{y(null)}}},E=(0,x.KC)(e),K=t?E.filter(e=>e.kinds?e.kinds.includes(t):(e.type||"llm")===t):E,L=d.filter(e=>e.providerAlias===$&&(e.type||"llm")===P&&!K.some(t=>t.id===e.id));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.Zp,{children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,a.jsxs)("h2",{className:"text-lg font-semibold",children:["Models",t?` — ${t.toUpperCase()}`:""]})}),g&&(0,a.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:g}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-3",children:[K.map(e=>{let t=`${$}/${e.id}`,i=Object.entries(o).find(([,e])=>e===t)?.[0];return(0,a.jsx)(f,{model:e,fullModel:`${$}/${e.id}`,alias:i,copied:s,onCopy:r,onSetAlias:t=>A(e.id,t),onDeleteAlias:()=>R(i),testStatus:u[e.id],onTest:S.length>0?()=>I(e.id):void 0,isTesting:b===e.id,isFree:e.isFree},e.id)}),L.map(e=>(0,a.jsx)(f,{model:{id:e.id,name:e.name},fullModel:`${$}/${e.id}`,copied:s,onCopy:r,onSetAlias:()=>{},onDeleteAlias:()=>_(e.id),testStatus:u[e.id],onTest:S.length>0?()=>I(e.id):void 0,isTesting:b===e.id,isCustom:!0},`${e.id}-${e.type}`)),(0,a.jsxs)("button",{onClick:()=>k(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]})]})]}),(0,a.jsx)(j,{isOpen:w,onSave:async e=>{await O(e),k(!1)},onClose:()=>k(!1)})]})}h.propTypes={until:u().string.isRequired},b.propTypes={connection:u().shape({id:u().string,name:u().string,email:u().string,displayName:u().string,testStatus:u().string,isActive:u().bool,lastError:u().string,priority:u().number}).isRequired,proxyPools:u().array,isOAuth:u().bool.isRequired,isFirst:u().bool.isRequired,isLast:u().bool.isRequired,onMoveUp:u().func.isRequired,onMoveDown:u().func.isRequired,onToggleActive:u().func.isRequired,onUpdateProxy:u().func,onEdit:u().func.isRequired,onDelete:u().func.isRequired},y.propTypes={isOpen:u().bool.isRequired,provider:u().string,providerName:u().string,proxyPools:u().array,onSave:u().func.isRequired,onClose:u().func.isRequired},g.propTypes={providerId:u().string.isRequired,isOAuth:u().bool},f.propTypes={model:u().shape({id:u().string.isRequired}).isRequired,fullModel:u().string.isRequired,copied:u().string,onCopy:u().func.isRequired,testStatus:u().oneOf(["ok","error"]),isCustom:u().bool,isFree:u().bool,onDeleteAlias:u().func,onTest:u().func,isTesting:u().bool},j.propTypes={isOpen:u().bool.isRequired,onSave:u().func.isRequired,onClose:u().func.isRequired},v.propTypes={providerId:u().string.isRequired,kindFilter:u().string};let N={"google-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"hardcoded"},openai:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openai-tts-models",voiceKey:"openai-tts-voices",voicesPerModel:!0},openrouter:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openrouter-tts-models",voiceKey:"openrouter-tts-voices",voicesPerModel:!0},elevenlabs:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",modelKey:"elevenlabs-tts-models",apiEndpoint:"/api/media-providers/tts/elevenlabs/voices"},"edge-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"},"local-device":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"}};var w=s(33079);function k({label:e,children:t}){return(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted w-20 shrink-0",children:e}),(0,a.jsx)("div",{className:"flex-1",children:t})]})}let S=`// Audio will appear here after running.
|
|
2
|
-
// Example JSON response (response_format=json):
|
|
3
|
-
{
|
|
4
|
-
"format": "mp3",
|
|
5
|
-
"audio": "//NExAANaAIIAUAAANNNNNNNN..." // base64 encoded MP3
|
|
6
|
-
}`,C=`{
|
|
7
|
-
"object": "list",
|
|
8
|
-
"data": [{
|
|
9
|
-
"object": "embedding",
|
|
10
|
-
"index": 0,
|
|
11
|
-
"embedding": [0.002301, -0.019212, 0.004815, -0.031249, ...]
|
|
12
|
-
}],
|
|
13
|
-
"model": "...",
|
|
14
|
-
"usage": { "prompt_tokens": 9, "total_tokens": 9 }
|
|
15
|
-
}`,$={webSearch:{inputLabel:"Query",inputPlaceholder:"What is the latest news about AI?",defaultInput:"What is the latest news about AI?",bodyKey:"query",defaultResponse:`{
|
|
16
|
-
"results": [
|
|
17
|
-
{ "title": "...", "url": "...", "snippet": "..." }
|
|
18
|
-
]
|
|
19
|
-
}`},webFetch:{inputLabel:"URL",inputPlaceholder:"https://example.com",defaultInput:"https://example.com",bodyKey:"url",defaultResponse:`{
|
|
20
|
-
"content": "...",
|
|
21
|
-
"title": "...",
|
|
22
|
-
"url": "..."
|
|
23
|
-
}`},image:{inputLabel:"Prompt",inputPlaceholder:"A cute cat wearing a hat",defaultInput:"A cute cat wearing a hat",bodyKey:"prompt",defaultResponse:`{
|
|
24
|
-
"data": [
|
|
25
|
-
{ "url": "...", "b64_json": "..." }
|
|
26
|
-
]
|
|
27
|
-
}`},imageToText:{inputLabel:"Image URL",inputPlaceholder:"https://example.com/image.png",defaultInput:"https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg",bodyKey:"url",extraBody:{prompt:"Describe this image in detail"},defaultResponse:`{
|
|
28
|
-
"text": "A cat sitting on a windowsill...",
|
|
29
|
-
"model": "..."
|
|
30
|
-
}`},stt:{inputLabel:"Audio URL",inputPlaceholder:"https://example.com/audio.mp3",defaultInput:"",bodyKey:"url",defaultResponse:`{
|
|
31
|
-
"text": "Hello world...",
|
|
32
|
-
"model": "..."
|
|
33
|
-
}`},video:{inputLabel:"Prompt",inputPlaceholder:"A serene lake at sunset",defaultInput:"A serene lake at sunset",bodyKey:"prompt",defaultResponse:`{
|
|
34
|
-
"data": [
|
|
35
|
-
{ "url": "..." }
|
|
36
|
-
]
|
|
37
|
-
}`},music:{inputLabel:"Prompt",inputPlaceholder:"A calm piano melody",defaultInput:"A calm piano melody",bodyKey:"prompt",defaultResponse:`{
|
|
38
|
-
"data": [
|
|
39
|
-
{ "url": "...", "format": "mp3" }
|
|
40
|
-
]
|
|
41
|
-
}`}};function P({providerId:e}){let t=(0,c.wG)(e),s=(0,x.KC)(e).filter(e=>"embedding"===e.type),[r,o]=(0,l.useState)(s[0]?.id??""),[i,d]=(0,l.useState)("The quick brown fox jumps over the lazy dog"),[m,u]=(0,l.useState)(""),[h,b]=(0,l.useState)(!1),[y,g]=(0,l.useState)(""),[f,j]=(0,l.useState)(""),[v,N]=(0,l.useState)(null),[w,S]=(0,l.useState)(!1),[$,T]=(0,l.useState)(""),{copied:A,copy:R}=(0,p.C)(),{copied:O,copy:_}=(0,p.C)();(0,l.useEffect)(()=>{g(window.location.origin),fetch("/api/keys").then(e=>e.json()).then(e=>{u((e.keys||[]).find(e=>!1!==e.isActive)?.key||"")}).catch(()=>{}),fetch("/api/tunnel/status").then(e=>e.json()).then(e=>{e.publicUrl&&j(e.publicUrl)}).catch(()=>{})},[]);let I=h?f:y,E=r?`${t}/${r}`:"",K=`curl -X POST ${I}/v1/embeddings \\
|
|
42
|
-
-H "Content-Type: application/json" \\
|
|
43
|
-
-H "Authorization: Bearer ${m||"YOUR_KEY"}" \\
|
|
44
|
-
-d '{"model": "${E}", "input": "${i}"}'`,L=async()=>{if(!i.trim()||!E)return;S(!0),T(""),N(null);let e=Date.now();try{let t={"Content-Type":"application/json"};m&&(t.Authorization=`Bearer ${m}`);let s=await fetch("/api/v1/embeddings",{method:"POST",headers:t,body:JSON.stringify({model:E,input:i.trim()})}),a=Date.now()-e,r=await s.json();if(!s.ok)return void T(r?.error?.message||r?.error||`HTTP ${s.status}`);N({data:r,latencyMs:a})}catch(e){T(e.message||"Network error")}finally{S(!1)}},U=v?JSON.stringify(v.data,null,2):"";return(0,a.jsxs)(n.Zp,{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,a.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,a.jsx)(k,{label:"Model",children:(0,a.jsx)("select",{value:r,onChange:e=>o(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:s.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name||e.id},e.id))})}),(0,a.jsx)(k,{label:"Endpoint",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{value:I,onChange:e=>h?j(e.target.value):g(e.target.value),className:"flex-1 px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono",placeholder:"http://localhost:3000"}),f&&(0,a.jsxs)("button",{onClick:()=>b(e=>!e),title:h?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${h?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,a.jsx)(k,{label:"API Key",children:(0,a.jsx)("input",{type:"password",value:m,onChange:e=>u(e.target.value),placeholder:"sk-...",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),(0,a.jsx)(k,{label:"Input",children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("input",{value:i,onChange:e=>d(e.target.value),className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}),i&&(0,a.jsx)("button",{type:"button",onClick:()=>d(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})}),(0,a.jsxs)("div",{className:"mt-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("button",{onClick:()=>R(K),className:"flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:A?"check":"content_copy"}),A?"Copied":"Copy"]}),(0,a.jsxs)("button",{onClick:L,disabled:w||!i.trim()||!E,className:"flex items-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:w?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),w?"Running...":"Run"]})]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre",children:K})]}),$&&(0,a.jsx)("p",{className:"text-xs text-red-500 break-words",children:$}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",v&&(0,a.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",v.latencyMs,"ms"]})]}),v&&(0,a.jsxs)("button",{onClick:()=>_(U),className:"flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:O?"check":"content_copy"}),O?"Copied":"Copy"]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre opacity-70",children:(e=>{if(!e)return C;let t=JSON.parse(JSON.stringify(e));return(t.data||[]).forEach(e=>{Array.isArray(e.embedding)&&e.embedding.length>4&&(e.embedding=[...e.embedding.slice(0,4).map(e=>parseFloat(e.toFixed(6))),`... (${e.embedding.length} dims)`])}),JSON.stringify(t,null,2)})(v?.data)})]})]})]})}function T({providerId:e}){let t=(0,c.wG)(e),s=N[e]||N["edge-tts"],[r,o]=(0,l.useState)(""),[i,d]=(0,l.useState)(""),[m,u]=(0,l.useState)(""),[h,b]=(0,l.useState)([]),[y,g]=(0,l.useState)(""),[f,j]=(0,l.useState)(()=>{if(s.hasModelSelector&&s.modelKey){let e=(0,x.KC)(s.modelKey);return e?.[0]?.id||""}return""}),[v,C]=(0,l.useState)("Hello, this is a text to speech test."),[$,P]=(0,l.useState)(""),[A,R]=(0,l.useState)(!1),[O,_]=(0,l.useState)(""),[I,E]=(0,l.useState)(""),[K,L]=(0,l.useState)("mp3"),[U,D]=(0,l.useState)(""),[M,q]=(0,l.useState)(null),[B,F]=(0,l.useState)(!1),[J,z]=(0,l.useState)(""),[H,W]=(0,l.useState)(null),{copied:V,copy:Y}=(0,p.C)(),[G,Z]=(0,l.useState)(!1),[X,Q]=(0,l.useState)([]),[ee,et]=(0,l.useState)(!1),[es,ea]=(0,l.useState)(""),[er,eo]=(0,l.useState)(""),[ei,el]=(0,l.useState)({});(0,l.useEffect)(()=>{if(_(window.location.origin),fetch("/api/keys").then(e=>e.json()).then(e=>{P((e.keys||[]).find(e=>!1!==e.isActive)?.key||"")}).catch(()=>{}),fetch("/api/tunnel/status").then(e=>e.json()).then(e=>{e.publicUrl&&E(e.publicUrl)}).catch(()=>{}),"hardcoded"===s.voiceSource){let t=s.hasModelSelector&&s.modelKey&&(0,x.KC)(s.modelKey)?.[0]?.id||"",a=s.voicesPerModel&&t?(0,w.jY)(e,t)||[]:(0,x.KC)(s.voiceKey||e).filter(e=>"tts"===e.type);if(a.length)if(s.hasBrowseButton){let e=a.find(e=>"en"===e.id)||a[0];g(e.id),o(e.id),d(e.name),b([{id:e.id,name:e.name}])}else b(a),o(a[0].id),d(a[0].name||a[0].id)}},[e]),(0,l.useEffect)(()=>{if(!s.voicesPerModel||!f)return;let t=(0,w.jY)(e,f)||[];b(t),t.length&&(o(t[0].id),d(t[0].name||t[0].id))},[f]);let en=async()=>{if(Z(!0),ea(""),eo(""),!X.length){et(!0);try{if("hardcoded"===s.voiceSource){let t=s.voiceKey||e,a=(0,x.KC)(t).filter(e=>"tts"===e.type),r={};for(let e of a)r[e.id]||(r[e.id]={code:e.id,name:e.name,voices:[{id:e.id,name:e.name}]});el(r),Q(Object.values(r).sort((e,t)=>e.name.localeCompare(t.name)))}else{let t=s.apiEndpoint?s.apiEndpoint:`/api/media-providers/tts/voices?provider=${"local-device"===e?"local-device":"edge-tts"}`,a=await fetch(t),r=await a.json();if(r.error)return void eo(r.error);Q(r.languages||[]),el(r.byLang||{})}}catch(e){eo(e.message)}finally{et(!1)}}},ed=es?X.filter(e=>e.name.toLowerCase().includes(es.toLowerCase())||e.code.toLowerCase().includes(es.toLowerCase())):X,ec=A?I:O,ex=s.hasVoiceIdInput?m:r,ep=s.hasModelSelector&&ex&&f?`${t}/${f}/${ex}`:ex?`${t}/${ex}`:"",em=`curl -X POST ${ec}/v1/audio/speech${"json"===K?"?response_format=json":""} \\
|
|
45
|
-
-H "Content-Type: application/json" \\
|
|
46
|
-
-H "Authorization: Bearer ${$||"YOUR_KEY"}" \\
|
|
47
|
-
-d '{"model": "${ep}", "input": "${v}"}' \\
|
|
48
|
-
${"json"===K?"":"--output speech.mp3"}`,eu=async()=>{if(!v.trim()||!ep)return;F(!0),z(""),D(""),q(null);let e=Date.now();try{let t={"Content-Type":"application/json"};$&&(t.Authorization=`Bearer ${$}`);let s=`/api/v1/audio/speech${"json"===K?"?response_format=json":""}`,a=await fetch(s,{method:"POST",headers:t,body:JSON.stringify({model:ep,input:v.trim()})});if(W(Date.now()-e),!a.ok){let e=await a.json().catch(()=>({}));z(e?.error?.message||e?.error||`HTTP ${a.status}`);return}if("json"===K){let e=await a.json();q(e);let t=await fetch(`data:audio/mp3;base64,${e.audio}`).then(e=>e.blob());D(URL.createObjectURL(t))}else{let e=await a.blob();D(URL.createObjectURL(e))}}catch(e){z(e.message||"Network error")}finally{F(!1)}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.Zp,{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,a.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,a.jsx)(k,{label:"Endpoint",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("span",{className:"flex-1 px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate",children:[ec,"/v1/audio/speech"]}),I&&(0,a.jsxs)("button",{onClick:()=>R(e=>!e),title:A?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${A?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,a.jsx)(k,{label:"API Key",children:(0,a.jsx)("span",{className:"px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate block",children:$?`${$.slice(0,8)}${"•".repeat(Math.min(20,$.length-8))}`:(0,a.jsx)("span",{className:"text-text-muted italic",children:"No key configured"})})}),s.hasModelSelector&&s.modelKey&&(0,a.jsx)(k,{label:"Model",children:(0,a.jsx)("select",{value:f,onChange:e=>j(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:((0,x.KC)(s.modelKey)||[]).map(e=>(0,a.jsx)("option",{value:e.id,children:e.name||e.id},e.id))})}),s.hasBrowseButton&&(0,a.jsx)(k,{label:"Language",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("button",{onClick:en,className:"flex-1 px-3 py-1.5 text-sm border border-border rounded-lg bg-background font-mono truncate text-left hover:border-primary/40 transition-colors",children:y?(0,a.jsx)("span",{className:"text-text-main",children:X.find(e=>e.code===y)?.name||y}):(0,a.jsx)("span",{className:"text-text-muted",children:"No language selected"})}),(0,a.jsxs)("button",{onClick:en,className:"flex items-center gap-1 text-xs px-2.5 py-1.5 rounded-lg border border-border text-text-muted hover:text-primary hover:border-primary/40 transition-colors shrink-0",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"language"}),"Select language"]})]})}),h.length>0&&(0,a.jsx)(k,{label:"Voice",children:(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:h.map(e=>(0,a.jsxs)("button",{onClick:()=>{o(e.id),d(e.name),s.hasVoiceIdInput&&u(e.id)},className:`px-2.5 py-1 rounded-full text-xs border transition-colors ${r===e.id?"bg-primary/15 border-primary/40 text-primary font-medium":"border-border text-text-muted hover:text-primary hover:border-primary/40"}`,children:[e.name,e.gender?` \xb7 ${e.gender[0].toUpperCase()}`:"",!0===e.free_users_allowed&&(0,a.jsx)("span",{className:"ml-1.5 px-1 py-0.5 text-[9px] font-semibold rounded bg-green-500/15 text-green-600 border border-green-500/20",children:"Free"}),!1===e.free_users_allowed&&(0,a.jsx)("span",{className:"ml-1.5 px-1 py-0.5 text-[9px] font-semibold rounded bg-amber-500/15 text-amber-600 border border-amber-500/20",children:"Paid"})]},e.id))})}),s.hasVoiceIdInput&&(0,a.jsx)(k,{label:"Voice ID",children:(0,a.jsx)("div",{className:"flex flex-col gap-1",children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("input",{value:m,onChange:e=>{u(e.target.value),o(e.target.value)},placeholder:"e.g. CwhRBWXzGAHq8TQ4Fs17",className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"}),m&&(0,a.jsx)("button",{type:"button",onClick:()=>{u(""),o("")},className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})})}),s.hasLanguageDropdown&&(0,a.jsx)(k,{label:"Language",children:(0,a.jsx)("select",{value:r,onChange:t=>{let s=(0,x.KC)(e).filter(e=>"tts"===e.type).find(e=>e.id===t.target.value);o(t.target.value),d(s?.name||t.target.value)},className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:(0,x.KC)(e).filter(e=>"tts"===e.type).map(e=>(0,a.jsx)("option",{value:e.id,children:e.name||e.id},e.id))})}),(0,a.jsx)(k,{label:"Input",children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("input",{value:v,onChange:e=>C(e.target.value),className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}),v&&(0,a.jsx)("button",{type:"button",onClick:()=>C(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})}),(0,a.jsx)(k,{label:"Output Format",children:(0,a.jsxs)("select",{value:K,onChange:e=>L(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,a.jsx)("option",{value:"mp3",children:"MP3 (Binary)"}),(0,a.jsx)("option",{value:"json",children:"JSON (Base64)"})]})}),(0,a.jsxs)("div",{className:"mt-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("button",{onClick:()=>Y(em),className:"flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:V?"check":"content_copy"}),V?"Copied":"Copy"]}),(0,a.jsxs)("button",{onClick:eu,disabled:B||!v.trim()||!ep,className:"flex items-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:B?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),B?"Generating...":"Run"]})]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre",children:em})]}),J&&(0,a.jsx)("p",{className:"text-xs text-red-500 break-words",children:J}),U?(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",H&&(0,a.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",H,"ms"]})]}),(0,a.jsxs)("a",{href:U,download:"speech.mp3",className:"flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"download"}),"Download"]})]}),(0,a.jsx)("audio",{controls:!0,src:U,className:"w-full"}),M&&(0,a.jsxs)("div",{className:"mt-3",children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-1.5",children:(0,a.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"JSON Response"})}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:JSON.stringify({format:M.format,audio:M.audio?`${M.audio.substring(0,100)}...`:""},null,2)})]})]}):(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Response"}),(0,a.jsx)("pre",{className:"mt-1.5 bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre opacity-50",children:S})]})]})]}),G&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.6)",backdropFilter:"blur(2px)"},onClick:()=>Z(!1),children:(0,a.jsxs)("div",{className:"border border-border rounded-xl shadow-2xl w-full max-w-md mx-4 flex flex-col max-h-[80vh]",style:{backgroundColor:"var(--color-bg)",isolation:"isolate"},onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border shrink-0 rounded-t-xl",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold",children:"Select Language"}),(0,a.jsx)("button",{onClick:()=>Z(!1),className:"text-text-muted hover:text-primary transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,a.jsx)("div",{className:"px-4 py-2.5 border-b border-border shrink-0",children:(0,a.jsx)("input",{autoFocus:!0,value:es,onChange:e=>ea(e.target.value),placeholder:"Search language...",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),(0,a.jsxs)("div",{className:"overflow-y-auto flex-1 p-2",children:[er&&(0,a.jsx)("p",{className:"text-xs text-red-500 px-2 py-1",children:er}),ee?(0,a.jsx)("p",{className:"text-xs text-text-muted px-2 py-3",children:"Loading..."}):(0,a.jsxs)("div",{className:"flex flex-col gap-0.5",children:[ed.map(e=>(0,a.jsxs)("button",{onClick:()=>{let t;return Z(!1),g(e.code),void(b(t=ei[e.code]?.voices||[]),t.length&&(o(t[0].id),d(t[0].name),s.hasVoiceIdInput&&u(t[0].id)))},className:`flex items-center justify-between w-full px-3 py-2 rounded-lg text-left hover:bg-sidebar transition-colors ${y===e.code?"bg-primary/10 text-primary":""}`,children:[(0,a.jsx)("span",{className:"text-sm",children:e.name}),(0,a.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:[e.voices.length," voices"]}),y===e.code&&(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary",children:"check"})]})]},e.code)),0===ed.length&&(0,a.jsx)("p",{className:"text-xs text-text-muted px-2 py-3",children:"No languages found."})]})]})]})})]})}function A({providerId:e,kind:t}){let s=(0,c.wG)(e),r=c.rj.find(e=>e.id===t),o=$[t];if(!r||!o)return null;let i=(0,x.KC)(e).filter(e=>e.type===t),[d,m]=(0,l.useState)(i[0]?.id??""),[u,h]=(0,l.useState)(o.defaultInput),[b,y]=(0,l.useState)(""),[g,f]=(0,l.useState)(!1),[j,v]=(0,l.useState)(""),[N,w]=(0,l.useState)(""),[S,C]=(0,l.useState)(null),[P,T]=(0,l.useState)(!1),[R,O]=(0,l.useState)(""),{copied:_,copy:I}=(0,p.C)(),{copied:E,copy:K}=(0,p.C)();(0,l.useEffect)(()=>{v(window.location.origin),fetch("/api/keys").then(e=>e.json()).then(e=>{y((e.keys||[]).find(e=>!1!==e.isActive)?.key||"")}).catch(()=>{}),fetch("/api/tunnel/status").then(e=>e.json()).then(e=>{e.publicUrl&&w(e.publicUrl)}).catch(()=>{})},[]);let L=g?N:j,U=r.endpoint.path,D=d?`${s}/${d}`:"",M={model:D,[o.bodyKey]:u,...o.extraBody},q=`curl -X ${r.endpoint.method} ${L}${U} \\
|
|
49
|
-
-H "Content-Type: application/json" \\
|
|
50
|
-
-H "Authorization: Bearer ${b||"YOUR_KEY"}" \\
|
|
51
|
-
-d '${JSON.stringify(M)}'`,B=async()=>{if(!u.trim()||!D)return;T(!0),O(""),C(null);let e=Date.now();try{let t={"Content-Type":"application/json"};b&&(t.Authorization=`Bearer ${b}`);let s={...M,model:D},a=await fetch(`/api${U}`,{method:r.endpoint.method,headers:t,body:JSON.stringify(s)}),o=Date.now()-e,i=await a.json();if(!a.ok)return void O(i?.error?.message||i?.error||`HTTP ${a.status}`);C({data:i,latencyMs:o})}catch(e){O(e.message||"Network error")}finally{T(!1)}},F=S?JSON.stringify(S.data,null,2):"";return(0,a.jsxs)(n.Zp,{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,a.jsxs)("div",{className:"flex flex-col gap-2.5",children:[i.length>0&&(0,a.jsx)(k,{label:"Model",children:(0,a.jsx)("select",{value:d,onChange:e=>m(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:i.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name||e.id},e.id))})}),(0,a.jsx)(k,{label:"Endpoint",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("span",{className:"flex-1 px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate",children:[L,U]}),N&&(0,a.jsxs)("button",{onClick:()=>f(e=>!e),title:g?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${g?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,a.jsx)(k,{label:"API Key",children:(0,a.jsx)("span",{className:"px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate block",children:b?`${b.slice(0,8)}${"•".repeat(Math.min(20,b.length-8))}`:(0,a.jsx)("span",{className:"text-text-muted italic",children:"No key configured"})})}),(0,a.jsx)(k,{label:o.inputLabel,children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("input",{value:u,onChange:e=>h(e.target.value),placeholder:o.inputPlaceholder,className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}),u&&(0,a.jsx)("button",{type:"button",onClick:()=>h(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})}),(0,a.jsxs)("div",{className:"mt-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("button",{onClick:()=>I(q),className:"flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:_?"check":"content_copy"}),_?"Copied":"Copy"]}),(0,a.jsxs)("button",{onClick:B,disabled:P||!u.trim()||!D,className:"flex items-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:P?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),P?"Running...":"Run"]})]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre",children:q})]}),R&&(0,a.jsx)("p",{className:"text-xs text-red-500 break-words",children:R}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,a.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",S&&(0,a.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",S.latencyMs,"ms"]})]}),S&&(0,a.jsxs)("button",{onClick:()=>K(F),className:"flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:E?"check":"content_copy"}),E?"Copied":"Copy"]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre opacity-70",children:S?F:o.defaultResponse}),"image"===t&&S?.data?.data?.[0]&&(0,a.jsx)("img",{src:S.data.data[0].b64_json?`data:image/png;base64,${S.data.data[0].b64_json}`:S.data.data[0].url,alt:"Generated",className:"max-w-full rounded-lg border border-border mt-2"})]})]})]})}function R(){let{kind:e,id:t}=(0,r.useParams)(),s=c.rj.find(t=>t.id===e);if(!s)return(0,r.notFound)();let o=c.Q2[t];if(!o)return(0,r.notFound)();let l=o.serviceKinds??["llm"];return l.includes(e)?(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)(i(),{href:`/dashboard/media-providers/${e}`,className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),s.label]}),(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)("div",{className:"size-12 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${o.color}15`},children:(0,a.jsx)(d.A,{src:`/providers/${o.id}.png`,alt:o.name,size:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",fallbackText:o.textIcon||o.id.slice(0,2).toUpperCase(),fallbackColor:o.color})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:o.name}),(0,a.jsx)("div",{className:"flex items-center gap-1.5 mt-1 flex-wrap",children:l.map(t=>(0,a.jsx)(n.Ex,{variant:t===e?"primary":"default",size:"sm",children:t.toUpperCase()},t))})]})]})]}),o.noAuth?(0,a.jsx)(n.Zp,{children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-full bg-green-500/10 text-green-500",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"lock_open"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:"No authentication required"}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"This provider is ready to use."})]})]})}):(0,a.jsx)(g,{providerId:t,isOAuth:!1}),"tts"!==e&&(0,a.jsx)(v,{providerId:t,kindFilter:e}),"embedding"===e&&(0,a.jsx)(P,{providerId:t}),"tts"===e&&(0,a.jsx)(T,{providerId:t}),$[e]&&(0,a.jsx)(A,{providerId:t,kind:e})]}):(0,r.notFound)()}}},e=>{e.O(0,[2574,3862,1051,1321,5497,8441,3794,7358],()=>e(e.s=42661)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6620],{16144:(e,s,r)=>{"use strict";r.r(s),r.d(s,{default:()=>u});var t=r(95155),i=r(73321),n=r(98500),l=r.n(n),a=r(12115),c=r(35497),d=r(57250),o=r(52679);function x(e){let s=Object.entries(e).some(([e,s])=>e.startsWith("modelLock_")&&s&&new Date(s).getTime()>Date.now());return"unavailable"!==e.testStatus||s?e.testStatus:"active"}function h({provider:e,kind:s,connections:r}){let i=o.Q2[e.id],n=!!i?.noAuth,a=r.filter(s=>s.provider===e.id),u=a.filter(e=>{let s=x(e);return"active"===s||"success"===s}).length,m=a.filter(e=>{let s=x(e);return"error"===s||"expired"===s||"unavailable"===s}).length,p=a.length,f=p>0&&a.every(e=>!1===e.isActive);return(0,t.jsx)(l(),{href:`/dashboard/media-providers/${s}/${e.id}`,className:"group",children:(0,t.jsx)(c.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${f?"opacity-50":""}`,children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"size-8 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${e.color?.length>7?e.color:(e.color??"#888")+"15"}`},children:(0,t.jsx)(d.A,{src:`/providers/${e.id}.png`,alt:e.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:e.textIcon||e.id.slice(0,2).toUpperCase(),fallbackColor:e.color})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-semibold text-sm",children:e.name}),(0,t.jsx)("div",{className:"flex items-center gap-2 mt-0.5 flex-wrap",children:n?(0,t.jsx)(c.Ex,{variant:"success",size:"sm",children:"Ready"}):f?(0,t.jsx)(c.Ex,{variant:"default",size:"sm",children:"Disabled"}):0===p?(0,t.jsx)("span",{className:"text-xs text-text-muted",children:"No connections"}):(0,t.jsxs)(t.Fragment,{children:[u>0&&(0,t.jsxs)(c.Ex,{variant:"success",size:"sm",dot:!0,children:[u," Connected"]}),m>0&&(0,t.jsxs)(c.Ex,{variant:"error",size:"sm",dot:!0,children:[m," Error"]}),0===u&&0===m&&(0,t.jsxs)(c.Ex,{variant:"default",size:"sm",children:[p," Added"]})]})})]})]})})})}function u(){let{kind:e}=(0,i.useParams)(),[s,r]=(0,a.useState)([]),n=o.rj.find(s=>s.id===e);if(!n)return(0,i.notFound)();let l=(0,o.o5)(e);return(0,a.useEffect)(()=>{fetch("/api/providers",{cache:"no-store"}).then(e=>e.json()).then(e=>r(e.connections||[])).catch(()=>{})},[]),(0,t.jsx)("div",{className:"flex flex-col gap-6",children:0===l.length?(0,t.jsxs)("div",{className:"text-center py-12 border border-dashed border-border rounded-xl text-text-muted text-sm",children:["No providers support ",(0,t.jsx)("strong",{children:n.label})," yet."]}):(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:l.map(r=>(0,t.jsx)(h,{provider:r,kind:e,connections:s},r.id))})})}},55973:(e,s,r)=>{Promise.resolve().then(r.bind(r,16144))}},e=>{e.O(0,[2574,3862,1051,1321,5497,8441,3794,7358],()=>e(e.s=55973)),_N_E=e.O()}]);
|
package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-6d84cac6ca90a61c.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2134],{17721:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>C});var i=s(95155),a=s(12115),r=s(73321),l=s(98500),o=s.n(l),n=s(5772),d=s(35497),c=s(52679),p=s(28777),x=s(11059);let m=new Map;async function u(e){if(!e?.url||!e?.type)return[];let t=m.get(e.url);if(t&&Date.now()<t.expiresAt)return t.data;try{let t=new URLSearchParams({url:e.url,type:e.type}),s=await fetch(`/api/providers/suggested-models?${t}`);if(!s.ok)return[];let i=(await s.json()).data??[];return m.set(e.url,{data:i,expiresAt:Date.now()+6e5}),i}catch{return[]}}var h=s(14051),y=s.n(h);function f({model:e,fullModel:t,alias:s,copied:a,onCopy:r,testStatus:l,isCustom:o,isFree:n,onDeleteAlias:d,onTest:c,isTesting:p}){let x="ok"===l?"#22c55e":"error"===l?"#ef4444":void 0;return(0,i.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===l?"border-green-500/40":"error"===l?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-base",style:x?{color:x}:void 0,children:"ok"===l?"check_circle":"error"===l?"cancel":"smart_toy"}),(0,i.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,i.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),e.name&&(0,i.jsx)("span",{className:"text-[9px] text-text-muted/70 italic pl-1",children:e.name})]}),c&&(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:c,disabled:p,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${p?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",style:p?{animation:"spin 1s linear infinite"}:void 0,children:p?"progress_activity":"science"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:p?"Testing...":"Test"})]}),(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:()=>r(t,`model-${e.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:a===`model-${e.id}`?"check":"content_copy"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:a===`model-${e.id}`?"Copied!":"Copy"})]}),o&&(0,i.jsx)("button",{onClick:d,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function g({modelId:e,fullModel:t,copied:s,onCopy:a,onDeleteAlias:r,onTest:l,testStatus:o,isTesting:n}){let d="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,i.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",style:d?{color:d}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"text-sm font-medium truncate",children:e}),(0,i.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,i.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:()=>a(t,`model-${e}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:s===`model-${e}`?"check":"content_copy"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:s===`model-${e}`?"Copied!":"Copy"})]}),l&&(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:l,disabled:n,className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-colors",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",style:n?{animation:"spin 1s linear infinite"}:void 0,children:n?"progress_activity":"science"})}),(0,i.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:n?"Testing...":"Test"})]})]})]}),(0,i.jsx)("button",{onClick:r,className:"p-1 hover:bg-red-50 rounded text-red-500",title:"Remove model",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"delete"})})]})}function b({providerStorageAlias:e,providerDisplayAlias:t,modelAliases:s,copied:r,onCopy:l,onSetAlias:o,onDeleteAlias:n,connections:c,isAnthropic:p}){let[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(!1),[v,j]=(0,a.useState)(null),[N,k]=(0,a.useState)({}),w=async t=>{if(!v){j(t);try{let s=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${e}/${t}`})}),i=await s.json();k(e=>({...e,[t]:i.ok?"ok":"error"}))}catch{k(e=>({...e,[t]:"error"}))}finally{j(null)}}},C=Object.entries(s).filter(([,t])=>t.startsWith(`${e}/`)).map(([t,s])=>({modelId:s.replace(`${e}/`,""),fullModel:s,alias:t})),S=i=>{let a,r=`${e}/${i}`;if(Object.values(s).includes(r))return null;let l=(a=i.split("/"))[a.length-1];if(!s[l])return l;let o=`${t}-${l}`;return s[o]?null:o},A=async()=>{if(!x.trim()||u)return;let t=x.trim(),s=S(t);if(!s)return void alert("All suggested aliases already exist. Please choose a different model or remove conflicting aliases.");h(!0);try{await o(t,s,e),m("")}catch(e){console.log("Error adding model:",e)}finally{h(!1)}},$=async()=>{if(y)return;let t=c.find(e=>!1!==e.isActive);if(t){f(!0);try{let s=await fetch(`/api/providers/${t.id}/models`),i=await s.json();if(!s.ok)return void alert(i.error||"Failed to import models");let a=i.models||[];if(0===a.length)return void alert("No models returned from /models.");let r=0;for(let t of a){let s=t.id||t.name||t.model;if(!s)continue;let i=S(s);i&&(await o(s,i,e),r+=1)}0===r&&alert("No new models were added.")}catch(e){console.log("Error importing models:",e)}finally{f(!1)}}},P=c.some(e=>!1!==e.isActive);return(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsxs)("p",{className:"text-sm text-text-muted",children:["Add ",p?"Anthropic":"OpenAI","-compatible models manually or import them from the /models endpoint."]}),(0,i.jsxs)("div",{className:"flex items-end gap-2 flex-wrap",children:[(0,i.jsxs)("div",{className:"flex-1 min-w-[240px]",children:[(0,i.jsx)("label",{htmlFor:"new-compatible-model-input",className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,i.jsx)("input",{id:"new-compatible-model-input",type:"text",value:x,onChange:e=>m(e.target.value),onKeyDown:e=>"Enter"===e.key&&A(),placeholder:p?"claude-3-opus-20240229":"gpt-4o",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})]}),(0,i.jsx)(d.$n,{size:"sm",icon:"add",onClick:A,disabled:!x.trim()||u,children:u?"Adding...":"Add"}),(0,i.jsx)(d.$n,{size:"sm",variant:"secondary",icon:"download",onClick:$,disabled:!P||y,children:y?"Importing...":"Import from /models"})]}),!P&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:"Add a connection to enable importing models."}),C.length>0&&(0,i.jsx)("div",{className:"flex flex-col gap-3",children:C.map(({modelId:e,fullModel:s,alias:a})=>(0,i.jsx)(g,{modelId:e,fullModel:`${t}/${e}`,copied:r,onCopy:l,onDeleteAlias:()=>n(a),onTest:c.length>0?()=>w(e):void 0,testStatus:N[e],isTesting:v===e},s))})]})}function v({until:e}){let[t,s]=(0,a.useState)("");return((0,a.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void s("");let i=Math.floor(t/1e3);if(i<60)s(`${i}s`);else if(i<3600)s(`${Math.floor(i/60)}m ${i%60}s`);else{let e=Math.floor(i/3600),t=Math.floor(i%3600/60);s(`${e}h ${t}m`)}};t();let i=setInterval(t,1e3);return()=>clearInterval(i)},[e]),t)?(0,i.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function j({connection:e,proxyPools:t,isOAuth:s,isFirst:r,isLast:l,onMoveUp:o,onMoveDown:n,onToggleActive:c,onUpdateProxy:p,onEdit:x,onDelete:m}){let[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(!1),g=(0,a.useRef)(null),b=new Map((t||[]).map(e=>[e.id,e])),N=e.providerSpecificData?.proxyPoolId||null,k=N?b.get(N):null,w=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,C=!!N||w,S=k?`Pool: ${k.name}`:N?`Pool: ${N} (inactive/missing)`:w?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",A="";if(k?.proxyUrl||e.providerSpecificData?.connectionProxyUrl){let t=k?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;try{let e=new URL(t);A=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{A=t}}let $=k?.noProxy||e.providerSpecificData?.connectionNoProxy||"",P="default";k?.isActive===!0?P="success":(N||w)&&(P="error"),(0,a.useEffect)(()=>{if(!u)return;let e=e=>{g.current&&!g.current.contains(e.target)&&h(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[u]);let T=async e=>{f(!0);try{await p("__none__"===e?null:e)}finally{f(!1),h(!1)}},O=s?e.name||e.email||e.displayName||"OAuth Account":e.name,[E,R]=(0,a.useState)(!1),_=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>!!e).sort()[0]||null;(0,a.useEffect)(()=>{let t=()=>{R(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let s=_?setInterval(t,1e3):null;return()=>{s&&clearInterval(s)}},[_]);let I="unavailable"!==e.testStatus||E?e.testStatus:"active";return(0,i.jsxs)("div",{className:`group flex items-center justify-between p-2 rounded-lg hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===e.isActive?"opacity-60":""}`,children:[(0,i.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,i.jsxs)("div",{className:"flex flex-col",children:[(0,i.jsx)("button",{onClick:o,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,i.jsx)("button",{onClick:n,disabled:l,className:`p-0.5 rounded ${l?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,i.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:s?"lock":"key"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:"text-sm font-medium truncate",children:O}),(0,i.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,i.jsx)(d.Ex,{variant:!1===e.isActive?"default":"active"===I||"success"===I?"success":"error"===I||"expired"===I||"unavailable"===I?"error":"default",size:"sm",dot:!0,children:!1===e.isActive?"disabled":I||"Unknown"}),C&&(0,i.jsx)(d.Ex,{variant:P,size:"sm",children:"Proxy"}),E&&!1!==e.isActive&&(0,i.jsx)(v,{until:_}),e.lastError&&!1!==e.isActive&&(0,i.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:e.lastError,children:e.lastError}),(0,i.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]}),e.globalPriority&&(0,i.jsxs)("span",{className:"text-xs text-text-muted",children:["Auto: ",e.globalPriority]})]}),C&&(0,i.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,i.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:S,children:S}),A&&(0,i.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:A}),$&&(0,i.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:$,children:["no_proxy: ",$]})]})]})]}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsxs)("div",{className:"flex gap-1",children:[(t||[]).length>0&&(0,i.jsxs)("div",{className:"relative",ref:g,children:[(0,i.jsxs)("button",{onClick:()=>h(e=>!e),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${C?"text-primary":"text-text-muted hover:text-primary"}`,disabled:y,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:y?"progress_activity":"lan"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),u&&(0,i.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,i.jsx)("button",{onClick:()=>T("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!N?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,i.jsx)("button",{onClick:()=>T(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${N===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),(0,i.jsxs)("button",{onClick:x,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,i.jsxs)("button",{onClick:m,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,i.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,i.jsx)(d.lM,{size:"sm",checked:e.isActive??!0,onChange:c,title:e.isActive??!0?"Disable connection":"Enable connection"})]})]})}function N({isOpen:e,provider:t,providerName:s,isCompatible:r,isAnthropic:l,authType:o,authHint:n,website:c,proxyPools:p,onSave:x,onClose:m}){let u="__none__",h="ollama-local"===t,y="cookie"===o,f=y?"Cookie Value":"API Key",g="azure"===t,[b,v]=(0,a.useState)({name:"",apiKey:"",priority:1,proxyPoolId:u,ollamaHostUrl:""}),[j,k]=(0,a.useState)({azureEndpoint:"",apiVersion:"2024-10-01-preview",deployment:"",organization:""}),[w,C]=(0,a.useState)(!1),[S,A]=(0,a.useState)(null),[$,P]=(0,a.useState)(!1),T=()=>h&&b.ollamaHostUrl.trim()?{baseUrl:b.ollamaHostUrl.trim()}:g?{azureEndpoint:j.azureEndpoint,apiVersion:j.apiVersion,deployment:j.deployment,organization:j.organization}:void 0,O=async()=>{C(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:b.apiKey,providerSpecificData:T()})}),s=await e.json();A(s.valid?"success":"failed")}catch{A("failed")}finally{C(!1)}},E=async()=>{if(t&&(h||b.apiKey)&&(h||b.name)){P(!0);try{let e=!1;try{C(!0),A(null);let s=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:b.apiKey,providerSpecificData:T()})});e=!!(await s.json()).valid,A(e?"success":"failed")}catch{A("failed")}finally{C(!1)}await x({name:b.name||(h?"Ollama Local":""),apiKey:b.apiKey,priority:b.priority,proxyPoolId:b.proxyPoolId===u?null:b.proxyPoolId,testStatus:e?"active":"unknown",providerSpecificData:T()})}finally{P(!1)}}};return t?(0,i.jsx)(d.aF,{isOpen:e,title:`Add ${s||t} ${f}`,onClose:m,children:(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsx)(d.pd,{label:"Name",value:b.name,onChange:e=>v({...b,name:e.target.value}),placeholder:h?"Ollama Local":"Production Key"}),h&&(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(d.pd,{label:"Ollama Host URL",value:b.ollamaHostUrl,onChange:e=>v({...b,ollamaHostUrl:e.target.value}),placeholder:"http://localhost:11434",className:"flex-1"}),(0,i.jsx)("div",{className:"pt-6",children:(0,i.jsx)(d.$n,{onClick:O,disabled:w||$,variant:"secondary",children:w?"Checking...":"Check"})})]}),!h&&(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(d.pd,{label:f,type:y?"text":"password",value:b.apiKey,onChange:e=>v({...b,apiKey:e.target.value}),placeholder:y?"grok-web"===t?"sso=xxxxx... or just the raw value":"eyJhbGciOi...":"",className:"flex-1"}),(0,i.jsx)("div",{className:"pt-6",children:(0,i.jsx)(d.$n,{onClick:O,disabled:!b.apiKey||w||$,variant:"secondary",children:w?"Checking...":"Check"})})]}),y&&n&&(0,i.jsxs)("p",{className:"text-xs text-text-muted",children:[n,c&&(0,i.jsxs)(i.Fragment,{children:[" ",(0,i.jsxs)("a",{href:c,target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:["Open ",c.replace(/^https?:\/\//,"")]})]})]}),h&&(0,i.jsxs)("p",{className:"text-xs text-text-muted",children:["Leave blank to use ",(0,i.jsx)("code",{children:"http://localhost:11434"}),". For remote Ollama, enter the full host URL (e.g. ",(0,i.jsx)("code",{children:"http://192.168.1.10:11434"}),")."]}),S&&(0,i.jsx)(d.Ex,{variant:"success"===S?"success":"error",children:"success"===S?"Valid":"Invalid"}),r&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:l?`Validation checks ${s||"Anthropic Compatible"} by verifying the API key.`:`Validation checks ${s||"OpenAI Compatible"} via /models on your base URL.`}),g&&(0,i.jsxs)("div",{className:"bg-sidebar/50 p-4 rounded-lg border border-accent/20",children:[(0,i.jsx)("h3",{className:"font-semibold mb-3 text-sm",children:"Azure OpenAI Configuration"}),(0,i.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,i.jsx)(d.pd,{label:"Azure Endpoint",value:j.azureEndpoint,onChange:e=>k({...j,azureEndpoint:e.target.value}),placeholder:"https://your-resource.openai.azure.com"}),(0,i.jsx)(d.pd,{label:"Deployment Name",value:j.deployment,onChange:e=>k({...j,deployment:e.target.value}),placeholder:"gpt-4"}),(0,i.jsx)(d.pd,{label:"API Version",value:j.apiVersion,onChange:e=>k({...j,apiVersion:e.target.value}),placeholder:"2024-10-01-preview"}),(0,i.jsx)(d.pd,{label:"Organization",value:j.organization,onChange:e=>k({...j,organization:e.target.value}),placeholder:"Organization ID"})]})]}),(0,i.jsx)(d.pd,{label:"Priority",type:"number",value:b.priority,onChange:e=>v({...b,priority:Number.parseInt(e.target.value)||1})}),(0,i.jsx)(d.l6,{label:"Proxy Pool",value:b.proxyPoolId,onChange:e=>v({...b,proxyPoolId:e.target.value}),options:[{value:u,label:"None"},...(p||[]).map(e=>({value:e.id,label:e.name}))],placeholder:"None"}),0===(p||[]).length&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:"No active proxy pools available. Create one in Proxy Pools page first."}),(0,i.jsx)("p",{className:"text-xs text-text-muted",children:"Legacy manual proxy fields are still accepted by API for backward compatibility."}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(d.$n,{onClick:E,fullWidth:!0,disabled:$||!h&&(!b.name||!b.apiKey)||g&&(!j.azureEndpoint||!j.deployment||!j.organization),children:$?"Saving...":"Save"}),(0,i.jsx)(d.$n,{onClick:m,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function k({isOpen:e,node:t,onSave:s,onClose:r,isAnthropic:l}){let[o,n]=(0,a.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[c,p]=(0,a.useState)(!1),[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(""),[y,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{t&&n({name:t.name||"",prefix:t.prefix||"",apiType:t.apiType||"chat",baseUrl:t.baseUrl||(l?"https://api.anthropic.com/v1":"https://api.openai.com/v1")})},[t,l]);let v=async()=>{if(o.name.trim()&&o.prefix.trim()&&o.baseUrl.trim()){p(!0);try{let e={name:o.name,prefix:o.prefix,baseUrl:o.baseUrl};l||(e.apiType=o.apiType),await s(e)}finally{p(!1)}}},j=async()=>{f(!0);try{let e=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:o.baseUrl,apiKey:x,type:l?"anthropic-compatible":"openai-compatible",modelId:u.trim()||void 0})}),t=await e.json();b(t.valid?"success":"failed")}catch{b("failed")}finally{f(!1)}};return t?(0,i.jsx)(d.aF,{isOpen:e,title:`Edit ${l?"Anthropic":"OpenAI"} Compatible`,onClose:r,children:(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsx)(d.pd,{label:"Name",value:o.name,onChange:e=>n({...o,name:e.target.value}),placeholder:`${l?"Anthropic":"OpenAI"} Compatible (Prod)`,hint:"Required. A friendly label for this node."}),(0,i.jsx)(d.pd,{label:"Prefix",value:o.prefix,onChange:e=>n({...o,prefix:e.target.value}),placeholder:l?"ac-prod":"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),!l&&(0,i.jsx)(d.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:o.apiType,onChange:e=>n({...o,apiType:e.target.value})}),(0,i.jsx)(d.pd,{label:"Base URL",value:o.baseUrl,onChange:e=>n({...o,baseUrl:e.target.value}),placeholder:l?"https://api.anthropic.com/v1":"https://api.openai.com/v1",hint:`Use the base URL (ending in /v1) for your ${l?"Anthropic":"OpenAI"}-compatible API.`}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(d.pd,{label:"API Key (for Check)",type:"password",value:x,onChange:e=>m(e.target.value),className:"flex-1"}),(0,i.jsx)("div",{className:"pt-6",children:(0,i.jsx)(d.$n,{onClick:j,disabled:!x||y||!o.baseUrl.trim(),variant:"secondary",children:y?"Checking...":"Check"})})]}),(0,i.jsx)(d.pd,{label:"Model ID (optional)",value:u,onChange:e=>h(e.target.value),placeholder:"e.g. my-model-id",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),g&&(0,i.jsx)(d.Ex,{variant:"success"===g?"success":"error",children:"success"===g?"Valid":"Invalid"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(d.$n,{onClick:v,fullWidth:!0,disabled:!o.name.trim()||!o.prefix.trim()||!o.baseUrl.trim()||c,children:c?"Saving...":"Save"}),(0,i.jsx)(d.$n,{onClick:r,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function w({isOpen:e,providerAlias:t,providerDisplayAlias:s,onSave:r,onClose:l}){let[o,n]=(0,a.useState)(""),[c,p]=(0,a.useState)(null),[x,m]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1);(0,a.useEffect)(()=>{e&&(n(""),p(null),m(""))},[e]);let y=async()=>{if(o.trim()){p("testing"),m("");try{let e=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${t}/${o.trim()}`})}),s=await e.json();p(s.ok?"ok":"error"),m(s.error||"")}catch(e){p("error"),m(e.message)}}},f=async()=>{if(o.trim()&&!u){h(!0);try{await r(o.trim())}finally{h(!1)}}};return(0,i.jsx)(d.aF,{isOpen:e,onClose:l,title:"Add Custom Model",children:(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Model ID"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)("input",{type:"text",value:o,onChange:e=>{n(e.target.value),p(null),m("")},onKeyDown:e=>{"Enter"===e.key&&y()},placeholder:"e.g. claude-opus-4-5",className:"flex-1 px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",autoFocus:!0}),(0,i.jsx)(d.$n,{variant:"secondary",icon:"science",loading:"testing"===c,onClick:y,disabled:!o.trim()||"testing"===c,children:"testing"===c?"Testing...":"Test"})]}),(0,i.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Sent to provider as: ",(0,i.jsx)("code",{className:"font-mono bg-sidebar px-1 rounded",children:o.trim()||"model-id"})]})]}),"ok"===c&&(0,i.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-base",children:"check_circle"}),"Model is reachable"]}),"error"===c&&(0,i.jsxs)("div",{className:"flex items-start gap-2 text-sm text-red-500",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-base shrink-0",children:"cancel"}),(0,i.jsx)("span",{children:x||"Model not reachable"})]}),(0,i.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,i.jsx)(d.$n,{onClick:l,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,i.jsx)(d.$n,{onClick:f,fullWidth:!0,size:"sm",disabled:!o.trim()||u,children:u?"Adding...":"Add Model"})]})]})})}function C(){let e=(0,r.useParams)(),t=(0,r.useRouter)(),s=e.id,[l,m]=(0,a.useState)([]),[h,y]=(0,a.useState)(!0),[g,v]=(0,a.useState)(null),[C,S]=(0,a.useState)([]),[A,$]=(0,a.useState)(!1),[P,T]=(0,a.useState)(!1),[O,E]=(0,a.useState)(!1),[R,_]=(0,a.useState)(!1),[I,U]=(0,a.useState)(!1),[D,q]=(0,a.useState)(!1),[z,M]=(0,a.useState)(null),[L,K]=(0,a.useState)({}),[F,J]=(0,a.useState)(!1),[W,V]=(0,a.useState)({}),[H,G]=(0,a.useState)(""),[Z,B]=(0,a.useState)(null),[Q,X]=(0,a.useState)(!1),[Y,ee]=(0,a.useState)([]),[et,es]=(0,a.useState)("__none__"),[ei,ea]=(0,a.useState)(!1),[er,el]=(0,a.useState)(null),[eo,en]=(0,a.useState)(""),[ed,ec]=(0,a.useState)("auto"),[ep,ex]=(0,a.useState)([]),[em,eu]=(0,a.useState)([]),{copied:eh,copy:ey}=(0,x.C)(),ef=g?{id:g.id,name:g.name||("anthropic-compatible"===g.type?"Anthropic Compatible":"OpenAI Compatible"),color:"anthropic-compatible"===g.type?"#D97757":"#10A37F",textIcon:"anthropic-compatible"===g.type?"AC":"OC",apiType:g.apiType,baseUrl:g.baseUrl,type:g.type}:c.zN[s]||c.fg[s]||c.IS[s]||c.nJ[s]||c.br[s],eg=!!c.zN[s]||!!c.IS[s],eb=!!c.IS[s]?.noAuth,ev=(0,p.KC)(s),ej=(0,c.wG)(s),eN=(0,c.mq)(s),ek=(0,c.gb)(s),ew=eN||ek;c.Q2[s]?.thinkingConfig||c.s9.extended;let eC=ew?s:ej,eS=ew?g?.prefix||s:ej,eA=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&K(t.aliases||{})}catch(e){console.log("Error fetching aliases:",e)}},[]);(0,a.useEffect)(()=>{"kilocode"===s&&fetch("/api/providers/kilo/free-models").then(e=>e.json()).then(e=>{e.models?.length&&eu(e.models)}).catch(()=>{})},[s]);let e$=(0,a.useCallback)(async()=>{try{let[e,t,i,a]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/provider-nodes",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),r=await e.json(),l=await t.json(),o=await i.json(),n=a.ok?await a.json():{};if(e.ok){let e=(r.connections||[]).filter(e=>e.provider===s);m(e)}i.ok&&S(o.proxyPools||[]);let d=(n.providerStrategies||{})[s]||{};el(d.fallbackStrategy||null),en(null!=d.stickyRoundRobinLimit?String(d.stickyRoundRobinLimit):"1");let c=(n.providerThinking||{})[s]||{};if(ec(c.mode||"auto"),t.ok){let e=(l.nodes||[]).find(e=>e.id===s)||null;if(!e&&ew)for(let t=0;t<3;t+=1){await new Promise(e=>setTimeout(e,150));let t=await fetch("/api/provider-nodes",{cache:"no-store"});if(t.ok&&(e=((await t.json()).nodes||[]).find(e=>e.id===s)||null))break}v(e)}}catch(e){console.log("Error fetching connections:",e)}finally{y(!1)}},[s,ew]),eP=async e=>{try{let t=await fetch(`/api/provider-nodes/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),i=await t.json();t.ok&&(v(i.node),await e$(),U(!1))}catch(e){console.log("Error updating provider node:",e)}},eT=async(e,t)=>{try{let i=await fetch("/api/settings",{cache:"no-store"}),a=(i.ok?await i.json():{}).providerStrategies||{},r={};e&&(r.fallbackStrategy=e),"round-robin"===e&&""!==t&&(r.stickyRoundRobinLimit=Number(t)||3);let l={...a};0===Object.keys(r).length?delete l[s]:l[s]=r,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:l})})}catch(e){console.log("Error saving provider strategy:",e)}};(0,a.useEffect)(()=>{e$(),eA()},[e$,eA]),(0,a.useEffect)(()=>{let e=(c.zN[s]||c.fg[s]||c.IS[s]||c.nJ[s])?.modelsFetcher;e&&u(e).then(ex)},[s]);let eO=async(e,t,s=ej)=>{let i=`${s}/${e}`;try{let e=await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:i,alias:t})});if(e.ok)await eA();else{let t=await e.json();alert(t.error||"Failed to set alias")}}catch(e){console.log("Error setting alias:",e)}},eE=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await eA()}catch(e){console.log("Error deleting alias:",e)}},eR=async e=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&m(l.filter(t=>t.id!==e))}catch(e){console.log("Error deleting connection:",e)}},e_=()=>{e$(),$(!1)},eI=async e=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:s,...e})})).ok&&(await e$(),E(!1))}catch(e){console.log("Error saving connection:",e)}},eU=async e=>{try{(await fetch(`/api/providers/${z.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await e$(),_(!1))}catch(e){console.log("Error updating connection:",e)}},eD=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&m(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("Error updating connection status:",e)}},eq=async(e,t)=>{let s=[...l];[s[e],s[t]]=[s[t],s[e]],m(s);try{await Promise.all([fetch(`/api/providers/${s[e].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:e})}),fetch(`/api/providers/${s[t].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:t})})])}catch(e){console.log("Error swapping priority:",e),await e$()}},ez=l.filter(e=>Y.includes(e.id));l.length>0&&(Y.length,l.length),(0,a.useEffect)(()=>{ee(e=>e.filter(e=>l.some(t=>t.id===e)))},[l]);let eM=(()=>{if(0===ez.length)return"";let e=new Set(ez.map(e=>e.providerSpecificData?.proxyPoolId||"__none__"));if(1===e.size){let t=[...e][0];if("__none__"===t)return"All selected currently unbound";let s=C.find(e=>e.id===t);return`All selected currently bound to ${s?.name||t}`}return"Selected connections have mixed proxy bindings"})(),eL=()=>{ei||q(!1)},eK=async()=>{if(0===Y.length)return;let e="__none__"===et?null:et;ea(!0);try{let t=[];for(let s of Y)try{let i=await fetch(`/api/providers/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:e})});t.push(i.ok)}catch(e){console.log("Error applying bulk proxy pool for",s,e),t.push(!1)}let s=t.filter(e=>!e).length;s>0&&alert(`Updated with ${s} failed request(s).`),await e$(),ee([]),es("__none__"),q(!1)}catch(e){console.log("Error applying bulk proxy pool:",e)}finally{ea(!1)}},eF=(0,i.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:l.map((e,t)=>(0,i.jsx)("div",{className:"flex items-stretch",children:(0,i.jsx)("div",{className:"flex-1 min-w-0",children:(0,i.jsx)(j,{connection:e,proxyPools:C,isOAuth:eg,isFirst:0===t,isLast:t===l.length-1,onMoveUp:()=>eq(t,t-1),onMoveDown:()=>eq(t,t+1),onToggleActive:t=>eD(e.id,t),onUpdateProxy:async t=>{try{(await fetch(`/api/providers/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:t||null})})).ok&&m(s=>s.map(s=>s.id===e.id?{...s,providerSpecificData:{...s.providerSpecificData,proxyPoolId:t||null}}:s))}catch(e){console.log("Error updating proxy:",e)}},onEdit:()=>{M(e),_(!0)},onDelete:()=>eR(e.id)})})},e.id))}),eJ=[{value:"__none__",label:"None"},...C.map(e=>({value:e.id,label:e.name}))],eW=0===Y.length?"Select one or more connections, then click Proxy Action.":eM,eV=Y.length>0&&!ei,eH=(0,i.jsx)(d.aF,{isOpen:D,onClose:eL,title:`Proxy Action (${Y.length} selected)`,children:(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsx)(d.l6,{label:"Proxy Pool",value:et,onChange:e=>es(e.target.value),options:eJ,placeholder:"None"}),(0,i.jsx)("p",{className:"text-xs text-text-muted",children:eW}),(0,i.jsx)("p",{className:"text-xs text-text-muted",children:"Selecting None will unbind selected connections from proxy pool."}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(d.$n,{onClick:eK,fullWidth:!0,disabled:!eV,children:ei?"Applying...":"Apply"}),(0,i.jsx)(d.$n,{onClick:eL,variant:"ghost",fullWidth:!0,disabled:ei,children:"Cancel"})]})]})}),eG=async e=>{if(!Z){B(e);try{let t=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${eC}/${e}`})}),s=await t.json();V(t=>({...t,[e]:s.ok?"ok":"error"})),G(s.ok?"":s.error||"Model not reachable")}catch{V(t=>({...t,[e]:"error"})),G("Network error")}finally{B(null)}}};return h?(0,i.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,i.jsx)(d.Qv,{}),(0,i.jsx)(d.Qv,{})]}):ef?(0,i.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)(o(),{href:"/dashboard/providers",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),"Back to Providers"]}),(0,i.jsxs)("div",{className:"flex items-center gap-4",children:[(0,i.jsx)("div",{className:"rounded-lg flex items-center justify-center",style:{backgroundColor:`${ef.color}15`},children:F?(0,i.jsx)("span",{className:"text-sm font-bold",style:{color:ef.color},children:ef.textIcon||ef.id.slice(0,2).toUpperCase()}):(0,i.jsx)(n.default,{src:eN&&ef.apiType?"responses"===ef.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":ek?"/providers/anthropic-m.png":`/providers/${ef.id}.png`,alt:ef.name,width:48,height:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",sizes:"48px",onError:()=>J(!0)})}),(0,i.jsxs)("div",{children:[(0,i.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:ef.name}),(0,i.jsxs)("p",{className:"text-text-muted",children:[l.length," connection",1===l.length?"":"s"]})]})]})]}),ef.deprecated&&(0,i.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-yellow-500/10 border border-yellow-500/30",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[16px] text-yellow-500 mt-0.5 shrink-0",children:"warning"}),(0,i.jsx)("p",{className:"text-xs text-red-600 dark:text-yellow-400 leading-relaxed",children:ef.deprecationNotice})]}),ef.notice&&!ef.deprecated&&(0,i.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-blue-500/10 border border-blue-500/30",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[16px] text-blue-500 shrink-0",children:"info"}),(0,i.jsx)("p",{className:"text-xs text-blue-600 dark:text-blue-400 leading-relaxed",children:ef.notice.text}),ef.notice.apiKeyUrl&&(0,i.jsx)("a",{href:ef.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs font-medium text-white bg-blue-500 hover:bg-blue-600 px-2 py-0.5 rounded shrink-0 transition-colors",children:"Get API Key →"})]}),ew&&g&&(0,i.jsxs)(d.Zp,{children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h2",{className:"text-lg font-semibold",children:ek?"Anthropic Compatible Details":"OpenAI Compatible Details"}),(0,i.jsxs)("p",{className:"text-sm text-text-muted",children:[ek?"Messages API":"responses"===g.apiType?"Responses API":"Chat Completions"," \xb7 ",(g.baseUrl||"").replace(/\/$/,""),"/",ek?"messages":"responses"===g.apiType?"responses":"chat/completions"]})]}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(d.$n,{size:"sm",icon:"add",onClick:()=>E(!0),disabled:l.length>0,children:"Add"}),(0,i.jsx)(d.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>U(!0),children:"Edit"}),(0,i.jsx)(d.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:async()=>{if(confirm(`Delete this ${ek?"Anthropic":"OpenAI"} Compatible node?`))try{(await fetch(`/api/provider-nodes/${s}`,{method:"DELETE"})).ok&&t.push("/dashboard/providers")}catch(e){console.log("Error deleting provider node:",e)}},children:"Delete"})]})]}),l.length>0&&(0,i.jsx)("p",{className:"text-sm text-text-muted",children:"Only one connection is allowed per compatible node. Add another node if you need more connections."})]}),eb?(0,i.jsx)(d.Zp,{children:(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-full bg-green-500/10 text-green-500",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"lock_open"})}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{className:"text-sm font-medium",children:"No authentication required"}),(0,i.jsx)("p",{className:"text-xs text-text-muted",children:"This provider is ready to use."})]})]})}):(0,i.jsxs)(d.Zp,{children:[(0,i.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,i.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,i.jsx)("div",{className:"flex items-center gap-4",children:(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,i.jsx)(d.lM,{checked:"round-robin"===er,onChange:e=>{let t=e?"round-robin":null,s=e?eo||"1":eo;e&&!eo&&en("1"),el(t),eT(t,s)}}),"round-robin"===er&&(0,i.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,i.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,i.jsx)("input",{type:"number",min:1,value:eo,onChange:e=>{var t;en(t=e.target.value),eT("round-robin",t)},placeholder:"1",className:"w-14 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})})]}),0===l.length?(0,i.jsxs)("div",{className:"text-center py-12",children:[(0,i.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,i.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:eg?"lock":"key"})}),(0,i.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No connections yet"}),(0,i.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Add your first connection to get started"}),!ew&&(0,i.jsxs)("div",{className:"flex gap-2 justify-center",children:["iflow"===s&&(0,i.jsx)(d.$n,{icon:"cookie",variant:"secondary",onClick:()=>T(!0),children:"Cookie Auth"}),(0,i.jsx)(d.$n,{icon:"add",onClick:()=>eg?$(!0):E(!0),children:"iflow"===s?"OAuth":"Add Connection"})]})]}):(0,i.jsxs)(i.Fragment,{children:[eF,!ew&&(0,i.jsxs)("div",{className:"flex gap-2 mt-4",children:["iflow"===s&&(0,i.jsx)(d.$n,{size:"sm",icon:"cookie",variant:"secondary",onClick:()=>T(!0),title:"Add connection using browser cookie",children:"Cookie"}),(0,i.jsx)(d.$n,{size:"sm",icon:"add",onClick:()=>eg?$(!0):E(!0),children:"Add"})]})]})]}),(0,i.jsxs)(d.Zp,{children:[(0,i.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,i.jsx)("h2",{className:"text-lg font-semibold",children:"Available Models"})}),!!H&&(0,i.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:H}),(()=>{let e,t,a;if(ew)return(0,i.jsx)(b,{providerStorageAlias:eC,providerDisplayAlias:eS,modelAliases:L,copied:eh,onCopy:ey,onSetAlias:eO,onDeleteAlias:eE,connections:l,isAnthropic:ek});let r=[...ev,...em.filter(e=>!ev.some(t=>t.id===e.id))].filter(e=>!e.type||"llm"===e.type),o=Object.entries(L).filter(([e,t])=>{let s=`${eC}/`;if(!t.startsWith(s))return!1;let i=t.slice(s.length);return ef.passthroughModels?!ev.some(e=>e.id===i):!ev.some(e=>e.id===i)&&e===i}).map(([e,t])=>({id:t.slice(`${eC}/`.length),alias:e,fullModel:t}));return(0,i.jsxs)("div",{className:"flex flex-wrap gap-3",children:[r.map(e=>{let t=`${eC}/${e.id}`,a=`${s}/${e.id}`,r=Object.entries(L).find(([,e])=>e===t||e===a)?.[0];return(0,i.jsx)(f,{model:e,fullModel:`${eS}/${e.id}`,alias:r,copied:eh,onCopy:ey,onSetAlias:t=>eO(e.id,t,eC),onDeleteAlias:()=>eE(r),testStatus:W[e.id],onTest:l.length>0||eb?()=>eG(e.id):void 0,isTesting:Z===e.id,isFree:e.isFree},e.id)}),o.map(e=>(0,i.jsx)(f,{model:{id:e.id},fullModel:`${eS}/${e.id}`,alias:e.alias,copied:eh,onCopy:ey,onSetAlias:()=>{},onDeleteAlias:()=>eE(e.alias),testStatus:W[e.id],onTest:l.length>0||eb?()=>eG(e.id):void 0,isTesting:Z===e.id,isCustom:!0,isFree:!1},e.id)),(0,i.jsxs)("button",{onClick:()=>X(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]}),ep.length>0&&(e=new Set(Object.values(L)),t=new Set(ev.map(e=>e.id)),0===(a=ep.filter(s=>!e.has(`${eC}/${s.id}`)&&!t.has(s.id))).length?null:(0,i.jsxs)("div",{className:"w-full mt-2",children:[(0,i.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"Suggested free models (≥200k context):"}),(0,i.jsx)("div",{className:"flex flex-wrap gap-2",children:a.map(e=>(0,i.jsxs)("button",{onClick:async()=>{let t=e.id.split("/").pop();await eO(e.id,t,eC)},className:"flex items-center gap-1 px-2.5 py-1.5 rounded-lg border border-black/10 dark:border-white/10 text-xs text-text-muted hover:text-primary hover:border-primary/40 hover:bg-primary/5 transition-colors",title:`${e.name} \xb7 ${(e.contextLength/1e3).toFixed(0)}k ctx`,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"add"}),e.id.split("/").pop()]},e.id))})]}))]})})()]}),eH,"kiro"===s?(0,i.jsx)(d.Mh,{isOpen:A,providerInfo:ef,onSuccess:e_,onClose:()=>$(!1)}):"cursor"===s?(0,i.jsx)(d.G9,{isOpen:A,onSuccess:e_,onClose:()=>$(!1)}):"gitlab"===s?(0,i.jsx)(d.vj,{isOpen:A,providerInfo:ef,onSuccess:e_,onClose:()=>$(!1)}):(0,i.jsx)(d.LF,{isOpen:A,provider:s,providerInfo:ef,onSuccess:e_,onClose:()=>$(!1)}),"iflow"===s&&(0,i.jsx)(d.vE,{isOpen:P,onSuccess:()=>{e$(),T(!1)},onClose:()=>T(!1)}),(0,i.jsx)(N,{isOpen:O,provider:s,providerName:ef.name,isCompatible:ew,isAnthropic:ek,authType:ef?.authType,authHint:ef?.authHint,website:ef?.website,proxyPools:C,onSave:eI,onClose:()=>E(!1)}),(0,i.jsx)(d.wI,{isOpen:R,connection:z,proxyPools:C,onSave:eU,onClose:()=>_(!1)}),ew&&(0,i.jsx)(k,{isOpen:I,node:g,onSave:eP,onClose:()=>U(!1),isAnthropic:ek}),!ew&&(0,i.jsx)(w,{isOpen:Q,providerAlias:eC,providerDisplayAlias:eS,onSave:async e=>{let t=ef?.passthroughModels?e.split("/").pop():e;await eO(e,t,eC),X(!1)},onClose:()=>X(!1)})]}):(0,i.jsxs)("div",{className:"text-center py-20",children:[(0,i.jsx)("p",{className:"text-text-muted",children:"Provider not found"}),(0,i.jsx)(o(),{href:"/dashboard/providers",className:"text-primary mt-4 inline-block",children:"Back to Providers"})]})}f.propTypes={model:y().shape({id:y().string.isRequired}).isRequired,fullModel:y().string.isRequired,alias:y().string,copied:y().string,onCopy:y().func.isRequired,testStatus:y().oneOf(["ok","error"]),isCustom:y().bool,isFree:y().bool,onDeleteAlias:y().func,onTest:y().func,isTesting:y().bool},y().string.isRequired,y().string.isRequired,y().string,y().func.isRequired,y().func.isRequired,y().func,y().oneOf(["ok","error"]),y().bool,y().string.isRequired,y().object.isRequired,y().string,y().func.isRequired,y().func.isRequired,y().func.isRequired,b.propTypes={providerStorageAlias:y().string.isRequired,providerDisplayAlias:y().string.isRequired,modelAliases:y().object.isRequired,copied:y().string,onCopy:y().func.isRequired,onSetAlias:y().func.isRequired,onDeleteAlias:y().func.isRequired,connections:y().arrayOf(y().shape({id:y().string,isActive:y().bool})).isRequired,isAnthropic:y().bool},v.propTypes={until:y().string.isRequired},j.propTypes={connection:y().shape({id:y().string,name:y().string,email:y().string,displayName:y().string,modelLockUntil:y().string,testStatus:y().string,isActive:y().bool,lastError:y().string,priority:y().number,globalPriority:y().number}).isRequired,proxyPools:y().arrayOf(y().shape({id:y().string,name:y().string,proxyUrl:y().string,noProxy:y().string,isActive:y().bool})),isOAuth:y().bool.isRequired,isFirst:y().bool.isRequired,isLast:y().bool.isRequired,onMoveUp:y().func.isRequired,onMoveDown:y().func.isRequired,onToggleActive:y().func.isRequired,onUpdateProxy:y().func,onEdit:y().func.isRequired,onDelete:y().func.isRequired},N.propTypes={isOpen:y().bool.isRequired,provider:y().string,providerName:y().string,isCompatible:y().bool,isAnthropic:y().bool,authType:y().string,authHint:y().string,website:y().string,proxyPools:y().arrayOf(y().shape({id:y().string,name:y().string})),onSave:y().func.isRequired,onClose:y().func.isRequired},k.propTypes={isOpen:y().bool.isRequired,node:y().shape({id:y().string,name:y().string,prefix:y().string,apiType:y().string,baseUrl:y().string}),onSave:y().func.isRequired,onClose:y().func.isRequired,isAnthropic:y().bool},w.propTypes={isOpen:y().bool.isRequired,providerAlias:y().string.isRequired,providerDisplayAlias:y().string.isRequired,onSave:y().func.isRequired,onClose:y().func.isRequired}},53655:(e,t,s)=>{Promise.resolve().then(s.bind(s,17721))}},e=>{e.O(0,[2574,3862,1051,5772,1321,5497,8441,3794,7358],()=>e(e.s=53655)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3826],{48014:(e,t,r)=>{Promise.resolve().then(r.bind(r,75095)),Promise.resolve().then(r.bind(r,25086))},75095:(e,t,r)=>{"use strict";r.d(t,{default:()=>h});var s=r(95155),a=r(12115),l=r(57250),n=r(45564);function i(e,t){return t&&0!==t?!e||e<0?100:e>=t?0:Math.round((t-e)/t*100):0}function o({quotas:e=[],compact:t=!1}){if(!e||0===e.length)return null;let r=t?"py-1.5 px-2":"py-2 px-3",a=t?"text-xs":"text-sm",l=t?"text-xs":"text-sm",n=t?"text-[10px] leading-tight":"text-xs";return(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsx)("table",{className:"w-full table-fixed text-left",children:(0,s.jsx)("tbody",{children:e.map((e,o)=>{let c=void 0!==e.remainingPercentage?Math.round(e.remainingPercentage):i(e.used,e.total),d=c>70?{text:"text-green-600 dark:text-green-400",bg:"bg-green-500",bgLight:"bg-green-500/10",emoji:"\uD83D\uDFE2"}:c>=30?{text:"text-yellow-600 dark:text-yellow-400",bg:"bg-yellow-500",bgLight:"bg-yellow-500/10",emoji:"\uD83D\uDFE1"}:{text:"text-red-600 dark:text-red-400",bg:"bg-red-500",bgLight:"bg-red-500/10",emoji:"\uD83D\uDD34"},u=function(e){if(!e)return"-";try{let t="string"==typeof e?new Date(e):e,r=new Date,s=t-r;if(s<=0)return"-";let a=Math.ceil(s/6e4);if(a<60)return`${a}m`;let l=Math.floor(a/60),n=a%60;if(l<24)return`${l}h ${n}m`;let i=Math.floor(l/24);return`${i}d ${l%24}h ${n}m`}catch(e){return"-"}}(e.resetAt),m=function(e){if(!e)return null;try{let t=new Date(e),r=new Date,s=new Date(r.getFullYear(),r.getMonth(),r.getDate()),a=new Date(s);a.setDate(a.getDate()+1);let l="";l=t>=s&&t<a?"Today":t>=a&&t<new Date(a.getTime()+864e5)?"Tomorrow":t.toLocaleDateString("en-US",{month:"short",day:"numeric"});let n=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${l}, ${n}`}catch{return null}}(e.resetAt);return(0,s.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,s.jsx)("td",{className:`${r} w-[30%]`,children:(0,s.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,s.jsx)("span",{className:"text-[10px] shrink-0",children:d.emoji}),(0,s.jsx)("span",{className:`${a} font-medium text-text-primary truncate`,children:e.name})]})}),(0,s.jsx)("td",{className:`${r} w-[45%]`,children:(0,s.jsxs)("div",{className:t?"space-y-1":"space-y-1.5",children:[(0,s.jsx)("div",{className:`${t?"h-1":"h-1.5"} rounded-full overflow-hidden border ${d.bgLight} ${0===c?"border-black/10 dark:border-white/10":"border-transparent"}`,children:(0,s.jsx)("div",{className:`h-full transition-all duration-300 ${d.bg}`,style:{width:`${Math.min(c,100)}%`}})}),(0,s.jsxs)("div",{className:`flex items-center justify-between ${t?"text-[10px]":"text-xs"}`,children:[(0,s.jsxs)("span",{className:"text-text-muted",children:[e.used.toLocaleString()," / ",e.total>0?e.total.toLocaleString():"∞"]}),(0,s.jsxs)("span",{className:`font-medium ${d.text}`,children:[c,"%"]})]})]})}),(0,s.jsx)("td",{className:`${r} w-[25%]`,children:"-"!==u||m?(0,s.jsxs)("div",{className:"space-y-0.5",children:["-"!==u&&(0,s.jsxs)("div",{className:`${l} text-text-primary font-medium`,children:["in ",u]}),m&&(0,s.jsx)("div",{className:`${n} text-text-muted`,children:m})]}):(0,s.jsx)("div",{className:`${l} text-text-muted italic`,children:"N/A"})})]},o)})})})})}var c=r(98542),d=r(84588),u=r(92542),m=r(35497),x=r(52679);function h(){let[e,t]=(0,a.useState)([]),[r,h]=(0,a.useState)({}),[p,f]=(0,a.useState)({}),[g,b]=(0,a.useState)({}),[v,y]=(0,a.useState)(!0),[j,w]=(0,a.useState)(null),[N,k]=(0,a.useState)(!1),[$,E]=(0,a.useState)(60),[C,q]=(0,a.useState)(!0),[A,P]=(0,a.useState)(null),[S,D]=(0,a.useState)(null),[L,T]=(0,a.useState)(!1),[O,I]=(0,a.useState)(null),[M,_]=(0,a.useState)([]),R=(0,a.useRef)(null),U=(0,a.useRef)(null),z=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/providers/client");if(!e.ok)throw Error("Failed to fetch connections");let r=(await e.json()).connections||[];return t(r),r}catch(e){return console.error("Error fetching connections:",e),t([]),[]}},[]),F=(0,a.useCallback)(async(e,t)=>{f(t=>({...t,[e]:!0})),b(t=>({...t,[e]:null}));try{console.log(`[ProviderLimits] Fetching quota for ${t} (${e})`);let r=await fetch(`/api/usage/${e}`);if(!r.ok){let s=(await r.json().catch(()=>({}))).error||r.statusText;if(404===r.status)return void console.warn(`[ProviderLimits] Connection not found for ${t}, skipping`);if(401===r.status){console.warn(`[ProviderLimits] Auth error for ${t}:`,s),h(t=>({...t,[e]:{quotas:[],message:s}}));return}throw Error(`HTTP ${r.status}: ${s}`)}let s=await r.json();console.log(`[ProviderLimits] Got quota for ${t}:`,s);let a=function(e,t){if(!t||"object"!=typeof t)return[];let r=[];try{switch(e.toLowerCase()){case"github":default:t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{r.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"antigravity":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{r.push({name:t.displayName||e,modelKey:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:t.remainingPercentage})});break;case"codex":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{r.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"kiro":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{r.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"claude":t.message?r.push({name:"error",used:0,total:0,resetAt:null,message:t.message}):t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{r.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})})}}catch(t){return console.error(`Error parsing quota data for ${e}:`,t),[]}let s=(0,n.KC)(e);if(s.length>0){let e=new Map(s.map((e,t)=>[e.id,t]));r.sort((t,r)=>{let s=t.modelKey||t.name,a=r.modelKey||r.name;return(e.get(s)??999)-(e.get(a)??999)})}return r}(t,s);h(t=>({...t,[e]:{quotas:a,plan:s.plan||null,message:s.message||null,raw:s}}))}catch(r){console.error(`[ProviderLimits] Error fetching quota for ${t} (${e}):`,r),b(t=>({...t,[e]:r.message||"Failed to fetch quota"}))}finally{f(t=>({...t,[e]:!1}))}},[]),K=(0,a.useCallback)(async(e,t)=>{await F(e,t),w(new Date)},[F]),J=(0,a.useCallback)(async e=>{if(confirm("Delete this connection?")){P(e);try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&(t(t=>t.filter(t=>t.id!==e)),h(t=>{let r={...t};return delete r[e],r}),f(t=>{let r={...t};return delete r[e],r}),b(t=>{let r={...t};return delete r[e],r}))}catch(e){console.error("Error deleting connection:",e)}finally{P(null)}}},[]),G=(0,a.useCallback)(async(e,r)=>{D(e);try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:r})})).ok&&t(t=>t.map(t=>t.id===e?{...t,isActive:r}:t))}catch(e){console.error("Error updating connection status:",e)}finally{D(null)}},[]),H=(0,a.useCallback)(async e=>{if(!O?.id)return;let t=O.id,r=O.provider;try{(await fetch(`/api/providers/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await z(),T(!1),I(null),x.wb.includes(r)&&await F(t,r))}catch(e){console.error("Error saving connection:",e)}},[O,z,F]);(0,a.useEffect)(()=>{let e=!1;return fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}).then(e=>e.json()).then(t=>{!e&&t?.proxyPools&&_(t.proxyPools)}).catch(()=>{}),()=>{e=!0}},[]);let Y=(0,a.useCallback)(async()=>{if(!N){k(!0),E(60);try{let e=(await z()).filter(e=>x.wb.includes(e.provider)&&"oauth"===e.authType);await Promise.all(e.map(e=>F(e.id,e.provider))),w(new Date)}catch(e){console.error("Error refreshing all providers:",e)}finally{k(!1)}}},[N,z,F]);(0,a.useEffect)(()=>{(async()=>{q(!0);let e=await z();q(!1);let t=e.filter(e=>x.wb.includes(e.provider)&&"oauth"===e.authType),r={};t.forEach(e=>{r[e.id]=!0}),f(r),await Promise.all(t.map(e=>F(e.id,e.provider))),w(new Date)})()},[]),(0,a.useEffect)(()=>{if(!v){R.current&&(clearInterval(R.current),R.current=null),U.current&&(clearInterval(U.current),U.current=null);return}return R.current=setInterval(()=>{Y()},6e4),U.current=setInterval(()=>{E(e=>e<=1?60:e-1)},1e3),()=>{R.current&&clearInterval(R.current),U.current&&clearInterval(U.current)}},[v,Y]),(0,a.useEffect)(()=>{let e=()=>{document.hidden?(R.current&&(clearInterval(R.current),R.current=null),U.current&&(clearInterval(U.current),U.current=null)):v&&(R.current=setInterval(Y,6e4),U.current=setInterval(()=>{E(e=>e<=1?60:e-1)},1e3))};return document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}},[v,Y]);let B=(0,a.useCallback)(()=>{if(!j)return"Never";let e=Math.floor((new Date-j)/6e4),t=Math.floor(e/60),r=Math.floor(t/24);return r>0?`${r}d ago`:t>0?`${t}h ago`:e>0?`${e}m ago`:"Just now"},[j]),Q=[...e.filter(e=>x.wb.includes(e.provider)&&"oauth"===e.authType)].sort((e,t)=>{let r=x.wb.indexOf(e.provider),s=x.wb.indexOf(t.provider);return r!==s?r-s:e.provider.localeCompare(t.provider)});return(Q.length,Object.values(r).filter(e=>e?.quotas?.length>0).length,Object.values(r).reduce((e,t)=>t?.quotas?e+ +!!t.quotas.some(e=>30>i(e.used,e.total)&&e.total>0):e,0),C||0!==Q.length)?(0,s.jsxs)("div",{className:"space-y-6",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("h2",{className:"text-xl font-semibold text-text-primary",children:"Provider Limits"}),(0,s.jsxs)("span",{className:"text-sm text-text-muted",children:["Last updated: ",B()]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("button",{onClick:()=>y(e=>!e),className:"flex items-center gap-2 px-3 py-2 rounded-lg border border-black/10 dark:border-white/10 hover:bg-black/5 dark:hover:bg-white/5 transition-colors",title:v?"Disable auto-refresh":"Enable auto-refresh",children:[(0,s.jsx)("span",{className:`material-symbols-outlined text-[18px] ${v?"text-primary":"text-text-muted"}`,children:v?"toggle_on":"toggle_off"}),(0,s.jsx)("span",{className:"text-sm text-text-primary",children:"Auto-refresh"}),v&&(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:["(",$,"s)"]})]}),(0,s.jsx)(u.default,{variant:"secondary",size:"md",icon:"refresh",onClick:Y,disabled:N,loading:N,children:"Refresh All"})]})]}),(0,s.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:Q.map(e=>{let t,a,n=r[e.id],i=p[e.id],u=g[e.id],m=!1===e.isActive,x=A===e.id||S===e.id;return(0,s.jsxs)(d.default,{padding:"none",className:`min-w-0 ${m?"opacity-60":""}`,children:[(0,s.jsx)("div",{className:"px-4 py-3 border-b border-black/10 dark:border-white/10",children:(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("div",{className:"w-8 h-8 shrink-0 rounded-md flex items-center justify-center overflow-hidden",children:(0,s.jsx)(l.A,{src:`/providers/${e.provider}.png`,alt:e.provider,size:32,className:"object-contain",fallbackText:e.provider?.slice(0,2).toUpperCase()||"PR"})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-text-primary capitalize truncate",children:e.provider}),(a=(t=e=>"string"==typeof e&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e))(e.email)?e.email:(t(e.name),e.name))?(0,s.jsx)("p",{className:"text-xs text-text-muted truncate",children:a}):null]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,s.jsx)("button",{type:"button",onClick:()=>K(e.id,e.provider),disabled:i||x,className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 transition-colors disabled:opacity-50",title:"Refresh quota",children:(0,s.jsx)("span",{className:`material-symbols-outlined text-[18px] text-text-muted ${i?"animate-spin":""}`,children:"refresh"})}),(0,s.jsx)("button",{type:"button",onClick:()=>{I(e),T(!0)},disabled:x,className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary transition-colors disabled:opacity-50",title:"Edit connection",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,s.jsx)("button",{type:"button",onClick:()=>J(e.id),disabled:x,className:"p-1.5 rounded-lg hover:bg-red-500/10 text-red-500 transition-colors disabled:opacity-50",title:"Delete connection",children:(0,s.jsx)("span",{className:`material-symbols-outlined text-[18px] ${A===e.id?"animate-pulse":""}`,children:"delete"})}),(0,s.jsx)("div",{className:"inline-flex items-center pl-0.5",title:e.isActive??!0?"Disable connection":"Enable connection",children:(0,s.jsx)(c.default,{size:"sm",checked:e.isActive??!0,disabled:x,onChange:t=>G(e.id,t)})})]})]})}),(0,s.jsx)("div",{className:"px-3 py-3",children:i?(0,s.jsx)("div",{className:"text-center py-5 text-text-muted",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[28px] animate-spin",children:"progress_activity"})}):u?(0,s.jsxs)("div",{className:"text-center py-5",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[28px] text-red-500",children:"error"}),(0,s.jsx)("p",{className:"mt-1.5 text-xs text-text-muted",children:u})]}):n?.message?(0,s.jsx)("div",{className:"text-center py-5",children:(0,s.jsx)("p",{className:"text-xs text-text-muted",children:n.message})}):(0,s.jsx)(o,{quotas:n?.quotas,compact:!0})})]},e.id)})}),(0,s.jsx)(m.wI,{isOpen:L,connection:O,proxyPools:M,onSave:H,onClose:()=>{T(!1),I(null)}})]}):(0,s.jsx)(d.default,{padding:"lg",children:(0,s.jsxs)("div",{className:"text-center py-12",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[64px] text-text-muted opacity-20",children:"cloud_off"}),(0,s.jsx)("h3",{className:"mt-4 text-lg font-semibold text-text-primary",children:"No Providers Connected"}),(0,s.jsx)("p",{className:"mt-2 text-sm text-text-muted max-w-md mx-auto",children:"Connect to providers with OAuth to track your API quota limits and usage."})]})})}}},e=>{e.O(0,[2574,3862,1051,1321,5497,8441,3794,7358],()=>e(e.s=48014)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{52390:(e,s,n)=>{Promise.resolve().then(n.bind(n,56319)),Promise.resolve().then(n.bind(n,56061)),Promise.resolve().then(n.bind(n,92542)),Promise.resolve().then(n.bind(n,84588)),Promise.resolve().then(n.bind(n,40197)),Promise.resolve().then(n.bind(n,30815)),Promise.resolve().then(n.bind(n,73579)),Promise.resolve().then(n.bind(n,92173)),Promise.resolve().then(n.bind(n,95088)),Promise.resolve().then(n.bind(n,74891)),Promise.resolve().then(n.bind(n,80752)),Promise.resolve().then(n.bind(n,23936)),Promise.resolve().then(n.bind(n,11910)),Promise.resolve().then(n.bind(n,61500)),Promise.resolve().then(n.bind(n,62899)),Promise.resolve().then(n.bind(n,94230)),Promise.resolve().then(n.bind(n,21931)),Promise.resolve().then(n.bind(n,91450)),Promise.resolve().then(n.bind(n,7648)),Promise.resolve().then(n.bind(n,25086)),Promise.resolve().then(n.bind(n,28815)),Promise.resolve().then(n.bind(n,81127)),Promise.resolve().then(n.bind(n,72908)),Promise.resolve().then(n.bind(n,36548)),Promise.resolve().then(n.bind(n,90882)),Promise.resolve().then(n.bind(n,23615)),Promise.resolve().then(n.bind(n,28067)),Promise.resolve().then(n.bind(n,98)),Promise.resolve().then(n.bind(n,92622)),Promise.resolve().then(n.bind(n,21110)),Promise.resolve().then(n.bind(n,38587)),Promise.resolve().then(n.bind(n,98542)),Promise.resolve().then(n.bind(n,97677)),Promise.resolve().then(n.bind(n,4809))}},e=>{e.O(0,[2574,3862,1051,1321,5497,8441,3794,7358],()=>e(e.s=52390)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-de0b0e689b74bc54.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,387,543,552,747,748,907,931,992,997,1070,1088,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1860,1946,1949,2121,2198,2284,2296,2525,2772,2785,2797,2919,2922,3025,3038,3079,3102,3397,3472,3507,3549,3562,3568,4245,4286,4422,4444,4656,4896,4993,5018,5079,5107,5177,5211,5226,5466,5685,5745,5922,6268,6479,6529,6580,6594,6740,6819,6919,6988,7131,7158,7241,7311,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|