n9router 0.3.94 → 0.3.95
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/antigravity-tools/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/antigravity-tools/import-refresh-tokens/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/combos/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/request-detail/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/internal/usage/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/keys/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/models/alias/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/models/availability/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/models/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/pricing/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/client/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/database/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/history/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/callback/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/callback.html +1 -1
- package/.next/standalone/.next/server/app/callback.rsc +12 -12
- package/.next/standalone/.next/server/app/callback.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/callback.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/callback.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/callback.segments/callback.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/basic-chat.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/basic-chat.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/cli-tools.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/cli-tools.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/combos.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/combos.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/combos.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/combos.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/combos.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/endpoint.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/endpoint.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/mitm.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/mitm.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/profile.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/profile.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/profile.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/profile.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/profile.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/providers/new.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/providers/new.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/providers.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/providers.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/providers.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/providers.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/providers.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/quota.html +2 -2
- package/.next/standalone/.next/server/app/dashboard/quota.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/quota.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/quota.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/quota.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/translator.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/translator.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/translator.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/translator.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/translator.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard/usage.html +1 -1
- package/.next/standalone/.next/server/app/dashboard/usage.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/usage.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/dashboard/usage.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard/usage.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/dashboard.html +1 -1
- package/.next/standalone/.next/server/app/dashboard.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/landing/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/landing.html +1 -1
- package/.next/standalone/.next/server/app/landing.rsc +12 -12
- package/.next/standalone/.next/server/app/landing.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/landing.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/landing.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/landing.segments/landing.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +12 -12
- package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +5 -5
- package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0.yvcis._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0148t9m._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b802lh._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kpc-o6._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lc~.sk._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0lp_pm5._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0pwrfp1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uw3x8s._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y.reft._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0y5ae.7._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0__-aqg._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0_ovl1h._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_0_xhepz._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/{static/chunks/02suuzz60dp3d.js → standalone/.next/static/chunks/11q6656-lc_oz.js} +1 -1
- package/.next/standalone/mitm/server.js +3 -2
- package/.next/standalone/mitm/tokenPool.js +108 -8
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/plans/tauri-app/01-scope-and-architecture.md +218 -0
- package/.next/standalone/plans/tauri-app/02-backend-plan.md +237 -0
- package/.next/standalone/plans/tauri-app/03-tauri-native-plan.md +194 -0
- package/.next/standalone/plans/tauri-app/04-react-ui-plan.md +155 -0
- package/.next/standalone/plans/tauri-app/05-delivery-phases.md +171 -0
- package/.next/standalone/plans/tauri-app/README.md +87 -0
- package/.next/standalone/src/mitm/server.js +3 -2
- package/.next/standalone/src/mitm/tokenPool.js +108 -8
- package/.next/{standalone/.next/static/chunks/02suuzz60dp3d.js → static/chunks/11q6656-lc_oz.js} +1 -1
- package/package.json +1 -1
- /package/.next/standalone/.next/static/{SBId4_Ewcg0cJ2p2zlKeg → 03mW5vaG0Fogum-tDkkOQ}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{SBId4_Ewcg0cJ2p2zlKeg → 03mW5vaG0Fogum-tDkkOQ}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{SBId4_Ewcg0cJ2p2zlKeg → 03mW5vaG0Fogum-tDkkOQ}/_ssgManifest.js +0 -0
- /package/.next/static/{SBId4_Ewcg0cJ2p2zlKeg → 03mW5vaG0Fogum-tDkkOQ}/_buildManifest.js +0 -0
- /package/.next/static/{SBId4_Ewcg0cJ2p2zlKeg → 03mW5vaG0Fogum-tDkkOQ}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{SBId4_Ewcg0cJ2p2zlKeg → 03mW5vaG0Fogum-tDkkOQ}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[88077,e=>{"use strict";let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},o={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},r={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},n="openai-compatible-",a="anthropic-compatible-",l={...t,...o,...i,...r};function c(e){for(let t of Object.values(l))if(t.alias===e||t.id===e)return t;return null}Object.values(l).reduce((e,t)=>(e[t.alias]=t.id,e),{}),Object.values(l).reduce((e,t)=>(e[t.id]=t.alias,e),{}),e.s(["AI_PROVIDERS",0,l,"ANTHROPIC_COMPATIBLE_PREFIX",0,a,"APIKEY_PROVIDERS",0,r,"FREE_PROVIDERS",0,t,"FREE_TIER_PROVIDERS",0,o,"OAUTH_PROVIDERS",0,i,"OPENAI_COMPATIBLE_PREFIX",0,n,"getProviderAlias",0,function(e){let t=l[e];return t?.alias||e},"getProviderByAlias",0,c,"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(a)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(n)},"resolveProviderId",0,function(e){let t=c(e);return t?.id||e}])},12943,e=>{"use strict";e.s(["default",0,{name:"n9router",version:"0.3.94",description:"Self-hosted AI routing gateway — local proxy for Claude, Gemini, OpenAI and 40+ providers",keywords:["ai","llm","proxy","router","claude","openai","gemini","cursor"],homepage:"https://github.com/nightwalker89/n9router",repository:{type:"git",url:"https://github.com/nightwalker89/n9router.git"},config:{appName:"n9router"},license:"MIT",bin:{n9router:"./bin/n9router.js"},files:["bin/",".next/standalone/",".next/static/","public/"],scripts:{dev:"next dev --webpack --port 20128",build:"cross-env NODE_ENV=production next build",start:"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","publish:npm":"./scripts/publish-npm.sh","publish:npm:dry":"./scripts/publish-npm.sh --dry-run"},dependencies:{"@monaco-editor/react":"^4.7.0","@xyflow/react":"^12.10.1",bcryptjs:"^3.0.3",confbox:"^0.2.4",express:"^5.2.1",fs:"^0.0.1-security","http-proxy-middleware":"^3.0.5",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","node-forge":"^1.3.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0","proper-lockfile":"^4.1.2",react:"19.2.4","react-dom":"19.2.4","react-is":"^16.13.1",recharts:"^3.7.0",selfsigned:"^5.5.0","socks-proxy-agent":"^8.0.5","sql.js":"^1.14.1",undici:"^7.19.2",uuid:"^13.0.0",zustand:"^5.0.10"},optionalDependencies:{"better-sqlite3":"^12.6.2"},devDependencies:{"@tailwindcss/postcss":"^4.1.18","cross-env":"^10.1.0",eslint:"^9","eslint-config-next":"16.1.6",postcss:"^8.5.6",tailwindcss:"^4"}}])},26406,e=>{"use strict";let t=e.i(12943).default.version||"0.0.0";e.s(["buildClineHeaders",0,function(e,o={}){let i,r=(i=function(e){if("string"!=typeof e)return"";let t=e.trim();return t?t.startsWith("workos:")?t:`workos:${t}`:""}(e))?`Bearer ${i}`:"",n={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`9Router/${t}`,"X-PLATFORM":process.platform||"unknown","X-PLATFORM-VERSION":process.version||"unknown","X-CLIENT-TYPE":"9router","X-CLIENT-VERSION":t,"X-CORE-VERSION":t,"X-IS-MULTIROOT":"false",...o};return r&&(n.Authorization=r),n}])},1102,e=>{"use strict";e.i(69789);var t=e.i(26753);function o(e){return null==e?"":String(e).trim()}async function i(e={}){let r=o(e?.proxyPoolId),n="__none__"===r?"":r,a=function(e={}){let t=e?.connectionProxyEnabled===!0;return{connectionProxyEnabled:t,connectionProxyUrl:o(e?.connectionProxyUrl),connectionNoProxy:o(e?.connectionNoProxy)}}(e);if(n){let e=await (0,t.getProxyPoolById)(n),i=o(e?.proxyUrl),r=o(e?.noProxy);if(e&&!0===e.isActive&&i)return{source:"pool",proxyPoolId:n,proxyPool:e,connectionProxyEnabled:!0,connectionProxyUrl:i,connectionNoProxy:r,strictProxy:!0===e.strictProxy}}return a.connectionProxyEnabled&&a.connectionProxyUrl?{source:"legacy",proxyPoolId:n||null,proxyPool:null,...a}:{source:"none",proxyPoolId:n||null,proxyPool:null,...a}}e.s(["resolveConnectionProxyConfig",0,i])},9161,e=>{"use strict";var t=e.i(77090);let o=new Map,i=new Map,r=null;async function n(e,t){if(!e||!t)return null;let r=o.get(e);if(r&&Date.now()-r.fetchedAt<36e5)return r.projectId;if(i.has(e))return i.get(e).promise;let n=new AbortController,l=(async()=>{try{let i=await a(t,n.signal);if(i)return o.set(e,{projectId:i,fetchedAt:Date.now()}),i;return console.warn("[ProjectId] could not fetch projectId for connection",e.slice(0,8)),null}catch(e){return console.warn(`[ProjectId] Error fetching project ID: ${e.message}`),null}finally{i.delete(e)}})();return i.set(e,{promise:l,controller:n,startedAt:Date.now()}),l}async function a(e,o){let i=await fetch(t.CLOUD_CODE_API.loadCodeAssist,{method:"POST",headers:{...t.LOAD_CODE_ASSIST_HEADERS,Authorization:`Bearer ${e}`},body:JSON.stringify({metadata:t.LOAD_CODE_ASSIST_METADATA}),signal:o});if(!i.ok){let e=await i.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${i.status} ${e.slice(0,200)}`)}let r=await i.json(),n=function(e){if(!e)return null;if("string"==typeof e.cloudaicompanionProject){let t=e.cloudaicompanionProject.trim();if(t)return t}if(e.cloudaicompanionProject&&"object"==typeof e.cloudaicompanionProject){let t=e.cloudaicompanionProject.id;if("string"==typeof t&&t.trim())return t.trim()}return null}(r);if(n)return n;let a="legacy-tier";if(Array.isArray(r.allowedTiers)){for(let e of r.allowedTiers)if(e&&"object"==typeof e&&!0===e.isDefault&&e.id&&"string"==typeof e.id&&e.id.trim()){a=e.id.trim();break}}return l(e,a,o)}async function l(e,o,i){console.log(`[ProjectId] Onboarding user with tier: ${o}`);let r={tierId:o,metadata:t.LOAD_CODE_ASSIST_METADATA};for(let o=1;o<=5&&!i?.aborted;o++){let n=new AbortController,a=setTimeout(()=>n.abort(),3e4),l=()=>n.abort();i?.addEventListener("abort",l);try{let i=await fetch(t.CLOUD_CODE_API.onboardUser,{method:"POST",headers:{...t.LOAD_CODE_ASSIST_HEADERS,Authorization:`Bearer ${e}`},body:JSON.stringify(r),signal:n.signal});if(clearTimeout(a),!i.ok){let e=await i.text().catch(()=>"");throw Error(`onboardUser HTTP ${i.status}: ${e.slice(0,200)}`)}let l=await i.json();if(!0===l.done){let e=function(e){if(!e?.response)return null;let t=e.response.cloudaicompanionProject;if("string"==typeof t){let e=t.trim();if(e)return e}if(t&&"object"==typeof t){let e=t.id;if("string"==typeof e&&e.trim())return e.trim()}return null}(l);if(e)return console.log(`[ProjectId] Successfully onboarded, project ID: ${e}`),e;throw Error("onboardUser done but no project_id in response")}console.log(`[ProjectId] Onboard attempt ${o}/5: not done yet, waiting...`),await new Promise(e=>setTimeout(e,2e3))}catch(e){if(clearTimeout(a),"AbortError"===e.name){if(console.warn(`[ProjectId] onboardUser attempt ${o} aborted (timeout or connection removed)`),i?.aborted)return null;continue}if(5===o)return console.warn(`[ProjectId] onboardUser failed after 5 attempts: ${e.message}`),null;console.warn(`[ProjectId] onboardUser attempt ${o} failed: ${e.message}, retrying...`),await new Promise(e=>setTimeout(e,2e3))}finally{clearTimeout(a),i?.removeEventListener("abort",l)}}return null}r=setInterval(()=>{try{let e=Date.now();for(let[t,i]of o)(!i||e-i.fetchedAt>=36e5)&&o.delete(t);for(let[t,o]of i){if(!o||"number"!=typeof o.startedAt){i.delete(t);continue}if(e-o.startedAt>12e4){try{o.controller.abort()}catch(e){}i.delete(t)}}}catch(e){console.warn("[ProjectId] cleanup sweep error:",e?.message??e)}},6e5),r?.unref?.(),e.s(["getProjectIdForConnection",0,n,"invalidateProjectId",0,function(e){o.delete(e)}])},46160,e=>{"use strict";function t(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function o(e){if(!e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}e.s(["debug",0,function(e,i,r){!0;{let n=r?` ${o(r)}`:"";console.log(`[${t()}] 🔍 [${e}] ${i}${n}`)}},"error",0,function(e,i,r){!0;{let n=r?` ${o(r)}`:"";console.log(`[${t()}] ❌ [${e}] ${i}${n}`)}},"info",0,function(e,i,r){!0;{let n=r?` ${o(r)}`:"";console.log(`[${t()}] ℹ️ [${e}] ${i}${n}`)}},"maskKey",0,function(e){return!e||e.length<8?"***":`${e.slice(0,4)}...${e.slice(-4)}`},"request",0,function(e,i,r){let n=r?` ${o(r)}`:"";console.log(`\x1b[36m[${t()}] 📥 ${e} ${i}${n}\x1b[0m`)},"response",0,function(e,i,r){let n=r?` ${o(r)}`:"";console.log(`[${t()}] ${e<400?"📤":"💥"} ${e} (${i}ms)${n}`)},"stream",0,function(e,i){let r=i?` ${o(i)}`:"";console.log(`[${t()}] 🌊 [STREAM] ${e}${r}`)},"warn",0,function(e,t,i){i&&o(i)}])},4400,e=>{"use strict";var t=e.i(46160),o=e.i(26753),i=e.i(9161),r=e.i(92314);let n=r.TOKEN_EXPIRY_BUFFER_MS;function a(e){return new Date(Date.now()+1e3*e).toISOString()}async function l(e,i){try{let r={};i.accessToken&&(r.accessToken=i.accessToken),i.refreshToken&&(r.refreshToken=i.refreshToken),i.expiresIn&&(r.expiresAt=a(i.expiresIn),r.expiresIn=i.expiresIn),i.providerSpecificData&&(r.providerSpecificData={...i.existingProviderSpecificData||{},...i.providerSpecificData}),i.projectId&&(r.projectId=i.projectId);let n=await (0,o.updateProviderConnection)(e,r);return t.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:e,success:!!n}),!!n}catch(o){return t.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:e,error:o.message}),!1}}async function c(e,o){let c={...o};if(c.expiresAt){let o=new Date(c.expiresAt).getTime()-Date.now();if(o<n){let n;t.info("TOKEN_REFRESH","Token expiring soon, refreshing proactively",{provider:e,expiresIn:Math.round(o/1e3)});let s=await (n=c,(0,r.getAccessToken)(e,n,t));if(s?.accessToken){let o={...s,existingProviderSpecificData:c.providerSpecificData};await l(c.connectionId,o),function(e,o,r){("antigravity"===e||"gemini-cli"===e)&&o&&r&&((0,i.invalidateProjectId)(o),(0,i.getProjectIdForConnection)(o,r).then(e=>{e&&l(o,{projectId:e}).catch(e=>{t.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:o,error:e?.message??e})})}).catch(e=>{t.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:o,error:e?.message??e})}))}(e,(c={...c,accessToken:s.accessToken,refreshToken:s.refreshToken??c.refreshToken,providerSpecificData:s.providerSpecificData?{...c.providerSpecificData,...s.providerSpecificData}:c.providerSpecificData,expiresAt:s.expiresIn?a(s.expiresIn):c.expiresAt}).connectionId,c.accessToken)}}}if("github"===e&&c.providerSpecificData?.copilotTokenExpiresAt){let o=1e3*c.providerSpecificData.copilotTokenExpiresAt-Date.now();if(o<n){let i;t.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:e,expiresIn:Math.round(o/1e3)});let n=await (i=c.accessToken,(0,r.refreshCopilotToken)(i,t));if(n){let e={...c.providerSpecificData,copilotToken:n.token,copilotTokenExpiresAt:n.expiresAt};await l(c.connectionId,{providerSpecificData:e}),c.providerSpecificData=e}}}return c}e.s(["checkAndRefreshToken",0,c,"refreshGoogleToken",0,(e,o,i)=>(0,r.refreshGoogleToken)(e,o,i,t),"refreshKiroToken",0,(e,o)=>(0,r.refreshKiroToken)(e,o,t),"updateProviderCredentials",0,l])},84180,e=>{"use strict";let t={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner"};function o(e){if(!e)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(e.includes("/")){let o=e.indexOf("/"),i=e.slice(0,o),r=e.slice(o+1);return{provider:t[i]||i,model:r,isAlias:!1,providerAlias:i}}return{provider:null,model:e,isAlias:!0,providerAlias:null}}async function i(e,i){let r=o(e);if(!r.isAlias)return{provider:r.provider,model:r.model};let n="function"==typeof i?await i():i,a=function(e,o){var i,r;if(!o)return null;let n=o[e];if(!n)return null;if("string"==typeof n&&n.includes("/")){let e=n.indexOf("/");return{provider:t[i=n.slice(0,e)]||i,model:n.slice(e+1)}}return"object"==typeof n&&n.provider&&n.model?{provider:t[r=n.provider]||r,model:n.model}:null}(r.model,n);return a||{provider:function(e){if(!e)return"openai";let t=e.toLowerCase();return t.startsWith("claude-")?"anthropic":t.startsWith("gemini-")?"gemini":t.startsWith("gpt-")||t.startsWith("o1")||t.startsWith("o3")||t.startsWith("o4")?"openai":t.startsWith("deepseek-")?"openrouter":"openai"}(r.model),model:r.model}}e.s(["getModelInfoCore",0,i,"parseModel",0,o])},27075,e=>{"use strict";var t=e.i(86345);function o(e=0){return Math.min(t.BACKOFF_CONFIG.base*Math.pow(2,e),t.BACKOFF_CONFIG.max)}let i="modelLock_",r=`${i}__all`;function n(e){return e?`${i}${e}`:r}e.s(["buildModelLockUpdate",0,function(e,t){return{[n(e)]:new Date(Date.now()+t).toISOString()}},"checkFallbackError",0,function(e,i,r=0){if(i){let e=("string"==typeof i?i:JSON.stringify(i)).toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.notFound};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.requestNotAllowed};if(e.includes("improperly formed request"))return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.paymentRequired};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let e=Math.min(r+1,t.BACKOFF_CONFIG.maxLevel);return{shouldFallback:!0,cooldownMs:o(r),newBackoffLevel:e}}}if(e===t.HTTP_STATUS.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.unauthorized};if(e===t.HTTP_STATUS.PAYMENT_REQUIRED||e===t.HTTP_STATUS.FORBIDDEN)return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.paymentRequired};if(e===t.HTTP_STATUS.NOT_FOUND)return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.notFound};if(e===t.HTTP_STATUS.RATE_LIMITED){let e=Math.min(r+1,t.BACKOFF_CONFIG.maxLevel);return{shouldFallback:!0,cooldownMs:o(r),newBackoffLevel:e}}return[t.HTTP_STATUS.NOT_ACCEPTABLE,t.HTTP_STATUS.REQUEST_TIMEOUT,t.HTTP_STATUS.SERVER_ERROR,t.HTTP_STATUS.BAD_GATEWAY,t.HTTP_STATUS.SERVICE_UNAVAILABLE,t.HTTP_STATUS.GATEWAY_TIMEOUT].includes(e),{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.transient}},"formatRetryAfter",0,function(e){if(!e)return"";let t=new Date(e).getTime()-Date.now();if(t<=0)return"reset after 0s";let o=Math.ceil(t/1e3),i=Math.floor(o/3600),r=Math.floor(o%3600/60),n=o%60,a=[];return i>0&&a.push(`${i}h`),r>0&&a.push(`${r}m`),(n>0||0===a.length)&&a.push(`${n}s`),`reset after ${a.join(" ")}`},"getEarliestModelLockUntil",0,function(e){if(!e)return null;let t=null,o=Date.now();for(let[r,n]of Object.entries(e)){if(!r.startsWith(i)||!n)continue;let e=new Date(n).getTime();e<=o||(!t||e<t)&&(t=e)}return t?new Date(t).toISOString():null},"isModelLockActive",0,function(e,t){let o=e[n(t)]||e[r];return!!o&&new Date(o).getTime()>Date.now()}])},23136,e=>{"use strict";var t=e.i(26753),o=e.i(1102),i=e.i(27075),r=e.i(88077),n=e.i(46160);let a=Promise.resolve();async function l(e,c=null,s=null){let d,u=c instanceof Set?c:c?new Set([c]):new Set,p=a;a=new Promise(e=>{d=e});try{let a;await p;let l=(0,r.resolveProviderId)(e),c=await (0,t.getProviderConnections)({provider:l,isActive:!0});if(n.debug("AUTH",`${e} | total connections: ${c.length}, excludeIds: ${u.size>0?[...u].join(","):"none"}, model: ${s||"any"}`),0===c.length)return n.warn("AUTH",`No credentials for ${e}`),null;let d=c.filter(e=>!(u.has(e.id)||(0,i.isModelLockActive)(e,s)));if(n.debug("AUTH",`${e} | available: ${d.length}/${c.length}`),c.forEach(e=>{let t=u.has(e.id),o=(0,i.isModelLockActive)(e,s);if(t||o){let r=(0,i.getEarliestModelLockUntil)(e);n.debug("AUTH",` → ${e.id?.slice(0,8)} | ${t?"excluded":""} ${o?`modelLocked(${s}) until ${r}`:""}`)}}),0===d.length){let t=c.filter(e=>(0,i.isModelLockActive)(e,s)),o=t.map(e=>(0,i.getEarliestModelLockUntil)(e)).filter(Boolean).sort()[0]||null;if(o){let r=t[0];return n.warn("AUTH",`${e} | all ${c.length} accounts locked for ${s||"all"} (${(0,i.formatRetryAfter)(o)}) | lastError=${r?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:o,retryAfterHuman:(0,i.formatRetryAfter)(o),lastError:r?.lastError||null,lastErrorCode:r?.errorCode||null}}return n.warn("AUTH",`${e} | all ${c.length} accounts unavailable`),null}let m=await (0,t.getSettings)(),f=(m.providerStrategies||{})[l]||{},h=f.fallbackStrategy||m.fallbackStrategy||"fill-first";if("round-robin"===h){let e=f.stickyRoundRobinLimit||m.stickyRoundRobinLimit||3,o=[...d].sort((e,t)=>e.lastUsedAt||t.lastUsedAt?e.lastUsedAt?t.lastUsedAt?new Date(t.lastUsedAt)-new Date(e.lastUsedAt):-1:1:(e.priority||999)-(t.priority||999))[0],i=o?.consecutiveUseCount||0;o&&o.lastUsedAt&&i<e?(a=o,await (0,t.updateProviderConnection)(a.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(a.consecutiveUseCount||0)+1})):(a=[...d].sort((e,t)=>e.lastUsedAt||t.lastUsedAt?e.lastUsedAt?t.lastUsedAt?new Date(e.lastUsedAt)-new Date(t.lastUsedAt):1:-1:(e.priority||999)-(t.priority||999))[0],await (0,t.updateProviderConnection)(a.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else a=d[0];let g=await (0,o.resolveConnectionProxyConfig)(a.providerSpecificData||{});return{apiKey:a.apiKey,accessToken:a.accessToken,refreshToken:a.refreshToken,projectId:a.projectId,connectionName:a.displayName||a.name||a.email||a.id,copilotToken:a.providerSpecificData?.copilotToken,providerSpecificData:{...a.providerSpecificData||{},connectionProxyEnabled:g.connectionProxyEnabled,connectionProxyUrl:g.connectionProxyUrl,connectionNoProxy:g.connectionNoProxy,connectionProxyPoolId:g.proxyPoolId||null},connectionId:a.id,testStatus:a.testStatus,lastError:a.lastError,_connection:a}}finally{d&&d()}}async function c(e,o,r,a=null,l=null){let s=(await (0,t.getProviderConnections)({provider:a})).find(t=>t.id===e),d=s?.backoffLevel||0,{shouldFallback:u,cooldownMs:p,newBackoffLevel:m}=(0,i.checkFallbackError)(o,r,d);if(!u)return{shouldFallback:!1,cooldownMs:0};let f="string"==typeof r?r.slice(0,100):"Provider error",h=(0,i.buildModelLockUpdate)(l,p);await (0,t.updateProviderConnection)(e,{...h,testStatus:"unavailable",lastError:f,errorCode:o,lastErrorAt:new Date().toISOString(),backoffLevel:m??d});let g=Object.keys(h)[0],b=s?.displayName||s?.name||s?.email||e.slice(0,8);return n.warn("AUTH",`${b} locked ${g} for ${Math.round(p/1e3)}s [${o}]`),a&&o&&f&&console.error(`❌ ${a} [${o}]: ${f}`),{shouldFallback:!0,cooldownMs:p}}async function s(e,o,i=null){let r=o._connection||o,a=Date.now(),l=Object.keys(r).filter(e=>e.startsWith("modelLock_"));if(!r.testStatus&&!r.lastError&&0===l.length)return;let c=l.filter(e=>{if(i&&e===`modelLock_${i}`||i&&"modelLock___all"===e)return!0;let t=r[e];return t&&new Date(t).getTime()<=a});if(0===c.length&&"unavailable"!==r.testStatus&&!r.lastError)return;let d=l.filter(e=>{if(c.includes(e))return!1;let t=r[e];return t&&new Date(t).getTime()>a}),u=Object.fromEntries(c.map(e=>[e,null]));0===d.length&&Object.assign(u,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}),await (0,t.updateProviderConnection)(e,u);let p=r?.displayName||r?.name||r?.email||e.slice(0,8);n.info("AUTH",`Account ${p} cleared lock for model=${i||"__all"}`)}async function d(e){return!!e&&await (0,t.validateApiKey)(e)}e.s(["clearAccountError",0,s,"extractApiKey",0,function(e){let t=e.headers.get("Authorization");if(t?.startsWith("Bearer "))return t.slice(7);let o=e.headers.get("x-api-key");return o||null},"getProviderCredentials",0,l,"isValidApiKey",0,d,"markAccountUnavailable",0,c])},84650,e=>{"use strict";var t=e.i(26753),o=e.i(84180);async function i(e){let i=(0,o.parseModel)(e);if(!i.isAlias){if(i.provider===i.providerAlias){let e=(await (0,t.getProviderNodes)({type:"openai-compatible"})).find(e=>e.prefix===i.providerAlias);if(e)return{provider:e.id,model:i.model};let o=(await (0,t.getProviderNodes)({type:"anthropic-compatible"})).find(e=>e.prefix===i.providerAlias);if(o)return{provider:o.id,model:i.model}}return{provider:i.provider,model:i.model}}return await (0,t.getComboByName)(i.model)?{provider:null,model:i.model}:(0,o.getModelInfoCore)(e,t.getModelAliases)}async function r(e){if(e.includes("/"))return null;let o=await (0,t.getComboByName)(e);return o&&o.models&&o.models.length>0?o.models:null}e.s(["getComboModels",0,r,"getModelInfo",0,i])}];
|
|
1
|
+
module.exports=[88077,e=>{"use strict";let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Google has tightened Gemini CLI abuse detection and restricted Pro models to paid accounts (Mar 25, 2026). Using this provider may violate ToS and risk account bans."},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"}},o={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo · Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}}},i={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"Antigravity has tightened abuse detection and restricted model access. Using this provider may violate ToS and risk account bans."},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},r={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai"},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models"}},n="openai-compatible-",a="anthropic-compatible-",l={...t,...o,...i,...r};function c(e){for(let t of Object.values(l))if(t.alias===e||t.id===e)return t;return null}Object.values(l).reduce((e,t)=>(e[t.alias]=t.id,e),{}),Object.values(l).reduce((e,t)=>(e[t.id]=t.alias,e),{}),e.s(["AI_PROVIDERS",0,l,"ANTHROPIC_COMPATIBLE_PREFIX",0,a,"APIKEY_PROVIDERS",0,r,"FREE_PROVIDERS",0,t,"FREE_TIER_PROVIDERS",0,o,"OAUTH_PROVIDERS",0,i,"OPENAI_COMPATIBLE_PREFIX",0,n,"getProviderAlias",0,function(e){let t=l[e];return t?.alias||e},"getProviderByAlias",0,c,"isAnthropicCompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(a)},"isOpenAICompatibleProvider",0,function(e){return"string"==typeof e&&e.startsWith(n)},"resolveProviderId",0,function(e){let t=c(e);return t?.id||e}])},12943,e=>{"use strict";e.s(["default",0,{name:"n9router",version:"0.3.95",description:"Self-hosted AI routing gateway — local proxy for Claude, Gemini, OpenAI and 40+ providers",keywords:["ai","llm","proxy","router","claude","openai","gemini","cursor"],homepage:"https://github.com/nightwalker89/n9router",repository:{type:"git",url:"https://github.com/nightwalker89/n9router.git"},config:{appName:"n9router"},license:"MIT",bin:{n9router:"./bin/n9router.js"},files:["bin/",".next/standalone/",".next/static/","public/"],scripts:{dev:"next dev --webpack --port 20128",build:"cross-env NODE_ENV=production next build",start:"cross-env NODE_ENV=production next start","dev:bun":"bun --bun next dev --webpack --port 20128","build:bun":"NODE_ENV=production bun --bun next build --webpack","start:bun":"NODE_ENV=production bun ./.next/standalone/server.js","publish:npm":"./scripts/publish-npm.sh","publish:npm:dry":"./scripts/publish-npm.sh --dry-run"},dependencies:{"@monaco-editor/react":"^4.7.0","@xyflow/react":"^12.10.1",bcryptjs:"^3.0.3",confbox:"^0.2.4",express:"^5.2.1",fs:"^0.0.1-security","http-proxy-middleware":"^3.0.5",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","node-forge":"^1.3.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0","proper-lockfile":"^4.1.2",react:"19.2.4","react-dom":"19.2.4","react-is":"^16.13.1",recharts:"^3.7.0",selfsigned:"^5.5.0","socks-proxy-agent":"^8.0.5","sql.js":"^1.14.1",undici:"^7.19.2",uuid:"^13.0.0",zustand:"^5.0.10"},optionalDependencies:{"better-sqlite3":"^12.6.2"},devDependencies:{"@tailwindcss/postcss":"^4.1.18","cross-env":"^10.1.0",eslint:"^9","eslint-config-next":"16.1.6",postcss:"^8.5.6",tailwindcss:"^4"}}])},26406,e=>{"use strict";let t=e.i(12943).default.version||"0.0.0";e.s(["buildClineHeaders",0,function(e,o={}){let i,r=(i=function(e){if("string"!=typeof e)return"";let t=e.trim();return t?t.startsWith("workos:")?t:`workos:${t}`:""}(e))?`Bearer ${i}`:"",n={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`9Router/${t}`,"X-PLATFORM":process.platform||"unknown","X-PLATFORM-VERSION":process.version||"unknown","X-CLIENT-TYPE":"9router","X-CLIENT-VERSION":t,"X-CORE-VERSION":t,"X-IS-MULTIROOT":"false",...o};return r&&(n.Authorization=r),n}])},1102,e=>{"use strict";e.i(69789);var t=e.i(26753);function o(e){return null==e?"":String(e).trim()}async function i(e={}){let r=o(e?.proxyPoolId),n="__none__"===r?"":r,a=function(e={}){let t=e?.connectionProxyEnabled===!0;return{connectionProxyEnabled:t,connectionProxyUrl:o(e?.connectionProxyUrl),connectionNoProxy:o(e?.connectionNoProxy)}}(e);if(n){let e=await (0,t.getProxyPoolById)(n),i=o(e?.proxyUrl),r=o(e?.noProxy);if(e&&!0===e.isActive&&i)return{source:"pool",proxyPoolId:n,proxyPool:e,connectionProxyEnabled:!0,connectionProxyUrl:i,connectionNoProxy:r,strictProxy:!0===e.strictProxy}}return a.connectionProxyEnabled&&a.connectionProxyUrl?{source:"legacy",proxyPoolId:n||null,proxyPool:null,...a}:{source:"none",proxyPoolId:n||null,proxyPool:null,...a}}e.s(["resolveConnectionProxyConfig",0,i])},9161,e=>{"use strict";var t=e.i(77090);let o=new Map,i=new Map,r=null;async function n(e,t){if(!e||!t)return null;let r=o.get(e);if(r&&Date.now()-r.fetchedAt<36e5)return r.projectId;if(i.has(e))return i.get(e).promise;let n=new AbortController,l=(async()=>{try{let i=await a(t,n.signal);if(i)return o.set(e,{projectId:i,fetchedAt:Date.now()}),i;return console.warn("[ProjectId] could not fetch projectId for connection",e.slice(0,8)),null}catch(e){return console.warn(`[ProjectId] Error fetching project ID: ${e.message}`),null}finally{i.delete(e)}})();return i.set(e,{promise:l,controller:n,startedAt:Date.now()}),l}async function a(e,o){let i=await fetch(t.CLOUD_CODE_API.loadCodeAssist,{method:"POST",headers:{...t.LOAD_CODE_ASSIST_HEADERS,Authorization:`Bearer ${e}`},body:JSON.stringify({metadata:t.LOAD_CODE_ASSIST_METADATA}),signal:o});if(!i.ok){let e=await i.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${i.status} ${e.slice(0,200)}`)}let r=await i.json(),n=function(e){if(!e)return null;if("string"==typeof e.cloudaicompanionProject){let t=e.cloudaicompanionProject.trim();if(t)return t}if(e.cloudaicompanionProject&&"object"==typeof e.cloudaicompanionProject){let t=e.cloudaicompanionProject.id;if("string"==typeof t&&t.trim())return t.trim()}return null}(r);if(n)return n;let a="legacy-tier";if(Array.isArray(r.allowedTiers)){for(let e of r.allowedTiers)if(e&&"object"==typeof e&&!0===e.isDefault&&e.id&&"string"==typeof e.id&&e.id.trim()){a=e.id.trim();break}}return l(e,a,o)}async function l(e,o,i){console.log(`[ProjectId] Onboarding user with tier: ${o}`);let r={tierId:o,metadata:t.LOAD_CODE_ASSIST_METADATA};for(let o=1;o<=5&&!i?.aborted;o++){let n=new AbortController,a=setTimeout(()=>n.abort(),3e4),l=()=>n.abort();i?.addEventListener("abort",l);try{let i=await fetch(t.CLOUD_CODE_API.onboardUser,{method:"POST",headers:{...t.LOAD_CODE_ASSIST_HEADERS,Authorization:`Bearer ${e}`},body:JSON.stringify(r),signal:n.signal});if(clearTimeout(a),!i.ok){let e=await i.text().catch(()=>"");throw Error(`onboardUser HTTP ${i.status}: ${e.slice(0,200)}`)}let l=await i.json();if(!0===l.done){let e=function(e){if(!e?.response)return null;let t=e.response.cloudaicompanionProject;if("string"==typeof t){let e=t.trim();if(e)return e}if(t&&"object"==typeof t){let e=t.id;if("string"==typeof e&&e.trim())return e.trim()}return null}(l);if(e)return console.log(`[ProjectId] Successfully onboarded, project ID: ${e}`),e;throw Error("onboardUser done but no project_id in response")}console.log(`[ProjectId] Onboard attempt ${o}/5: not done yet, waiting...`),await new Promise(e=>setTimeout(e,2e3))}catch(e){if(clearTimeout(a),"AbortError"===e.name){if(console.warn(`[ProjectId] onboardUser attempt ${o} aborted (timeout or connection removed)`),i?.aborted)return null;continue}if(5===o)return console.warn(`[ProjectId] onboardUser failed after 5 attempts: ${e.message}`),null;console.warn(`[ProjectId] onboardUser attempt ${o} failed: ${e.message}, retrying...`),await new Promise(e=>setTimeout(e,2e3))}finally{clearTimeout(a),i?.removeEventListener("abort",l)}}return null}r=setInterval(()=>{try{let e=Date.now();for(let[t,i]of o)(!i||e-i.fetchedAt>=36e5)&&o.delete(t);for(let[t,o]of i){if(!o||"number"!=typeof o.startedAt){i.delete(t);continue}if(e-o.startedAt>12e4){try{o.controller.abort()}catch(e){}i.delete(t)}}}catch(e){console.warn("[ProjectId] cleanup sweep error:",e?.message??e)}},6e5),r?.unref?.(),e.s(["getProjectIdForConnection",0,n,"invalidateProjectId",0,function(e){o.delete(e)}])},46160,e=>{"use strict";function t(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function o(e){if(!e)return"";if("string"==typeof e)return e;try{return JSON.stringify(e)}catch{return String(e)}}e.s(["debug",0,function(e,i,r){!0;{let n=r?` ${o(r)}`:"";console.log(`[${t()}] 🔍 [${e}] ${i}${n}`)}},"error",0,function(e,i,r){!0;{let n=r?` ${o(r)}`:"";console.log(`[${t()}] ❌ [${e}] ${i}${n}`)}},"info",0,function(e,i,r){!0;{let n=r?` ${o(r)}`:"";console.log(`[${t()}] ℹ️ [${e}] ${i}${n}`)}},"maskKey",0,function(e){return!e||e.length<8?"***":`${e.slice(0,4)}...${e.slice(-4)}`},"request",0,function(e,i,r){let n=r?` ${o(r)}`:"";console.log(`\x1b[36m[${t()}] 📥 ${e} ${i}${n}\x1b[0m`)},"response",0,function(e,i,r){let n=r?` ${o(r)}`:"";console.log(`[${t()}] ${e<400?"📤":"💥"} ${e} (${i}ms)${n}`)},"stream",0,function(e,i){let r=i?` ${o(i)}`:"";console.log(`[${t()}] 🌊 [STREAM] ${e}${r}`)},"warn",0,function(e,t,i){i&&o(i)}])},4400,e=>{"use strict";var t=e.i(46160),o=e.i(26753),i=e.i(9161),r=e.i(92314);let n=r.TOKEN_EXPIRY_BUFFER_MS;function a(e){return new Date(Date.now()+1e3*e).toISOString()}async function l(e,i){try{let r={};i.accessToken&&(r.accessToken=i.accessToken),i.refreshToken&&(r.refreshToken=i.refreshToken),i.expiresIn&&(r.expiresAt=a(i.expiresIn),r.expiresIn=i.expiresIn),i.providerSpecificData&&(r.providerSpecificData={...i.existingProviderSpecificData||{},...i.providerSpecificData}),i.projectId&&(r.projectId=i.projectId);let n=await (0,o.updateProviderConnection)(e,r);return t.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:e,success:!!n}),!!n}catch(o){return t.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:e,error:o.message}),!1}}async function c(e,o){let c={...o};if(c.expiresAt){let o=new Date(c.expiresAt).getTime()-Date.now();if(o<n){let n;t.info("TOKEN_REFRESH","Token expiring soon, refreshing proactively",{provider:e,expiresIn:Math.round(o/1e3)});let s=await (n=c,(0,r.getAccessToken)(e,n,t));if(s?.accessToken){let o={...s,existingProviderSpecificData:c.providerSpecificData};await l(c.connectionId,o),function(e,o,r){("antigravity"===e||"gemini-cli"===e)&&o&&r&&((0,i.invalidateProjectId)(o),(0,i.getProjectIdForConnection)(o,r).then(e=>{e&&l(o,{projectId:e}).catch(e=>{t.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:o,error:e?.message??e})})}).catch(e=>{t.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:o,error:e?.message??e})}))}(e,(c={...c,accessToken:s.accessToken,refreshToken:s.refreshToken??c.refreshToken,providerSpecificData:s.providerSpecificData?{...c.providerSpecificData,...s.providerSpecificData}:c.providerSpecificData,expiresAt:s.expiresIn?a(s.expiresIn):c.expiresAt}).connectionId,c.accessToken)}}}if("github"===e&&c.providerSpecificData?.copilotTokenExpiresAt){let o=1e3*c.providerSpecificData.copilotTokenExpiresAt-Date.now();if(o<n){let i;t.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:e,expiresIn:Math.round(o/1e3)});let n=await (i=c.accessToken,(0,r.refreshCopilotToken)(i,t));if(n){let e={...c.providerSpecificData,copilotToken:n.token,copilotTokenExpiresAt:n.expiresAt};await l(c.connectionId,{providerSpecificData:e}),c.providerSpecificData=e}}}return c}e.s(["checkAndRefreshToken",0,c,"refreshGoogleToken",0,(e,o,i)=>(0,r.refreshGoogleToken)(e,o,i,t),"refreshKiroToken",0,(e,o)=>(0,r.refreshKiroToken)(e,o,t),"updateProviderCredentials",0,l])},84180,e=>{"use strict";let t={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner"};function o(e){if(!e)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(e.includes("/")){let o=e.indexOf("/"),i=e.slice(0,o),r=e.slice(o+1);return{provider:t[i]||i,model:r,isAlias:!1,providerAlias:i}}return{provider:null,model:e,isAlias:!0,providerAlias:null}}async function i(e,i){let r=o(e);if(!r.isAlias)return{provider:r.provider,model:r.model};let n="function"==typeof i?await i():i,a=function(e,o){var i,r;if(!o)return null;let n=o[e];if(!n)return null;if("string"==typeof n&&n.includes("/")){let e=n.indexOf("/");return{provider:t[i=n.slice(0,e)]||i,model:n.slice(e+1)}}return"object"==typeof n&&n.provider&&n.model?{provider:t[r=n.provider]||r,model:n.model}:null}(r.model,n);return a||{provider:function(e){if(!e)return"openai";let t=e.toLowerCase();return t.startsWith("claude-")?"anthropic":t.startsWith("gemini-")?"gemini":t.startsWith("gpt-")||t.startsWith("o1")||t.startsWith("o3")||t.startsWith("o4")?"openai":t.startsWith("deepseek-")?"openrouter":"openai"}(r.model),model:r.model}}e.s(["getModelInfoCore",0,i,"parseModel",0,o])},27075,e=>{"use strict";var t=e.i(86345);function o(e=0){return Math.min(t.BACKOFF_CONFIG.base*Math.pow(2,e),t.BACKOFF_CONFIG.max)}let i="modelLock_",r=`${i}__all`;function n(e){return e?`${i}${e}`:r}e.s(["buildModelLockUpdate",0,function(e,t){return{[n(e)]:new Date(Date.now()+t).toISOString()}},"checkFallbackError",0,function(e,i,r=0){if(i){let e=("string"==typeof i?i:JSON.stringify(i)).toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.notFound};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.requestNotAllowed};if(e.includes("improperly formed request"))return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.paymentRequired};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let e=Math.min(r+1,t.BACKOFF_CONFIG.maxLevel);return{shouldFallback:!0,cooldownMs:o(r),newBackoffLevel:e}}}if(e===t.HTTP_STATUS.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.unauthorized};if(e===t.HTTP_STATUS.PAYMENT_REQUIRED||e===t.HTTP_STATUS.FORBIDDEN)return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.paymentRequired};if(e===t.HTTP_STATUS.NOT_FOUND)return{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.notFound};if(e===t.HTTP_STATUS.RATE_LIMITED){let e=Math.min(r+1,t.BACKOFF_CONFIG.maxLevel);return{shouldFallback:!0,cooldownMs:o(r),newBackoffLevel:e}}return[t.HTTP_STATUS.NOT_ACCEPTABLE,t.HTTP_STATUS.REQUEST_TIMEOUT,t.HTTP_STATUS.SERVER_ERROR,t.HTTP_STATUS.BAD_GATEWAY,t.HTTP_STATUS.SERVICE_UNAVAILABLE,t.HTTP_STATUS.GATEWAY_TIMEOUT].includes(e),{shouldFallback:!0,cooldownMs:t.COOLDOWN_MS.transient}},"formatRetryAfter",0,function(e){if(!e)return"";let t=new Date(e).getTime()-Date.now();if(t<=0)return"reset after 0s";let o=Math.ceil(t/1e3),i=Math.floor(o/3600),r=Math.floor(o%3600/60),n=o%60,a=[];return i>0&&a.push(`${i}h`),r>0&&a.push(`${r}m`),(n>0||0===a.length)&&a.push(`${n}s`),`reset after ${a.join(" ")}`},"getEarliestModelLockUntil",0,function(e){if(!e)return null;let t=null,o=Date.now();for(let[r,n]of Object.entries(e)){if(!r.startsWith(i)||!n)continue;let e=new Date(n).getTime();e<=o||(!t||e<t)&&(t=e)}return t?new Date(t).toISOString():null},"isModelLockActive",0,function(e,t){let o=e[n(t)]||e[r];return!!o&&new Date(o).getTime()>Date.now()}])},23136,e=>{"use strict";var t=e.i(26753),o=e.i(1102),i=e.i(27075),r=e.i(88077),n=e.i(46160);let a=Promise.resolve();async function l(e,c=null,s=null){let d,u=c instanceof Set?c:c?new Set([c]):new Set,p=a;a=new Promise(e=>{d=e});try{let a;await p;let l=(0,r.resolveProviderId)(e),c=await (0,t.getProviderConnections)({provider:l,isActive:!0});if(n.debug("AUTH",`${e} | total connections: ${c.length}, excludeIds: ${u.size>0?[...u].join(","):"none"}, model: ${s||"any"}`),0===c.length)return n.warn("AUTH",`No credentials for ${e}`),null;let d=c.filter(e=>!(u.has(e.id)||(0,i.isModelLockActive)(e,s)));if(n.debug("AUTH",`${e} | available: ${d.length}/${c.length}`),c.forEach(e=>{let t=u.has(e.id),o=(0,i.isModelLockActive)(e,s);if(t||o){let r=(0,i.getEarliestModelLockUntil)(e);n.debug("AUTH",` → ${e.id?.slice(0,8)} | ${t?"excluded":""} ${o?`modelLocked(${s}) until ${r}`:""}`)}}),0===d.length){let t=c.filter(e=>(0,i.isModelLockActive)(e,s)),o=t.map(e=>(0,i.getEarliestModelLockUntil)(e)).filter(Boolean).sort()[0]||null;if(o){let r=t[0];return n.warn("AUTH",`${e} | all ${c.length} accounts locked for ${s||"all"} (${(0,i.formatRetryAfter)(o)}) | lastError=${r?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:o,retryAfterHuman:(0,i.formatRetryAfter)(o),lastError:r?.lastError||null,lastErrorCode:r?.errorCode||null}}return n.warn("AUTH",`${e} | all ${c.length} accounts unavailable`),null}let m=await (0,t.getSettings)(),f=(m.providerStrategies||{})[l]||{},h=f.fallbackStrategy||m.fallbackStrategy||"fill-first";if("round-robin"===h){let e=f.stickyRoundRobinLimit||m.stickyRoundRobinLimit||3,o=[...d].sort((e,t)=>e.lastUsedAt||t.lastUsedAt?e.lastUsedAt?t.lastUsedAt?new Date(t.lastUsedAt)-new Date(e.lastUsedAt):-1:1:(e.priority||999)-(t.priority||999))[0],i=o?.consecutiveUseCount||0;o&&o.lastUsedAt&&i<e?(a=o,await (0,t.updateProviderConnection)(a.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(a.consecutiveUseCount||0)+1})):(a=[...d].sort((e,t)=>e.lastUsedAt||t.lastUsedAt?e.lastUsedAt?t.lastUsedAt?new Date(e.lastUsedAt)-new Date(t.lastUsedAt):1:-1:(e.priority||999)-(t.priority||999))[0],await (0,t.updateProviderConnection)(a.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else a=d[0];let g=await (0,o.resolveConnectionProxyConfig)(a.providerSpecificData||{});return{apiKey:a.apiKey,accessToken:a.accessToken,refreshToken:a.refreshToken,projectId:a.projectId,connectionName:a.displayName||a.name||a.email||a.id,copilotToken:a.providerSpecificData?.copilotToken,providerSpecificData:{...a.providerSpecificData||{},connectionProxyEnabled:g.connectionProxyEnabled,connectionProxyUrl:g.connectionProxyUrl,connectionNoProxy:g.connectionNoProxy,connectionProxyPoolId:g.proxyPoolId||null},connectionId:a.id,testStatus:a.testStatus,lastError:a.lastError,_connection:a}}finally{d&&d()}}async function c(e,o,r,a=null,l=null){let s=(await (0,t.getProviderConnections)({provider:a})).find(t=>t.id===e),d=s?.backoffLevel||0,{shouldFallback:u,cooldownMs:p,newBackoffLevel:m}=(0,i.checkFallbackError)(o,r,d);if(!u)return{shouldFallback:!1,cooldownMs:0};let f="string"==typeof r?r.slice(0,100):"Provider error",h=(0,i.buildModelLockUpdate)(l,p);await (0,t.updateProviderConnection)(e,{...h,testStatus:"unavailable",lastError:f,errorCode:o,lastErrorAt:new Date().toISOString(),backoffLevel:m??d});let g=Object.keys(h)[0],b=s?.displayName||s?.name||s?.email||e.slice(0,8);return n.warn("AUTH",`${b} locked ${g} for ${Math.round(p/1e3)}s [${o}]`),a&&o&&f&&console.error(`❌ ${a} [${o}]: ${f}`),{shouldFallback:!0,cooldownMs:p}}async function s(e,o,i=null){let r=o._connection||o,a=Date.now(),l=Object.keys(r).filter(e=>e.startsWith("modelLock_"));if(!r.testStatus&&!r.lastError&&0===l.length)return;let c=l.filter(e=>{if(i&&e===`modelLock_${i}`||i&&"modelLock___all"===e)return!0;let t=r[e];return t&&new Date(t).getTime()<=a});if(0===c.length&&"unavailable"!==r.testStatus&&!r.lastError)return;let d=l.filter(e=>{if(c.includes(e))return!1;let t=r[e];return t&&new Date(t).getTime()>a}),u=Object.fromEntries(c.map(e=>[e,null]));0===d.length&&Object.assign(u,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}),await (0,t.updateProviderConnection)(e,u);let p=r?.displayName||r?.name||r?.email||e.slice(0,8);n.info("AUTH",`Account ${p} cleared lock for model=${i||"__all"}`)}async function d(e){return!!e&&await (0,t.validateApiKey)(e)}e.s(["clearAccountError",0,s,"extractApiKey",0,function(e){let t=e.headers.get("Authorization");if(t?.startsWith("Bearer "))return t.slice(7);let o=e.headers.get("x-api-key");return o||null},"getProviderCredentials",0,l,"isValidApiKey",0,d,"markAccountUnavailable",0,c])},84650,e=>{"use strict";var t=e.i(26753),o=e.i(84180);async function i(e){let i=(0,o.parseModel)(e);if(!i.isAlias){if(i.provider===i.providerAlias){let e=(await (0,t.getProviderNodes)({type:"openai-compatible"})).find(e=>e.prefix===i.providerAlias);if(e)return{provider:e.id,model:i.model};let o=(await (0,t.getProviderNodes)({type:"anthropic-compatible"})).find(e=>e.prefix===i.providerAlias);if(o)return{provider:o.id,model:i.model}}return{provider:i.provider,model:i.model}}return await (0,t.getComboByName)(i.model)?{provider:null,model:i.model}:(0,o.getModelInfoCore)(e,t.getModelAliases)}async function r(e){if(e.includes("/"))return null;let o=await (0,t.getComboByName)(e);return o&&o.models&&o.models.length>0?o.models:null}e.s(["getComboModels",0,r,"getModelInfo",0,i])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=_0_ovl1h._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[67434,a=>{"use strict";var b=a.i(87945);Object.entries(a.i(13364).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(b.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),a.s([])},83945,a=>{"use strict";a.i(13364),a.i(67434),a.s(["APP_CONFIG",0,{name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.
|
|
1
|
+
module.exports=[67434,a=>{"use strict";var b=a.i(87945);Object.entries(a.i(13364).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(b.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),a.s([])},83945,a=>{"use strict";a.i(13364),a.i(67434),a.s(["APP_CONFIG",0,{name:"Endpoint Proxy",description:"AI Infrastructure Management",version:"0.3.95"},"CONSOLE_LOG_CONFIG",0,{maxLines:200,pollIntervalMs:1e3},"THEME_CONFIG",0,{storageKey:"theme",defaultTheme:"system"}],83945)},22259,20226,a=>{"use strict";let b,c;var d=a.i(72131);let e=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},f=a=>{let b=a?e(a):e,c=a=>(function(a,b=a=>a){let c=d.default.useSyncExternalStore(a.subscribe,d.default.useCallback(()=>b(a.getState()),[a,b]),d.default.useCallback(()=>b(a.getInitialState()),[a,b]));return d.default.useDebugValue(c),c})(b,a);return Object.assign(c,b),c},g=a=>a?f(a):f;a.s(["create",0,g],20226);let h=a=>b=>{try{let c=a(b);if(c instanceof Promise)return c;return{then:a=>h(a)(c),catch(a){return this}}}catch(a){return{then(a){return this},catch:b=>h(b)(a)}}};var i=a.i(83945);let j=g((b=(a,b)=>({theme:i.THEME_CONFIG.defaultTheme,setTheme:b=>{a({theme:b}),k(b)},toggleTheme:()=>{let c="dark"===b().theme?"light":"dark";a({theme:c}),k(c)},initTheme:()=>{k(b().theme)}}),c={name:i.THEME_CONFIG.storageKey},(a,d,e)=>{let f,g={storage:function(a){let b;try{b=a()}catch(a){return}return{getItem:a=>{var c;let d=a=>null===a?null:JSON.parse(a,void 0),e=null!=(c=b.getItem(a))?c:null;return e instanceof Promise?e.then(d):d(e)},setItem:(a,c)=>b.setItem(a,JSON.stringify(c,void 0)),removeItem:a=>b.removeItem(a)}}(()=>window.localStorage),partialize:a=>a,version:0,merge:(a,b)=>({...b,...a}),...c},i=!1,j=0,k=new Set,l=new Set,m=g.storage;if(!m)return b((...b)=>{console.warn(`[zustand persist middleware] Unable to update item '${g.name}', the given storage is currently unavailable.`),a(...b)},d,e);let n=()=>{let a=g.partialize({...d()});return m.setItem(g.name,{state:a,version:g.version})},o=e.setState;e.setState=(a,b)=>(o(a,b),n());let p=b((...b)=>(a(...b),n()),d,e);e.getInitialState=()=>p;let q=()=>{var b,c;if(!m)return;let e=++j;i=!1,k.forEach(a=>{var b;return a(null!=(b=d())?b:p)});let o=(null==(c=g.onRehydrateStorage)?void 0:c.call(g,null!=(b=d())?b:p))||void 0;return h(m.getItem.bind(m))(g.name).then(a=>{if(a)if("number"!=typeof a.version||a.version===g.version)return[!1,a.state];else{if(g.migrate){let b=g.migrate(a.state,a.version);return b instanceof Promise?b.then(a=>[!0,a]):[!0,b]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(b=>{var c;if(e!==j)return;let[h,i]=b;if(a(f=g.merge(i,null!=(c=d())?c:p),!0),h)return n()}).then(()=>{e===j&&(null==o||o(d(),void 0),f=d(),i=!0,l.forEach(a=>a(f)))}).catch(a=>{e===j&&(null==o||o(void 0,a))})};return e.persist={setOptions:a=>{g={...g,...a},a.storage&&(m=a.storage)},clearStorage:()=>{null==m||m.removeItem(g.name)},getOptions:()=>g,rehydrate:()=>q(),hasHydrated:()=>i,onHydrate:a=>(k.add(a),()=>{k.delete(a)}),onFinishHydration:a=>(l.add(a),()=>{l.delete(a)})},g.skipHydration||q(),f||p}));function k(a){}a.s(["default",0,j],22259)},14931,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(22259);a.s(["ThemeProvider",0,function({children:a}){let{initTheme:e}=(0,d.default)();return(0,c.useEffect)(()=>{e()},[e]),(0,b.jsx)(b.Fragment,{children:a})}])},50979,87724,a=>{"use strict";let b="locale";function c(a){return"zh"===a||"zh-CN"===a?"zh-CN":"en"===a?"en":"vi"===a?"vi":"zh-TW"===a?"zh-TW":"ja"===a?"ja":"pt-BR"===a?"pt-BR":"pt-PT"===a?"pt-PT":"ko"===a?"ko":"es"===a?"es":"de"===a?"de":"fr"===a?"fr":"he"===a?"he":"ar"===a?"ar":"ru"===a?"ru":"pl"===a?"pl":"cs"===a?"cs":"nl"===a?"nl":"tr"===a?"tr":"uk"===a?"uk":"tl"===a?"tl":"id"===a?"id":"th"===a?"th":"hi"===a?"hi":"bn"===a?"bn":"ur"===a?"ur":"ro"===a?"ro":"sv"===a?"sv":"it"===a?"it":"el"===a?"el":"hu"===a?"hu":"fi"===a?"fi":"da"===a?"da":"no"===a?"no":"en"}a.s(["DEFAULT_LOCALE",0,"en","LOCALES",0,["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],"LOCALE_COOKIE",0,b,"normalizeLocale",0,c],87724);let d={},e="en",f=[];async function g(a){if("en"===a){d={};return}try{let b=await fetch(`/i18n/literals/${a}.json`);d=await b.json()}catch(a){console.error("Failed to load translations:",a),d={}}}function h(a){if(!a||"string"!=typeof a)return a;let b=a.trim();return b&&"en"!==e&&d[b]||a}function i(a){if(!a.nodeValue||!a.nodeValue.trim())return;let b=a.parentElement;if(!b)return;let c=b;for(;c;){if(c.hasAttribute&&c.hasAttribute("data-i18n-skip"))return;c=c.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(b.tagName?.toLowerCase()))return;a._originalText||(a._originalText=a.nodeValue);let d=h(a._originalText);d!==a.nodeValue&&(a.nodeValue=d)}async function j(){}async function k(){e=function(){if("u"<typeof document)return"en";let a=document.cookie.split(";").find(a=>a.trim().startsWith(`${b}=`));return c(a?decodeURIComponent(a.split("=")[1]):"en")}(),await g(e),f.forEach(a=>a()),function(a){let b;if(!a)return;let c=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1),d=[];for(;b=c.nextNode();)d.push(b);d.forEach(i)}(document.body)}a.s(["initRuntimeI18n",0,j,"reloadTranslations",0,k,"translate",0,h],50979)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_0_xhepz._.js.map
|
|
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
|
|
|
7
7
|
"static/chunks/03~yq9q893hmn.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/03mW5vaG0Fogum-tDkkOQ/_buildManifest.js",
|
|
11
|
+
"static/03mW5vaG0Fogum-tDkkOQ/_ssgManifest.js",
|
|
12
|
+
"static/03mW5vaG0Fogum-tDkkOQ/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/0vn3aevizo-in.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/12e1_bkd541fo.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0h~4je-_gk7-5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0vn3aevizo-in.js"/><script src="/_next/static/chunks/02i7dfk78~t~2.js" async=""></script><script src="/_next/static/chunks/0jrv3q-9uyzn-.js" async=""></script><script src="/_next/static/chunks/0r7m44~cm1a3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0ia95-4m7lcfa.js" async=""></script><script src="/_next/static/chunks/14tsmm25gab1..js" async=""></script><script src="/_next/static/chunks/0n4z.7yu76je-.js" async=""></script><script src="/_next/static/chunks/02suuzz60dp3d.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>9Router - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="inter_bace89c4-module__09p2wq__variable font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0vn3aevizo-in.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[35745,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"ThemeProvider\"]\n3:I[69013,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"RuntimeI18nProvider\"]\n4:I[39756,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"default\"]\n6:I[97367,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[97367,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"ViewportBoundary\"]\nc:I[97367,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"MetadataBoundary\"]\ne:I[68027,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/12e1_bkd541fo.css\",\"style\"]\n:HL[\"/_next/static/chunks/0h~4je-_gk7-5.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/12e1_bkd541fo.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0h~4je-_gk7-5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/14tsmm25gab1..js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0n4z.7yu76je-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/02suuzz60dp3d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"inter_bace89c4-module__09p2wq__variable font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/12e1_bkd541fo.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0h~4je-_gk7-5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SBId4_Ewcg0cJ2p2zlKeg\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/02suuzz60dp3d.js\"],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"9Router - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"5\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/12e1_bkd541fo.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0h~4je-_gk7-5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0vn3aevizo-in.js"/><script src="/_next/static/chunks/02i7dfk78~t~2.js" async=""></script><script src="/_next/static/chunks/0jrv3q-9uyzn-.js" async=""></script><script src="/_next/static/chunks/0r7m44~cm1a3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0ia95-4m7lcfa.js" async=""></script><script src="/_next/static/chunks/14tsmm25gab1..js" async=""></script><script src="/_next/static/chunks/0n4z.7yu76je-.js" async=""></script><script src="/_next/static/chunks/11q6656-lc_oz.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0a"/><title>9Router - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/favicon.svg"/><link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="inter_bace89c4-module__09p2wq__variable font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0vn3aevizo-in.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[35745,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"ThemeProvider\"]\n3:I[69013,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"RuntimeI18nProvider\"]\n4:I[39756,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"default\"]\n6:I[97367,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[97367,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"ViewportBoundary\"]\nc:I[97367,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"MetadataBoundary\"]\ne:I[68027,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/12e1_bkd541fo.css\",\"style\"]\n:HL[\"/_next/static/chunks/0h~4je-_gk7-5.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/12e1_bkd541fo.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0h~4je-_gk7-5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/14tsmm25gab1..js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0n4z.7yu76je-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/11q6656-lc_oz.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"inter_bace89c4-module__09p2wq__variable font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/12e1_bkd541fo.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0h~4je-_gk7-5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"03mW5vaG0Fogum-tDkkOQ\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/14tsmm25gab1..js\",\"/_next/static/chunks/0n4z.7yu76je-.js\",\"/_next/static/chunks/11q6656-lc_oz.js\"],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"9Router - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"5\",{}]]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0vn3aevizo-in.js"/><script src="/_next/static/chunks/02i7dfk78~t~2.js" async=""></script><script src="/_next/static/chunks/0jrv3q-9uyzn-.js" async=""></script><script src="/_next/static/chunks/0r7m44~cm1a3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0ia95-4m7lcfa.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0n4z.7yu76je-.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0vn3aevizo-in.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0vn3aevizo-in.js"/><script src="/_next/static/chunks/02i7dfk78~t~2.js" async=""></script><script src="/_next/static/chunks/0jrv3q-9uyzn-.js" async=""></script><script src="/_next/static/chunks/0r7m44~cm1a3r.js" async=""></script><script src="/_next/static/chunks/turbopack-0ia95-4m7lcfa.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0n4z.7yu76je-.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0vn3aevizo-in.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"03mW5vaG0Fogum-tDkkOQ\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0n4z.7yu76je-.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"2\",{}]]\n"])</script></body></html>
|