9router 0.3.91 → 0.3.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +7 -5
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/routes-manifest.json +12 -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 +6 -6
- 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/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 +3 -3
- 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/logout/route.js +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/codex-settings/route.js +3 -3
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next/server/app/api/cloud/auth/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/health/route.js +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/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js +1 -0
- package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -0
- package/app/.next/server/app/api/models/custom/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +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-exchange/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +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/client/route.js +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +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/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js +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/stream/route.js +2 -2
- 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/translate/route.js +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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
- 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/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -0
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -0
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -0
- 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/models/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/version/route.js +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/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/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 +5 -5
- package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
- 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 +2 -2
- 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/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 +7 -5
- package/app/.next/server/chunks/126.js +2 -2
- package/app/.next/server/chunks/1389.js +1 -1
- package/app/.next/server/chunks/1574.js +1 -1
- package/app/.next/server/chunks/1578.js +1 -1
- package/app/.next/server/chunks/2049.js +1 -1
- package/app/.next/server/chunks/253.js +1 -0
- package/app/.next/server/chunks/2947.js +1 -1
- package/app/.next/server/chunks/3030.js +1 -0
- package/app/.next/server/chunks/3159.js +1 -1
- package/app/.next/server/chunks/3774.js +3 -3
- package/app/.next/server/chunks/450.js +2 -2
- package/app/.next/server/chunks/4627.js +1 -1
- package/app/.next/server/chunks/5053.js +64 -0
- package/app/.next/server/chunks/5445.js +1 -1
- package/app/.next/server/chunks/6379.js +1 -1
- package/app/.next/server/chunks/7243.js +1 -1
- package/app/.next/server/chunks/7770.js +1 -1
- package/app/.next/server/chunks/7973.js +1 -1
- package/app/.next/server/chunks/8035.js +1 -0
- package/app/.next/server/chunks/8202.js +12 -7
- package/app/.next/server/chunks/8480.js +2 -2
- package/app/.next/server/chunks/8513.js +5 -0
- package/app/.next/server/chunks/9737.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +3 -3
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/static/AXp1L9TYXuSG-iT0TKIs2/_buildManifest.js +1 -0
- package/app/.next/static/chunks/1237-ce7cc27452c0087f.js +18 -0
- package/app/.next/static/chunks/4156-218a86687f643d2f.js +7 -0
- package/app/.next/static/chunks/505-9410e3e98f835f3f.js +1 -0
- package/app/.next/static/chunks/6795-3ddcc1d55c65c001.js +64 -0
- package/app/.next/static/chunks/8035-122ffa9582ac6dd4.js +3 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-2c8c481b0fc0bb1b.js → page-cd02fe7b10810144.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-f2206753c04da01d.js → page-1266463402c761f6.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-8556b646c8002338.js → page-fcb74a9294486c9a.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-2ffb4689f161ca33.js → page-af58c67a4e409aad.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-79a243ddf837f243.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-841102262fc5fd15.js → page-446fb4958f931207.js} +6 -6
- package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-ebe4ae25d01f731a.js → page-7b7477044f123993.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-21fffa0f231796e9.js → page-7ab6931e5032e32c.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-354de24a25e94694.js → page-8d500331b6e10813.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-202eec8d33670a47.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-426e797917337fd8.js → page-510b667ad2defe52.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-d8aedd72c61ec172.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-34d04900ddd6932a.js → page-b675d50ce82d5577.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-eec871b45fffd58e.js → page-2485ee7c89798a7b.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-f87aca0195ce41ad.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-1308b9d445962823.js → page-538a897db589c145.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-380c1f4327a2a3bc.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/landing/{page-c004b08edc4d4637.js → page-297a1c9230927b6f.js} +1 -1
- package/app/.next/static/chunks/app/login/{page-c0d5d5c52ff7317f.js → page-2424ce8673ecf5cb.js} +1 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/app/page-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-f301b776dca4839c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f301b776dca4839c.js +1 -0
- package/app/.next/static/css/58f44142c32a3776.css +1 -0
- package/app/package.json +2 -1
- package/app/public/providers/opencode-go.png +0 -0
- package/app/src/mitm/server.js +27 -6
- package/cli.js +95 -39
- package/package.json +1 -1
- package/app/.next/server/chunks/149.js +0 -1
- package/app/.next/server/chunks/242.js +0 -1
- package/app/.next/server/chunks/514.js +0 -5
- package/app/.next/server/chunks/6502.js +0 -1
- package/app/.next/server/chunks/8354.js +0 -1
- package/app/.next/static/VI5XrgPaPsUOg-Uel9spT/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1237-06ab8ceb0847165d.js +0 -18
- package/app/.next/static/chunks/2599-ef3aca3d4fdaa96d.js +0 -1
- package/app/.next/static/chunks/4156-e1e79523d2efa7c1.js +0 -7
- package/app/.next/static/chunks/505-7a55d180affbd4d3.js +0 -1
- package/app/.next/static/chunks/8035-0bbf141cee7024b0.js +0 -3
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-0b58256fd5ccd8b7.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-9533adb8cd2aa0ac.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-77e9b2d982a01e23.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-09e7d6bd4d08202c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-82c184348fd5c917.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-757a35dbb4539aad.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/app/page-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-786efea7f9ddd575.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-786efea7f9ddd575.js +0 -1
- package/app/.next/static/css/357a3570ee0fa8c1.css +0 -1
- /package/app/.next/static/{VI5XrgPaPsUOg-Uel9spT → AXp1L9TYXuSG-iT0TKIs2}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8035],{64795:(e,t,s)=>{"use strict";s.d(t,{default:()=>d});var a=s(73365),l=s(1521),r=s(86447),n=s.n(r),i=s(74156),o=s(96459);let c=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}];function d({machineId:e}){let[t,s]=(0,l.useState)([]),[r,n]=(0,l.useState)(!0),[p,g]=(0,l.useState)(!1),[b,y]=(0,l.useState)(""),[f,j]=(0,l.useState)(null),[k,w]=(0,l.useState)(!1),[v,N]=(0,l.useState)(!0),[C,S]=(0,l.useState)(!0),[T,_]=(0,l.useState)(!1),[P,$]=(0,l.useState)(!0),[E,A]=(0,l.useState)(!1),[U,D]=(0,l.useState)(""),[F,I]=(0,l.useState)(""),[O,W]=(0,l.useState)(!1),[R,q]=(0,l.useState)(""),[L,K]=(0,l.useState)(null),[z,J]=(0,l.useState)(!1),[H,M]=(0,l.useState)(!1),[Q,Z]=(0,l.useState)(!1),[B,V]=(0,l.useState)(""),[G,X]=(0,l.useState)(!1),[Y,ee]=(0,l.useState)(""),[et,es]=(0,l.useState)(null),[ea,el]=(0,l.useState)(null),[er,en]=(0,l.useState)(!1),[ei,eo]=(0,l.useState)([]),[ec,ed]=(0,l.useState)(""),[ex,em]=(0,l.useState)(!1),[eh,eu]=(0,l.useState)(!1),[ep,eg]=(0,l.useState)(!1),eb=(0,l.useRef)(null),[ey,ef]=(0,l.useState)(new Set),{copied:ej,copy:ek}=(0,o.C)();(0,l.useEffect)(()=>{eb.current&&(eb.current.scrollTop=eb.current.scrollHeight)},[ei]),(0,l.useEffect)(()=>{eC(),ew()},[]);let ew=async()=>{$(!0);try{let[e,t]=await Promise.all([fetch("/api/settings"),fetch("/api/tunnel/status")]);if(e.ok){let t=await e.json();w(t.requireApiKey||!1),N(!1!==t.requireLogin),S(t.hasPassword||!1),_(t.tunnelDashboardAccess||!1)}if(t.ok){let e=await t.json(),s=e.tunnel?.enabled||!1,a=e.tunnel?.tunnelUrl||"",l=e.tunnel?.publicUrl||"";D(a),I(l);let r=e.tailscale?.enabled||!1,n=e.tailscale?.tunnelUrl||"";if(V(n),r&&n){X(!0),ee("Checking Tailscale...");let e=`${n}/api/health`;try{let t=await fetch(e,{mode:"no-cors",cache:"no-store"});if(t.ok||"opaque"===t.type)Z(!0);else{let e=await eE(n);Z(e),e||es({type:"warning",message:"Tailscale not reachable."})}}catch{let e=await eE(n);Z(e),e||es({type:"warning",message:"Tailscale not reachable."})}finally{X(!1),ee("")}}else Z(r);if(s&&(l||a)){let e=`${l||a}/api/health`;try{(await fetch(e,{cache:"no-store"})).ok?A(!0):eS(l||a)}catch{eS(l||a)}}else A(s)}}catch(e){console.log("Error loading settings:",e)}finally{$(!1)}},ev=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:e})})).ok&&_(e)}catch(e){console.log("Error updating tunnelDashboardAccess:",e)}},eN=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:e})})).ok&&w(e)}catch(e){console.log("Error updating requireApiKey:",e)}},eC=async()=>{try{let e=await fetch("/api/keys"),t=await e.json();e.ok&&s(t.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{n(!1)}},eS=async e=>{W(!0),q("Waiting for tunnel ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<3e5;){await new Promise(e=>setTimeout(e,2e3));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return A(!0),W(!1),q(""),!0}catch{}if((Date.now()-s)%1e4<2e3)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return K({type:"error",message:"Tunnel process stopped unexpectedly."}),W(!1),q(""),!1}}catch{}}return K({type:"error",message:"Tunnel created but not reachable. Please try again."}),W(!1),q(""),!1},eT=async()=>{J(!1),W(!0),K(null),q("Creating tunnel...");try{let e=await fetch("/api/tunnel/enable",{method:"POST"}),t=await e.json();if(!e.ok)return void K({type:"error",message:t.error||"Failed to enable tunnel"});let s=t.publicUrl||t.tunnelUrl;if(!s)return void K({type:"error",message:"No tunnel URL returned"});D(t.tunnelUrl||""),I(t.publicUrl||""),await eS(s)}catch(e){K({type:"error",message:e.message})}finally{W(!1),q("")}},e_=async()=>{W(!0),K(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(A(!1),D(""),I(""),M(!1),K({type:"success",message:"Tunnel disabled"})):K({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){K({type:"error",message:e.message})}finally{W(!1)}},eP=async()=>{el(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return el(t.installed),t}}catch{}return el(!1),{installed:!1}},e$=async()=>{en(!0),es(null),eo([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:ec})});ed("");let t=e.body.getReader(),s=new TextDecoder,a="";for(;;){let{done:e,value:l}=await t.read();if(e)break;let r=(a+=s.decode(l,{stream:!0})).split("\n\n");for(let e of(a=r.pop()||"",r)){let t=e.split("\n"),s="progress",a=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{a=JSON.parse(e.slice(6))}catch{}if(a)if("progress"===s)eo(e=>[...e.slice(-50),a.message]);else if("done"===s){el(!0),en(!1);return}else"error"===s&&es({type:"error",message:a.error||"Install failed"})}}}catch(e){es({type:"error",message:e.message})}finally{en(!1)}},eE=async e=>{ee("Waiting for Tailscale ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<3e5;){await new Promise(e=>setTimeout(e,2e3));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}}return!1},eA=async e=>{let t=e||null;eu(!1),em(!0),X(!0),es(null),ee("Connecting...");try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),s=await e.json();if(e.ok&&s.success){t&&t.close(),V(s.tunnelUrl||""),await eE(s.tunnelUrl)?(Z(!0),es(null)):(Z(!0),es({type:"warning",message:"Connected but not reachable yet."}));return}if(s.needsLogin&&s.authUrl){t?t.location.href=s.authUrl:window.open(s.authUrl,"tailscale_auth","width=600,height=700"),ee("Waiting for login...");for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok&&(await e.json()).loggedIn){ee("Starting funnel...");let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),s=await e.json();e.ok&&s.success?(t&&t.close(),V(s.tunnelUrl||""),await eE(s.tunnelUrl)?(Z(!0),es(null)):(Z(!0),es({type:"warning",message:"Connected but not reachable yet."}))):s.funnelNotEnabled&&s.enableUrl?await eU(s.enableUrl,t):es({type:"error",message:s.error||"Failed to start funnel"});return}}catch{}}es({type:"error",message:"Login timed out. Please try again."});return}if(s.funnelNotEnabled&&s.enableUrl)return void await eU(s.enableUrl,t);t&&t.close(),es({type:"error",message:s.error||"Failed to connect"})}catch(e){t&&t.close(),es({type:"error",message:e.message})}finally{X(!1),em(!1),ee("")}},eU=async(e,t)=>{t?t.location.href=e:window.open(e,"tailscale_auth","width=600,height=700"),ee("Enable Funnel in browser, waiting...");for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),s=await e.json();if(e.ok&&s.success){t&&t.close(),V(s.tunnelUrl||""),await eE(s.tunnelUrl)?(Z(!0),es(null)):(Z(!0),es({type:"warning",message:"Connected but not reachable yet."}));return}if(s.funnelNotEnabled)continue;if(s.error)return void es({type:"error",message:s.error})}catch{}}es({type:"error",message:"Timed out waiting for Funnel to be enabled."})},eD=async()=>{X(!0),es(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(Z(!1),V(""),eg(!1),es({type:"success",message:"Tailscale disabled"})):es({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){es({type:"error",message:e.message})}finally{X(!1)}},eF=async()=>{es(null),eo([]),eu(!0),await eP()},eI=async()=>{if(b.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})}),t=await e.json();e.ok&&(j(t.key),await eC(),y(""),g(!1))}catch(e){console.log("Error creating key:",e)}},eO=async e=>{if(confirm("Delete this API key?"))try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&(s(t.filter(t=>t.id!==e)),ef(t=>{let s=new Set(t);return s.delete(e),s}))}catch(e){console.log("Error deleting key:",e)}},eW=async(e,t)=>{try{(await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("Error toggling key:",e)}},[eR,eq]=(0,l.useState)("/v1");return((0,l.useEffect)(()=>{eq(`${window.location.origin}/v1`)},[]),r)?(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsx)(i.Qv,{}),(0,a.jsx)(i.Qv,{})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsxs)(i.Zp,{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"API Endpoint"}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(x,{label:"Local",url:eR,copyId:"local_url",copied:ej,onCopy:ek}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[68px] text-center ${E?"bg-orange-100 dark:bg-orange-900/30 text-orange-600 dark:text-orange-400":"bg-sidebar text-text-muted"}`,children:"Tunnel"}),E&&!O?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.pd,{value:`${F||U}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>ek(`${F||U}/v1`,"tunnel_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===ej?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>M(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):O?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),R||"Creating tunnel..."]}),(0,a.jsx)("button",{onClick:()=>{W(!1),q("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):L?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),L.message]}),(0,a.jsx)(i.$n,{size:"sm",icon:"cloud_upload",onClick:()=>J(!0),children:"Enable"})]}):P?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,a.jsx)("button",{onClick:()=>$(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,a.jsx)(i.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{k?J(!0):K({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},className:"bg-linear-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600 text-white!",children:"Enable"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[68px] text-center ${Q?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":"bg-sidebar text-text-muted"}`,children:"Tailscale"}),Q&&!G?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.pd,{value:`${B}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>ek(`${B}/v1`,"ts_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===ej?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>eg(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):G||ex?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),Y||"Connecting..."]}),(0,a.jsx)("button",{onClick:()=>{X(!1),em(!1),ee("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):et?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),et.message]}),(0,a.jsx)(i.$n,{size:"sm",icon:"vpn_lock",onClick:eF,children:"Enable"})]}):(0,a.jsx)(i.$n,{size:"sm",icon:"vpn_lock",onClick:eF,className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"})]})]}),(E||Q)&&(0,a.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!k&&(0,a.jsx)(u,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!v||!C)&&(0,a.jsx)(u,{message:v?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:v?"Change password":"Enable",href:"/dashboard/profile"}})]}),(E||Q)&&(0,a.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,a.jsx)(i.lM,{checked:T,onChange:()=>ev(!T)}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,a.jsx)(h,{text:"When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked."})]})]})]}),(0,a.jsxs)(i.Zp,{id:"require-api-key",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"API Keys"}),(0,a.jsx)(i.$n,{icon:"add",onClick:()=>g(!0),children:"Create Key"})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between pb-4 mb-4 border-b border-border",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,a.jsx)(i.lM,{checked:k,onChange:()=>eN(!k)})]}),0===t.length?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,a.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,a.jsx)(i.$n,{icon:"add",onClick:()=>g(!0),children:"Create Key"})]}):(0,a.jsx)("div",{className:"flex flex-col",children:t.map(e=>{var t;return(0,a.jsxs)("div",{className:`group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono",children:ey.has(e.id)?e.key:(t=e.key)?t.length>8?t.slice(0,8)+"...":t:""}),(0,a.jsx)("button",{onClick:()=>{var t;return t=e.id,void ef(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",title:ey.has(e.id)?"Hide key":"Show key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:ey.has(e.id)?"visibility_off":"visibility"})}),(0,a.jsx)("button",{onClick:()=>ek(e.key,e.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:ej===e.id?"check":"content_copy"})})]}),(0,a.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),!1===e.isActive&&(0,a.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(i.lM,{size:"sm",checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?confirm(`Pause API key "${e.name}"?
|
|
2
|
-
|
|
3
|
-
This key will stop working immediately but can be resumed later.`)&&eW(e.id,t):eW(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{onClick:()=>eO(e.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)})})]}),(0,a.jsx)(i.aF,{isOpen:p,title:"Create API Key",onClose:()=>{g(!1),y("")},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(i.pd,{label:"Key Name",value:b,onChange:e=>y(e.target.value),placeholder:"Production Key"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:eI,fullWidth:!0,disabled:!b.trim(),children:"Create"}),(0,a.jsx)(i.$n,{onClick:()=>{g(!1),y("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:!!f,title:"API Key Created",onClose:()=>j(null),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,a.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,a.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.pd,{value:f||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)(i.$n,{variant:"secondary",icon:"created_key"===ej?"check":"content_copy",onClick:()=>ek(f,"created_key"),children:"created_key"===ej?"Copied!":"Copy"})]}),(0,a.jsx)(i.$n,{onClick:()=>j(null),fullWidth:!0,children:"Done"})]})}),(0,a.jsx)(i.aF,{isOpen:z,title:"Enable Tunnel",onClose:()=>J(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg p-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"cloud_upload"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200 font-medium mb-1",children:"Cloudflare Tunnel"}),(0,a.jsx)("p",{className:"text-sm text-blue-700 dark:text-blue-300",children:"Expose your local 9Router to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3",children:c.map(e=>(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:e.icon}),(0,a.jsx)("p",{className:"text-xs font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:e.desc})]},e.title))}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:eT,fullWidth:!0,className:"bg-linear-to-r from-primary to-blue-500 hover:from-primary-hover hover:to-blue-600 text-white!",children:"Start Tunnel"}),(0,a.jsx)(i.$n,{onClick:()=>J(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:H,title:"Disable Tunnel",onClose:()=>!O&&M(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:e_,fullWidth:!0,disabled:O,className:"bg-red-500! hover:bg-red-600! text-white!",children:O?"Disabling...":"Disable"}),(0,a.jsx)(i.$n,{onClick:()=>M(!1),variant:"ghost",fullWidth:!0,disabled:O,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:eh,title:"Tailscale Funnel",onClose:()=>{er||(eu(!1),ed(""),es(null))},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[null===ea&&(0,a.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===ea&&!er&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:e$,fullWidth:!0,className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Install Tailscale"}),(0,a.jsx)(i.$n,{onClick:()=>eu(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),er&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),ei.length>0&&(0,a.jsx)("div",{ref:eb,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:ei.map((e,t)=>(0,a.jsx)("div",{children:e},t))})]}),!0===ea&&!er&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:()=>{let e=window.open("","tailscale_auth","width=600,height=700");e&&e.document.write("<p style='font-family:sans-serif;text-align:center;margin-top:40px'>Connecting to Tailscale...</p>"),eA(e)},fullWidth:!0,className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Connect"}),(0,a.jsx)(i.$n,{onClick:()=>eu(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),et&&(0,a.jsx)(m,{status:et})]})}),(0,a.jsx)(i.aF,{isOpen:ep,title:"Disable Tailscale",onClose:()=>!G&&eg(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:eD,fullWidth:!0,disabled:G,className:"bg-red-500! hover:bg-red-600! text-white!",children:G?"Disabling...":"Disable"}),(0,a.jsx)(i.$n,{onClick:()=>eg(!1),variant:"ghost",fullWidth:!0,disabled:G,children:"Cancel"})]})]})})]})}function x({label:e,url:t,copyId:s,copied:l,onCopy:r,badge:n,actions:o}){return(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[68px] text-center ${"CF"===n?"bg-orange-100 dark:bg-orange-900/30 text-orange-600 dark:text-orange-400":"TS"===n?"bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400":"bg-sidebar text-text-muted"}`,children:e}),(0,a.jsx)(i.pd,{value:t,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>r(t,s),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:l===s?"check":"content_copy"})}),o]})}function m({status:e,className:t=""}){return(0,a.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,a.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function h({text:e}){return(0,a.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,a.jsx)("span",{className:"pointer-events-none absolute left-5 top-1/2 -translate-y-1/2 z-50 w-64 rounded bg-gray-900 dark:bg-gray-800 text-white text-xs px-2.5 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity shadow-lg",children:e})]})}function u({message:e,action:t}){return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,a.jsx)("p",{className:"text-xs flex-1",children:e}),t&&(0,a.jsx)("a",{href:t.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}d.propTypes={machineId:n().string.isRequired}},78035:(e,t,s)=>{Promise.resolve().then(s.bind(s,64795))}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6099],{},_=>{_.O(0,[7848,4335,2599,505,4156,8035,2347,5158,7358],()=>_(_.s=78035)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6337],{},_=>{_.O(0,[7848,4335,2599,505,4156,8035,2347,5158,7358],()=>_(_.s=78035)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-77e9b2d982a01e23.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2134],{7207:(e,t,s)=>{Promise.resolve().then(s.bind(s,60717))},60717:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>C});var i=s(73365),a=s(1521),r=s(29717),o=s(99568),l=s.n(o),n=s(58872),d=s(74156),c=s(82495),p=s(69633),x=s(96459);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(86447),y=s.n(h);function f({model:e,fullModel:t,alias:s,copied:a,onCopy:r,testStatus:o,isCustom:l,isFree:n,onDeleteAlias:d,onTest:c,isTesting:p}){let x="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,i.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,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"===o?"check_circle":"error"===o?"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"})]}),l&&(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:o,testStatus:l,isTesting:n}){let d="ok"===l?"#22c55e":"error"===l?"#ef4444":void 0;return(0,i.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===l?"border-green-500/40":"error"===l?"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"===l?"check_circle":"error"===l?"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"})]}),o&&(0,i.jsxs)("div",{className:"relative group/btn",children:[(0,i.jsx)("button",{onClick:o,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:o,onSetAlias:l,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 o=(a=i.split("/"))[a.length-1];if(!s[o])return o;let l=`${t}-${o}`;return s[l]?null:l},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 l(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 l(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:o,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:o,onMoveUp:l,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,[R,_]=(0,a.useState)(!1),E=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>!!e).sort()[0]||null;(0,a.useEffect)(()=>{let t=()=>{_(!!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=E?setInterval(t,1e3):null;return()=>{s&&clearInterval(s)}},[E]);let I="unavailable"!==e.testStatus||R?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:l,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: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,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"}),R&&!1!==e.isActive&&(0,i.jsx)(v,{until:E}),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:o,proxyPools:l,onSave:n,onClose:c}){let p="__none__",[x,m]=(0,a.useState)({name:"",apiKey:"",priority:1,proxyPoolId:p}),[u,h]=(0,a.useState)(!1),[y,f]=(0,a.useState)(null),[g,b]=(0,a.useState)(!1),v=async()=>{h(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:x.apiKey})}),s=await e.json();f(s.valid?"success":"failed")}catch{f("failed")}finally{h(!1)}},j=async()=>{if(t&&x.apiKey){b(!0);try{let e=!1;try{h(!0),f(null);let s=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:x.apiKey})});e=!!(await s.json()).valid,f(e?"success":"failed")}catch{f("failed")}finally{h(!1)}await n({name:x.name,apiKey:x.apiKey,priority:x.priority,proxyPoolId:x.proxyPoolId===p?null:x.proxyPoolId,testStatus:e?"active":"unknown",providerSpecificData:void 0})}finally{b(!1)}}};return t?(0,i.jsx)(d.aF,{isOpen:e,title:`Add ${s||t} API Key`,onClose:c,children:(0,i.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,i.jsx)(d.pd,{label:"Name",value:x.name,onChange:e=>m({...x,name:e.target.value}),placeholder:"Production Key"}),(0,i.jsxs)("div",{className:"flex gap-2",children:[(0,i.jsx)(d.pd,{label:"API Key",type:"password",value:x.apiKey,onChange:e=>m({...x,apiKey:e.target.value}),className:"flex-1"}),(0,i.jsx)("div",{className:"pt-6",children:(0,i.jsx)(d.$n,{onClick:v,disabled:!x.apiKey||u||g,variant:"secondary",children:u?"Checking...":"Check"})})]}),y&&(0,i.jsx)(d.Ex,{variant:"success"===y?"success":"error",children:"success"===y?"Valid":"Invalid"}),r&&(0,i.jsx)("p",{className:"text-xs text-text-muted",children:o?`Validation checks ${s||"Anthropic Compatible"} by verifying the API key.`:`Validation checks ${s||"OpenAI Compatible"} via /models on your base URL.`}),(0,i.jsx)(d.pd,{label:"Priority",type:"number",value:x.priority,onChange:e=>m({...x,priority:Number.parseInt(e.target.value)||1})}),(0,i.jsx)(d.l6,{label:"Proxy Pool",value:x.proxyPoolId,onChange:e=>m({...x,proxyPoolId:e.target.value}),options:[{value:p,label:"None"},...(l||[]).map(e=>({value:e.id,label:e.name}))],placeholder:"None"}),0===(l||[]).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:j,fullWidth:!0,disabled:!x.name||!x.apiKey||g,children:g?"Saving...":"Save"}),(0,i.jsx)(d.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function k({isOpen:e,node:t,onSave:s,onClose:r,isAnthropic:o}){let[l,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||(o?"https://api.anthropic.com/v1":"https://api.openai.com/v1")})},[t,o]);let v=async()=>{if(l.name.trim()&&l.prefix.trim()&&l.baseUrl.trim()){p(!0);try{let e={name:l.name,prefix:l.prefix,baseUrl:l.baseUrl};o||(e.apiType=l.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:l.baseUrl,apiKey:x,type:o?"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 ${o?"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:l.name,onChange:e=>n({...l,name:e.target.value}),placeholder:`${o?"Anthropic":"OpenAI"} Compatible (Prod)`,hint:"Required. A friendly label for this node."}),(0,i.jsx)(d.pd,{label:"Prefix",value:l.prefix,onChange:e=>n({...l,prefix:e.target.value}),placeholder:o?"ac-prod":"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),!o&&(0,i.jsx)(d.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:l.apiType,onChange:e=>n({...l,apiType:e.target.value})}),(0,i.jsx)(d.pd,{label:"Base URL",value:l.baseUrl,onChange:e=>n({...l,baseUrl:e.target.value}),placeholder:o?"https://api.anthropic.com/v1":"https://api.openai.com/v1",hint:`Use the base URL (ending in /v1) for your ${o?"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||!l.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:!l.name.trim()||!l.prefix.trim()||!l.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:o}){let[l,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(l.trim()){p("testing"),m("");try{let e=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${t}/${l.trim()}`})}),s=await e.json();p(s.ok?"ok":"error"),m(s.error||"")}catch(e){p("error"),m(e.message)}}},f=async()=>{if(l.trim()&&!u){h(!0);try{await r(l.trim())}finally{h(!1)}}};return(0,i.jsx)(d.aF,{isOpen:e,onClose:o,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:l,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:!l.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:l.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:o,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,i.jsx)(d.$n,{onClick:f,fullWidth:!0,size:"sm",disabled:!l.trim()||u,children:u?"Adding...":"Add Model"})]})]})})}function C(){let e=(0,r.useParams)(),t=(0,r.useRouter)(),s=e.id,[o,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,R]=(0,a.useState)(!1),[_,E]=(0,a.useState)(!1),[I,D]=(0,a.useState)(!1),[U,q]=(0,a.useState)(!1),[M,K]=(0,a.useState)(null),[L,F]=(0,a.useState)({}),[z,J]=(0,a.useState)(!1),[W,V]=(0,a.useState)({}),[Z,B]=(0,a.useState)(""),[G,Q]=(0,a.useState)(null),[H,X]=(0,a.useState)(!1),[Y,ee]=(0,a.useState)([]),[et,es]=(0,a.useState)("__none__"),[ei,ea]=(0,a.useState)(!1),[er,eo]=(0,a.useState)(null),[el,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],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&&F(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(),o=await t.json(),l=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(l.proxyPools||[]);let d=(n.providerStrategies||{})[s]||{};eo(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=(o.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$(),D(!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 o={...a};0===Object.keys(r).length?delete o[s]:o[s]=r,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:o})})}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)}},eR=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await eA()}catch(e){console.log("Error deleting alias:",e)}},e_=async e=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&m(o.filter(t=>t.id!==e))}catch(e){console.log("Error deleting connection:",e)}},eE=()=>{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$(),R(!1))}catch(e){console.log("Error saving connection:",e)}},eD=async e=>{try{(await fetch(`/api/providers/${M.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await e$(),E(!1))}catch(e){console.log("Error updating connection:",e)}},eU=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=[...o];[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$()}},eM=o.filter(e=>Y.includes(e.id));o.length>0&&(Y.length,o.length),(0,a.useEffect)(()=>{ee(e=>e.filter(e=>o.some(t=>t.id===e)))},[o]);let eK=(()=>{if(0===eM.length)return"";let e=new Set(eM.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)},eF=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)}},ez=(0,i.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:o.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===o.length-1,onMoveUp:()=>eq(t,t-1),onMoveDown:()=>eq(t,t+1),onToggleActive:t=>eU(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:()=>{K(e),E(!0)},onDelete:()=>e_(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.":eK,eV=Y.length>0&&!ei,eZ=(0,i.jsx)(d.aF,{isOpen:U,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:eF,fullWidth:!0,disabled:!eV,children:ei?"Applying...":"Apply"}),(0,i.jsx)(d.$n,{onClick:eL,variant:"ghost",fullWidth:!0,disabled:ei,children:"Cancel"})]})]})}),eB=async e=>{if(!G){Q(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"})),B(s.ok?"":s.error||"Model not reachable")}catch{V(t=>({...t,[e]:"error"})),B("Network error")}finally{Q(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)(l(),{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:z?(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:[o.length," connection",1===o.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:()=>R(!0),disabled:o.length>0,children:"Add"}),(0,i.jsx)(d.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>D(!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"})]})]}),o.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?el||"1":el;e&&!el&&en("1"),eo(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:el,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===o.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):R(!0),children:"iflow"===s?"OAuth":"Add Connection"})]})]}):(0,i.jsxs)(i.Fragment,{children:[ez,!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):R(!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"})}),!!Z&&(0,i.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:Z}),(()=>{let e,t,a;if(ew)return(0,i.jsx)(b,{providerStorageAlias:eC,providerDisplayAlias:eS,modelAliases:L,copied:eh,onCopy:ey,onSetAlias:eO,onDeleteAlias:eR,connections:o,isAnthropic:ek});let r=[...ev,...em.filter(e=>!ev.some(t=>t.id===e.id))].filter(e=>!e.type||"llm"===e.type),l=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:()=>eR(r),testStatus:W[e.id],onTest:o.length>0||eb?()=>eB(e.id):void 0,isTesting:G===e.id,isFree:e.isFree},e.id)}),l.map(e=>(0,i.jsx)(f,{model:{id:e.id},fullModel:`${eS}/${e.id}`,alias:e.alias,copied:eh,onCopy:ey,onSetAlias:()=>{},onDeleteAlias:()=>eR(e.alias),testStatus:W[e.id],onTest:o.length>0||eb?()=>eB(e.id):void 0,isTesting:G===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))})]}))]})})()]}),eZ,"kiro"===s?(0,i.jsx)(d.Mh,{isOpen:A,providerInfo:ef,onSuccess:eE,onClose:()=>$(!1)}):"cursor"===s?(0,i.jsx)(d.G9,{isOpen:A,onSuccess:eE,onClose:()=>$(!1)}):"gitlab"===s?(0,i.jsx)(d.vj,{isOpen:A,providerInfo:ef,onSuccess:eE,onClose:()=>$(!1)}):(0,i.jsx)(d.LF,{isOpen:A,provider:s,providerInfo:ef,onSuccess:eE,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,proxyPools:C,onSave:eI,onClose:()=>R(!1)}),(0,i.jsx)(d.wI,{isOpen:_,connection:M,proxyPools:C,onSave:eD,onClose:()=>E(!1)}),ew&&(0,i.jsx)(k,{isOpen:I,node:g,onSave:eP,onClose:()=>D(!1),isAnthropic:ek}),!ew&&(0,i.jsx)(w,{isOpen:H,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)(l(),{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,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}}},e=>{e.O(0,[7848,4335,2599,8872,505,4156,2347,5158,7358],()=>e(e.s=7207)),_N_E=e.O()}]);
|
package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-09e7d6bd4d08202c.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8460],{43007:(e,t,s)=>{Promise.resolve().then(s.bind(s,69692))},69692:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>b});var r=s(73365),a=s(1521),l=s(86447),i=s.n(l),n=s(74156),o=s(68266),d=s(43202),c=s(82495),p=s(99568),m=s.n(p),x=s(14793);let u={available:{icon:"check_circle",color:"#22c55e",label:"Available"},cooldown:{icon:"schedule",color:"#f59e0b",label:"Cooldown"},unavailable:{icon:"error",color:"#ef4444",label:"Unavailable"},unknown:{icon:"help",color:"#6b7280",label:"Unknown"}};function h(){let[e,t]=(0,a.useState)(null),[s,l]=(0,a.useState)(!0),[i,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(null),p=(0,a.useRef)(null),m=(0,x.i)(),h=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/models/availability");if(e.ok){let s=await e.json();t(s)}}catch{}finally{l(!1)}},[]);(0,a.useEffect)(()=>{h();let e=setInterval(h,3e4);return()=>clearInterval(e)},[h]),(0,a.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&o(!1)};return i&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[i]);let f=async(e,t)=>{c(`${e}:${t}`);try{(await fetch("/api/models/availability",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clearCooldown",provider:e,model:t})})).ok?(m.success(`Cooldown cleared for ${t}`),await h()):m.error("Failed to clear cooldown")}catch{m.error("Failed to clear cooldown")}finally{c(null)}};if(s)return null;let b=e?.models||[],v=0===(e?.unavailableCount||b.filter(e=>"available"!==e.status).length),g={};return b.forEach(e=>{if("available"===e.status)return;let t=e.provider||"unknown";g[t]||(g[t]=[]),g[t].push(e)}),(0,r.jsx)("div",{className:"relative",ref:p,children:i&&(0,r.jsxs)("div",{className:"absolute top-full right-0 mt-2 w-80 bg-surface border border-border rounded-xl shadow-2xl z-50 overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-bg",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",style:{color:v?"#22c55e":"#f59e0b"},children:v?"verified":"warning"}),(0,r.jsx)("span",{className:"text-sm font-semibold text-text-main",children:"Model Status"})]}),(0,r.jsx)("button",{onClick:h,className:"p-1 rounded-lg hover:bg-surface text-text-muted hover:text-text-main transition-colors",title:"Refresh",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"refresh"})})]}),(0,r.jsx)("div",{className:"px-4 py-3 max-h-60 overflow-y-auto",children:v?(0,r.jsx)("p",{className:"text-sm text-text-muted text-center py-2",children:"All models are responding normally."}):(0,r.jsx)("div",{className:"flex flex-col gap-2.5",children:Object.entries(g).map(([e,t])=>(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-xs font-semibold text-text-main mb-1.5 capitalize",children:e}),(0,r.jsx)("div",{className:"flex flex-col gap-1",children:t.map(e=>{let t=u[e.status]||u.unknown,s=d===`${e.provider}:${e.model}`;return(0,r.jsxs)("div",{className:"flex items-center justify-between px-2.5 py-1.5 rounded-lg bg-surface/30",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px] shrink-0",style:{color:t.color},children:t.icon}),(0,r.jsx)("span",{className:"font-mono text-xs text-text-main truncate",children:e.model})]}),"cooldown"===e.status&&(0,r.jsx)(n.$n,{size:"sm",variant:"ghost",onClick:()=>f(e.provider,e.model),disabled:s,className:"text-[10px] px-1.5! py-0.5! ml-2",children:s?"...":"Clear"})]},`${e.provider}-${e.model}`)})})]},e))})})]})})}function f(e,t,s){let a=[];if(e>0&&a.push((0,r.jsxs)(n.Ex,{variant:"success",size:"sm",dot:!0,children:[e," Connected"]},"connected")),t>0){let e=s?`${t} Error (${s})`:`${t} Error`;a.push((0,r.jsx)(n.Ex,{variant:"error",size:"sm",dot:!0,children:e},"error"))}return 0===a.length?(0,r.jsx)("span",{className:"text-text-muted",children:"No connections"}):a}function b(){let[e,t]=(0,a.useState)([]),[s,l]=(0,a.useState)([]),[i,o]=(0,a.useState)(!0),[p,m]=(0,a.useState)(!1),[u,f]=(0,a.useState)(!1),[b,C]=(0,a.useState)(null),[k,T]=(0,a.useState)(null),w=(0,x.i)();(0,a.useEffect)(()=>{(async()=>{try{let[e,s]=await Promise.all([fetch("/api/providers"),fetch("/api/provider-nodes")]),r=await e.json(),a=await s.json();e.ok&&t(r.connections||[]),s.ok&&l(a.nodes||[])}catch(e){console.log("Error fetching data:",e)}finally{o(!1)}})()},[]);let A=(t,s)=>{let r=e.filter(e=>e.provider===t&&e.authType===s),a=e=>{let t=Object.entries(e).some(([e,t])=>e.startsWith("modelLock_")&&t&&new Date(t).getTime()>Date.now());return"unavailable"!==e.testStatus||t?e.testStatus:"active"},l=r.filter(e=>{let t=a(e);return"active"===t||"success"===t}).length,i=r.filter(e=>{let t=a(e);return"error"===t||"expired"===t||"unavailable"===t}),n=i.length,o=r.length,d=o>0&&r.every(e=>!1===e.isActive),c=i.sort((e,t)=>new Date(t.lastErrorAt||0)-new Date(e.lastErrorAt||0))[0];return{connected:l,error:n,total:o,errorCode:c?function(e){if(!e)return null;let t=e.lastErrorType;if("runtime_error"===t)return"RUNTIME";if("upstream_auth_error"===t||"auth_missing"===t||"token_refresh_failed"===t||"token_expired"===t)return"AUTH";if("upstream_rate_limited"===t)return"429";if("upstream_unavailable"===t)return"5XX";if("network_error"===t)return"NET";let s=Number(e.errorCode);if(Number.isFinite(s)&&s>=400)return String(s);let r=function(e){if(!e)return null;let t=e.match(/\b([45]\d{2})\b/);return t?t[1]:"ERR"}(e.lastError);if("401"===r||"403"===r)return"AUTH";if(r&&"ERR"!==r)return r;let a=(e.lastError||"").toLowerCase();return a.includes("runtime")||a.includes("not runnable")||a.includes("not installed")?"RUNTIME":a.includes("invalid api key")||a.includes("token invalid")||a.includes("revoked")||a.includes("unauthorized")?"AUTH":"ERR"}(c):null,errorTime:c?.lastErrorAt?function(e){if(!e)return"";let t=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(t<1)return"just now";if(t<60)return`${t}m ago`;let s=Math.floor(t/60);if(s<24)return`${s}h ago`;let r=Math.floor(s/24);return`${r}d ago`}(c.lastErrorAt):null,allDisabled:d}},I=async(s,r,a)=>{let l=e.filter(e=>e.provider===s&&e.authType===r);t(e=>e.map(e=>e.provider===s&&e.authType===r?{...e,isActive:a}:e)),await Promise.allSettled(l.map(e=>fetch(`/api/providers/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:a})})))},E=async(e,t=null)=>{if(!b){C("provider"===e?t:e),T(null);try{let s=await fetch("/api/providers/test-batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:e,providerId:t})}),r=await s.json();if(T(r),r.summary){let{passed:e,failed:t,total:s}=r.summary;0===t?w.success(`All ${s} tests passed`):w.warning(`${e}/${s} passed, ${t} failed`)}}catch(e){T({error:"Test request failed"}),w.error("Provider test failed")}finally{C(null)}}},$=s.filter(e=>"openai-compatible"===e.type).map(e=>({id:e.id,name:e.name||"OpenAI Compatible",color:"#10A37F",textIcon:"OC",apiType:e.apiType})),R=s.filter(e=>"anthropic-compatible"===e.type).map(e=>({id:e.id,name:e.name||"Anthropic Compatible",color:"#D97757",textIcon:"AC"}));return i?(0,r.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,r.jsx)(n.Qv,{}),(0,r.jsx)(n.Qv,{})]}):(0,r.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold flex items-center gap-2",children:"OAuth Providers"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(h,{}),(0,r.jsxs)("button",{onClick:()=>E("oauth"),disabled:!!b,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${"oauth"===b?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all OAuth connections","aria-label":"Test all OAuth connections",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[14px]${"oauth"===b?" animate-spin":""}`,children:"oauth"===b?"sync":"play_arrow"}),"oauth"===b?"Testing...":"Test All"]})]})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:Object.entries(d.zN).map(([e,t])=>(0,r.jsx)(v,{providerId:e,provider:t,stats:A(e,"oauth"),authType:"oauth",onToggle:t=>I(e,"oauth",t)},e))})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold flex items-center gap-2",children:"Free & Free Tier Providers"}),(0,r.jsxs)("button",{onClick:()=>E("free"),disabled:!!b,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${"free"===b?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all Free connections","aria-label":"Test all Free provider connections",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[14px]${"free"===b?" animate-spin":""}`,children:"free"===b?"sync":"play_arrow"}),"free"===b?"Testing...":"Test All"]})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[Object.entries(c.IS).map(([e,t])=>(0,r.jsx)(v,{providerId:e,provider:t,stats:A(e,"oauth"),authType:"free",onToggle:t=>I(e,"oauth",t)},e)),Object.entries(c.nJ).map(([e,t])=>(0,r.jsx)(g,{providerId:e,provider:t,stats:A(e,"apikey"),authType:"apikey",onToggle:t=>I(e,"apikey",t)},e))]})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("h2",{className:"text-xl font-semibold flex items-center gap-2",children:["API Key Providers"," "]}),(0,r.jsxs)("button",{onClick:()=>E("apikey"),disabled:!!b,className:`flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium border transition-colors ${"apikey"===b?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all API Key connections","aria-label":"Test all API Key connections",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[14px]${"apikey"===b?" animate-spin":""}`,children:"apikey"===b?"sync":"play_arrow"}),"apikey"===b?"Testing...":"Test All"]})]}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:Object.entries(d.fg).filter(([,e])=>(e.serviceKinds??["llm"]).includes("llm")).map(([e,t])=>(0,r.jsx)(g,{providerId:e,provider:t,stats:A(e,"apikey"),authType:"apikey",onToggle:t=>I(e,"apikey",t)},e))})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("h2",{className:"text-xl font-semibold flex items-center gap-2",children:["API Key Compatible Providers"," "]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(n.$n,{size:"sm",icon:"add",onClick:()=>f(!0),children:"Add Anthropic Compatible"}),(0,r.jsx)(n.$n,{size:"sm",variant:"secondary",icon:"add",onClick:()=>m(!0),className:"!bg-white !text-black hover:!bg-gray-100",children:"Add OpenAI Compatible"})]})]}),0===$.length&&0===R.length?(0,r.jsxs)("div",{className:"text-center py-8 border border-dashed border-border rounded-xl",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[32px] text-text-muted mb-2",children:"extension"}),(0,r.jsx)("p",{className:"text-text-muted text-sm",children:"No compatible providers added yet"}),(0,r.jsx)("p",{className:"text-text-muted text-xs mt-1",children:"Use the buttons above to add OpenAI or Anthropic compatible endpoints"})]}):(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[...$,...R].map(e=>(0,r.jsx)(g,{providerId:e.id,provider:e,stats:A(e.id,"apikey"),authType:"compatible",onToggle:t=>I(e.id,"apikey",t)},e.id))})]}),(0,r.jsx)(y,{isOpen:p,onClose:()=>m(!1),onCreated:e=>{l(t=>[...t,e]),m(!1)}}),(0,r.jsx)(j,{isOpen:u,onClose:()=>f(!1),onCreated:e=>{l(t=>[...t,e]),f(!1)}}),k&&(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-start justify-center pt-[10vh]",onClick:()=>T(null),children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),(0,r.jsxs)("div",{className:"relative bg-surface border border-border rounded-xl w-full max-w-[600px] max-h-[80vh] overflow-y-auto shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"sticky top-0 z-10 flex items-center justify-between px-5 py-3 border-b border-border bg-surface/95 backdrop-blur-sm rounded-t-xl",children:[(0,r.jsx)("h3",{className:"font-semibold",children:"Test Results"}),(0,r.jsx)("button",{onClick:()=>T(null),className:"p-1 rounded-lg hover:bg-bg text-text-muted hover:text-text-main transition-colors","aria-label":"Close test results",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-lg",children:"close"})})]}),(0,r.jsx)("div",{className:"p-5",children:(0,r.jsx)(N,{results:k})})]})]})]})}function v({providerId:e,provider:t,stats:s,authType:a,onToggle:l}){let{connected:i,error:d,errorCode:c,errorTime:p,allDisabled:x}=s,u=!!t.noAuth;return(0,r.jsx)(m(),{href:`/dashboard/providers/${e}`,className:"group",children:(0,r.jsx)(n.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${x?"opacity-50":""}`,children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"size-8 rounded-lg flex items-center justify-center",style:{backgroundColor:`${t.color?.length>7?t.color:t.color+"15"}`},children:(0,r.jsx)(o.A,{src:`/providers/${t.id}.png`,alt:t.name,size:30,className:"object-contain rounded-lg max-w-[32px] max-h-[32px]",fallbackText:t.textIcon||t.id.slice(0,2).toUpperCase(),fallbackColor:t.color})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"font-semibold",children:t.name}),(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs flex-wrap",children:x?(0,r.jsx)(n.Ex,{variant:"default",size:"sm",children:(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):u?(0,r.jsx)(n.Ex,{variant:"success",size:"sm",dot:!0,children:"Ready"}):(0,r.jsxs)(r.Fragment,{children:[f(i,d,c),p&&(0,r.jsx)("span",{className:"text-text-muted",children:p})]})})]})]}),(0,r.jsx)("div",{className:"flex items-center gap-2",children:s.total>0&&(0,r.jsx)("div",{className:"opacity-0 group-hover:opacity-100 transition-opacity",onClick:e=>{e.preventDefault(),e.stopPropagation(),l(!!x)},children:(0,r.jsx)(n.lM,{size:"sm",checked:!x,onChange:()=>{},title:x?"Enable provider":"Disable provider"})})})]})})})}function g({providerId:e,provider:t,stats:s,authType:a,onToggle:l}){let{connected:i,error:d,errorCode:p,errorTime:x,allDisabled:u}=s,h=e.startsWith(c.JH),b=e.startsWith(c.DI);return(0,r.jsx)(m(),{href:`/dashboard/providers/${e}`,className:"group",children:(0,r.jsx)(n.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${u?"opacity-50":""}`,children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"size-8 rounded-lg flex items-center justify-center",style:{backgroundColor:`${t.color?.length>7?t.color:t.color+"15"}`},children:(0,r.jsx)(o.A,{src:h?"responses"===t.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":b?"/providers/anthropic-m.png":`/providers/${t.id}.png`,alt:t.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:t.textIcon||t.id.slice(0,2).toUpperCase(),fallbackColor:t.color})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"font-semibold",children:t.name}),(0,r.jsx)("div",{className:"flex items-center gap-2 text-xs flex-wrap",children:u?(0,r.jsx)(n.Ex,{variant:"default",size:"sm",children:(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):(0,r.jsxs)(r.Fragment,{children:[f(i,d,p),h&&(0,r.jsx)(n.Ex,{variant:"default",size:"sm",children:"responses"===t.apiType?"Responses":"Chat"}),b&&(0,r.jsx)(n.Ex,{variant:"default",size:"sm",children:"Messages"}),x&&(0,r.jsx)("span",{className:"text-text-muted",children:x})]})})]})]}),(0,r.jsx)("div",{className:"flex items-center gap-2",children:s.total>0&&(0,r.jsx)("div",{className:"opacity-0 group-hover:opacity-100 transition-opacity",onClick:e=>{e.preventDefault(),e.stopPropagation(),l(!!u)},children:(0,r.jsx)(n.lM,{size:"sm",checked:!u,onChange:()=>{},title:u?"Enable provider":"Disable provider"})})})]})})})}function y({isOpen:e,onClose:t,onCreated:s}){let[l,i]=(0,a.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[o,d]=(0,a.useState)(!1),[c,p]=(0,a.useState)(""),[m,x]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1),[f,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{i(e=>({...e,baseUrl:"https://api.openai.com/v1"}))},[l.apiType]);let v=async()=>{if(l.name.trim()&&l.prefix.trim()&&l.baseUrl.trim()){d(!0);try{let e=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:l.name,prefix:l.prefix,apiType:l.apiType,baseUrl:l.baseUrl,type:"openai-compatible"})}),t=await e.json();e.ok&&(s(t.node),i({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),p(""),b(null))}catch(e){console.log("Error creating OpenAI Compatible node:",e)}finally{d(!1)}}},g=async()=>{h(!0);try{let e=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:l.baseUrl,apiKey:c,type:"openai-compatible",modelId:m.trim()||void 0})}),t=await e.json();b(t)}catch{b({valid:!1,error:"Network error"})}finally{h(!1)}};return(0,r.jsx)(n.aF,{isOpen:e,title:"Add OpenAI Compatible",onClose:t,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)(n.pd,{label:"Name",value:l.name,onChange:e=>i({...l,name:e.target.value}),placeholder:"OpenAI Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,r.jsx)(n.pd,{label:"Prefix",value:l.prefix,onChange:e=>i({...l,prefix:e.target.value}),placeholder:"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,r.jsx)(n.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:l.apiType,onChange:e=>i({...l,apiType:e.target.value})}),(0,r.jsx)(n.pd,{label:"Base URL",value:l.baseUrl,onChange:e=>i({...l,baseUrl:e.target.value}),placeholder:"https://api.openai.com/v1",hint:"Use the base URL (ending in /v1) for your OpenAI-compatible API."}),(0,r.jsx)(n.pd,{label:"API Key (for Check)",type:"password",value:c,onChange:e=>p(e.target.value)}),(0,r.jsx)(n.pd,{label:"Model ID (optional)",value:m,onChange:e=>x(e.target.value),placeholder:"e.g. gpt-4, claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(n.$n,{onClick:g,disabled:!c||u||!l.baseUrl.trim(),variant:"secondary",children:u?"Checking...":"Check"}),(()=>{if(!f)return null;let{valid:e,error:t,method:s}=f;return e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.Ex,{variant:"success",children:"Valid"}),"chat"===s&&(0,r.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)(n.Ex,{variant:"error",children:"Invalid"}),t&&(0,r.jsx)("span",{className:"text-sm text-red-500",children:t})]})})()]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(n.$n,{onClick:v,fullWidth:!0,disabled:!l.name.trim()||!l.prefix.trim()||!l.baseUrl.trim()||o,children:o?"Creating...":"Create"}),(0,r.jsx)(n.$n,{onClick:t,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function j({isOpen:e,onClose:t,onCreated:s}){let[l,i]=(0,a.useState)({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),[o,d]=(0,a.useState)(!1),[c,p]=(0,a.useState)(""),[m,x]=(0,a.useState)(""),[u,h]=(0,a.useState)(!1),[f,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{e&&(b(null),p(""),x(""))},[e]);let v=async()=>{if(l.name.trim()&&l.prefix.trim()&&l.baseUrl.trim()){d(!0);try{let e=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:l.name,prefix:l.prefix,baseUrl:l.baseUrl,type:"anthropic-compatible"})}),t=await e.json();e.ok&&(s(t.node),i({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),p(""),b(null))}catch(e){console.log("Error creating Anthropic Compatible node:",e)}finally{d(!1)}}},g=async()=>{h(!0);try{let e=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:l.baseUrl,apiKey:c,type:"anthropic-compatible",modelId:m.trim()||void 0})}),t=await e.json();b(t)}catch{b({valid:!1,error:"Network error"})}finally{h(!1)}};return(0,r.jsx)(n.aF,{isOpen:e,title:"Add Anthropic Compatible",onClose:t,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)(n.pd,{label:"Name",value:l.name,onChange:e=>i({...l,name:e.target.value}),placeholder:"Anthropic Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,r.jsx)(n.pd,{label:"Prefix",value:l.prefix,onChange:e=>i({...l,prefix:e.target.value}),placeholder:"ac-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,r.jsx)(n.pd,{label:"Base URL",value:l.baseUrl,onChange:e=>i({...l,baseUrl:e.target.value}),placeholder:"https://api.anthropic.com/v1",hint:"Use the base URL (ending in /v1) for your Anthropic-compatible API. The system will append /messages."}),(0,r.jsx)(n.pd,{label:"API Key (for Check)",type:"password",value:c,onChange:e=>p(e.target.value)}),(0,r.jsx)(n.pd,{label:"Model ID (optional)",value:m,onChange:e=>x(e.target.value),placeholder:"e.g. claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(n.$n,{onClick:g,disabled:!c||u||!l.baseUrl.trim(),variant:"secondary",children:u?"Checking...":"Check"}),(()=>{if(!f)return null;let{valid:e,error:t,method:s}=f;return e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.Ex,{variant:"success",children:"Valid"}),"chat"===s&&(0,r.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)(n.Ex,{variant:"error",children:"Invalid"}),t&&(0,r.jsx)("span",{className:"text-sm text-red-500",children:t})]})})()]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(n.$n,{onClick:v,fullWidth:!0,disabled:!l.name.trim()||!l.prefix.trim()||!l.baseUrl.trim()||o,children:o?"Creating...":"Create"}),(0,r.jsx)(n.$n,{onClick:t,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function N({results:e}){if(e.error&&!e.results)return(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-red-500 text-[32px] mb-2 block",children:"error"}),(0,r.jsx)("p",{className:"text-sm text-red-400",children:e.error})]});let{summary:t,mode:s}=e,a=e.results||[];return(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[t&&(0,r.jsxs)("div",{className:"flex items-center gap-3 text-xs mb-1",children:[(0,r.jsxs)("span",{className:"text-text-muted",children:[{oauth:"OAuth",free:"Free",apikey:"API Key",provider:"Provider",all:"All"}[s]||s," Test"]}),(0,r.jsxs)("span",{className:"px-2 py-0.5 rounded bg-emerald-500/15 text-emerald-400 font-medium",children:[t.passed," passed"]}),t.failed>0&&(0,r.jsxs)("span",{className:"px-2 py-0.5 rounded bg-red-500/15 text-red-400 font-medium",children:[t.failed," failed"]}),(0,r.jsxs)("span",{className:"text-text-muted ml-auto",children:[t.total," tested"]})]}),a.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs px-3 py-2 rounded-lg bg-black/[0.03] dark:bg-white/[0.03]",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[16px] ${e.valid?"text-emerald-500":"text-red-500"}`,children:e.valid?"check_circle":"error"}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("span",{className:"font-medium",children:e.connectionName}),(0,r.jsxs)("span",{className:"text-text-muted ml-1.5",children:["(",e.provider,")"]})]}),void 0!==e.latencyMs&&(0,r.jsxs)("span",{className:"text-text-muted font-mono tabular-nums",children:[e.latencyMs,"ms"]}),(0,r.jsx)("span",{className:`text-[10px] uppercase font-bold px-1.5 py-0.5 rounded ${e.valid?"bg-emerald-500/15 text-emerald-400":"bg-red-500/15 text-red-400"}`,children:e.valid?"OK":e.diagnosis?.type||"ERROR"})]},e.connectionId||t)),0===a.length&&(0,r.jsx)("div",{className:"text-center py-4 text-text-muted text-sm",children:"No active connections found for this group."})]})}v.propTypes={providerId:i().string.isRequired,provider:i().shape({id:i().string.isRequired,name:i().string.isRequired,color:i().string,textIcon:i().string}).isRequired,stats:i().shape({connected:i().number,error:i().number,errorCode:i().string,errorTime:i().string}).isRequired,authType:i().string,onToggle:i().func},g.propTypes={providerId:i().string.isRequired,provider:i().shape({id:i().string.isRequired,name:i().string.isRequired,color:i().string,textIcon:i().string,apiType:i().string}).isRequired,stats:i().shape({connected:i().number,error:i().number,errorCode:i().string,errorTime:i().string}).isRequired,authType:i().string,onToggle:i().func},y.propTypes={isOpen:i().bool.isRequired,onClose:i().func.isRequired,onCreated:i().func.isRequired},j.propTypes={isOpen:i().bool.isRequired,onClose:i().func.isRequired,onCreated:i().func.isRequired},N.propTypes={results:i().shape({mode:i().string,results:i().array,summary:i().shape({total:i().number,passed:i().number,failed:i().number}),error:i().string}).isRequired}}},e=>{e.O(0,[7848,4335,2599,505,4156,2347,5158,7358],()=>e(e.s=43007)),_N_E=e.O()}]);
|
package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-82c184348fd5c917.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3528],{1976:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return o},createSnapshot:function(){return d}};for(var r in n)Object.defineProperty(t,r,{enumerable:!0,get:n[r]});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class s{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let l="u">typeof globalThis&&globalThis.AsyncLocalStorage;function o(){return l?new l:new s}function i(e){return l?l.bind(e):s.bind(e)}function d(){return l?l.snapshot():function(e,...t){return e(...t)}}},26599:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let r=n(12563)._(n(51343));function a(e,t){let n={};"function"==typeof e&&(n.loader=e);let a={...n,...t};return(0,r.default)({...a,modules:a.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38372:(e,t,n)=>{"use strict";function r({reason:e,children:t}){return t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),n(24104)},51343:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let r=n(73365),a=n(1521),s=n(38372);function l(e){return{default:e&&"default"in e?e.default:e}}n(52393);let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},i=function(e){let t={...o,...e},n=(0,a.lazy)(()=>t.loader().then(l)),i=t.loading;function d(e){let l=i?(0,r.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?a.Suspense:a.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(d,{...o?{fallback:l}:{},children:c})}return d.displayName="LoadableComponent",d}},52393:(e,t,n)=>{"use strict";function r({moduleIds:e}){return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),n(73365),n(98196),n(89442),n(91319),n(68491)},54053:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var r=n(73365),a=n(1521),s=n(74156),l=n(26599);let o=n.n(l)()(()=>n.e(1310).then(n.bind(n,41310)),{loadableGenerated:{webpack:()=>[41310]},ssr:!1}),i=[{id:1,label:"Client Request",file:"1_req_client.json",lang:"json",desc:"Raw request from client"},{id:2,label:"Source Body",file:"2_req_source.json",lang:"json",desc:"After initial conversion"},{id:3,label:"OpenAI Intermediate",file:"3_req_openai.json",lang:"json",desc:"source → openai"},{id:4,label:"Target Request",file:"4_req_target.json",lang:"json",desc:"openai → target + URL + headers"},{id:5,label:"Provider Response",file:"5_res_provider.txt",lang:"text",desc:"Raw SSE from provider"},{id:6,label:"OpenAI Response",file:"6_res_openai.txt",lang:"text",desc:"target → openai (response)"},{id:7,label:"Client Response",file:"7_res_client.txt",lang:"text",desc:"Final response to client"}],d={minimap:{enabled:!1},fontSize:12,lineNumbers:"on",scrollBeyondLastLine:!1,wordWrap:"on",automaticLayout:!0};function c(){let[e,t]=(0,a.useState)({}),[n,l]=(0,a.useState)({1:!0}),[c,p]=(0,a.useState)({}),[f,x]=(0,a.useState)(null),m=(e,t)=>p(n=>({...n,[e]:t})),g=(e,n)=>t(t=>({...t,[e]:n})),h=e=>l(t=>{let n={};return i.forEach(e=>{n[e.id]=!1}),n[e]=!0,n}),b=async e=>{let t=i.find(t=>t.id===e);m(`load-${e}`,!0);try{let n=await fetch(`/api/translator/load?file=${t.file}`),r=await n.json();r.success?(g(e,r.content),1===e&&await y(r.content)):alert(r.error||"File not found")}catch(e){alert(e.message)}m(`load-${e}`,!1)},y=async e=>{try{let t="string"==typeof e?JSON.parse(e):e,n=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:1,body:t})}),r=await n.json();r.success&&x(r.result)}catch{}},j=(e,t)=>fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:e,content:t})}).catch(()=>{}),_=async()=>{m("toOpenAI",!0);try{let t=e[1],n=JSON.parse(t);j("1_req_client.json",t),j("2_req_source.json",JSON.stringify({timestamp:new Date().toISOString(),headers:{},body:n.body||n},null,2));let r=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:2,body:n})}),a=await r.json();if(!a.success)return void alert(a.error);let s=JSON.stringify(a.result.body,null,2);g(3,s),h(3)}catch(e){alert(e.message)}m("toOpenAI",!1)},v=async()=>{m("toTarget",!0);try{let t=e[3],n=JSON.parse(t);j("3_req_openai.json",t);let r=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:3,body:{...n,provider:f?.provider,model:f?.model}})}),a=await r.json();if(!a.success)return void alert(a.error);let s={...a.result,provider:f?.provider,model:f?.model};g(4,JSON.stringify(s,null,2)),h(4)}catch(e){alert(e.message)}m("toTarget",!1)},O=async()=>{m("send",!0);try{let t=e[4],n=JSON.parse(t);j("4_req_target.json",t);let r=n.provider||f?.provider,a=n.model||f?.model;if(!r||!a)return void alert("Missing provider or model. Please run step 1 first to detect them.");let s=await fetch("/api/translator/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:r,model:a,body:n.body||n})});if(!s.ok){let e=await s.json().catch(()=>({error:s.statusText}));alert(e.error||"Send failed");return}let l=s.body.getReader(),o=new TextDecoder,i="";for(;;){let{done:e,value:t}=await l.read();if(e)break;i+=o.decode(t,{stream:!0})}g(5,i),h(5),await fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:"5_res_provider.txt",content:i})})}catch(e){alert(e.message)}finally{m("send",!1)}},w=async t=>{e[t]&&await navigator.clipboard.writeText(e[t])};return(0,r.jsxs)("div",{className:"p-8 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Translator Debug"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Replay request flow — matches log files"})]}),f&&(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap justify-end",children:[(0,r.jsx)(u,{label:"src",value:f.sourceFormat,color:"blue"}),(0,r.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,r.jsx)(u,{label:"dst",value:f.targetFormat,color:"orange"}),(0,r.jsx)(u,{label:"provider",value:f.provider,color:"green"}),(0,r.jsx)(u,{label:"model",value:f.model,color:"purple"})]})]}),i.map(t=>{var a;let i=1===(a=t.id)?(0,r.jsx)(s.$n,{size:"sm",icon:"arrow_forward",loading:c.toOpenAI,onClick:_,children:"→ OpenAI"}):3===a?(0,r.jsx)(s.$n,{size:"sm",icon:"arrow_forward",loading:c.toTarget,onClick:v,children:"→ Target"}):4===a?(0,r.jsx)(s.$n,{size:"sm",icon:"send",loading:c.send,onClick:O,children:"Send"}):null,u=!!n[t.id],p=e[t.id]||"";return(0,r.jsx)(s.Zp,{children:(0,r.jsxs)("div",{className:"p-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("button",{onClick:()=>{let e;return e=t.id,l(t=>({...t,[e]:!t[e]}))},className:"flex items-center gap-2 flex-1 text-left group",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-text-muted group-hover:text-primary transition-colors",children:u?"expand_more":"chevron_right"}),(0,r.jsx)("span",{className:"text-xs font-mono text-text-muted/60 w-4",children:t.id}),(0,r.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:t.label}),(0,r.jsx)("span",{className:"text-xs text-text-muted/60 font-mono",children:t.file}),p&&(0,r.jsxs)("span",{className:"text-xs text-green-500",children:["(",p.length," chars)"]})]}),!u&&(0,r.jsxs)("div",{className:"flex gap-1 shrink-0",children:[(0,r.jsx)(s.$n,{size:"sm",variant:"ghost",icon:"folder_open",loading:c[`load-${t.id}`],onClick:()=>b(t.id)}),i]})]}),u&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"border border-border rounded-lg overflow-hidden",children:(0,r.jsx)(o,{height:"400px",defaultLanguage:"text"===t.lang?"plaintext":"json",value:p,onChange:e=>{g(t.id,e||""),1===t.id&&y(e||"")},theme:"vs-dark",options:d})}),(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,r.jsx)(s.$n,{size:"sm",variant:"outline",icon:"folder_open",loading:c[`load-${t.id}`],onClick:()=>b(t.id),children:"Load"}),(0,r.jsx)(s.$n,{size:"sm",variant:"outline",icon:"data_object",onClick:()=>(t=>{try{let n=JSON.parse(e[t]);g(t,JSON.stringify(n,null,2))}catch{}})(t.id),children:"Format"}),(0,r.jsx)(s.$n,{size:"sm",variant:"outline",icon:"content_copy",onClick:()=>w(t.id),children:"Copy"}),i]})]})]})},t.id)})]})}function u({label:e,value:t,color:n}){return(0,r.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-mono ${{blue:"bg-blue-500/10 text-blue-500",orange:"bg-orange-500/10 text-orange-500",green:"bg-green-500/10 text-green-500",purple:"bg-purple-500/10 text-purple-500"}[n]}`,children:[(0,r.jsxs)("span",{className:"text-text-muted/70 font-sans text-[10px]",children:[e,":"]}),t]})}},86673:(e,t,n)=>{Promise.resolve().then(n.bind(n,54053))},89442:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=n(99238)},99238:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,n(1976).createAsyncLocalStorage)()}},e=>{e.O(0,[7848,4335,2599,505,4156,2347,5158,7358],()=>e(e.s=86673)),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{43841:(e,s,n)=>{Promise.resolve().then(n.bind(n,82455)),Promise.resolve().then(n.bind(n,35045)),Promise.resolve().then(n.bind(n,38230)),Promise.resolve().then(n.bind(n,292)),Promise.resolve().then(n.bind(n,70391)),Promise.resolve().then(n.bind(n,90163)),Promise.resolve().then(n.bind(n,70789)),Promise.resolve().then(n.bind(n,50136)),Promise.resolve().then(n.bind(n,51123)),Promise.resolve().then(n.bind(n,68600)),Promise.resolve().then(n.bind(n,53038)),Promise.resolve().then(n.bind(n,63380)),Promise.resolve().then(n.bind(n,73531)),Promise.resolve().then(n.bind(n,51454)),Promise.resolve().then(n.bind(n,12003)),Promise.resolve().then(n.bind(n,54546)),Promise.resolve().then(n.bind(n,13048)),Promise.resolve().then(n.bind(n,91494)),Promise.resolve().then(n.bind(n,5671)),Promise.resolve().then(n.bind(n,66911)),Promise.resolve().then(n.bind(n,24372)),Promise.resolve().then(n.bind(n,53524)),Promise.resolve().then(n.bind(n,3242)),Promise.resolve().then(n.bind(n,32135)),Promise.resolve().then(n.bind(n,1755)),Promise.resolve().then(n.bind(n,37066)),Promise.resolve().then(n.bind(n,56550)),Promise.resolve().then(n.bind(n,98814)),Promise.resolve().then(n.bind(n,84675)),Promise.resolve().then(n.bind(n,14406)),Promise.resolve().then(n.bind(n,13333)),Promise.resolve().then(n.bind(n,3412))}},e=>{e.O(0,[7848,4335,2599,505,4156,2347,5158,7358],()=>e(e.s=43841)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|
package/app/.next/static/chunks/app/api/providers/suggested-models/route-786efea7f9ddd575.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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_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,1949,2121,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,7429,7442,7445,7508,7520,7758,7824,7851,8026,8167,8207,8246,8453,8489,8573,8648,8791,8814,8948,8974,8975,9027,9069,9088,9141,9199,9321,9461,9678],{95659:()=>{}},_=>{_.O(0,[2347,5158,7358],()=>_(_.s=95659)),_N_E=_.O()}]);
|